modélisation hétérogène – systèmes hybrides
TRANSCRIPT
Modélisation hétérogène – Systèmes hybrides
Modélisation des systèmes 1
Modélisation hétérogène – Systèmes hybrides
Modélisation des systèmes 2
1. Système hybride: introduction
2. Système Temps-Réel: automate temporisé } Modélisation } Vérification
3. Système Hybride: automate hybride } Modélisation } Vérification
Exemple : Thermostat
Modélisation des systèmes 3
} Variables } Température : variable continue T à valeurs réelles } Mode : variable discrète M à valeurs dans {ON, OFF}
} Flux dans chacun des modes } Mode ON : Ṫ = K×(100 – T)
invariants : (M = ON) ∧ (T < 82°) } Mode OFF : Ṫ = – K×T
invariants : (M = OFF) ∧ (T > 68°)
} Sauts entre les modes (instantanés) } Si (M = ON) ∧ (T ≥ 80°) : ON OFF } Si (M = OFF) ∧ (T ≤ 70°) : OFF ON «
Hyb
rid
Syst
ems,
Part
I »,
Lee
& S
eshi
a, U
C B
erke
ley
Exemple : Thermostat
Modélisation des systèmes 4
« H
ybri
d Sy
stem
s, Pa
rt I
», L
ee &
Ses
hia,
UC
Ber
kele
y
} Variables } Température : variable continue T à valeurs réelles
} Mode : variable discrète M à valeurs dans {ON, OFF}
Exemple : Thermostat
Modélisation des systèmes 5
« H
ybri
d Sy
stem
s, Pa
rt I
», L
ee &
Ses
hia,
UC
Ber
kele
y
} Variables } Température : variable continue T à valeurs réelles
} Mode : variable discrète M à valeurs dans {ON, OFF}
OFF
ON
Exemple : Thermostat
Modélisation des systèmes 6
« H
ybri
d Sy
stem
s, Pa
rt I
», L
ee &
Ses
hia,
UC
Ber
kele
y
} Variables } Température : variable continue T à valeurs réelles
} Mode : variable discrète M à valeurs dans {ON, OFF}
} Flux dans chacun des modes } Mode ON : Ṫ = K×(100 – T)
invariants : (M = ON) ∧ (T < 82°)
} Mode OFF : Ṫ = – K×T invariants : (M = OFF) ∧ (T > 68°)
OFF
ON
Exemple : Thermostat
Modélisation des systèmes 7
« H
ybri
d Sy
stem
s, Pa
rt I
», L
ee &
Ses
hia,
UC
Ber
kele
y
} Variables } Température : variable continue T à valeurs réelles
} Mode : variable discrète M à valeurs dans {ON, OFF}
} Flux dans chacun des modes } Mode ON : Ṫ = K×(100 – T)
invariants : (M = ON) ∧ (T < 82°)
} Mode OFF : Ṫ = – K×T invariants : (M = OFF) ∧ (T > 68°)
OFF T > 68°
ON T < 82°
T
•
= −KT T
•
= K(100−T )
Exemple : Thermostat
Modélisation des systèmes 8
« H
ybri
d Sy
stem
s, Pa
rt I
», L
ee &
Ses
hia,
UC
Ber
kele
y
} Variables } Température : variable continue T à valeurs réelles
} Mode : variable discrète M à valeurs dans {ON, OFF}
} Flux dans chacun des modes } Mode ON : Ṫ = K×(100 – T)
invariants : (M = ON) ∧ (T < 82°)
} Mode OFF : Ṫ = – K×T invariants : (M = OFF) ∧ (T > 68°)
} Sauts entre les modes (instantanés) } Si (M = ON) ∧ (T ≥ 80°) : ON OFF
} Si (M = OFF) ∧ (T ≤ 70°) : OFF ON
OFF T > 68°
ON T < 82°
T
•
= −KT T
•
= K(100−T )
Exemple : Thermostat
Modélisation des systèmes 9
« H
ybri
d Sy
stem
s, Pa
rt I
», L
ee &
Ses
hia,
UC
Ber
kele
y
} Variables } Température : variable continue T à valeurs réelles
} Mode : variable discrète M à valeurs dans {ON, OFF}
} Flux dans chacun des modes } Mode ON : Ṫ = K×(100 – T)
invariants : (M = ON) ∧ (T < 82°)
} Mode OFF : Ṫ = – K×T invariants : (M = OFF) ∧ (T > 68°)
} Sauts entre les modes (instantanés) } Si (M = ON) ∧ (T ≥ 80°) : ON OFF
} Si (M = OFF) ∧ (T ≤ 70°) : OFF ON
OFF T > 68°
ON T < 82°
T ≥ 80° / T := T
T
•
= −KT T
•
= K(100−T )
T ≤ 70° / T := T
Exemple : Thermostat
Modélisation des systèmes 10
« H
ybri
d Sy
stem
s, Pa
rt I
», L
ee &
Ses
hia,
UC
Ber
kele
y
Mode
Invariant
Equation différentielle (flux)
Transition = condition de garde / reset
OFF T > 68°
ON T < 82°
T ≤ 70° / T := T
T ≥ 80° / T := T
T
•
= −KT T
•
= K(100−T )
Transition initiale
Une des exécutions possibles de l’automate
Définition
Modélisation des systèmes 11
} Automate hybride = modèle formel pour les systèmes hybrides } Différents modes (états), transitions déclenchées par des événements } Comportement dans chaque mode décrit par des équations différentielles
Définition
Modélisation des systèmes 12
} Automate hybride = modèle formel pour les systèmes hybrides } Différents modes (états), transitions déclenchées par des événements } Comportement dans chaque mode décrit par des équations différentielles
} Formellement, automate hybride est H=(S, X, Σ, Init, F, T, I) avec } S: un ensemble fini de places (locations) } X: un ensemble fini de variables à valeur dans R (l’ensemble de réels) } Σ: un alphabet fini
Définition
Modélisation des systèmes 13
} Automate hybride = modèle formel pour les systèmes hybrides } Différents modes (états), transitions déclenchées par des événements } Comportement dans chaque mode décrit par des équations différentielles
} Formellement, automate hybride est H=(S, X, Σ, Init, F, T, I) avec } S: un ensemble fini de places (locations) } X: un ensemble fini de variables à valeur dans R (l’ensemble de réels) } Σ: un alphabet fini } Init: initial condition, Init⊂Q×Rn, n est le nombre de X
} F: une fonction qui associe à chaque s∈S un ensemble d’activités, et chaque activité donne une évolution possible des variables dans s
} T: un ensemble de transition d’actions, T ⊂ S × Σ × C(X) × Rn × S. Chaque e =< s, a, ϕ, v, s’>∈ T correspond à une transition entre la place s et la place s’, gardée par la contrainte ϕ, étiquetée par la lettre a, et qui remet la valuation v à des variables X. } I: S → C(X) des invariants de places
Définition
Modélisation des systèmes 14
OFF t > 68°
ON t < 82°
b t ≥ 80° / t := t
t•
= −Kt t•
= K(100− t)
a
t ≤ 70° / t := t t :=69
H=(S, X, Σ, Init, F, T, I)
Définition
Modélisation des systèmes 15
} S= {OFF, ON}
OFF t > 68°
ON t < 82°
b t ≥ 80° / t := t
t•
= −Kt t•
= K(100− t)
a
t ≤ 70° / t := t t :=69
H=(S, X, Σ, Init, F, T, I)
Définition
Modélisation des systèmes 16
} S= {OFF, ON}
} X={t}
OFF t > 68°
ON t < 82°
b t ≥ 80° / t := t
t•
= −Kt t•
= K(100− t)
a
t ≤ 70° / t := t t :=69
H=(S, X, Σ, Init, F, T, I)
Définition
Modélisation des systèmes 17
} S= {OFF, ON}
} X={t}
} Σ={a, b}
OFF t > 68°
ON t < 82°
b t ≥ 80° / t := t
t•
= −Kt t•
= K(100− t)
a
t ≤ 70° / t := t t :=69
H=(S, X, Σ, Init, F, T, I)
Définition
Modélisation des systèmes 18
} S= {OFF, ON}
} X={t}
} Σ={a, b}
} Init={(OFF, 69)}
OFF t > 68°
ON t < 82°
b t ≥ 80° / t := t
t•
= −Kt t•
= K(100− t)
a
t ≤ 70° / t := t t :=69
H=(S, X, Σ, Init, F, T, I)
Définition
Modélisation des systèmes 19
} S= {OFF, ON}
} X={t}
} Σ={a, b}
} Init={(OFF, 69)}
} F(OFF)= { }; F(ON)={ }
OFF t > 68°
ON t < 82°
b t ≥ 80° / t := t
t•
= −Kt t•
= K(100− t)
a
t ≤ 70° / t := t t :=69
t•
= −Kt t•
= K(100− t)
H=(S, X, Σ, Init, F, T, I)
Définition
Modélisation des systèmes 20
} S= {OFF, ON}
} X={t}
} Σ={a, b}
} Init={(OFF, 69)}
} F(OFF)= { }; F(ON)={ }
} T={(OFF, a, t<=70, t:=t, ON), (ON, b, t>=80, t:=t, OFF)}
OFF t > 68°
ON t < 82°
b t ≥ 80° / t := t
t•
= −Kt t•
= K(100− t)
a
t ≤ 70° / t := t t :=69
t•
= −Kt t•
= K(100− t)
H=(S, X, Σ, Init, F, T, I)
Définition
Modélisation des systèmes 21
} S= {OFF, ON}
} X={t}
} Σ={a, b}
} Init={(OFF, 69)}
} F(OFF)= { }; F(ON)={ }
} T={(OFF, a, t<=70, t:=t, ON), (ON, b, t>=80, t:=t, OFF)}
} I(OFF)={t>68°}, I(ON)=(t<82°)
OFF t > 68°
ON t < 82°
b t ≥ 80° / t := t
t•
= −Kt t•
= K(100− t)
a
t ≤ 70° / t := t t :=69
t•
= −Kt t•
= K(100− t)
H=(S, X, Σ, Init, F, T, I)
Exemple : Balle rebondissante
Modélisation des systèmes 22
} Comment passer à la modélisation ? } Variables continues ? } Modes ? } Transitions ?
} Position, vitesse } En vol } Rebond
Position verticale x
Equations ?
Exemple : Balle rebondissante
Modélisation des systèmes 23
} Comment passer à la modélisation ? } Variables continues ? } Modes ? } Transitions ?
} Position, vitesse } En vol } Rebond
Position verticale x
x•
= v
v•
= −g
Automate hybride ?
Exemple : Balle rebondissante
Modélisation des systèmes 24
x = 0 & v ≤ 0 / v := –Cv
x•
= v
v•
= −g
EnVol x ≥ 0
x := x0 v := v0
Position verticale x
x•
= v
v•
= −g
Exécution(s) possible(s) : x(t), v(t) ?
x, v
t
Exemple : Balle rebondissante, simulation
Modélisation des systèmes 25
Modèle modal
Modélisation des systèmes 26
Modèle modal discret
Modèle continu du mode 1
Modèle continu du mode 2
Exercice : Modéliser des équations différentielles
Modélisation des systèmes 27
} Objectif = modéliser les équations différentielles de la balle rebondissante en utilisant des schémas-bloc
} Eléments de modélisation à disposition : } Constante : émet un signal constant continu
} Intégrateur : produit en sortie l’intégration du signal d’entrée ‣ Prend en paramètre la valeur initiale du signal de sortie
(s0)
} Relation : égalité entre deux signaux
s
•
(t) s(t)
s(t) u(t) = s(t)
c(t)
x•
= v
v•
= −g
Exercice : Equations différentielles
Modélisation des systèmes 28
v0 = 12.0 x0 = 10.0
Exemple : Balle rebondissante, correction
Modélisation des systèmes 29
Modèle continu du mode « free »
Modèle modal (discret)
Exemple : Balle rebondissante
Modélisation des systèmes 30
Modèle continu du mode « free »
Modèle modal discret
Exemple : Balle rebondissante, simulation
Modélisation des systèmes 31
?
Exemple : Balle rebondissante, simulation
Modélisation des systèmes 32
???
Comportement « Zénon »
Modélisation des systèmes 33
} Comportement Zénon = comportement dans lequel un nombre infini d’actions discrètes est effectué en un temps fini
} Comportement Zénon = artefact de modélisation } Manifestation d’un manque de réalisme du modèle } Apparition d’erreurs numériques dans la simulation
« H
ybri
d Sy
stem
s, Pa
rt I
», L
ee &
Ses
hia,
UC
Ber
kele
y
Exemple : Balle rebondissante, correction
Modélisation des systèmes 34
Correction de l’effet Zénon
Modèle continu du mode « free »
Modèle modal (discret)
Exemple : Thermostat, automate hybride
Modélisation des systèmes 35
« H
ybri
d Sy
stem
s, Pa
rt I
», L
ee &
Ses
hia,
UC
Ber
kele
y
off T > 68°
on T < 82°
T ≤ 70° / T := T
T ≥ 80° / T := T
T
•
= −KT T
•
= K(100−T )
Une des exécutions possibles de l’automate
Exemple : Thermostat, modèle modal
Modélisation des systèmes 36
Modèle continu du mode « heating » & du mode « cooling »
Modèle modal (discret)
dTdt
= HeatSource− 0.4×T
Exemple : Thermostat, simulation
Modélisation des systèmes 37
Composition parallel
Modélisation des systèmes 38
Deux automates hybrides H1=(S1, X1, Σ1, Init1, F1, T1, I1) et H2=(S2, X2, Σ2, Init2, F2, T2, I2) Composition: • si a∈Σ1 et a∈Σ2, alors les transitions étiquetées par a dans H1 et H2 doivent être synchronisées • si a ∈Σ1 et non a∈Σ2, alors la transition étiquetée par a dans H1 doit être synchronisée avec la transition du temps avec durée 0 dans H2 • si non a∈Σ1 et a∈Σ2, alors la transition étiquetée par a dans H2 doit être synchronisée avec la transition du temps avec durée 0 dans H1 • pour τ ∈ R≥0, la transition du temps avec la durée τ dans H1 doit être synchronisée avec la transition du temps avec la durée τ dans H2
Exemple (Train, Barrière, Contrôleur)
Modélisation des systèmes 39
Far
Near
Past
Train Ø Trois modes: Far, Near, Past (x: distance)
Ø Far: invariant (x>=1000) act ( ) Ø Near: invariant (x>=0) act ( ) Ø Past: invariant (x>= -100) act ( )
−50 ≤ x•
≤ −40
−50 ≤ x•
≤ −30
−50 ≤ x•
≤ −30
Exemple (Train, Barrière, Contrôleur)
Modélisation des systèmes 40
Far x > =1000
−50 ≤ x•
≤ −40
Near x > =0
−50 ≤ x•
≤ −30
Past x > = -100
−50 ≤ x•
≤ −30
Train Ø Trois modes: Far, Near, Past (x: distance)
Ø Far: invariant (x>=1000) act ( ) Ø Near: invariant (x>=0) act ( ) Ø Past: invariant (x>= -100) act ( )
−50 ≤ x•
≤ −40
−50 ≤ x•
≤ −30
−50 ≤ x•
≤ −30
Exemple (Train, Barrière, Contrôleur)
Modélisation des systèmes 41
Far x > =1000
−50 ≤ x•
≤ −40
Near x > =0
−50 ≤ x•
≤ −30
Past x > = -100
−50 ≤ x•
≤ −30
x=1000; approche
x=0 x= - 100; exit x:=5900;
Train Ø Trois modes: Far, Near, Past (x: distance)
Ø Far: invariant (x>=1000) act ( ) Ø Near: invariant (x>=0) act ( ) Ø Past: invariant (x>= -100) act ( )
Ø Transitions d’action Ø Far à Near: garde (x=1000) approache Ø Near à Past: garde (x=0) Ø Past àFar: garde (x=-100) exit reset (x:=5900)
−50 ≤ x•
≤ −40
−50 ≤ x•
≤ −30
−50 ≤ x•
≤ −30
Exemple (Train, Barrière, Contrôleur)
Modélisation des systèmes 42
MoveUp
Open
Closed
MoveDown
Barrière Ø Quatre modes: Open, MoveDown, Closed, MoveUp (y: position)
Ø Open: invariant (y=90) act ( ) Ø MoveDown: invariant (y>=0) act ( ) Ø Closed: invariant (y=0) act ( ) Ø MoveUp: invariant (y<=90) act ( )
y•
= 0
y•
= −9
y•
= 0
y•
= 9
Exemple (Train, Barrière, Contrôleur)
Modélisation des systèmes 43
MoveUp y < =90
y•
= 9
Open y = 90
y•
= 0
Closed y = 0
y•
= 0
MoveDown y > = 0
y•
= −9
Barrière Ø Quatre modes: Open, MoveDown, Closed, MoveUp (y: position)
Ø Open: invariant (y=90) act ( ) Ø MoveDown: invariant (y>=0) act ( ) Ø Closed: invariant (y=0) act ( ) Ø MoveUp: invariant (y<=90) act ( )
y•
= 0
y•
= −9
y•
= 0
y•
= 9
Exemple (Train, Barrière, Contrôleur)
Modélisation des systèmes 44
MoveUp y < =90
y•
= 9
Open y = 90
y•
= 0
Closed y = 0
y•
= 0
y=90
Barrière Ø Quatre modes: Open, MoveDown, Closed, MoveUp (y: position)
Ø Open: invariant (y=90) act ( ) Ø MoveDown: invariant (y>=0) act ( ) Ø Closed: invariant (y=0) act ( ) Ø MoveUp: invariant (y<=90) act ( )
Ø Transitions d’action Ø OpenàMoveDown: lower Ø MoveDownàClosed: garde (y=0) Ø ClosedàMoveUp: raise Ø MoveUpàOpen: garde (y=90)
MoveDown y > = 0
y•
= −9
lower raise
y=0
y•
= 0
y•
= −9
y•
= 0
y•
= 9
Exemple (Train, Barrière, Contrôleur)
Modélisation des systèmes 45
Idle
C2
C1
approach
Contrôleur Ø Trois modes: Idle, C1, C2
Ø Idle: invariant ( ) act ( ) Ø C1: invariant ( ) act ( ) Ø C2 : invariant ( ) act ( )
Ø Transitions d’action Ø IdleàC1: approach Ø C1àIdle: lower Ø IdleàC2: exit
Ø C2àIdle: raise
lower exit
raise
Exemple (Train, Barrière, Contrôleur)
Modélisation des systèmes 46
Idle
z•
=1∧u•
= 0
C2
C1
approach
Contrôleur Ø Trois modes: Idle, C1, C2
Ø Idle: invariant ( ) act ( ) Ø C1: invariant ( ) act ( ) Ø C2 : invariant ( ) act ( )
Ø Transitions d’action Ø IdleàC1: approach Ø C1àIdle: lower Ø IdleàC2: exit Ø C2àIdle: raise
z•
=1∧u•
= 0 z•
=1∧u•
= 0
lower exit
raise
z•
=1∧u•
= 0
z•
=1∧u•
= 0
z•
=1∧u•
= 0
Exemple (Train, Barrière, Contrôleur)
Modélisation des systèmes 47
Contrôleur Ø Trois modes: Idle, C1, C2
Ø Idle: invariant ( ) act ( ) Ø C1: invariant (z<=u) act ( ) Ø C2 : invariant (z<=u) act ( )
Ø Transitions d’action Ø IdleàC1: approach reset (z:=0) Ø C1àIdle: lower Ø IdleàC2: exit reset (z:=0) Ø C2àIdle: raise
Idle
z•
=1∧u•
= 0
C2 z <= u
C1 z <= u
approach; z:=0
z•
=1∧u•
= 0 z•
=1∧u•
= 0
lower exit; z:=0
raise
z•
=1∧u•
= 0
z•
=1∧u•
= 0
z•
=1∧u•
= 0
Far x > =1000
−50 ≤ x•
≤ −40
Near x > =0
−50 ≤ x•
≤ −30
Past x > = -100
−50 ≤ x•
≤ −30
x=1000; approche
x=0 x= - 100; exit x:=5900;
MoveUp y < =90
y•
= 9
Open y = 90
y•
= 0
Closed y = 0
y•
= 0
y=90
MoveDown y > = 0
y•
= −9
lower raise
y=0
Idle
z•
=1∧u•
= 0
C2 z <= u
C1 z <= u
approach; z:=0
z•
=1∧u•
= 0 z•
=1∧u•
= 0
lower exit; z:=0
raise Composition ?
Far x > =1000
−50 ≤ x•
≤ −40
Near x > =0
−50 ≤ x•
≤ −30
Past x > = -100
−50 ≤ x•
≤ −30
x=1000; approche
x=0 x= - 100; exit x:=5900;
MoveUp y < =90
y•
= 9
Open y = 90
y•
= 0
Closed y = 0
y•
= 0
y=90
MoveDown y > = 0
y•
= −9
lower raise
y=0
Idle
z•
=1∧u•
= 0
C2 z <= u
C1 z <= u
approach; z:=0
z•
=1∧u•
= 0 z•
=1∧u•
= 0
lower exit; z:=0
raise Composition ? Condition initiale: u:=6, x:=1500, z:=0, y:=90
Far/Open/Idle x>=1000&y=90
−50 ≤ x•
≤ −40
y•
= 0
z•
=1∧u•
= 0
u:=6, x:=1500, z:=0 y:=90
Composition
Modélisation des systèmes 50
Far/Open/Idle x>=1000&y=90
−50 ≤ x•
≤ −40
y•
= 0
z•
=1∧u•
= 0
Near/Open/C1 x>=0&y=90&z<=u
−50 ≤ x•
≤ −30
y•
= 0
z•
=1∧u•
= 0
x=1000 approach z:=0
u:=6, x:=1500, z:=0 y:=90
Composition
Modélisation des systèmes 51
Far/Open/Idle x>=1000&y=90
−50 ≤ x•
≤ −40
y•
= 0
z•
=1∧u•
= 0
Near/Open/C1 x>=0&y=90&z<=u
−50 ≤ x•
≤ −30
y•
= 0
z•
=1∧u•
= 0
Near/MoveDown/Idle x>=0&y>=0
−50 ≤ x•
≤ −30
y•
= −9
z•
=1∧u•
= 0
lower x=1000 approach z:=0
u:=6, x:=1500, z:=0 y:=90
Composition
Modélisation des systèmes 52
Far/Open/Idle x>=1000&y=90
−50 ≤ x•
≤ −40
y•
= 0
z•
=1∧u•
= 0
Near/Open/C1 x>=0&y=90&z<=u
−50 ≤ x•
≤ −30
y•
= 0
z•
=1∧u•
= 0
Near/MoveDown/Idle x>=0&y>=0
−50 ≤ x•
≤ −30
y•
= −9
z•
=1∧u•
= 0
Near/Closed/Idle x>=0&y=0
−50 ≤ x•
≤ −30
y•
= 0
z•
=1∧u•
= 0
lower
y=0
x=1000 approach z:=0
u:=6, x:=1500, z:=0 y:=90
Composition
Modélisation des systèmes 53
Far/Open/Idle x>=1000&y=90
−50 ≤ x•
≤ −40
y•
= 0
z•
=1∧u•
= 0
Near/Open/C1 x>=0&y=90&z<=u
−50 ≤ x•
≤ −30
y•
= 0
z•
=1∧u•
= 0
Near/MoveDown/Idle x>=0&y>=0
−50 ≤ x•
≤ −30
y•
= −9
z•
=1∧u•
= 0
Near/Closed/Idle x>=0&y=0
−50 ≤ x•
≤ −30
y•
= 0
z•
=1∧u•
= 0
Past/Closed/Idle x>= -100&y=0
−50 ≤ x•
≤ −30
y•
= 0
z•
=1∧u•
= 0
lower
y=0
x=0
x=1000 approach z:=0
u:=6, x:=1500, z:=0 y:=90
Composition
Modélisation des systèmes 54
Far/Open/Idle x>=1000&y=90
−50 ≤ x•
≤ −40
y•
= 0
z•
=1∧u•
= 0
Near/Open/C1 x>=0&y=90&z<=u
−50 ≤ x•
≤ −30
y•
= 0
z•
=1∧u•
= 0
Near/MoveDown/Idle x>=0&y>=0
−50 ≤ x•
≤ −30
y•
= −9
z•
=1∧u•
= 0
Near/Closed/Idle x>=0&y=0
−50 ≤ x•
≤ −30
y•
= 0
z•
=1∧u•
= 0
Past/Closed/Idle x>= -100&y=0
−50 ≤ x•
≤ −30
y•
= 0
z•
=1∧u•
= 0
Far/Closed/C2 x>=1000&y=0&z<=u
−50 ≤ x•
≤ −40
y•
= 0
z•
=1∧u•
= 0
lower
y=0
x=0 x=-100; exit x:=5900 z:=0
x=1000 approach z:=0
u:=6, x:=1500, z:=0 y:=90
Composition
Modélisation des systèmes 55
Far/Open/Idle x>=1000&y=90
−50 ≤ x•
≤ −40
y•
= 0
z•
=1∧u•
= 0
Near/Open/C1 x>=0&y=90&z<=u
−50 ≤ x•
≤ −30
y•
= 0
z•
=1∧u•
= 0
Near/MoveDown/Idle x>=0&y>=0
−50 ≤ x•
≤ −30
y•
= −9
z•
=1∧u•
= 0
Near/Closed/Idle x>=0&y=0
−50 ≤ x•
≤ −30
y•
= 0
z•
=1∧u•
= 0
Past/Closed/Idle x>= -100&y=0
−50 ≤ x•
≤ −30
y•
= 0
z•
=1∧u•
= 0
Far/Closed/C2 x>=1000&y=0&z<=u
−50 ≤ x•
≤ −40
y•
= 0
z•
=1∧u•
= 0
Far/Moveup/Idle x>=1000&y<=90
−50 ≤ x•
≤ −40
y•
= 9
z•
=1∧u•
= 0
lower
y=0
x=0 x=-100; exit x:=5900 z:=0
raise
x=1000 approach z:=0
u:=6, x:=1500, z:=0 y:=90
Composition
Modélisation des systèmes 56
Far/Open/Idle x>=1000&y=90
−50 ≤ x•
≤ −40
y•
= 0
z•
=1∧u•
= 0
Near/Open/C1 x>=0&y=90&z<=u
−50 ≤ x•
≤ −30
y•
= 0
z•
=1∧u•
= 0
Near/MoveDown/Idle x>=0&y>=0
−50 ≤ x•
≤ −30
y•
= −9
z•
=1∧u•
= 0
Near/Closed/Idle x>=0&y=0
−50 ≤ x•
≤ −30
y•
= 0
z•
=1∧u•
= 0
Past/Closed/Idle x>= -100&y=0
−50 ≤ x•
≤ −30
y•
= 0
z•
=1∧u•
= 0
Far/Closed/C2 x>=1000&y=0&z<=u
−50 ≤ x•
≤ −40
y•
= 0
z•
=1∧u•
= 0
Far/Moveup/Idle x>=1000&y<=90
−50 ≤ x•
≤ −40
y•
= 9
z•
=1∧u•
= 0
lower
y=0
x=0 x=-100; exit x:=5900 z:=0
raise
y=90
x=1000 approach z:=0
u:=6, x:=1500, z:=0 y:=90
Composition
Modélisation des systèmes 57
Far/Open/Idle x>=1000&y=90
−50 ≤ x•
≤ −40
y•
= 0
z•
=1∧u•
= 0
Near/Open/C1 x>=0&y=90&z<=u
−50 ≤ x•
≤ −30
y•
= 0
z•
=1∧u•
= 0
Near/MoveDown/Idle x>=0&y>=0
−50 ≤ x•
≤ −30
y•
= −9
z•
=1∧u•
= 0
Near/Closed/Idle x>=0&y=0
−50 ≤ x•
≤ −30
y•
= 0
z•
=1∧u•
= 0
Past/Closed/Idle x>= -100&y=0
−50 ≤ x•
≤ −30
y•
= 0
z•
=1∧u•
= 0
Far/Closed/C2 x>=1000&y=0&z<=u
−50 ≤ x•
≤ −40
y•
= 0
z•
=1∧u•
= 0
Far/Moveup/Idle x>=1000&y<=90
−50 ≤ x•
≤ −40
y•
= 9
z•
=1∧u•
= 0
lower
y=0
x=0 x=-100; exit x:=5900 z:=0
raise
y=90
x=1000 approach z:=0
Calculer u pour que y=0 soit arrivé avant x=0
u:=6, x:=1500, z:=0 y:=90
Modélisation hétérogène – Systèmes hybrides
Modélisation des systèmes 58
1. Système hybride: introduction
2. Système Temps-Réel: automate temporisé } Modélisation } Vérification
3. Système Hybride: automate hybride } Modélisation } Vérification
Atteignabilité
Modélisation des systèmes 59
} Deux problèmes } Problème de l’atteignabilité
} Données:
(a) H un système hybride
(b) S’ un ensemble d’états. } Réponse: oui s’il existe une trajectoire qui atteint S’, non sinon.
} Calcul des états atteignables } Données (a) H un système hybride } Réponse: l’ensemble des états atteints par les trajectoires de H.
Résultats
Modélisation des systèmes 60
} Théorème: Le problème de l’atteignabilité est indécidable pour les systèmes hybrides.
} Conséquences: puisque le problème est indécidable on s’intéressera à des
semi-algorithmes de vérification, c’est-à-dire à des méthodes de vérification qui peuvent ne pas terminer dans certains cas.
} Méthodes: 1. Analyse en avant 2. Analyse en arrière 3. Abstraction àCounter-Example Guided Abstraction Refinement (CEGAR)
CEGAR
Modélisation des systèmes 61
CEGAR : Exemple
Modélisation des systèmes 62
OFF t > 68°
ON t < 82°
b t ≥ 80°
t•
= −t t•
=100− t
t:=[60,90] a
t ≤ 70°
CEGAR : Exemple
Modélisation des systèmes 63
OFF t > 68°
ON t < 82°
b t ≥ 80°
t•
= −t t•
=100− t
t:=[60,90] a
t ≤ 70°
ON: t entre 60 et 82 OFF: t entre 68 et 80
CEGAR : Exemple
Modélisation des systèmes 64
OFF t > 68°
ON t < 82°
b t ≥ 80°
t•
= −t t•
=100− t
t:=[60,90] a
t ≤ 70°
ON: t entre 60 et 82 OFF: t entre 68 et 80 Abstraction: automate hybride automate temporisé
OFF
c < 0.18
ON
c < 1.2
b c ≥ 0.55/ c:=0
c:=0 a
c ≥ 0.15/ c:=0
CEGAR : Exemple
Modélisation des systèmes 65
OFF t > 68°
ON t < 82°
b t ≥ 80°
t•
= −t t•
=100− t
t:=[60,90] a
t ≤ 70°
OFF
c < 0.18
ON
c < 1.2
b c ≥ 0.55/ c:=0
c:=0 a
c ≥ 0.15/ c:=0
Propriété: après 2 unités de temps, la durée maximum dans l’état ON est 0.66.
CEGAR : Exemple
Modélisation des systèmes 66
OFF t > 68°
ON t < 82°
b t ≥ 80°
t•
= −t t•
=100− t
t:=[60,90] a
t ≤ 70°
Propriété: après 2 unités de temps, la durée maximum dans l’état ON est 0.66. Contre-exemple ?
OFF
c < 0.18
ON
c < 1.2
b c ≥ 0.55/ c:=0
c:=0 a
c ≥ 0.15/ c:=0
CEGAR : Exemple
Modélisation des systèmes 67
OFF t > 68°
ON t < 82°
b t ≥ 80°
t•
= −t t•
=100− t
t:=[60,90] a
t ≤ 70°
Propriété: après 2 unités de temps, la durée maximum dans l’état ON est 0.66. Contre-exemple: (on, 0) −→1 (on, 1) −→b (off, 0) −→0.15 (off, 0.15) −→a (on, 0) −→1 (on, 1) −→b (off, 0) −→0.15 (off, 0.15) −→a (on, 0) −→1 (on, 1)
OFF
c < 0.18
ON
c < 1.2
b c ≥ 0.55/ c:=0
c:=0 a
c ≥ 0.15/ c:=0
CEGAR : Exemple
Modélisation des systèmes 68
OFF t > 68°
ON t < 82°
b t ≥ 80°
t•
= −t t•
=100− t
t:=[60,90] a
t ≤ 70°
Propriété: après 2 unités de temps, la durée maximum dans l’état ON est 0.66. Ce contre-exemple ne peut pas être validé dans automate hybride, pourquoi?
OFF
c < 0.18
ON
c < 1.2
b c ≥ 0.55/ c:=0
c:=0 a
c ≥ 0.15/ c:=0
CEGAR : Exemple
Modélisation des systèmes 69
OFF t > 68°
ON t < 82°
b t ≥ 80°
t•
= −t t•
=100− t
t:=[60,90] a
t ≤ 70°
Propriété: après 2 unités de temps, la durée maximum dans l’état ON est 0.66. Ce contre-exemple ne peut pas être validé dans automate hybride, car après une transition discrète, pour l’état ON, on a t entre 70 et 82 au lieu de entre 60 et 82
OFF
c < 0.18
ON
c < 1.2
b c ≥ 0.55/ c:=0
c:=0 a
c ≥ 0.15/ c:=0
CEGAR : Exemple
Modélisation des systèmes 70
OFF t > 68°
ON t < 82°
b t ≥ 80°
t•
= −t t•
=100− t
t:=[60,90] a
t ≤ 70°
Propriété: après 2 unités de temps, la durée maximum dans l’état ON est 0.66. Ce contre-exemple guide le raffinement: diviser ON en deux états
OFF
c < 0.18
ON
c < 1.2
b c ≥ 0.55/ c:=0
c:=0 a
c ≥ 0.15/ c:=0
CEGAR : Exemple
Modélisation des systèmes 71
OFF t > 68°
ON t < 82°
b t ≥ 80°
t•
= −t t•
=100− t
t:=[60,90] a
t ≤ 70°
Propriété: après 2 unités de temps, la durée maximum dans l’état ON est 0.66. Ce contre-exemple guide raffinement: diviser ON en deux états
OFF
c < 0.18
ON
c < 0.66
b c ≥ 0.55/ c:=0
c:=[60,90] a
c ≥ 0.15/ c:=0
ON
c < 1.2
b c ≥ 0.4/ c:=0
Automate Hybrid (retenir)
Modélisation des systèmes 72
Ø Modelisation
Ø Interprétation de AH: système de transition (infini)
Ø Modéliser avec la description du système (Zeno)
Ø Composition
Ø Vérification
Ø Atteignabilité: problème indécidable
Ø CEGAR