13
1 Formale Methoden für eingebettete Systeme Teil 9: Hybride Systeme, Folie 1 © Stefan Kowalewski, 30. Juni 2005 Formale Methoden für eingebettete Systeme Teil 9: Hybride Systeme Prof. Dr. Stefan Kowalewski Lehrstuhl Informatik 11 RWTH Aachen Sommersemester 2005 Beispiel Vorgesehener Produktionsablauf: Füllen von Behälter T1 Aufheizen Verdampfen bis gewünschte Konzentration erreicht ist Heizung ausschalten und T1 leeren Nachbearbeitungsschritt in T2 (Kowalewski et al., Europ. Journal of Control, Special Issue on Hybrid Systems, 2001)

Prof. Dr. Stefan Kowalewski RWTH Aachen Sommersemester 2005embedded.rwth-aachen.de/lib/exe/fetch.php?media=en:lehre:sose05:9...Hybrider Automat (Henzinger, Alur, Sifakis, 1992) leer

Embed Size (px)

Citation preview

1

Formale Methoden für eingebettete SystemeTeil 9: Hybride Systeme, Folie 1

© Stefan Kowalewski, 30. Juni 2005

Formale Methoden für eingebettete SystemeTeil 9: Hybride Systeme

Prof. Dr. Stefan Kowalewski

Lehrstuhl Informatik 11RWTH Aachen

Sommersemester 2005

Beispiel

Vorgesehener Produktionsablauf:

• Füllen von Behälter T1• Aufheizen• Verdampfen bis gewünschte

Konzentration erreicht ist• Heizung ausschalten und T1 leeren• Nachbearbeitungsschritt in T2

(Kowalewski et al., Europ. Journal of Control,Special Issue on Hybrid Systems, 2001)

2

Notabschaltung bei Kühlungsausfall

Randbedingungen:1. Bei fortgesetzter

Wärmezufuhr steigen Temperatur und Druck (geschlossenes System).

2. Bei Abkühlen unter einen Grenzwert beginnt das Material im Verdampfer zu kristallisieren.

→ Gegenläufige Anforderungen:

• Heizung muss früh genugabgeschaltet werden, um gefährlichen Druckanstieg zu vermeiden.

• Heizung muss lange genugeingeschaltet bleiben, um Kristallisierung zu vermeiden.

Vorschlag für Steuerungs-programmSequentialFunction Chart (SFC) nachIEC 1131-3

3

Formale Methoden für eingebettete SystemeTeil 9: Hybride Systeme, Folie 5

© Stefan Kowalewski, 30. Juni 2005

Problemstellung

• Erfüllt das Steuerungsprogramm die folgenden Anforderungen?

– Der Druck darf oberen Grenzwert nicht überschreiten.

– Die Temperatur darf Kristallisationspunkt nicht unterschreiten.

• Zu überprüfen ist:

– logischer Entwurf des SFCs

