Matsim is a high level interface to create Simulink models from a Matlab script. Matsim is a wrapper around the standard simulink API that makes building a simulink model programmatically much faster.
- Automatic layout (no need to specify block positions!)
- Intuitive interface (you can "add", "subtract", "multiply", ... simulink blocks)
- Extensible library (easily add new blocks from your custom libraries)
The automatic layout feature relies on GraphViz, which you need to install separately.
- Install GraphViz and add it to the system PATH
- Download and extract the Matsim package (from File Exhange or from here)
- Add Matsim folder (and subfolders) to the Matlab path
Quick example to get started. For more check the tests folder.
1. Create or load a simulink model
import matsim.library.* % Import Matsim package sys = simulation.load('my_model'); % Create or load a model named 'my_model' sys.setSolver('Ts',0.01,'DiscreteOnly',true) % Set solver for the model sys.clear() % Delete all blocks sys.show() % Show the model
2. Create blocks
Vx = FromWorkspace('V_x'); % Add FromWorkspace and Constant blocks Wr = FromWorkspace('W_r'); Rr = Constant(0.32); slip = 1 - Vx./(Wr.*Rr); % Evaluate complex mathematical expression sys.log(slip,'name','slip') % Log the output of the "slip" block s = Scope(slip); % Create and open scope block s.open()
3. Connect and layout the model
sys.layout() % Connect and layout the model
4. Simulate the system
V_x = [0:0.1:10;linspace(5,20,101)]'; % Define input variables W_r = [0:0.1:10;linspace(5,23,101)/0.32]'; simOut = sys.run('StopTime',10).Logs; % Simulate the system
© Copyright 2017 - 2019 by Marco Gavelli