Consistent terminology: modeling, DAE, ODE

I am new to the topic "Modeling Physical Systems". I read some basic literature and did some lessons in Modelica and Simulink / Simscape. I wanted to ask you if I understood the following content correctly:

  • Symbolic manipulation is the process of converting a differential-algebraic system of equations (physical model: DAE) into a system of differential equations (ODE), which can be solved by standard solvers (Runge, Kutta, BDF, ...)
  • There is also a solver that can solve DAE directly. But Modelica (openModelica, Dymola) and Simscape pass the system to ODE (why are these methods better than direct DAE solvers?)
  • "Modelica Flat Code" is the result of (= ODE) conversion.

Thanks so much for your answers.

+5
source share
2 answers

Character processing for Modelica includes:

  • remove the object-oriented structure and get a hybrid DAE (flat Modelica)
  • match, index decrease, randomness to get ODE
  • perform optimization (gaps, elimination of general subexpression, etc.)
  • generate code for a specific solver

OpenModelica can also solve the system in DAE mode without converting it to ODE, and I think other Modelica tools can do it too.

The โ€œModelica Flat Codeโ€ is the Modelica code where the orientation of the object is removed, the relation of equations is expanded to normal equations. The result is a hybrid DAE.

See Modelica Spec 3.3 for more information about all of this (for example, Appendix C): https://modelica.org/documents/ModelicaSpec33Revision1.pdf

+7
source

So, I think your understanding of terminology is also very good. Due to the declarative way (against the imperative) of programming in modelica, we immediately get a very large number of algebraic equations. The solution of these (partially) symbolically has, first of all, these significant advantages:

  • Speed. Without the exclusion of algebraic cycles, modelica would hardly have been used for any real problem, and even then, in simple cases, there would not have been algebraic equations. This will be too slow and force you to do the conversions yourself in modelica (as in imperative languages, for example, in C / C ++ or Simulink). Even today, modelica can still be slower than manually converted and optimized solutions. In addition, modelica applications often need real-time simulations.

  • Correctness. Symbolic transformations are evidence-based, and modelica applications are often in critical or cyber-physical security systems.

+1
source

All Articles