Writing S-Functions | ![]() ![]() |
Introduction
An M-file S-function consists of a MATLAB function of the following form
[sys,x0,str,ts]=f(t,x,u,flag,p1,p2,...)
where f
is the name of the S-function. During simulation of a model, Simulink repeatedly invokes f
, using the flag
argument to indicate the task (or tasks) to be performed for a particular invocation. Each time the S-function performs the task and returns the results in an output vector.
A template implementation of an M-file S-function, sfuntmpl.m
, resides in matlabroot
/toolbox/simulink/blocks
. The template consists of a top-level function and a set of skeletal subfunctions, called S-function callback methods, each of which corresponds to a particular value of flag
. The top-level function simply invokes the subfunction indicated by flag
. The subfunctions perform the actual tasks required of the S-function during simulation.
![]() | S-Function Examples | S-Function Arguments | ![]() |