The attached Simulink model implements a Forward Euler Integrator in Embedded MATLAB. It illustrates the use of parameters in Embedded MATLAB.
The algorithm has three sections; Setup, Output and Update.
At every sample time hit the block keeps accumulating the the value of the input at time instant 't' in a state register and emits value accumulated value until time instant 't-1'. The output value is clipped if falls above an upper limit or falls below a lower limit. A flag is raised when the value is clipped. The upper and lower limits and the gain of the integrator can be changed via Embedded MATLAB block parameters.
Like any other block in Simulink the Embedded MATLAB block also supports mask parameters. Simulink parameters can be tunable or non-tunable. Tunable parameter values can be changed during the simulation run in MATLAB workspace and can be used to affect the current Simulink simulation run in progress. Non-tunable parameters are also defined in MATLAB workspace but are fixed for a single simulation run.
In the attached model the variables 'gain_val', 'upper_limit', 'lower_limit' used in the Embedded MATLAB script are non-tunable parameters. They are declared as any other inputs in the
function declaration associated with the block. However they do not appear as block inputs. The values and types of these variables can be defined and changed in the MATLAB between simulation runs.
Kiran Kintali (2022). Discrete Time Integrator in Embedded MATLAB (https://www.mathworks.com/matlabcentral/fileexchange/16363-discrete-time-integrator-in-embedded-matlab), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!