modelicaansys

What is the difference between Modelica and Scade?


I am confusing about the difference between Modelica and Scade modeling language. It seems that they are both MBSE(Model Base System Engineering) solutions. What is the difference between them?


Solution

  • I have never used SCADE to be honest, but I know people using it to generate safety-cricial control software. An excerpt from https://dl.acm.org/doi/10.1145/3427763.3432350 says

    ANSYS® SCADE Suite® is a development environment for safety critical embedded software used for more than twenty years in various application domains like avionics, nuclear plants, transportation, automotive. Its code generator is qualified for several industrial standards (DO-178C, IEC 61508, EN 50128, IEC 60880 and ISO 26262) to be used in the development of the most safety critical systems.

    This is pretty much my understanding of SCADE, but take this with a grain of salt. So the main aim is to generate code, simulation is there to verify that the code works as expected.

    Modelica is a language aimed at the simulation of multi-physical systems. The aim is to hide complexity and enable the user to generate complex systems by composing fundamental components. The simulation is usually offline (non-realtime) to investigate rather detailed physicals relations.

    There are multiple tools that are based on the Modelica language. Some of them are Dymola, OpenModelica, SimulationX, MapleSim etc. Other multi-physical simulation tools are Mathworks Simulink (actually rather SimScape), Ansys Simplorer, Siemens Amesim, Synopsys Saber and many others (feel free to extend the list).

    I don't have a comprehensive overview, but from my experience Mathworks Simulink is the tool that is most common to generate code from graphical models. The major difference to SCADE is, that the generated code is not allowed to be used in safety-critical applications. A comparably new project by the Modelica Association is embedded FMI (https://www.efmi-standard.org/), which aims to generate code for e.g. controllers designed based on physical models.