25
Introduction à la modélisation des systèmes hybrides Benoît Caillaud Marc Pouzet Inria, Rennes ENS, Paris mars-avril 2014 1 / 50

Introduction à la modélisation des systèmes hybrides

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction à la modélisation des systèmes hybrides

Introduction à la modélisation des systèmes hybrides

Benoît Caillaud Marc PouzetInria, Rennes ENS, Paris

mars-avril 2014

1 / 50

Page 2: Introduction à la modélisation des systèmes hybrides

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

Page 3: Introduction à la modélisation des systèmes hybrides

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

Page 4: Introduction à la modélisation des systèmes hybrides

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

Page 5: Introduction à la modélisation des systèmes hybrides

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

Page 6: Introduction à la modélisation des systèmes hybrides

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

Page 7: Introduction à la modélisation des systèmes hybrides

Le cabinet des monstres. . .

7 / 50

Page 8: Introduction à la modélisation des systèmes hybrides

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

Page 9: Introduction à la modélisation des systèmes hybrides

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

Page 10: Introduction à la modélisation des systèmes hybrides

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

Page 11: Introduction à la modélisation des systèmes hybrides

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

Page 12: Introduction à la modélisation des systèmes hybrides

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

Page 13: Introduction à la modélisation des systèmes hybrides

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

Page 14: Introduction à la modélisation des systèmes hybrides

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

Page 15: Introduction à la modélisation des systèmes hybrides

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

Page 16: Introduction à la modélisation des systèmes hybrides

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

Page 17: Introduction à la modélisation des systèmes hybrides

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

Page 18: Introduction à la modélisation des systèmes hybrides

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

Page 19: Introduction à la modélisation des systèmes hybrides

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

Page 20: Introduction à la modélisation des systèmes hybrides

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

Page 21: Introduction à la modélisation des systèmes hybrides

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

Page 22: Introduction à la modélisation des systèmes hybrides

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

Page 23: Introduction à la modélisation des systèmes hybrides

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

Page 24: Introduction à la modélisation des systèmes hybrides

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

Page 25: Introduction à la modélisation des systèmes hybrides

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