modelling of a complex system using sysml in a...
TRANSCRIPT
1Automation and Robotics Section
European Space Agency
Modelling of a Complex System using SysMLin a Model Based Design Approach
Thomas Krueger
Automation & Robotics Section (TEC-MMA)
13.04.2011
2Automation and Robotics Section
European Space Agency
Content
1. Introduction
2. Modelling process
3. Composing of the simulation
4. Summary & Outlook
3Automation and Robotics Section
European Space Agency
Modelling and Simulation of complex systems
Complex system
– Many interacting components
– Exhibit behaviour that is not
encapsulated by the sum of its
parts
Modelling & Design
– Description of the system model
– Specialised modelling tools for its
components
Requirements
Control
MechanicalElectrical
System Model
Mechanical Design CAD / FEM
Electrical DesignCAD / Simulations
Control Dynamics analysis tool(s)
Build a simulation of the system
4Automation and Robotics Section
European Space Agency
Research project
Aim: Demonstrate a method to build of a simulation of a complex system
– Parallel development of system design and Simulation
– Use standards (tools, methods, hardware)
Modelling approach
– Using SysML for the modelling of the system model
– Modelling of the components in specialised tools - re-use of existing models
– Required: Simulation tools providing automated code generation
Demonstration System
– ExoMars - Sample Preparation and Distribution System (SPDS)
– Complex system with identified scope and boundaries
– Developed and designed by Kayser-Threde
5Automation and Robotics Section
European Space Agency
Modelling of the system - Components
SPDS_Pkg::SPDS«block»
Drill«block»
Control_System«block»
itsRover:Rover1
1 1 11 1 1
Analytical_Instruments«block»
11
6Automation and Robotics Section
European Space Agency
Modelling of the system - Components
SPDS«block»
«block»
11 1
CSHS«block»
1
PSHS«block»
11
CS«block»
11
PSDDS
Sample_Processing
«block» Analytical_Instr
Analyse_Sample
«block» SPDS
«block» PSHS
Transport_Sample_to_Analytical_Instrument
«block» PSDDS
Dispense_the_sample_to_Ovens
«block» CS
Crushing_the_Sample
«block» CSHS
Retrieving_Sample_From_Drill
Deliver_Sample_to_CS
«block» Drill
Drilling
«block» Analytical_Instr
Analyse_Sample
«block» SPDS
«block» PSHS
Transport_Sample_to_Analytical_Instrument
«block» PSDDS
Dispense_the_sample_to_Ovens
«block» CS
Crushing_the_Sample
«block» CSHS
Retrieving_Sample_From_Drill
Deliver_Sample_to_CS
«block» Drill
Drilling
«block» Analytical_Instr
Analyse_Sample
«block» SPDS
«block» PSHS
Transport_Sample_to_Analytical_Instrument
«block» PSDDS
Dispense_the_sample_to_Ovens
«block» CS
Crushing_the_Sample
«block» CSHS
Retrieving_Sample_From_Drill
Deliver_Sample_to_CS
«block» Drill
Drilling
«block» Analytical_Instr
Analyse_Sample
«block» SPDS
«block» PSHS
Transport_Sample_to_Analytical_Instrument
«block» PSDDS
Dispense_the_sample_to_Ovens
«block» CS
Crushing_the_Sample
«block» CSHS
Retrieving_Sample_From_Drill
Deliver_Sample_to_CS
«block» Drill
Drilling
7Automation and Robotics Section
European Space Agency
Modelling of the system - Components
PSDDS«block»
Dosing_Station«block»
2 1
Positionier«block»
1
Rover.itsSPDS:SPDS1
itsPSDDS:PSDDS1
itsPositionier:Positionier1Attributes
Drive_Activated:boolPosition_Setpoint:doubleActuator_Position:doubleDamaged:bool
itsDosing_Station_1:Dosing_Station1Attributes
Dosing_Drive_Active:boolDosing_Drive_Position:intIs_Piezo_Active:boolTheoretical_Content_ml:float
Modelling in SysML stopped at a certain level of detail
8Automation and Robotics Section
European Space Agency
Modelling of the system - Behaviour
Functional & Logical
–State machines according to the system capabilities
–Inside the system model
Dynamical
–Representation of physical behaviour
(mechanical, electrical, control algorithms, signal processing)
–Modelled in equations or graphical syntax of the specialised tool
–Outside of the system model
9Automation and Robotics Section
European Space Agency
Modelling of the system - Components
PSDDS«block»
Dosing_Station«block»
2 1
Positionier«block»
1
Rover.itsSPDS:SPDS1
itsPSDDS:PSDDS1
itsPositionier:Positionier1Attributes
Drive_Activated:boolPosition_Setpoint:doubleActuator_Position:doubleDamaged:bool
itsDosing_Station_1:Dosing_Station1Attributes
Dosing_Drive_Active:boolDosing_Drive_Position:intIs_Piezo_Active:boolTheoretical_Content_ml:float
10Automation and Robotics Section
European Space Agency
Functional behaviour - State charts
DS_Positioner_States
Undefined_Position
Positioning
[Drive_Activated == true]
Position_DS1_at_Caroussel_ExPtPosition_DS1_at_CS Position_DS2_at_CS Position_DS2_at_Caroussel_ExPt
[Actuator_Position == DS1_at_CarEPt_Position]
[Actuator_Position == DS1_at_CS_Position]
[Actuator_Position == DS2_at_CS_Position]
[Actuator_Position == DS2_at_CarEPt_Position]
[Drive_Activated == false]
Positioning
Positioning[Drive_Activated == true]
[Actuator_Position == DS1_at_CarEPt_Position]
[Actuator_Position == DS1_at_CS_Position]
[Actuator_Position == DS2_at_CS_Position]
[Actuator_Position == DS2_at_CarEPt_Position]
[Drive_Activated == false]
[Drive_Activated == true][Drive_Activated == true] [Drive_Activated == true] [Drive_Activated == true]
itsPositionier:Positionier1Attributes
Drive_Activated:boolPosition_Setpoint:doubleActuator_Position:doubleDamaged:bool
11Automation and Robotics Section
European Space Agency
Dynamical behaviour
rateRateLimit
Movement_Check
LinearSystem
Limit
limIntegrate
KGain1
KGain
Drive_Activated
Actuator_PositionPosition_Setpoint
itsPositionier:Positionier1Attributes
Drive_Activated:boolPosition_Setpoint:doubleActuator_Position:doubleDamaged:bool
Modelled “outside” in a specialised tool
12Automation and Robotics Section
European Space Agency
Resume
Modelled
–Modelling of the system hierarchies
–Individual system blocks with attributes
–Functional behaviour via state charts
–Dynamical behaviour modelled in
specialised tools
Missing
–Interaction of the systems
–Realisation via Ports / Flow Ports
SPDS«block»
«block»11 1
CSHS «block»1
PSHS«block»11
CS«block»11
PSDDS
itsPositionier:Positionier1Attributes
Drive_Activated:boolPosition_Setpoint:doubleActuator_Position:doubleDamaged:bool
rate
RateLimit
Movement_Check
LinearSystem
Limit
lim
Integrate
K
Gain1
K
Gain
Drive_Activated
Actuator_Position
Position_Setpoint
13Automation and Robotics Section
European Space Agency
Interaction of the components
Rover.itsSPDS:SPDS1
itsPSDDS:PSDDS1
itsDosing_Station_1:Dosing_Station1
Dosing_Drive_Position:int
Dosing_Drive_Active:bool
Dosing_Station_Port
itsPositionier:Positionier1
Position_Setpoint:double
Actuator_Position:double
Drive_Activated:bool
Positioner_Port
Rover.itsControl_System1
PSDDS_Dosing_Station_Flow_Emulation_1
PSDDS_Dosing_Drive_Sensor_1:intPSDDS_Dosing_Drive_Output_1:bool
Rover_SPDS_PSDDS_Positioner_COM
Rover.itsSPDS:SPDS1
itsPSDDS:PSDDS1
itsPositionier:Positionier1
AttributesDrive_Activated:boolPosition_Setpoint:doubleActuator_Position:doubleDamaged:bool
itsDosing_Station_1:Dosing_Station1
AttributesDosing_Drive_Active:boolDosing_Drive_Position:intIs_Piezo_Active:boolTheoretical_Content_ml:float
14Automation and Robotics Section
European Space Agency
Simulation & Technical realisation
Composing the of the simulation
–Generation of executable code out of the SysML model
–Code generated for the models of the components
Integration dynamical behaviour
–Internal: inside the generated code out of SysML
–External: separate processe
15Automation and Robotics Section
European Space Agency
Integration - Internal simulation
PSDDS«block»
Positionier1Attributes
Actuator_Position:doublePosition_Setpoint:double
Drive_Activated:boolDamaged:bool
Actuator_Position:double
Drive_Activated:bool
Position_Setpoint:double
PSDDS_Simulation_Block1Attributes
Drive_Activated:boolPosition_SetPoint:doubleActuator_Position:double
OperationsInit():voidUpdate():voidClean():void
Initialisation
Calculation
tm(100)tm(100)
Terminate
Splitter1rate
RateLimit
Movement_Check
Movement_Check
1
90s + 1LinearSystem1Limit
lim
Integrate
KGain1
KGain
Drive_Activated
Actual_Positionpos_setpoint
16Automation and Robotics Section
European Space Agency
External simulation as method of choice
Internal simulation (not recommended)
– Direct integration of code enlarges the model
– Difficult to maintain
– Computing power vs. Real-time simulation
External simulation
– Models are running as independent processes
– Distributed simulation Real-Time through more computation power
– More independence (platforms, operation systems)
Realisation via Data Distribution Service (DDS)
– Easy implementation (integration of communication modules in the models)
– Hard real-time capability
17Automation and Robotics Section
European Space Agency
Distributed simulation architecture
System Model Virtual Reality
.
PSDDS Movement CS Control
Positioner_Setpoint
Actual_Postion & Drive_Activated
Crushing_Drive_Activated
Motor_Current & Jaw_Temperature
Simulation Node (process) DDS
Splitter1 rateRateLimit
Movement_Check
Movement_Check
1
90s+1LinearSystem1Limit
lim
Integrate
KGain1
KGain
Drive_Activated
Actual_Positionpos_setpoint
PC Windows Graphics WorkstationWindows Multi - core high-performance PC – RT-Linux
Simulation platform
18Automation and Robotics Section
European Space Agency
Integration – External simulation
PSDDS«block»
Positionier1Attributes
Actuator_Position:doublePosition_Setpoint:double
Drive_Activated:boolDamaged:bool
Actuator_Position:double
Drive_Activated:bool
Position_Setpoint:double
PSDDS_Simulation_Block1Attributes
Drive_Activated:boolPosition_SetPoint:doubleActuator_Position:double
OperationsInit():voidUpdate():voidClean():void
Initialisation
Calculation
tm(100)tm(100)
Terminate
Splitter1rate
RateLimit
Movement_Check
Movement_Check
1
90s + 1LinearSystem1Limit
lim
Integrate
KGain1
KGain
Drive_Activated
Actual_Positionpos_setpoint
PSDDS_DDS_Receive_Block1DDS_SubscriberSpecific_ReaderActuator_Position:doubleDrive_Activated:bool
PSDDS_DDS_Receive_Block()Data_Received()Init_Reader():voidDDS_Take():voidWait_for_DDS_Data():void
PSDDS_DDS_Send_Block1Position_Setpoint:doubleData_to_SendDDS_PublisherSpecific_Writer
chPosition_Setpoint()PSDDS_DDS_Send_Block()
DDS_Init_Writer():voidDDS_Write():void
19Automation and Robotics Section
European Space Agency
Virtual reality
Part of the simulation
– Visualisation
– Simulated physics environment
– Full measurable system
– Simulation Node (DDS connected)
Purposes
– Simulation of sample flow
– Checking congruency system states
and reality
– Test environment: possibility of
manipulation everything
21Automation and Robotics Section
European Space Agency
Summary
Technology Demonstration
– System model in SysML as base for the Simulation: (hierarchy, structure & functional behaviour)
– Dynamical behaviour via individual modelled subcomponents
– Methods for the integration of sub-simulations
– Distributed real-time simulation through DDS
Advantages
– Re-use of existing models
– Block oriented design (eases development and maintenance)
– Use specialised tools according to the technical domain
Required
– Tools providing automated code generation
– Development & integration of communication modules for the DDS connection
22Automation and Robotics Section
European Space Agency
Outlook
Next steps• Enhance the simulation
• Distribute the simulation nodes to different systems
– Investigate appropriate system infrastructures (network, hardware, OS)
– Limits of DDS???
• Verification
• Using the simulation to support the system development
– Using simulation results and insights
– Creation of test scenarios (worst case) Automated testing
– Test experimental system designs and configurations
Guidelines for developments• Re-use of existing models
• Integration via standards and avoidance of custom coding
• Minimal differences between system design and simulation design
24Automation and Robotics Section
European Space Agency
Independence of the control system
• Independent from device state-charts
• Device states charts represent the true state of the system
• Control system inputs are dependent on virtual sensors
• Virtual sensors can be biased or have faulty behaviour
Example: The Position of the CSTM is exactly at the Drill exchange
point but the sensors, according to their precision, deliver a
slightly different position to the control system.
VR COM Device Ctrl. SysCTSM_Pos = 9.56 CTSM_Pos = 9.56
State: Moving
CTSM_Pos_Sen = 10
Sensor
Prec: 1.