tool · draft
Simulink
MathWorks' commercial block-diagram environment for modelling and simulating dynamic systems, built up from subsystems and referenced models joined through defined interfaces and buses.
What is reusable: closed sourceunknown dataAPIunknown participation
Simulink, from MathWorks, is software for designing systems as block diagrams. Its models can span several physical domains, run as simulations before any hardware is built, and be deployed without hand-written code.1 It works together with MATLAB, so graphical and textual programming can be combined in one environment.1 Its uses, as MathWorks lists them, include control systems, electrification, robotics and signal processing.1
A single model can combine electrical, mechanical, thermal, hydraulic and software components, and can take in other tools' models packaged as FMUs under the FMI standard.1 Simulink generates C, C++, CUDA, PLC, Verilog and VHDL code from models, runs in a web browser as Simulink Online, and can scale simulations out to clusters and cloud computers.1 MathWorks also presents it as a way to build digital twins across a system's life cycle.1
MathWorks' guidance on component-based modelling describes splitting a large model into functional pieces with well-defined interfaces, so that engineers can work on them independently and avoid conflicting edits to one file, and advises doing so only when the benefits outweigh the cost.2 Simulink offers four kinds of component:3
- A subsystem: a group of blocks whose interface takes on the properties of its inputs and outputs.3
- A linked subsystem: an instance of a subsystem kept in a library.3
- A subsystem reference: a pointer to a reusable group of blocks.3
- A model reference: a pointer to a whole model with a defined interface.3
The differences matter for reuse. Copies of a subsystem are independent of each other and run only inside a parent model.4 A referenced model can be developed on its own and used many times in many models without copies.4 It can also be shared as a protected model that hides its contents, and its code can be compiled in parallel.4 Buses carry several signals or messages through one port, which simplifies the interfaces between components.5 When a Simulink.Bus object defines the bus at an interface, the interface requires data for the whole bus, and such objects can be kept under revision control in a data dictionary.5
Simulink is sold by MathWorks; the product page offers a free trial and a pricing page but states no prices.1
For someone modelling a place, Simulink fits engineered systems such as a pumping station or a building's heating, modelled together with their control software. Its component rules help when several teams each own one piece of such a model. ModelingToolkit is an open-source library in Julia for the same kind of work.
- form
- commercial desktop and browser modelling software
- group
- Agents and system dynamics
- homepage
- https://www.mathworks.com/products/simulink.html
does a similar job
-
Open-source Julia library from SciML for building models from connected components as equations, which it simplifies symbolically and turns into fast simulation code; MIT licence.
open sourceopen dataAPIopen participation
alternative to
-
Open-source Julia library from SciML for building models from connected components as equations, which it simplifies symbolically and turns into fast simulation code; MIT licence.
open sourceopen dataAPIopen participation
Tags: block diagram, component-based modelling, control systems, MATLAB, simulation