Package: matlab.system.mixin
Nondirect feedthrough mixin class
The matlab.system.mixin.Nondirect
mixin will be removed in a future
release. You no longer need to inherit from this mixin in your System object. The
associated methods have been moved to the matlab.System
class.
matlab.system.mixin.Nondirect
is a class that uses
the output
and update
methods to process nondirect feedthrough data through a
System object™.
For System objects that use direct feedthrough, the object’s input is needed to
generate the output at that time. For these direct feedthrough objects, running the
System object calculates the output and updates the state values. For nondirect
feedthrough, however, the object’s output depends only on the internal states at that
time. The inputs are used to update the object states. For these objects, calculating
the output with outputImpl
is separated from updating
the state values with updateImpl
. If you use the
matlab.system.mixin.Nondirect
mixin and include
the stepImpl
method in your class definition file, an
error occurs. In this case, you must include the updateImpl
and outputImpl
methods
instead.
The following cases describe when System objects in Simulink® use direct or nondirect feedthrough.
System object supports code generation and does not inherit from the
Propagates
mixin — Simulink automatically infers the direct feedthrough settings from the
System object code.
System object supports code generation and inherits from the Propagates
mixin — Simulink does not automatically infer the direct feedthrough settings.
Instead, it uses the value returned by the isInputDirectFeedthroughImpl
method.
System object does not support code generation — Default isInputDirectFeedthroughImpl
method returns false, indicating that direct feedthrough is not enabled. To
override the default behavior, implement the isInputDirectFeedthroughImpl
method in your class definition
file.
Use the Nondirect
mixin to allow a System object to be used in a Simulink feedback loop. A delay object is an example of a nondirect feedthrough
object.
To use this mixin, you must subclass from this class in addition to subclassing from
the matlab.System
base class. Type the following
syntax as the first line of your class definition file, where ObjectName
is the name of your
object:
classdef ObjectName < matlab.system & matlab.system.mixin.Nondirect