Free and commercial alternatives to Simulink
Simulink from The Mathworks is widely used in various disciplines. I was recently asked to come up with a list of alternative products, both free and commercial.
Here are some alternatives that I know of:
- MapleSim – A commercial Simuink replacement from the makers of the computer algebra system, Maple
- OpenModelica -An open-source Modelica-based modeling and simulation environment intended for industrial and academic usage
- Wolfram SystemModeler – Very new commercial product from the makers of Mathematica. Click here for Wolfram’s take on why their product is the best.
- xcos – This free Simulink alternative comes with Scilab.
I plan to keep this list updated and, eventually, include more details. Comments, suggestions and links to comparison articles are very welcome. If you have taught a course using one of these alternatives and have experiences to share, please let me know. Similarly for anyone who was switched (or attempted to switch) their research from Simulink. Either comment to this post or contact me directly.
I’ve nothing against Simulink but would like to get a handle on what else is out there.
Both MapleSim and SystemModeler are based on Modelica. Also I don’t think Modelica and Simulink are direct competition. Simulink is block based modeling and Modelica is equations based non-causal modeling. You cannot simply jump ship from Simulink to Modelica or vice versa.
http://InsightMaker.com isn’t quite the same field of modeling as these other tools but it does support differential equation type models along with agent based models.
I cannot believe this… precisely this week I’ve been researching modelling software to simulate the operation of a high altitude flow bench we intend to build! :O Anyway, here are a few more I’ve come up with:
– AMESim
– SimulationX
– EcosimPro (widely used in EADS/Airbus)
– Dymola (also Modelica-based, from Dassault)
And now, specific for fluid mechanics:
– Flowmaster
– OpenWAM (shameless plug for my lab’s open source 1D code! :P)
It would be great if you expanded this post evaluating posible alternatives to Simulink =)
Simulink is different to MapleSim, SystemModeler, OpenModelica (although there is some overlap in the functionality)
Simulink is a “signal flow tool” and is better suited for control system modelling, signal processing, real-time simulation, embedded controls development, real-time data acquisition. A viable alternative to Simulink is VisSim, another signal-flow tool.
The Modelica-based tools (MapleSim, SystemModeler et al) are better suited for plant modelling.
Many Modelica-based tools can export plant models to S-functions that you can use in Simulink. Once you get the plant model in Simulink, you can develop your controls system, or perhaps test the plant model in a real-time environment.
Mathworks have a plant modelling addon to Simulink called SimScape. But it’s clunky, and not as good as the Modelica tools.
By the way, the tool comparison chart at http://www.wolfram.com/system-modeler/modeling-tools-comparison is misleading (and incorrect in parts)
@simguy can you be more specific?
@Mike Croucher
* Wolfram’s comparison chart is a commercial comparison chart. They’ve chosen a set of features for comparison where they think SystemModeler can be shown to have a lead. Dassault Systems, LMS et al could produce similar charts with different feature sets
* On the chart should be tools like Simscape, AmeSim, Dymola, Vertex, OpenModelica etc as well. Dymola is the biggest commercial Modelica tool on the market, so it should certainly be on the chart. It’s debatable that Simulink should be included since it has a different usage profile (although many people do use it for plant modeling when other tools are better)
* There are several mistakes on the chart (although I’ve used MathModelica/SystemModeler to a light degree, this may be my misunderstanding of what Wolfram refer to). For example (on an initial *quick*) reading of the comparison chart), I noticed these inconsistencies/errors
MapleSim lets you
-use external C code
-combine drag-and-drop modeling and Modelica
-do parallelized parameter sweeps
-generate a reusable standalone simulation executable (through executable C that you compile yourself, not sure how SystemModeler does this))
-initialize to steady state (via the snapshots feature)
-export 3D movies (in mpeg format, not in SystemModeler’s stated avi/mov format)
Simulink has
– high-level tools for biochemical pathways (through a paid addon SimBiology/Simscape). I think the features roughly are roughly similar to SystemModeler’s biochem library, but I’m not sure about this.
We have used VisSim for block diagram type simulations for many years. Both Linear and very nonlinear problems. Easy to learn and models are reusable. Time based or look-up table based data can be used in a model. New feature is a state-diagram simulator that I am trying out.
http://www.vissim.com
A comment from this page was very useful in helping me understand the difference between Simulink and Modelica-based solutions (pretty much “all the others”).
http://www.mathworks.com/matlabcentral/newsreader/view_thread/32091-
I reproduced it below. The long and short of it is:
* Signals in Simulink are all directional. That is you must connect an input to an output.
* Signals in Modelica are implicitly bidirectional. That is, you don’t specify a direction, and the model is solved until it is consistent.
* Simulink makes it difficult to model highly implicit problems (e.g. what is the input to a resistor – voltage or current? Clearly both are inputs *and* outputs).
* Implicit models make it difficult to solve problems with discrete events and states (e.g. fuzzy logic).
* Actually solving the implicit problems in Modelica is more challenging and less reliable.
Here is the comment:
————–
This may help: there are two fundamental approaches used in packages for the computer-based modelling of
dynamic systems and their solution. They are simultaneous-equation-based and
sequential-numerical-solution based. Both will handle mixed algebraic and differential-equation models.
In the younger simultaneous equation-based approach, the fundamental approach to the modelling of
differential-algebraic systems is representation by equations. The solution involves solving the algebraic and
differential equations as a set of simultaneous equations (or as an assembly of sub-sets of simultaneous
equations). This approach allows the same models to be used very flexibly. The specification of which are the
dependent and which the independent variables is itself independent of the modelling, and is defined and
takes place at solution time. This approach therefore supports object-oriented modelling and the building of
re-usable libraries. However, event-driven, discrete-time and sequence models fit uneasily into this approach
(they are not describable by equations) and the ability to solve complex models at all is generally
unpredictable – since the method of solution is not under the control of the simulation engineer, and
de-bugging is often therefore excessively time-consuming or even completely impractical.
In the older sequential numerical approach the specification of independent and dependent variables is an
actual part of the modelling process, and the algebraic and differential equations are then ordered according
to the dependencies within the modelling and solved using classical numerical integration and iterative
methods. This mitigates against the building of re-usable libraries. however, event-driven, discrete-time and
sequence models are easily accommodated within the modelling. Solutions are predictable (the solution
method is under the control of the simulation engineer), dependable and can be de-bugged in a finite
predictable time.
I have ongoing experience of both types of approach and each has its very significant advantages and
disadvantages. So far neither has come to dominate dynamic simulation in general (although each has come
to dominate some particular industry segments – for specific reasons: e.g. equation-based dominates in
chemical engineering non-real-time simulation for process design – but sequential dominates in the
engineering of training simulators for those same processes). I’m guessing the two approaches will co-exist for
a very long time, if not forever; because they are best suited to quite different purposes. Elegant
equation-based approaches are also well-suited to application in an academic environment, whereas the
simulation engineer in industry would often prefer useful results over an elegant method.
In evaluating the two approaches, here are some things to ponder:
1) I have a rule in my company, based on years of practical project experience: ‘No fixed-price quotations for
simulation studies requiring an equation-based approach, reimbursable man-hours only!’
2) Simulink is now much more than a dynamic simulation tool – it is also a system development environment in
which the block-diagrams describe the build structure of systems which are then the basis for automatic
code-generation.
I hope this helps a little in researching the pro’s and con’s of fundamentally different technologies like Dymola
and Simulink.
Take a look at Jmodelica too.