S-Function Callback Methods - MATLAB & Simulink (original) (raw)
Main Content
Callback Methods Overview
Every S-function must implement a set of methods, called callback methods, that the Simulink® engine invokes when simulating a model that contains the S-function.
The S-function callback methods perform tasks required at each simulation stage. During simulation of a model, at each simulation stage the Simulink engine calls the appropriate methods for each S-Function block in the model.
Tasks performed by S-function callback methods include:
- Initialization — Prior to the first simulation loop, the engine initializes the S-function, including:
- Initializing the
SimStruct
, a simulation structure that contains information about the S-function - Setting the number and dimensions of input and output ports
- Setting the block sample times
- Allocating storage areas
- Initializing the
- Calculation of next sample hit — If you created a variable sample time block, this stage calculates the time of the next sample hit; that is, it calculates the next step size.
- Calculation of outputs in the major time step — After this call is complete, all the block output ports are valid for the current time step.
- Update of discrete states in the major time step — In this call, the block performs once-per-time-step activities such as updating discrete states.
- Integration — This applies to models with continuous states and/or nonsampled zero crossings. If your S-function has continuous states, the engine calls the output and derivative portions of your S-function at minor time steps. This is so the solvers can compute the states for your S-function. If your S-function has nonsampled zero crossings, the engine also calls the output and zero-crossings portions of your S-function at minor time steps so that it can locate the zero crossings.
Some callback methods are optional. The engine invokes an optional callback only if the S-function defines the callback.
Callback Methods for C MEX S-Functions
Required Callback Methods
C MEX S-functions must implement the following callback methods:
[mdlInitializeSizes](mdlinitializesizes.html)
– Specifies the sizes of various parameters in theSimStruct
, such as the number of output ports for the block.[mdlInitializeSampleTimes](mdlinitializesampletimes.html)
– Specifies the sample time(s) of the block.[mdlOutputs](mdloutputs.html)
– Calculates the output of the block.[mdlTerminate](mdlterminate.html)
– Performs any actions required at the termination of the simulation. If no actions are required, this function can be implemented as a stub.
Optional Callback Methods
The following callback methods are optional. The engine invokes an optional callback only if the S-function defines the callback.
- mdlCheckParameters
- mdlDerivatives
- mdlDisable
- mdlEnable
- mdlGetOperatingPoint
- mdlGetTimeOfNextVarHit
- mdlInitializeConditions
- mdlProcessParameters
- mdlProjection
- mdlRTW
- mdlSetDefaultPortComplexSignals
- mdlSetDefaultPortDataTypes
- mdlSetDefaultPortDimensionInfo
- mdlSetInputPortComplexSignal
- mdlSetInputPortDataType
- mdlSetInputPortDimensionInfo
- mdlSetInputPortDimensionsModeFcn
- mdlSetInputPortSampleTime
- mdlSetInputPortWidth
- mdlSetOutputPortComplexSignal
- mdlSetOutputPortDataType
- mdlSetOutputPortDimensionInfo
- mdlSetOutputPortSampleTime
- mdlSetOutputPortWidth
- mdlSetOperatingPoint
- mdlSetWorkWidths
- mdlSimStatusChange
- mdlSetupRuntimeResources
- mdlCleanupRuntimeResources
- mdlStart
- mdlUpdate
- mdlZeroCrossings
Callback Methods for Level-2 MATLAB S-Functions
Required Callback Methods
Level-2 MATLAB® S-functions must implement the following callback methods:
- setup – Specifies the sizes of various parameters in the
SimStruct
, such as the number of output ports for the block. - Outputs – Calculates the output of the block.
[Terminate](terminate.html)
– Performs any actions required at the termination of the simulation. If no actions are required, this function can be implemented as a stub.
For information on writing callback methods, see Write Level-2 MATLAB S-Functions.
Optional Callback Methods
The following callback methods are optional. The engine invokes an optional callback only if the S-function defines the callback.
- CheckParameters
- Derivatives
- Disable
- Enable
- GetOperatingPoint
- InitializeConditions
- PostPropagationSetup
- ProcessParameters
- Projection
- SetInputPortComplexSignal
- SetInputPortDataType
- SetInputPortDimensions
- SetInputPortDimensionsMode
- SetInputPortSampleTime
- SetOutputPortComplexSignal
- SetOutputPortDataType
- SetOutputPortDimensions
- SetOutputPortSampleTime
- SetOperatingPoint
- SimStatusChange
- Start
- Update
- WriteRTW
See Also
Level-2 MATLAB S-Function | S-Function Builder | S-Function | MATLAB Function