– Wahl des Wertes für den Parameter Wartezeit (t#4m)

• Anforderungen sind für den gesteuerten Prozess ("geschlossenen Kreis", "technisches System") und nicht für das Steuerungsprogramm formuliert.

Formale Methoden für eingebettete SystemeTeil 9: Hybride Systeme, Folie 6

© Stefan Kowalewski, 30. Juni 2005

Formale Verifikation vonAutomatisierungssystemen

Anforderungen antechnisches System

Spezifikationoder Code

Formalisierung

Formales Modell d.technischen Systems

Formalisierung

Formales Modellder Anforderungen

Beweis

Erkenntnis: Modellder SW erfüllt modellierte

Anforderungen

Fehler gefundenÄnderung des Codes/der Spezifikation

oder

Strecke,Umgebung

4

Formale Methoden für eingebettete SystemeTeil 9: Hybride Systeme, Folie 7

© Stefan Kowalewski, 30. Juni 2005

Formalisierung

Steuerung

Formale Methoden für eingebettete SystemeTeil 9: Hybride Systeme, Folie 8

© Stefan Kowalewski, 30. Juni 2005

Diskretes Modell des Kondensators K1

5

Formale Methoden für eingebettete SystemeTeil 9: Hybride Systeme, Folie 9

© Stefan Kowalewski, 30. Juni 2005

Diskretes Modell von Behälter T2

Formale Methoden für eingebettete SystemeTeil 9: Hybride Systeme, Folie 10

© Stefan Kowalewski, 30. Juni 2005

Diskretes Modell der Steuerung

6

Formale Methoden für eingebettete SystemeTeil 9: Hybride Systeme, Folie 11

© Stefan Kowalewski, 30. Juni 2005

Diskretes Modell für Tank 1

leer

befüllen

verdampfen

ablassen

fertig

Notentleerung(Heizung aus)

Heizungnotabgeschaltet

Kristallbildung

Formale Methoden für eingebettete SystemeTeil 9: Hybride Systeme, Folie 12

© Stefan Kowalewski, 30. Juni 2005

Hybrider Automat (Henzinger, Alur, Sifakis, 1992)

leer

Zuweisung, "Reset"

Diskrete Zustände,"Lokationen"

Diskrete Transitionen

Kontinuierliche Variable

Aktivität

Invariante

Übergangsbedingung,"Guard"

befüllen

T := 100°C

T 30°CT < 35°C

_>_

. .T = T TK ( )Raum

verdampfen

ablassen

fertig

Notentleerung(Heizung aus)

Heizungnotabgeschaltet

Kristallbildung

7

Formale Methoden für eingebettete SystemeTeil 9: Hybride Systeme, Folie 13

© Stefan Kowalewski, 30. Juni 2005

Echtzeitautomat (Alur, Dill, 1990)

leer

befüllen

x := 0

x < 8x 6>_

.x = 1

verdampfen

ablassen

fertig

Notentleerung(Heizung aus)

Heizungnotabgeschaltet

Kristallbildung

Formale Methoden für eingebettete SystemeTeil 9: Hybride Systeme, Folie 14

© Stefan Kowalewski, 30. Juni 2005

Erreichbarkeitsanalyse

Gegeben:– ein hybrider Automat (HA) mit einem hybriden Anfangszustand

(= diskrete Lokation + kontinuierliche Region)– ein hybrider Zielzustand.

Frage:Existiert eine Trajektorie (ein „Lauf“ des HA), die vom Anfangs- zum Zielzustand führt?

Werkzeuge:– Kronos (Verimag, Grenoble), Uppaal (Uppsala & Aalborg):

Echtzeitautomaten (x = 1)– ältere Version von Uppaal: Integrator-Automaten (x ∈{0, 1})– Hytech (Berkeley): „Lineare“ hybride Automaten (x ∈[xmin, xmax])

... .

.

8

Formale Methoden für eingebettete SystemeTeil 9: Hybride Systeme, Folie 15

© Stefan Kowalewski, 30. Juni 2005

Beispiel

Flow

Invariante

Guard

ResetTransition

Lokation

Beispiel (Forts.)

Frage:Gibt es eine Trajektorievon(L1, x = 0 ∧ y ∈ [0, 25])nach(*, x ≥ 51 ∧ y ≥ 34)?

9

Formale Methoden für eingebettete SystemeTeil 9: Hybride Systeme, Folie 17

© Stefan Kowalewski, 30. Juni 2005

Erreichbarkeitsalgorithmus

0. Initialisiere den HA: L := Anfangslokation, P := Anfangspolyeder1. Schneide P mit der Invariante von L.2. Lasse P entsprechend der Aktivität von L wachsen.3. Schneide P mit der Invariante von L.4. Stop, falls L schon mit P besucht wurde. Falls nicht:Für alle TransitionenT von L:5. Schneide P mit dem Guard von T. Falls leer, nehme nächste Transition.6. Falls nicht, setze P entspr. Reset-Ausdruck zurück.7. Setze L := Ziel-Lokation von T, gehe zu Schritt 1.

0. Initialisiere den HA:L := AnfangslokationP := Anfangspolyeder

1. Schneide Pmit der Invariante von L.

2. Lasse P entsprechend der Aktivität von L wachsen.

3. Schneide Pmit der Invariante von L.

4. Stop, falls L schon mit Pbesucht wurde. Falls nicht:

Für alle TransitionenT von L:5. Schneide P mit dem

Guard von T. Falls leer,nehme nächste Transition.

6. Falls nicht, setze P entspr.Reset-Ausdruck zurück.

7. Setze L := Ziel-Lokationvon T, gehe zu Schritt 1.

10

0. Initialisiere den HA:L := AnfangslokationP := Anfangspolyeder

1. Schneide Pmit der Invariante von L.

2. Lasse P entsprechend der Aktivität von L wachsen.

3. Schneide Pmit der Invariante von L.

4. Stop, falls L schon mit Pbesucht wurde. Falls nicht:

Für alle TransitionenT von L:5. Schneide P mit dem

Guard von T. Falls leer,nehme nächste Transition.

6. Falls nicht, setze P entspr.Reset-Ausdruck zurück.

7. Setze L := Ziel-Lokationvon T, gehe zu Schritt 1.

0. Initialisiere den HA:L := AnfangslokationP := Anfangspolyeder

1. Schneide Pmit der Invariante von L.

2. Lasse P entsprechend der Aktivität von L wachsen.

3. Schneide Pmit der Invariante von L.

4. Stop, falls L schon mit Pbesucht wurde. Falls nicht:

Für alle TransitionenT von L:5. Schneide P mit dem

Guard von T. Falls leer,nehme nächste Transition.

6. Falls nicht, setze P entspr.Reset-Ausdruck zurück.

7. Setze L := Ziel-Lokationvon T, gehe zu Schritt 1.

11

0. Initialisiere den HA:L := AnfangslokationP := Anfangspolyeder

1. Schneide Pmit der Invariante von L.

2. Lasse P entsprechend der Aktivität von L wachsen.

3. Schneide Pmit der Invariante von L.

4. Stop, falls L schon mit Pbesucht wurde. Falls nicht:

Für alle TransitionenT von L:5. Schneide P mit dem

Guard von T. Falls leer,nehme nächste Transition.

6. Falls nicht, setze P entspr.Reset-Ausdruck zurück.

7. Setze L := Ziel-Lokationvon T, gehe zu Schritt 1.

0. Initialisiere den HA:L := AnfangslokationP := Anfangspolyeder

1. Schneide Pmit der Invariante von L.

2. Lasse P entsprechend der Aktivität von L wachsen.

3. Schneide Pmit der Invariante von L.

4. Stop, falls L schon mit Pbesucht wurde. Falls nicht:

Für alle TransitionenT von L:5. Schneide P mit dem

Guard von T. Falls leer,nehme nächste Transition.

6. Falls nicht, setze P entspr.Reset-Ausdruck zurück.

7. Setze L := Ziel-Lokationvon T, gehe zu Schritt 1.

31,25

12

0. Initialisiere den HA:L := AnfangslokationP := Anfangspolyeder

1. Schneide Pmit der Invariante von L.

2. Lasse P entsprechend der Aktivität von L wachsen.

3. Schneide Pmit der Invariante von L.

4. Stop, falls L schon mit Pbesucht wurde. Falls nicht:

Für alle TransitionenT von L:5. Schneide P mit dem

Guard von T. Falls leer,nehme nächste Transition.

6. Falls nicht, setze P entspr.Reset-Ausdruck zurück.

7. Setze L := Ziel-Lokationvon T, gehe zu Schritt 1.

31,2532,8125

0. Initialisiere den HA:L := AnfangslokationP := Anfangspolyeder

1. Schneide Pmit der Invariante von L.

2. Lasse P entsprechend der Aktivität von L wachsen.

3. Schneide Pmit der Invariante von L.

4. Stop, falls L schon mit Pbesucht wurde. Falls nicht:

Für alle TransitionenT von L:5. Schneide P mit dem

Guard von T. Falls leer,nehme nächste Transition.

6. Falls nicht, setze P entspr.Reset-Ausdruck zurück.

7. Setze L := Ziel-Lokationvon T, gehe zu Schritt 1.

31,2532,8125

33,20312533,30078125

33 1/3

...

13

0. Initialisiere den HA:L := AnfangslokationP := Anfangspolyeder

1. Schneide Pmit der Invariante von L.

2. Lasse P entsprechend der Aktivität von L wachsen.

3. Schneide Pmit der Invariante von L.

4. Stop, falls L schon mit Pbesucht wurde. Falls nicht:

Für alle TransitionenT von L:5. Schneide P mit dem

Guard von T. Falls leer,nehme nächste Transition.

6. Falls nicht, setze P entspr.Reset-Ausdruck zurück.

7. Setze L := Ziel-Lokationvon T, gehe zu Schritt 1.

Formale Methoden für eingebettete SystemeTeil 9: Hybride Systeme, Folie 26

© Stefan Kowalewski, 30. Juni 2005

Theoretisch:– Erreichbarkeit ist unentscheidbar für allgemeine HA.– Entscheidbarkeit gilt nur für sehr eingeschränkte Klassen von HA

(Alur et al., 1995).– Für rektanguläre Automaten ist die Erreichbarkeit partiell

entscheidbar.

Praktisch:– Hytech verwendet ganzzahlige Arithmetik (kein Runden).⇒ Integer-Überläufe nach wenigen Iterationen.

– Rechenzeit wächst exponentiell mit der Anzahl kontinuierlicher Variablen (zusätzlich zur diskreten Zustandsraumexplosion).

Abhilfe: Abstraktion

Erreichbarkeitsanalyse von HA: Grenzen