Free and commercial alternatives to Simulink

October 12th, 2012 | Categories: Free software, math software, matlab, simulink | Tags:

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.


  1. MySchizoBuddy
    October 12th, 2012 at 17:17
    Reply | Quote | #1

    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.

  2. Scott
    October 12th, 2012 at 22:09
    Reply | Quote | #2 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.

  3. October 12th, 2012 at 23:04
    Reply | Quote | #3

    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 =)

  4. SimGuy
    October 13th, 2012 at 11:31
    Reply | Quote | #4

    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.

  5. SimGuy
    October 14th, 2012 at 21:35
    Reply | Quote | #5

    By the way, the tool comparison chart at is misleading (and incorrect in parts)

  6. October 14th, 2012 at 21:38
    Reply | Quote | #6

    @simguy can you be more specific?

  7. SimGuy
    October 15th, 2012 at 15:25
    Reply | Quote | #7

    @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.

  8. GaryScott
    January 3rd, 2013 at 19:33
    Reply | Quote | #8

    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.

  9. Tim
    June 27th, 2014 at 13:20
    Reply | Quote | #9

    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”).

    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

    I hope this helps a little in researching the pro’s and con’s of fundamentally different technologies like Dymola
    and Simulink.

  10. Foadsf
    November 18th, 2017 at 17:13

    Take a look at Jmodelica too.