- Notifications
You must be signed in to change notification settings - Fork7
Matlab/Simulink interface. Easily create Simulink models from a Matlab script.
License
NotificationsYou must be signed in to change notification settings
gave92/Matsim
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A sleek, intuitive interface for building Simulink models from a Matlab script.
Explore Matsim docs »
Report bug ·Request feature
Matsim is a high level interface to create Simulink models from aMatlab script. Matsim is a wrapper around the standardsimulink 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 onGraphViz, which you need to install separately.
- InstallGraphViz and add it to the system PATH
- Download and extract the Matsim package (fromFile Exhange or from here)
- Add Matsim folder (and subfolders) to the Matlab path
Quick example to get started. For more check thetests folder.
importmatsim.library.*% Import Matsim packagesys=simulation.load('my_model');% Create or load a model named 'my_model'sys.setSolver('Ts',0.01,'DiscreteOnly',true)% Set solver for the modelsys.clear()% Delete all blockssys.show()% Show the model
Vx= FromWorkspace('V_x');% Add FromWorkspace and Constant blocksWr= FromWorkspace('W_r');Rr= Constant(0.32);slip=1-Vx./(Wr.*Rr);% Evaluate complex mathematical expressionsys.log(slip,'name','slip')% Log the output of the "slip" blocks= Scope(slip);% Create and open scope blocks.open()
sys.layout()% Connect and layout the model
V_x= [0:0.1:10;linspace(5,20,101)]';% Define input variablesW_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