[MBSE 2021] ESA MBSE Evolution: From ESA SysML Toolbox to ...
Atego Artisan Studio Simulation - MBSE...
Transcript of Atego Artisan Studio Simulation - MBSE...
© 2012 Atego
Atego Artisan Studio Simulation James Hummell Principal Engineer
© 2012 Atego 2
Atego Artisan Studio integrations with Simulink
Artisan Studio with parametrics and Simulink synchronizer
Artisan Studio with parametrics, and state behavior, and code
generation using Simulink synchronizer, Simulink code gen to
C/C++ lib
Artisan Studio using SySim use Simulink during model execution
Artisan Studio with Atego Parasolver uses Simulink as a solution
engine for parametrics, and returns values to Artisan
Artisan Studio state behavior, Internal block definition and ports
using ACE to tie into Simulink blocks and ports
3 © 2012 Atego. All Rights Reserved.
Atego Solutions
Artisan Studio Add-On
4 © 2012 Atego. All Rights Reserved.
Artisan Studio Architecture Standalone
5 © 2012 Atego. All Rights Reserved.
Artisan Studio Architecture Client/Server
6 © 2012 Atego. All Rights Reserved.
DOORS Synchronizer
Multiple modules per Studio model
−Able to bring requirements from multiple modules into a single Studio
model
−Create traceability in Studio
−Export back to DOORS (including surrogates)
Top Level
System
Requirements
Software
Requirements
Hardware
Requirements
DOORS Studio
7 © 2012 Atego. All Rights Reserved.
Repository-based CM – Using Private Sandboxes
8 © 2012 Atego. All Rights Reserved.
Repository-based CM – Using Private Sandboxes
Artisan Studio includes a 3-way conflict resolution tool:
Including a diagram differencer for resolving conflicts
© 2012 Atego
Modeling
10 © 2011 Atego. All Rights Reserved.
SysML (System Modeling Language)
Diagram
Structure Behavior
Block
Definition
Internal
Block Package Activity
Use Case
State
Machine
Sequence
New for
SysML
Requirements
Parametric
Modified
from UML
Same
as UML
11 © 2011 Atego. All Rights Reserved.
ibd [Block] Anti-Lock Controller1
«Block»Anti-Lock Controller
«BlockProperty»d1 : Traction Detector
«BlockProperty»m1 : Brake Modulator
«BlockProperty»d1 : Traction Detector
«BlockProperty»m1 : Brake Modulator
c1:modulator interface
use
interaction
par [constraint] StraightLineVehicleDynamics [Parametric Diagram]
: AccelerationEquation
F c
a
: BrakingForceEquationtf
tl
bf
f
: DistanceEquation
vx
: VelocityEquation
a
v
{f = (tf*bf)*(1-tl)} {F = ma}
{v = dx/dt} {a = dv/dt}
The Four Pillars of SysML
1. Structure
4. Parametrics
2. Behavior
Vehicle SystemSpecification
Braking SubsystemSpecification
«requirement»
id#102
txtThe vehicle shall stop from60 mph within 150ft on aclean dry surface.
Stopping Distance
«requirement»
id#337
txtThe Braking subsystem shallprevent wheel lockup underall braking conditions.
Anti-Lock Performance
req [Package] Vehicle Specifications [Braking]
«deriveReqt»
3. Requirements
bdd [Package] Vehicle [ABS]
«Block»Library::
Electronic
Processor
«Block»Anti-Lock
Controller
«Block»Library::
Electro-Hydraulic
Valve
«Block»Traction
Detector
«Block»Brake
Modulator
d1 m1
definition
Gripping Slipping
LossOfTrac tion/
RegainTrac tion/
stm Tire [Traction]
state machine
Detect Loss Of
TractionTractionLoss Modulate
Braking Force
act PreventLockup
activity/
function
12 © 2011 Atego. All Rights Reserved.
ibd [block] Anti-LockController
[Internal Block Diagram]
d1:Traction
Detector
m1:Brake
Modulator
c1:modulator
interface
ibd [block] Anti-LockController
[Internal Block Diagram]
allocatedFrom«activity»DetectLosOfTraction
d1:TractionDetector
allocatedFrom «activity»Modulate BrakingForce
m1:BrakeModulator
allocatedFrom«ObjectNode»TractionLoss:
c1:modulator
Interface
act PreventLockup [Activity Diagram]
DetectLossOf
Traction
Modulate
BrakingForceTractionLoss:
par [constraintBlock] StraightLineVehicleDynamics [Parametric Diagram]
:AccellerationEquation
[F = ma]
:VelocityEquation[a = dv/dt]
:DistanceEquation[v = dx/dt]
:BrakingForceEquation
[f = (tf*bf)*(1-tl)]
tf: bf:tl:
f:
F:
c
a:a:
v:
v:
x:
Cross Connecting Model Elements
1. Structure 2. Behavior
4. Parametrics
act PreventLockup [Swimlane Diagram]
«allocate»
:TractionDetector
«allocate»
:BrakeModulator
allocatedTo«connector»c1:modulatorInterface
DetectLossOf
Traction
Modulate
BrakingForceTractionLoss:
req [package] VehicleSpecifications
[Requirements Diagram - Braking Requirements]
Braking Subsystem
Specification
Vehicle System
Specification
id=“102”
text=”The vehicle shall stop
from 60 mph within 150 ft
on a clean dry surface.”
«requirement»
StoppingDistance
id=”337"
text=”Braking subsystem
shall prevent wheel lockup
under all braking conditions.”
«requirement»
Anti-LockPerformance
«deriveReqt»
ibd [block] Anti-LockController
[Internal Block Diagram]
allocatedFrom«activity»DetectLosOfTraction
d1:TractionDetector
allocatedFrom «activity»Modulate BrakingForce
m1:BrakeModulator
allocatedFrom«ObjectNode»TractionLoss:
c1:modulator
Interface
satisfies«requirement»Anti-LockPerformance
req [package] VehicleSpecifications
[Requirements Diagram - Braking Requirements]
Braking Subsystem
Specification
Vehicle System
Specification
id=“102”
text=”The vehicle shall stop
from 60 mph within 150 ft
on a clean dry surface.”
«requirement»
StoppingDistance
SatisfiedBy
«block»Anti-LockController
id=”337"
text=”Braking subsystem
shall prevent wheel lockup
under all braking conditions.”
«requirement»
Anti-LockPerformance
«deriveReqt»
ibd [block] Anti-LockController
[Internal Block Diagram]
allocatedFrom«activity»DetectLosOf Traction
d1:TractionDetector
values
DutyCycle: Percentage
allocatedFrom «activity»Modulate BrakingForce
m1:BrakeModulator
allocatedFrom«ObjectNode»TractionLoss:
c1:modulator
Interface
satisfies«requirement»Anti-LockPerformance
par [constraintBlock] StraightLineVehicleDynamics [Parametric Diagram]
:AccellerationEquation
[F = ma]
:VelocityEquation[a = dv/dt]
:DistanceEquation[v = dx/dt]
:BrakingForceEquation
[f = (tf*bf)*(1-tl)]
tf: bf:tl:
f:
F:
m:
a:a:
v:
v:
x:
v.Position:
v.Weight:v.chassis.tire.
Friction:v.brake.abs.m1.
DutyCycle:v.brake.rotor.BrakingForce:
par [constraintBlock] StraightLineVehicleDynamics [Parametric Diagram]
:AccellerationEquation
[F = ma]
:VelocityEquation[a = dv/dt]
:DistanceEquation[v = dx/dt]
:BrakingForceEquation
[f = (tf*bf)*(1-tl)]
tf: bf:tl:
f:
F:
m:
a:a:
v:
v:
x:
v.Position:
v.Weight:v.chassis.tire.
Friction:v.brake.abs.m1.
DutyCycle:v.brake.rotor.BrakingForce:
req [package] VehicleSpecifications
[Requirements Diagram - Braking Requirements]
Braking Subsystem
Specification
Vehicle System
Specification
VerifiedBy
«interaction»MinimumStopp
ingDistance
id=“102”
text=”The vehicle shall stop
from 60 mph within 150 ft
on a clean dry surface.”
«requirement»
StoppingDistance
SatisfiedBy
«block»Anti-LockController
id=”337"
text=”Braking subsystem
shall prevent wheel lockup
under all braking conditions.”
«requirement»
Anti-LockPerformance
«deriveReqt»
satisfy
3. Requirements
© 2012 Atego 14
Data Mining/Data Analysis (ICD Generator)
Generate traditional
Systems documentation
from modeling information
© 2012 Atego
Model Execution and Code Generation
16 © 2011 Atego. All Rights Reserved.
ACS Process
Model
ACS
Transformation Engine
Ada
Java
C/C++
IDL/IDL3+
(…)
Visual
Basic C#
17 © 2011 Atego. All Rights Reserved.
An altogether different need is to support the automatic generation of
“things” from the model
Why use modeling tools?
TDK
Transformation
Model
TDK Model-based
transformations
Application
Model
Generator Model
Cache
CODE
Application
Model
CHANGE
CODE
FORWARD
GENERATE ROUNDTRIP
ROUNDTRIP
Artisan Studio
Model
Edit/compile
code in IDE
Model
Driven ACS/TDK offers combination of:
Speed
Flexibility (to define the mapping)
ACS
18 © 2011 Atego. All Rights Reserved.
Code Generation Customization (Transformation Model)
*
1
*
1
4GGenerator::4GStructure::Class
Name : %string
Visibility : %string
4GGenerator::4GStructure::Attribute
Data Type : %string
Name : %string
Default Value : %string
Access : %string
4GGenerator::4GStructure::Operation
Name : %string
Short Return Type : %string
Access : %string
Text : %string
*
1
*
1
«4GGen»
RulesGen -> "Class"_ Name _"{" CR +1 dConstructorGen CR dDestructorGen CR ClassBody -1 "};" CR CR;ClassBody -> {Attribute.Gen} {Operation.Gen};implGen -> "//TESTING ONLY";dConstructorGen -> "void" _ Name "() {" CR +1 dConstBodyGen -1 CR "}";dDestructorGen -> "void ~" Name "() {" CR +1 dDestBodyGen -1 CR "}";dConstBodyGen -> "stuff iam here;";dDestBodyGen -> "// don't allow destruction" CR +1 "hi";
QClass
When (in O : %object) : %numeric
«4GEvalOrder»
«4GGen»
RulesGen -> "Interface"_ Name _"{" CR +1 dConstructorGen CR dDestructorGen CR ClassBody -1 "};" CR CR;
QInterface
When (in O : %object) : %numeric
«4GGen»
RulesGen -> Access":"_ Data Type _ Name [_"=" _ Default Value] ";" CR;
QAttribute
When (in O : %object) : %numeric
«4GGen»
RulesGen ->Short Return Type_ Name "(" [Parameter.Gen {", " Parameter.Gen}] ") {}" CR;
QFakeOperation
When (in O : %object) : %numeric
© 2012 Atego
Matlab Sync
20 © 2011 Atego. All Rights Reserved.
Parametric Diagram
21 © 2011 Atego. All Rights Reserved.
Add Simulink profile to your model
22 © 2011 Atego. All Rights Reserved.
Matlab Syncronizer
Allows mapping of types
Creates parametric block to Matlab block mapping
23 © 2011 Atego. All Rights Reserved.
Matlab sample
© 2012 Atego
SySim
25 © 2012 Atego. All Rights Reserved.
: Model Execution for Systems Engineers
Early Validation of Complex Behavior
− Use your existing SysML designs for live model execution
− Enable incremental design, starting with basic behavioral features, adding more capabilities over time
− Enforce consistency of system models with ongoing, dynamic checks
Block Reuse
− Easily reuse your existing subsystems and combine them into different executable scenarios
− Use instance parameters for differentiating the behavior of reused blocks
26 © 2012 Atego. All Rights Reserved.
Executable Models: Modeling Use Cases
27 © 2012 Atego. All Rights Reserved.
Executable Models: Simulation Use Cases
28 © 2012 Atego. All Rights Reserved.
Executable Model Example: Speed Controller
© 2012 Atego
Parasolver
30 © 2011 Atego. All rights reserved.
What‘s Needed
for System Validation Using Constraints?
Typical SE Tasks
Simulation
Analysis
Trade Studies
Optimization
Requirements Checking
Risk Assessment
Etc.
Features needed
Solvable or executable
language for constraints
SysML instance model to
express design alternatives in
slot values
Solver technology, which can
handle the acausal
parametrics
Input/Output to common
systems engineering tools
31 © 2011 Atego. All rights reserved.
Artisan Studio ParaSolver Parts
ParaSolver Profile
User‘s Guide
Tutorial
Example Models
32 © 2011 Atego. All rights reserved.
In Artisan Studio
Importing the ParaSolver Profile causes the
SysML Profile and the UML Profile to be
included as well
The Tools Menu shows the ParaSolver functions
33 © 2011 Atego. All rights reserved.
A Simple Example
bdd
par
od
par [block] Gamma
add1 : AdditionEqn
a : Real b : Real
c : Real
bet : Beta
b : Real
alp : Alpha
a : Real
c : Real
constraints{c = a + b}
11
11
bdd [Package] AdditionBDD
«block»
Alpha
a : Real
«block»
Beta
b : Real
«block»
Gamma
c : Real
11
bet11
alp
gamma01
alp = alpha01
bet = beta01
c : Real
alpha01
a : Real = 63.0
beta01
b : Real = 20.0
alp bet
gamma01
alp = alpha01
bet = beta01
c : Real = 83.0
alpha01
a : Real = 63.0
beta01
b : Real = 20.0
alp bet
34 © 2011 Atego. All rights reserved.
Don‘t Forget...
SysML Parametrics are acausal, so you can calculate
c = a + b with given a and b or
a = c – b with given c and b or...
WITHOUT changing anything in the model
Of course this is a VERY simple example, but this works also for
more complex ones, of course
The Instance model holds all calculated values, enabling the model
to contain more than one alternative
35 © 2011 Atego. All rights reserved.
SysML Parametric Model Execution:
Orchestrating External Solvers & Trade Studies
Simple math
relation
MATLAB/Simulink
model
Excel Mathematica
function
Key System
MoE
System Trade Inputs
+ acausal modeling
36 © 2011 Atego. All rights reserved.
Current and Planned Integrations
Mathematica
OpenModellica
Matlab
Matlab/Simulink
Excel
Planned:
CAD/CAE Systems, e.g. Catia
37 © 2011 Atego. All rights reserved.
Demos
Satellite Power and Weight Analysis
Little Eye UAV – Area Covered Analysis
38 © 2011 Atego. All rights reserved.
Artisan Studio Benefits
SysML benefits:
• Requirements documentation and traceablity to view the system for
completeness and adherence to the customer needs.
• Express and document your design decisions.
Parametrics benefits:
• Build a mathematical model of the solution to analyze and to verify
requirements against.
ParaSolver benefits:
• Enables the systems engineer to run instances of their design decisions
against the parametrics models created.
• Can run multiple scenarios to figure out the right solution.