Transcript
Atego Artisan Studio Simulation James Hummell Principal Engineer
© 2012 Atego
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
© 2012 Atego
2
Atego Solutions
Artisan Studio Add-On
© 2012 Atego. All Rights Reserved.
3
Artisan Studio Architecture Standalone
© 2012 Atego. All Rights Reserved.
4
Artisan Studio Architecture Client/Server
© 2012 Atego. All Rights Reserved.
5
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
Hardware Requirements
Software Requirements
DOORS
© 2012 Atego. All Rights Reserved.
Studio
6
Repository-based CM – Using Private Sandboxes
© 2012 Atego. All Rights Reserved.
7
Repository-based CM – Using Private Sandboxes
Artisan Studio includes a 3-way conflict resolution tool:
Including a diagram differencer for resolving conflicts
© 2012 Atego. All Rights Reserved.
8
Modeling © 2012 Atego
SysML (System Modeling Language) Same as UML
Modified from UML
New for SysML Diagram
Structure
Block Definition
Internal Block
Requirements
Package
Behavior
State Machine
Activity Sequence
Parametric
© 2011 Atego. All Rights Reserved.
10
Use Case
The Four Pillars of SysML 1. Structure
«Block» Anti-Lock Controller
bdd [Package] Vehicle [ABS] «Block» Library:: Electronic Processor
2. Behavior
ibd [Block] Anti-Lock Controller1
«Block» Anti-Lock Controller
«Block» Library:: Electro-Hydraulic Valve c1:modulator interface
«Block» Traction Detector
state machine
«BlockProperty» d1 : Traction Detector
Los s O fTrac tion/
Gripping «BlockProperty» m1 : Brake Modulator
m1
d1
interaction Tire [Traction] stm PreventLockup act
«Block» Brake Modulator
Detect Loss Of Traction
activity/ function Modulate Slipping
TractionLoss
Braking Force RegainTrac tion/
use
definition par [constraint] StraightLineVehicleDynamics [Parametric Diagram]
{f = (tf*bf)*(1-tl)}
: BrakingForceEquation tf
req [Package] Vehicle Specifications [Braking]
{F = ma}
f
Braking Subsystem Specification
Vehicle System Specification
: AccelerationEquation F
c
«requirement» Anti-Lock Performance
«requirement» Stopping Distance
tl bf
a
x
: VelocityEquation v
id#
id#
4. Parametrics : DistanceEquation
102
337
txt The vehicle shall stop from 60 mph within 150ft on a clean dry surface.
txt The Braking subsystem shall prevent wheel lockup under all braking conditions.
v a
{v = dx/dt}
© 2011 Atego. All Rights Reserved.
3. Requirements
«deriveReqt»
{a = dv/dt}
11
Cross Connecting Model Elements 2. Behavior
1. Structure
act PreventLockup [Swimlane Diagram]
ibd [block] Anti-LockController satisfies ibd [block] Anti-LockController satisfies [Internal Diagram] «requirement» [Internal BlockBlock Diagram] «requirement» Anti-Lock Anti-Lock Performance Performance ibd [block] Anti-LockController [Internal Block Diagram] d1:TractionDetector d1:TractionDetector
«allocate» act PreventLockup [Activity Diagram] :TractionDetector
allocatedFrom allocatedFrom c1:modulator «activity»DetectLos d1:Traction «activity»DetectLos c1:modulator Interface OfTraction Of Traction Detector Interface c1:modulator interface m1:BrakeModulator m1:BrakeModulator m1:Brake Modulator allocatedFrom allocatedFrom allocatedFrom allocatedFrom «ObjectNode» «ObjectNode» «activity»Modulate «activity»Modulate TractionLoss: TractionLoss: BrakingForce BrakingForce
DetectLossOf Traction
Modulate Modulate BrakingForce BrakingForce
TractionLoss:
allocatedTo «connector»c1:modulatorInterface
values DutyCycle: Percentage
satisfy
«allocate» :BrakeModulator
par [constraintBlock] StraightLineVehicleDynamics [Parametric Diagram]
req [package] VehicleSpecifications req [package] VehicleSpecifications req [package] VehicleSpecifications [Requirements Diagram - -Braking Requirements] [Requirements Diagram Braking Requirements] [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 Vehicle System Vehicle System Specification Specification Specification
Braking Subsystem BrakingSubsystem Subsystem Braking Specification Specification Specification
«requirement» «requirement»
«requirement» «requirement»
«requirement» StoppingDistance StoppingDistance StoppingDistance
«requirement» Anti-LockPerformance Anti-LockPerformance Anti-LockPerformance
id=“102” id=“102”
id=“102” text=”The text=”Thevehicle vehicleshall shallstop stop text=”The vehicle shall stop from 150 ftft from6060mph mphwithin within 150 from 60 mph within 150 ft onona aclean cleandry drysurface.” surface.” on a clean dry surface.” VerifiedBy «interaction»MinimumStopp ingDistance
id=”337" id=”337"
id=”337" text=”Braking text=”Brakingsubsystem subsystem text=”Braking shall wheel shallprevent preventsubsystem wheel lockup lockup shall prevent wheel lockup under underall allbraking braking conditions.” conditions.” under all braking conditions.” SatisfiedBy SatisfiedBy «block»Anti-LockController «block»Anti-LockController
«deriveReqt»
tf: tf:
tf:
tl: tl:
tl:
bf: bf:
m: m:
bf: f:f:
:BrakingForce :BrakingForce Equation Equation :BrakingForce [f (tf*bf)*(1-tl)] [f == (tf*bf)*(1-tl)] Equation
f:
F:
a: a: :DistanceEquation :DistanceEquation [v = dx/dt] [v = dx/dt]
:DistanceEquation x: dx/dt] [v =
v:
x:
v.Position:x: v.Position:
© 2011 Atego. All Rights Reserved.
4. Parametrics 12
a: a:
[F = ma] a: a:
v: v:
«deriveReqt» «deriveReqt»
3. Requirements
F: F:
[f = (tf*bf)*(1-tl)]
c
:Accelleration :Accelleration Equation Equation :Accelleration [F = = ma] ma] [F Equation
v: v:
:VelocityEquation :VelocityEquation [a = dv/dt] [a = dv/dt]
v:
:VelocityEquation [a = dv/dt]
Data Mining/Data Analysis (ICD Generator) Generate traditional Systems documentation from modeling information
© 2012 Atego
14
Model Execution and Code Generation © 2012 Atego
ACS Process
Model
ACS Transformation Engine IDL/IDL3+ (…)
Ada Java C/C++
© 2011 Atego. All Rights Reserved.
C#
16
Visual Basic
Why use modeling tools?
An altogether different need is to support the automatic generation of “things” from the model Transformation Model Application Artisan Studio Model-based Model TDK ROUNDTRIP
transformations
CHANGE
ACS Model Driven
Model Cache
Generator FORWARD GENERATE
ROUNDTRIP
ACS/TDK offers combination of: Speed Flexibility (to define the mapping)
CODE Edit/compile code in IDE
© 2011 Atego. All Rights Reserved.
17
Code Generation Customization (Transformation Model) «4GGen» QClass
4GGenerator::4GStructure::Class
Rules Gen -> "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";
1
Name : %string Visibility : %string 1
*
When (in O : %object) : %numeric
4GGenerator::4GStructure::Attribute «4GEvalOrder» «4GGen» QInterface Rules Gen -> "Interface"_ Name _"{" CR +1 dConstructorGen CR dDestructorGen CR ClassBody -1 "};" CR CR;
Data Type : %string Name : %string Default Value : %string Access : %string
When (in O : %object) : %numeric
«4GGen» QAttribute Rules Gen -> Access":"_ Data Type _ Name [_"=" _ Default Value] ";" CR;
4GGenerator::4GStructure::Operation *
When (in O : %object) : %numeric
Name : %string Short Return Type : %string Access : %string Text : %string
«4GGen» QFakeOperation Rules Gen ->Short Return Type_ Name "(" [Parameter.Gen {", " Parameter.Gen}] ") {}" CR; When (in O : %object) : %numeric
© 2011 Atego. All Rights Reserved.
18
Matlab Sync
© 2012 Atego
Parametric Diagram
© 2011 Atego. All Rights Reserved.
20
Add Simulink profile to your model
© 2011 Atego. All Rights Reserved.
21
Matlab Syncronizer Allows mapping of types
Creates parametric block to Matlab block mapping
© 2011 Atego. All Rights Reserved.
22
Matlab sample
© 2011 Atego. All Rights Reserved.
23
SySim © 2012 Atego
: 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
© 2012 Atego. All Rights Reserved.
25
Executable Models: Modeling Use Cases
© 2012 Atego. All Rights Reserved.
26
Executable Models: Simulation Use Cases
© 2012 Atego. All Rights Reserved.
27
Executable Model Example: Speed Controller
© 2012 Atego. All Rights Reserved.
28
Parasolver © 2012 Atego
What‘s Needed for System Validation Using Constraints? Typical SE Tasks
Features needed
Simulation
Solvable or executable language for constraints
Analysis Trade Studies Optimization Requirements Checking
Risk Assessment Etc.
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
© 2011 Atego. All rights reserved.
30
Artisan Studio ParaSolver Parts ParaSolver Profile
User‘s Guide Tutorial Example Models
© 2011 Atego. All rights reserved.
31
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
© 2011 Atego. All rights reserved.
32
A Simple Example bdd
par [block] Gamma
bdd [Package] AdditionBDD «block» Gamma
par
c : Real
c : Real
constraints {c = a + b}
add1 : AdditionEqn
c : Real a : Real
1 1
od
1 1 alp
«block» Alpha a : Real
b : Real
bet
«block» Beta b : Real
alp : Alpha
bet : Beta
a : Real
b : Real
gamma01 alp = alpha01 bet = beta01 c : Real = 83.0
gamma01 alp = alpha01 bet = beta01 c : Real
alp alpha01 alp alpha01 a : Real = 63.0
bet beta01
a : Real = 63.0
b : Real = 20.0
© 2011 Atego. All rights reserved.
33
bet beta01 b : Real = 20.0
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
© 2011 Atego. All rights reserved.
34
SysML Parametric Model Execution: Orchestrating External Solvers & Trade Studies System Trade Inputs
MATLAB/Simulink model
Simple math relation
Excel
Mathematica function
Key System MoE © 2011 Atego. All rights reserved.
+ acausal modeling 35
Current and Planned Integrations Mathematica
OpenModellica Matlab Matlab/Simulink Excel
Planned: CAD/CAE Systems, e.g. Catia
© 2011 Atego. All rights reserved.
36
Demos
Satellite Power and Weight Analysis
Little Eye UAV – Area Covered Analysis
© 2011 Atego. All rights reserved.
37
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.
© 2011 Atego. All rights reserved.
38