Introduction à la modélisation des systèmes hybrides

Preview:

Citation preview

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&'#(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#,%&:'*%&#23/%,/"*&#"$'#

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'*%&#24":#("$#

## 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

Recommended