Embedded Control Systems Lecture 4 – Spring 2018
Knut Åkesson Modelling of Physcial Systems
Model knowledge is stored in books and human minds which computers cannot access
“The change of motion is proportional to the motive force impressed “ – Newton
Newtons second law of motion: F=m*a
Slide from: Open Source Modelica Consortium, Copyright © Equation Based Modelling
• Equations were used in the third millennium B.C. • Equality sign was introduced by Robert Recorde in 1557
Newton still wrote text (Principia, vol. 1, 1686) “The change of motion is proportional to the motive force impressed ”
Programming languages usually do not allow equations!
Slide from: Open Source Modelica Consortium, Copyright © Languages for Equation-based Modelling of Physcial Systems
Two widely used tools/languages based on the same ideas
Modelica + Open standard + Supported by many different vendors, including open source implementations + Many existing libraries + A plant model in Modelica can be imported into Simulink - Matlab is often used for the control design History: The Modelica design effort was initiated in September 1996 by Hilding Elmqvist from Lund, Sweden.
Simscape + Easy integration in the Mathworks tool chain (Simulink/Stateflow/Simscape) - Closed implementation What is Modelica
A language for modeling of complex cyber-physical systems
• Robotics • Automotive • Aircrafts • Satellites • Power plants • Systems biology
Slide from: Open Source Modelica Consortium, Copyright © What is Modelica
A language for modeling of complex cyber-physical systems
Primary designed for simulation, but there are also other usages of models, e.g. optimization.
Slide from: Open Source Modelica Consortium, Copyright © What is Modelica
A language for modeling of complex cyber-physical systems i.e., Modelica is not a tool Free, open language There exist several free and commercial tools, specification: for example: • OpenModelica from OSMC • Dymola from Dassault systems • Wolfram System Modeler from Wolfram • SimulationX from ITI • MapleSim from MapleSoft • AMESIM from LMS • JModelica.org from Modelon Available at: www.modelica.org • MWORKS from Tongyang Sw & Control Developed and standardized • IDA Simulation Env, from Equa by Modelica Association • ESI Group Modeling tool, ESI Group
Slide from: Open Source Modelica Consortium, Copyright © Modelica
Declarative language Equations and mathematical functions allow acausal modeling, high level specification, increased correctness Multi-domain modeling Combine electrical, mechanical, thermodynamic, hydraulic, biological, control, event, real-time, etc... Everything is a class Strongly typed object-oriented language with a general class concept, Java & MATLAB-like syntax Visual component programming Hierarchical system architecture capabilities Efficient, non-proprietary Efficiency comparable to C; advanced equation compilation, e.g. 300 000 equations, ~150 000 lines on standard PC
Slide from: Open Source Modelica Consortium, Copyright © Acasual Modeling
What is acausal modeling/design? Why does it increase reuse? The acausality makes Modelica library classes more reusable than traditional classes containing assignment statements where the input-output causality is fixed. Example: a resistor equation: R*i = v; can be used in three ways: i := v/R; v := R*i; R := v/i;
Slide from: Open Source Modelica Consortium, Copyright © Modelica: Typed Declarative Equation-based Textual Langauge
A textual class-based language OO primary used for as a structuring concept
Behaviour described declaratively using • Differential algebraic equations (DAE) (continuous-time) • Event triggers (discrete-time)
Variable class VanDerPol "Van der Pol oscillator model" declarations Real x(start = 1) "Descriptive string for x”; Real y(start = 1) "y coordinate”; parameter Real lambda = 0.3; equation der(x) = y; der(y) = -x + lambda*(1 - x*x)*y; end VanDerPol;
Differential equations
Slide from: Open Source Modelica Consortium, Copyright © Simscape vs Simulink Van der Pol Equation in the Simscape Language Faster Development
Block Diagram (e.g. Simulink, ...) or Proprietary Code (e.g. Ada, Fortran, C,...) vs Modelica/Simscape
Causality Systems Derivation Definition Modeling of (manual derivation of System Subsystems Decomposition input/output relations) Implementation Simulation Proprietary Code
Block Diagram
Modelica/ Simscape
Slide from: Open Source Modelica Consortium, Copyright © Casual vs Acasual modelling
Modelica/Simscape (acasual): Keeps the Simulink (casual): Physical model – physical Signal-flow model – hard to structure easy to understand understand
Res2 sum3 Ind l2 p p -1 1 R2 1/L 1 s R1=10 R2=100 sum2 p n n +1 +1 AC=220
p p sinln sum1 Res1 Cap l1 n +1 1 1/R1 1/C -1 s C=0.01 L=0.1
n n
p G
Slide from: Open Source Modelica Consortium, Copyright © Multi-Domain Modeling in Modelica
• A DC motor can be thought of as an electrical circuit which also contains an electromechanical component model DCMotor Resistor R(R=100); Inductor L(L=100); VsourceDC DC(f=10); Ground G; ElectroMechanicalElement EM(k=10,J=10, b=2); Inertia load; equation R L connect(DC.p,R.n); EM connect(R.p,L.n); DC connect(L.p, EM.n); connect(EM.p, DC.n); load connect(DC.n,G.p); connect(EM.flange,load.flange); G end DCMotor
Slide from: Open Source Modelica Consortium, Copyright © Corresponding DC-Motor Model Equations
The following equations are automatically derived from the Modelica model:
(load component not included)
Automatic transformation to ODE or DAE for simulation:
Slide from: Open Source Modelica Consortium, Copyright © Model Translation Process to Hybrid DAE to Code
Modelica Graphical Editor Modelica Modelica Modelica Model Source code Textual Editor Modelica Model Frontend Translator Modeling Flat model Hybrid DAE Environment Analyzer "Middle-end" Sorted equations Optimizer Optimized sorted equations Backend Code generator C Code C Compiler Executable Simulation
Slide from: Open Source Modelica Consortium, Copyright © Software Component Model
Interface Acausal coupling Connector
Component Connection Component Causal coupling
A component class should be defined independently of the environment, very essential for reusability A component may internally consist of other components, i.e. hierarchical modeling Complex systems usually consist of large numbers of connected components
Slide from: Open Source Modelica Consortium, Copyright © Connectors and Connector Classes in Modelica
Connectors are instances of connector classes
electrical connector
connector class connector Pin Voltage v; v + keyword flow flow Current i; pin indicates that currents end Pin; of connected pins i sum to zero. Pin pin; an instance pin of class Pin mechanical connector
connector class connector Flange Position s; flow Force f; s end Flange; flange f an instance flange Flange flange; of class Flange
Slide from: Open Source Modelica Consortium, Copyright © The flow prefix
Two kinds of variables in connectors: • Non-flow variables potential or energy level (Simscape: Across) • Flow variables represent some kind of flow (Simscape: Though) Coupling • Equality coupling, for non-flow variables • Sum-to-zero coupling, for flow variables
The value of a flow variable is positive when the current or the flow is into the component v pin positive flow direction: i +
Slide from: Open Source Modelica Consortium, Copyright © Energy flows
Across Through Nonflow Domain Potential Flow Carrier Type
Electrical Voltage Current Charge
Translational Position Force Linear momentum
Angular Rotational Angle Torque momentum Magnetic Magnetic Magnetic Magnetic flux potential flux rate Hydraulic Pressure Volume flow Volume Heat Temperature Heat flow Heat Chemical Chemical Particle flow Particles potential
Pneumatic Pressure Mass flow Air
Slide from: Open Source Modelica Consortium, Copyright © Connect equations in Modelica
Connections between connectors are realized as equations in Modelica
connect(connector1,connector2)
The two arguments of a connect-equation must be references to connectors, either to be declared directly within the same class or be members of one of the declared variables in that class
+ v v + pin1 pin2
i i
Pin pin1,pin2; //A connect equation //in Modelica: Corresponds to pin1.v = pin2.v; connect(pin1,pin2); pin1.i + pin2.i =0;
Slide from: Open Source Modelica Consortium, Copyright © Connect Equations in Modelica
Pin pin1,pin2; //A connect equation //in Modelica Corresponds to pin1.v = pin2.v; connect(pin1,pin2); pin1.i + pin2.i =0;
Multiple connections are possible: connect(pin1,pin2); connect(pin1,pin3); ... connect(pin1,pinN);
Each primitive connection set of nonflow variables is used to generate equations of the form:
v1 = v2 = v3 = ⋯ = vn
Each primitive connection set of flow variables is used to generate sum-to-zero equations of the form:
i1 + i2 + i3 + ⋯ + in = 0
Slide from: Open Source Modelica Consortium, Copyright © Conclusions
Equation-based modelling facilitate modelling of multi-domain systems.
More complex system benfit more from taking advantage of the better structuring and increased possiblity for reusability.
Industry is moving away from modelleing everything in Simulink to also used Modelica and/or Simscape.
Tradeoff between using an open standardized language and using an integrated tool-chain.
In the project you will use Simscape for modelling the physics and Simulink to implement the control algorithms.
Next: View Webinar about Physical Modelling with the Simscape Language. Webinar: Physcial Modeling with the Simscape Language
https://se.mathworks.com/videos/physical-modeling-with-the-simscape- language-81733.html Simscape Documentation
https://se.mathworks.com/help/physmod/simscape/