Function defined with Simulink blocks
Simulink / User-Defined Functions
SimEvents
The Simulink Function block is a Subsystem block preconfigured as a starting point for graphically defining a function with Simulink® blocks. The block provides a text interface to function callers. You can call a Simulink Function block from a Function Caller block, a MATLAB Function block, or a Stateflow® Chart (Stateflow).
For a description of the block parameters, see the Subsystem block reference page in the Simulink documentation.
You can visualize Simulink Function calls in the Sequence Viewer. The viewer shows when calls were made with the argument and the return values. See Sequence Viewer (Stateflow) block reference.
The function interface appears on the face of a Simulink Function block. Editing the block text adds and deletes Argument Inport blocks and Argument Outport blocks from the function definition. Editing also sets the Function name parameter in the Trigger block within the Simulink Function block.
For example, entering y = myfunction(u)
on
the face of a Simulink Function block adds one Argument
Inport block (u
) and one Argument Outport block
(y
) within the subsystem.
When calling a function using a Function Caller block,
the parameter Function prototype in the Function
Caller block must match exactly the function interface you
specify on the Simulink Function block. This match
includes the name of the function and the names of input and output
arguments. For example, the Simulink Function block
and the Function Caller block both use the argument
names u
and y
.
When calling a function from a Stateflow transition or
state label, you can use different argument names. For example, the Simulink
Function block uses x
and y
arguments
while the Stateflow transition uses x2
and y2
arguments
to call the function.
In general, a Function-Call Subsystem block provides better signal traceability with direct signal connections than a Simulink Function block. While a Simulink Function block eliminates the need for routing input and output signal lines through the model hierarchy.
Attribute | Function-Call Subsystem block | Simulink Function block |
---|---|---|
Method of executing/invoking function | Triggered using a signal line | Called by reference using the function name |
Formal input arguments (Argument Inport blocks) and output arguments (Argument Outport blocks) | No | Yes |
Local inputs (Inport block) and outputs (Outport block) | Yes | Yes |