Verification of embedded system specifications using collaborative simulation of SysML and Simulink models Ryo Kawahara*, Hiroaki Nakamura*, Dolev Dotan**, Andrei Kirshin**, Takashi Sakairi*, Shinichi Hirose*, Kohichi Ono*, Hiroshi Ishikawa* *Tokyo Research Laboratory, IBM Research **Haifa Research Laboratory, IBM Research © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Abstract The authors propose an extension of SysML which enables description of continuous-time behavior. The authors also develop its execution tool integrated on Eclipse-based platform by exploiting co-simulation of SysML and MATLAB / Simulink. To demonstrate the effectiveness of the tool and the extension to SysML in verifying specifications of an embedded system, we create a sample model and analyze its execution results by checking constraints under a test case. © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Introduction In the development of an embedded system, it is important to verify that the specification of the system satisfies the requirements at an early stage – One approach to achieve this is to model and simulate the system during the analysis – Systems Modeling Language (SysML) is an extension of UML for embedded systems to include heterogeneous elements such as software, electronics, or mechanics © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Subject Embedded systems often include control systems – A control system is usually a hybrid system, the mixture of continuous-time and discrete behavior – Continuous-time behavior in UML / SysML has not been defined – Simulation of control system is usually done in a specialized tools, such as the MathWorks MATLAB / Simulink – A UML / SysML behavior is not associated with time Integration of the continuous-time behavior into the systems model is desired © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Background: SysML SysML is an extension of UML2 for systems engineering Requirements –Requirement diagram Behaviors –Activity diagram –State machine diagram Structures –Block definition diagram => class diagram Parametrics –Parametric diagram => internal block diagram –Internal block diagram => composite structure diagram © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Background: Simulink Simulink uses Block diagram – Block diagram describes the flow of signal between blocks, which process the signal – This example calculates: t f Out1(t ) 2 f In1( )d 0 © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Approach Use SysML for a system architecture description Use specific languages for each domain – Simulink for continuous-time behavior in a control system Time duration assignment to SysML action Verify specification by collaborative simulation – Run multiple simulation in parallel with time synchronization – Independent time management module © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Extended Modeling for Simulation in SysML Time assignment to action Continuous data exchange between blocks MARTE <<GaStep>> SysML flow ports with stereotype, or sleep() connectors in internal method in action code block diagram Specifying Simulink model as a block behavior <<externalModel>> stereotype to specify model file © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group SysML Execution and Debugging Debugging of behavioral UML models by emulation, supporting: - Class, Composite Structure Diagrams State Machines, Activities Java as Action Language Extensible to support UML profiles (in this case SysML) Debugging UI – Model Debugging Perspective (next slide) Diagram animation Debugging modes: Traditional Debugging - Running Transition Start “main” Run to breakpoint Stepping Interactive debugging (model “exerciser”) - Execution Pending Manually create objects Invoke operations Send signals Current State Breakpoint © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Model Debugging Perspective Breakpoints Debug Variables Diagram Animation Console Sleeping Event Pools Watch Instances Signals Snippet I/O © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Sleeping View Shows the queue of sleeping behaviors and behavior elements. Current virtual time Wakeup time © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Time Management Data is exchanged and the next Simulink step is executed at: – End of timed SysML behavioral step (<<GaStep>> or sleep()) – Periodic data exchange event Discrete events Action2 Action1 SysML object Action3 SysML object … Demands of time Add periodic data exchange events into the list consists of the discrete events Periodic data exchange events SysML object MATLAB / Simulink Simulation start / stop MATLAB / Simulink command execution Time demands to scheduler Time management module Time 0 100 200 300 400 Timed scheduler UML execution engine © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Co-simulation with Simulink All the Simulink models are referred from a single temporary Simulink model – Only one Simulink process is used Simulation data is sent or received through Input/Output S-Functions Temporary generated Simulink model Input S-Function Model reference1 Model reference2 Output S-Function Data from SysML Model 1 Data to SysML Model 2 Simulink models which are assigned to SysML behaviors © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Overview of Sample model: Humidifier Basic mechanism – The water is boiled by the heater Circulator fan – Vapor is emitted to the environment by circulator fan Requirements Pan Heater Reservoir – The humidifier starts vapor emission within 5 minutes since the power on signal – The humidifier ends cool down within 10 minutes since the power off signal – The humidifier keeps the room humidity at a constant level specified by the user automatically © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Structure of HumidifierSystem Internal block diagram of HumidifierSystem Block definition diagram Flow ports for continuous I/O Simulink model assigned block State machine assigned block State machine assigned block Standard ports for discrete signals Simulink model assigned block © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Behavior of Control block State machine diagram Signal from user interface Change event that monitors values from a Simulink blocks © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Simulink model for VaporGenerationPlant heating subsystem radiation subsystem evaporation subsystem © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Test context Block definition diagram Internal block diagram of TestContext Definition of test environment Simulink model assigned block Flow ports for continuous I/O to consist a closed loop Test target © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Test case and results Time(s) Command 0 Test start 10 Power on 2000 Power off 3600 Test end Cooling down taking too long time Automatic humidity control © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Parametric and time constraint evaluation Parametric diagram Constraint block: Humidity should be kept near target value Sequence diagram with time constraint using MARTE profile Timed constraint: Cool down should be finished within 10 minutes © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Conclusion We have developed a verification tool based on co-simulation of Simulink and SysML We have extended the modeling capability of SysML to be able to reference Simulink models and specify timed behavior These extensions enable one to test specifications of a system which includes continuous-time behavior in a closed control loop © 2009 IBM Corporation © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Overview of the verification tool TPTP-based test driver Time-aware UML execution engine Timed test cases Timed discrete behavior Simulink Continuous behavior Virtual time scheduler Binary tree for fast eval. <x,y,z> {a,b,c} Time constraints |{d,e,(f|g}} {h,i} (OMG MARTE profile) Eval > 80 eval Parametric constraints (OMG SysML) Integer eval Block2 p eval Integer b = 1 eval = f(bb, cc) bb Block3 Integer c = 2 {j,k} q l p q m {n,o} cc Parametric constraint evaluator Time constraint evaluator © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Simulink model for Room block relative_humidity subsystem saturation_vapor_pressure subsystem © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group State machine diagram of HeaterControl block © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Related works Studies on coupling of UML/SysML and continuous-time simulation (e.g., Simulink) Coupling method Reichmann et al. (2004), Telelogic Rhapsody® C. Nytsch-Geusen Hooman et al. Our (2007), (2004) approach A. Pop et al., (2007), T. A. Johnson et al., (2008) Conversion to source code Conversion to Modelica Cosimulation of Simulink and Rose® RT Cosimulation By Modelica By Simulink By independent module Simulation By independent time module management (Rhapsody) © 2009 IBM Corporation Haifa Research Lab – Model Driven Engineering Technologies Group Related works Source code level linkage of UML and Simulink – Reichmann et al., 2004. Telelogic Rhapsody® Co-simulation of Simulink and UML model on IBM Rational Rose® RealTime – J. Hooman, N. Mulyar and L. Posta, 2004 Conversion of UML/SysML to Modelica language – C. Nytsch-Geusen, 2007. A. Pop et al., 2007. T. A. Johnson et al., 2008 – Modelica is a new language to model continuous-time system © 2009 IBM Corporation