An Overview of the SysML-Modelica Transformation Specification Chris Paredis (Georgia Tech) Y. Bernard (Airbus), R. Burkhart (Deere & Co), H. de Koning (ESA/ESTEC), S. Friedenthal (Lockheed Martin Corp.), P. Fritzson (Linköping University), N. Rouquette (JPL), W. Schamai (EADS) Presentation for the INCOSE Symposium 2010 Chicago, IL USA 1 SysML-Modelica Transformation Specification: Context & Objective Two complementary languages for Systems Engineering: – Descriptive modeling in SysML – Formal equation-based modeling for analyses and trade studies in Modelica Objective: – Leverage the strengths of both SysML and Modelica by integrating them to create a more expressive and formal MBSE language. – Define a formal Transformation Specification: a SysML4Modelica profile a Modelica abstract syntax metamodel a mapping between Modelica and the profile Presentation for the INCOSE Symposium 2010 Chicago, IL USA 2 Presentation Overview What is SysML? What is Modelica? Motivating Example: Design & Analysis of Robot SysML-Modelica Transformation Specification Transformations in Systems Modeling Timeline towards Specification Adoption Summary 3 What is SysML? (www.omgsysml.org) 1. Structure 2. Behavior act PreventLockup [Swimlane Diagram] ibd [block] Anti-LockController [Internal Block Diagram] satisfies «requirement» Anti-Lock Performance ibd [block] Anti-LockController [Internal Block Diagram] d1:TractionDetector «allocate» act PreventLockup [Activity Diagram] :TractionDetector «allocate» :BrakeModulator allocatedFrom «activity»DetectLos d1:Traction Of Traction OfTraction Detector c1:modulator c1:modulator Interface Interface c1:modulator interface DetectLossOf Traction m1:BrakeModulator m1:Brake Modulator allocatedFrom «activity»Modulate BrakingForce allocatedFrom «ObjectNode» TractionLoss: TractionLoss: allocatedTo «connector»c1:modulatorInterface values DutyCycle: Percentage satisfy Modulate Modulate BrakingForce BrakingForce par [constraintBlock] StraightLineVehicleDynamics [Parametric Diagram] req [package] VehicleSpecifications [Requirements Diagram - Braking Requirements] v.chassis.tire. Friction: v.brake.abs.m1. DutyCycle: v.brake.rotor. BrakingForce: v.Weight: par [constraintBlock] StraightLineVehicleDynamics [Parametric Diagram] Vehicle System Specification Braking Subsystem Specification «requirement» StoppingDistance «requirement» Anti-LockPerformance id=“102” text=”The vehicle shall stop from 60 mph within 150 ft on a clean dry surface.” id=”337" text=”Braking subsystem shall prevent wheel lockup under all braking conditions.” VerifiedBy SatisfiedBy «interaction»MinimumStopp «block»Anti-LockController «deriveReqt» ingDistance tf: tl: bf: :BrakingForce Equation [f = (tf*bf)*(1-tl)] c m: f: F: :Accelleration Equation [F = ma] a: a: :DistanceEquation [v = dx/dt] v: v: :VelocityEquation [a = dv/dt] x: «deriveReqt» «deriveReqt» 4. Requirements v.Position: 3. Parametrics 4 What is Modelica? (www.modelica.org) State-of-the-art Modeling Language for System Dynamics – Differential Algebraic Equations (DAE) – Discrete Events Formal, object-oriented language Standardized by the Modelica Association – Open language specification – tool independent Multi-domain modeling Ports represent energy flow (undirected) or signal flow (directed) Acausal, equation-based, declarative (f-m*a=0) 5 Modelica: Active and Mature Community Modelica association — 20+ free libs (www.modelica.org) 6 commercial solvers, 3 open-source solvers (Dymola, MapleSim, SimulationX, OpenModelica,…) EUROSYSLIB project — 20+ libs under development (http://www.itea2.org/public/project_leaflets/EUROSYSLIB_profile_oct-07.pdf) 6 motor torque A Robot Example in Modelica Modelica Semantics and Textual Syntax m=1 spring1 fixed1 mass1 Graphical symbols defined as annotations in textual models Connections represent Kirchhoff semantics – Across variables (voltage, pressure,…) are equal – Through variables (current, flow rate,…) add to zero 8 Presentation Overview What is SysML? What is Modelica? Motivating Example: Design & Analysis of Robot SysML-Modelica Transformation Specification Transformations in Systems Modeling Timeline towards Specification Adoption Summary 9 motor torque A Robot Example in Modelica 10 SysML-Modelica Robot Example: UseCases & Requirements 11 SysML-Modelica Robot Example: Robot Domain BDD & IBD 12 SysML-Modelica Robot Example: Robot BDD & IBD Presentation for the INCOSE Symposium 2010 Chicago, IL USA 13 SysML-Modelica Robot Example: Robot Arm BDD 14 SysML-Modelica Robot Example: Analysis and Trade Study Analysis models depend on descriptive models 15 SysML4Modelica Analytical Model: Compose Model from SysML Standard Library Drag and drop into IBD [ModelicaModel] 16 SysML4Modelica Analytical Model: Detailed IBD 17 SysML4Modelica Analytical Model: Detailed IBD 18 SysML4Modelica Analytical Model: Relation to Modelica Native Model 19 SysML4Modelica Analytical Model: Allocation 20 SysML-Modelica Robot Example: Modelica model with simulation results 21 SysML-Modelica Robot Example: Analysis and Trade Study Analysis results are incorporated in Trade Study 22 Presentation Overview What is SysML? What is Modelica? Motivating Example: Design & Analysis of Robot SysML-Modelica Transformation Specification Transformations in Systems Modeling Timeline towards Specification Adoption Summary 23 SysML-Modelica Transformation Specification SysMLModelica Transformation follows the principles of ModelDriven Architecture (MDA) 24 SysML4Modelica Profile 25 bdd [Package] Components[ ModelOverview ] <<ModelicaPort>> flange_a : Flange <<ModelicaPort>> flange_b : Flange <<ModelicaModel>> ModelicaStandardLibrary::Mechanics::Translational::Interfaces:: PartialCompliant {s_rel = flange_b.s - flange_a.s; flange_b.f = f; flange_a.f = -f;} SysML4Modelica <<ModelicaValueProperty>>+s_rel : Distance <<ModelicaValueProperty>>+f : Force Formal mapping <<ModelicaPort>> flange_a : Flange <<ModelicaExtendsRelation>> <<ModelicaPort>> flange_b : Flange <<ModelicaModel>> ModelicaStandardLibrary::Mechanics::Translational::Components:: Spring {f = c*(s_rel - s_rel0);} <<ModelicaValueProperty>>+c : TranslationalSpringConstant{variability = parameter} <<ModelicaValueProperty>>+s_rel0 : Distance{variability = parameter} Modelica 26 Reference implementation: Based on OMG QVT conforms to SysML+ SysML4Modelica metamodel XMI (SysML4 Modelica) SysML Tool Tool-Specific Repository conforms to Modelica metamodel QVT (normative) XMI (Modelica) handcoded Java codegenerator Modelica abstract syntax OMC Modelica .mo file QVT = Query / View / Transformation 27 Transformations in Systems Modeling Model Object D Model Dependency D D D D D D D D D D D D D D D D D D D D D D D D D D System Model 28 Transformations in Systems Modeling Model Object D Model Dependency D D D D D D D D D D SysML D D D D D D D D D D D System Model D D D D D 29 Transformations in Systems Modeling Model Object D Model Dependency D D D D D D D Profile B D Domain A Profile A D Tool B D SysML D D D D D Profile C Domain C D D D D D D D D Tool D Profile D System Model D D D 30 Descriptive to Analytical Transformation Correspondence Models Descriptive Models Analytical Models 31 Timeline of Specification Adoption SysML – SysML RFP: March 2003 – 1.0 Specification: September 2007 – Currently: Revision Task Force 1.3 Modelica – 1.0 Specification: September 1997 – 3.1 Specification: May 2009 SysML-Modelica – – – – – Initial idea: July 2005 INCOSE MBSE Challenge Project: August 2007 – now OMG Working Group established: December 2008 Approved for public comment (RFC): June 2010 Future: Adoption as OMG Specification in September 2010 (?) 32 Summary Objective: – Leverage the strengths of both SysML and Modelica by integrating them to create a more expressive and formal MBSE language. Descriptive Modeling in SysML + Formal Equation-Based Modeling for Analyses and Trade Studies in Modelica http://doc.omg.org/syseng/2010-6-8 33 Acknowledgements: Working Group Members – – – – – – – – – – – – – Yves Bernard (EADS) Roger Burkhart (Deere & Co) Wuzhu Chen (Univ. Braunschweig) Hans-Peter De Koning (ESA) Sandy Friedenthal (Lockheed Martin) Peter Fritzson (Linköping University) Nerijus Jankevicius (No Magic) Alek Kerzhner (Georgia Tech) Andreas Korff (Atego) Chris Paredis (Georgia Tech) Axel Reichwein (Georgia Tech) Nicolas Rouquette (JPL) Wladimir Schamai (EADS) http://doc.omg.org/syseng/2010-6-8 34