introduction à la modélisation des systèmes hybrides
TRANSCRIPT
Introduction à la modélisation des systèmes hybrides
Benoît Caillaud Marc PouzetInria, Rennes ENS, Paris
mars-avril 2014
1 / 50
Hello World : système avec contrôle bang-bang
Radiateur électrique avec thermostat
x = bp ≠ q
avec p > q > 0, x(t0) = x0, x≠ < x+ et :Y___]
___[
b := 1 si x Æ x≠ sinonb := 0 si x Ø x+ sinonb := 0 si t = t0 sinonb inchangé
x≠
x
t
x+
2 / 50
Les systèmes hybrides
Système hybride = couplage systèmes dynamiquestemps continu + temps discret
Typiquement :I Temps continu = système d’équations di�érentielles
I ordinaires (ODE) ou algébriques (DAE)I Temps discret = programme réactif
I automate, équations recurrentes, ...I Couplage continu æ discret :
I franchissement seuil, horloge periodique ∆ événementI Couplage discret æ continu :
I Changement de paramètres système dynamique continuI Changement de système dynamique continu (dimension variable)
3 / 50
Exemple : commandes de vol électriquesHistorique
I Electronique analogique : CF105 Arrow (1958) , Concorde (1969)I Informatisé : Airbus depuis 1984, Boeing 777 et 787
___________________________________________________________________________ © 2005 HIESSE.COM / CPL (A) – 020 Commandes de vol - 5
!"##$%&'()&')*"+)('/"%&$.-'()#
!"#$%&'#("$#)*$+%$*'*,$#23/%)&&20*-."$#'"($#-."#6#
## #
## >#)&+"/$.$'"&'2'"./$#)"##%/)#)12''2-."#
## >#)&+"/$.$'"&'2'"./$#)"##%/)#)"#,.*'"#
## >#+3/%,/"*&$#4%(#
## >#$+%*("/$#4%(#
## >#<&+%$.$'"&'2'"./$# 23/%,/"*&$#@#$+%*("/$#$%(#"'#4%(!#
#
#
#
#
!"#$%"&'()*$%+(,%-*'(,,(,%+(%,#,'()'.'*")#("$#+(.$#,2*#("$#2.#)3:%((28"#"'#1#
(12''"//*$$28"#"++(*-.2&'#(2#,%/0.("#6#
#
A *B
C ;' ;!Cρ= #
#
D%.$#:%&$'2'%&$#-."#$".($#("$#+2/206'/"$#E#'#F#"'#E#!C#F#2.80"&'2&'9#
+"/0"''"&'#)"#)*0*&."/#B;#
#
inertial reference
Rudder pedalsYoke/stickPilot input:
Architecture
de
vol
Air data
commande
4 / 50
Exemple : commandes de vol électriquesÀ quoi ça sert ?
I Protection aéronef (rester dans le domaine de vol)I Simplification pilotage (stabilisation active)I Amélioration maneuvrabilité (spoilers pour le gauchissement)I Réduction trainée (contrôle du centre de gravité)
___________________________________________________________________________ © 2005 HIESSE.COM / CPL (A) – 020 Commandes de vol - 8
+3/%,/"*&$#6#
#
7($#$"/4"&'#1#2.80"&'"/#("#!5#$2&$#+"/'./#"/#("#!C# +2$#)"#)3:%(("0"&'#)"#(2#
:%.:<"#(*0*'"!#"'#("./#2:'*%&#$"#'/2).*'#6#
## >#.*0*&.'*%&#)"#(2#4*'"$$"#(%&8*'.)*&2("#24*%&# $%(#%.#4%(!;#
## >#+.80"&'2'*%&#)"#(2#+"&'"#)"#)"$:"&'";#
#
#
7($#$%&'#$*'.3$#$%*'#6#
## >#+#(1"5'/2)%$;#
## >#+#(1"5'/2)%$#"'#(1*&'/2)%$;#
## >#+#(12//*6/"#).#,.$"(28";#
#
#
'./#(2#+(.+2/'#)"$#24*%&$#:%00"/:*2.5#2:'."($9#(2#,%&:'*%/%,/"*&#"$'#
2$$./3"#+2/#)"$#$./,2:"$#$+%*("/$#-.*#2$$.0"&'#6#
## >#.1.&"#+2/'#.&"#$%/'*"#$&03'/*-."#2:'*43$#+2/#.&"#02&"''"#$+3:*,*-."#
## 23/%,/"*&$#%.#$+"")##/"2M!;#
## >#.12.'/"#+2/'#+2/#.&"#$%/'*"#)*$$&03'/*-."#,%&:'*%&#/%.(*$#2:'*43"#
## +2/#(2#:<2=&"#82.:<*$$"0"&'# 02&:<"!#"&#:%%/)*&2'*%":#("$#
## 2*("/%&$;#
#
6")1'*")%7%89$":$(*),%;%%
#
#
6")1'*")%7%<.#1=*,,(/()'%;%#
!#
#
5 / 50
Les langages de modélisation des systèmes hybridesProgrammation des systèmes discrets et modélisation de
leur environnement physique dans un même langage
Une multitude d’outilsI Commerciaux : Simulink/Stateflow, LabVIEW, Modelica, . . .I Académiques : HyTech, Ptolemy, SpaceEx, Zélus, . . .
Focalisation du cours :I Langages pour une modélisation et une simulation fidèlesI Conception d’un langage/outil de modélisation hybride sur la base
d’un langage réactif synchroneI Recyclage de techniques de compilations issues des langages
synchronesI Clarifier les principes et la sémantique des systèmes hybrides
6 / 50
Le cabinet des monstres. . .
7 / 50
Dynamique des populationsI Deux espèces en compétition sur une seule source de nourriture
Ixi = xi(⁄i ≠ µi(x1, x2)) i = 1, 2
µi(x1, x2) = “i + ”i(x1 + x2)
I Exercice : Montrer que l’espèce 1 élimine l’espèce 2 ssi(⁄1 ≠ “1)/”1 > (⁄2 ≠ “2)/”2 et tend vers la population (⁄1 ≠ “1)/”1.
8 / 50
Dynamique des populationsI Deux espèces en relation prédateur / proieY
_]
_[
xi = xi(⁄i ≠ µi(x1, x2)) i = 1, 2µ1(x1, x2) = “1 ≠ –1x2µ2(x1, x2) = “2 + –2x1
I Le système oscilleI Confirmé par des études de populations animales (Lièvre/Lynx, Cie de
la Baie d’Hudson)9 / 50
Chimie hors équilibre : réactions de Belousov-ZhabotinskyI 2 reactions antagonistes dont 1 auto-catalytiqueI Oscillateur chimique, système dynamique non linéaireI Analogues : morphogénèse (rayures abeilles, poissons, et zèbres);
fonctionnement du coeur, ...Y___]
___[
Br≠ + BrO≠3 + 2H+ ≠æ HBrO2 + HOBr (a)
Br≠ + HOBr + H+ ≠æ Br2 + H2O (b)BrO≠
3 + HBrO2 + H+ ≠æ 2BrO·2 + H2O (c)
BrO·2 + Ce3+ + H+ ≠æ HBrO2 + Ce4+ (d)
Y__]
__[
‘x = x(1 ≠ x)+f q ≠ x
q + x zz = x ≠ z
Mathematical Analysis
• Plotting a few trajectories reveals a stable limit cycle.
• Note that the fixed point is clearly unstable.
10 / 50
La physique est non-régulière
Modéliser = abstraire
électroniquecommutée
mécaniquemulticorps
Zénonmodesglissants
Problèmes spécifiquesI Modélisation : explosion combinatoire des modesI Simulation : méthodes event-driven ine�ectives
11 / 50
Modes glissantsY_]
_[
x = ≠sgn(x) + 2sgn(y)y = ≠2sgn(x) ≠ sgn(y)z = sgn(x) + sgn(y)
I Spirale “carrée”I Attracteur :
droite x = y = 0I Zénon à t = 7.5I Calculer z à t = 10 ?
12 / 50
Modes glissantsY_]
_[
x = ≠sgn(x) + 2sgn(y)y = ≠2sgn(x) ≠ sgn(y)z = sgn(x) + sgn(y)
(1,−3,2)
y
x0
(3,1,0)
(6,9,0)
(9,0,6)
(0,−3,6)
(−1,0,4)
(0,1/3,4)(1/9,0,20/9)
(−3,−1,0)
(−1,3,−2)
I Spirale “carrée”I Attracteur :
droite x = y = 0I Zénon à t = 7.5I Calculer z à t = 10 ?
12 / 50
Modes glissantsY_]
_[
x = ≠sgn(x) + 2sgn(y)y = ≠2sgn(x) ≠ sgn(y)z = sgn(x) + sgn(y)
(1,−3,2)
y
x0
(3,1,0)
(6,9,0)
(9,0,6)
(0,−3,6)
(−1,0,4)
(0,1/3,4)(1/9,0,20/9)
(−3,−1,0)
(−1,3,−2) I Spirale “carrée”I Attracteur :
droite x = y = 0I Zénon à t = 7.5I Calculer z à t = 10 ?
12 / 50
systèmes hybrides avec DAE : exemple LDC
w
vLu C
j
S
WWWWWWWU
0 = j Õ ≠ u/L0 = v Õ ≠ j/C0 = u + v + w0 Æ j0 Æ w0 = jw
T
XXXXXXXV
13 / 50
systèmes hybrides avec DAE : exemple LDCS
WWWWWWWU
0 = j Õ ≠ u/L0 = v Õ ≠ j/C0 = u + v + w0 Æ j0 Æ w0 = jw
T
XXXXXXXV
¸ ˚˙ ˝Hybrid DAE system
S
WWWU
0 = j Õ ≠ u/L0 = v Õ ≠ j/C0 = u + v + w0 = w
T
XXXV
¸ ˚˙ ˝mode w=0
S
WWWU
0 = j Õ ≠ u/L0 = v Õ ≠ j/C0 = u + v + w0 = j
T
XXXV
¸ ˚˙ ˝mode j=0
» »S
WWWU
0 = j Õ ≠ u/L0 = v Õ ≠ j/C0 = u + v0 = w
T
XXXV
S
WWWU
0 = j Õ ≠ u/L0 = v Õ
0 = u + v + w0 = j
T
XXXV
» »S
WWWU
j Õ = ≠v/Lv Õ = +j/Cu = ≠vw = 0
T
XXXV
¸ ˚˙ ˝index 0
S
WWWWWU
u = Lj Õ
v Õ = 0w = ≠u ≠ v0 = jj Õ = 0
T
XXXXXV
¸ ˚˙ ˝index 1 (one di�erentiation)14 / 50
systèmes hybrides avec DAE : exemple LDCS
WWWWWWWU
0 = j Õ ≠ u/L0 = v Õ ≠ j/C0 = u + v + w0 Æ j0 Æ w0 = jw
T
XXXXXXXV
¸ ˚˙ ˝Hybrid DAE system
S
WWWU
0 = j Õ ≠ u/L0 = v Õ ≠ j/C0 = u + v + w0 = w
T
XXXV
¸ ˚˙ ˝mode w=0
S
WWWU
0 = j Õ ≠ u/L0 = v Õ ≠ j/C0 = u + v + w0 = j
T
XXXV
¸ ˚˙ ˝mode j=0
» »S
WWWU
j Õ = ≠v/Lv Õ = +j/Cu = ≠vw = 0
T
XXXV
¸ ˚˙ ˝index 0
S
WWWWWU
u = Lj Õ
v Õ = 0w = ≠u ≠ v0 = jj Õ = 0
T
XXXXXV
¸ ˚˙ ˝index 1 (one di�erentiation)
This hybrid DAE system has two modes with guards [w = 0] and [j = 0]I Indexes in each mode di�er and causality analyses di�er
∆ Schedulings di�er14 / 50
DAE + commutation de modes
Y_____]
_____[
N i = 0Ku = 0
u ≠ R i = 0C u ≠ i = 0
’i 0 Æ iDi ‹ uDi Ø 0
Y_]
_[
i Ø 0u Ø
ui = 0
I 2n modesI Ordonnancement dépend
du modeI Dymola : énumère les
modes et exploseI Modularité ∆ DAE ∆
Modelica
15 / 50
DAE + commutation de modes
Y_____]
_____[
N i = 0Ku = 0
u ≠ R i = 0C u ≠ i = 0
’i 0 Æ iDi ‹ uDi Ø 0u
i
Y_]
_[
i Ø 0u Ø
ui = 0
I 2n modesI Ordonnancement dépend
du modeI Dymola : énumère les
modes et exploseI Modularité ∆ DAE ∆
Modelica
15 / 50
DAE + commutation de modes
Y_____]
_____[
N i = 0Ku = 0
u ≠ R i = 0C u ≠ i = 0
’i 0 Æ iDi ‹ uDi Ø 0
Y_]
_[
i Ø 0u Ø
ui = 0
I 2n modesI Ordonnancement dépend
du modeI Dymola : énumère les
modes et exploseI Modularité ∆ DAE ∆
Modelica
15 / 50
Problème de typage : mélange du continu et du discret
Unit Delay
z
1
ScopeIntegrator
1
s
Constant
1
Add
cpttime
0 0.5 1 1.5 2 2.5 30
10
20
30
40
50
60
70
80
Time
I Warning with ‘Unit Delay’ but not with‘Memory’.
I The shape of cpt depends on the stepschosen by the solver.
I Putting another component in parallelcan change the result.
I Similar issues with Stateflow.
16 / 50
Problème de typage : mélange du continu et du discret
Unit Delay
z
1
ScopeIntegrator
1
s
Constant
1
Add
cpttime
0 0.5 1 1.5 2 2.5 30
10
20
30
40
50
60
70
80
Time
I Warning with ‘Unit Delay’ but not with‘Memory’.
I The shape of cpt depends on the stepschosen by the solver.
I Putting another component in parallelcan change the result.
I Similar issues with Stateflow.
Integrator
1s
54
DisplayConstant
1
Chart
t cpts1
{cpt := 0}
[t<=42]{cpt := cpt + 1}
16 / 50
Causality issue: the Simulink state port
Scope
Integrator1
1
s
xo
Integrator0
1
s
xo
Gain1
−4
Gain0
−3
Constant
1
Bias
u−2.0x
y
The output of the state port is the same as the output of theblock’s standard output port except for the following case. Ifthe block is reset in the current time step, the output of thestate port is the value that would have appeared at the block’sstandard output if the block had not been reset.–Simulink Reference (2-685)
t < 2: x(t) = t, y(t) =t
2
2
t = 2: x = ≠3 · last y = ≠6,
y = ≠4 · last x = ≠8
But: y = ≠4 · x = 24 !
17 / 50
Causality issue: the Simulink state port
Scope
Integrator1
1
s
xo
Integrator0
1
s
xo
Gain1
−4
Gain0
−3
Constant
1
Bias
u−2.0x
y
The output of the state port is the same as the output of theblock’s standard output port except for the following case. Ifthe block is reset in the current time step, the output of thestate port is the value that would have appeared at the block’sstandard output if the block had not been reset.–Simulink Reference (2-685)
t < 2: x(t) = t, y(t) =t
2
2
t = 2: x = ≠3 · last y = ≠6,
y = ≠4 · last x = ≠8
But: y = ≠4 · x = 24 !
17 / 50
Causality issue: the Simulink state port
Scope
Integrator1
1
s
xo
Integrator0
1
s
xo
Gain1
−4
Gain0
−3
Constant
1
Bias
u−2.0x
y
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
−6
−4
−2
0
2
x
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50
5
10
15
20
25
Time
yThe output of the state port is the same as the output of theblock’s standard output port except for the following case. Ifthe block is reset in the current time step, the output of thestate port is the value that would have appeared at the block’sstandard output if the block had not been reset.–Simulink Reference (2-685)
t < 2: x(t) = t, y(t) =t
2
2
t = 2: x = ≠3 · last y = ≠6,
y = ≠4 · last x = ≠8
But: y = ≠4 · x = 24 !
17 / 50