metamodelica
play

MetaModelica A Unified Equation-Based S emantical and Mathematical - PowerPoint PPT Presentation

MetaModelica A Unified Equation-Based S emantical and Mathematical Modeling Language Adrian Pop and Peter Fritzson Programming Environment Laboratory Department of Computer and Information S cience Linkping University 2006-09-14 JMLC


  1. MetaModelica A Unified Equation-Based S emantical and Mathematical Modeling Language Adrian Pop and Peter Fritzson Programming Environment Laboratory Department of Computer and Information S cience Linköping University 2006-09-14 JMLC’ 2006, S eptember 13-15, Oxford, UK

  2. Outline � Modelica � Introduction � Language properties � Example � MetaModelica � Motivation � MetaModelica extensions to Modelica � Example � Future Work � Conclusions 2

  3. Modelica – General Formalism to Model Complex S ystems � Robotics � Automotive � Aircrafts � S atellites � Biomechanics � Power plants � Hardware-in-the-loop, real-time simulation � etc 3

  4. Modelica – The Next Generation Modeling Language � Declarat ive language � Equations and mathematical functions allow acausal modeling, high level specification, increased correctness � Mult i-domain modeling � Combine electrical, mechanical, thermodynamic, hydraulic, biological, control, event, real-time, etc... � Everyt hing is a class � S trongly typed obj ect-oriented language with a general class concept, Java & Matlab like syntax � Visual component programming � Hierarchical system architecture capabilities � Efficient , nonpropriet ary � Efficiency comparable to C; advanced equation compilation, e.g. 300 000 equations 4

  5. Modelica Language Properties � Declarat ive and Obj ect -Orient ed � Equat ion-based ; continuous and discrete equations � Parallel process modeling of concurrent applications, according to synchronous data flow principle � Funct ions with algorithms without global side-effects (but local data updates allowed) � Type syst em inspired by Abadi/ Cardelli (Theory of Obj ects) � Everyt hing is a class – Real, Integer, models, functions, packages, parameterized classes.... 5

  6. Modelica Background The Form - Equations Equations were used in the third millenium B.C. Equality sign was introduced by Robert Recorde in 1557 Newton (Principia, vol. 1, 1686) still wrote text: “The change of motion is proportional to the motive force impressed; ...” d ∑ ( m v ) F ⋅ = i dt CSSL (1967) introduced special form of “equation”: variable = expression v = INTEG(F) / m Programming languages usually do not allow equations 6

  7. Modelica Acausal Modeling Semantics • What is acausal modeling/design? • Why does it increase reuse ? The acausality makes Modelica 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; 7

  8. Modelica - Reusable Class Libraries R= C= L= body= bodyBar= bar= Info Info G shaftS= inertial shaft3DS= shaft3D= Info S S cylBody= bodyShape= cylS= AC= DC= Vs S S Is S S S shaft= prismS= gear2= revS= screw S= univS planarS= sphereS freeS gear1= - S planetary= planet= S + V i S diff= ring= S prism= rev= D T Op sun= sphere cyl= univ planar= free : 1 bearing fixTooth S screw = E moveS move sphereC y barC= c= d= cSer= c= d= x torque C C barC2= fric= sensor force lineForce= lineSensor r s sd fricTab clutch= torque lineTorque= converter advanced drive translation w a t fixedBase Library Library Library S state 8

  9. Graphical Modeling - Drag and Drop Composition 9

  10. Hierarchical Composition Diagram for a Model of a Robot k2 i axis6 cut joint qddRef tn qdRef qRef k1 r3Control r3Drive1 r3Motor 1 1 i 1 S S qd axis5 l qdRef Kd S rel 0.03 joint=0 Jmotor=J spring=c S axis4 iRef qRef pSum Kv sum w Sum rate2 rate3 gear=i fric=Rv0 340.8 +1 b(s) 0.3 - +1 - a(s) S axis3 rate1 tacho2 tacho1 b(s) b(s) PT1 a(s) a(s) g5 axis2 q qd Rp2=50 Ra=250 C=0.004*D/w m Rp1=200 Rd1=100 axis1 La=(250/(2*D*w m)) Rd2=100 Ri=10 - - - Srel = n*n' + (identity(3) - n*n')*cos(q) - skew(n)*sin(q); + + diff + pow er wrela = n*qd; OpI zrela = n*qdd; Vs Rd4=100 Sb = Sa*Srel'; emf Rd3=100 r0b = r0a; y g3 x vb = Srel*va; inertial g1 wb = Srel*(wa + wrela); ab = Srel*aa; hall2 zb = Srel*(za + zrela + cross(wa, wrela)); hall1 w r fa = Srel'*fb; ta = Srel'*tb; q g4 qd g2 10

  11. Multi-Domain Modelica Model - DCMotor � 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 11

  12. Modelica compilation stages Modelica Source Code Modelica model Translator Flat model Analyzer Topologically sorted equations Optimizer Optimized sorted equations Code Generator C code C Compiler Executable Simulation 12

  13. Corresponding DCMotor Model Equations The following equations are automatically derived from the Modelica model: ( load component not included) 13

  14. Connector Classes, Components and Connections connector Pin Keyword flow indicates Voltage v; that currents of connected flow Current i; pins sums to zero. end Pin; A connect statement in Modelica connect(Pin1,Pin2) corresponds to Pin1.v = Pin2.v Pin1.i + Pin2.i = 0 Connection between Pin1 and Pin2 14

  15. Common Component Structure as SuperClass model TwoPin ”Superclass of elements with two electrical pins” Pin p,n; Voltage v; Current i; equation v = p.v – n.v; 0 = p.i + n.i; i = p.i; end TwoPin; 15

  16. Electrical Components Reuse TwoPin SuperClass model Resistor ”Ideal electrical resistor” extends TwoPin; parameter Real R ”Resistance”; equation R*i = u end Resistor; model Inductor ”Ideal electrical inductor” extends TwoPin; parameter Real L ”Inductance”; equation L*der(i) = u end Inductor; 16

  17. Corresponding DCMotor Model Equations The following equations are automatically derived from the Modelica model: ( load component not included) 17

  18. MetaModelica - Context � S yntax - there are many efficient parser generator tools � lex (flex), yacc (bison), ANTLR, Coco, etc. � S emant ics: � t here are no st andard efficient and easy t o use compiler-compiler t ools 18

  19. MetaModelica - Motivation � Can we adapt the Modelica equation-based style to define semantics of programming languages? � Answer: Yes! � MetaModelica is j ust a part of the answer � executable language specification based on � a model (abstract syntax tree) � semantic functions over the model � elaboration and typechecking � translation � meta-programming � transformation � etc. � Further improvement – more reuse of language specification parts when building specifications for a new language (Future Work) 19

  20. MetaModelica - Idea � We started from � The Relational Meta-Language (RML) � A system for building executable natural semantics specifications � Used to specify Java, Pascal-subset, C-subset, Mini-ML, etc. � The OpenModelica compiler for Modelica specified in RML � Idea: int egrat e RML met a-modeling and met a- programming facilit ies wit hin OpenModelica by ext ending t he Modelica language. The not ion of equat ion is used as t he unifying feat ure � Now we have � The MetaModelica language � The Modelica executable language specification (OpenModelica compiler) in MetaModelica (~114232 lines of code) � Meta-programming facilities for Modelica 20

  21. MetaModelica extensions to Modelica (I) � Modelica � classes, models, records, functions, packages � behaviour is defined by equations or/ and functions � equations � differential equations � algebraic equations � partial differential equations � difference equations � conditional equations � MetaModelica extensions � local equations � pattern equations � match expressions � lists, tuples, option and uniontypes 21

  22. MetaModelica extensions to Modelica (II) � pattern equations � unbound variables get their value by unification Env.BOOLVAL(x,y) = eval_something(env, e); � match expressions � pattern matching � case rules pattern := match expression opt ional-local-declarat ions case pat t ern-expression opt -local-declarat ions opt ional-local-equat ions then value-expr ession; case ... ... else opt ional-local-declarat ions opt ional-local-equat ions then value-expr ession; end match; 22

  23. MetaModelica – Example (I) package ExpressionEvaluator // abstract syntax declarations ... // semantic functions ... end ExpressionEvaluator; 23

  24. MetaModelica – Example (II) PLUS package ExpressionEvaluator RCONST MUL // abstract syntax declarations uniontype Exp 12 record RCONST Real x1; end RCONST; RCONST RCONST record PLUS Exp x1; Exp x2; end PLUS; record SUB Exp x1; Exp x2; end SUB; 5 13 record MUL Exp x1; Exp x2; end MUL; record DIV Exp x1; Exp x2; end DIV; record NEG Exp x1; end NEG; end Exp; Expression: 12+5*13 Representation: PLUS( // semantic functions RCONST(12), ... MUL( RCONST(5), RCONST(13) end ExpressionEvaluator; ) ) 24

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend