Modellprädiktive Regelung

Transcription

Modellprädiktive Regelung
Modellprädiktive Regelung
— Seminarskript —
Lehrstuhl Mathematik V
Fakultät für Mathematik und Physik
Mathematisches Institut
Universität Bayreuth
Danksagung
Dieses Skript entstand im Rahmen des gleichnamigen Seminars und basiert auf den Ausarbeitungen der teilnehmenden Studenten. Die einzelnen Ausarbeitungen sind weiter im Internet
unter
http://www.uni-bayreuth.de/departments/math/org/mathe5/staff/memb/jpannek/mpcseminar06.html
abrufbar. Ebenfalls ist die zugrundeliegende Literatur zu den Themenblöcken dort verzeichnet. Weitergehende Literatur, die von den Teilnehmern mitverwendet wurde, sind im Literaturverzeichnis dieses Skripts enthalten.
An dieser Stelle möchte ich mich bei den Teilnehmern/innen
Susanne Bauer
Sebastian Peetz
Miriam Kießling
Michael Manger
Florian Häberlein
Christoph Günther
Harald Voit
Tobias Kreisel
Sabine Böhm
Christian Bernhard
Sebastian Götschel
für ihre teils exzellenten Vorträge im Rahmen dieses Seminars, ihren Beiträgen zu den einzelnen Kapiteln sowie ihrem selbständigem Engagement in Sachen Literatur– und Hintergrundsuche bedanken.
Mein besondere Dank gilt hierbei Lars Grüne, unter dessen Aufsicht diese Veranstaltung
stattfand und dessen Fragen, Anmerkungen und Anregungen stets eine Bereicherung nicht
nur für mich, sondern auch für alle anderen Teilnehmer darstellten.
Jürgen Pannek
Inhaltsverzeichnis
Danksagung
a
Inhaltsverzeichnis
IV
Tabellenverzeichnis
V
Abbildungsverzeichnis
VIII
1 Einführung in die lineare MPC
1.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Grundlegende Definitionen der Kontrolltheorie . . . . . .
1.2.1 Lineare Kontrollsysteme . . . . . . . . . . . . . .
1.2.2 Stabilisierungsproblem für lineare Kontrollsysteme
1.3 Lineare MPC Modelle . . . . . . . . . . . . . . . . . . .
1.3.1 Zustandsmodelle . . . . . . . . . . . . . . . . . .
1.3.2 Übertragungsfunktionen (transfer functions) . . .
1.3.3 ARIMAX–Modell . . . . . . . . . . . . . . . . . .
1.4 Problemstellung der modellprädiktiven Regelung . . . . .
1.5 Grundidee von MPC . . . . . . . . . . . . . . . . . . . .
1.6 Anwendungsbeispiele . . . . . . . . . . . . . . . . . . . .
1.6.1 Wärmepumpe . . . . . . . . . . . . . . . . . . . .
1.6.2 Destillationskolonne . . . . . . . . . . . . . . . .
2 Modellprädiktive Regelung mittels GPC
2.1 Was ist GPC? . . . . . . . . . . . . . . . . . . . .
2.2 Lösen von GPC . . . . . . . . . . . . . . . . . . .
2.3 Beispiel . . . . . . . . . . . . . . . . . . . . . . .
2.4 Einfluss der Design-Parameter . . . . . . . . . . .
2.5 Linearquadratische Optimale Steuerung und GPC
2.5.1 Der endliche LQ–Regler . . . . . . . . . .
2.5.2 Der unendliche LQ–Regler . . . . . . . . .
2.5.3 Der Receding Horizon LQ–Regler . . . . .
2.5.4 Das linearquadratische Tracking–Problem
2.6 Filter für Störungen . . . . . . . . . . . . . . . . .
I
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
1
2
3
3
4
4
5
6
10
10
14
.
.
.
.
.
.
.
.
.
.
19
19
21
23
25
26
27
27
28
28
30
II
INHALTSVERZEICHNIS
2.7
2.8
LQG–Regler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
GPC als LQG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 Stabilität beim GPC
3.1 Einführung . . . . . . . . . . . .
3.2 Stabilität mit Hilfe der ARE . . .
3.3 Monotonieeigenschaften der RDE
3.4 Stabilitätseigenschaften des GPC
3.5 Zusammenfassung . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 MPC mittels Linearer Programmierung
4.1 Motivation . . . . . . . . . . . . . . . . . . . .
4.2 Stabilität mittels gemischter Norm . . . . . .
4.2.1 Lösbarkeit und Constraint Horizon . .
4.2.2 Stabilität und Endzustandskriterium .
4.3 Stückweise affines MPC-Gesetz . . . . . . . .
4.3.1 Multiparametrische lineare Programme
4.3.2 Geometrischer mp-LP-Algorithmus . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
30
32
.
.
.
.
.
33
33
33
36
37
38
.
.
.
.
.
.
.
39
39
39
40
40
43
44
45
5 Lösungsansätze nichtlinearer modellprädiktiver Regelungprobleme
5.1 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Reduktion auf lineares MPC–Problem . . . . . . . . . . . . . . . . . . .
5.2.1 Variablen-Transformation . . . . . . . . . . . . . . . . . . . . .
5.2.2 LMPC mit multiplen linearen Modellen . . . . . . . . . . . . . .
5.3 Indirekte Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.1 Verfahren zur Lösung des Randwertproblems . . . . . . . . . . .
5.3.2 Dynamische Programmierung nach Bellman . . . . . . . . . . .
5.4 Direkte Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.1 Lösung mittels voller Diskretisierung . . . . . . . . . . . . . . .
5.4.2 Lösung mittels eines rekursiven Ansatzes . . . . . . . . . . . . .
5.4.3 Konvergenz der Euler-Diskretisierung . . . . . . . . . . . . . . .
5.4.4 Numerische Lösung . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.5 Numerische Probleme . . . . . . . . . . . . . . . . . . . . . . . .
5.5 Anwendung: Reinst–Destillationsanlage . . . . . . . . . . . . . . . . . .
5.5.1 Reinst–Destillationsanlage mit PI–Regler . . . . . . . . . . . . .
5.5.2 Reinst–Destillationsanlage mit MPC–Regler . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
51
51
56
56
58
60
62
65
65
67
67
68
75
80
84
87
88
6 Stabilität und Inverse Optimalität
6.1 Problemstellung . . . . . . . . . . . . . . . . . . .
6.2 Stabilität . . . . . . . . . . . . . . . . . . . . . .
6.2.1 Direkte Methode . . . . . . . . . . . . . .
6.2.2 Monotonie der Wertefunktion . . . . . . .
6.3 Stabilität durch Modifikation der Problemstellung
6.3.1 Terminal equality constraint . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
91
91
93
94
96
97
97
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
III
INHALTSVERZEICHNIS
6.4
6.3.2 Endkosten . . . . . . . . . . . . . . . . .
6.3.3 Menge der Endbedingungen . . . . . . .
6.3.4 Endkostenfunktion und Endbedingungen
Inverse Optimalität . . . . . . . . . . . . . . . .
7 NMPC mit Hilfe von Beobachtern
7.1 Überblick . . . . . . . . . . . . . . . . . .
7.2 Beobachtbarkeit . . . . . . . . . . . . . . .
7.3 Feedback–Kontrolle und Beobachter . . . .
7.3.1 Linearisierung . . . . . . . . . . . .
7.3.2 Regelung mittels Integral-Kontrolle
7.3.3 Gain Scheduling . . . . . . . . . . .
7.4 Modellprädiktive Regelung . . . . . . . . .
7.5 Beobachter Design in der ENOCF . . . . .
7.6 Einbettung des Beobachters in MPC . . .
7.7 Beispiel . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 98
. 100
. 100
. 101
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
103
103
104
104
105
107
108
109
110
113
115
8 MPC Toolbox in Matlab
8.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . .
8.1.1 Die Rolle der MPC Toolbox in der Matlab-Familie .
8.1.2 Grundlegende Fähigkeiten der MPC Toolbox . . . .
8.2 Beispiel: Leerlauffüllungsregelung . . . . . . . . . . . . . .
8.2.1 Problemstellung . . . . . . . . . . . . . . . . . . . .
8.2.2 Problemmodellierung . . . . . . . . . . . . . . . . .
8.2.3 Implementierung des Systems . . . . . . . . . . . .
8.2.4 Implementierung des Reglers . . . . . . . . . . . . .
8.2.5 Simulation des closed-loop-Verhaltens . . . . . . . .
8.2.6 Vergleich verschiedener Regler . . . . . . . . . . . .
8.2.7 Import des Reglers in Simulink . . . . . . . . . . .
8.3 Der Blick hinter die Kulissen der MPC Toolbox . . . . . .
8.3.1 Algorithmen für unbeschränkte Probleme . . . . . .
8.3.2 Algorithmen für beschränkte Probleme . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
117
117
117
118
119
120
120
121
122
124
127
128
129
129
130
9 Hybride MPC
9.1 Einleitung . . . . . . . . . . . . .
9.2 Klassen hybrider Systeme . . . .
9.2.1 Stückweise affine Systeme
9.2.2 Max-Min-Plus Scaling . .
9.2.3 Gemischt-logische Systeme
9.2.4 Äquivalenzen . . . . . . .
9.3 MPC für MLD-Systeme . . . . .
9.3.1 Problemstellung . . . . . .
9.3.2 Lösungsmöglichkeiten . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
135
135
136
136
137
137
140
142
142
143
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
IV
INHALTSVERZEICHNIS
9.4
Messrauschen und hybride MPC . . . . . . . .
9.4.1 Modellproblem . . . . . . . . . . . . .
9.4.2 Regelung zu einem Punkt . . . . . . .
9.4.3 Regelung zu zwei Punkten . . . . . . .
9.4.4 Modifikationen des MPC-Algorithmus .
.
.
.
.
.
10 Grenzen von MPC
10.1 Grundlagen . . . . . . . . . . . . . . . . . . . .
10.1.1 Begriffsklärung . . . . . . . . . . . . . .
10.1.2 Sätze . . . . . . . . . . . . . . . . . . . .
10.1.3 Lineare Systeme . . . . . . . . . . . . . .
10.2 Beispiele . . . . . . . . . . . . . . . . . . . . . .
10.2.1 Artsteins Kreise mit Nebenbedingungen
10.2.2 Ursprung als Endbeschränkung . . . . .
10.2.3 Einheitsscheibe als Endbeschränkung . .
10.3 Fazit . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
144
144
145
146
149
.
.
.
.
.
.
.
.
.
153
153
153
154
157
157
157
159
161
163
A Programmcode zur Generierung von GPC–Lösungen
165
B Erweiterter Kalman–Filter
167
C Matlab–Toolbox: Plots und Quelltext
169
C.1 Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
C.2 Quelltext zu Kapitel 8.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Literaturverzeichnis
183
Tabellenverzeichnis
5.1
5.2
Gemessene Daten der Reinst–Destillationsanlage . . . . . . . . . . . . . . . .
Steuergrößen der Reinst–Destillationsanlage . . . . . . . . . . . . . . . . . .
85
85
6.1
Bedingungen für asymptotische Stabilität des closed–loop Systems (6.33) . .
96
8.1
Übersicht über verschiedene Störungsarten . . . . . . . . . . . . . . . . . . . 119
V
VI
TABELLENVERZEICHNIS
Abbildungsverzeichnis
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
1.11
1.12
1.13
Problemstellung von MPC . . . . . . . . . . . . . .
MPC–Strategie Schritt 1 . . . . . . . . . . . . . . .
MPC–Strategie Schritt 2 . . . . . . . . . . . . . . .
MPC–Strategie Schritt 3 . . . . . . . . . . . . . . .
Ergebnis des Algorithmus . . . . . . . . . . . . . .
Basisstruktur von MPC . . . . . . . . . . . . . . .
Referenztrajektorie . . . . . . . . . . . . . . . . . .
MPC–Analogie . . . . . . . . . . . . . . . . . . . .
Schematische Darstellung einer Wärmepumpe . . .
Gebäudeschema für Modellierung . . . . . . . . . .
Simulationsergebnisse Wärmepumpe . . . . . . . .
Schematische Darstellung einer Destillationskolonne
Simulationsergebnisse Destillationskolonne . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
5
6
7
7
8
8
9
10
11
11
14
15
17
2.1
2.2
2.3
Verwendung eines gestörtes Signals . . . . . . . . . . . . . . . . . . . . . . .
Erneut mit gestörtem, jedoch unterschiedlichem Signal . . . . . . . . . . . .
Ungestörtes Signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
24
24
4.1
4.2
4.3
4.4
Startpolyeder CR0
Partition 1 . . . . .
Partition 2 . . . . .
Partition 3 . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
48
48
48
48
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
Nichtkonvexes Problem . . . . . . . . . . . . . . . . . . . .
Linearisierung durch Variablen - Transformation . . . . . .
LMPC mit multiplen linearen Modellen . . . . . . . . . . .
LOLIMOT–Iteration zur Unterteilung . . . . . . . . . . . .
LOLIMOT–Baum . . . . . . . . . . . . . . . . . . . . . . .
Single–Shooting . . . . . . . . . . . . . . . . . . . . . . . .
Multiple–Shooting . . . . . . . . . . . . . . . . . . . . . .
Entscheidungsablauf . . . . . . . . . . . . . . . . . . . . .
Gitter unterschiedlicher Stufe . . . . . . . . . . . . . . . .
Armijo–Goldstein Suche in einer Trust–Region Umgebung
Deaktivierung einer Nebenbedingung . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
52
56
58
59
60
63
64
65
66
79
80
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
VII
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
VIII
ABBILDUNGSVERZEICHNIS
5.12
5.13
5.14
5.15
5.16
5.17
5.18
5.19
5.20
Aktivierung einer Nebenbedingung . . . . . . . . . .
Problem der Aktivität einer Nebenbedingung . . . . .
Rechenzeitentwicklung im MPC–Verlauf . . . . . . .
Schemazeichnung einer Destillationskolonne . . . . .
Schemazeichnung eines Destillationsbodens . . . . . .
Regelkreis eines PI–Reglers . . . . . . . . . . . . . . .
Wendetangentenverfahren nach Ziegler–Nichols . . . .
Schema des NMPC–Reglers . . . . . . . . . . . . . .
Vergleich NMPC — PI bei Änderung der Zuflussrate
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
80
82
83
84
86
87
87
88
90
8.1
8.2
8.3
8.4
8.5
8.6
8.7
8.8
8.9
Signalflussplan des cmpc-Reglers . . . . . . . . . . . . . . . . . . . . .
Simulation für die Fahrstufe D“ mit Modellfehler . . . . . . . . . . . .
”
Simulation für die Fahrstufe N“, mit Modellfehler . . . . . . . . . . .
”
Vergleich von Simulationen für die Fahrstufe D“ . . . . . . . . . . . .
”
Signalflussplan des linearen Kontrollsystems in Simulink . . . . . . . .
Signalflussplan der nichtlinearen Regelstrecke mit zusätzlicher Störung .
Prinzip der saturierten Beschränkungen . . . . . . . . . . . . . . . . . .
Dantzig-Wolfe-Methode der aktiven Mengen . . . . . . . . . . . . . . .
Beispiel zur Dantzig-Wolfe-Methode der aktiven Mengen . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
122
125
126
128
128
129
130
132
133
9.1
9.2
9.3
9.4
9.5
9.6
9.7
Äquivalenzen . . . . . . . . . . . . . . . . . . . . . .
Aufgabenstellung . . . . . . . . . . . . . . . . . . . .
Anwendungsbeispiel Hindernisvermeidung . . . . . .
Regelung zu zwei Punkten: Startsituation . . . . . . .
Regelung zu zwei Punkten, 1.Fall: y + κ(y + e) ∈ Hb .
Regelung zu zwei Punkten, 2.Fall: y + κ(y + e) ∈ Ha
Unmöglichkeit der Hindernisvermeidung . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
141
146
146
147
148
148
149
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10.1 Artsteins Kreise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
10.2 Ursprung als Endbeschränkung . . . . . . . . . . . . . . . . . . . . . . . . . 160
10.3 Einheitsscheibe als Endbeschränkung . . . . . . . . . . . . . . . . . . . . . . 162
C.1
C.2
C.3
C.4
C.5
C.6
C.7
C.8
C.9
C.10
Simulation für die Fahrstufe D“ ohne Modellfehler . . . . . . . . . . .
”
Simulation für die Fahrstufe N“ ohne Modellfehler . . . . . . . . . . .
”
Simulation für die Fahrstufe D“ mit Modellfehler . . . . . . . . . . . .
”
Simulation für die Fahrstufe N“ mit Modellfehler . . . . . . . . . . . .
”
Simulation für die Fahrstufe D“ ohne Modellfehler, erhöhte Gewichte .
”
Simulation für die Fahrstufe N“ mit Modellfehler, erhöhte Gewichte .
”
Vergleich von Simulationen für die Fahrstufe D“, H unbeschränkt . . .
”
Vergleich von Simulationen für die Fahrstufe D“, H beschränkt . . . .
”
Linearer cmpc-Regler an nichtlinearer Regelstrecke, Ausgangsvariablen
Linearer cmpc-Reglers an nichtlinearen Regelstrecke, Kontrollvariablen
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
169
170
170
171
171
172
173
174
175
175
Kapitel 1
Einführung in die lineare MPC
1.1
Einleitung
Modellprädiktive Regelung oder auch Model (Based) Predictive Control (MBPC oder MPC)
ist eine Methode, mit der Feedback–Regler sowohl für lineare als auch für nichtlineare Systeme durch Verfahren der Online–Optimierung berechnet werden können.
Auf Grund ihrer großen Flexibilität ist MPC unter den modernen Regelungsalgorithmen
wahrscheinlich die Methode mit den meisten praktischen Anwendungen. MPC eignet sich
für beschränkte, multivariable Systeme und für Kontrollprobleme, bei denen die Offline–
Berechnung der Kontrollfunktion sehr schwierig oder sogar unmöglich ist. Einer der großen
Vorteile von MPC ist seine Fähigkeit, die Beschränkungen des Systems zu behandeln, weswegen diese Verfahren sehr interessant für die Industrie sind.
Die Theorie dieses Kapitel beruht zu einem großen Teil auf den Büchern von M. Chidambram [15] und E.F. Camacho und C. Bordons [14] während die Anwendungen den Arbeiten
von R.W. Wimmer [68] und M. Diehl [21] entnommen sind.
1.2
1.2.1
Grundlegende Definitionen der Kontrolltheorie
Lineare Kontrollsysteme
Kontrollsysteme sind dynamische Systeme in kontinuierlicher oder diskreter Zeit, die von
einem Parameter u ∈ Rm abhängen, der sich abhängig von der Zeit und/oder dem Zustand
des Systems verändern kann. Dieser Parameter kann entweder als Steuergröße verstanden
werden, die von außen aktiv beeinflusst werden kann (z.B. Beschleunigung bei einem Fahrzeug) oder als Störung, die auf das System wirkt (z.B. Straßenunebenheiten bei einem Auto,
Kursschwankungen bei Wechselkursen).
Es handelt sich hier jedoch nicht um Kontrolle im Sinne von Überwachung, sondern um Einflussnahme von außen. Man spricht von Steuerung, wenn die Parameter u nur von der Zeit t
abhängen, und von Regelung, wenn die Parameter u vom aktuellen Zustand x(t) abhängen.
In der Kontrolltheorie linearer Systeme [32, 37, 63] beschäftigt man sich im Allgemeinen mit
Systemen, die in kontinuierlicher Zeit definiert sind und durch gewöhnliche Differentialglei-
2 Kapitel 1: Einführung in die lineare MPC
chungen beschrieben werden können. Solche Systeme sind durch Differentialgleichungen der
Form
ẋ(t) = f (t, x(t), u(t))
(1.1)
gegeben. Die Variable t ∈ R wird hierbei als Zeit aufgefasst, die Größe x(t) ∈ Rn ist der
Zustand und u(t) ∈ Rm die Kontrolle oder der Kontrollwert zur Zeit t.
Definition 1.1 (Lineares Kontrollsystem mit Ausgang).
Ein lineares zeitinvariantes Kontrollsystem mit Ausgang ist gegeben durch die Gleichung
ẋ(t) = Ax(t) + Bu(t)
y(t) = Cx(t)
(1.2)
mit A ∈ Rn×n , B ∈ Rn×m und C ∈ Rk×n .
1.2.2
Stabilisierungsproblem für lineare Kontrollsysteme
Anstatt die Kontrolle als Steuerung abhängig von t anzusetzen, kann alternativ eine Regelung bestimmt werden, in der die Kontrollfunktion in jedem Zeitpunkt zustandsabhängig
durch u(t) = F (x(t)) gegeben ist. Hier soll nun diese Funktion F : Rn → Rm bestimmt
werden. Eine solche Funktion, die jedem Zustand einen Kontrollwert zuordnet, nennt man
Feedback.
Da unser System linear ist, wählen wir auch die Feedback–Funktion F linear, also u = F x
für ein F ∈ Rm×n . Das System ist nun gegeben durch eine lineare zeitinvariante Differentialgleichung der Form:
ẋ(t) = Ax(t) + BF x(t) = (A − BF )x(t)
y(t) = Cx(t)
(1.3)
Definition 1.2. Gegeben sei ein lineares Kontrollsystem (1.2). Das (Feedback–) Stabilisierungsproblem besteht darin, eine lineare Abbildung F : Rm → Rn (bzw. die dazugehörige
Matrix F ∈ Rm×n ) zu finden, so dass die gewöhnliche Differentialgleichung
ẋ(t) = (A + BF )x(t)
y(t) = Cx(t)
(1.4)
asymptotisch stabil ist.
Wir wollen nun einen Feedback–Regler für lineare Kontrollsysteme mit dem Ansatz der
modellprädiktiven Regelung bestimmen.
Bemerkung 1.3. Für andere Konstruktionen von Feedback–Reglern sei an dieser Stelle auf
die Arbeiten von L. Grüne [32] und den Büchern von E.D. Sontag [63] und D. Hinrichsen
und A.J. Pritchard [37] verwiesen.
3
1.3 Lineare MPC Modelle
1.3
Lineare MPC Modelle
Das Prozessmodell ist der Grundstein von MPC. Das Modell sollte die Prozessdynamik
voll erfassen und ebenfalls so aufgestellt werden, dass die Vorhersagen auch berechnet werden können. Gleichzeitig sollte es intuitiv sein und eine theoretische Analyse erlauben. Das
Prozessmodell ist notwendig, um die vorhergesagten Ausgangsgrößen ŷ(t + k|t), im Folgenden auch Outputs genannt, in einer zukünftigen Instanz zu kalkulieren. Dabei bezeichnet
ŷ(t + k|t) den Output zum Zeitpunkt t + k ausgehend vom Zeitpunkt t. Die verschiedenen
Strategien von MPC können zahlreiche Modelle benutzen, um die Beziehung zwischen den
Ausgangsgrößen und den messbaren Eingangsgrößen (Inputs) aufzuzeigen. Es kann ebenfalls
ein Störungsmodell betrachtet werden, um das nicht durch das Prozessmodell wiedergespiegelte Verhalten wie auch nicht–messbare Eingangsgrößen, Messrauschen und Modellfehler
zu beschreiben. Diese Modelle werden wir jedoch an dieser Stelle nicht berücksichtigen.
Praktisch kann jede mögliche Form der Modellierung in einer MPC–Formulierung verwendet
werden, die Folgenden sind jedoch am gebräuchlichsten.
1.3.1
Zustandsmodelle
Viele modellprädiktive Algorithmen verwenden im Gegensatz zu (1.2) auch zeitdiskrete Modelle. Das hierzu analoge zeitdiskrete Modell ist gegeben durch
x(t + 1) = Ax(t) + Bu(t)
y(t) = Cx(t).
(1.5)
Hier ist sowohl die Kontrollfunktion u(t) als auch die Lösung x(t) nur für t ∈ Z definiert
und die Dynamik ist durch eine Differenzengleichung gegeben. Setzt man in (1.2) eine Kontrollfunktion ein, die konstant auf Intervallen der Form [k, k + 1), k ∈ Z, ist, so liefern die
beiden Modelle für t ∈ Z die gleichen Lösungen, wenn man A und B in (1.5) als
A
e
Z
und
1
eA(1−t) Bdt
(1.6)
0
wählt. Man kann also kontinuierliche Modelle in zeitdiskrete Modelle überführen und erhält
so aus einer Differentialgleichung ein zeitdiskretes Modell. Diese Modelle werden (lineare)
Zustandsmodelle genannt.
Die Vorhersage der Ausgangsgrößen ist für Zustandsmodelle gegeben durch
k
ŷ(t + k|t) = C x̂(t + k|t) = C[A x(t) +
k
X
i=1
Ai−1 Bu(t + k − i|t)].
(1.7)
Bemerkung 1.4. Wenn Modelle dieser Form für ein gegebenes Problem bekannt sind und
in einem gegebenen Algorithmus effizient verwendet werden können, werden normalerweise
diese Modelle benutzt.
4 Kapitel 1: Einführung in die lineare MPC
1.3.2
Übertragungsfunktionen (transfer functions)
Es kann jedoch sein, dass geeignete Zustandsmodelle nicht bekannt sind oder die Modelle
sich aus strukturellen Gründen für gewisse Algorithmen nicht eignen. Daher gibt es weitere
Arten von Modellen, die alternativ verwendet werden können, etwa solche, in denen der
Zustand x(t) gar nicht auftaucht, da sie direkt durch eine Abbildung von u nach y gegeben
sind. Derartige Systeme werden etwa in der Arbeit von R.R. Bitmead, M. Gevers und V.
Wertz [10] verwendet. Da x(t) dabei völlig vernachlässigt wird, fixiert man üblicherweise
x0 = 0, was für lineare Systeme keinen wesentlichen Informationsverlust bedeutet, da man
die Ausgangsfunktion ỹ für x̃0 6= 0 durch Addition von CeAt x̃0 bzw. CAt x̃0 zu y erhalten
kann. Die wahrscheinlich wichtigste Klasse solcher Modelle sind die Übertragungsfunktionen
(transfer functions): Hierbei werden im kontinuierlichen Fall t ∈ R die Funktionen u und y
zunächst durch ihre Laplace–Transformationen
Z ∞
û(s) =
u(t)e−st dt
(1.8)
Z0 ∞
ŷ(s) =
y(t)e−st dt
(1.9)
0
für s ∈ C dargestellt.
Bemerkung 1.5. Allgemein bezeichnet man dies auch als Darstellung im Frequenzbereich.
Die Transferfunktion ist dann die Abbildung G : C → Rl×m , für welche die Relation
ŷ(s) = G(s)û(s)
(1.10)
für x0 = 0 gilt. Für die von (1.2) induzierte y−u–Relation gilt gerade G(s) = C(sId−A)−1 B.
Umgekehrt lassen sich zu jeder Übergangsfunktion G Matrizen A, B, C finden, so dass (1.2)
das gleiche Verhalten wie G beschreibt.
Im zeitdiskreten Fall t ∈ Z kann man analog vorgehen, wenn man statt der Laplace–
Transformation die sogenannte z–Transformation verwendet.
Eine detailiertere Darstellung dieser Vorgehensweise, ihrer Konsequenzen und ihrer Anwendungen findet sich unter anderem in den Büchern von Lunze [43] und H. Unbehauen [67].
1.3.3
ARIMAX–Modell
Ein anderes Modell dieser Art ist das sogenannte ARIMAX–Modell, das aus der Zeitreihenanalyse stammt und bei dem die Beziehung zwischen y und u mittels einer Gleichung
der Form
a0 y(t) + a1 y(t − 1)+ . . . + ara y(t − ra ) = b0 u(t − 1) + b1 u(t − 2) + . . . + br−b u(t − rb ) (1.11)
beschrieben wird. Hierbei werden die Parameter ai und bi durch statistische Methoden aus
dem gemessenen Systemverhalten geschätzt. Definiert man den Shift– (Verzögerungs–) Operator q −1 mittels q −1 y(t) := y(t − 1), die Potenz (q −1 )k als k–malige Ausführung dieses
5
1.4 Problemstellung der modellprädiktiven Regelung
Operators und die Polynome A(λ) =
kurz als
Pra
k=0
ak λk sowie B(λ) =
A(q −1 )y(t) = B(q −1 )u(t − 1)
Prb
k=0 bk λ
k
, kann man (1.11)
(1.12)
schreiben.
Für ARIMAX–Modelle ist die Vorhersage der Outputs gegeben durch
B(z −1 )
u(t + k|t).
ŷ(t + k|t) =
A(z −1 )
(1.13)
Bemerkung 1.6. Es können ebenfalls nichtlineare Modelle verwendet werden, um den Prozess darzustellen. Das Problem hierbei ist, dass das Optimierungsproblem komplizierter wird.
Für entsprechende Verfahren zur Lösung dieser Probleme sei auf spätere Kapitel verwiesen.
1.4
Problemstellung der modellprädiktiven Regelung
Das Stabilisierungsproblem für lineare Kontrollsysteme besteht also darin, eine derartige
Feedback–Funktion F zu finden, so dass der Ursprung für die gewöhnliche Differentialgleichung (1.4) asymptotisch stabil ist.
Das Problem des modellprädiktiven Ansatzes ist eine verallgemeinerte Form der
Stabilisierung, das sogenannte Tracking–
Problem. Das Ziel ist hierbei, dass die zu
berechnenden Ausgangsgrößen y(t + k) einer vorgegebenen Referenztrajektorie w(t+
k) folgen, d.h. die Abweichung der Ausgansgrößen y(t + k) von einer bekannten
Referenztrajektorie w(t + k) soll innerhalb
eines bestimmten Zeitfensters (Horizont N)
minimiert werden, um den Prozess so nahe wie möglich an dieser Trajektorie zu
halten. Abbildung 1.1 veranschaulicht dies
noch einmal graphisch.
Abbildung 1.1: Problemstellung von MPC
Erreichen kann man dies, indem man durch
eine auf einem endlichen Horizont N zu berechnende Kontrollfolge u(t + k) Einfluss auf die
zukünftigen Ausgangsgrößen nimmt. Dafür wird eine Zielfunktion J aufgestellt, die normalerweise von quadratischer Form ist. Die Referenztrajektorie w wird dabei als bekannt vorausgesetzt. Die berechneten Ausgangsgrößen y(t+k) werden hingegen abhängig von der gewählten
Modellbeschreibung und den zu optimierenden zukünftigen Kontrollsignalen u(t + k) bzw.
dem Vektor der zukünftigen Kontrollfunktionsänderungen ∆u(t) = u(t)−u(t−1) dargestellt.
6 Kapitel 1: Einführung in die lineare MPC
1.5
Grundidee von MPC
Es sollen nun die zukünftigen Regelgrößen y(t+k) zur Zeit t über einen endlichen Horizont N
unter Verwendung des Prozessmodells vorhergesagt werden. Dabei hängen diese berechneten
Ausgangsgrößen von bekannten Werten der Instanz t und den zukünftigen Kontrollsignalen
u(t + k) ab, welche an das System ausgegeben und berechnet werden sollen. Die zukünftige
Kontrollfolge wird durch Optimieren eines bestimmten Kriteriums berechnet, in den meisten
Fällen durch Minimieren eines Zielfunktionals J.
Vom aktuellen Zeitpunkt t ausgehend wird nun diese Zielfunktion über den Kontrollhorizont
N aufgestellt und mit geeigneten Optimierungsverfahren in Abhängigkeit der zukünftigen
Kontrollwerte u(t + k) bzw. Kontrollwertänderungen ∆u minimiert.
Schritt 1: Berechnung einer Steuerfolge
Zur Zeit t muss eine Steuerfolge ∆u über einen zukünftigen endlichen Horizont N
durch Minimierung des Zielfunktionals
JN (u, t) =
N2
X
j=N1
2
δ(j)[ŷ(t + j|t) − w(t + j)] +
Nu
X
j=1
λ(j)[∆u(t + j − 1)]2 .
(1.14)
bestimmt werden. Diese Optimierung liefert also ∆u(t), ∆u(t+ 1), . . ., ∆u(t+ Nu −1).
u
N1 und N2 sind den Anfang und das
Ende des Kostenhorizonts und Nu ist
Horizont
der Kontrollhorizont, welcher nicht
notwendigerweise mit dem maximalen Horizont zusammenfallen muss.
N1 und N2 markieren also die GrenSteuerfolge
zen des Horizonts, in welchem es erbestimmen
wünscht ist, dass der Output der Referenz folgt. Falls jedoch der Kostenhorizont größer ist als der Kontrollhorizont (also N2 > Nu ), so setzt
man ∆u(t) = 0. Die Koeffizienten
t δ(j) und λ(j) sind normalerweise konstante Werte oder exponentielle FolAbbildung 1.2: MPC–Strategie Schritt 1
gen, die die Zukunftswerte gewichten. Die Optimierung läuft dabei über N2 − N1 + 1 zukünftige Ausgangsgrößen unter
Berücksichtigung von Nu Änderungen des Kontrollsignals.
7
1.5 Grundidee von MPC
Schritt 2: u0 implementieren
u
Von dem so ermittelten Vektor der optimalen Kontrollfunktionsänderungen ∆u
wird nun lediglich der erste Wert ∆u(t)
an das System ausgegeben und angewendet, die Restlichen werden verworfen. Dies
kann nun in das Differentialgleichungssystem (1.1) eingesetzt werden und man
erhält hieraus den Zustandswert x(t + 1).
1. Folgenglied der Steuerung
anwenden
t
Abbildung 1.3: MPC–Strategie Schritt 2
Schritt 3: Verschieben des Horizonts
u
Anschließend wird der Horizont verschoben (Receding–Horizon–Konzept) indem
man den jetzt aktuellen Anfangszeitpunkt
t+1 setzt. Einen entsprechenden Anfangswert zur Lösung des Kontrollsystems hat
man bereits in Schritt 2 bestimmt, so dass
sich die Ausgangssituation von Schritt 1
wieder eingestellt hat. Somit kann dieses
Vorgehen iteriert werden.
Horizont
t
Abbildung 1.4: MPC–Strategie Schritt 3
Bemerkung 1.7. Das Ergebnis dieses Algorithmus ist in Abbildung 1.5 dargestellt. Anhand
der Konstruktion kann man erkennen, dass es sich um eine Feedback–Regelung handelt, da
die jeweils auf den einzelnen Horizonten bestimmte Steuerung abhängig vom Anfangszustand
berechnet wird und jeweils nur ein Wert angewandt wird.
8 Kapitel 1: Einführung in die lineare MPC
u
Abbildung 1.5: Ergebnis des Algorithmus
t
Um diese Strategie zu implementieren, wird die folgende Basisstruktur des Reglers verwendet, die auch in Abbildung 1.6 graphisch veranschaulicht wird:
Grundlage ist ein Modell, mit dessen Hilfe die zukünftigen Ausgangsgrößen vorhergesagt
werden, und zwar basierend auf vergangenen und aktuellen Werten und den vorgeschlagenen optimalen zukünftigen Kontrollaktionen. Diese Aktionen werden unter Berücksichtigung
der Kostenfunktion sowie der Beschränkungen vom Optimierungsalgorithmus kalkuliert.
vorhergesagte
Outputs
frühere Inputs / Outputs
Modell
+
_
vorhergesagte
Inputs
Optimierungs−
algorithmus
Zielfunktion
Referenz
vorhergesagte
Fehler
Beschränkungen
Abbildung 1.6: Basisstruktur von MPC
Bemerkung 1.8. In der Zielfunktion kann man Folgendes berücksichtigen:
ˆ Referenztrajektorie:
Einer der Vorteile der prädiktiven Kontrolle ist, dass die Zukunftsentwicklung der Referenz a–priori bekannt ist, d.h. das System kann reagieren bevor die Veränderung
effektiv durchgeführt wird, was somit den Effekt der Verzögerung vermeidet. Die Zukunftsentwicklung oder Referenz r(t + k) ist in vielen Anwendungen vorher bekannt. In
manchen Anwendungen kann man, obwohl die Referenz sogar konstant ist, eine erkennbare Verbesserung in der Darstellung erhalten, indem man einfach die Instanz kennt,
9
1.5 Grundidee von MPC
in der sich der Wert ändert. In der Minimierung (1.14) verwenden die meisten Methoden normalerweise eine Referenztrajektorie w(t + k), welche nicht notwendigerweise
mit der realen Referenz übereinstimmen muss. Sie ist normalerweise eine gleichmäßige
Approximation des aktuellen Wertes des Ausgangs y(t) zu der bekannten Referenz:
w(t) = y(t)
w(t + k) = αw(t + k − 1) + (1 + α)r(t + k)
k = 1...N
(1.15)
α ist dabei ein Parameter zwischen 0 und 1 (je näher bei der 1, desto gleichmäßiger
die Approximation), welcher ein veränderlichen Wert ist, der die dynamische Resonanz
des Systems beeinflusst. In Abbildung 1.7 wird die Form der Trajektorie gezeigt (für
konstante Referenz r(t + k) und für zwei verschiedene Werte von α).
r(t+k)
w1(t+k)
w2(t+k)
y(t)
t
t
Abbildung 1.7: Referenztrajektorie
ˆ Beschränkungen:
Konstruktive Gründe, wie z.B. Sicherheits– oder Umweltgründe, können Grenzen in
den Prozessvariablen verursachen (z.B. der Wasserpegel in Tanks, Wasserfluss in Rohrleitungen oder Maximaltemperaturen und –druck). Weiterhin sind die Operationsbedingungen aus grundlegenden ökonomischen Gründen durch den Schnittpunkt verschiedener Beschränkungen definiert, so dass das Kontrollsystem nahe an den Grenzen
operieren wird. Zum Beispiel ist es für ein Wirtschaftsunternehmen, welches nur eine bestimmte Schadstoffmenge ausstoßen darf, wünschenswert, so nahe wie möglich
an dieser vorgegebenen Grenze zu operieren. All das macht das Einführen von Beschränkungen in die Kostenfunktion notwendig. Normalerweise erhält man Grenzen
in der Amplitude oder Veränderungen des Kontrollsignals und Beschränkungen in den
Ausgangsgrößen durch:
umin ≤ u(t) ≤ umax
für alle t
dumin ≤ u(t) − u(t − 1) ≤ dumax
für alle t
10 Kapitel 1: Einführung in die lineare MPC
ymin ≤ y(t) ≤ ymax
für alle t
Durch Hinzufügen dieser Beschränkungen in die Zielfunktion wird die Minimierung
komplexer, so dass die Lösung nicht explizit wie im unbeschränkten Fall berechnet werden kann.
Beispiel 1.9. Die MPC–Strategie ist der Kontrollstrategie, welche beim Autofahren verwendet wird, sehr ähnlich:
Der Fahrer kennt die gewünschte Referenztrajektorie über einen endlichen Kontrollhorizont
und entscheidet nun, welche Kontrollaktionen (Beschleunigung, Bremsen, Steuerung) gewählt
werden, um der gewünschten Trajektorie zu folgen. In jeder Instanz werden nur die ersten
Kontrollaktionen verwendet, und die Prozedur wird für die nächste Kontrollentscheidung in
einer Art von receding–horizon–Konzept wiederholt. Wenn man die klassischen Kontrollschemen benutzt (z.B. PIDs), basieren die Kontrollaktionen auf vergangenen Fehlern. Wenn man
die Analogie zum Autofahren erweitert, wäre der PID–Weg zum Autofahren äquivalent dazu,
dass man nur die Spiegel benutzt wie es in Abbildung 1.8 dargestellt ist.
Abbildung 1.8: MPC–Analogie
1.6
1.6.1
Anwendungsbeispiele
Wärmepumpe
Dieses Beispiel orientiert sich an der Arbeit von R.W. Wimmer [68]. Hierbei soll anhand
einer Wärmepumpe die Temperatur eines Raumes geregelt werden. Das Ziel dabei ist, die
Raumtemperatur TR nahe an ihrem Sollwert TR,soll zu halten. Es können dabei auch die Energieaufnahme der Wärmepumpe oder die Betriebskosten minimiert werden. Der Einfachheit
halber beschränken wir uns hier jedoch nur auf die Regelung der Raumtemperatur.
1.5 Grundidee von MPC
11
Wärmepumpe:
Eine Wärmepumpe transportiert
unter Einsatz von mechanischer
Energie Wärmeenergie von einem
tieferen auf ein höheres Temperaturniveau. Im Verdampfer fließt
der Wärmestrom Q1 bei der Temperatur T1 von der Wärmequelle
(z.B. Grundwasser, Umgebungsluft, Erdwärme) zu einem Fluid –
dem sogenannten Arbeitsmittel.
Dadurch wird das Arbeitsmittel
verdampft. Durch eine polytrope
Abbildung 1.9: Schematische Darstellung einer Kompression im Kompressor wird
das gasförmige Arbeitsmittel auf
Wärmepumpe
die Temperatur T2 weiter erhitzt.
Im Kondensator wird das Gas auf Kondensationstemperatur T1 abgekühlt und kondensiert
unter Abgabe des Wärmestroms Q2 an das System. Im Expansionsventil wird das Fluid
durch eine polytrope Expansion wieder auf die Ausgangstemperatur T1 gebracht. Eine schematische Darstellung einer Wärmepumpe ist in Abbildung 1.9 zu sehen.
Modell:
Es wird hier ein lineares Zustandsmodell verwendet. Die Vorlauf– (TV L ), Rücklauf– (TRL ),
Boden– (TB ) und Raumtemperaturen (TR ) sind die vier Zustandsgrößen.
Die Eingangsgrößen sind das Stellsignal der
Wärmepumpe (Q∗W P ), die Außentemperatur (TA ) und die durch Strahlung und Benutzerverhalten verursachten Wärme im
Raum und im Boden (Q∗g,B , Q∗g,R ). Der
Ausgang entspricht den vier Zustandsgrößen.
Grundlage für das Modell ist das Schema in Abbildung 1.10. Ausgehend von der
Wärmepumpe (W P ) wird dem System
durch den Heizwasservolumenstrom VW∗ P (t)
Abbildung 1.10: Gebäudeschema für Modellieder Wärmestrom Q∗W P (t) zugeführt. Die
rung
Temperatur TV L (t) des von der Wärmepumpe in das Abgabesystem gelangenden Heizwassers ist hierbei die beeinflussbare Eingangsgröße des Systems. Das Heizwasser erwärmt nun den Boden (wir gehen von einer Fußbodenheizung aus). Der Wärmestrom Q∗HB (t) entzieht dabei dem Heizwasser Wärme und
Q∗BR ist der Wärmestrom zwischen Boden und Raumluft. Zusätzliche Wärme kann durch
12 Kapitel 1: Einführung in die lineare MPC
Strahlung – hauptsächlich durch Sonneneinstrahlung, aber auch durch Lampen usw. – auf
den Boden übertragen werden. Dieser Störeingang wird durch Q∗g,B (t) dargestellt. Analog
kann Wärme in der Raumluft gewonnen werden (Q∗g,R (t)). Durch den Heizwasservolumenstrom VW∗ P (t) fliesst das Heizwasser, das jetzt auf die Temperatur TRL abgekühlt ist, zurück
zur Wärmepumpe. Dort wird das Wasser wieder durch den Wärmestrom Q∗W P erhitzt. Der
Kreislauf ist nun geschlossen.
Auf Grund dieser Annahmen erhält man nun das folgende zeitkontinuierliche Modell:
ẋ(t) = Ax(t) + Bu(t)
(1.16)
y(t) = Cx(t)
(1.17)
mit
x(t) = [TRL (t)
u(t) = [Q∗g,B (t)
TR (t)]T
TB (t)
Q∗g,R (t)
TA (t)
Q∗W P (t)]T

−ΦRL1 ΦRL2
ΦRL1 ΦRL2
0

−ΦB1 (ΦRL2 + ΦB2 )
ΦB1 ΦB2
A =  ΦB1 ΦRL2
0
βR ΦB2
−(βR ΦB2 + ΦRA )


0
0
0 ΦRL1
0
0 
B =  ΦB1 0
0 βR ΦRA
0

C = [1
0
0]T
Die Parameter Φ(·) und β(·) enthalten dabei thermodynamische Größen, wie zum Beispiel die
Dichte, das Volumen und die spezifische Wärmekapazität des Heizwassers/des Bodens/der
Luft; spezifische Wärmedurchgangszahlen und beteiligte Oberflächen. Eine genaue Herleitung des Modells kann in [68] gefunden werden. Es soll nun ein optimaler Wärmestrom, der
dem Heizwasser aus der Wärmepumpe zugeführt wird, berechnet werden, um die Raumtemperatur so gut wie möglich an ihrem Sollwert anzunähern und dort zu halten.
Berechnung des Wärmebedarfs:
Die Berechnung des optimalen Wärmestroms Q∗Bed (p), welcher dem Gebäude zugeführt werden soll, erfolgt mit einem diskreten LQ–Folgeregelungsalgorithmus.
Da die Werte Q∗g,B (t) und Q∗g,R (t) weder für den jetzigen noch für zukünftige Zeitpunkte
bekannt sind, wollen wir diese hier der Einfachheit halber gleich Null setzen und aus dem
Modell streichen. So erhält man das für die Optimierung relevante, zeitdiskrete System
xp+1 = F xp + Gu Q∗Bed (p) + Gv TˆA (p)
(1.18)
13
1.5 Grundidee von MPC
xp0 = xk = x̂k|k
(1.19)
yp = Hxp
(1.20)
mit
Gu = [ΦRL1
Gv = [0
0
0
0]T
ΦRA ]T
Der Startwert der Zustandsgrößen xp0 ist dabei ein von einem Beobachter geschätzter Zustandsvektor x̂k|k . Der zukünftige Verlauf für die Störgröße TˆA wird von einer Wetterprognose berechnet. Die einzige Ausgangsgröße, welche im Gütekriterium vorkommt und daher
prädiziert werden muss, ist die Raumtemperatur TR (p).
Daraus ergibt sich
H = [0
0
1]T .
Die zu minimierende, quadratische Zielfunktion lautet nun:
J(Q∗Bed )
k+N −1
1 X
[Qp+1 (TR;soll (p + 1) − TR (p + 1))2 + Rp Q∗Bed (p)2 ]
=
2 p=k
(1.21)
Die Faktoren Qp und Rp sind die zeitvariablen Gewichtungen für die Abweichung der Raumtemperatur TR (p) von ihrem Sollwert respektive für den zu optimierenden Wärmestrom
Q∗Bed (p).
Da hier keine Berechnung vorgenommen werden soll, sind in Abbildung 1.11 exemplarisch
Ergebnisse aus der Arbeit von R.W. Wimmer [68] für eine derartige Anlage aufgeführt.
14 Kapitel 1: Einführung in die lineare MPC
Abbildung 1.11: Simulationsergebnisse mit konstanter Außentemperatur, ohne Störung
1.6.2
Destillationskolonne
Ein weiteres Anwendungsfeld von MPC ist die Regelung einer Destillationskolonne. Da die
hier betrachteten Systeme sehr groß und nichtlinear sind, soll nur ein kurzer Einblick in
dieses Problem gegeben werde.
Destillationskolonne:
Eine typische Anwendung in der chemischen Industrie ist die Auftrennung verschiedener
Rohölfraktionen in einer Destillationskolonne in wiederum verschiedene Produktströme. Das
Ziel dieses Produktionsschrittes ist die in Qualität und Quantität marktkonforme Herstellung verschiedener Zwischen– und Endprodukte.
Die betrachtete Kolonne hat mehrere Böden, von denen jeder wie eine einzelne Destillationskolonne arbeitet. Am untersten Boden (Sumpf) befindet sich ein Verdampfer, am obersten
Boden (Kopf) ein Rückfluss–Kondensator. In der Mitte wird z.B. eine Methanol/Ethanol–
Mischung zugeführt. Die Produkte werden nun in Kopf und Sumpf der Kolonne abgeführt.
Das Ziel der Regelung ist eine hoch–prozentige Reinheit der Ausgangsströme. Dies kann z.B.
durch Steuerung der Rückströme mittels Kondensator und Verdampfer erreicht werden.
15
1.5 Grundidee von MPC
Abbildung 1.12: Schematische
Darstellung einer Destillationskolonne
Der in seiner Steuerung recht komplexe verfahrenstechnische Prozess kann jedoch über eine
Vielzahl von Randbedingungen beeinflusst werden, wie z.B.:
ˆ den jeweiligen Anteil der Rohölfraktionen
ˆ die der Destillationskolonne am Boden und ggf. an Zwischenböden zugeführte Heizenergie und damit die Temperaturverteilung innerhalb der Kolonne
ˆ der Wärmeabgabe aus dem System
ˆ die mittlere Verweildauer des Gemisches in der Kolonne
ˆ den Entnahmeort der jeweiligen Produkte
ˆ den gewünschte Anteil der verschiedenen abgezogenen Produkte
Modell:
Das mathematische Modell besteht hier aus den Massen– und stationären Energiebilanzen
der einzelnen Böden, was zu einer großen Anzahl von gekoppelten nichtlinearen Differentialgleichungen führt. Die betrachtete Kolonne hat mehrere Eingangs– und Ausgangsgrößen,
wovon einige als Stellgrößen und andere als Störgrößen angesehen werden sollen. Einige der
Ausgänge sollen geregelt werden.
Hierzu werden sowohl für den Gesamtprozess als auch für die unterlagerten Teilprozesse die
physikalischen Gegebenheiten möglichst exakt nachbildende dynamische Modelle entwickelt.
In diesem Fall sind das thermodynamische Verhalten (Siede– und Kondensationsverhalten)
der Komponenten, die zahlreichen Wärmeübergänge innerhalb des Systems, der Eintrag
und der Abzug der verschiedenen Stoffströme, die Strömungsvorgänge in der Kolonne und
16 Kapitel 1: Einführung in die lineare MPC
erforderlichenfalls das chemische Reaktionsverhalten zu berücksichtigen. Wenn einzelne zur
Erstellung des Prozessabbilds erforderliche Daten nicht messbar sind, müssen diese durch
eine Zustandsschätzung aus anderen Größen abgeleitet werden. In der Abschätzung dieser
Daten sowie in den systemimmanenten Unterschieden zwischen dem Prozessmodell und der
physischen Wirklichkeit liegen Ungenauigkeiten, die durch ein Messrauschen nachgestellt
werden.
Vorgehensweise:
Ziel der Regelung ist, durch geeignete Stellgrößen ŷ die Größen x̂ in ihrem Optimum zu
halten. Die Kombination von Optimierungsalgorithmus und Modell kann durch Integration
in einer gemeinsamen Matrix erfolgen. Hierzu muss sich das Modell in eine geeignete Matrix überführen lassen. Bei einfachen, auch nichtlinearen Modellen ist dies zum Teil möglich.
Dieser Weg verspricht vor allem kürzere Rechenzeiten durch die dann anwendbare vektorbasierte Lösung. Allerdings sind die dabei entstehenden Programmstrukturen dann komplexer.
Falls diese Vorgehensweise nicht möglich ist, bleibt die jeweils eigenständige Behandlung des
Prozessmodells und des Optimierungsalgorithmus, indem diese nacheinander abgearbeitet
werden. Der Vorteil liegt dabei in der Anwendbarkeit praktisch jedes verfügbaren und geeigneten Prozessmodells auch größerer Komplexität.
Die im Folgenden dargestellten Gleichungen und Ergebnisse, vergleiche Abbildung 1.13, sind
der Arbeit von M. Diehl [21] entnommen und wurden in dieser Form in einer Destillationskolonne an der ISR Stuttgart umgesetzt:
Differenziell-Algebraische (DAE) Systeme:
ẋ(t) = f (x(t), z(t), u(t), p)
0 = g(x(t), z(t), u(t), p)
ˆ 82 differenzielle Zustände x
ˆ 122 algebraische Zustände z
ˆ 2 Kontrollen u (Rückfluss Lvol , Heizleistung Q)
ˆ 2 Parameter p (Zulaufstrom, –konzentration)
Regelungsziel:
Temperaturen T14 , T28 gegen Störungen in x und v konstant halten, ohne Beschränkungen
zu verletzen.
Vorgehensweise:
(1) Schätze Zustand x0 (und Parameter) aus Messungen
(2) Löse in Echtzeit ein beschränktes Optimalsteuerungsproblem:
min
x,z,u
Z
t0 +Tp
L(x, z, u)dt + E(x(t0 + Tp ))
t0
17
1.5 Grundidee von MPC
unter
x(t0 ) − x0 = 0
ẋ − f (x, z, u) = 0,
t ∈ [t0 , t0 + Tp ]
h(x, z, u) ≥ 0,
t ∈ [t0 , t0 + Tp ]
g(x, z, u) = 0,
r(x(t0 + Tro )) ≥ 0
t ∈ [t0 , t0 + Tp ]
(3) Gib Kontrolle u0 für Zeit δ an reale Anlage. Setze t0 = t0 + δ und gehe zu 1.
Abbildung 1.13: Simulationsergebnisse Destillationskolonne
Bemerkung 1.10. Zur Lösung dieses Problems sind spezielle Algorithmen nötig, die in
Kapitel 5 genauer untersucht werden. Die hier präsentierte Problemstellung wird ebenfalls
am Ende des genannten Kapitels erneut aufgegriffen und die Modifikationen erläutert, die
zu treffen sind, um entsprechende Berechnungen vornehmen zu können.
18 Kapitel 1: Einführung in die lineare MPC
Kapitel 2
Modellprädiktive Regelung mittels
GPC
Das folgende Kapitel orientiert sich an den Büchern von R.R. Bitmead, M. Gevers und V.
Wertz [10] sowie von E.F. Camacho und C. Bordons [14] und soll einen Einblick sowohl in die
Gründe zur Entwicklung der modellprädiktiven Regelung wie auch die Funktionsweise und
Hintergründe eines speziell herausgegriffenen Algorithmus geben, des sogenannten GPC–
Algorithmus.
2.1
Was ist GPC?
GPC bedeutet Generalized Predictive Control und wurde in der hier vorgestellten Form von
Clarke, Mohtadi und Tuffs 1987 in Ihre Arbeit [16] eingeführt. Urvater von GPC ist MVC
(Minimum Variance Controller). Hierbei gilt es
J(u, t) = E{(yt+1 − rt+1 )2 }
(2.1)
zur Zeit t durch Wahl von ut zu minimieren. Zur Zeit t + 1 wird dann wieder ein neues
Minimierungsproblem gelöst. yt ist dabei der Ausgang des Systems, rt ein externes Referenzsignal.
Der nächste Schritt ist die GMV-Regelung (Generalized Minimum Variance Control). Diese
wurde eingeführt, da MVC nur für einfache stabile Systeme funktioniert. Es kann allerdings
passieren, dass sich das System durch Messungenauigkeiten oder Rauschen aufschaukelt und
somit die Kontrolle explodieren würde. Um dieses Problem zu lösen, führte man eine Art
“Strafe” für das aktuelle Kontrollsignal ein. Das Kostenfunktional ist dann gegeben durch:
J(u, t) = E{(yt+1 − rt+1 )2 + λu2t }
(2.2)
Dadurch wird bereits ein zukünftiger Zeitschritt berücksichtigt. Aber selbst wenn das System
sehr gut beschrieben ist, kann es bei schlechter Wahl von λ zu einem instabilen Verhalten
kommen. Um die Stabilität dieser Regelung nachzuweisen, muss man die Lage der Ortskurve
19
20 Kapitel 2: Modellprädiktive Regelung mittels GPC
kennen (Nyquist-Kriterium). In einer weiteren Modifikation wurde ut durch ∆ut = ut − ut−1
ersetzt, also
J(u, t) = E{(yt+1 − rt+1 )2 + λ(∆ut )2 }
(2.3)
Die Änderung von ut in (2.3) wird verwendet, da (2.2) keinen statischen Fehler zulässt, der
Null ist, falls ein konstantes Referenzsignal ungleich Null gegeben ist. Dies gilt nicht, wenn
der offene Regelkreis einen Integrieranteil enthält, der es dem Ausgang yt erlauben würde
auf einem Wert ungleich Null zu bleiben, falls das Steuersignal Null ist. Da damit immer
noch nicht alle Systeme stabil kontrolliert werden konnten, führten Clarke et al. in [16] GPC
ein:
)
( N
Nu
2
X
X
2
2
(2.4)
J(u, t) = E
(∆ut+j−1)
(yt+j − rt+j ) + λ
j=N1
j=1
mit ∆ut+i = 0 für i = Nu , . . . , N2 , N1 ist der minimale Kostenhorizont, N2 der maximale
und Nu der Steuerungshorizont. Dies ist der Versuch, eine Lösung für ein weites Feld von
möglichen Anwendungssystemen zu erzeugen, die sowohl angemessene Leistung als auch
asymptotische Stabilität liefern. Die Optimierung läuft dabei über N2 − N1 + 1 zukünftige
Ausgangssignale unter Berücksichtigung von Nu Änderungen des Steuersignals.
Bemerkung 2.1. Dies funktioniert nur, wenn die natürliche Verzögerung des Regelkreises
zwischen N1 und N2 liegt, wobei N1 typischerweise genau diese Verzögerung oder einen etwas
kleineren Wert hat.
Die Optimierung liefert also ∆ut , ∆ut+1 , . . . , ∆ut+Nu −1 , aber nur ∆ut wird verwendet und
im nächsten Schritt wird alles neu berechnet. Diese Vorgehensweise nennt man Receding Horizon Control. Für sich alleine genommen ist das oben Beschriebene eine Steuerung, da das
Steuersignal explizit für Nu zukünftige Schritte berechnet wird. Da aber nur der erste dieser
Nu Werte benutzt wird und für den nächsten Schritt alles noch einmal gelöst wird, diesmal jedoch mit den neuen Werten, erhält man letztendlich doch eine Rückführung. Warum
überhaupt mehrere zukünftige Steuersignale berücksichtigt werden, liegt daran, dass durch
Beobachtung eines längeren Zeitraums verhindert werden soll, dass das Steuersignal explodiert.
Bemerkung 2.2. Beachte, dass in (2.4) nicht der Zustand betrachtet wird, wie dies sonst
etwas in [4, 5, 11, 13, 27, 32] üblich ist, sondern die Differenz des Ausgangssginals und des
Referenzsignals betrachtet werden.
Annahme 2.3. Im Weiteren sei ein lineares oder linearisiertes System in der ARIMAXForm ( Auto-Regressive Integrated Moving-Average eXogenous) gegeben:
C(q −1 )
ξt
∆
Nb
Nc
X
X
ci ξt−i
=
bi ut−i−1 +
1 − q −1
i=0
i=0
A(q −1 )yt = B(q −1 )ut−1 +
⇒
Na
X
i=0
ai yt−i
(2.5)
(2.6)
yt und ut wie bekannt, ξt ist die Störung, q −1 ist die Einheitsverzögerung und ∆ = 1 − q −1 ,
A, B und C sind Polynome in q −1 , wobei A und C normiert sind.
21
2.2 Lösen von GPC
2.2
Lösen von GPC
Bemerkung 2.4. Eine Gleichung f (x1 , x2 , . . . , xn ) = b heißt Diophantische Gleichung,
wenn b und die Koeffizienten von f aus Z sind, und man sich nur für ganzzahlige Lösungen
interessiert.
Um das Minimierungsproblem (2.4) zu lösen, betrachtet man die Diophantische Gleichung
C(q −1 ) = Ej (q −1 )A(q −1 )∆ + q −j Fj (q −1 )
(2.7)
und schreibt sie mit Hilfe von Gleichung (2.5) um zu:
Ayt
yt
yt+j
Ej A∆ + q −1 Fj
ξt
= But−1 +
∆
B
Fj
=
ut−1 + Ej ξt +
ξt−j
A
A∆
B
Fj
=
ut+j−1 + Ej ξt+j +
ξt
A
A∆
Elimination von ξt liefert:
Fj A∆yt − B∆ut−1
B
ut+j−1 + Ej ξt+j +
A
A∆
C
B
Fj
Fj But−1
=
ut+j−1 + Ej ξt+j + yt −
A
C
AC
Fj
B Cut+j−1 − Fj ut−1
+ Ej ξt+j + yt
=
C
A
C
B C − Fj q −j
Fj
=
ut+j−1 + Ej ξt+j + yt
C
A
C
yt+j =
Aus (2.7) folgt außerdem
C − Fj q −j
= Ej ∆
A
Damit folgt schließlich:
yt+j =
Fj
Ej B
yt +
∆ut+j−1 + Ej ξt+j
C
C
Der Term, der die Störung enthält, ist unabhängig von den anderen Signalen. Deshalb erhält
man das Minimum für den Ausgang, wenn man die Störung Null setzt, also
ŷt+j =
Ej B
Fj
yt +
∆ut+j−1
C
C
(2.8)
ŷt+j setzt sich dabei aus bereits bekannten und noch zu berechnenden Steuersignalen zusammen. Um diese zu unterscheiden, wird eine zweite Diophantische Gleichung benutzt:
Ej (q −1 )B(q −1 ) = Gj (q −1 )C(q −1 ) + q −j Γj (q −1 )
(2.9)
22 Kapitel 2: Modellprädiktive Regelung mittels GPC
Es ergibt sich also:
Gj C + q −j Γj
Fj
yt +
∆ut+j−1
C
C
Fj
Γj
=
yt + Gj ∆ut+j−1 + ∆ut−1
C
C
= Gj ∆ut+j−1 + ŷt+j|t
ŷt+j =
mit
ŷt+j|t =
Γj
Fj
ut−1 + yt
C
C
(2.10)
(2.11)
wobei ŷt+j die kontrollierte Vorhersage, ŷt+j|t die freie Vorhersage, also mit ∆ut+j = 0 für
Zeitpunkte nach t − 1 ist. Definiere nun vier Vektoren:
f = [ŷt+1|t , ŷt+2|t , . . . , ŷt+N2 |t ]T
(2.12)
T
ũ = [∆ut , ∆ut+1 , . . . , ∆ut+Nu −1 ]
(2.13)
ŷ = [ŷt+1 , ŷt+2 , . . . , ŷt+N2 ]T
(2.14)
r = [rt+1 , rt+2 , . . . , rt+N2 ]
(2.15)
Dann ergibt sich als Zusammenhang zwischen der Vorhersage des Ausgangs und der zukünftigen
Kontroll- und Referenzsignale:
ŷ = Gũ + f
(2.16)
G besteht dabei aus den Markov–Parametern gi , die nur vom aktuellen Wert nicht jedoch
von vergangenen abhängen, und hat folgende Gestalt:

g0
g1
..
.
0
g0
..
.
...
...
..
.
0
0
..
.




G=
 gN −1 gN −2 . . .
g0
u
 u
 ..
..
..
 .
.
.
gN2 −1 gN2 −2 . . . gN2 −Nu










(2.17)
Das Minimierungsproblem sieht damit wie folgt aus:
J = (ŷ − r)T (ŷ − r) + λũT ũ
(2.18)
Die Kontrollfunktion berechnet sich mittels:
ũ = (GT G + λI)−1 GT (r − f)
(2.19)
Bemerkung 2.5. Die Matrix (GT G + λI)−1 GT nennt man Gain–Matrix. Sie ist ein Maß
für die Geschwindigkeit, mit der das Ausgangssignal das Referenzsignal annähert.
23
2.3 Beispiel
2.3
Beispiel
Betrachte folgendes System
yt = 1.7yt−1 − 0.7yt−2 + 0.9∆ut−1 − 0.6∆ut−2 + ξt
(2.20)
Sortiert man nach den Signalen und fasst zusammen
(1 − 1.7q −1 + 0.7q −2 )yt = (0.9 − 0.6q −1 )∆ut−1 + ξt
(1 − 0.7q −1 )yt = (0.9 − 0.6q −1 )ut−1 + ξt /∆
erhält man somit für die ARIMAX-Form die Polynome A, B und C zu:
A(q −1 ) = 1 − 0.7q −1
−1
B(q ) = 0.9 − 0.6q
(2.21)
−1
(2.22)
−1
C(q ) = 1
(2.23)
Beachte, dass für die weiteren Berechnungen die Störung ξt = 0 gewählt wurde, so wie oben
beschrieben. Die Parameter werden zu N1 = 1, N2 = 3, Nu = 3, λ = 0.1 gewählt. Dann erhält
man durch Rückwärtseinsetzen die drei benötigten zukünftigen Ausgänge:
ŷt+1 = 1.7yt − 0.7yt1 + 0.9∆ut − 0.6∆ut−1
(2.24)
ŷt+2 = 2.19yt − 1.19yt−1 + 0.9∆ut+1 + 0.93∆ut
(2.25)
ŷt+3 = 2.533yt − 1.533yt−1 + 0.9∆ut+2 + 0.93∆ut+1
(2.26)
−1.02∆ut−1
+0.951∆ut − 1.314∆ut−1
Oder man berechnet dies über die Diophantischen Gleichungen (2.7) und (2.9), wie in [10]
beschrieben. Man erhält schließlich die Form (2.16):
ŷ
ũ
G
z }| {
}|
z

{ z }| {
ŷt+1
0.9
0
0
∆ut
 ŷt+2  =  0.93 0.9 0   ∆ut+1 
ŷt+3
0.951 0.93 0.9
∆ut+2


1.7yt − 0.7yt−1 − 0.6∆ut−1
+  2.19yt − 1.19yt−1 − 1.02∆ut−1 
2.533yt − 1.533yt−1 − 1.314∆ut−1
{z
}
|
(2.27)
f
Die Gain-Matrix berechnet sich damit zu:


0.8947
0.0929 0.0095
(GT G + λI)−1 GT =  −0.8316 0.8091 0.0929 
−0.0766 −0.8316 0.8947
(2.28)
24 Kapitel 2: Modellprädiktive Regelung mittels GPC
Das Receding Horizon Closed Loop Steuergesetz ergibt sich dann mittels (2.19) zu (es wird
nur die erste Zeile berechnet, da nur diese benötigt wird, da die Kontrolle für den nächsten
Zeitschritt im folgenden Schritt berechnet wird):
∆ut = 0.644∆ut−1 − 1.7483yt + 0.7513yt−1
(2.29)
+0.8947rt+1 + 0.0929rt+2 + 0.0095rt+3
Wählt man nun als Referenztrajektorie zum Beispiel r(t) = sin t−2
+ 1 und wendet das
10
Kontrollgesetz (2.29) an, so ergeben sich die in Abbildung (2.2) gezeigten Steuerungen. Die
Streuung des Ausgangs um die Referenztrajektorie ist nur durch die Störung, die in diesem
Beispiel zufallsgesteuert mit einer Standardnormalverteilung gewählt wurde, bedingt. Ohne
Störung erhält man die in Abbildung (2.3) gezeigte Steuerung. Hier sieht man deutlich, wie
gut das Ausgangssignal die Referenztrajektorie annähert.
2.5
2.5
r_t
Delta u_t
y_t
r_t
Delta u_t
y_t
2
2
1.5
1.5
1
1
0.5
0.5
0
0
-0.5
-0.5
0
5
10
Abbildung 2.1:
gestörtes Signals
15
20
25
30
Verwendung
0
eines
5
10
15
20
25
30
Abbildung 2.2: Erneut mit gestörtem, jedoch unterschiedlichem Signal
2.5
r_t
Delta u_t
y_t
2
1.5
1
0.5
0
-0.5
0
5
10
15
20
25
30
Abbildung 2.3: Ungestörtes Signal
Bemerkung 2.6. Die gezeigten Trajektorien wurden mit dem Programm berechnet, das im
Anhang A enthalten ist.
25
2.4 Einfluss der Design-Parameter
2.4
Einfluss der Design-Parameter
Definiere zuerst αi , i = 1, . . . , N2 als die erste Spalte der Matrix aus (2.19), also
(α1 . . . αN2 ) = (1 0 . . . 0)(GT G + λI)−1 GT
(2.30)
Damit kann man die erste (die einzig benötigte) Zeile von Gleichung (2.19) schreiben als:
∆ut =
N2
X
i=1
αi rt+i −
N2
X
i=1
N
2
X
Γi
Fi
αi ∆ut−1 −
αi yt
C
C
i=1
(2.31)
Hierbei ist die erste Summe das Skalarprodukt von α mit r, die zweite und dritte Summe
repräsentieren f , also die freie Systemantwort ohne weitere Kontrolle. Die Form kommt aus
(2.11). Dies läßt sich umschreiben zu:
C∆ut = C
= C
N2
X
i=1
N2
X
i=1
; (C +
N2
X
αi rt+i −
αi q
−N2 +i
N2
X
i=1
αi Γi ∆ut−1 −
N2
X
rt+N2 −
αi Γi q −1 )∆ut = C
i=1
i=1
αi Fi yt
i=1
−1
αi Γi q ∆ut −
i=1
N2
X
N2
X
N2
X
αi Fi yt
i=1
αi q −N2 +i rt+N2 −
R∆ut = CT1 rt+N2 − Syt
N2
X
αi Fi yt
i=1
(2.32)
In der letzten Zeile wurden nur offensichtliche Definitionen für die Polynome zur Abkürzung
verwendet. Dies entspricht einem linearen Feedback. Wenn man nun (2.5) und (2.32) wie
folgt auflöst und kombiniert:
(2.5) ⇒ A∆yt − Cξt = B∆ut−1 = B∆q −1 ut
; RB∆q −1 ut = RA∆yt − CRξt
(2.32) ⇒ RB∆ut = BCT1 rt+N2 − BSyt
; RB∆q −1 ut = BCT1 rt+N2 −1 − BSq −1 yt
⇒ RA∆yt − CRξt = BCT1 rt+N2 −1 − BSq −1 yt
; (RA∆ + BSq −1 )yt = BCT1 rt+N2 −1 + CRξt
(2.33)
erhält man eine Rückführung ohne die Kontrolle u. Nach einigen Berechnungen zeigt man
A∆R + BSq −1 = A∆C +
N2
X
αi (A∆Γi + BFi )q −1
i=1
N2
X
= C(A∆ +
i=1
= CAc
αi (B − A∆Gi )q −1 )
(2.34)
26 Kapitel 2: Modellprädiktive Regelung mittels GPC
Damit wird (2.33) zu:
yt =
R
BT1
rt+N2 +
ξt
Ac
Ac
(2.35)
Man sieht also, dass das Polynom C aus der Übergangsfunktion für den geschlossenen Regelkreis herausfällt, wie dies normalerweise für dynamische Beobachter der Fall ist.
Bemerkung 2.7. Die Stabilität und Leistung des Regelkreises wird nur durch die Nullstellen
des Polynoms Ac bestimmt. Wie die Parameter N1 , N2 , Nu und λ diese beeinflussen, ist kaum
vorherzusagen.
Bemerkung 2.8. Beachte, dass sowohl
Ac (1) =
N2
X
αi B(1)
i=1
als auch
(BT1 )(1) =
N2
X
αi B(1)
i=1
und somit die statische Verstärkung des geschlossenen Regelkreises immer 1 ist.
2.5
Linearquadratische Optimale Steuerung und GPC
Ein oft genannter Grund für die Beliebtheit von GPC ist die einfache Berechenbarkeit der
Lösung. Im Gegensatz zu Kontrollsystemen, die auf Zustandsmodellen basieren, ist bei GPC
die Lösung einer Riccati-Gleichung nicht erforderlich. Trotz des Vorteils der einfachen Berechnung sind Aussagen über die Stabilität oder die Leistung des Regelkreises, wie zum
Beispiel die Berechnung der Pole oder der Vergleich zwischen der angestrebten und der erreichten Leistung, nur bedingt möglich.
Ein möglicher Ausweg ist die Einbettung von GPC in das wesentlich leistungsfähigere System der linearquadratischen Optimalen Steuerung (LQ). Dies ist möglich, da GPC nur einen
Spezialfall des LQ darstellt.
Annahme 2.9. Da LQ–Systeme meist in einem Zustandsmodell beschrieben werden und
nicht in einem Input-Output-Modell, nehmen wir an, ein lineares System mit der folgenden
Gestalt sei gegeben:
xt+1 = F xt + Gut + wt
yt = Hxt + vt
(2.36)
(2.37)
Hierbei ist xt der n-dimensionale Zustandsvektor, ut die m-dimensionale Steuerung, yt der
p-dimensionale gemessene Ausgang und wt und vt die Störung und das Messrauschen in
passenden Dimensionen.
Um nun GPC, das eine Receding Horizon Kontrolle ist, als LQ–Problem zu beschreiben, muss
man ebenfalls eine Receding Horizon LQ–Steuerung anwenden, was wiederum die Lösung
eines endlichen LQ–Steuerungsproblems mit sich bringt.
2.5 Linearquadratische Optimale Steuerung und GPC
2.5.1
27
Der endliche LQ–Regler
Das quadratische Kostenfunktional ist hierbei gegeben durch
(
)
N
−1
X
JN (x, u) = E xTt+N P0 xt+N +
xTt+j Qc,N −j−1xt+j + uTt+j Rc,N −j−1ut+j
(2.38)
j=0
wobei x = (xt , . . . , xt+N ) und u = (ut , . . . , ut+N ). P0 , Qc,j und Rc,j sind hierbei nicht-negativ
definite symmetrische Matrizen. Um dieses endliche Optimale Steuerungsproblem für das
Zustandsmodell (2.36) zu lösen, iteriert man die Riccati–Differenzen–Gleichung (RDE)
Pj+1 = F T Pj F − F T Pj G(GT Pj G + Rc,j )−1 GT Pj F + Qc,j
(2.39)
vom Startwert P0 und berechnet die Steuerungen mittels
ut+N −j = −(GT Pj−1 G + Rc,j−1)−1 GT Pj−1F xt+N −j
= Kj−1 xt+N −j ,
(2.40)
j = 1, . . . , N,
wobei F , G und Rc,j aus dem Steuerungsproblem herrühren und Pj die Lösung der RDE ist.
Die optimalen Kosten JN (x∗ , u∗ ) erhält man für PN :
JN (x∗ , u∗ ) = xTt PN xt
(2.41)
Bemerkung 2.10. Beachte, dass PN nicht zur Berechnung der optimalen Steuerungen verwendet wird. Außerdem läuft in die Zeit bei der Iteration der RDE (2.39) in umgekehrter
Richtung im Vergleich mit der Berechnung der optimalen Steuerungen in (2.40). Um die Dynamik der RDE besser untersuchen zu können, ist es sinnvoll die Zeiten in dieser Richtung
laufen zu lassen.
2.5.2
Der unendliche LQ–Regler
In der allgemeinen Formulierung des LQ–Problems gibt es keinen Grund dafür nur zeitinvariante Systeme zu betrachten. Es wären ebenso zeitvariante Modelle zugelassen. Betrachtet
man jedoch ein zeitinvariantes Modell mit konstanten Gewichtungsmatrizen Qc und Rc und
untersucht den Grenzübergang N → ∞, also
1
JN (x, u)
(2.42)
J(xt ) = lim
N →∞ N
so erhält man ein LQ–Problem auf einem unendlichen Horizont. Die Lösung von (2.42)
ändert sich dann gegenüber der von (2.38) insofern, als dass Pj gegen P∞ konvergiert unter
der Voraussetzung, dass P0 nicht-negativ definit ist, Rc positiv definit, [F, G] stabilisierbar
1/2
und das Paar [F, Qc ] beobachtbar ist.
P∞ ist dann die maximale Lösung der Algebraischen Riccati–Gleichung (ARE)
P∞ = F T P∞ F − F T P∞ G(GT P∞ G + Rc )−1 GT P∞ F + Qc
(2.43)
Die Steuerung errechnet sich somit durch
ut+j = −(GT P∞ G + Rc )−1 GT P∞ F xt+j
= Kxt+j .
(2.44)
28 Kapitel 2: Modellprädiktive Regelung mittels GPC
2.5.3
Der Receding Horizon LQ–Regler
Der endliche diskrete LQ–Regler beinhaltet einige rechnerische Vorteile gegenüber dem unendlichen Regler. Zum einen kann die optimale Steuerung durch endlich-dimensionale Optimierung gefunden werden, da die Kostenfunktion nur von N abhängt, und zum anderen kann
die RDE (2.39) sehr einfach von P0 nach PN iteriert werden. Hingegen ist beim unendlichen
Regler eine Optimierung über unendlichen Horizont oder die Lösung einer ARE vonnöten.
Daraus folgt allerdings auch, dass sich die endliche Kontrolle nicht ohne Weiteres auf den
unendlichen Fall erweitert werden kann.
Eine Möglichkeit, wie man eine zeitinvariante Steuerung über einem unendlichen Intervall
unter Beibehaltung der einfachen Berechnung eines endlichen Reglers erhält, ist der Receding
Horizon LQ–Regler. Hierbei wird ut als das erste Element der Lösung gewählt, die JN (x, u)
minimiert, ut als das erste Element der Lösung, die J(N, xt+1 ) minimiert, usw. Vergleicht
man dies mit dem endlichen Regler, so ergibt sich für die Steuerung sofort:
ut = ut (arg
min
ut ,...,ut+N−1
JN (x, u))
= −(GT PN −1 G + Rc,N −1)−1 GT PN −1 F xt
(2.45)
= KN −1 xt
2.5.4
Das linearquadratische Tracking–Problem
Ziel eines linear quadratischen Tracking–Problems ist nicht die Stabilisierung des Ursprungs,
wie dies zuvor betrachtet wurde, sondern hierbei wird eine (womöglich zeitabhängige) Trajektorie vorgegeben, die durch das System angenähert / nachgefahren werden soll. Hierzu
wird die Kostenfunktion (2.38) abgeändert, um auch Abweichungen des Ausgangssignals
vom Referenzsignal zu berücksichtigen:
JN (x, u) = E{(yt+N − rt+N )T P0 (yt+N − rt+N )}
N
−1
X
+
(yt+j − rt+j )T Qc,N −j−1 (yt+j − rt+j ) + uTt+j Rc,N −j−1ut+j }
(2.46)
j=0
Beachte, P0 und Qc,j sind nicht die gleichen wie in (2.38), sie haben sogar andere Dimensionen. Da das Referenzsignal rt von außen vorgegeben ist, kann man es auch in einem
künstlichen Zustandsmodell beschreiben:
xrt+1 = F r xrt + Gr nt
rt =
H r xrt
(2.47)
(2.48)
2.5 Linearquadratische Optimale Steuerung und GPC
29
wobei xt die Dimension N hat, rt und nt Dimension p, F r , Gr und H r haben dabei folgende
Gestalt


0 I 0 ... 0
 0 0 I ... 0 



. . .. 
(2.49)
F r =  ... ...
. . 


 0 0 0 ... I 
0 0 0 ... 0
T
Gr =
0 0 0 ... I
(2.50)
r
H =
I 0 0 ... 0
(2.51)
wobei 0 und I die Dimension p × p besitzen. Die Elemente {rt+i , i = 0, . . . , N − 1} stecken in
der Anfangsbedingung xrt , die weiteren zukünftigen Elemente kommen über nt hinzu. Jetzt
definieren:
können wir einen neuen Zustand xtrack
t
xt
track
xt
=
xrt
Die Zustandsgleichung für xtrack
ist dann als direkte Summe der einzelnen Zustandsgleichunt
gen gegeben:
wt
G
I 0
F 0
track
track
(2.52)
ut +
xt
+
xt+1 =
r
r
0 G
0 F
nt
0
yt − rt ist dann gegeben durch:
y t − rt =
H −H r
xtrack
t
(2.53)
Bemerkung 2.11. Beachte, dieses Zustandsmodell ist nicht kontrollierbar von ut , aber es
ist stabilisierbar, da sich der xrt Anteil durch Verschieben von Polstellen stabilisieren lässt
und konstruktionsbedingt keinen Einfluss auf das restliche System hat.
Ersetzt man die Matrizen P0 , Qc,j und Rc,j durch
T H
track
r
P
H
−H
P0
=
0
T
−H r
T H
Qc,j H −H r
Qtrack
=
T
c,j
r
−H
track
= Rc,j
Rc,j
(2.54)
(2.55)
(2.56)
ergibt sich als Kostenfunktional für das Tracking–Problem (2.46)
T
track track
JN (xtrack , u) = E{xtrack
xt+N
t+N P0
N
−1 h
i
X
track T track
track
T
track
+
xt+j Qc,N −j−1xt+j + ut+j Rc,N −j−1ut+j }
(2.57)
j=0
Das Tracking–Problem wurde somit durch ein äquivalentes Regelungsproblem ersetzt. Die
Lösung des LQ–Tracking–Problems besitzt eine Lösung, die N zukünftige Schritte des Referenzsignals in das Feedbackgesetz mit einbaut.
30 Kapitel 2: Modellprädiktive Regelung mittels GPC
2.6
Filter für Störungen
Bisher wurde der receding horizon LQ–Regler mit Tracking vorgestellt, der die Steuerung mit
Berücksichtigung der Referenztrajektorie berechnet. Analog zum Tracking–Problem kann
man auch ein Modell für die einwirkenden Störungen entwerfen. Man erhält dann einen
k-dimensionalen Zustandsvektor xdt mit den Störungen pt und qt
xdt+1 = F d xdt + Gd pt
vt =
H d xdt
+ qt
(2.58)
(2.59)
Dabei erhält man ein Maß für die Störung vt , das einen erheblichen unvorhersehbaren Anteil
qt aufweist.
Damit kann man nun einen Tracking–LQ–Regler definieren, der den Zustand xm
t mit Berücksichtigung der Störungen betrachtet:
xt
m
xt =
(2.60)
xdt
Die vollständige Zustandsgleichung und die des Ausgangssignals lauten dann:
wt
G
I 0
F 0
m
m
ut +
xt +
xt+1 =
d
d
0 G
0 F
pt
0
m
d
yt =
H H
xt + qt
(2.61)
(2.62)
Dies entspricht lediglich der Kombination der zwei bisher aufgestellten Zustandsgleichungen
und kann wieder in die ursprüngliche Form mit linearer Rückführung gebracht werden, indem
man die Matrizen wir folgt anpasst:
m m
m
m m
xm
t+1 = F xt + G ut + L wt
yt =
H m xm
t
+
vtm
(2.63)
(2.64)
Dabei enstprechen die Matrizen F m , Gm , Lm und H m denen aus Gleichung (2.61).
2.7
LQG–Regler
Der linearquadratische Gauß–Regler wird konstruiert durch Zusammenfügen der zuvor eingeführten Gleichungen für den Ausgangszustand, der Zustandsgleichung für die Referenztrajektorie und dem gestörten System. Diese Kombination liefert in der Tat eine optimale
dynamische Regelung für die Rückführung des Ausgangssignals, sofern die Störungen wt und
vt im Startzustand den Erwartungswert Null besitzen und es sich um ein lineares System
handelt.
Wenn man zunächst das zustandsbeschreibende System für xt zugrundelegt und die Vorteile
der Filterung mit xdt ausnutzt und dies zusätzlich noch mit den Eigenschaften der Tracking–
Regelung xrt verbindet, so kann man den folgenden super state“ x̄t erzeugen:
”

xt
x̄t =  xrt 
(2.65)
d
xt
31
2.7 LQG–Regler
Dieser Zustand erfüllt die aus der Kombination hervorgehende Gleichung


xt+1
x̄t+1 =  xrt+1 
xdt+1
 






G
wt
I 0
0
xt
F 0 0
=  0 F r 0   xrt  +  0  ut +  0 Gr 0   nt 
0
pt
0 0 Gd
xdt
0 0 Fd
= F̄ x̄t + Ḡut + L̄w̄t .
Die Matrizen des Kostenfunktionals für den LQ–Regler sehen dann wie folgt aus:


HT
P̄0 =  −H r T  P0 H −H r H d
T
Hd


HT
Q̄c,j =  −H r T  Qc,j H −H r H d
T
Hd
R̄v,j = Rv,j
(2.66)
(2.67)
(2.68)
(2.69)
Die lineare Lösung für die Zustandsvariable dieses LQ–Regelungsproblems erzeugt ein Regelungssignal ut für die Rückführung, das sowohl die Position im momentanen Zustand enthält,
sowie eine Trajektorie für die zukünftige Tracking–Regelung und die vorhersehbare Komponente der Störung.
−1
ut+N −j = −(ḠT P̄j−1 Ḡ + R̄c,j−1) ḠT P̄j−1F̄ x̄t+N −j


xt+N −j
x
r
d
 xrt+N −j 
=
Kj−1
Kj−1
Kj−1
xdt+N −j
Durch eine Aufteilung von P̄ kann dies noch vereinfacht werden.


P 11 P 12 P 13


T
P̄ =  P 12
P 22 P 23 
T
T
P 13 P 23 P 33
(2.70)
(2.71)
Damit hängt die Regelungsmatrix K aufgrund der Blockstruktur von Ḡ nur noch von P 11 ,
P 12 und P 13 ab.
−1
GT Pj11 F GT Pj12 F r GT Pj13 F d
Kj = −(GT Pj11 G + Rc,j )
=
Kjx Kjr Kjd
(2.72)
Wenn nun die Matrizen Qc und Rc konstant sind, so konvergieren Pj11 , Pj12 und Pj13 sobald
Pj11 unter den üblichen Stabilisierungs- und Beobachtbarkeitskriterien bereits konvergiert.
32 Kapitel 2: Modellprädiktive Regelung mittels GPC
Das bedeutet, dass man die zeitvariierende Tracking–Regelung ersetzen kann durch ein zeitinvariantes System mit der folgenden Kalman–Matrix:
−1
11
11
12 r
13 d
K = −(GT P∞
G + Rc )
GT P ∞
F GT P ∞
F GT P ∞
F
=
Kx Kr Kd
(2.73)
2.8
GPC als LQG
Beim Vergleich der bisher erörterten Kriterien kann man erkennen, dass sich das GPC–
Problem in das LQ–Problem einbetten lässt. Dazu betrachtet man das Zustandmodell für
den GPC:
x̄t+1 = F x̄t + G∆ut + w̄t
yt = H x̄t + v̄t
Das Regelungssignal, das durch die Minimierung des Kostenfunktionals ohne Tracking (rt =
0) und mit konstantem λ gefunden wurde, ist nun das gleiche wie bei der Minimierung bei der
LQ–Regelung mit angepasstem Zustandsmodell, wie es beim super state Modell vorgestellt
wurde
JN (x, u) = E{xTt+N P0 xt+N +
N
−1
X
j=0
{xTt+j Qc,N −j xt+j + ∆uTt+j Rc,N −j ∆ut+j }},
(2.74)
wobei die folgenden Bedingungen gelten:
N2 = N
(
H T H, wenn t = 0, . . . , N2 − N1
Qc,t =
0,
wenn t = N2 − N1 + 1, . . . , N2 − 1
(
∞I, wenn t = 0, . . . , N2 − Nu − 1
Rc,t =
λI, wenn t = N2 − Nu , . . . , N2 − 1
P0 = H T H
(2.75)
(2.76)
(2.77)
(2.78)
Damit kann man also alle Vorteile eines receding horizon LQ–Reglers auf den GPC–Regler
übertragen, der dann in jedem Schritt alle ∆ut , ∆ut+1 , . . . , ∆ut+Nu −1 berechnet, wobei die
Referenztrajektorie und die vorhersehbare Störung auch berücksichtigt werden. Im Endeffekt
wird dann jedoch nur ∆ut verwendet und im nächsten Schritt das ganze Verfahren von Neuem begonnen. Das bedeutet, dass die Stabilität des Systems eine große Rolle spielt, da der
Aufwand, eine womöglich nicht stabile Lösung zu erzeugen, sich sonst nicht lohnt. Die Stabilitätseigenschaften des GPC Reglers werden deshalb im nächsten Kapitel genauer betrachtet,
wobei man jedoch die dem System zugrundeliegenden Riccati–Gleichungen betrachten muss.
Kapitel 3
Stabilität beim GPC
In diesem Kapitel soll nun die Stabilität des zuvor eingeführten und veranschaulichten GPC–
Algorithmus untersucht werden. Auch hierfür liegen die Büchern von R.R. Bitmead, M.
Gevers und V. Wertz [10], von E.F. Camacho und C. Bordons [14], aber auch die Arbeiten von
L. Grüne [32] als auch von Ch. Büskens [13] mit entsprechend weiterreichenden Referenzen
zugrunde, auf die an den relevanten Stellen verwiesen wird.
3.1
Einführung
Bei den hier betrachteten Systemen wurde ein receding horizon LQ–Regler eingesetzt, der mit
stationären Regelungsgesetzen arbeitet und für ein unbegrenztes Intervall eingesetzt werden
kann. Dabei spielt natürlich auch die Stabilität eine Rolle, da die Lösung nur aufwendig
berechnet werden kann. Ein großer Nachteil des GPCs ist, dass die Stabilität im geschlossenen
Regelkreis keinesfalls gewährleistet ist und Versuche, explizite Bedingungen auf der Basis von
Input und Output aufzustellen, erfolglos waren. Daher betrachtet man zunächst die Riccati
Gleichungen für den GPC in seiner Darstellung als LQG, um Bedingungen für die Stabilität
beim Regelkreis der receding horizon Regler zu finden.
3.2
Stabilität mit Hilfe der ARE
Eine der grundlegenden Regeln für die asymtotische Stabilität im linearquadratischen Fall
erhält man aus dem stationären Regelungsproblem mit unendlichem Horizont und der damit
verbundenen Algebraischen Riccati Gleichung (ARE).
Annahme 3.1. Im Folgenden soll vorausgesetzt werden, dass [F, G] stabilisierbar und [F, Q1/2 ]
beobachtbar sind.
Theorem 3.2. Betrachtet man die ARE für einen LQ–Regler mit unendlichem Horizont,
−1
P = F T P F − F T P G(GT P G + R) GT P F + Q
(3.1)
wobei Q ≥ 0 und R > 0 sind und nach Annahme 3.1 [F, G] stabilisierbar und [F, Q1/2 ]
beobachtbar sind, dann gilt:
33
34 Kapitel 3: Stabilität beim GPC
ˆ Es gibt eine eindeutige , maximale, nicht negativ definite Lösung P̄ .
ˆ P̄ ist eine eindeutige stabilisierende Lösung, d.h. die Matrix
−1
F − G(GT P̄ G + R) GT P̄ F
(3.2)
besitzt nur Eigenwerte die betragsmäßig kleiner Eins sind.
Beweis: Ein Beweis hierzu findet sich in der Arbeit von C.E. de Souza, M. Gevers and G.C.
Goodwin [64].
Bemerkung 3.3. Die Matrix (3.2) repräsentiert gerade die Systemmatrix  in
xt+1 = Âxt ,
wenn man den LQ–Regler mit entsprechend bestimmter Matrix P einsetzt.
Diese Lösung P̄ heißt stabilisierende Lösung der ARE. Man sieht, dass (3.2) die Transformationsmatrix des geschlossene Regelkreises mit stationärem Regelgesetz ist. Die Existenz
einer solchen stabilisierenden Lösung aus diesem Theorem ist fundamental für die Stabilität
des Regelkreises beim LQ–Regler mit unendlichem Horizont.
Es existieren zwar noch weitere Regeln für die Stabilität dieses LQ–Systems mit zeitvariabler
linearer Kontrolle, jedoch benötigt man für den receding horizon Regler, der hier betrachtet
wird, vielmehr das folgende Resultat.
Theorem 3.4. Wenn man die ARE aus (3.1) mit der stabilisierenden Lösung P̄ betrachtet
und dies vergleicht mit der RDE
−1
Pt+1 = F T Pt G(GT Pt G + R) GT Pt F + Q,
(3.3)
dann gilt, dass die Folge von Matrizen Pt gegen P̄ konvergiert für t → ∞, wenn die Matrix
P0 positiv definit ist.
Beweis: Ein entsprechender Beweis kann in den Arbeiten von D.W. Clarke, C. Mohtadi und
P.S. Tuff [16], W.R.E. Wouters [16], Wou77 und B. Wittenmark and P. Krishna Rao [69]
gefunden werden.
Für entsprechende Bedingungen beim receding horizon Regler muss man nun, unter der Bedingung, dass N groß genug gewählt ist, sicherstellen, dass alle Eigenwerte der Systemmatrix
−1
F − G(GT Pt G + R) GT Pt F vom Betrag kleiner Eins sind für alle t ≥ N.
Bemerkung 3.5. Dies war in der Tat auch die Motivation, die Familie der früheren GMV
Regler durch predictive Regler mit großer Reichweite zu ersetzen.
Es bleibt zu klären, wie groß der Wert von N gewählt werden muss und ob das Ergebnis
durch die Wahl von P0 beeinträchtigt werden kann. Dazu betrachtet man zunächst die RDE,
um sie mit den Stabilitätskriterien der ARE zu verbinden.
Man schreibt zunächst die RDE als eine ARE:
−1
Pt = F T Pt F − F T Pt G(GT Pt G + R) GT Pt F + Q̄t
(3.4)
35
3.2 Stabilität mit Hilfe der ARE
Diese Gleichung wird als Fake Algebraic Riccati Equation (FARE) bezeichnet. Dies erhält
man durch eine geeignete Umformung von Q̄t :
−1
Q̄t = Pt − F T Pt F + F T Pt G(GT Pt G + R) GT Pt F
(3.5)
oder mit der Differenz der Lösungsmatrizen:
Q̄t = Q − (Pt+1 − Pt )
(3.6)
Da man hier die RDE als eine Art ARE betrachtet, kann man das Resultat des vorhergegangenen Theorems auf (3.4) übertragen. Dies führt zu:
Theorem 3.6. Betrachtet man die FARE (3.4) bzw. (3.5) mit der Definition von Q̄t , dann
1/2
gilt für Q̄t ≥ 0, R > 0, ( [F, Q̄t ] beobachtbar), dass die Matrix Pt stabilisierende Lösung
der FARE ist, das heißt die Matrix
−1
F̄t = F − G(GT Pt G + R) GT Pt F
(3.7)
besitzt nur Eigenwerte mit Betrag kleiner Eins.
Beweis: Ein Beweis hierfür ist in der Arbeit von R.R. Bitmead, M. Gevers, I.R. Petersen
und R.J. Kaye [9] zu finden.
Somit ist eine Übersetzung der Stabilitätskriterien einer ARE für die RDE möglich. Dabei
ist zu beachten, dass in Theorem 3.6 keine genau dann, wenn“ Bedingung gegeben ist. Um
”
nun aus den Bedingungen für Q̄t entsprechende Bedingungen an Q abzuleiten, benötigt man
ein weiteres Lemma.
Lemma 3.7. Es seien Q1 und Q2 zwei nicht-negativ definite Matrizen mit
Q1 ≤ Q2
Dann gilt:
1/2
[F, Q1 ] beobachtbar
⇒
1/2
[F, Q2 ] beobachtbar
1/2
Beweis: Die Detektierbarkeitsbdingung an [F, Q1 ] setzt notwendigerweise voraus, dass für
jeden Eigenwert λ von F mit |λ| > 1 und den zugehörigen linken Eigenvektor w gilt, dass
1/2
wQ1
6= 0.
1/2
Durch die Ungleichung Q1 ≤ Q2 folgt also aus wQ1
1/2
6= 0, dass wQ2
6= 0 gilt.
Inwiefern dieses Lemma etwas über die Stabilität aussagt, zeigt das folgende Korollar:
Korollar 3.8. Wenn Pt in t monoton fallend ist, also
Pt+1 ≤ Pt
dann ist F̄t aus (3.7) stabil.
Beweis: Dies kann man direkt aus (3.6) und dem Lemma 3.7 folgern. Die hier betrachtete
Monotonieeigenschaft hängt jedoch sehr stark mit den Eigenschaften der RDE zusammen.
36 Kapitel 3: Stabilität beim GPC
3.3
Monotonieeigenschaften der RDE
Im letzten Abschnitt konnte man erkennen, dass die Monotonie der RDE eine grundlegende
Bedingung für die Stabilität eines LQ–Reglers darstellt. Man kann jedoch leicht zeigen, dass
eine RDE schon unter schwachen Bedingungen starke Monotonie aufweist, was die folgenden
zwei Theoreme verdeutlichen.
Theorem 3.9. Wenn die nicht-negativ definite Lösung Pt der RDE (3.3) zu einem Zeitpunkt
t monoton fallend ist, also
Pt+1 ≤ Pt
für ein t, dann ist Pt monoton fallend für alle späteren Zeitpunkte, d.h.
Pt+k+1 ≤ Pt+k
für alle k ≥ 0.
Beweis: Betrachtet man die Differenz zweier Lösungen einer RDE P̃t = Pt+1 − Pt für t und
t + 1, wobei Qt+1 = Qt gilt, dann erhält man eine Lösung P̃t , die wieder die Gestalt einer
RDE besitzt. Dies ergibt ein nicht-positiv definites P̃t zur Zeit t, das von da an nicht-positiv
definit bleibt und daher ist Pt von da an monoton fallend.
Theorem 3.10. Wenn die Lösung Pt der RDE (3.3) zu einem Zeitpunkt t monoton steigend
ist, also
Pt+1 ≥ Pt
für ein t, dann ist Pt monoton steigend für alle späteren Zeitpunkte, d.h.
Pt+k+1 ≥ Pt+k
für alle k ≥ 0.
Beweis: Setze analog zum Beweis von Theorem 3.9 P̃t = Pt − Pt+1 ⇒ Behauptung.
Kombiniert man diese Eigenschaften der RDE mit den Erkenntnissen aus dem vorherigen
Abschnitt, so erhält man folgende Schlussfolgerung:
Theorem 3.11. Betrachte die RDE (3.3). Wenn
Pt+1 ≤ Pt
für ein t, dann ist F̄k aus (3.7) mit Pk stabil für alle k ≥ t.
Beweis: Die Monotonie von Pt in einem Schritt führt nach Theorem 3.9 zur Monotonie für
alle nachfolgenden Schritte. Mit Korollar 3.8 folgt dann sofort die Stabilität.
Daraus erhält man auch folgende Bedingung an Q̄0 aus der FARE (3.5):
37
3.4 Stabilitätseigenschaften des GPC
Korollar 3.12. Betrachte die RDE (3.2). Wenn
Q̄0 ≥ Q,
dann ist F̄k aus (3.7) stabil für alle t ≥ 0
Beweis: Q̄0 ≥ Q impliziert das P1 ≤ P0 und dadurch folgt das Resultat mit Theorem 3.9.
Diese theoretische Basis zum Aufstellen der Stabilitätsbedingungen für Lösungen der RDE
kann nun genutzt werden, um die Eigenschaften der Stabilität von GPC receding horizon
Regelungen zu erörtern, da diese eine feste lineare Rückführung enthalten, die wiederum
die Lösung eines LQ–Problems mit endlichem Horizont ist. Im Endeffekt ist dies dann die
Lösung einer RDE mit einem endlichen Horizont.
3.4
Stabilitätseigenschaften des GPC
Die Resultate des Theorems 3.11 aus dem letzten Abschnitt, das besagte, dass die receding
horizon Strategie mit einem streng monoton fallenden Pt zu einem asymptotisch stabilen
Regelkreis führt, kann man nun auf das System des GPC anwenden. Betrachtet man jedoch
einen zunächst günstig erscheinenden Fall, erhält man folgendes Resultat:
Theorem 3.13. Betrachte die Lösung Pt der RDE verbunden mit einem GPC–Regelungsgesetz
mit Nu = N2 , N1 = 1, das bedeutet Qt = H T H, Rt = λI und P0 = H T H. Dann gilt für alle
t≥0
Pt+1 ≥ Pt ,
das bedeutet, dass Pt immer monoton steigend ist.
Beweis: Durch die obige Wahl von Nu , N2 und N1 erhält man eine RDE mit konstanden
Koeffizienten
Pt+1 = F T Pt F − F T Pt G(GT Pt G + λI)−1 GT Pt F + H T H
(3.8)
Die Lösung dieser RDE mit Startzustand P0 = H T H ist identisch mit der, die durch den
Zustand P−1 = 0 erzeugt wird. Da nun schon für den Startzustand gilt P0 ≥ P−1 , folgt aus
Theorem 3.10, dass Pt für alle Zeitpunkte monoton steigend ist.
Das Bemerkenswerte an diesem Theorem ist, dass ein solcher GPC–Entwurf mit vollem
Horizont Nu = N2 bereits kein monoton fallendes Pt mehr möglich macht, egal wie die Werte
von N bzw. N2 gewählt werden. Dies kann einen leicht misstrauisch werden lassen, ob der
GPC überhaupt ein stabilisierendes Regelungsgesetz erzeugen kann. Dies ist jedoch durchaus
möglich, zum einen indem man wieder zu einem unendlichen Horizont zurückkehrt, der immer
eine stabile Lösung für die Regelung liefert. Um allerdings die Vorteile des recceding horizon
38 Kapitel 3: Stabilität beim GPC
Strategie auszunutzen, ist es notwendig, die Matrizen Q0 oder P0 für den Anfangszustand so
zu wählen, dass sich eine monoton fallende Lösung Pt einstellt, so dass nach den Ergebnissen
von Theorem 3.11 Stabilität garantiert werden kann. Dieses Verfahren hat sich in der Praxis
durchaus bewährt.
3.5
Zusammenfassung
Im diesem Kapitel wurde gezeigt, dass die Stabilität eines GPCs nicht ohne weiteres garantiert werden kann. Es ist sogar so, dass die Wahl eines maximalen Horizonts Nu = N2
bei bestimmten Anfangsbedingungen immer die falsche“ Monotonie erzeugt und keinerlei
”
Aussagen über die Stabilität des Systems gemacht werden können.
Hierzu sei jedoch gesagt, dass falls der GPC keinen expliziten Wert von Pt erzeugen kann,
dieser durch die Konstruktion des GPC implizit durch den Wert PN −1 definiert wird. Die
Eigenschaften der RDE (3.8) zum Zeitpunkt t = N − 1 stellen dann direkt die Stabilität
des GPC–Regelungsgesetzes sicher. Allerdings kann durch die aus dem letzten Theorem ersichtlichen Einschränkungen an den verwendeten Horizont und den Startzustand nicht die
gewünschte Performance erzeugt werden und man muss immer einen geeigneten Mittelweg
zwischen Stabilität und Performance finden. Dies geschieht in der Praxis manchmal auch
durch ein trial & error Verfahren, jedoch kann man oft schnell passende Parameter finden,
um ein stabiles System zu erhalten. Insgesamt hat sich das GPC–Verfahren jedoch als sehr
praktisch erwiesen und liefert in den meisten Fällen eine sehr gute Regelung mit Hilfe der
receding horizon Strategie.
Kapitel 4
MPC mittels Linearer
Programmierung
4.1
Motivation
Im Folgenden soll ein Einblick über den Einsatz von linearer Programmierung im Bereich der
modellprädiktiven Regelung (zur besseren Verständlichkeit werden wir hierfür das englische
Akronym MPC verwenden) vermittelt werden. Bei unserer Untersuchung schränken wir
uns auf zeitdiskrete, lineare und zeitinvariante Systeme ein, die sowohl Beschränkungen im
Eingang (der Kontrolle(n) u(t)) als auch dem Ausgang y(t) unterliegen. Im Speziellen werden
wir ein Zielfunktional betrachten, welches sich eine gemischte 1/∞-Norm zu Nutze macht
und wofür wir closed-loop-Stabilität garantieren können. Schließlich wird sich herausstellen,
dass sich das betrachtete MPC-Problem in ein lineares Programm überführen lässt und die
optimale Kontrolle als stückweise affine Funktion beschrieben werden kann. Dieser letzte
Schritt offenbart den wesentlichen Vorteil des vorgestellten Ansatzes:
Die Struktur der optimalen Kontrolle lässt sich dahingehend ausnutzen, diese komplett im
Voraus, also offline, zu berechnen. Hierdurch räumt man eine der größten Hürden der MPC
aus dem Weg, nämlich die aufwendige Online-Berechnung der aktuellen Kontrolle.
Dieser Ansatz beruht auf der Arbeit von A. Bemporad, F. Borrelli und M. Morari [5], die
auch die Grundlage für dieses Kapitel darstellt.
4.2
Stabilität mittels gemischter Norm
Der gesamten Betrachtung liegt das zeitdiskrete System
x(t + 1) = Ax(t) + Bu(t)
y(t) = Cx(t)
(4.1)
zugrunde, welches in den Ursprung reguliert werden und zudem für alle diskreten Zeitpunkte
t ≥ 0 (komponentenweise) den Beschränkungen
ymin ≤ y(t) ≤ ymax
umin ≤ u(t) ≤ umax
39
(4.2)
40 Kapitel 4: MPC mittels Linearer Programmierung
genügen soll. Es seien wieder x(t) ∈ Rn (Zustands- oder state-Vektor), u(t) ∈ Rm (Eingang
bzw. Input), y(t) ∈ Rp (Ausgang bzw. Output), (ymin, umin) ≤ (0, 0) ≤ (ymax , umax ), A ∈
Rn×n , B ∈ Rn×m , C ∈ Rp×n und das Paar (A, B) stabilisierbar. Davon ausgehend formulieren
wir das folgende Optimierungsproblem:
min
T
T
U :=[uT
0 ,...,uNu −1 ]
Ny −1
Ny −1
J(U, x(t)) := kP xNy k∞ +
X
k=1
kQxk k∞ +
X
k=0
kRuk k∞
s.t.
ymin ≤ yk ≤ ymax
k = 1, . . . , Nc ,
umin ≤ uk ≤ umax
k = 0, . . . , Nu − 1,
xk+1 = Axk + Buk
k = 0, 1, . . . , Ny − 1,
x0 = x(t),
uk = 0
Nu ≤ k ≤ Ny − 1.
(4.3)
Hierbei sei die verwendete Norm definiert als kV k∞ := maxi=1,...,r Vi∗ x für eine Matrix V ∈
Rr×n , wobei Vi∗ die i-te Zeile von V bezeichne. Desweiteren seien Q ∈ Rn×n , R ∈ Rm×m
nicht singulär, P ∈ Rr×n habe vollen Spaltenrang und es gelte Ny ≥ Nc ≥ Nu . J(U, x(t))
wird als performance index bezeichnet.
4.2.1
Lösbarkeit und Constraint Horizon
An dieser Stelle muss Erwähnung finden, dass obiges Problem natürlich im Allgemeinen nicht
zulässig sein muss (unter der Annahme, dass nur Eingangsbeschränkungen bestehen würden,
wäre u ≡ 0 stets zulässig). Dies lässt sich durch passende Wahl des constraint horizon Nc
erreichen, indem man eine Folge von linearen Programmen löst. Diesen Aspekt möchten wir
an dieser Stelle allerdings nicht weiter vertiefen, sondern verweisen auf [4, 27, 41].
4.2.2
Stabilität und Endzustandskriterium
Im Allgemeinen ergibt sich Stabilität bei MPC aus komplexen Funktionen in Abhängigkeit
von den tuning-Parametern Nu , Ny , Nc , P , Q, R. In der Praxis hat sich jedoch gezeigt, dass
es genügt gewisse Bedingungen an Ny , Nc und P zu stellen, sofern Q und R nicht singulär
sind — in dem hier betrachteten Fall reicht es sogar aus das Endzustandskriterium (terminal
weight) P passend zu bestimmen, um closed-loop-Stabilität zu erhalten.
Gehen wir also davon aus, dass A stabil ist und nehmen zudem an, dass Nc Abschnitt 4.2.1
folgend so gewählt wurde, dass die verschobene Eingabefolge
∗T
T
U ∗ (x(t)) := [u∗T
1 , . . . , uNy −1 , 0]
(4.4)
auch im nächsten Schritt t + 1 zulässig ist. Der folgende Satz zeigt, wie man P wählen muss,
um asymptotische Stabilität in (4.3) zu erhalten:
41
4.2 Stabilität mittels gemischter Norm
Satz 4.1. Sei A ∈ Rn×n stabil und der Anfangszustand x(0) so, dass eine zulässige Lösung
des Minimierungsproblems (4.3) zum Zeitpunkt t = 0 existiert. Angenommen es gibt eine
Rr×n -Matrix mit vollem Spaltenrang, welche die Ungleichung
, ∀ x ∈ Rn
− kP xk∞ + kP Axk∞ + kQxk∞ ≤ 0
(4.5)
erfüllt. Dann erfüllt das MPC-Gesetz (4.3) und (4.4) für hinreichend großes Nc die Einund Ausgangsbeschränkungen (umin, ymin) ≤ (u(t), y(t)) ≤ (umax , ymax) und stabilisiert das
System, also limt→∞ x(t) = 0 und limt→∞ u(t) = 0.
Beweis: Setzen wir zunächst V (t) := J(U, x(t)) und bezeichnen mit
∗T
∗T
T
U ∗ (x(t)) := [u∗T
0 (x(t)), u1 (x(t)), . . . , uNy −1 (x(t))]
die Lösung von (4.3). Unserer vorangegangenen Annahme zufolge ist außerdem Ushift :=
∗T
T
[u∗T
1 (x(t)), . . . , uNy −1 (x(t)), 0] , also die verschobene Eingangssequenz, eine Lösung zur Zeit
t + 1 und wir erhalten
V (t + 1) − V (t) =
kP x∗Ny +1 k∞
Ny
X
+
=
=
−kP x∗Ny k∞
=
−kP x∗Ny k∞
+
X
Ny
X
kQx∗k k∞ −
+
k=1
kP x∗Ny +1 k∞
+
kP (Ax∗Ny
+
kP Ax∗Ny k∞
kRu∗k k∞
k=1
Ny −1
k=2
Ny −1
− kP x∗Ny k∞ −
−kP x∗Ny k∞
kQx∗k k∞
+
+B
X
kRu∗k k∞
k=0
kQx∗Ny k∞
u∗Ny
− kQx∗1 k∞ − kRu∗0 k∞ + kRu∗Ny k∞
| {z }
)k∞ +
|{z}
kQx∗Ny k∞
−
kQx∗1 k∞
−
=0
kRu∗0 k∞
=0
|
{z
≤0 gemäß (4.5)
≤ 0.
+ kQx∗Ny k∞ −kQx∗1 k∞ − kRu∗0 k∞
}
(4.6)
Also ist V (t) eine absteigende Folge, die zudem durch 0 nach unten beschränkt ist (da das
Minimierungsfunktional V (t) aus einer Summe von Normen besteht). Somit existiert der
Grenzwert V∞ = limt→∞ V (t), was V (t + 1) − V (t) → 0 impliziert. Die Gleichung
lim kQx(t)k∞ + lim kRu(t)k∞ = 0
t→∞
t→∞
(4.7)
zeigt die Behauptung, da Q und R als nicht singulär vorausgesetzt waren.
Die natürliche Frage ist nun, ob Matrizen P und Q existieren, welche (4.5) erfüllen und wie
man diese konstruieren kann. Vereinfachen wir zu diesem Zweck zunächst die Ungleichung,
indem wir kQxk∞ ignorieren:
− kP̃ xk∞ + kP̃ Axk∞ ≤ 0
, ∀ x ∈ Rn
(4.8)
42 Kapitel 4: MPC mittels Linearer Programmierung
Um ein solches P̃ zu finden, gehen wir folgendermaßen vor: Für das autonome System x(t +
1) = Ax(t) finden wir eine Lyapunov–Funktion der Form
Ψ(x) = kP̃ xk∞
, P̃ ∈ Rr×n mit vollem Spaltenrang, r ≥ n.
(4.9)
Der folgende Satz stellt notwendige und hinreichende Bedingungen für die Existenz einer
solchen Lyapunov-Funktion (4.9).
Satz 4.2. Ψ(x) = kP̃ xk∞ ist eine Lyapunov-Funktion für x(t + 1) = Ax(t) genau dann,
wenn eine Matrix H ∈ Cr×r existiert, welche die Bedingungen
P̃ A − H P̃ = 0
erfüllt, wobei kHk∞ := supx6=0
kHxk∞
kxk∞
, kHk∞ < 1
= maxi=1,...,r
Pr
j=1 |Hij |
(4.10)
die induzierte Matrixnorm ist.
Beweis: Zum Beweis dieses Satzes sei an dieser Stelle auf die Arbeit von H. Kiendl, J. Adamy
und P. Stelzner oder die Arbeit von A. Polaénski [42, 57] verwiesen.
Mittels dieser Ergebnisse lässt sich unser gesuchtes P , welches (4.5) erfüllt nun mittels des
folgenden Satz bestimmen:
Satz 4.3. Seien P̃ und H gemäß (4.10) gewählt und sei weiterhin σ := 1 − kHk∞ , ρ :=
kQP̃ # k∞ mit P # := (P̃ T P̃ )−1 P̃ T der linken Pseudoinversen von P̃ . Dann ist (4.5) durch
die quadratische Matrix
P = σρ P̃
(4.11)
erfüllt.
Beweis: Beachte zunächst, dass die Gleichheit P A = HP gilt, denn
ergibt sich
ρ
P̃ A
σ
= H σρ P̃ . Damit
− kP xk∞ + kP Axk∞ + kQxk∞ = −kP xk∞ + kHP xk∞ + kQxk∞
≤ − kP xk∞ + kHk∞ kP xk∞ + kQxk∞ = (kHk∞ − 1)kP xk∞ + kQ (P̃ T P̃ )−1 (P̃ T P̃ )xk∞
|
{z
}
=P̃ #
≤(kHk∞ − 1)kP xk∞ + kQP̃ # k∞ kP̃ xk∞ = (kHk∞ − 1)k
=0.
#
kQP̃ k∞
P̃ xk∞ + kQP̃ # k∞ kP̃ xk∞
1 − kHk∞
Also ist die Behauptung gerechtfertigt.
Wir haben also tatsächlich Hilfsmittel gefunden, die uns asymptotische Stabilität für das System garantieren. Auf der Grundlage dieser Ergebnisse können wir nun mit der Untersuchung
der Struktur des zu bestimmenden MPC-Gesetzes fortfahren.
43
4.3 Stückweise affines MPC-Gesetz
4.3
Stückweise affines MPC-Gesetz
Um zu den folgenden Ergebnissen zu gelangen, schreiben wir zunächst das Minimierungsproblem (4.3) in ein lineares Programm um vermöge des Vektors [ǫx1 , . . . , ǫxNy , ǫu1 , . . . , ǫuNu ]T ,
welcher die Ungleichungen
− 1n ǫxk ≤ Qxk
−
−
−
−
−
k = 1, 2, . . . , Ny − 1,
1n ǫxk ≤ −Qxk
1r ǫxNy ≤ P xNy ,
1r ǫxNy ≤ −P xNy ,
1m ǫuk+1 ≤ Ruk
1m ǫuk+1 ≤ −Ruk
k = 1, 2, . . . , Ny − 1,
(4.12)
k = 0, 1, . . . , Nu − 1,
k = 0, 1, . . . , Nu − 1,
erfüllt (1j := [1, . . . , 1]T ∈ Rj ). Auf diese Weise lassen sich die nichtlinearen Normen des
ursprünglichen Problems (4.3) formulieren. Zudem stellt die Summe der Komponenten dieses
Vektors eine obere Schranke für das Minimierungsfunktional J(U, x(t)) dar und man sieht
leicht ein, dass ein Vektor z := [uT0 , . . . , uTNu −1 , ǫx1 , . . . , ǫxNy , ǫu1 , . . . , ǫuNu ]T ∈ Rs , s := (m +
1)Nu + Ny , welcher den Bedingungen (4.12) genügt und zugleich ǫx1 + · · ·+ ǫxNy + ǫu1 + · · · + ǫuNu
minimiert, auch das ursprüngliche Problem (4.3) löst, das heißt es wird dasselbe Optimum
J(U ∗ (x(t)), x(t)) erreicht. Die Gleichung
k
xk = A x(t) +
k−1
X
Aj Buk−1−j
(4.13)
j=0
erleichtert es, den Zustand in jedem Schritt rekursiv auszurechnen, so dass wir das folgende
lineare Programm mit Nebenbedingungen aufstellen können:
u
u
x
x
min ǫ1 + · · · + ǫNy + ǫ1 + · · · + ǫNu
z
s.t.
"
− 1n ǫxk ≤ ±Q Ak x(t) +
"
k−1
X
j=0
ymin ≤ C Ak x(t) +
umin ≤ uk ≤ umax
uk = 0
k−1
X
j=0
X
k = 1, 2, . . . , Ny − 1,
#
Ny −1
− 1r ǫxNy ≤ ±P ANy x(t) +
− 1m ǫuk+1 ≤ ±Ruk
"
Aj Buk−1−j
#
Aj BuNy −1−j ,
j=0
#
Aj Buk−1−j ≤ ymax
(4.14)
k = 0, 1, . . . , Nu − 1,
k = 1, . . . , Nc ,
k = 0, . . . , Nu − 1,
Nu ≤ k ≤ Ny − 1.
44 Kapitel 4: MPC mittels Linearer Programmierung
Dieses Problem lässt sich kompakter (und allgemeiner) schreiben als:
min χ = f T z
z
s.t.
Gz ≤ s + F x(t)
(4.15)
z ∈ Rs
Dabei ist f ∈ Rs , G ∈ Rq×s , F ∈ Rq×n , s ∈ Rq mit q := 2(n(Ny − 1) + 2mNu + pNc + r).
Bemerkung 4.4. Da Problem (4.15) vom derzeitigen Zustand x(t) abhängt, müsste man
in jedem Zeitschritt das lineare Programm online lösen, um die Kontrolle u(t) zu erhalten.
Zwar gibt es effiziente Verfahren dies zu bewerkstelligen (revidierter Simplex, innere Punkte),
dennoch würde man diesen direkten Weg gerne umgehen, da er sehr rechenaufwändig ist und
die dazu nötige Kontrollsoftware sehr komplex geraten würde.
Stattdessen geben wir eine Methode an, bei der die gesamte Berechnung offline erfolgt,
indem man x(t) als Parametervektor ansieht und ein sogenanntes multi-parametric linear
program (mp-LP) löst.
Der im Anschluss vorgestellte Algorithmus löst das mp-LP (4.15) für eine polyedrische Zustandsmenge X ∈ Rn und liefert als optimale Lösung die stückweise affine Funktion z ∗ (x(t))
in Abhängigkeit von x(t). Die gesuchte optimale Eingabefolge ergibt sich explizit aus den
ersten m · Nu Komponenten von z ∗ (x(t)), da diese gerade u(t) sind:
u(t) = [Im 0 . . . 0]z ∗ (x(t)).
(4.16)
Das MPC-Kontrollgesetz wird die Form
u(x) = Pi x + qi
, falls Hi x ≤ ki für i = 1, . . . , Nmpc
(4.17)
besitzen, dabei ist Pi ∈ Rm×n , qi ∈ Rm und die polyedrischen Mengen Xi := {x ∈ Rn :
Hi x ≤ ki }, i = 1, . . . , Nmpc sind eine Partition von X.
4.3.1
Multiparametrische lineare Programme
Um nun solche Probleme zu lösen teilt man den Parameterraum (wir betrachten hierfür einen
polyedrischen Zustandsraum X := {x(t) ∈ Rn : W x(t) ≤ w}, zur Vereinfachung werden wir
im Folgenden die Abhängigkeit von t außer Acht lassen) in sogenannte critical regions (CR)
auf.
Definition 4.5 (critical region (CR)). Ein kritisches Gebiet eines mp-LP (4.15) ist eine
Teilmenge von Parametern x, für die eine bestimmte Auswahl von Nebenbedingungen für ein
optimales z ∗ aktiv sind (d.h. mit Gleichheit erfüllt werden).
Mit X ∗ ⊆ X bezeichnen wir denjenigen Unterraum von X, dessen Elemente zu endlichen
Optimallösungen von (4.15) führen. Desweiteren führen wir die Wertefunktion χ∗ : X ∗ → R
ein, welche einem Parameter x den Wert der Zielfunktion von (4.15) zuweist und die Menge
Z ∗ der Optimierer z ∗ (x) für festes x ∈ X ∗ .
45
4.3 Stückweise affines MPC-Gesetz
Als nächstes müssen wir den Begriff der CR ein wenig erweitern. Sei hierzu J := {1, . . . , q}
die Indexmenge der Nebenbedingungen: Für E ⊆ J bezeichne GE bzw. FE diejenige Untermatrix von G bzw. F, welche nur aus den von E indizierten Zeilen besteht; Gj∗, Fj∗ , sj sind
entsprechend die j-ten Zeilen von G, F und s.
Definition 4.6. Die optimale Partition von J zu einem x ∈ X ∗ ist die Partition (E(x), NE(x))
mit
E(x) := {j ∈ J | ∀ z ∗ (x) ∈ Z ∗ : Gj z ∗ (x) − Fj x = sj },
NE(x) := {j ∈ J | ∃ z ∗ (x) ∈ Z ∗ : Gj z ∗ (x) − Fj x < sj }.
(4.18)
Offensichtlich gilt, dass E(x) ∩ NE(x) = ∅ und E(x) ∪ NE(x) = J. Für ein gegebenes
x∗ ∈ X ∗ sei (E, NE) := (E(x∗ ), NE(x∗ )) und
CRE := {x ∈ X | E(x) = E},
CRE := {x ∈ X | E(x) ⊆ E}.
(4.19)
Die Menge CRE ist die Menge aller Parameter x, für die die Nebenbedinungen, welche durch
E indiziert werden, im Optimum von (4.15) aktiv sind. Es gilt CRE ⊆ CRE .
Darüberhinaus benötigen wir noch die folgende Charakterisierung von primaler Degeneriertheit:
Definition 4.7 (primale Degeneriertheit). Für gegebenes x ∈ X ∗ heißt das lineare Programm
(4.15) primal degeneriert, falls es einen Optimierer z ∗ (x) ∈ Z ∗ (x) gibt, so dass die Anzahl
der aktiven Nebenbedingungen größer als die Anzahl n der Variablen ist.
4.3.2
Geometrischer mp-LP-Algorithmus
Der folgende Algorithmus berechnet zu unserem Problem (4.15) die Menge X ∗ , deren Partition in volldimensionale Gebiete CREi und die stückweise affinen Funktionen χ∗ (·) und z ∗ (·).
Dies geschieht in zwei Schritten:
1. Bestimme die Dimension n′ ≤ n des kleinsten affinen Unterraums X , der X ∗ enthält.
Falls n′ < n, finde die linearen Gleichungen in x, durch die X bestimmt ist.
2. Bestimme die Partition von X ∗ in volldimensionale Gebiete CREi und finde die Funktionen χ∗ (·) und z ∗ (·).
Der erste der genannten Punkte spielt für unsere Betrachtung keine allzu gewichtige Rolle
(in der Tat ist er für den hier betrachteten Fall sogar oftmals überflüssig, siehe [5], Prop.
2), da er im wesentlichen versucht, dem zweiten Schritt Vorarbeit zu leisten versucht, indem er Redundanz eliminiert — zweifelsohne kann dies aber die Effizienz des Algorithmus
enorm steigern. Deshalb wollen wir uns auf den Kern des Algorithmus beschränken und im
Folgenden detaillierter untersuchen:
46 Kapitel 4: MPC mittels Linearer Programmierung
Bestimmung der kritischen Gebiete, von z ∗ (x) und χ∗ (x)
Die Partition der polyedrischen Menge X wird aus den kritischen Gebieten CREi bestehen.
Zunächst stellen wir das primal-duale Paar zu (4.15) auf:
max χ = (s + F x)T y
min χ = f T z
y
z
(D) s.t.
(P) s.t. Gz ≤ s + F x
z ∈ Rs
GT y = f
(4.20)
y≤0
Das Vorgehen wird die primale Zulässigkeit heranziehen, um eine H–Repräsentation (Darstellung als Schnitt von Halbräumen) der kritischen Gebiete zu erhalten, die Schlupfbedingungen werden genutzt, um den Optimierer z ∗ (x) zu ermitteln und schließlich wird mittels
des dualen Problems die Wertefunktion χ∗ (x) berechnet.
Die primale Zulässigkeit, die duale Zulässigkeit und die Schlupfbedingungen für das primalduale Paar (4.20) lauten:
(PZ)
(DZ)
(SB)
Gz ≤ s + F x,
GT y = f,
y ≤ 0,
(4.21)
(Gj z − sj − Fj x)yj = 0 ∀ j ∈ J.
Dabei macht sich die Bedingung (SB) den Satz vom starken komplementären Schlupf zu
Nutze, welcher unter der Vorraussetzung, dass primales und duales Programm zulässige
Lösungen z ∗ , y ∗ besitzen, die Äquivalenzen
yi > 0 ⇔ Gi∗ z ∗ = s + F x
bzw.
Gi∗ z ∗ < s + F x ⇔ y ∗ = 0
impliziert (siehe z.B. [30], Satz 5.16, S.62).
Wählen wir nun einen beliebigen Parametervektor x0 ∈ X ∗ und lösen das primale und
duale Programm (4.20) für x = x0 . Seien z0∗ bzw. y0∗ die jeweiligen Optimierer. Nehmen wir
zunächst an, es läge keine Degeneriertheit vor. Der Wert von z0∗ legt die folgende optimale
Partition fest:
E(x0 ) := {j ∈ J | Gj z0∗ − Fj x0 = sj },
NE(x0 ) := {j ∈ J | Gj z0∗ − Fj x0 < sj },
(4.22)
und somit das kritische Gebiet CRE(x0 ) . Da wir Degeneriertheit ausgeschlossen haben, ist y0∗
eindeutig und bleibt somit für alle x ∈ CRE(x0 ) optimal. Die Wertefunktion lautet somit:
χ∗ (x) = (w + F x)T yo∗ .
(4.23)
Diese ist wie gewünscht eine affine Funktion in x über CRE(x0 ) . Machen wir uns als Nächstes
die (PZ) Bedingung für die optimale Partition (4.22) zunutze:
GE z ∗ (x) = sE + FE x.
(4.24)
4.3 Stückweise affines MPC-Gesetz
47
Dies lässt sich umformen zu (beachte, dass auch dies nur dann möglich ist, wenn keine
Degeneriertheit vorliegt)
−1
z ∗ (x) = G−1
E FE x + GE sE =: Kx + L,
(4.25)
so dass auch der Optimierer die gewünschte Struktur besitzt. Die Ungleichung
GN E z ∗ (x) < sN E + FN E x
wiederum liefert uns sofort eine Repräsentation des kritischen Gebiets CRE(x0 ) :
GN E (Kx + L) < sN E + FN E x.
(4.26)
Den Abschluss CRE(x0 ) erhält man durch Ersetzen des <Zeichens durch ein ≤Zeichen.
”
”
CRE(x0 ) nutzt man nun gewissermaßen als Keimzelle“, um den verbleibenden Parameter”
raum Rrest = X\CRE(x0 ) in weitere kritische Gebiete zu unterteilen. Eine Möglichkeit dies
zu tun, zeigt der folgende Satz:
Satz 4.8. Sei Y ⊆ Rn ein Polyeder und CR0 := {x ∈ Y : P x ≤ q} =
6 ∅ eine polyedrische
Untermenge von Y und sei
(
)
Pi∗ x > qi
Ri := x ∈ Y :
, i = 1, . . . , l,
(4.27)
Pj∗ x ≤ qj , ∀ j < i
S
mit q ∈ Rl und sei Rrest := li=1 Ri . Dann gilt:
(i) Rrest ∪ CR0 = Y ,
(ii) CR0 ∩ Ri = ∅, Ri ∩ Rj = ∅, ∀ i 6= j, das heißt {CR0 , R1 , . . . , Rl } ist eine Partition von
Y.
Beweis: (i) Zu zeigen ist, dass ein gegebenes x ∈ Y entweder in Y liegt oder in Ri für
ein i. Falls x ∈ CR0 sind wir fertig. Sonst gibt es einen Index i, so dass Pi∗ x > qi gilt.
Sei dieser minimal, also ĩ := mini≤l {Pi∗ x > qi }, dann gilt x ∈ Rĩ , da Pĩ∗ x > qĩ und
Pj∗ x ≤ qj , ∀ j < ĩ.
(ii) Sei x ∈ CR0 . Dann gibt es keinen Index i, so dass Pi∗ x > qi , was x ∈
/ Ri , ∀ i ≤ l
impliziert. Sei x ∈ Ri , nach Definition von Ri gilt für i > j: Pj∗ x ≤ qj , woraus x ∈
/ Rj
folgt.
Betrachten wir an dieser Stelle zunächst ein kleines Beispiel, um uns zu veranschaulichen,
wie mittels dieses Vorgehens ein Gebiet in polyedrische Mengen aufgeteilt werden kann:
n o
Beispiel 4.9. Wir möchten das Gebiet Y := xx12 | 1 ≤ x1 , x2 ≤ 5 ausgehend von einem
Startpolyeder CR0 := {x ∈ Y : Ax ≤ b} mit


 
0.5 −1
−1



A :=
1
1 , b :=
7
(4.28)
−2 1
−2
48 Kapitel 4: MPC mittels Linearer Programmierung
unterteilen. Die CR0 definierenden Nebenbedingungen lassen sich äquivalent so schreiben:
0.5x1 − x2 + 1 ≤ 0
x1 + x2 − 7 ≤ 0
−2x1 + x2 + 2 ≤ 0.
Was Satz (4.8) nun vorschlägt ist, der Reihe nach eine der ≤“-Bedingungen des Startpo”
lyeders in eine ≥“-Bedingung zu ändern und zusammen mit den Gebietsbeschränkungen
”
und eventuell vorangegangenen ≤“-Bedingungen als neuen Polyeder zu definieren. Der Al”
gorithmus dazu lässt sich leicht an den folgenden Bildern verfolgen:
x2
7
Y
6
5
4
Abbildung 4.1: Das Gebiet Y mit dem Startpolyeder CR0 .
CR0
3
2
1
x1
1
2
3
4
5
6
7
x2
7
Y
6
5
4
Abbildung 4.2: R1 := {0.5x1 − x2 + 1 ≥ 0, 1 ≤ x1 , x2 ≤ 5}
CR0
3
R1
2
1
x1
1
2
3
4
5
6
7
x2
7
Y
6
R2
5
Abbildung 4.3: R2 := {x1 + x2 − 7 ≤ 0, 0.5x1 − x2 + 1 ≤ 0, 1 ≤
x1 , x2 ≤ 5}
4
CR0
3
R1
2
1
x1
1
2
3
4
5
6
7
x2
7
Y
6
R2
5
Abbildung 4.4: R2 := {−2x1 + x2 + 2 ≥ 0, x1 + x2 − 7 ≤ 0, 0.5x1 −
x2 + 1 ≤ 0, 1 ≤ x1 , x2 ≤ 5}
4
R3
CR0
3
R1
2
1
x1
1
2
3
4
5
6
7
Die so generierten polyedrischen Mengen würde man daraufhin rekursiv erkunden, indem
man wiederum für ein beliebiges x das (primale und duale) Optimierungsproblem lösen
würde — eventuell würde dabei das betrachtete Gebiet noch weiter unterteilt.
4.3 Stückweise affines MPC-Gesetz
49
Tritt primale Degeneriertheit auf, lässt sich offensichtlich die Funktion z ∗ (x) nicht mehr wie
in (4.25) über die Inverse von GE berechnen, da GE in diesem Fall nicht mehr quadratisch
ist. Unter Umständen lässt sich dies aber durch eine Gauß-Elimination reparieren”:
”
q
U P z
(4.29)
=
GE z ∗ (x) = sE + FE x ⇔
r
0 D x
Unter der Annahme, dass U hierbei vollen Rang hat, können wir nun doch eine Vorschrift
für den Optimierer herleiten:
z ∗ (x) = −U −1 P x + U −1 q = Kx + L.
(4.30)
Das hierdurch definierte kritische Gebiet lautet dann:
GN E (Kx + L) < sN E + FN E x,
Dx = r.
(4.31)
Ist hierbei der Rang von D > 0, so beschreibt (4.26) ein nicht-volldimensionales Gebiet, und
wir wählen zufällig ein x′0 und führen für dieses die Berechnungen von Neuem durch.
Neben dem Problem der primalen gibt es auch noch das der dualen Degeneriertheit. Dieses
kann jedoch hier keine ausführliche Behandlung mehr erfahren. Details dazu und zu anderen
Möglichkeiten, primale Degeneriertheit zu umgehen, finden sich etwa in [65]. Abschließend
stellen wir den Algorithmus nochmals in seinen einzelnen Schritten zusammen:
Algorithmus 4.10.
❶ Setze Yk ← K als das zu untersuchende Gebiet und wähle ein x0 aus dem Inneren von
Y.
❷ Löse (4.20) für x = x0 .
❸ Wähle einen der Optimierer z0∗ des primalen Problems.
❹ Setze E(x0 ) ← {j ∈ J | Gj z0∗ −Fj x0 = sj } als die Menge der aktiven Nebenbedingungen.
❺ Im Fall primaler Degeneriertheit, berechne U, P , D durch Gauß-Elimination (4.29)
und bestimme daraus z ∗ (x) (4.30) und CRE(x0 ) (4.31), sonst bestimme z ∗ (x) gemäß
(4.25) und CRE(x0 ) gemäß (4.26).
❻ Setze χ∗ (x) wie in (4.23) für x = x0
❼ Partioniere Yk \CRE(x0 ) gemäß (4.8) und setze Y ← Ri für jede nichtleere Teilmenge
Ri ; Gehe zu 1.
50 Kapitel 4: MPC mittels Linearer Programmierung
Kapitel 5
Lösungsansätze nichtlinearer
modellprädiktiver Regelungprobleme
5.1
Problemstellung
Während die lineare modellprädiktive Regelung in vielen Anwendungen zu tragen kommt,
ist die Nichtlineare eher wenig vertreten.
Zwar sind verfahrenstechnische Prozesse in der Regel nichtlinear, viele können aber, ohne
dass zu große Abweichungen entstehen, linearisiert und durch lineare MPC, für die es schon
eine ausgereifte Theorie gibt, geregelt werden. Jedoch ist das bei einigen Anwendungen
nicht der Fall. Es können zu große Abweichungen von der Praxis auftreten, so dass andere
Lösungswege in Betracht gezogen werden müssen. Dies ist zum Beispiel bei Reinstdestilationsanlagen der Fall, bei denen in einer engen Umgebung ihres Betriebspunktes eine starke
lokale Nichtlinearität auftritt. Aber auch bei Prozessen, die lokal nur schwach nichtlinear
sind, jedoch auf einem weiten Arbeitsbereich betrieben werden sollen, ist es schwierig, eine
geeignete Linearisierung zu finden (z.B. bei Mehrprodukt-Polymerisationsanlagen, Kraftwerksanlagen mit häufigen großen Lastenwechseln).
Die Unterschiede von NMPC zu linearer MPC können wie folgt zusammengefasst werden:
ˆ Größerer Aufwand bei der Entwicklung des Prozessmodells
ˆ Parameteridentifikation nichtlinearer dynamischer Systeme schwieriger
ˆ größerer Aufwand zur Lösung von Optimierungsproblems (nichtkonvexes Problem)
ˆ Stabilität, Optimalität und Robustheit viel komplizierter
Im Folgenden werden wir eine genauere Betrachtung des konvexen Problems vornehmen, da
bei konvexen Programmen gilt:
Jeder lokale Minimierer ist ein globaler Minimierer
⇒ globale Lösung
51
52 Kapitel 5: Lösungsansätze nichtlinearer modellprädiktiver Regelungprobleme
Bemerkung 5.1. Problem hierbei ist jedoch, dass nichtlineare Systeme im Allgemeinen
nichtkonvex sind, so dass die Globalität nicht notwendigerweise gelten muss. Abbildung 5.1
veranschaulicht dies noch einmal graphisch.
Abbildung 5.1: Nichtkonvexes Problem
Das zu lösende Problem ist wie gewohnt in der Form eines Kontrollsystems gegeben. Die
Problemstellung und die folgeden Zusammenhänge werden sich dabei an der Arbeit von
D.Q. Mayne [49], dem Buch von R. Dittmar und B.M. Pfeiffer [23], der Arbeit von R.
Findeisen und F. Allgöwer [1], der Arbeit von F.A.C.C Fontes [25] und dem Buch von O.
Föllinger and G. Roppenecker [26] orientieren.
Definition 5.2 (Kontrollsystem).
Ein System der Form
ẋ(t) = f (x(t), u(t)),
x(0) = x0
(5.1)
mit den Eingängen u(t) ∈ U und Zuständen x(t) ∈ X ∀t ≥ 0, wobei X ⊆ Rn die Menge der
zulässigen Eingänge und U ⊆ Rm die der zulässigen Zustände darstellen, wird Kontrollsystem
genannt.
Definition 5.3 (Randbedingungen).
Sei r, n ∈ N, 0 ≤ r ≤ 2n. Die Bedingung
ψ(x(t0 ), x(tf )) = 0
(5.2)
für Anfangs- und Endzustand mit einer bezüglich x(t0 ) und x(tf ) stetig differenzierbaren
Funktion ψ : Rn × Rn → Rr wird allgemeine Randbedingung genannt.
Als Lösungspaar eines Kontrollsystems (5.1) bezeichnet man dabei das Funktionenpaar
(x(t), u(t)), wenn es (5.1) für alle Stetigkeitsstellen t ∈ [t0 , tf ] erfüllt. Gilt für ein solches
Lösungspaar (x(t), u(t)) von (5.1) die Randbedingungen (5.2), so wird es auch zulässig zur
Endzeit tf genannt.
Die hier angeführte Definition eines optimalen Steuerprozesses ist allgemeiner für Randbedingungen der Form (5.2) gehalten, so dass für gegebene Anfangswerte x(t0 ) := x
ψ(x(t0 ), x(tf )) = x(t0 ) − x
(5.3)
zu setzen ist. Als letzten noch fehlenden Bestandteil sei hier das Optimalitätskriterium folgendermaßen definiert:
53
5.1 Problemstellung
Definition 5.4 (Zielfunktional).
Sei U ⊂ Rm , F : Rn × Rn → R eine stetig differenzierbare und l : Rn × U → R eine stetig
und bezüglich x(t) ∈ Rn und u(t) ∈ U stetig partiell differenzierbare Funktion. Dann wird
J(x(t), u(t)) :=
Z
tf
l(x(t), u(t))dt + F (x(t0 ), x(tf ))
(5.4)
t0
als Zielfunktional bezeichnet.
In der Literatur werden F (x(t0 ), x(tf )) Mayer-Anteil und l(x(t), u(t)) Lagrange-Anteil genannt. Der Lagrange-Anteil stellt dabei die Bewertung des Lösungspaares (x(t), u(t)) für
alle Zeitpunkte t ∈ [t0 , tf ] dar, das bedeutet insbesondere, dass sowohl der Zustand als auch
die Steuerung bestraft werden können, wohingegen der Mayer-Anteil nur von Anfangs- und
Endzustand abhängig ist. Somit lässt sich mit dem Mayer-Anteil etwa eine Bestrafung für
die Nichteinhaltung von Randwerten (5.2) realisieren.
Zudem können sogenannte Steuer- und Zustandsbeschränkungen in allgemeinerer Form über
den Vektor der Beschränkungen aufgenommen werden.
Definition 5.5 (Vektor der Beschränkungen).
Sei s ∈ N, s ≥ 1 und S(x(t), u(t)) = (c1 (x(t), u(t)), . . . , Ss (x(t), u(t)))T .
(1) Sei Sk : Rn × Rm → R für k ∈ {1, . . . , s}. Dann heißen die Funktionen Sk mit
Sk (x(t), u(t)) ≤ 0 ∀t ∈ [t0 , tf ]
(5.5)
gemischte Beschränkungen.
(2) Sei Sk : Rn → R für k ∈ {1, . . . , s}. Dann werden Beschränkungen der Form
Sk (x(t)) ≤ 0 ∀t ∈ [t0 , tf ]
(5.6)
Zustandsbeschränkungen genannt.
(3) Seien sm , sz , s ∈ N, s := sm + sz und S : Rn × Rm → Rs mit
(
Sk (x(t), u(t)), k = 1, . . . , sm ,
Sk (x(t), u(t)) :=
Sk (x(t)),
k = sm + 1, . . . , s.
(5.7)
Dann wird
S(x(t), u(t)) ≤ 0 ∀t ∈ [t0 , tf ]
(5.8)
Vektor der Beschränkungen genannt.
Für den optimalen Steuerprozess bedeutet dies, dass nun auch Beschränkungen an den Zustand und gemischte Beschränkungen an Zustand und Steuerung vorliegen können. Die Ordnung einer Beschränkung wird dabei wie folgt definiert:
54 Kapitel 5: Lösungsansätze nichtlinearer modellprädiktiver Regelungprobleme
Definition 5.6 (Ordnung einer Beschränkung).
Sei p ∈ Ns mit 0 ≤ pi ≤ pmax , wobei pmax ∈ N mit pmax := max(pi : i = 1, . . . , s) gesetzt
wird. Weiter sei f eine C pmax -Funktion. Dann heißt pi die Ordnung der Beschränkung Si
bezüglich der Differentialgleichung ẋ(t) = f (x(t), u(t)) mit
(
0
i ∈ {1, . . . , sm },
(5.9)
pi :=
p̃ : p̃ ist Ordnung der Funktion Si i ∈ {sm + 1, . . . , s}.
p heißt dabei Ordnung der Funktion F : Rn → R bezüglich der Differentialgleichung ẋ(t) =
f (x(t), u(t)), falls
∇u F i = 0 ,
∇u F
p
i = 0, . . . p − 1
6= 0
(5.10)
(5.11)
für C p -Funktionen F i : Rn → R, die sich rekursiv definieren durch:
F 0 = F , F i = ∇x (F i−1 )f , i = 1, . . . , p.
Definition 5.7 (Optimaler Steuerprozess ohne Beschränkungen).
Das Problem
Z tf
l(x(t), u(t))dt + F (x(t0 ), x(tf ))
Minimiere
J(x(t), u(t)) =
(5.12)
(5.13)
t0
unter
ẋ(t)
= f (x(t), u(t))
(5.14)
ψ(x(t0 ), x(tf )) = 0
(5.15)
≤0
(5.16)
S(x(t), u(t))
u(t)
∈ U, t ∈ [t0 , tf ]
(5.17)
heißt optimaler Steuerprozess OCP oder optimales Steuerungsproblem.
Die hier vorliegende Darstellung wird auch Bolza-Problem genannt. Andere Arten von Steuerungsproblemen unterscheiden sich nur in der Beschreibung des Zielfunktionals und können
ineinander überführt werden:
Lagrange-Problem :
Mayer-Problem :
Tschebyscheff-Problem :
F ≡0
l≡0
J(x, u) = max{l(x(t), u(t), t)}
Ebenso können Probleme mit freier Endzeit auf Probleme mit fester Endzeit und nichtautonome auf autonome Probleme transformiert werden. Entsprechende explizite Formeln
hierzu finden sich in Kapitel 4.2 der Arbeit von Ch.Büskens [12]. Das Optimalsteuerungsproblem heißt dabei autonom, wenn l und f nicht explizit von t abhängen.
Bemerkung 5.8. Dabei eignen sich bestimmte Darstellungsweisen des Zielfunktionals besser
für analytische oder numerische Zwecke, obwohl sie äquivalent ineinander überführt werden
können. Beispielsweise hat sich das Mayer-Funktional in der numerischen Anwendung als
vorteilhaft herausgestellt. In der analytischen Betrachtung wird jedoch häufig die LagrangeForm zugrundegelegt.
55
5.1 Problemstellung
Im weiteren Verlauf bezeichne
V (x) := inf J(x, u)
u∈U
(5.18)
die Wertefunktion des optimalen Steuerungsproblems.
Annahme 5.9. Weiter setzen wir voraus, dass diese die folgenden Annahmen erfüllen:
(A1) U ⊆ Rm ist kompakt, X ⊆ Rn ist zusammenhängend und (0, 0) ∈ X × U.
(A2) Das Vektorfeld f : Rn × Rm → Rn ist stetig, erfüllt f (0, 0) = 0 und ist lokal Lipschitz
stetig in x.
(A3) Die Differentialgleichung hat eine eindeutige stetige Lösung für jede Anfangsbedingung
und für jede stückweise stetige und rechtseitig stetige Funktion u(·) : [0, TP ] → U auf
einem Intervall [t0 , tf ].
Das Ziel ist dabei, das folgende Problem zu lösen:
Definition 5.10 (Problemstellung NMPC).
Finde
û[0,M −1] = arg min JM (x, v[0,M −1] )
v[0,M −1]
(5.19)
auf einem Horizont
j∈N
(5.20)
Zti+1
l(x(t), vi )dt + F (x(tM ))
(5.21)
[t0 , tM ] = [t̂j , t̂j+M ] ,
mit dem Zielfunktional
JM (x, v[0,M −1] ) :=
M
−1
X
i=0 t
i
unter den Nebenbedingungen
ẋ(t) = f (x(t), u(x(t)))
(5.22)
0 = ψ(x(t0 ), x(tM ))
(5.23)
0 ≥ S(x(t), v[0,M −1] ).
(5.24)
Bemerkung 5.11. F kann dabei zudem eine Abschätzung für den Fall des unendlichen
Horizonts darstellen und wird auch “cost-to-go“ genannt:
∞ Z ti+1
X
V∞ (x) := inf
l(x(t), vi )dt
(5.25)
v[0,∞)
i=0
ti
Im Allgemeinen kann hierfür eine Lyapunov-Kontroll-Funktion verwendet werden, die grob
gesagt eine obere Schranke darstellen soll. Idealerweise soll F dem Kostenfunktional mit
unendlichen Horizont entsprechen. Damit wäre die online Optimierung unnötig und die bekannten Vorteile des unendlichen Horziontes, Stabilität und Robustheit, würden automatisch
zutreffen. Entsprechende Aussagen finden sich in den Arbeiten von A. Jadbabaie, J. Yu und
J. Hauser [40] sowie der Arbeit von D.Q. Mayne, J.B. Rawlings, C.V. Rao und P.O.M.
Scokaert [50]. Im linearen Fall führt dies zu H2 und H∞ Lösungen, im nichtlinearen Fall
jedoch ist zwingend die Lösung einer Hamilton-Jacobi-Bellman Gleichung erforderlich, die
nur sehr schwer zu erhalten ist. Hierfür sei etwa auf die Arbeit von L. Grüne [31] verwiesen.
56 Kapitel 5: Lösungsansätze nichtlinearer modellprädiktiver Regelungprobleme
5.2
5.2.1
Reduktion auf lineares MPC–Problem
Variablen-Transformation
Es ist möglich durch Anwendung nichtlinearer Transformationsbeziehungen auf die Regelund/oder Stellgrößen eine Linearisierung der Zusammenhangs zwischen diesen Größen zu
erzeugen. Dieses Prinzip wird durch Abbildung 5.2 verdeutlicht.
Abbildung 5.2: Linearisierung durch Variablen - Transformation
Dadurch erhält man ein lineares Ersatz“-System, für welches ein linearer MPC-Regler ent”
wickelt werden kann. Hierbei wird g(·) in der Form eines Vorfilters gebraucht und auch zur
Transformation des Feedback verwendet.
Bemerkung 5.12. Die Schwierigkeit liegt darin, geeignete Transformationsbeziehungen g(·)
und q(·) zu finden. Zudem sind diese meist nur auf einen bestimmten Prozess anwendbar.
Man muss also diese immer neu entwerfen, entweder aus einem theoretischen Prozessmodell,
durch Datenauswertung von Experimenten oder Simulationsstudien. Hierbei ist vor allem
Expertenwissen gefragt.
Die grundlegenden Ideen der Transformationsmethode werden nun im Folgenden an einem
nichtlinearen Modell der Form (5.1) gezeigt.
Dazu zerlegt man die Funktion in einen Teil, der nur von x abhängt, und den Restteil, der
von x und u abhängig ist, also
dx
= f (x, u) = c1 f1 (x) + c2 f2 (x, u).
dt
(5.26)
Dann rät man eine Transformation
z = g(x),
(5.27)
wobei g(·) so gewählt wird, dass das Prozessmodell, welches mit den ursprünglichen Variablen
nichtlinear ist, nun entweder die Form
oder
dz
= az + bv
dt
(5.28)
dz
= a + bv
dt
(5.29)
57
5.2 Reduktion auf lineares MPC–Problem
hat und somit in z und v linear sind. Durch die Ableitung von z = g(x) erhält man
dz dx
dz
=
.
dt
dx dt
(5.30)
Setzt man in diese Gleichung die zerlegte Differentialgleichung ein, so ergibt sich
dz
dz
dz
= c1 f1 (x) + c2 f2 (x, u) .
dt
dx
dx
(5.31)
Nun wählt man z = g(x) so, dass gilt:
z
dz
=
.
dx
f1 (x)
(5.32)
Nach Einsetzen von Gleichung (5.32) und (5.33) in (5.31) ist
f2 (x, u)
dz
=v
dx
(5.33)
identisch mit (5.28), wobei a = c1 und b = c2 .
Durch Anwendung von der Methode “Variation der Konstanten“ auf (5.33) erhält man
dz
dx
=
,
z
f1 (x)
(5.34)
Z
(5.35)
also
ln z =
und schließlich
R
z=e
dx
,
f1 (x)
dx
f1 (x)
(5.36)
Durch Einsetzen von Gleichung (5.32) in (5.33) und einigen Umformungen erhält man schlussendlich
vf1 (x)
(5.37)
f2 (x, u) =
z
wobei v nun die Kontrolle im Ersatz-System darstellt.
Bemerkung 5.13. Als Alternative kann man auch die nichtlineare Gleichung
(5.31) in die
R dx
linearen Gleichung (5.29) umtransformieren, wobei hier dann z = f1 (x) und f2 (x, u) =
vf1 (x) gilt.
Die jeweils letzte Gleichung löst man dann nach u auf, um
u = q(x, v)
(5.38)
zu erhalten. Somit liegt nun ein lineares Problem vor, das mit bekannten Methoden gelöst
werden kann.
58 Kapitel 5: Lösungsansätze nichtlinearer modellprädiktiver Regelungprobleme
5.2.2
LMPC mit multiplen linearen Modellen
Bei dieser Form der Regelung wird der gesamte Arbeitsbereich in n Teilbereiche untergliedert, für die jeweils ein lineares Prozessmodell identifiziert wird. Abbildung 5.3 zeigt das
Grundprinzip dieser Vorgehensweise. Als Basis für diesen Abschnitt dienen die Arbeiten von
B.A. Ogunnaike und W.H. Ray [55] sowie der Arbeit von B. Aufderheide und B.W. Bequette
[3].
Abbildung 5.3: LMPC mit multiplen linearen Modellen
Bei dieser Methode werden alle n Modelle parallel zur Vorhersage der Ausgangsgrößen (Regelgrößen) y herangezogen und die Vorhersagen der einzelnen Modelle gewichtet. Daraus
ergibt sich ein gewichteter Mittelwert
ŷ =
n
X
αi ŷ,
(5.39)
i=1
wobei die Gewichtsfaktoren αi rekursiv aus den Residuen
ǫj,k = (y − ŷi )
(5.40)
ermittelt werden können. Dabei muss gelten
n
X
αi ∈ [0, 1] und
αi = 1.
(5.41)
i=1
Bemerkung 5.14. Je größer αi , desto besser beschreibt das i - te Teilmodell die aktuelle
Verfahrensweise.
Weiter gilt
αj,k =
pj,k
N
P
m=1
pm,k
(5.42)
59
5.2 Reduktion auf lineares MPC–Problem
wobei
1 T
pj,k =
e(− 2 ǫj,k Kǫj,k ) pj,k−1
N
P
(− 12 ǫT
m,k Kǫm,k )
e
(5.43)
pm,k−1
m=1
und K die Konvergenzmatrix darstellen.
Bemerkung 5.15. Die größte Herausforderung bei dieser Lösungsmethode besteht in der
Bestimmung der n Teilmodelle und die geeignete Unterteilung des Arbeitsbereiches.
Als einfachste Zerlegungsmethode kann die Unterteilung des gesamten Arbeitsbereichs in ein
gleichmäßiges mehrdimensionales Gitter im Raum der Eingangsvariablen (Steuergrößen und
bekannte Störgrößen) gewählt werden. Aus den Gitterpunkten wird dann jeweils ein lineares
Modell identifiziert, was jedoch zu einer riesigen Zahl von Modellen führt.
Es gibt systematische Konstruktionsverfahren, die die Anzahl von Modellen möglichst gering halten. Ein besonders effizientes Verfahren ist das so genannte LOLIMOT-Verfahren
(Local Linear Model Tree), für das auch eine Matlab-Toolbox existiert. Für eine explizitere
Erläuterung sei an dieser Stelle auf die Arbeit von O. Nelles [52] verwiesen.
Bei diesem Verfahren wird der Eingangsraum sukzessive geteilt. Zuerst wird er gesamte
Raum halbiert und anschließend der Teilraum mit der größten Kostenfunktion wiederum in
zwei Hälften geteilt. Diese Vorgehensweise wird weiter iteriert, so dass sich die nebenstehende
Unterteilung ergibt.
Abbildung 5.4: LOLIMOT–Iteration zur Unterteilung
Mittels dieser Konstruktion erhält man einen entsprechender Suchbaum, der dann genutzt
werden kann, um effizient die Lösung des zugrundeliegenden Problems zu bestimmen.
60 Kapitel 5: Lösungsansätze nichtlinearer modellprädiktiver Regelungprobleme
Abbildung 5.5: LOLIMOT–Baum
5.3
Indirekte Verfahren
Bei den indirekten Verfahren wird zunächst analytisch der optimale Steuerprozess mittels der
notwendigen Bedingungen des Pontryaginschen Minimumprinzips in ein Randwertproblem
überführt, das anschließend mit numerischen Methoden wie etwa Single–Shooting, Multiple–
Shooting oder Kollokationsverfahren gelöst werden kann.
Bemerkung 5.16. Trotz der hohen Genauigkeit der Lösung und der leichten Überprüfbarkeit
notwendiger Bedingungen werden diese Verfahren nicht mehr sehr häufig eingesetzt, da mit
direkten Verfahren eine größere Problemklasse leichter abgedeckt werden kann und nicht für
jedes einzelne Problem die Vorarbeiten durchzuführen sind, wie sie das Pontryaginsche Minimumprinzip erfordert. Zudem entstehen Mehrpunkt-Randwertprobleme, wenn der optimale
Steuerprozess beschränkt ist, die weitere numerische Probleme verursachen.
Zentrales Hilfsmittel des Pontryaginschen Minimumprinzips ist die sogenannte adjungierte
Differentialgleichung:
Definition 5.17 (Hamiltonfunktion und adjungierte Variable).
Sei λ0 ∈ R und λ ∈ Rn , dann heißt
H(x(t), λ, u(t), t) = λ0 · l(x(t), u(t)) + λT · f (x(t), u(t))
(5.44)
Hamiltonfunktion zu einem unbeschränkten optimalen Steuerprozess OCP.
Dabei wird λ ∈ Rn adjungierte Variable oder Kozustand zu x genannt.
Ökonomisch lässt sich die adjungierte Variable λj , j ∈ {1, . . . , n}, als Schattenpreis interpretieren, also nicht als Marktpreis, der für eine marginale zusätzliche Menge von xj zu zahlen
wäre, sondern den Preis, den man bereit wäre zu zahlen, ohne dabei den Wert der optimalen
Wertefunktion zu ändern.
Die totale Auswirkung einer Steuerung u zu einem Zeitpunkt t wird von der HamiltonFunktion beschrieben. Die Auswirkung kann dabei zerlegt werden in
61
5.3 Indirekte Verfahren
ˆ die Wirkung, die diese Steuerung mit dem vorliegenden Zustand x auf den Zustand
des Systems über dessen Dynamik f (x, u) haben (ökonomisch entspricht dies der
Wertänderung des Kapitalstocks) und
ˆ den Effekt, der direkt mit l in das Zielfunktional eingeht (die Profitrate).
Eine optimale Lösung des Steuerprozesses OCP zur festen (freien) Endzeit tf zu finden
bedeutet, ein zulässiges Funktionenpaar (x∗ , u∗) zu bestimmen, so dass
J(x∗ , u∗ ) ≤ J(x, u)
(5.45)
für alle zulässigen Paare (x, u) zur (beliebigen) Endzeit tf (> 0) gilt. Dabei wird x∗ auch als
optimale Trajektorie und u∗ als optimale Steuerung bezeichnet.
Zur Berechnung einer optimalen Lösung eignet sich diese Aussage allerdings nicht, da hierzu
das Zielfunktional für alle zulässigen Lösungen ausgewertet werden müsste. Daher werden
für unbeschränkte optimale Steuerprozesse OCP die notwendigen Bedingungen des Pontryaginschen Minimumprinzips verwendet.
Satz 5.18 (Pontryaginsches Minimumprinzip - Notwendige Bedingungen).
Für eine optimale Lösung (x∗ , u∗ ) eines optimalen Steuerprozesses ohne Beschränkungen
OCP mit Hamiltonfunktion (5.44) existieren eine reelle Zahl λ0 ≥ 0, eine stetige und
stückweise stetig differenzierbare Funktion λ : [t0 , tf ] → Rn sowie ein Vektor σ ∈ Rr , so
dass gilt:
ˆ (λ0 , λT (t), σ T ) 6= 0 ∀t ∈ [t0 , tf ]
ˆ An allen Stetigkeitsstellen t von u∗ in [t0 , tf ] gelten
– Minimumbedingung
H(x∗ , u∗ , λ, t) = min{H(x∗ , u, λ, t)}
(5.46)
u∈U
– Adjungierte Differentialgleichung
λ̇T = −∇x H(x∗ , u∗, λ, t)
(5.47)
ˆ Transversalitätsbedingung
λ(t0 ) = −∇x(t0 ) (λ0 · F (x∗ (t0 ), x∗ (tf )) + σ T · ψ(x∗ (t0 ), x∗ (tf )))T
∗
∗
T
∗
∗
T
λ(tf ) = ∇x(tf ) (λ0 · F (x (t0 ), x (tf )) + σ · ψ(x (t0 ), x (tf )))
(5.48)
(5.49)
ˆ Im Fall freier Endzeit gilt für die optimale Endzeit t∗f
H(x∗ (t∗f ), u∗ (t∗f ), λ(t∗f ), t∗f ) = 0.
(5.50)
ˆ Im Fall autonomer Probleme gilt
H(x∗ , u∗ , λ, t) = konstant ∀t ∈ [t0 , tf ].
(5.51)
62 Kapitel 5: Lösungsansätze nichtlinearer modellprädiktiver Regelungprobleme
Der Beweis des Satzes ist in der Arbeit von L.S.Pontryagin, V.G.Boltjanskij, R.V.Gamkrelidze
und E.F.Miscenko [58] nachlesbar.
Die Idee des Minimumprinzips ist dabei die Konstruktion eines Systems von adjungierten
Differentialgleichungen, wodurch auch die indirekten Folgen einer Steuerung berücksichtigt
werden und damit das Ergebnis minimiert wird. Ergebnis dieser analytischen Lösung ist
ein Differentialgleichungssystem, das aus doppelt so vielen Differentialgleichungen besteht
wie das zugrundeliegende Kontrollsystem (5.1). Dieses entsteht aus der Minimierung der
Hamiltonfunktion zu jedem Zeitpunkt t ∈ [t0 , tf ] und der dementsprechenden Bestimmung
der adjungierten Differentialgleichung. Die Transversalitätsbedingungen schließlich liefern
die zusätzlichen Randwerte, die zur Lösung des Randwertproblems notwendig sind.
Bemerkung 5.19. Für den modellprädiktiven Regelungsansatz würde dies bedeuten, dass
ein Mehrpunkt-Randwertproblem mit 2n Differentialgleichungen zu lösen ist und zudem die
Unstetigkeitsstellen der Steuerung berücksichtigt werden müssen.
Bemerkung 5.20. Allgemeinere Formen dieses Prinzips, etwa zur Berücksichtigung von
Steuer- und Zustandsbeschränkungen, finden sich in dem Buch von F.H. Clarke, Yu.S. Ledyaev, R.J. Stern und P.R. Wolenski [18].
5.3.1
Verfahren zur Lösung des Randwertproblems
An dieser Stelle soll kurz auf die numerischen Verfahren zur Lösung der sich aus dem
Pontryaginschen Minimumproblems ergebenden Mehrpunkt–Randwertprobleme eingegangen werden. In der Praxis werden hierzu ausschließlich numerische Algorithmen angewandt,
da allein schon aus Dimensionsgründen hier eine analytische Lösung nicht in Betracht kommt.
Single–Shooting
Gegeben sei das Randwertproblem
ẋ(t) = f (t, x(t))
ψ(x(t0 ), x(tf )) = 0.
(5.52)
(5.53)
Gesucht ist hierbei der Anfangswert s ∈ Rn für das Anfangswertproblem
ẋ(t) = f (t, x(t))
x(t0 ) = s,
so dass die Lösung x(t) = x(t; s) den Randbedingungen
ψ(x(t0 ; s), x(tf ; s)) ≡ ψ(s, x(tf ; s)) = 0
(5.54)
genügt. Hierzu ist die Nullstelle der Funktion
F (s) := ψ(s, x(tf ; s))
(5.55)
5.3 Indirekte Verfahren
63
zu bestimmen, was sich numerisch relativ einfach umsetzen läßt, indem etwa ein Newton–
oder newtonähnlichen Verfahren angesetzt wird, falls entsprechende Differenzierbarkeitvoraussetzungen der Funktion erfüllt sind. Falls dies nicht gilt, müssen ableitungsfreie Verfahren,
zum Beispiel das Verfahren des Goldenen Schnitts, verwendet werden.
Somit wird x(tf , s) in jedem Iterationsschritt neu bestimmt. Die Differenz der durch die
Anfangsschätzung bestimmten Lösung in tf , also x(tf , s), und der bekannten Endbedingung
x(tf ) wird zu 0 gerechnet.
Abbildung 5.6: Single–Shooting
Das sich in jedem Schritt ergebende Anfangswertproblem kann durch Verfahren der Numerik,
etwa
ˆ Einschrittverfahren (Polygonzugverfahren von Euler, Runge-Kutta-Verfahren),
ˆ Mehrschrittverfahren (Adams-Bashforth, Adams-Moulton),
ˆ Extrapolationsverfahren oder
ˆ Schrittweitensteuerungsverfahren
gelöst werden.
Bemerkung 5.21. Problematisch bei der Lösung des Randwertproblems durch das Einfachschießverfahren ist die Tatsache, dass erhebliche Ungenauigkeiten auftreten können, wenn
die Trajektorienwerte x(t) = x(t; s) sehr empfindlich von den Anfangswerten s abhängen.
Multiple–Shooting
Um das Problem der von s empfindlich abhängenden Lösung zu umgehen, wird eine Unterteilung des Intervalls [t0 , tf ] gewählt und auf diesen Teilintervallen das Single–Shooting–
Verfahren angewandt.
Bemerkung 5.22. Zudem hat das Multiple–Shooting–Verfahren den Vorteil, dass Unstetigkeiten explizit berücksichtigt werden können, die sich aus den Bedingungen des Pontryaginschen Minimumprinzips für Optimalsteuerungsprobleme mit Beschränkungen ergeben. Somit
kann der Verlust der Konvergenzordnung an eben diesen Stellen vermieden werden. Dies ist
64 Kapitel 5: Lösungsansätze nichtlinearer modellprädiktiver Regelungprobleme
gleichzeitig einer der größten Nachteile der sogenannten direkten Verfahren, die an späterer
Stelle untersucht werden, denn das Wissen um eben diese Stellen ist dort nicht bekannt.
An mehreren (teils beliebigen und teils aus dem Minimumprinzip vorgegebenen) Stellen
t0 = t1 < t1 < t2 < ... < tM = tf
(5.56)
s̄k = x(tk ), k = 1, ..., M − 1,
(5.57)
ẋ(t) = f (t, x(t)),
(5.58)
werden die Werte
der exakten Lösung x(t) des Randwertproblems gleichzeitig iterativ berechnet. x(t; tk , sk )
bezeichne hierbei die Lösung des Anfangswertproblems
x(tk ) = sk .
(5.59)
Die Vektoren sk , k = 1, ..., M − 1 sind somit so zu bestimmen, dass die aus den x(t; tk , s)
stückweise zusammengesetzte Funktion
x(t) := x(t; tk , sk ),
t ∈ [tk , tk+1 [, k = 1, . . . , M − 1
(5.60)
stetig ist und die Randbedingungen ψ(x(t0 ), x(tf )) = 0 erfüllt.
Abbildung 5.7: Multiple–Shooting
Aus der Stetigkeits- und der Konsistenzbedingung der Randwerte erhält man die folgenden
n(M − 1) Bedingungen
x(tk+1 ; tk , sk ) = sk+1 ,
ψ(s1 , x(tM ; tM −1 , sM −1 )) = 0,
k = 1, . . . , M − 2,
(5.61)
(5.62)
(j)
für die n(M − 1) unbekannten Komponenten sk , j = 1, . . . , n, k = 1, . . . , M − 1, mit
(1)
(2)
(n)
sk = (sk , sk , ..., sk )T .
Insgesamt gilt für s = (s1 , ..., sM −1)T das Gleichungssystem



x(t2 ; t1 , s1 ) − s2
F1 (s1 , s2 )
 x(t3 ; t2 , s2 ) − s3

 F2 (s2 , s3 )



 .

 ..
F (s) :=  .
 :=  ..



 x(tM −1 ; tM −2 , sM −2 ) − sM −1
 FM −2 (sM −2 , sM −1 ) 
ψ(s1 , x(tM ; tM −1 , sM −1 ))
FM −1 (s1 , sM −1)
(5.63)




 = 0.


(5.64)
65
5.4 Direkte Verfahren
Ebenso wie beim Single–Shooting können auch für dieses Nullstellenproblem Newton- oder
Newtonähnliche Verfahren bzw. ableitungsfreie Verfahren eingesetzt werden.
5.3.2
Dynamische Programmierung nach Bellman
Die Grundlage der dynamischen Programmierung ist das Bellmansche Optimalitätsprinzip:
Satz 5.23 (Bellmansches Optimalitätsprinzip:).
Die Gesamtstrategie kann nur optimal sein, wenn jede Reststrategie optimal ist, egal von
welchem Zwischenzustand sie ausgeht.
Abbildung 5.8: Das
Optimalsteuerungproblem lässt sich
zerlegt
darstellen
als eine Folge von
Entscheidungen.
Das Bellman–Prinzip besagt dabei, dass eine Steuerfolge u[k,N −1] für den Zustand xk nur
dann optimal sein kann, wenn für den Folgezustand xk+1 bereits galt, dass die Folge u[k+1,N −1]
hierfür optimal ist.
Basierend auf diesem Satz wird mittels der Bellmanschen Rekursionsformel ausgehend von k
das jeweils minimale Zielfunktional Jk (xk , uk ) für jeden Zwischenschritt bestimmt. Nach dem
Bellmanschen Optimalitätsprinzip ist daher das aus diesen zusammengesetzte Zielfunktional
∗
Jk∗ (xk ) = min Jk (xk , uk ) + Jk+1
{f (xk , uk )} ,
uk
k = N − 1, . . . , 0
(5.65)
minimal.
Im Gegensatz zum Pontryaginschen Minimumprinzip kann die dynamische Programmierung
auch ohne Weiteres angewandt werden, wenn Zustandsbeschränkungen vorliegen. Das Pontryaginsche Minimumprinzip wird, wie bereits zuvor bemerkt, in diesem Fall sehr kompliziert.
Außerdem wird direkt das optimale Steuerungsgesetz bestimmt, was beim PMP nicht der
Fall ist.
Jedoch wird bei der Implementierung der Dynamischen Programmierung sehr viel Speicherplatz und Rechenzeit benötigt, weshalb diese Berechnungsvariante momentan noch sehr
wenig Anwendung findet.
5.4
Direkte Verfahren
Bei direkten Verfahren diskretisiert man den optimalen Steuerprozess und reduziert diesen
dadurch auf ein Optimierungsproblem, welches im Anschluss durch numerische Verfahren,
66 Kapitel 5: Lösungsansätze nichtlinearer modellprädiktiver Regelungprobleme
etwa SQP-Verfahren, gelöst werden kann. Bei der Diskretisierung kann man zwischen verschiedenen Implementierungen wählen. Hier soll im Kurzen auf die sogenannte volle Diskretisierung und den rekursiven Ansatz eingegangen werden.
Zentraler Vorteil der direkten Verfahren ist die Tatsache, dass das optimale Steuerungsproblem nicht zuerst analytisch umzuformen ist, sondern dass man dieses direkt diskretisiert.
Somit sind keine Vorkenntnisse der optimalen Steuerungstheorie, insbesondere der Struktur
der Lösung und Schätzungen kritischer Punkte erforderlich. Ebenso kann auf die Berechnung
der adjungierte Differentialgleichung verzichtet werden, die aber ex post nachgeholt werden
kann.
Da für das zu betrachtende Problem der modellprädiktiven Regelung eine einheitliche sampleddata Rate einzuhalten ist, soll hier die Diskretisierung äquidistant auf einem Gitter der Stufe
n erfolgen, das wie folgt definiert ist:
Definition 5.24 (Gitter der Stufe n̂).
Gegeben sei ein Intervall D = [t0 , tf ] ⊂ R mit −∞ < t0 < tf < ∞, n0 ∈ N fest, ln̂ := n0 · 2n̂
t −t
und hn̂ := lfn̂ −10 , n̂ ∈ N. Dann wird die Menge
Dn̂ := {yj ∈ R|yj = t0 + j · hn̂ , j = 1, . . . ln̂ }
(5.66)
als Gitter der Stufe n̂ auf D bezeichnet.
Abbildung 5.9: Graphische Veranschaulichung von Gittern unterschiedlicher Stufe
Bemerkung 5.25. Für die Anwendung auf die vorliegende Problemstellung setzt man dabei
n0 = M, da auf Grund der möglichen Unstetigkeit der Steuerung ûj[0,M −1] ∈ U an den Stellen
tk = k·T , k ∈ {1, . . . , M}, k ∈ N, zur Vermeidung von Fehler bei der numerischen Integration
die äquidistante Diskretisierung der sampled-data Rate T angepasst werden sollte.
Bemerkung 5.26. Die Lösung liegt nach einer Diskretisierung nur noch an den isolierten
Gitterpunkten vor und Werte zwischen diesen diskreten Punkten können lediglich approximativ bestimmt werden. Zudem führt die Diskretisierung zu Problemen bezüglich der Stabilität,
der Konvergenz und insbesondere der Genauigkeit.
67
5.4 Direkte Verfahren
5.4.1
Lösung mittels voller Diskretisierung
Da es sich aus numerischer Sicht empfiehlt, ein optimales Steuerungsproblem mit Zielfunktional in Mayer-Form zu berechnen, soll bei der Erläuterung der verschiedenen Diskretisierungsarten auf diese spezielle Form zurückgegriffen werden. Da die Probleme äquivalent
ineinander überführbar sind, vergleiche hierzu die Arbeit von C. Büskens [12], stellt dies
zudem keine Einschränkung dar. Es wird nun die allgemeine Vorgehensweise der Diskretisierungsansätze erläutert.
Die Diskretisierung muss dabei nicht äquidistant sein, zur Vereinfachung der Darstellung
wird hier allerdings ein äquidistantes Gitter verwendet. Es sei Nt ∈ N, Nt > 0 die Zahl der
Diskretisierungsstellen und
τi ∈ R , i = 1, . . . , Nt mit τi = t0 + h · (i − 1), i = 1, . . . , Nt , h =
tf − t0
Nt − 1
(5.67)
seien äquidistante Gitterpunkte. Die approximierten Werte x(τi ) ∈ Rn und u(τi ) ∈ Rm
werden mit xi und ui bezeichnet. Somit kann der beschränkte optimale Steuerprozess OCP
mittels des Euler-Verfahrens durch
Minimiere
unter
J0 (x, u)
i
i+1
x
1
= F (xNt )
Nt
(5.68)
i
i
= x + h · f (x , u ),
ψ(x , x ) = 0
S(xi , ui )
≤ 0,
i = 1, . . . , Nt − 1
i = 1, . . . , Nt
(5.69)
(5.70)
(5.71)
approximativ ersetzt werden.
Dies kann auch als nichtlineares Optimierungsproblem formuliert werden, wobei
z := (x1 , . . . , xNt , u1 , . . . , uNt ) ∈ RNz ,
Nz ∈ N, Nz = (n + m) · Nt
(5.72)
die neue Optimierungsvariable darstellt. Bezeichnet man die Anzahl an Gleichungsnebenbedingungen mit NE ∈ N und die der Ungleichungsnebenbedingungen mit NI ∈ N, dann hat
das nichtlineare Optimierungsproblem folgende Form:
Minimiere
unter
F (z) = F (xNt )


[−xi+1 + xi + h · f (xi , ui)]i=1,...,Nt−1


ψ(x1 , xNt )



1
1

S(x , u )
G(z) = 
 ∈ RNE +NI


..


.
Nt
Nt
S(x , u )
(5.73)
(5.74)
mit NE = n · (Nt − 1) + r, NE + NI = (n + k) · Nt − n + r.
5.4.2
Lösung mittels eines rekursiven Ansatzes
Es gelte wieder (5.67). Die approximierten Werte x(τi ) ∈ Rn und u(τi ) ∈ Rm werden weiter
mit xi und ui bezeichnet. Jedoch wird hierbei der Optimierungsvektor
z := (x1 , u1 , . . . , uNt ) ∈ RNz ,
Nz = n + m · Nt
(5.75)
68 Kapitel 5: Lösungsansätze nichtlinearer modellprädiktiver Regelungprobleme
verwendet, wobei mit x1 lediglich der Anfangswert in z dazu aufgenommen wird, um rekursiv
mit der Euler-Approximation die Zustandstrajektorie
x1 (z) = x1 ,
xi+1 (z) = xi (z) + h · f (xi (z), ui ),
i = 1, . . . , Nt − 1
(5.76)
berechnen zu können. Die Anzahl an Gleichungsnebenbedingungen wird mit NE ∈ N und
die der Ungleichungsnebenbedingungen mit NI ∈ N bezeichnet. Das neue nichtlineare Optimierungsproblem, das man damit aus dem beschränkten optimalen Steuerprozess OCP
erhält, hat folgende Form:
Minimiere
unter
F (z) = F (xNt (z))


ψ(x1 (z), xNt (z))
 S(x1 (z), u1 ) 


G(z) = 
 ∈ RNE +NI
..


.
(5.77)
(5.78)
S(xNt (z), uNt )
mit NE = r, NE + NI = k · Nt + r.
Bemerkung 5.27. Sowohl die Anzahl der Optimierungsvariablen als auch die Anzahl der
Nebenbedingungen verringern sich bei diesem Verfahren drastisch. Die Zustandsvariablen
jedoch sind jetzt Funktionen der diskreten Steuervariablen.
Da es sich beim Ergebnis der vollständigen Diskretisierung wie des rekursiven Ansatzes um
ein Optimierungsproblem handelt, können entsprechend bekannte Routinen zum Einsatz
kommen. Als besonders geeignet haben sich dabei die sogenannten SQP-Verfahren erwiesen.
Bemerkung 5.28. Um ein Gitter der Stufe 0 zu implementieren und dieses zudem auf
die Unstetigkeitsstellen der Steuerung im vorliegenden Problem abzustimmen ist dabei Nt =
M + 1 zu wählen.
Daraus ergibt sich das Problem, dass h = T gilt, wobei es das Ziel des modellprädiktiven
Regelungsansatzes ist, dass T möglichst groß ist. Bei beiden Ansätzen ist es allerdings wichtig,
dass die Differentialgleichung möglichst exakt gelöst wird, h also klein sein muss. Um die
Optimierungsvariable und die Anzahl der Nebenbedingungen nicht zu vergrößern, wie dies für
ein Gitter der Stufe n > 0 geschehen würde, kann hierzu eine Schrittweitensteuerung auf den
Intervallen [τi , τi+1 ) der Länge T für τi aus (5.67) verwendet werden. Für die entsprechende
Theorie sei dazu auf Kapitel 5 des Buchs von P.Deuflhard und F.Bornemann [20] verwiesen.
5.4.3
Konvergenz der Euler-Diskretisierung
Nach der Darstellung der Diskretisierung sollen an dieser Stelle notwendige und hinreichende
Bedingungen für die Optimalität eines optimalen Steuerungsproblemes gezeigt werden, da
die daraus resultierenden Ergebnisse wesentliche Voraussetzungen für den Konvergenzbeweis
diskretisierter optimaler Steuerprozesse darstellen.
69
5.4 Direkte Verfahren
Bemerkung 5.29. Die Konvergenz ergibt sich dabei für Schrittweiten h → 0, die Problemstellung erfordert es aber h = T zu setzen, welches möglichst groß gewählt werden soll.
Die Konvergenz der Euler-Diskretisierung rechtfertigt jedoch den verwendeten Ansatzpunkt
direkter Verfahren.
Hierfür soll das Problem OCP
Minimiere
unter
J0 (x, u)
=
Z
tf
l(x(t), u(t))dt + F (x(tf ))
(5.79)
0
ẋ(t)
= f (x(t), u(t)),
x(0)
= x,
S(x(t), u(t)) ≤ 0,
für fast alle t ∈ [0, tf ]
(5.80)
φ(x(tf )) = 0
(5.81)
für fast alle t ∈ [0, tf ]
(5.82)
betrachtet werden mit Funktionen φ : Rn → Rr , c : Rn × Rm → Rs , F : Rn → R, l :
Rn × Rm → R und f : Rn × Rm → Rn .
Die optimale Lösung werde mit (x∗ , u∗ ) ∈ W 1,∞ (0, tf ; Rn ) × L∞ (0, tf ; Rm ) bezeichnet, wobei
W 1,∞ (t0 , tf ; Rn ) = {x ∈ L∞ (t0 , tf ; Rn )|ẋ ∈ L∞ (t0 , tf ; Rn )}
(5.83)
der Sobolev-Raum mit geeignetem Banach-Raum
L∞ (t0 , tf ; Rn ) = {x : [t0 , tf ] → Rn |x ist Lebesque messbar, kxkL∞ ([t0 ,tf ]) < ∞}, (5.84)
kxkL∞ ([t0 ,tf ]) = ess sup[t0 ,tf ] kxk
(5.85)
ist. Für dieses Problem lassen sich die notwendigen Bedingungen mittels der erweiterten
Hamilton-Funktion formulieren:
Definition 5.30 (Erweiterte Hamiltonfunktion).
Seien λ0 ∈ R, λ ∈ Rn und µ ∈ Rs . Dann heißt
H̃(x, λ, µ, u, t) := λ0 · l(x, u, t) + λT · f (x, u, t) + µT · S(x, u)
(5.86)
die erweiterte Hamilton-Funktion zum optimalen Steuerprozess OCP.
Zusammengefasst präsentieren sich die notwendigen Bedingungen beschränkter optimaler
Steuerprozesse in ähnlicher Form wie im Pontryaginschen Minimumprinzip. Dazu definiert
man den Funktionenraum C k (U) wie folgt:
C k (U) = {u : U → R|u ist k-mal stetig differenzierbar}
(5.87)
Als Randstück der k-ten Komponente Sk (x, u) wird ein Teilintervall [t1 , t2 ] ⊂ [t0 , tf ] bezeichnet, für das Sk (x(t), u(t)) = 0 für alle t ∈ [t1 , t2 ] gilt. Verbindungspunkte heißen dabei die Punkte t1 , t2 ∈ R, wenn ein δ ∈ R, δ > 0 mit Sk (x(t1 − ε), u(t1 − ε)) < 0 und
Sk (x(t2 + ε), u(t2 + ε)) < 0 für alle ε ∈]0, δ[ existiert. Fallen dabei die Verbindungspunkte des
Randstücks der k-ten Komponente Sk (x, u) zusammen, dann nennt man t1 Kontaktpunkt
der k-ten Komponente.
70 Kapitel 5: Lösungsansätze nichtlinearer modellprädiktiver Regelungprobleme
Theorem 5.31 (Erweitertes Minimumprinzip).
x∗ (t) und u∗ (t) seien die optimale Lösung eines autonomen optimalen Steuerprozesses OCP
mit einer Beschränkung der Ordnung p. Weiterhin seien f und J0 C 2p -Funktionen und die
beiden folgenden Bedingungen seien erfüllt:
ˆ Die Gleichung S (p) (x, u) = 0 ist eindeutig auflösbar nach u = u(x) mit einer C p+1 Funktion u(x).
ˆ Auf jedem Randstück [t1 , t2 ] gilt für die Randsteuerung u(t):
∇u (S (p) )(x(t), u(t)) 6= 0 , t ∈ [t1 , t2 ]
(5.88)
Außerdem gelte: u∗ (t) ∈ int(U) für t ∈]t1 , t2 [. Dann existieren
ˆ λ0 ≥ 0 , λ0 ∈ R
ˆ λ : [0, tf ] → Rn eine stückweise stetige und stückweise stetig differenzierbare (adjungierte) Funktion
ˆ σ ∈ Rr
ˆ µ : [0, tf ] → R stückweise stetige Multiplikatorfunktion
ˆ ν(ti ) ≥ 0 , ν(ti ) ∈ R in jedem Verbindungs- oder Kontaktpunkt ti
so dass die folgenden Aussagen gelten:
ˆ An allen Stetigkeitsstellen t von u∗ in [0, tf ] sind die beiden Bedingungen erfüllt:
– Minimumbedingung
H̃(x∗ , λ, µ, u∗) = min H̃(x∗ , λ, µ, u) = konstant
u∈U
(5.89)
– Adjungierte Differentialgleichungen und Transversalitätsbedingungen
λ̇T = −∇x H(x∗ , λ, µ, u∗)
λ(tf )T = λ0 ∇x Φ(x∗ (tf )) + σ T ∇x ψ(x∗ (tf )) für S(x∗ (tf ), u∗(tf )) < 0
ˆ Für alle t ∈ [0, tf ] gilt
µ(t) ≥ 0 ,
µ(t)S(x∗ , u∗) = 0
(5.90)
(5.91)
(5.92)
ˆ Im Falle reiner Zustandsbeschränkungen gelten in jedem Verbindungs- oder Kontaktpunkt ti die Sprungbedingungen
T
− T
T
∗
λ(t+
i ) = λ(ti ) − ν (ti )∇x S(x (ti )).
(5.93)
Bei gemischten Beschränkungen sind die adjungierten Variablen stetig in [0, tf ], d.h.
es ist ν(ti ) = 0.
71
5.4 Direkte Verfahren
ˆ Bei freier Endzeit gilt
H̃(x∗ (tf ), λ(tf ), µ(tf ), u∗(tf )) = 0.
(5.94)
Ein Beweis dieses Satzes findet sich für eine gemischte Beschränkung in dem Buch von
L.W.Neustadt [53] und im Fall von Zustandsbeschränkungen in der Arbeit von H.Maurer
[47]. Dabei bezeichne int(U) das Innere von U.
Die hinreichenden Optimalitätsbedingungen des beschränkten optimalen Steuerungsproblems
lassen sich dabei wie folgt zusammenfassen. Für einen Beweis sei in der Literatur auf die
Arbeit von H.Maurer und S.Pickenhain [48] verwiesen. Zur leichteren Lesbarkeit werden die
Voraussetzungen des Satzes danach in kompakter Form dargestellt.
Satz 5.32 (Hinreichende Optimalitätsbedingungen).
Funktionen λ : [0, tf ] → Rn , µ : [0, tf ] → R und ein Multiplikator ρ ∈ Rr sollen derart
existieren, so dass die notwendigen Optimalitätsbedingungen des Satzes 5.31 erfüllt sind mit
λ0 = 1 und zudem die Voraussetzungen (V.1) - (V.6) für den Steuerprozess OCP für ein
Paar (x∗ (t), u∗ (t)) gelten. Dann ist (x∗ (t), u∗(t)) eine optimale Lösung und es existieren
Konstanten ε > 0 und c > 0, ε, c ∈ R, so dass für alle zulässigen Funktionen (x, u) ∈
Bε (x∗ , u∗) mit
Bε (x∗ , u∗) := (x, u) ∈ L∞ ([0, tf ], Rn+m )| k(x, u) − (x∗ , u∗ )k∞ ≤ ε
(5.95)
die Ungleichung
J0 (x, u) ≥ J0 (x∗ , u∗ ) + c k(x, u) − (x∗ , u∗ )k2 + k(x(0), x(tf )) − (x∗ (0), x∗ (tf ))k2
(5.96)
gilt.
Die Voraussetzung (V.1) - (V.6) sind dabei:
(V.1) Die Funktionen L0 (., .), Φ0 (.), f (., .), ψ(.) und S(., .) seien zweimal Fréchet–differenzierbar bezüglich aller Argumente. Die Fréchet–Differenzierbarkeit einer Funktion F
impliziert die Existenz eines linearen Operators Λ : X → Y , so dass
F (x + h) = F (x) + Λh + r(h)
(5.97)
mit kr(h)kY · khk−1
X → 0 gilt für khkX → 0. k.kZ bezeichnet dabei die Norm auf dem
Raum Z.
(V.2) Es gibt eine lokal zulässige Lösung
(x∗ , u∗) ∈ C 1 (0, tf ; Rn ) × C(0, tf ; Rm ).
(5.98)
Für I := {1, . . . , s}, s ∈ N, und π ∈ R mit π ≥ 0 sei folgende Nähebedingung zu einer
Beschränkung eingeführt:
Iπ (t) = {i ∈ I|Si (x∗ (t), u∗ (t)) ≥ −π},
ιπ (t) = ♯Iπ (t),
Sxπ (t)
Suπ (t)
∗
∗
∗
∗
:= ∇x Si (x (t), u (t)),
:= ∇u Si (x (t), u (t)),
i ∈ Iπ (t),
i ∈ Iπ (t).
(5.99)
(5.100)
(5.101)
(5.102)
72 Kapitel 5: Lösungsansätze nichtlinearer modellprädiktiver Regelungprobleme
(V.3) Es existieren Konstanten π, β ∈ R, π > 0 und β > 0, so dass
π T
[Su (t)] ≥ βkzk
(5.103)
für alle z ∈ Rιπ (t) und fast alle t ∈ [0, tf ] gilt.
(V.4) Für v(t) ∈ Rm und jedes e ∈ Rr habe das Randwertsystem
ẏ(t) = Ã(t)y(t) − B̃(t)v(t),
(5.104)
y(0) = 0 , ∇x ψ(x∗ (tf ))y(tf ) = e
(5.105)
mit
f ∗ (t) = f (x∗ (t), u∗ (t)),
∗
(5.106)
∗
π
T
π
π
T −1
π
Ã(t) = ∇x f (t) − ∇u f (t)∇u S (t) ∇u S (t)∇u S (t)
∇x S (t), (5.107)
h
i
−1
B̃(t) = ∇u f ∗ (t) Id − ∇u S π (t)T ∇u S π (t)∇u S π (t)T
∇u S π (t)
(5.108)
eine Lösung v(.).
Für die Bedingungen (V.5) und (V.6) werden folgende Abkürzungen eingeführt:
Für α ≥ 0, α ∈ R, sei I+α (tf ) := {i ∈ I0 (t)|(µ∗ )i (t) > α}, womit für i ∈ I+α (t)
∇x Ŝ α (t) := ∇x Si (x∗ (t), u∗ (t)),
∗
α
∗
∇u Ŝ (t) := ∇u Si (x (t), u (t))
(5.109)
(5.110)
definiert wird.
(V.5) Es gebe ein γ ∈ R mit γ > 0, so dass für
H̃ ∗ (t) := H̃(x∗ (t), λ(t), µ(t), u∗(t))
(5.111)
die Legendre-Clebsch-Bedingung
v T ∇2u H̃ ∗ (t)v ≥ γkvk2,
(5.112)
für alle v ∈ Rm mit ∇u Ŝ α (t)v = 0 gilt.
(V.6) Für v(t) ∈ Rm und y(t) ∈ Rn , die die Bedingungen
ẏ(t) = ∇x f ∗ (t)y(t) + ∇u f ∗ (t)v(t), y(0) = 0
0 = ∇x Ŝ α (t)y(t) + ∇u Ŝ α (t)v(t)
erfüllen, gilt
T 2 ∗
Z tf ∇xx H̃ (t) ∇2xu H̃ ∗ (t)
y(t)
y(t)
dt + y(tf )T Γy(tf ) > 0
2
∗
2
∗
v(t)
v(t)
∇
H̃
(t)
∇
H̃
(t)
0
ux
uu
(5.113)
(5.114)
(5.115)
und zudem
∇x ψ(x∗ (tf ))y(tf ) = 0
T
wobei Γ := ∇2x F (x∗ (tf )) + ρ∗ ψ(x∗ (t)) ist.
(5.116)
73
5.4 Direkte Verfahren
Nun sei die Euler-Diskretisierung des optimalen Steuerungsproblems OCP angegeben. Dafür
t
beschreibe h = Ntf−1 , Nt ∈ N, für t1 = 0 den Gitterabstand, der als Parameter der Approximation behandelt werden soll. Somit erhält man das Gitter
ti+1 = ih ,
i = 0, . . . , Nt − 1.
(5.117)
m
Der Raum L∞
h (0, tf ; R ) sei für festes h auf [0, tf ] definiert als der Raum der stückweise
konstanten Funktionen v,
v(t) = v(ti ) für t ∈ [ti , ti+1 ),
i = 1, . . . , Nt − 1.
(5.118)
Die zugehörige Norm ist
kvk∞ = max{|v(ti)| : i = 1, . . . , Nt − 1}.
(5.119)
Mit Wh1,∞ (0, tf ; Rn ) wird zudem der Raum der stückweise linearen Funktionen
y(ti+1) − y(ti)
für t ∈ [ti , ti+1 ], i = 1, . . . , Nt − 1
h
eingeführt und mit der Norm
y(ti+1 ) − y(ti ) kyk1,∞ = max ky(t0)k, : i = 1, . . . , Nt − 1
h
y(t) = y(ti) + (t − ti )
(5.120)
(5.121)
versehen. Die Euler-Diskretisierung lässt sich dann wie folgt darstellen und wird mit OCPh
bezeichnet:
N
t −1
X
Minimiere J0 (xh , uh ) = F (xh (tf )) + h
l(xh (ti ), uh (ti )) (5.122)
i=0
unter − xh (ti+1 ) + xh (ti ) + hf (xh (ti ), uh (ti )) = 0,
x − xh (t1 ) = 0
i = 1, . . . , Nt − 1
φ(xh (tNt )) = 0
S(xh (t), uh (t)) ≤ 0,
(5.123)
(5.124)
(5.125)
i = 1, . . . , Nt
(5.126)
Da OCPh ein Optimierungsproblem darstellt sei zunächst auf die Lösungstheorie dieser
Probleme verwiesen, die im anschließenden Abschnitt genauer behandelt wird. Danach lässt
n
n
sich die Lagrange-Funktion mit Hilfe der Multiplikatoren λh ∈ L∞
h (0, tf ; R ), ϑh ∈ R ,
s
σh ∈ Rr und µh ∈ L∞
h (0, tf ; R ) angeben als Funktion
m
∞
n
n
r
∞
s
L : Wh1,∞ (0, tf ; Rn ) × L∞
h (0, tf ; R ) × Lh (0, tf ; R ) × R × R × Lh (0, tf ; R ) → R, (5.127)
L(xh , uh , λh , ϑh , σh , µh ) = F (xh (tNt )) + h
N
t −1
X
l(xh (ti ), uh (ti ))
i=0
+
N
t −1
X
λh (ti+1 )T (−xh (ti+1 ) + xh (ti ) + hf (xh (ti ), uh (ti )))
i=1
+ϑTh (x −
Nt
X
xh (t1 )) + σhT ψ(xh (tNt ))
µh (ti )T S(xh (ti ), uh (ti )).
+h
i=1
(5.128)
74 Kapitel 5: Lösungsansätze nichtlinearer modellprädiktiver Regelungprobleme
Die Auswertung der KKT-Bedingungen, auf die bei der numerischen Lösung optimaler Steuerprozesse explizit eingegangen wird, ergibt folgende Resultate:
λh (ti+1 ) − λh (ti )
+ ∇x H̃(xh (ti ), uh (ti ), λh (ti+1 ), µh (ti )) = 0, i = 1, . . . Nt − 1(5.129)
h
λh (t1 ) − ϑh = 0
(5.130)
−λh (tNt ) + ∇x (F (xh (tNt )) + σhT ψ(xh (tNt ))) = 0
(5.131)
∇u H̃(xh (ti ), uh (ti ), λh (ti+1 ), µh (ti )) = 0, i = 1, . . . Nt − 1(5.132)
Damit kann das Hauptergebnis dieses Abschnittes formuliert werden:
Satz 5.33 (Konvergenz der Euler-Diskretisierung).
Es seien die Voraussetzungen (V.1) - (V.6) erfüllt. Dann existiert ein η ∈ R, η > 0, so dass
es für jede Schrittweite h < η einen lokal eindeutigen KKT-Punkt (xh , uh , λh , ϑh , σh , µh )
des diskretisierten optimalen Steuerungsproblems OCPh gibt und die Aussagen
kxh − x∗ k1,∞ ≤ l′ |h|
(5.133)
kλh − λ∗ k1,∞ ≤ l′ |h|
(5.135)
∗
′
(5.136)
∗
′
(5.137)
′
(5.138)
∗
′
kuh − u k∞ ≤ l |h|
kϑh − ϑ k ≤ l |h|
kσh − σ k ≤ l |h|
∗
kµh − µ k∞ ≤ l |h|
(5.134)
für eine von h unabhängige Konstante l′ > 0 gelten.
Für den Beweis sei auf die Arbeit von K.Malanowski, Ch.Büskens und H. Maurer [45] verwiesen.
Bemerkung 5.34. Auffallend ist dabei, dass das Ergebnis unabhängig ist von Nichtdifferenzierbarkeitsstellen.
Bemerkung 5.35. Um eine Verbesserung bei der Zustandsapproximation zu erreichen, lassen sich andere Verfahren wie etwa Runge-Kutta-Verfahren anwenden. Die Tatsache, dass
diese jedoch interpolierte Werte der Steuerung an ihren Stützstellen benötigen, stellt für den
vorliegenden Fall keine Einschränkung dar, da innerhalb eines zu betrachtenden Intervalls
auf Grund der Wahl der Diskretisierung nur konstante Funktionen vorliegen.
Bemerkung 5.36. Die Handhabung steifer Differentialgleichungen erfordert die Verwendung impliziter Löser oder Verfahren hoher Ordnung bei kleinen Schrittweiten. Um diese
Genauigkeitsproblematik zu umgehen, kann auch die bereits erwähnte Implementierung einer Schrittweitensteuerung verwendet werden.
75
5.4 Direkte Verfahren
5.4.4
Numerische Lösung
Das bekannteste Hilfsmittel zur analytischen Lösung differenzierbarer nichtlinearer Optimierungsprobleme sind die sogenannten Karush-Kuhn-Tucker Bedingungen. Diese Probleme
haben dabei die Form NLP
Minimiere
unter
F (z)
(5.139)
Gi (z) = 0 , i = 1, ..., NE
(5.140)
Gi (z) ≤ 0 , i = NE + 1, ..., NE + NI
(5.141)
mit z ∈ RNz , NE , NI ∈ N, F : RNz → R und G : RNz → RNG , NG = NE + NI . Hierbei wird
die Funktion F als Zielfunktion und die Vektorfunktion G als Nebenbedingung bezeichnet.
Für dieses Problem definiert man die zulässige Menge wie folgt:
Definition 5.37 (Zulässige Menge).
Die Menge
Nz Gi (z) = 0, i = 1, . . . , NE
S := z ∈ R Gi (z) ≤ 0, i = NE + 1, . . . , NG
(5.142)
wird Menge der zulässigen Punkte oder zulässige Menge genannt. z ∈ S heißt dabei zulässiger
Punkt.
Bemerkung 5.38. Allerdings stellt schon allein die Größe des durch die Diskretisierung
entstandenen Optimierungsproblems ein derartiges Hindernis dar, dass nur mehr eine numerische Lösung in Frage kommt.
Jedoch beruhen auch die meisten numerischen Lösungsverfahren für nichtlineare Optimierungsprobleme wieder auf der Auswertung der Karush-Kuhn-Tucker Bedingungen, die sich
wie folgt darstellen:
Satz 5.39 (Karush-Kuhn-Tucker Bedingungen).
Sei F differenzierbar und G stetig differenzierbar bezüglich z in einer Umgebung N der
Minimalstelle z ∗ ∈ RNz des nichtlinearen Optimierungsproblems NLP, dessen LagrangeFunktion L : RNz × RNG → R definiert ist durch
L(z, η) := F (z) + η T G(z)
(5.143)
mit η ∈ RNG . η wird dabei auch Lagrange-Multiplikator genannt. Weiter sei
I(z ∗ ) = {i ∈ {NE + 1, ..., NE + NI } | Gi(z ∗ ) = 0},
∗
∗
J(z ) = I(z ) ∪ {1, ..., NE }.
(5.144)
(5.145)
(1) Ist z ∗ regulär, d.h.
ˆ ∇z G1 (z ∗ ), . . . , ∇z GNE (z ∗ ) sind linear unabhängig,
ˆ ∃ v ∈ RNz \{0} mit
∇z Gi (z ∗ )v < 0,
∗
∇z Gi (z )v = 0,
i ∈ I(z ∗ ),
i = 1, . . . , NE ,
(5.146)
(5.147)
76 Kapitel 5: Lösungsansätze nichtlinearer modellprädiktiver Regelungprobleme
so gibt es η ∈ RNG mit
∇z L(z ∗ , η) = η0 ∇z F (z ∗ ) + η T ∇z G(z ∗ ) = 0,
ηi ≥ 0,
ηi = 0,
i ∈ I(z ∗ ),
∗
i∈
/ J(z ).
(5.148)
(5.149)
(5.150)
(2) Ist z ∗ normal (oder streng regulär), d.h. ∇z Gi (z ∗ ) sind linear unabhängig ∀ i ∈ J(z ∗ ),
so gilt (1) und der Lagrange-Multiplikator η ist eindeutig bestimmt.
Der Beweis dieses Satzes kann in den Büchern von R.Fletcher [24], Kapitel 9.2, oder P.E.Gill,
W.Murray und M.H.Wright [28], Kapitel 3.4, nachgelesen werden.
Als kritischen oder auch KKT-Punkt bezeichnet man einen zulässigen Punkt z ∗ ∈ RNz , der
zusammen mit einem Multiplikator η ∈ RNG die KKT-Bedingungen erfüllt. Für Optimierungsprobleme lassen sich zudem hinreichende Bedingungen angeben, deren Beweis in Kapitel 9.3 des Buchs von R.Fletcher [24] oder in Kapitel 3.4 des Buchs von P.E.Gill, W.Murray
und M.H.Wright [28] enthalten ist.
Satz 5.40 (Hinreichende Optimalitätsbedingungen).
Es sei z ∗ ∈ RNz ein zulässiger Punkt von NLP und weiter sei z ∗ normal. F sei zweimal differenzierbar bezüglich z und G sei zweimal stetig differenzierbar bezüglich z in einer Umgebung
N(z ∗ ) ⊂ RNz . Der Kegel C sei definiert durch


∇z Gi (z ∗ )v ≤ 0, i ∈ I(z ∗ ), falls ηi = 0, 

C := v ∈ RNz ∇z Gi (z ∗ )v = 0, i ∈ I(z ∗ ), falls ηi > 0,
(5.151)


∇z Gi (z ∗ )v = 0, i = 1, . . . , NE
(1) Notwendige Bedingung zweiter Ordnung
Ist z ∗ eine lokale Minimalstelle von NLP, so gibt es eindeutig bestimmte Zahlen ηi :
ηi ∈ R, i ∈ {1, . . . , NG } mit
∇z L(z ∗ , η) = 0
ηi ≥ 0,
ηi = 0,
(5.153)
∗
(5.154)
i ∈ I(z )
i∈
/ J(z )
v T ∇2z L(z ∗ , η)v ≥ 0,
(5.152)
∗
∀v ∈ C\{0}
(5.155)
(2) Hinreichende Bedingungen zweiter Ordnung
Es gebe Zahlen ηi ∈ R, i ∈ {1, . . . , NG } mit
∇z L(z ∗ , η) = 0
ηi ≥ 0,
ηi = 0,
i ∈ I(z ∗ )
∗
i∈
/ J(z )
v T ∇2z L(z ∗ , η)v > 0 , ∀v ∈ C\{0}
(5.156)
(5.157)
(5.158)
(5.159)
Dann gibt es ǫ > 0 und eine Konstante c > 0, c, ǫ ∈ R mit
F (z) ≥ F (z ∗ ) + ckz − z ∗ k2 für z ∈ C, kz − z ∗ k ≤ ǫ.
(5.160)
77
5.4 Direkte Verfahren
(3) Strenge hinreichende Bedingung zweiter Ordnung
Es gebe Zahlen ηi ∈ R, i ∈ {1, . . . , NG }, so dass die hinreichenden Bedingungen zweiter
Ordnung mit ηi > 0 ∀i ∈ I(z ∗ ) erfüllt sind. Dann gilt die Aussage ebenso und der Kegel
C vereinfacht sich zu
C = Kern(∇z Gi (z̄) : i ∈ J(z ∗ )).
(5.161)
Bemerkung 5.41. Die notwendigen Optimalitätsbedingungen unterscheiden sich lediglich
durch die bei den hinreichenden Bedingungen geforderte positive Definitheit in (5.159) von
diesen.
Bemerkung 5.42. Die hinreichenden Bedingungen zweiter Ordnung erlauben Einblicke in
die Sensitivität der optimalen Lösung bei Störungen.
Da in der Praxis besonders bei hochdimensionalen nichtlinearen Optimierungsproblemen die
sogenannten SQP-Verfahren sich als stabil und effektiv erwiesen haben und zur numerischen
Lösung des modellprädiktiven Problems die Routine ’E04UCF’ der Nag benutzt wird, die
im Wesentlichen auf den Arbeiten von P.E.Gill, W.Murray und M.H.Wright [28] basiert, soll
hier im Kurzen auf die Funktionsweise dieses Verfahrens eingegangen werden.
Annahme 5.43. Es wird dabei vorausgesetzt, dass die Funktionen F und G hinreichend
oft differenzierbar in einer ausreichend großen Umgebung N(z ∗ ) der lokalen Minimalstelle
z ∗ ∈ RNz sind.
Eine weitere Vereinfachung wird durch die notwendigen (und hinreichenden) Bedingungen
möglich gemacht, denn auf Grund der Aussage ηi = 0, i ∈
/ J(z) müssen nichtaktive Nebenbedingungen bei der Auswertung nicht beachtet werden. Daher kann man sich ausschließlich
auf Probleme mit Gleichungsnebenbedingungen beschränken, wobei der Vektor der aktiven
Nebenbedingungen
Ga := (Gi )i∈J(z) , ηa ∈ RNa , Na := ♯J(z)
(5.162)
für zulässige Punkte z ∈ S dem Rechnung trägt.
Die prinzipielle Idee aber liegt in der Generierung und Lösung quadratischer Unterprobleme,
sogenannten QP-Problemen, die lokal eine Näherung des Ausgangsproblems NLP darstellen.
Definition 5.44 (Quadratisches Unterproblem).
Mit B [k] sei eine geeignete Approximation der Hesse-Matrix der Zielfunktion gegeben. Weiter
sei z [k] ∈ RNz eine Näherung der Optimallösung z ∗ ∈ RNz . Dann nennt man
Minimiere
p[k] ∈ RNz
unter
1
∇z F (z [k] )p[k] + p[k] T B [k] p[k]
2
(5.163)
Ga (z [k] ) + ∇z Ga (z [k] )p[k] = 0
(5.164)
quadratisches Unterproblem des nichtlinearen Optimierungsproblems NLP und p[k] ∈ RNz
Suchrichtung der SQP-Iteration.
78 Kapitel 5: Lösungsansätze nichtlinearer modellprädiktiver Regelungprobleme
Bemerkung 5.45. Die Bedingung, dass z [k] ∈ RNz eine Näherung der Optimallösung
z ∗ ∈ RNz sein soll, ist in der Praxis dabei sehr problematisch. Dies rührt daher, dass die Optimierungsvariable zumindest aus dem Anfangszustand und der Steuerung besteht und eine
Startlösung der Steuerung für das vorliegende Problem nur sehr schwer zu erhalten ist.
SQP-Verfahren lassen sich in Haupt- und Nebeniterationen aufteilen, die sequentiell abgearbeitet werden. Dabei wird in der Hauptiteration mittels Newton- oder Quasi-NewtonVerfahren eine Folge (z [k] ) berechnet durch
z [k+1] = z [k] + α[k]p[k] .
(5.165)
Darin beschreibt z [k] den aktuellen Zustand der Näherung, α[k] die Schrittlänge und p[k] die
Suchrichtung, die mit der Nebeniteration als Lösung des QP-Unterproblems bestimmt wird.
Für genauere Ausführungen zu Newton- und Quasi-Newton-Verfahren sei an dieser Stelle
auf Kapitel 3 der Arbeit von Ch.Büskens [12] verwiesen.
Bemerkung 5.46. Da die Berechnung der Hesse-Matrix sehr aufwendig ist und die Verwendung einer einmal berechneten Hesse-Matrix über mehrere Iterationsschritte zu großen
Fehlern führen kann, verwendet man eine sogenannte Quasi-Newton-Korrektur mittels der
BFGS-Formel, die explizit im abschließenden Algorithmus aufgeführt ist.
Zur Ermittlung der Schrittlänge α[k] wird eine sogenannte Bewertungsfunktion, auch MeritFunktion genannt, eingeführt. Diese besteht immer aus der Lagrange-Funktion und einem
additiven Ausdruck, wobei die Bewertungsfunktion nicht zwingend differenzierbar sein muss.
In der Literatur finden sich sowohl differenzierbare wie auch nichtdifferenzierbare Funktionen,
die hierfür benutzt werden können. In ’E04UCF’ wird dabei folgende Bewertungsfunktion
angewandt:
Na
1X
L̃(z, η, ρ) = L(z, η) +
ρj G2j (z)
(5.166)
2 j=1
Bemerkung 5.47. Durch die Wahl der Schrittlänge α[k] mittels
L̃(z [k+1] , η [k], ρ) ≈ min L̃(z [k] + α̃[k] p[k] , η [k], ρ)
0<α̃[k] ≤1
(5.167)
reduziert die Bewertungsfunktion allerdings die natürliche Schrittlänge des Newton-Verfahrens
α[k] = 1, jedoch ist zu erwarten, dass α[k] in der Nähe der optimalen Lösung näherungsweise
1 beträgt. Außerdem muss beachtet werden, dass beim Abstieg entlang der Suchrichtung p[k]
Beschränkungen aktiv werden können.
79
5.4 Direkte Verfahren
Abbildung 5.10: Einfluss der Merit–Funktion auf
die zu untersuchende Umgebung. Dies wird auch
als Armijo–Goldstein Suche einer Trust–Region bezeichnet.
z[k]
Trust
Region
α p
[k]
[k]
[k]
p
Somit ergibt sich folgender Algorithmus, die sogenannte Strategie der aktiven Mengen:
1. Wähle zulässiges z [0] ∈ RNz , bestimme die Indexmenge der aktiven Nebenbedingungen
A(0) und setze k ∈ R auf k = 0.
2. Berechne Suchrichtung p[k] durch Lösen des QP-Unterproblems. Ist p[k] = 0 die Lösung,
dann gehe zu 3., sonst gehe zu 4.
3. Da p[k] = 0 ist, löst z [k] das Problem
1
∇z F (z [k] )z [k] + (z [k] )T B [k] z [k]
2
Gi (z [k] ) = 0 , i ∈ A[k] .
Minimiere
unter
(5.168)
(5.169)
[k]
Berechne den zugehörigen Lagrange-Multiplikator ηi , i ∈ A[k] durch
− ∇z G[k] η [k] = B [k] z [k] + ∇z f (z [k] ),
(5.170)
wobei G[k] = [Gi (z [k] )], i ∈ A[k] Vektor der aktiven Nebenbedingungen ist. Wähle j, so
[k]
[k]
dass ηj = mini∈I(z [k] ) ηi .
[k]
Wenn ηj ≥ 0, dann beende mit z ∗ = z [k] .
Sonst setze A[k] = A[k] \ {j} und gehe zu 2.
4. Da p[k] 6= 0 setze z [k+1] = z [k] + α[k] p[k] mit
α[k] = min(α̃[k] , ᾱ[k]),
wobei ᾱ[k] =
(5.171)
[k]
Gi (z )
[k] [k]
i: ∇z Gi (z [k] )p[k] >0 ∇z Gi (z )p
min
(5.172)
und α̃[k] aus (5.167). Ist α[k] < α̃[k] , dann setze A[k+1] = A[k] ∪ p, wobei p ∈ {i :
∇z Gi (z [k] )p[k] < 0} Minimum für ᾱ(k) , sonst setze A[k+1] = A[k] .
Bestimme Approximation der Hessematrix neu mit BFGS–Formel:
[k] s[k] (s[k] )T B [k]
γ [k] (γ [k] )T
− B (s[k]
(s[k] )T γ [k]
)T B [k] s[k]
[k]
[k+1]
[k]
B [k+1] = B [k] +
mit s
S
γ
[k]
= ∇z L(z
=z
[k+1]
[k]
−z
,
[k]
[k]
, η ) − ∇z L(z , η )
(5.173)
(5.174)
(5.175)
80 Kapitel 5: Lösungsansätze nichtlinearer modellprädiktiver Regelungprobleme
Setze k = k + 1 und gehe zu 2.
Graphisch ist die Situation in Schritt 3 in Abbildung 5.11 und für Schritt 4 in Abbildung
5.12 veranschaulicht.
− F
∆
− Gj
∆
Abbildung 5.11: Deaktivierung einer aktiven
Nebenbedingung
Linearisierte
Nebenbedingung
Gj
linearisierte Menge
der aktiven
Nebenbedingungen
z[k]
p [k]
Abbildung 5.12: Aktivierung einer nichtaktiven Nebenbedingung
α [k]
linearisierte Menge
der aktiven
Nebenbedingungen
Linearisierte
Nebenbedingung Gq
z[k]
Bemerkung 5.48. Nachteilig an dem Verfahren ist offenkundig die Verwendung einer lediglich approximativen Hessematrix. Würde an dieser Stelle die exakte Hessematrix verwendet werden, so entspräche es dem Newton-Verfahren und hätte die Konvergenzordnung 2.
In der dargelegten Form als Quasi-Newton-Verfahren reduziert sich die Konvergenzordnung
auf 1, jedoch kann für die Quasi-Newton-Korrektur in Schritt 4 superlineare Konvergenz
nachgewiesen werden. Ein entsprechender Konvergenzbeweis findet sich in der Arbeit von
K.Schittkowski [61]. Zudem garantiert die BFGS–Formel die positive Definitheit der approximierten Hessematrix, falls die zu Beginn des Algorithmus berechnete Hessematrix positiv
definit ist.
5.4.5
Numerische Probleme
Festlegungsreihenfolge der Parameter
Bemerkung 5.49. Es kann zudem gezeigt werden, dass, falls das zeitkontinuierliche System
asymptotisch kontrollierbar ist für eine kompakte Menge N ⊂ Rn , ein T ∗ > 0, T ∗ ∈ R
5.4 Direkte Verfahren
81
existiert, so dass für alle Abtasts–Raten T ∈ (0, T ∗ ) die Lösungen für alle x ∈ N, u ∈ U
existieren und mit MPC zu regelnde System kontrollierbar ist auf der Menge N, falls das
kontinuierliche System asymptotisch kontrollierbar ist. Dies liefert eine erste Reihenfolge für
die Wahl der Abtast–Rate und der Horizontlänge, da somit für eine beliebige kompakte Menge
N zuerst T angepasst werden sollte, um die Existenz der Lösungen und die asymptotische
Kontrollierbarkeit auf N zu gewährleisten, und danach die Horizontlänge zu behandeln, die
garantiert, dass N eine Teilmenge des Basins des geschlossenen Regelkreises ist.
Um mittels des hier dargelegten modellprädiktiven Regelungsansatzes für beliebige Beispiele
eine Lösung zu erhalten, empfiehlt es sich die Einflussfaktoren in der folgenden Reihenfolge
festzulegen:
(1) Anfangswerte x ∈ Rn
(2) Parameteranpassung (falls möglich)
(3) Abtast–Rate T ∈ R
(4) Horizontlänge H ∈ R
(5) Wahl des Integrationsverfahrens
(6) Fehlertoleranz der Integration
Ziel muss es zunächst sein, überhaupt eine Lösung zu finden. Im Allgemeinen muss man
hierbei ohne eine analytische Darstellung des Einzugsbereichs auskommen. Daher ist zur
Bestimmung geeigneter Anfangswerte Expertenwissen notwendig. Dies gilt auch für eine
geeignete Startlösung, denn zur numerischen Berechnung der Anfangslösung ist es notwendig,
eine Ausgangssteuerung vorzugeben. Liegt diese nicht in der Nähe der optimalen Steuerung
für den gegebenen Horizont, so ist nicht zu erwarten, dass durch die lokale Suche mittels des
SQP–Verfahren dieses Optimum bestimmt werden kann.
Ist es zudem möglich innerhalb der Dynamik des Systems Parameter anzupassen, so sollte
dies genutzt werden, um eine gute Ausgangsbasis für das MPC–Problem zu generieren.
Darunter versteht man hierbei eine derartige Modifikation der Trajektorien, so dass diese
(a) keine starken Steigungen aufweisen und
(b) monoton innerhalb eines Intervalls der Länge T des äquidistanten Gitters sind.
Da es sich bei (a) um eine vom Verfahren unabhängige Eigenschaft handelt sollte dies zuerst bedacht und so (1) und (2) festgelegt werden. Im Anschluss kann man die Faktoren (3)
und (4) unter Berücksichtigung von (b) bestimmen. Für die Fehlertoleranz (6) haben sich
der Wert 10−4 und für das Integrationsverfahren (5) die Schrittweitensteuerungsverfahren
DoPri5 und Radau5 (beide von der Ordnung 5) als brauchbar erwiesen.
Der Reihenfolge liegt dabei die Logik zugrunde, zunächst eine Lösung des optimalen Steuerungsproblems berechnen zu können und anschließend die Abtast–Rate zu vergrößern.
82 Kapitel 5: Lösungsansätze nichtlinearer modellprädiktiver Regelungprobleme
ˆ So ist es zunächst nötig im Schritt (1) Anfangswerte zu finden, für die das Kontrollsystem mit Parametern (2) stabilisierbar ist.
ˆ Da für die Steuerung nur stückweise konstante Steuerfunktionen verwendet werden, die
zudem zu einer bestimmten Abtast–Rate (3) gehören, wird T zunächst klein gewählt.
ˆ Während der Auswertung der numerischen Ergebnisse hat sich gezeigt, dass längere
Horizonte bessere Ergebnisse liefern. Somit sollte H in (4) groß gewählt werden.
ˆ Nun wird die Abtast–Rate T vergrößert. Dadurch werden numerische Probleme verstärkt,
etwa bei der Diskretisierung, der Integration und der Optimierung. Insbesondere die
Länge des Horizonts spielt dabei eine Rolle, so dass dieser eventuell verkleinert werden
muss. Zudem muss beachtet werden, dass hier ein beschränktes Problem vorliegt, so
dass es aus der Diskretisierung heraus nicht klar ist, ab und bis zu welchem Zeitpunkt
Nebenbedingungen aktiv sind. Dies wäre approximativ mittels einer Gitteranpassung
möglich, die sich aber auf Grund der vorausgesetzten Äquidistantheit des Gitters verbietet. Die angesprochene Situation ist in Abbildung 5.13 noch einmal graphisch veranschaulicht.
ˆ Mittels (5) und (6) kann nur noch versucht werden, die Grenzen des Verfahrens für ein
vorliegendes Problem zu erweitern.
Abbildung 5.13: Problem der Nichtunterscheidbarkeit in Bezug
auf den genauen Zeitpunkt des Aktiv- und
Inaktivwerdens
einer
Nebenbedingung durch
schlechte
Wahl
der
Gitterpunkte
S(x,u)
Beschränkung aktiv
0
inaktiv
inaktiv
aktiv
inaktiv
t
Bemerkung 5.50. (2) kann nur bei einer möglichen Parameterwahl angewandt werden und
im Fall von (5) und (6) ist eine Vergrößerung der Abtast–Rate lediglich auf Kosten der
Fehlerordnung beziehungsweise der Genauigkeit möglich.
Geschwindigkeit
Da es das Ziel des Verfahrens ist, ein System in Echtzeit zu stabilisieren, muss der Algorithmus entsprechend schnell funktionieren. Hier stellt sich das Problem, dass zum einen die
Genauigkeit größer wird, je länger der Horizont H gewählt wird, und zum anderen, dass es
auf Grund der Wahl einer (numerisch) relativ großen Schrittweite, die hier der Abtast–Rate
T entspricht, notwendig ist eine Schrittweitensteuerung innerhalb jedes einzelnen Abtast–
Intervalls aufzurufen.
83
5.4 Direkte Verfahren
Da a–priori nicht bekannt ist, wieviele Auswertungen der rechten Seite des Differentialgleichungssystem hierfür notwendig sind, muss die Genauigkeit zu Gunsten der Geschwindigkeit
auch hier reduziert werden. Dazu wird eine Mindestschrittweite eingeführt, die es erlaubt,
die Anzahl an Auswertung auf dem gesamten Horizont nach oben abzuschätzen.
Ein drittes Problemfeld tut sich auf, wenn man den SQP–Algorithmus genauer untersucht.
Hierbei fällt auf, dass die Zahl der Abstiege nicht begrenzt ist. Um die Anwendbarkeit in
Echtzeit garantieren zu können muss daher die Anzahl der SQP–Schritte limitiert werden.
Hierbei hat sich in der Praxis gezeigt, dass in der Regel 1 bis 3 Schritte des SQP–Verfahrens
ausreichend sind, um das gewünschte Verhalten zu erreichen.
Einen positiven Effekt auf die Geschwindigkeit des Verfahrens kann man erreichen, wenn
man die bereits berechnete optimale Steuerfolge u[0,M −1] aus dem vorangegangen Problem
weiterverwendet statt diese Information verfallen zu lassen. Hierdurch erhält man eine gute
Ausgangslösung, indem man in der Steuerfolge den ersten Wert herausnimmt und die Folgenden um einen Platz nach vorne shiftet und den nun vorletzten Wert kopiert. Dieses Kopieren
des letzten Wertes ist besonders dann sinnvoll, wenn nur ein Punkt getrackt werden soll, da
hier zu erwarten ist, dass sich die Steuerung auf einen festen Wert einpendelt.
Rechenzeit
6
typische Entwicklung
der Rechenzeiten
Abbildung 5.14: Schematische Darstellung des Rechenzeitverlaufs während das MPC–Verfahren fortschreitet.
MPC Schritt
Horizontlänge
Wie zuvor bemerkt liefern längere Horizonte in der Regel bessere Ergebnisse, wobei bereits
festgestellt wurde, dass die Länge des Horizonts auf Grund des Echtzeit–Anspruchs des Verfahrens limitiert werden muss.
Ein bisher nicht geschilderter Nachteil eines langen Horizontes ist das Problem der numerischen Instabilität. Dies rührt daher, dass die vorzugebende Anfangsschätzung der Steuerung
u umso schlechter ist je länger der Horizont ist. Somit ist es bei längeren Horizonten wahrscheinlich, dass zum einen die Zustandstrajektorien nicht berechenbar sind auf Grund der
Endlichkeit der Zahldarstellung im Rechner, und zum anderen, dass wegen der lediglich garantierten lokalen Konvergenz des SQP–Verfahrens keine oder kaum eine bessere Lösung
gefunden wird.
Da dies nur in Simulationen realisiert werden kann, spielt es für die Praxis (noch) keine Rolle, jedoch kann hier festgestellt werden, dass gerade wegen der Lokalität kürzere Horizonte
dieses Problem lösen. Jedoch ist sowohl in diesen theoretischen Simulationen wie auch in der
Praxis darauf zu achten, dass entsprechende Stabilitätsbeweise solcher Verfahren eine untere
84 Kapitel 5: Lösungsansätze nichtlinearer modellprädiktiver Regelungprobleme
Schranken für die Horizontlänge H vorgeben.
5.5
Anwendung: Reinst–Destillationsanlage
Im folgenden wird am Beispiel einer Reinst–Destillationsanlage die Anwendbarkeit NMPC
gezeigt. Das Ziel hierbei ist die Trennung von Gemisch aus Methanol und n–Propanol. Dafür
wird eine Destillationkolonne verwendet, die aus 40 Böden besteht. Am Kolonnenboden
wird das Gemisch durch einen Verdampfer erhitzt, der überhitzte Dampf vollständig in
einem wassergekühlten Kondensierer kondensiert und bei genügender Reinheit abgeführt.
Liegt die Reinheit unterhalb einer gewissen Grenze, so wird das Kondensat in die Kolonne
zurückgeführt.
Abbildung 5.15: Schemazeichnung einer Destillationskolonne
5.5 Anwendung: Reinst–Destillationsanlage
85
Während des Experiments werden folgende Daten online gemessen und überwacht:
Temperatur
des Zuflussstromes
des Rückflussstromes
am Kondensierer
am Verdampfer
Volumenflussrate
an jedem Boden der Kolonne
des Zuflusses
des Rückflusses
des Destillates
des Bodenproduktes
Kolonneninnendruck
Tabelle 5.1: Gemessene Daten der Reinst–Destillationsanlage
Diese Größen stellen somit den Ausgang des Systems dar, aus dem sämtliche anderen Größen
rekonstruiert werden müssen. Insbesondere kann die Reinheitskontrolle des Destillats nicht
direkt gemessen werden, da dies zum einen online nicht möglich ist und zum anderen innerhalb der kurzen Zeitdauer zu ungenau wäre. Daher wird aus der Messung der Temperatur an
den Böden 14 und 28 diese Information gewissermaßen interpoliert durch den bekannten Zusammenhang zwischen Temperatur und Konzentration. Alle anderen Werte sind unbekannt
und müssen für die Anwendung des MPC–Verfahren mittels eines erweiterten Kalman–Filters
rekonstruiert werden. Genauere Angaben hierzu finden sich im Anhang B.
Als steuerbare Störung verwendet man zwei Tanks mit unterschiedlichen Gemischkonzentrationen. Dieses Gemisch wird dann vorgeheizt am Zuflussboden zugeführt. Die steuerbaren
Prozesseingänge sind dementsprechend:
Q
Lvol
Hitzezufuhr durch den elektrischen Verdampfer
Rückflussrate
Tabelle 5.2: Steuergrößen der Reinst–Destillationsanlage
86 Kapitel 5: Lösungsansätze nichtlinearer modellprädiktiver Regelungprobleme
Für die vorliegende Kolonne müssen nun noch die
entsprechenden Modellgleichungen aufgestellt werden. Dabei gelten, solange die molare Menge nl konstant ist, die folgende Bedingungen:
0 = Ll+1 − Ll + Vl−1 − Vl + Fl
(5.176)
0 = VN − LN −1 − D
(5.178)
0 = L1 − L0 − V0
(5.177)
Dabei bezeichnet L den Flüssigkeitsfluß, V den Volumenfluß des Dampfes und D entsprechenden Volumenfluß des Destillates für die einzelnen Böden Abbildung 5.16: Schemazeichnung eil = 1, 2, ..., N. Die Herleitung kann dabei leicht an nes Destillationsbodens
Abbildung 5.16 nachvollzogen werden. Zudem wird
l = 0 wird für den Verdampfer und l = N + 1 für
den Kondensierer benötigt. Gemäß diesem Gleichgewicht erhält man die folgende Dynamik
nl ẋl,k = Ll+1 xl+1,k − Ll xl,k + Vl−1 yl−1,k − Vl yl,k + Fl xF,l,k
n0 ẋ0,k = L1 x1,k − L0 x0,k − V0 y0,k
nN +1 ẋN +1,k = VN yN,k − (LN −1 + D)xN +1,k
(5.179)
(5.180)
(5.181)
und eine dementsprechende Energie-Bilanz
nl ḣLl = Ll+1 hLl+1 − Ll hLl + Vl−1 hVl−1 − Vl hVl + Fl hLF,l
n0 ḣL0
=
L1 hL1
−
L0 hL0
−
V0 hV0
+ Q − Qloss .
(5.182)
(5.183)
xl und yl bezeichnen hierbei die Konzentrationen der Flüssigkeit und des Dampfes. Dabei
kann man die Enthalpie hl und yl durch algebraische Umformungen eliminieren. Das resultierende Modell hat 42 Differentialgleichungen f und 122 algebraische Gleichungen g und
somit die Form
ẋ(t) = f (x(t), z(t), u(t), p)
(5.184)
0 = g(x(t), z(t), u(t), p)
(5.185)
(5.186)
mit u = (Lvol , Q)T als Kontroll-, z = (L1 , . . . , LN , V1 , . . . , VN , T0 , . . . , TN +1 )T als algebraischer Zustandsvektor und p als der Vektor aller Systemparameter.
Für dieses Problem wurden in der Arbeit von M. Diehl, I. Uslu, R. Findeisen, S. Schwarzkopf, F. Allgöwer, H.G. Bock, T. Bürner, E.D. Gilles, A. Kienle, J.P. Schlöder und E. Stein
[22] die zwei Lösungsmöglichkeiten
mit PI-Reglern
in der Praxis untersucht.
und
mit NMPC
87
5.5 Anwendung: Reinst–Destillationsanlage
5.5.1
Reinst–Destillationsanlage mit PI–Regler
Ein PI–Regler enthält mindestens ein Integrierglied und wird wegen seiner hohen stationären
Genauigkeit gerne von Ingenieuren verwendet. Ihr Nachteil ist jedoch, dass sie zu relativ
starkem Überschwingen etwa bei Lastwechseln oder Störungen neigen. Der Regelkreis eines
solchen PI–Reglers ist graphisch in Abbildung 5.17 veranschaulicht.
Abbildung 5.17: Regelkreis eines PI–
Reglers
PI–Regler haben als Kontrollfunktion die Form
KP
u(t) = KP e(t) +
TI
Z
t
e(τ )dτ.
(5.187)
0
28
Dabei ist e(t) die Funktion des noch vorhandenen Fehlers, im vorliegenden Fall also Tref
−T 28
14
beziehungsweise Tref
− T 14 , KP der Reglerproportionalbeiwert und TI eine Zeitkonstante.
Diese Konstanten werden online durch Ziegler-Nichols bestimmt:
Abbildung 5.18: Wendetangentenverfahren nach Ziegler–Nichols
2 T
Ks Tt
= 3.33Tt
Kp = 0, 45
(5.188)
TI
(5.189)
88 Kapitel 5: Lösungsansätze nichtlinearer modellprädiktiver Regelungprobleme
5.5.2
Reinst–Destillationsanlage mit MPC–Regler
Die erwünschten Zustände xs , zs , die dazugehörige Kontrolle us sowie die Temperaturen T
sollen die folgenden Gleichungen erfüllen:
f (xs , zs , us , p) = 0
(5.190)
g(xs , zs , us , p) = 0
(5.191)
T̃ (zs ) − T̃ref = 0
(5.192)
Dabei gilt T̃ (z) := (T14 , T28 )T . Diese drei Gleichungen werden nun in einem Vektor
r(xs , zs , us , p) = 0
(5.193)
zusammengefasst. Das optimale Kontrollproblem lautet dann:
min
u(·),x(·),p
Z
t0 +Tp
t0
kl(x(t), z(t), u(t), us , p)k22 dt
mit
l(x, z, u, us , p) :=
T̃ (z) − T̃ref
R(u − us )
(5.194)
,
wobei R = diag(0.05°Chl−1, 0.05°CkW −1). Als Anfangswertbedingungen werden
x(t0 ) = x0
p = p0 = konstant
(5.195)
(5.196)
gewählt und alle Zustands- und Kontroll-Ungleichheitsbedingungen zu
c̃(x(t), z(t), u(t), p) ≥ 0
(5.197)
zusammengefasst.
Abbildung 5.19:
NMPC–Reglers
Schema
des
Für das Multiple-Shooting-Verfahren muss das DAE-System noch etwas modifiziert werden,
89
5.5 Anwendung: Reinst–Destillationsanlage
so dass es sich schlussendlich in der Form
ẋi (t) = f (xi (t), zi (t), qi , p)
(5.198)
−β t
0 = g(xi (t), zi (t), qi , p) − e
t−ti
i+1 −ti
g(sxi , szi , qi , p)
(5.199)
xi (ti ) = sxi
(5.200)
szi
(5.201)
zi (ti ) =
schreiben lässt, wobei qi die Kontrollparameter sind. β wurde hier eingeführt um ein glatteres
Verhalten zu realisieren. Das zu lösende Problem ist nun
N
−1 Z ti+1
X
kl(xi (t), zi (t), qi , us , p)k22 dt
(5.202)
min
ξ
i=0
ti
mit us := qn−1 und ξ = (sx0 , . . . , sxN , sz0 , . . . , szN −1 , q0 , . . . , qN −2 , xs , zs , us , p) als der Vektor der
Unbekannten. Außßerdem gelten die Nebenbedingungen
sx0 = x0 ,
sxi+1
p = p0
= xi (ti +
0 =
0 ≤
(5.203)
1, sxi , szi , qi , p),
g(sxi , szi , qi , p),
c̃(sxi , szi , qi , p),
r(xs , zs , us , p) = 0
i = 0, . . . , N − 1
(5.204)
i = 0, . . . , N − 1
(5.205)
i = 0, . . . , N − 1
(5.206)
(5.207)
Mittels Linearisierung kann dies zu einem quadratischen Programm umgewandelt werden.
Hierbei werden x0 , p0 iterativ angepasst. Man verwendet
∆ξ = (∆sx0 , . . . , ∆sxN , ∆sz0 , . . . , ∆szN −1 , ∆q0 , . . . , ∆qN −2 , ∆xs , ∆zs , ∆us , ∆p)
um eine Darstellung des Problem der Form
N
−1 Z ti+1
X
min
kli (t) + Li (t)(∆sxi T , ∆szi T , ∆qi T , ∆us T , ∆pT )T k22 dt
∆ξ
i=0
(5.208)
(5.209)
ti
unter den Nebenbedingungen
∆sx0 = (x0 )k+1 ,
∆sxi+1
=
0 =
0 ≤
0 =
∆p = (p0 )k+1 − p
xi + Xi (∆sxi T , ∆szi T , ∆qi T , ∆pT )T , i = 0, . . . , N − 1
gi + Gzi ∆szi + Gi (∆sxi T , ∆qi T , ∆pT )T , i = 0, . . . , N −
c̃i + C̃i (∆sxi T , ∆szi T , ∆qi T , ∆pT )T , i = 0, . . . , N − 1
r + R(∆xs T , ∆zs T , ∆us T )T + Rp ∆p
(5.210)
(5.211)
1
(5.212)
(5.213)
(5.214)
zu erhalten. Aus den ∆ξk bestimmt man anschließend
(q0 )k+1 := (q0 )k + (∆q0 )k
und ξk+1 = ξk + ∆ξk .
(5.215)
Beim Vergleich der Reaktion der Regler auf eine Änderung der Zuflussrate sieht man (vergleiche Abbildung 5.20), dass der NMPC–Regler es schafft, mindestens gleichwertige Ergebnisse
zu realisieren, und bei großen Änderungen sogar schneller zurückregelt als der PI-Regler,
was vor allem auf der schnellereren und genaueren Regelung beruht. Somit kann gefolgert
werden, dass der Einsatz von NMPC–Regler grundsätzlich auch in der Praxis sinnvoll ist.
90 Kapitel 5: Lösungsansätze nichtlinearer modellprädiktiver Regelungprobleme
Abbildung 5.20: Vergleich NMPC — PI bei Änderung der Zuflussrate
Kapitel 6
Stabilität und Inverse Optimalität
6.1
Problemstellung
Das zu kontrollierende System ist normalerweise durch eine gewöhnliche Differentialgleichgung beschrieben. Da die Kontrolle hier in der Regel allerdings stückweise konstant ist, wird
es durch folgende Differenzengleichung modelliert:
x(k + 1) = f (x(k), u(k)))
y(k) = h(x(k)),
(6.1)
(6.2)
wobei f (·) implizit definiert ist durch die Differentialgleichung, die im Ursprung einen Gleichgewichtspunkt (f (0, 0) = 0) hat. Im Folgenden wird der Zustand x(k + 1) mit x+ abgekürzt,
sodass (6.1) und (6.2) in der folgenden Form geschrieben werden können:
x+ = f (x, u)
(6.3)
y = h(x)
(6.4)
Die Kontrollfolge bezeichnen wir mit u(·) oder u sowie die Zustandstrajektorie (Zustandsfolge), die aus dem Anfangszustand x zur Zeit j und einer Kontrollfolge u resultiert, mit
xu (·; (x, j)). Die Kontroll- und Zustandsfolgen müssen folgende Beschränkungen erfüllen:
u(k) ∈ U,
(6.5)
x(k) ∈ X.
(6.6)
yr = h(xr ) = r
(6.7)
Hier ist U gewöhnlich eine konvexe kompakte Teilmenge des Rm und X eine konvexe abgeschlossene Teilmenge des Rn , wobei beide Mengen den Ursprung in ihrem Inneren enthalten.
Das Ziel der Steuerung ist es normalerweise, den Zustand in den Ursprung oder in einen
Gleichgewichtszustand xr , für den
mit einem konstanten r gilt, zu steuern. Durch eine Koordinatentransformation kann das
zweite Problem in das erste überführt werden, weshalb wir im folgenden nur das erste Problem betrachten. Das Kostenfunktional wird für alle (x, k) (d.h. Zustand x zum Zeitpunkt
91
92 Kapitel 6: Stabilität und Inverse Optimalität
k) definiert durch
V (x, k, u) =
k+N
X−1
l(x(i), u(i)) + F (x(k + N)),
(6.8)
i=k
wobei u = {u(k), u(k + 1), . . . , u(k + N − 1)} und x(i) := xu (i; (x, k)). Zur Vereinfachung
nehmen wir an, dass l(x, u) ≥ c(kx, uk)2 und dass l(0, 0) = 0 gelten. Zusätzlich wird in
manchen Fällen die Endbedingung
x(k + N) ∈ Xf ⊂ X.
(6.9)
benötigt. Die Lösung des optimalen Steuerungsproblems P(x, k) zur Minimierung des Kostenfunktionals V (x, k, u) unter Zustands-, Kontroll- und Endbedingungen, ergibt die optimale Kontrollfolge
u0 (x, k) = {u0 (k; (x, k)), u0(k + 1; (x, k)), . . . , u0(k + N − 1; (x, k))}
(6.10)
und die optimale Wertefunktion
V 0 (x, k) = V (x, k, u0 (x, k))
(6.11)
für alle (x, k). Die Steuerungsfolge ist dann zulässig für unser Problem, falls sie in endlicher
Zeit den Zustand x(0) in eine Umgebung Xf des Gleichgewichts steuert. Die Menge der
Zustände, die durch u in h Schritten in Xf gesteuert werden, wird mit Xh bezeichnet. Die
erste Kontrolle u0 (k; (x, k)) der optimalen Kontrollfolge u0 (x, k) wird (zur Zeit k) auf das
System angewendet. Dies definiert implizit eine modellprädiktive Kontrollfunktion
κ(x, k) := u0 (k; (x, k)).
(6.12)
Da f (·) und l(·) zeitinvariant sind, ist P(x, k) zeitinvariant in dem Sinne, dass V 0 (xk ) =
V (x, 0) und κ(x, k) = κ(x, 0) für alle k gilt. Daher reicht es PN (x) = P(x, 0) zu berechnen,
d.h. die aktuelle Zeit als 0 anzunehmen. PN (x) (N ist der endliche Zeithorizont) ist daher
definiert durch
PN (x) : VN0 (x) = min{VN (x, u) | u ∈ UN (x)},
(6.13)
u
wobei nun
VN (x, u) =
N
−1
X
l(x(i), u(i)) + F (x(N))
(6.14)
i=0
sowie u = {u(0), u(1), . . . , u(N −1)}, x(i) = xu (i; (x, 0)) gilt und UN (x) die Menge zulässiger
Kontrollfolgen ist, die die Kontroll-, Zustands- und Endbedingungen erfüllen. Da N endlich
ist, existiert das Minimum, falls f (·), l(·) und F (·) stetig sind, U kompakt ist und X und Xf
abgeschlossen sind. Durch Lösen von PN (x) erhält man die optimale Kontrollfolge
u0 (x) = {u0 (0; x), u0(1; x), . . . , u0 (N − 1; x)},
(6.15)
daraus die optimale Zustandstrajektorie
x0 (x) = {x0 (0; x), x0 (1; x), . . . , x0 (N; x)},
(6.16)
93
6.2 Stabilität
und die Wertefunktion
VN0 (x, k) = VN (x, u0 (x))
(6.17)
für alle (x, k) (x als alleiniges Argument bezeichnet den Anfangszustand x zum Zeitpunkt 0,
also x0 (0; x) = x). Die erste Steuerung u0 (0; x) aus der optimalen Kontrollfolge u0 (x) wird
auf den Prozess angewendet. Die implizite modellprädiktive Kontrollfunktion
κN (x) := u0(0; x).
(6.18)
ist daher zeitinvariant.
6.2
Stabilität
Im Folgenden versuchen wir Bedingungen an F (·), κf (·) und Xf herzuleiten, unter denen das obige System stabilisiert werden kann. Dabei orientiert sich dieses Kapitel an der
Übersichtsarbeit von D.Q. Mayne, J.B. Rawlings, C.V. Rao und P.O.M. Scorkaert [50], jedoch unter der Prämisse, die dort lediglich dargelegten Zusammenhänge und Bedingungen
herzuleiten und zu motivieren. Dazu führen wir zuerst eine Notation ein:
Notation 6.1. Für jede Funktion Φ(x) sei Φ̃(x, u) gekennzeichnet als der Statuswechsel in
Φ(·) von x nach x+ = f (x, u), d.h.
Φ̃(x, u) := Φ(f (x, u)) − Φ(x).
(6.19)
Φ̃(x, u) ist das diskrete Analogon zur Ableitung Φ̇(x, u) im Kontinuierlichen.
Bemerkung 6.2. Zudem dienten die Arbeiten von L. Magni und R. Sepulchre [44] sowie A.
Jadbabaie und J. Hauser [39] als Grundlage hierfür, wobei nicht auf die speziellen Ergebnisse
dieser Arbeiten eingegangen werden soll.
Um Stabilität garantieren zu können, verwendet man folgende Vorgehensweise:
Zunächst erfüllt modellprädiktive Regelung die Bedingung x(N) ∈ Xf . Daher muss sie in der
Lage sein, den Zustand x in endlicher Zeit zu Xf steuern. Innerhalb von Xf wird anschließend
die lokale Stabilitätskontolle κf angewandt, die bereits bekannt ist und das Problem in Xf
asymptotisch stabilisiert. Diese zwei Steuerungsansätze (innerhalb und außerhalb von Xf )
motivieren den Begriff dual-mode MPC.
Im Folgenden zeigen wir zwei unterschiedliche, aber verwandte Methoden, um Stabilität zu
ermitteln. Beide Ansätze verwenden die Wertefunktion VN0 (·) als Lyapunov Funktion. Weiter
nehmen wir an, dass die Wertefunktion kontinuierlich sei.
Der erste Ansatz, der als Direkte Methode bezeichnet wird, verwendet die Wertefunktion und
stellt Bedingungen an F (·), Xf und κf (·), die sicherstellen, dass die Lyapunov-Bedingung
ṼN0 (x, κN (x)) + l(x, κN (x)) ≤ 0
(6.20)
erfüllt wird und somit asymptotische Stabilität des Systems garantiert werden kann.
In dieser Methode wird die Berechnung von VN0 vermieden, indem man eine obere Schranke
94 Kapitel 6: Stabilität und Inverse Optimalität
VN (x+ , û(x)) für VN0 mit brauchbarer Steuerung û(x) berechnet.
Die zweite Methode verwendet die Tatsache, dass
ṼN0 (x, κN (x)) + l(x, κN (x)) = VN0 (x+ ) − VN0 −1 (x+ )
(6.21)
gilt, und zeigt, dass die rechte Seite der Gleichung negativ ist. Dies kann entweder direkt
geschehen oder durch den Nachweis, dass
V10 (·) ≤ V00 (·)
(6.22)
ist und die Monotonie
0
V10 (·) ≤ V00 (·) ⇒ Vi+1
(·) ≤ Vi0 (·)∀i ≥ 0
ausgenutzt wird.
6.2.1
Direkte Methode
Unser Ziel ist es, Axiome zu finden, die closed–loop Stabilität gewährleisten. Dies verlangt
die Festlegung adäquater Bedingungen an F (·), Xf und κf (·). Xk sei dabei die Menge der x,
die sich durch zulässige Kontrollfolgen in k oder weniger Schritten nach Xf steuern lassen.
Eine Kontrollfolge u = {u(0), u(1), . . . u(k − 1)} heißt zulässig, falls sie die Steuerungsu(i) ∈ U für i = 0, 1, . . . , k − 1
(6.23)
xu (i; x) ∈ X für i = 0, 1, . . . , k
(6.24)
xu (k; x) ∈ Xf
(6.25)
Zustandsund Endpunktbedingungen
erfüllt. Die Menge von Zuständen, die durch MPC mit festem Horizont N in Xf gesteuert werden können, wird mit XN bezeichnet. Nehmen wir nun an, dass x ∈ XN liegt und
die Kontrollfolge u0 (x), die das Problem PN (x) löst, bestimmt wurde. Weiter sei x0 (x) =
{x, x0 (1; x), . . . , x0 (N; x)} die optimale Trajektorie. Aus dem Ansatz ist klar, dass die modellprädiktive Regelung u = κN (x) = u0 (0; x) den Anfangszustand x in den Nachfolgezustand
x+ = x(1; x) = f (x, κN (x)) überführt.
Wir wollen nun eine zulässige Kontrollfolge û(x) für x+ bestimmen und daraus eine obere
Schranke für VN0 (x+ ) gewinnen.
Da {u0 (0; x), u0(1; x), . . . , u0(N −1; x)} eine zulässige Kontrollfolge für PN (x) ist, steuert die
(verkürzte) Kontrollfolge
{u0 (1; x), . . . , u0 (N − 1; x)}
den Zustand x+ in x0 (N; x) ∈ Xf . Um eine zulässige Kontrolle für PN (x+ ) zu erhalten, fügen
wir ein weiteres Element u in diese Folge ein und erhalten
{u0(1; x), . . . , u0 (N − 1; x), u}.
(6.26)
95
6.2 Stabilität
Diese Folge ist zulässig, falls u ∈ U liegt und u den Zustand x0 (N; x) ∈ Xf in einen Zustand
f (x0 (N; x), u) ∈ Xf steuert. Dies ist der Fall, wenn u = κf (x0 (N; x)) gilt sowie Xf und der
lokale Regler κf (·) die folgenden Eigenschaften erfüllen:
ˆ Xf ⊂ X,
ˆ κf (x) ∈ U und
ˆ f (x, κf (x)) ∈ Xf
∀x ∈ Xf .
D.h. Xf ist vorwärts invariant unter der Kontrollfunktion κf (·). Falls diese Bedingungen
erfüllt sind, ist die Kontrollfolge
û(x) := {u0 (1; x), . . . , u0(N − 1; x), κf (x0 (N; x))}
(6.27)
zulässig für PN (x+ ). Die Zustandstrajektorie, die aus dem Startzustand x+ = x0 (1; x) und
der Kontrollfolge û(x) resultiert, ist somit gegeben durch
x̂(x) := {x0 (1; x), . . . , x0 (N; x), f (x0 (N; x), κf (x0 (N; x))}.
(6.28)
Die damit verbunden Kosten sind:
VN (x+ , û(x)) = VN0 (x) − l(x, κN (x)) − F (x0 (N; x))
+l(x0 (N; x), κf (x0 (N; x)) + F (f (x0 (N; x), κf (x0 (N; x))) (6.29)
Diese Kosten, die eine obere Schranke für VN0 (x+ ) darstellen, erfüllen
VN0 (x+ ) ≤ VN (x+ , û(x)) ≤ VN0 (x) − l(x, κN (x)),
(6.30)
aus der direkt die gesuchte Gleichung (6.20) folgt, falls
F̃ (x, κf (x)) + l(x, κf (x)) ≤ 0,
(6.31)
h
i
F̃ + l (x, κf (x)) ≤ 0 ∀x ∈ Xf ,
(6.32)
x+ = f (x, κN (x)) → 0,
(6.33)
oder anders geschrieben, falls
d.h. wenn die Summe der letzten drei Terme im Ausdruck von VN (x+ , û(x)) kleiner oder
gleich 0 ist.
Diese Bedingung gilt, falls F (·) eine Lyapunov Funktion in einer Umgebung des Ursprungs
ist (d.h. das Infimum über u von F (f (x, u)) − F (x) ist kleiner als Null in dieser Umgebung)
und κf und Xf geeignet gewählt wurden. Falls diese Bedingung gilt, wird (6.20) für alle
x ∈ XN erfüllt. Damit konvergiert das closed–loop System
k→∞
falls der Anfangszustand in XN liegt.
Wir haben nun also gezeigt, dass asymptotische Stabilität des closed–loop Verfahrens vorliegt, falls die Bedingungen aus Tabelle 6.1 erfüllt sind.
96 Kapitel 6: Stabilität und Inverse Optimalität
(A1)
(A2)
(A3)
(A4)
Xf ⊂ X, Xf abgeschlossen, 0 ∈ Xf (Zustandsbedingung erfüllt in Xf )
κf (x) ∈ U, ∀x ∈ Xf (Steuerungsbedingung erfüllt in Xf )
f (x, κf (x)) ∈ Xf , ∀x ∈ Xf (Xf ist vorwärts invariant unter κf (·))
[F̃ + l](x, κf (x)) ≤ 0, ∀x ∈ Xf (F (·) ist eine lokale Lyapunov Funktion)
Tabelle 6.1: Bedingungen für asymptotische Stabilität des closed–loop Systems (6.33)
6.2.2
Monotonie der Wertefunktion
Zunächst soll an dieser Stelle gezeigt werden, dass die zuvor angesprochene Gleichung (6.21)
gilt. Anschließend werden wir den Nachweis führen, dass unter den Bedingungen aus Tabelle
6.1 die Wertefunktion Vj0 (·) streng monoton fallend in j ist.
Zuerst sei dazu bemerkt, dass aus dem Optimalitätsprinzip mit x+ := f (x, κN (x)) folgt, dass
VN0 (x) = l(x, κN (x)) + VN0 −1 (x+ )
(6.34)
VN0 (x) = l(x, κN (x)) + VN0 (x+ ) + [VN0 −1 (x+ ) − VN0 (x+ )]
(6.35)
ṼN0 (x, κN (x)) + l(x, κN (x)) = [VN0 (x+ ) − VN0 −1 (x+ )].
(6.36)
für alle x ∈ XN gilt, sodass
und
Somit erhalten wir wieder die beschriebene Ungleichung (6.20), falls
VN0 (x) ≤ VN0 −1 (x) ∀x ∈ XN −1
(6.37)
gilt. Dies kann (falls die Axiome (A1)-(A4) gelten) fast auf dem gleichen Weg wie zuvor
gezeigt werden. Man kann eine obere Schranke für VN0 (x+ ) verwenden, indem man die (optimale) Kontrollfolge (bestehend aus N-1 Steuerungen) für PN0 −1 (x+ ) verwendet und Steuerung
κf (x0 (N − 1; x+ )) = κf (x0 (N; x)) anschließt. Die resultierende Folge ist genau û(x), wie es
oben definiert wurde, und sie ist zulässig für PN0 −1 (x+ ). Somit gilt weiter
VN (x+ , û(x)) = VN0 −1 (x+ ) + l(x0 (N; x)), κf (x0 (N; x)) − F (x0 (N; x))
+F (f (x0 (N; x)), κf (f (x0 (N; x))) ≤ VN0 (x+ ).
(6.38)
Nach (A4) impliziert dies, dass VN0 (x+ ) ≤ VN0 −1 (x+ ). Diese Ungleichung und (6.21) ergeben
die gewünschte Ungleichung (6.20). Diese Montonieeigenschaft wird folgendermaßen ausgedrückt:
0
Satz 6.3. Falls F (·), Xf und κf (·) die Bedingungen (A1)-(A4) erfüllen, dann gilt Vi+1
≤ Vi0 .
Beweis: Um diese Aussage zu beweisen, beweisen wir zuerst den Induktionsschritt, nehmen
also an, dass
0
Vi0 (x) ≤ Vi−1
(x) ∀x ∈ Xi−1
6.3 Stabilität durch Modifikation der Problemstellung
97
gilt. Dann ist
0
Vi+1
(x) − Vi0 (x) ≤ l(x, κi (x)) + Vi0 (f (x, κi (x)))
0
(f (x, κi (x)))
−l(x, κi (x)) − Vi−1
≤ 0 ∀x ∈ Xi
Dabei benutzen wir die Tatsache, dass f (x, κi (x)) ∈ Xi−1 falls x ∈ Xi .
Nun bleibt nur noch der Induktionsanfang zu zeigen, d.h. dass V10 (x) ≤ V00 (x) für alle
x ∈ X 0 = Xf :
Angenommen F (·), Xf und κf (·) erfüllen die Bedingungen (A1)-(A4). Dann ist:
V10 (x) = l(x, κ1 (x)) + V00 (f (x, κ1 (x))) (Optimalitätsprinzip)
≤ l(x, κf (x)) + V00 (f (x, κf (x))) (Optimalität von κ1 (·))
= l(x, κf (x)) + F (f (x, κf (x))) (Definition von V00 (·))
≤ F (x) = V00 (x) (A4)
Insgesamt folgt somit, dass VN0 (x) ≤ VN0 −1 (x) für alle x ∈ XN −1 falls (A1)-(A4) gelten.
Dies bestätigt die gewünschte Ungleichung (6.20) und somit die asymptotische Stabilität
des closed–loop Systems.
6.3
Stabilität durch Modifikation der Problemstellung
Zur Stabilisierung von MPC gesteuerten Systemen sind Modifikationen an PN (x) (meistens
an F (·) und Xf ) nötig. Im Folgenden werden verschiedene Varianten vorgestellt.
6.3.1
Terminal equality constraint
Bei “zero terminal equality constraint“ werden sowohl die Endkostenfunktion F (·) also auch
die Endbedingungen Xf gleich Null gesetzt, d.h
F (x) = 0 und Xf = {0}.
(6.39)
In der Praxis ist es allerdings kaum zu schaffen, in endlicher Zeit exakt in die Null zu steuern
und für immer in der Null zu bleiben.
Mit κf ≡ 0 für alle x ∈ {0} werden die vier Axiome erfüllt:
Xf = {0} ∈ X ⇒ (A1)
(6.40)
f (0, κf (0)) = f (0, 0) = 0 ⇒ (A3)
(6.42)
κf (x) = 0 ∈ U für alle x ∈ U ⇒ (A2)
(6.41)
[F̃ + l](x, κf (x)) = F̃ (x, κf (x)) + l(x, κf (x))
= F (f (x, κf (x)) − F (x) + l(x, κf (x))
= F (f (0, κf (0)) − F (0) + l(0, κf (0))
= F (0) − F (0) + l(0, 0)
= 0 ⇒ (A4)
(6.43)
98 Kapitel 6: Stabilität und Inverse Optimalität
Damit ist gezeigt, dass dieses MPC-Verfahren asymptotisch stabil ist.
6.3.2
Endkosten
Bei diesem MPC-Verfahren wird die Endkostenfunktion F (·) modifiziert und es liegt keine
Endbedingung vor, d.h. Xf = Rn
Wir betrachten im folgenden zwei Fälle:
ˆ unbeschränkte lineare Systeme
ˆ beschrankte lineare Systeme
In beiden Fällen ist mit
f (x, u) = Ax + Bu
(6.44)
ein lineares Steuerungsproblem gegeben. Wir wählen die laufenden Kosten zu
1
l(x, u) = (kxk2Q + kuk2R )
2
mit Q > 0, R > 0.
(6.45)
und die Endkostenfunktion in der Form
1
F (x) = xT Pf x
2
mit Pf > 0
(6.46)
(a) Unbeschränkte lineare Systeme
Um Stabilität zeigen zu können, müssen folgende Bedingungen noch erfüllt werden:
ˆ Sei κf (x) = Kf x eine optimale lineare Kontrollfunktion
ˆ Sei Pf > 0 sodass die Lyapunov-Gleichung
ATf P Af + Qf = 0
(6.47)
mit
Af := A + BKf
Qf := Q +
KfT RKf
(6.48)
(6.49)
erfüllt ist.
Treffen diese Eigenschaften zu, kann man die vier Axiome für Stabilität nachweisen:
Durch die Unbeschränktheit des Systems sind (A1)-(A3) automatisch erfüllt (da Xf =
X = Rn und U = Rm ).
Durch die oben gewählten Einschränkungen kann auch (A4) gezeigt werden, da für alle
6.3 Stabilität durch Modifikation der Problemstellung
99
x ∈ Xf gilt:
[F̃ + l](x, κf (x)) = F (f (x, κf (x))) − F (x) + l(x, κf (x))
1
1
1
f (x, κf (x))T Pf (x, κf (x)) − xT Pf x + (kxk2Q + kκf (x)k2R )
=
2
2
2
1
1
1
(Ax + BKf x)T P (Ax + BKf x) − xT Pf x + (kxk2Q + kKf xk2R )
=
2
2
2
1 T
1
1 T T
x Af P Af x − x Pf x + (kxk2Q + kKf xk2R )
=
2
2
2
1 T
1 T
1
= − x Qf x − x Pf x + (kxk2Q + kKf xk2R )
2
2
2
1 T T
1
1
1
1 T
= − x Qx − x Kf RKf x − xT Pf x + xT Qx + xT KfT RKf x
2
2
2
2
2
1 T
= − x Pf x
2
= −F (x) ≤ 0
(6.50)
Somit kann auch für diesen Fall (aufgrund der Linearität) exponentielle Stabilität gefolgert werden.
(b) Beschränkte stabile lineare Systeme
Im beschränkten linearen System ist die Kontrollbeschränkung U konvex und kompakt.
Da es aber auch hier keine Endbedingung gibt, ist Xf = X = Rn und somit (A1) erfüllt.
Durch die Beschränkung der Steuerung muss κf (·), weil es linear ist, gleich Null sein
(d.h. κf (x) = Kf x ≡ 0). Damit sind auch (A2) und (A3) erfüllt.
Um (A4) zeigen zu zu können, muss das aus den Endkosten F (x) = 21 xT Pf x stammende
Pf > 0 die Lyapunov-Gleichung
AT P A + Q = 0
(6.51)
erfüllen. Dann gilt für alle x ∈ Xf :
[F̃ + l](x, κf (x)) = F (f (x, κf (x))) − F (x) + l(x, κf (x))
1
1
1
f (x, κf (x))T Pf (x, κf (x)) − xT Pf x + (kxk2Q + kκf (x)k2R )
=
2
2
2
1
1
1
=
(Ax + BKf x)T Pf (Ax + BKf x) − xT Pf x + (kxk2Q + kKf xk2R )
2
2
2
1 T
1
1 T T
x A Pf Ax − x Pf x + kxk2Q
=
2
2
2
1 T
1 T
1 T
= − x Qx − x Pf x + x Qx
2
2
2
1 T
= − x Pf x
2
= −F (x) ≤ 0
(6.52)
Somit ist also gezeigt, dass die oben getroffene Wahl hinreichend ist, um das beschränkte stabile lineare System exponentiell zu stabilisieren.
100 Kapitel 6: Stabilität und Inverse Optimalität
6.3.3
Menge der Endbedingungen
In diesem MPC-Verfahren verwendet man die Bedingung
x(N) ∈ Xf ⊂ Rn
(6.53)
an die Endpunkte. Dabei ist eine Umgebung des Ursprungs ist in Xf enthalten. Außerdem
gibt es hier keine Endkosten, d.h. F (x) ≡ 0.
κf und Xf werden so gewählt, dass (A1)-(A3) erfüllt sind.
Da F (·) = 0 ist kann die Bedingung (A4) nur erfüllt werden, wenn l(x, κf (x)) = 0 für alle
x ∈ Xf . Man wählt daher
l(x, u) := α(x)l(x, u)
(6.54)
mit
l(x, u) ≥ c(k(x, u)k)
2
und α(x) :=
0
1
falls x ∈ Xf
falls x ∈ Xfc
(6.55)
Mit dieser Wahl sind die Bedingungen (A1) - (A4) erfüllt und somit kann auch dieses System
stabilisiert werden.
6.3.4
Endkostenfunktion und Endbedingungen
Hier sind sowohl Xf ⊂ X als auch F (·) 6= 0. Man versucht
F (·) = V∞0 (·)
⇒
VN0 = V∞0
(6.56)
zu wählen, damit man die Vorteile (wie Stabilität und Robustheit) des unendlichen Zeithorizonts ausnutzen kann und eine Online–Optimierung überflüssig wird.
Diese Wahl ist in einer Umgebung der 0 möglich, sodass Xf als Untermenge dieser Umgebung gewählt werden kann.
(a) Lineare beschränkte Syteme
Im linear beschränkten System wählen wir
1
F (·) = Vub0 (x) = xT Pf x.
2
(6.57)
Xf ist die Menge der zulässigen Endzustände für
x+ = Af x,
Af := A + Bκf .
(6.58)
Mit κf (x) = Kf (x) und l(x, u) = 12 (kxk2Q + kxk2R ), Q > 0, R > 0 gelten (A1)-(A4) und
das closed loop System ist somit exponentiell stabil.
6.3 Stabilität durch Modifikation der Problemstellung
101
(b) Nichtlineare Syteme
Hier versuchen wir das nichtlineare Problem durch Linearisierung auf das lineare Problem zurückführen.
Sei dazu κf (x) = Kf x eine lokal stabilisierende Kontrollfunktion und sei xT Pf x eine
Lyapunov-Funktion für das linearisierte Problem x+ = Ax + Bκf (x). Außerdem sei Xf
eine hinreichend kleine Niveaumenge von xT Pf x, die (A1) - (A2) erfüllt.
Dann ist xT Pf x eine Lyapunov-Funktion mit dem Attraktor Xf für das nichtlineare
System x+ = f (x, κf (x)) und F (x) = axT Pf x mit a > 0 erfüllt die Bedingungen (A3)
- (A4)
ˆ Nichtlineare unbeschränkte Syteme
Zusammenfassend reicht es also, dass F (·) eine Kontroll-Lyapunov-Funktion in
einer Umgebung des Ursprungs ist.
Dann werden mit Xf = {x | F (x) ≤ r} (A1)-(A4) erfüllt.
Außerdem kann für den unbeschränkten Fall gezeigt werden, dass für alle s > 0
ein Horizont Ns existiert, sodass x0 (Ns ; x) ∈ Xf liegt für alle Startzustände x ∈
0
Γ∞
s := {x̂ | V∞ (x̂) ≤ s}.
ˆ Nichtlineare beschränkte Syteme
Im beschränkten Fall ist F (x) = 12 xT P x eine Kontroll-Lyapunov-Funktion des
linearisierten Systems x+ = Ax + Bκf (x) und erfüllt die Gleichung
F (Ax + Bκf (x)) − F (x) + l(x, κf (x)) = 0
(6.59)
mit Gleichheit, wobei gilt:
l(x, u) = βl(x, u), β ∈ (1, ∞)
1
(kxk2R + kuk2Q ), R > 0, Q > 0
l(x, u) =
2
6.4
(6.60)
(6.61)
Inverse Optimalität
Inverse Optimalität bedeutet, dass das Zielfunktional VN mit endlichem Horizont einem
Zielfunktional eines modifizierten Problems mit unendlichem Horizont entspricht. Dadurch
treffen die Eigenschaften der optimalen Steuerung mit unendlichem Horizont, Stabilität und
Robustheit auch hier zu, falls eine Monotonie-Eigenschaft der Wertefunktion vorliegt. Dieser
Abschnitt orientiert sich dabei an der Arbeit von D. Nešić und L. Grüne [54] sowie der Arbeit
von J. Pannek [56].
Satz 6.4. Gelten die oben aufgeführten Bedingungen (A1)-(A4), dann existiert eine Menge
XN ⊂ Rn und eine Funktion Φ : Rn × U → R mit
Φ(x, u) ≥ l(x, u) ∀x ∈ XN , u ∈ U,
102 Kapitel 6: Stabilität und Inverse Optimalität
so dass für alle x ∈ XN die Steuerung u = κN (x) = u0 (0; x) das Zielfunktional
Υ∞ (x, u) :=
∞
X
Φ(xi , ui )
(6.62)
i=0
minimiert.
Beweis:
VN0 (x) = l(x, κN (x)) + VN0 −1 (f (x, κN (x))) =
= VN0 (f (x, κN (x))) + l(x, κN (x)) +
+ VN0 −1 (f (x, κN (x))) − VN0 (f (x, κN (x))) =
= VN0 (f (x, κN (x))) + Φ(x, κN (x)).
mit
Φ(x, κN (x)) := l(x, κN (x)) + VN0 −1 (f (x, κN (x))) − VN0 (f (x, κN (x)))
Da die Monotonität von Vi0 gilt, ist Φ(x, κN (x)) ≥ l(x, κN (x))
Das MPC-Kontrollgesetz κN (·) ist also auch optimal für das modifizierte Problem.
Die modellprädiktive Steuerung von unbeschränkten Systemen mit endlichem Zeithorizont
ist somit äquivalent zu einem optimalen Kontrollproblem mit unendlichem Zeithorizont,
jedoch mit modifiziertem Zielfunktional.
Kapitel 7
NMPC mit Hilfe von Beobachtern
7.1
Überblick
Generell basiert die modellprädiktive Regelung auf der Kenntnis des kompletten Zustandes. Dieser ist in der Praxis aber im Allgemeinen nicht vollständig bekannt. Aus messtechnischen oder aus Kostengründen stehen oft nur gewisse von x(k) abhängige Werte
y(k) = g(x(k), u(k)) zur Verfügung. In diesem Fall wird ein Beobachter verwendet. Ziel
ist es hierbei, mit Hilfe von Input und Output den Zustand x(k) zu rekonstruieren.
Im Folgenden wird ein nichtlineares System betrachtet, das durch eine Koordinatentransformation in eine spezielle Form gebracht wird, bei der der Beobachter mit linearen Techniken
konstruiert werden kann und dabei dasselbe Input-/Outputverhalten hat. Dafür ist es allerdings notwendig, zukünftige Inputwerte vorherzusagen, die das System akausal machen. Mittels der modellprädiktiven Regelung werden zukünftige Inputwerte vorhergesagt, die dann
dem Beobachter zur Verfügung stehen. Der Beobachter erzeugt daraufhin einen Schätzwert
für den Zustand, mit dem der Regler einen Inputwert berechnen kann.
Dieser Abschnitt orientiert sich dabei an den Arbeiten von L. Grüne [32], von B. Roset und
H. Nijemeijer [60] und von G. Besancon and E. Busvelle [8].
Bemerkung 7.1. Um Aussagen über die Stabilität eines nichtlinearen beobachterbasierten
Modells zu treffen, bedarf es hohen Aufwands und Resultate sind bis heute nicht bewiesen.
Vereinfacht nehmen wir hier an, dass, wenn der Schätzfehler ab einem gewissen Zeitschritt
gegen 0 konvergiert, die Stabilität garantiert werden kann.
Im Folgenden betrachten wir das System:
ẋ(t) = f (x(t), u(t))
(7.1)
y(t) = h(x(t), u(t))
(7.2)
mit f (0, 0) = 0, h(0, 0) = 0 und f , h sind stetig differenzierbar in Dx × Du ⊂ Rn × Rp .
103
104 Kapitel 7: NMPC mit Hilfe von Beobachtern
7.2
Beobachtbarkeit
Definition 7.2 (Beobachtbarkeit).
Zwei Zustände x1 6= x2 heißen unterscheidbar, wenn für alle u ∈ U und k ≥ 0 gilt:
h(x1 (k), u(k)) 6= h(x2 (k), u(k))
(7.3)
Das System (7.1) heißt beobachtbar, falls alle Zustände x1 und x2 unterscheidbar sind mit
x1 6= x2 .
Beispiel 7.3. Das System
ẋ(k) = u(k)
(7.4)
y(k) = sin(x(k))
(7.5)
ist offensichtlich nicht beobachtbar, da die Zustände x1 und x1 + 2pπ, p ∈ Z\{0} nicht unterscheidbar sind.
Im obigen Beispiel sind jedoch alle Zustände im Intervall [−π/2, π/2] unterscheidbar. Daher
begnügen wir uns mit einer lokaleren Aussage:
Definition 7.4 (Schwache Beobachtbarkeit).
Das System (7.1) heißt schwach beobachtbar, falls für alle x eine Umgebung U von x existiert,
so dass alle Zustände y ∈ U unterscheidbar sind.
7.3
Feedback–Kontrolle und Beobachter
Wir betrachten das kontinuierliche System (7.1) und möchten eine Feedback-Kontrolle
u(t) = γ(x(t), z(t))
(7.6)
konstruieren, so dass der Ursprung x = 0, z = 0 ein Gleichgewicht des rückgekoppelten
Systems
ẋ(t) = f (x(t), γ(x(t), z(t)))
(7.7)
ist. Das dynamische Ausgangsfeedback z(t) ergibt sich zu:
ż = g(x, z)
(7.8)
Findet man ein stabilisierendes Feedback, so muss im nichtlinearen Fall im Gegensatz zum
linearen Fall der Ursprung nicht notwendigerweise asymptotisch stabil sein. Ein einfacher
Weg um Stabilität zu erreichen, ist daher die Linearisierung des Problems.
105
7.3 Feedback–Kontrolle und Beobachter
7.3.1
Linearisierung
Die Linearisierung des Systems (7.1) im Ursprung führt auf folgenden linearen Ausdruck:
ẋ(t) = Ax(t) + Bu(t)
y(t) = Cx(t)
(7.9)
(7.10)
mit
A=
∂f
∂f
(x(t), u(t))|x(t)=0,u(t)=0 , B = ∂u
(x(t), u(t))|x(t)=0,u(t)=0 ,
∂x
∂h
C = ∂x (x(t))|x(t)=0
Nun konstruiert man eine Matrix K so, dass die Eigenwerte der Matrix A+BK alle negativen
Realteil besitzen, also das Hurwitz–Kriterium erfüllen. Wendet man jetzt die FeedbackKontrolle u(t) = Kx(t) auf dieses System an, so ergibt sich
ẋ(t) = f (x(t), Kx(t)).
(7.11)
Offensichtlich ist der Ursprung ein Gleichgewicht und die Linearisierung um x = 0 führt zu:
∂f
∂f
ẋ(t) =
(x(t), Kx(t)) +
(x(t), Kx(t))
x(t) = (A + BK)x(t)
(7.12)
∂x
∂u
x=0
Falls die Matrix A + BK das Hurwitz-Kriterium erfüllt, ist der Ursprung exponentiell stabil.
Im Falle eines dynamischen Ausgangsfeedbacks stabilisieren wir das System mittels
u(t) = K x̂(t)
˙
x̂(t)
= Ax̂(t) + Bu(t) + H(C x̂(t) − y(t))
(7.13)
(7.14)
und konstruieren die Matrix H derart, dass A + HC das Hurwitz-Kriterium erfüllt. Dabei
wird die Beobachtbarkeit des Systems vorausgesetzt. Man beachte, dass nur lokale Stabilität
erreicht wird.
Beispiel 7.5. Betrachte die Pendelgleichung
θ̈ = −a sin θ − bθ̇ + cT
(7.15)
k
≥ 0, c = ml1 2 > 0, wobei θ der Winkel des Pendels und T der Antrieb
mit a = gl > 0, b = m
ist. Wir wollen für das Pendel den Winkel θ = δ einstellen:
x1 = θ − δ,
x2 = θ̇
(7.16)
Das System ergibt sich zu:
ẋ1 = x2
(7.17)
ẋ2 = −a sin(x1 + δ) − bx2 + cT
(7.18)
106 Kapitel 7: NMPC mit Hilfe von Beobachtern
Damit das System im Gleichgewicht bleibt, muss der Motor eine Dauerleistung Tss aufbringen, für die gilt:
0 = −a sin δ + cTss
(7.19)
Wir definieren u = T − Tss und erhalten:
ẋ1 = x2
(7.20)
ẋ2 = −a[sin(x1 + δ) − sin δ] − bx2 + cu
(7.21)
Mittels der Linearisierung (7.9) um f (0, 0) = 0 erhält man A und B in der folgenden Gestalt:
0
0
1
0
1
(7.22)
, B=
=
A=
c
−a cos(δ) −b
−a cos(x1 + δ) −b x =0
1
K = [k1 k2 ] wird nun so gewählt, dass A + BK das Hurwitz-Kriterium erfüllt:
k1 <
a cos δ
,
c
b
c
k2 <
(7.23)
Für die Kontrolle des Antriebs ergibt sich:
T =
a sin δ
a sin δ
+ Kx =
+ k1 (θ − δ) + k2 θ̇
c
c
(7.24)
Für das Ausgansfeedback betrachten wir wieder
ẋ(t) = f (x(t), u(t))
(7.25)
y(t) = h(x(t))
(7.26)
mit f (0, 0) = 0 und h(0) = 0, wobei beide Funktionen stetig differenzierbar seien. Nun wollen
wir das System stabilisieren. Wir konstruieren nun das lineare Ausgangsfeedback
so dass die Matrix
ż(t) = F z(t) + Gy(t)
(7.27)
u(t) = Lz(t) + My(t),
(7.28)
A + BMC BL
GC
F
(7.29)
das Hurwitz-Kriterium erfüllt. Im Falle der beobachterbasierten Regelung gilt:
F = A + BK + HX,
G = −H,
L = K,
M =C
(7.30)
und A + BK und A + HC erfüllen das Hurwitz-Kriterium. Wendet man nun (7.27) auf das
nichtlineare System (7.25) an, so erhält man:
ẋ(t) = f (x(t), Lz(t) + Mh(x(t)))
ż(t) = F z(t) + Gh(x(t))
(7.31)
Man kann nachprüfen, dass der Ursprung ein Gleichgewicht ist und Linearisierung im Ursprung auf die Matrix (7.29) führt.
107
7.3 Feedback–Kontrolle und Beobachter
Beispiel 7.6. Wir betrachten erneut die Pendelgleichung, bei der jetzt nur noch der Winkel
θ, aber nicht mehr die Winkelgeschwindigkeit θ̇ gemessen wird. Für den Ausgang gilt
y = x1 = θ − δ.
(7.32)
x̂˙ = Ax̂ + Bu + H(x̂1 − y)
(7.33)
Der Beobachter hat folgende Form:
H = [h1 h2 ] wird nun so gewählt, dass A + HC das Hurwitz-Kriterium erfüllt:
− h1 + b > 0,
Der Antrieb ist gegeben durch:
T =
7.3.2
−h1 b + h2 + a cos δ > 0
(7.34)
a sin δ
+ K x̂
c
(7.35)
Regelung mittels Integral-Kontrolle
Während wir im vorherigen Abschnitt das System in den Ursprung stabilisiert haben, möchten
wir nun, dass das System einer konstanten Referenztrajektorie yr folgt. Wir betrachten wieder die Gleichung (7.25). Wir wollen also ein Feedback konstruieren, so dass gilt:
y(t) → yr für t → ∞
(7.36)
Damit das System in diesem Gleichgewicht y(t) = yr bleibt, muss ein Paar (xss , uss ) existieren, so dass gilt
0 = f (xss , uss)
(7.37)
0 = h(xss ) − yr
(7.38)
Im nächsten Schritt integrieren wir den Tracking–Fehler e(t) = y(t) − yr :
σ̇(t) = e(t)
(7.39)
ẋ(t) = f (x(t), u(t))
(7.40)
σ̇(t) = h(x(t)) − yr
(7.41)
und vergrößern damit das System
Die Kontrolle u(t) wird nun so konstruiert, dass der Punkt (x̄(t), σ̄(t)) mit x̄(t) = xss ein
Gleichgewicht darstellt. Die Linearisierung in den Punkten x(t) = xss , σ(t) = σ̄ und u(t) =
uss führt zu:
B
A
0
˙ =
v(t) = Aξ(t) + Bv(t)
(7.42)
ξ(t) +
ξ(t)
0
C 0
mit
ξ(t) =
x(t) − xss (t)
σ(t) − σ̄(t)
,
v(t) = u(t) − uss (t)
(7.43)
108 Kapitel 7: NMPC mit Hilfe von Beobachtern
und
A=
∂f
∂f
(x(t), u(t))|x(t)=xss ,u(t)=uss , B = ∂u
(x(t), u(t))|x(t)=xss ,u(t)=uss ,
∂x
∂h
C = ∂x (x(t))|x(t)=xss .
A B
= n + p ist, dann ist (A, B) kontrollierbar. Nun wird
Falls der Rang der Matrix
C 0
die Matrix K = [K1 K2 ] so konstruiert, dass A + BK das Hurwitz-Kriterium erfüllt. Die
Kontrolle wird wie folgt gewählt:
u(t) = K1 (x(t) − xss ) + K2 (σ(t) − σ̄(t)) + uss
(7.44)
u(t) = K1 x(t) + K2 σ(t)
(7.45)
Wählt man σ̄(t) = K2−1 (uss − K1 xss ) = σss , dann vereinfacht sich die Kontrolle zu
Das neue System kann dann geschrieben werden als
ẋ(t) = f (x(t), K1 x(t) + K2 σ(t))
σ̇(t) = h(x(t)) − yr
(7.46)
Falls (xss , uss ) die Bedingung (7.37) erfüllt, ist der Punkt ein Gleichgewicht. Linearisierung
in diesem Punkt führt zu
˙
ξ(t)
= Ac ξ(t)
∂f ∂f
+ ∂u K1
∂x
Ac =
∂h
∂x
(7.47)
∂f
K
∂u 2
0
x(t)=xss ,σ(t)=σss
= A + BK
(7.48)
Die Feedback-Regelung hat ein asymptotisch stabiles Gleichgewicht erzeugt, ab dem alle
Werte konstant sein müssen. Damit σ̄(t) = e(t) konstant ist, muss der Fehler e(t) gleich 0
im Gleichgewicht sein.
Diese Methode lässt sich auf die beobachterbasierte Regelung erweitern, wenn wir statt x nur
den Output y messen können. Wir konstruieren wiederum eine Matrix H, so dass A + HC
das Hurwitz-Kriterium erfüllt:
7.3.3
u(t) = K1 x̂(t) + K2 σ(t)
(7.49)
σ̇(t) = e(t) = y(t) − yr (t)
˙
x̂(t)
= Ax̂(t) + Bu(t) + H(C x̂(t) − y(t))
(7.50)
(7.51)
Gain Scheduling
Im Folgenden wird die Linearisierung auf einen Bereich von Arbeitspunkten ausgeweitet.
Dabei wird das System um mehrere Gleichgewichte linearisiert und eine lineare FeedbackKontrolle in jedem Punkt konstruiert. Wir betrachten erneut das System (7.25) und parametrisieren den Bereich der Arbeitspunkte mit der Variable α. Unter der Annahme, dass es
zwei stetig differenzierbare Funktionen X (α) und U(α) gibt, gilt
0 = f (X (α), U(α))
0 = h(X (α)) − α
(7.52)
(7.53)
109
7.4 Modellprädiktive Regelung
Diese Bedingung garantiert die Existenz eines Gleichgewichts. Linearisierung in den Punkten
x(t) = X (α) und u(t) = U(α) führt zu:
ẋδ = A(α)xδ + B(α)uδ
(7.54)
yδ = C(α)xδ
(7.55)
mit
A(α) =
∂f
∂f
(x(t), u(t))|x(t)=X (α),u(t)=U (α) , B(α) = ∂u
(x(t), u(t))|x(t)=X (α),u(t)=U (α) ,
∂x
∂h
C(α) = ∂x (x(t), u(t))|x(t)=X (α)
xδ = x(t) − X (α),
uδ = U(α)
(7.56)
Im Hinblick darauf, dass wir wieder die Integral-Kontrolle benutzen möchten, definieren wir
die beiden Matrizen
B(α)
A(α) 0
(7.57)
, B(α) =
A(α) =
0
C(α) 0
Wir nehmen an, dass die Paare (A(α), B(α)) und (A(α), C(α)) kontrollierbar und beobachtbar für alle α sind. Nun können wir die Matrizen K(α) und H(α) so konstruieren,
dass A(α) + B(α)K(α) und A(α) + H(α)C(α) das Hurwitz-Kriterium erfüllen, und das
unabhängig von α. Die Matrix K partitionieren wir wieder gemäß der Vorgehensweise der
Integral-Kontrolle in K = [K1 K2 ] und betrachten nun den beobachterbasierten Regler:
u(t) = K1 (v)x̂(t) + K2 (v)σ(t)
σ̇(t) = e(t)
˙
x̂(t)
= A(v)x̂(t) + B(v)u(t) + H(v)[C(v)x̂(t) − v(t)]
Wendet man diesen Regler auf das nichtlineare System (7.25) an, so ergibt sich:
ẋ(t) = f (x(t), K1 (v)x̂(t) + K2 (v)σ(t))
σ̇(t) = h(x(t)) − yr
˙
x̂(t)
= [A(v) + B(v)K1 (v) + H(v)C(v)]x̂(t) + B(v)K2 (v)σ(t) − H(v)h(x(t))
Wenn nun v = α = const gilt, dann hat dieses System ein Gleichgewicht im Punkt (σ̄(α), x̄(α))
mit
σ̄(α) = K2−1 (α)[U(α) − K1 (α)x̄(α)]
x̄(α) = −[A(α) + H(α)C(α)]−1[B(α)U(α) − H(α)α]
7.4
Modellprädiktive Regelung
Um zukünftige Inputwerte über einen Zeithorizont p vorherzusagen, bedarf es eines modellprädiktiven Reglers, der anschließend die berechneten Werte dem Beobachter übergibt. Wie
bereits bekannt gilt es dabei ein optimales Steuerungsproblem zu lösen:
min
ū(k),...,ū(k+p)
J(x(k), ū(l), p),
l ∈ [k, . . . , k + p]
(7.58)
110 Kapitel 7: NMPC mit Hilfe von Beobachtern
mit
J(x(k), ū(l), p) =
k+p
X
F (ȳ(l + 1), ū(l))
(7.59)
l=k
wobei ȳ(l) und ū(l) jeweils die l-ten zum Zeitpunkt k vorhergesagten Output- bzw. Inputwerte sind und eventuellen Randbedingungen unterliegen.
Wegen Störungen, Modellungenauigkeiten und weil das Optimierungsproblem in der Regel
nicht optimal gelöst werden kann, wird zu jedem Zeitschritt k das Problem mit den gerade
berechneten Werten erneut gelöst. Für das Funktional F wird meist folgende quadratische
Form verwendet:
F (ȳ(l + 1), ū(l)) = Q(ȳ(l + 1) − yr (k + 1))2 + R(ū(l) − ur (k))2
(7.60)
wobei Q und R Gewichtsparameter um das Kostenfunktional zu minimieren und yr und ur
die Referenztrajektorien der Output- bzw. Inputwerte darstellen.
7.5
Beobachter Design in der ENOCF
Wir betrachten das folgende zeitdiskrete Single–Input Single–Output (SISO) System:
x(k + 1) = f (x(k), u(k))
(7.61)
y(k) = g(x(k), u(k))
(7.62)
mit der Zustandsvariable x(k) ∈ Rn mit x(k = 0) = x0 , Input u(k) ∈ R und Output
y(k) ∈ R.
Definition 7.7 (Extended Nonlinear Observer Canonical Form).
Die Extended Non-linear Observer Canonical Form (ENOCF) wird durch


0 ... 0 0
 1 ... 0 0 


z(k + 1) =  .. . . .. ..  z(k)
 .
. . . 
|
0 ... 1 0
{z
}
Az
+fz ([y(k − n + 1), . . . , y(k)], [u(k − n + 1), . . . , u(k + n)]), (7.63)
y(k) = hz (zn (k), [u(k − n + 1), . . . , u(k)]),
zn (k) = Cz z(k), z(k = 0) = z0 und k ∈ N0 ,
(7.64)
(7.65)
mit dem Zustand z(k) ∈ Rn , dem Input u(k) ∈ R, dem Output y(k) ∈ R, Cz = [ 0 . . . 0 1]
definiert.
Man beachte, dass der Zustand z(k) nur lineare Anteile besitzt, während sich die nichtlinearen Anteile in der Funktion fz befinden, die nur von Input und Output abhängt.
111
7.5 Beobachter Design in der ENOCF
Der Beobachter besitzt dann die folgende Struktur:
ẑ(k + 1) = Az ẑ(k) + fz ([y(k − n + 1), . . . , y(k)], [u(k), . . . , u(k + n)])
+L (h−1
(y(k), [u(k − n + 1), . . . , u(k)]) −ẑn (k))
{z
}
| z
(7.66)
zn (k)
ŷ(k) = hz (ẑn (k), [u(k − n + 1, . . . , u(k)])
(7.67)
wobei LT = [ l0 l1 . . . ln−1 ] als Beobachter Innovation Gain bezeichnet wird und h−1
z die
Inverse zu hz darstellt, die y nach zn abbildet.
Der Fehler des Beobachters ergibt sich als Differenz des geschätzten Zustandes ẑ und dem
wahren Zustand z, sprich
ez (k) = ẑ(k) − z(k).
(7.68)
Indem man nun den Beobachterfehler ableitet, verschwindet die nichtlineare Funktion fz ,
was zu folgender Differentialgleichung des Fehlers führt:



ez (k + 1) = 

0 . . . 0 −l0
1 . . . 0 −l1
.. . . ..
..
. .
.
.
0 . . . 1 −ln−1



 ez (k)

(7.69)
Falls das System (7.61) lokal beobachtbar ist, lässt sich mit Hilfe einer Koordinatentransformation Ψ der Vektor s(k) erzeugen. Dabei iteriert man das System (7.61) und setzt die
gewonnenen Ausdrücke in die Gleichung für den Output ein:



=

Ψ(x(k), [u(k), . . . , u(k + n − 1)]) := s(k) =
 
g(f 0 (x(k)), u(k))
 
g(f 1 (x(k), (u(k)), u(k + 1))
 
=
..
 
.
g(f n−1 (x(k), [u(k), . . . , u(k + n − 2)]), u(k + n − 1))
y(k)
y(k + 1)
..
.
y(k + n − 1)



(7.70)

mit f i (x(k)), [u(k), . . . , u(k + i − 1)]) = f(f(. . . f(x(k), u(k)), u(k + 1)), . . .), u(k + i − 1)).
Das System (7.61) ist genau dann lokal beobachtbar, falls die folgende Bedingung erfüllt ist:
∂Ψ(x(k), [u(k), . . . , u(k + n − 1)])
=n
rg
∂x
für alle [u(k), . . . , u(k + n − 1)] ∈ U.
Bemerkung 7.8. Im linearen Fall mit
x(k + 1) = Ax(k) + Bu(k)
y(k) = Cx(k)
(7.71)
112 Kapitel 7: NMPC mit Hilfe von Beobachtern
erhalten wir die aus der Kontrolltheorie I [32] bekannte Bedingung für die Beobachtbarkeit,
da sich für die Ableitung der Funktion Ψ die folgende Form ergibt:


C

∂Ψ(x, u) 
 CA 
(7.72)
=

..


∂x
.
CAn−1
Die Differentialgleichung für den Zustand s ist von der Form:
 

s2 (k)
y(k + 1)
 

..
..
 

.
.
s(k + 1) = 
=
 y(k + n − 1)  
sn (k)
fs (s(k), [u(k), . . . , u(k + n)])
y(k + n)
y(k) = s1 (k)





(7.73)
(7.74)
mit
fs (s(k), [u(k), . . . , u(k + n)]) = hz (f n (x(k), [u(k), . . . , u(k + n − 1)]), u(k + n)).
(7.75)
Eine weitere Koordinatentransformation Z bildet s auf z ab:
z(k) = Z(s(k), [y(k − n + 1), . . . , y(k)], [u(k − n + 1), . . . , u(k + n − 1)])
(7.76)
Wenn man Gleichung (7.63) betrachtet und in der Inversen der Outputfunktion y(k) durch
s1 (k) ersetzt, erhält man schließlich den Zustand z(k):
zn (k) = h−1
z (s1 (k), [u(k − n + 1), . . . , u(k)])
(7.77)
Aus der letzten Komponente von System (7.63) folgt:
zn−1 (k) = zn (k + 1) − fz,n−1 ([y(k − n + 1), . . . , y(k)], [u(k − n + 1), . . . , u(k + 1)]), (7.78)
bei der wiederum zn (k +1) durch h−1
z (y(k +1)) und y(k +µ) durch sµ+1 (k), µ = 0, 1, . . . , n−1
ersetzt werden kann. Fährt man in dieser Weise fort und bedenkt, dass die Funktionen h−1
z
und fz von vergangenen und zukünftigen Inputwerten abhängen, erhält man die restlichen
Komponenten zi (k):
zn (k) = h−1
z (s1 (k))
(7.79)
zn−1 (k) = h−1
z (s2 (k)) − fz,n−1 (y(k − n + 1), . . . , y(k − 1), s1 (k))
zn−2 (k) = zn−1 (k + 1) − fz,n−2(y(k − n + 2), . . . , y(k))
= h−1
z (s3 (k)) − fz,n−1 (y(k − n + 1), . . . , y(k − 1), s1 (k), s2 (k))
..
.
−fz,n−2 (y(k − n + 2, . . . , y(k − 1), s1 (k))
z1 (k) = z2 (k + 1) − fz,1 (y(k − 1), . . . , y(k))
n−1
X
−1
fz,µ (y(k − 1), s1 (k), . . . , sµ (k))
= hz (sn (k) −
µ=1
(7.80)
(7.81)
(7.82)
(7.83)
(7.84)
113
7.6 Einbettung des Beobachters in MPC
Die Komposition der beiden Koordinatentransformationen bezeichnen wir mit Ξ und diese
erhalten wir dadurch, dass wir (7.70) in (7.79) eingesetzen:
z(k) = Ξ(x(k), [y(k − n + 1), . . . , y(k)], [u(k − n + 1), . . . , u(k + n − 1)])
(7.85)
Die Funktionen fz und hz sind frei wählbar, solange hz invertierbar ist und beide die folgende
Bedingung erfüllen:
h−1
z (fs (s(k), [u(k), . . . , u(k + n)]), [u(k + 1), . . . , u(k + n)]) =
Pn−1
= µ=0
fz,µ (s1 (k), s2 (k), . . . , sµ+1 (k), [u(k), . . . , u(k + n)])
mit
fs (s(k), [u(k), . . . , u(k + n)]) = g(f n (x(k), [u(k), . . . , u(k + n − 1)]), u(k + n))
7.6
(7.86)
(7.87)
Einbettung des Beobachters in MPC
Wie bereits erwähnt ist es in der Regel nötig, für den Schätzwert des Zustandes zukünftige
Inputwerte zu kennen. Diese werden von einem modellprädiktiven Regler erzeugt, der dabei gleichzeitig den Prozess regelt. Für die Funktionen fz und hz eignen sich die folgenden
einfachen Formen:


0

..



.


(7.88)
fz = 

0


 fz,n−1 ([y(k − n + 1), . . . , y(k)], 
[u(k − n + 1), . . . , u(k + 1)])
hz (zn (k), [u(k − n + 1), . . . , u(k)]) = zn (k)
(7.89)
Diese Wahl führt auf den folgenden Ausdruck für den Beobachter in ENOCF:




ẑ(k + 1) = Az ẑ(k) + 


0
..
.
0
fz,n−1([y(k − n + 1), . . . , y(k)],
[u(k − n + 1), . . . , u(k + 1)] , ū(k + 1))




 + L(y(k) − ẑn (k)) (7.90)


Der Beobachterfehler ergibt sich nun aus Gleichung (7.68) und dem zusätzlichen Term ∆fz ,
der den Fehler zwischen dem prädizierten Input ū(k + 1) und dem wahren Input u(k + 1)
berücksichtigt:
ez (k + 1) = (Az − LCz )ez (k) + ∆fz
(7.91)
114 Kapitel 7: NMPC mit Hilfe von Beobachtern
mit




∆fz = 


0
..
.


 
 
 
−
 
 
0
..
.




.


0
fz,n−1([y(k − n + 1), . . . , y(k)] ,
[u(k − n + 1), . . . , u(k)] , u(k + 1))
(7.92)
Um nun das Optimierungsproblem zu lösen, werden ū(k + 1) und u(k + 1) wie folgt angenommen:
0
fz,n−1([y(k − n + 1), . . . , y(k)],
[u(k − n + 1), . . . , u(k)] , ū(k + 1))
u(k) = Ku (x̂(k), Q, R, m, p)
(7.93)
ū(k + 1) = Ku (x̂(k), Q, R, m, p)
(7.94)
Unter der Annahme, dass yr = ur = 0 und xr = 0 ein Gleichgewicht darstellen, können wir
den den aktuellen Inputwert um einen Zeitschritt shiften und erhalten:
u(k + 1) = Ku (x̂(k + 1), Q, R, m, p)
(7.95)
Mit den beiden Ausdrücken für ū(k + 1) und u(k + 1), eingesezt in ∆fz , erhalten wir für
(7.91):
ez (k + 1) = (A + LCz )ez (k) + ∆fz [y(k − n + 1), . . . , y(k)] ,
[u(k − n + 1), . . . , u(k)] , u(k + 1), ū(k + 1)
(7.96)
= (A + LCz )ez (k) + ∆fz x̂(k), x̂(k + 1), Q, R, m, p,
[y(k − n + 1), . . . , y(k)] , [u(k − n + 1), . . . , u(k)]
(7.97)
Durch Anwendung der Inversen der Koordinatentransformation Ξ erhalten wir aus ẑ(k) den
gewünschten Zustand x̂(k):
x̂(k) = Ξ−1 (ẑ(k), [y(k − n + 1), . . . , y(k − 1)],
[u(k − n + 1, . . . , u(k − 1)], [ū(k), . . . , ū(k + n − 1)])
(7.98)
Diese (akausale) Transformation ist allerdings abhängig von zukünftigen Inputwerten, welche
durch den modellprädiktiven Regler berechnet werden können, also wiederum von x̂(k) und
Systemparametern abhängen. Damit lässt sich nun ein kausaler Zusammenhang zwischen
x̂(k) und ẑ(k) herstellen:
x̂(k) = Ξ−1
c (ẑ(k), Q, R, m, p, [y(k − n + 1, . . . , y(k − 1)], [u(k − n + 1), . . . , u(k − 1)]) (7.99)
Shiftet man nun diese Gleichung um einen Zeitschritt weiter und setzt den Ausdruck für den
Beobachter in der ENOCF darin ein, ergibt sich die kausale Gleichung für den Zustand:
x̂(k + 1) = Lx (x̂(k), L, [y(k − n + 1), . . . , y(k)], [u(k − n + 1), . . . , u(k)])
(7.100)
Man beachte, dass sich der Beobachter nicht ohne die Systemparameter aus der MPC konstruieren lässt.
115
7.7 Beispiel
7.7
Beispiel
Um die Ernte vor Insektenlarven zu schützen, werden natürliche Feinde der Insekten für
deren Verminderung eingesetzt. Das folgende Modell beschreibt die Beziehung zwischen den
Insektenlarven x1 und den Feinden x2 :
x1 (k)
x1 (k + 1) = x1 (k) exp r 1 −
− x2 (k) + d
(7.101)
K
x2 (k + 1) = x1 (k)(1 − exp(−x2 (k))) + u(k)
(7.102)
d bezeichnet einen externen Zufluss der Insekten und u die Zugabe an Feinden. K und r
sind Systemparameter. Für den Output gilt:
y(k) = w1 x1 (k),
(7.103)
wobei w1 den Schaden an der Ernte pro Insekt bezeichnet. Der Output beschreibt also den
kompletten Schaden in Geld pro Zeit. Die Kosten setzen sich aus Schaden und Aufbringen
von Feinden zusammen:
C(k) = y(k) + w2 u(k),
(7.104)
wobei w2 die Kosten für das Aufbringen der Feinde darstellt.
Die Frage ist nun, wie viele Feinde muss man Aufbringen, damit die Kosten pro Zeit minimal
werden. Die Gewichtungen im Kostenfunktional (7.59) werden zu 1 gesetzt:
k+p
X
(ȳ(l + 1)2 + (w2 ū(l))2 )
(7.105)
l=k
Außerdem gilt natürlich, dass u ≥ 0 und y ≥ 0 sein müssen, und es ergibt sich aus der
Transformationsfunktion Ψ gemäß (7.70):
"
#
w
x
1
1
s(k) = Ψ(x(k), [u(k), u(k + 1)]) =
(7.106)
w1 x1 (k) exp r 1 − x1K(k) − x2 (k) + d
, so erkennt man, dass die BeBildet man die Ableitung der Koordinatentransformation ∂Ψ
∂x
dingung für die Beobachtbarkeit erfüllt ist, solange x1 (k) 6= 0 ∀ k ∈ N0 . Die Inverse der
Koordinatentransformation liefert den Zustand x(k):
x1 (k)
= Ψ−1 (s(k), [u(k), u(k + 1)])
x(k) =
x2 (k)
"
#
s1 (k)/w1 =
(7.107)
2 (k)
r − ((rs1(k))/Kw1 )) − ln −w1sd+s
1 (k)
Anschließend lässt sich das System in der Zustandsvariable s darstellen:
s2 (k)
s(k + 1) =
fs (s(k), [u(k), u(k + 1), u(k + 2)])
y(k) = s1 (k)
(7.108)
(7.109)
116 Kapitel 7: NMPC mit Hilfe von Beobachtern
mit
fs (s(k), [u(k), u(k + 1), u(k + 2)]) =
h
rs1 (k)
rs2 (k) s1 (k) 1 − exp − r +
= s2 (k)w1 exp
r−
k
w1
Kw1
i
−w1 d + s2 (k)
+ ln
+ u(k) + w1 d
s1 (k)
(7.110)
Die Output-Funktion wird wie folgt gewählt:
y(k) = hz (z2 (k), [u(k − 1), u(k)]) = z2 (k) + u(k)
(7.111)
Für die Funktion fz wird die einfache Struktur aus (7.88) benutzt. Die Bedingung (7.86)
liefert einen Ausdruck für die Funktion fz (fz,1) für gegebene hz und fs :
fz,1 (s1 (k), s2 (k), [u(k), u(k + 1), u(k + 2)]) =
= h−1
z (fs (s(k), [u(k), u(k + 1), u(k + 2)]), u(k + 1), u(k + 2)) =
"
rs2 (k) s1 (k)
rs1 (k)
−w1 d + s2 (k)
= s2 (k)w1 exp
r−
1 − exp −r +
+ ln
k
w1
Kw1
s1 (k)
#
+u(k) + w1 d − u(k + 2)
(7.112)
Die Funktionen fz und hz sind nun bekannt und somit lässt sich der Beobachter in der
ENOCF darstellen und die Koordinatentransformation Ξ−1 definieren. Man beachte außerdem, dass die Beobachtbarkeitsbedingung notwendig für die Existenz der Koordinatentransformation ist.
x̂1 (k)
= Ξ−1 (ẑ(k), [u(k − 1), ū(k), ū(k + 1)])
(7.113)
x̂(k) =
x̂2 (k)
Kapitel 8
MPC Toolbox in Matlab
8.1
Einführung
In diesem Abschnitt wird die MPC Toolbox allgemein vorgestellt. Zuerst wird die Einordnung
der Toolbox in die Matlab-Produktfamilie erläutert, im Anschluss werden die speziellen
Fähigkeiten der MPC Toolbox aufgelistet.
8.1.1
Die Rolle der MPC Toolbox in der Matlab-Familie
Das Programmpaket Matlab bietet neben den im Kernprogramm vorhandenen numerischen
Standardalgorithmen eine Reihe von Erweiterungspaketen — sog. Toolboxen — mit numerischen Algorithmen zu speziellen Themenbereichen der Mathematik, Physik und den Ingenieurwissenschaften. Der in allen drei Wissenschaften behandelte weitläufige Bereich der
Kontrolltheorie wird dabei unter anderem durch Simulink, die Control System Toolbox und
die MPC Toolbox abgedeckt. Diese Toolboxen beschäftigen sich mit der Modellbildung, dem
Reglerentwurf und den theoretischen Tests der entwickelten Regelstrecken. Weitere Toolboxen ermöglichen dann den Entwurf von Prototypen des Reglers (z. B. mit Real-Time
Workshop) und bieten Schnittstellen zwischen den realen Kontrollsystemen und den entwickelten Reglern (z. B. die OPC Toolbox, Openess Productivity Collaboration).
Für die Arbeit mit der MPC Toolbox in Matlab spielt die Control System Toolbox eine
fundamentale Rolle. Mit ihr ist die Erstellung von Kontrollsystemen in den verschiedenen
Modellarten möglich. Desweiteren bietet sie Algorithmen zur Transformation zwischen den
verschiedenen Modellen, zu Stabilitätstests der jeweiligen Modelle sowie zu grundlegenden
Problemen der Kontrolltheorie. Da die Control System Toolbox die existentielle Grundlage
der MPC Toolbox bildet, ist Letztere nur in Zusammenhang mit Ersterer zu betreiben.
Im bereits erwähnten Programm Simulink finden sich eine Reihe von Möglichkeiten zur
Modellierung von linearen und nichtlinearen Kontrollsystemen. Die in diesem Programm
erstellten Modelle lassen sich in linearisierter Form ebenfalls in der MPC Toolbox zum Reglerentwurf heranziehen. Umgekehrt könnten die in der MPC Toolbox für lineare Systeme
entwickelten modellprädiktiven Regler für die nichtlinearen Systeme in Simulink verwendet
werden. Desweiteren bietet die System Identification Toolbox die Möglichkeit, durch Tests
117
118 Kapitel 8: MPC Toolbox in Matlab
an realen Systemen approximierte Modelle am PC zu bestimmen, die wiederum sowohl in
Simulink als auch in der MPC Toolbox verwendet werden können.
Zusammenfassend kann man sagen, dass die MPC Toolbox einen mächtigen Baustein in der
Matlab-Familie bildet. Die optimale Zusammenarbeit zwischen den verschiedenen Toolboxen
und dem Kernprogramm sowie die Objektorientierung der entwickelten modellprädiktiven
Regler begründen diese Schlussfolgerung.
8.1.2
Grundlegende Fähigkeiten der MPC Toolbox
Die MPC Toolbox bietet Algorithmen zum Entwurf, zur Analyse und zur Simulation von
modellprädiktiven Reglern. Als Benutzeroberflächen bietet sie zum Einen den sogenannten
Control and Estimation Tools Manager, mit dem man graphisch Regelstrecken und Regler erstellen, analysieren und testen kann. Die Benutzung ist intuitiv und übersichtlich, jedoch ist
diese Benutzerschnittstelle im Leistungsumfang gegenüber der herkömmlichen kommandozeilenorientierten Benutzung eingeschränkt. Eine bessere Modularisierung und Wartbarkeit
der Regler und Kontrollsysteme und die Wiederverwendbarkeit von Teilsystemen und Reglern, sowie die Benutzung von Scriptfiles bietet nur die klassische kommandozeilenorientierte
Benutzeroberfläche. Es stehen alle im Control and Estimation Tools Manager vorhandenen
Funktionen auch durch kommandozeilenorientierte Funktionen zur Verfügung, weswegen diese Arbeit sich nicht näher mit der graphischen Oberfläche beschäftigt. Eine detaillierte Anleitung zur graphischen Oberfläche findet sich in der Bedienungsanleitung zur Version 2 der
MPC Toolbox von A. Bemporad, M. Morari und N.L. Ricker [7, Kapitel 3].
Das Anlegen der Modelle von Kontrollsystemen lässt sich neben der oben beschriebenen
Möglichkeit des Imports aus anderen Matlab-Toolboxen natürlich auch direkt durch Eingabe
der Modelle mittels Kommandozeilenfunktionen bewerkstelligen. Dabei kann die MPC Toolbox MIMO-Systeme (Multi Input, Multi Output, Kontroll- und Ausgangsvariablen können
mehrdimensional sein) mit Beschränkungen in Kontroll- und Ausgangsvariablen verarbeiten.
Grundsätzlich können jedoch nur lineare, zeitinvariante Kontrollsysteme (sog. LTI-Systeme,
linear, time invariant) der Form
x(k + 1) = Ax(k) + Bu(k) + Md(k) + Nw(k)
y(k) = y(k) + z(k)
verarbeitet werden. Dabei bezeichnet x(k) den k-ten Ausgang, u(k) die k-te Kontrollanweisung, d(k) bzw. w(k) die gemessene bzw. ungemessene Störung; y(k) bezeichnet den Ausgang
des Systems, z(k) das Messrauschen und y(k) den gemessenen Ausgang. Die Matrizen A, B,
M und N sind hierbei konstant, also zeitinvariant. Desweiteren müssen die Systeme in diskretisierter Form vorliegen, die Abtastzeit kann jedoch selbst festgelegt werden. Neben dem
Einfluss von bekannten Störungen kann man auch unbekannte Störungen auf das System
einwirken lassen. Dabei kann die Störung konstant, als Sprung, gepulst, als lineare Funktion, sinusförmig oder gaußverteilt gewählt werden. Eine Übersicht über die verschiedenen
Störungsarten gibt Tabelle 8.1.
119
8.2 Beispiel: Leerlauffüllungsregelung
2
6
1
5
1.5
0.8
4
1
z(t)
z(t)
z(t)
0.6
3
0.4
0.5
2
0.2
0
1
0
−0.5
0
0.5
1
1.5
2
2.5
t
3
3.5
4
4.5
−0.2
5
0
0.5
z(t) = a
1
1.5
z(t) =
0.8
2
0.6
1.5
2
(
2.5
t
0
1
3
3.5
4
4.5
0
5
0
0.5
1
1.5
t < t0
t ≥ t0
2
2.5
t
3
3.5
4
4.5
5
z(t) = at + b
1.5
1
0.4
1
0.5
0.2
z(t)
z(t)
z(t)
0
0
0.5
−0.5
−0.2
−1
−0.4
0
−1.5
−0.6
−0.8
−2
0
0.5
1
1.5
2
2.5
t
3
3.5
z(t) = a sin(bt + t0 )
4
4.5
5
−2.5
0
0.5
1
1.5
2
2.5
t
3
3.5
z(t) = an ,
t ∈ [nts , (n + 1)ts [,
(an ) ∼ N (0, 1)
4
4.5
5
−0.5
0
z(t) =
0.5
(
1
a
b
1.5
2
2.5
t
3
3.5
4
4.5
5
t ∈ [nts , (n + 1)ts
t ∈ [(n + 1)ts , (n + 2)ts [
n := 2i
Tabelle 8.1: Übersicht über verschiedene Störungsarten. Obere Zeile v. l. n. r.: konstant,
Sprung, linear; Untere Zeile v. l. n. r.: sinusförmig, gaußverteilt, gepulst. a, b ∈ R, ts , t0 ∈
+
R+
0 , n, i ∈ N0
Bei der Reglererstellung wird das Kontrollziel als Setpoint-Regelung implementiert, eine
Referenztrajektorie wird als Folge von Setpoints zu den Abtastzeitpunkten realisiert. Als
Reglerparameter lassen sich innerhalb der Problemstellung Prädiktions- und Kontrollhorizont sowie Gewichtsfaktoren für das Regelziel bei Ein- und Ausgangsgrößen festlegen. Die
erstellten Regler lassen sich im Anschluss exportieren, so dass sie z. B. in Simulink für die
zugehörige nichtlineare Regelstrecke getestet werden können.
8.2
Beispiel: Leerlauffüllungsregelung
In diesem Abschnitt wird die sog. Leerlauffüllungsregelung (LFR) bei Motoren in Autos
mit Automatikgetrieben mittels MPC behandelt. Der algorithmische Teil dieses Abschnitts
orientiert sich dabei an der Bedienungsanleitung zur Version 1 der MPC Toolbox [51, Kapitel 2, Seite 2-22 bis 2-30] von M. Morari und N.L. Ricker, eine ausführliche theoretische
Behandlung des Themas findet sich in der Arbeit von D. Hrovat und B. Bodenheimer [38,
Seite 1778 - 1783]. Weiterführende Literatur zum Einsatz von modellgestützten Reglern in
Verbrennungsmotorsystemen findet sich im Buch von L. Guzzella und C.H. Onder [34].
120 Kapitel 8: MPC Toolbox in Matlab
8.2.1
Problemstellung
Das Ziel der Leerlauffüllungsregelung ist es, einen Motor, der im Leerlauf betrieben wird,
durch Einfluss des Zündzeitpunkts und der Menge an zugeführter Luft zu einer konstanten
Mindestdrehzahl zu regeln. Das Kontrollsystem unterliegt dabei unbekannten Störungen:
Ein Lenkeinschlag im Stand führt beispielsweise dazu, dass der Öldruck der Servolenkung
erhöht werden muss, was wiederum zu einer plötzlichen Last auf den Motor führt, ebenso
können plötzliche Laständerungen am Motor durch die Klimaanlage oder die Lichtmaschine
hervorgerufen werden. Aufgrund unterschiedlicher Systemkomponenten und -eigenschaften
(verschiedene Motorvarianten, verschiedene zusätzliche an den Motor gebundene Geräte)
soll ein Regler für die Massenproduktion erstellt werden, der robust und stabil die auftretenden Störungen ausregelt. Der modellprädiktive Ansatz bietet sich deswegen hier besonders an. Unabhängig von den veränderlichen Systemparametern müssen jedoch gewisse
Schranken in den Ein- und Ausgangsvariablen eingehalten werden: Um einen sicheren Motorbetrieb zu gewährleisten, darf der Zündzeitpunkt vom voreingestellten Zündzeitpunkt um
nicht mehr als 20 ° abweichen, desweiteren sollte er nach einer Veränderung zum voreingestellten Zündzeitpunkt zurückgeregelt werden, um einen optimalen Kraftstoffverbrauch zu
gewährleisten.
8.2.2
Problemmodellierung
Aufgrund der betrachteten Problemstellung liegt es nahe, den Zündzeitpunkt sowohl als
veränderbare Eingangsvariable als auch als zu regelnde Ausgangsvariable mit einer Gleichgewichtsregelung zu behandeln. Das allgemeine lineare Kontrollsystem wird dabei wie folgt
im Frequenzbereich modelliert:
Gd
u1
G1 G2
y1
w
+
=
0
u2
0
1
y2
(8.1)
Dabei beschreibt y1 die Drehzahl des Motors, y2 und u2 beschreiben beide den Zündzeitpunkt,
u1 beschreibt die Menge der zugeführten Luft und w stellt die unbekannte Störung in Form
eines Lastdrehmoments dar.
Für das Modell betrachten wir zwei Betriebszustände, zum Einen den Betrieb in der Fahrstufe D“ (dies entspricht bei Schaltgetrieben dem Betrieb mit eingelegtem ersten Gang und
”
einem Schleifenlassen“ der Kupplung, so dass auf den Motor ein konstantes Drehmoment
”
von 30 Nm wirkt, welches das Auto langsam vorantreibt), zum Anderen den Betrieb in der
Fahrstufe N“ (dies entspricht bei Schaltgetrieben dem Leerlauf ohne eingelegten Gang, das
”
Lastdrehmoment ist in diesem Fall 0 Nm). In beiden Fällen soll die Motordrehzahl auf konstant 800 rpm gehalten werden.
Modelliert man für das System die Übertragungsfunktionen so, dass die Gleichgewichtszustände im Nullpunkt liegen, ergibt sich als Beschränkung für den Zündzeitpunkt |u2| ≤ 0,7.
8.2 Beispiel: Leerlauffüllungsregelung
121
Für den Betrieb in der Fahrstufe D“ ergeben sich die Übertragungsfunktionen wie folgt:
”
9,62e−0,16s
G1 = 2
s + 2,4s + 5,05
15,9(s + 3)e−0,04s
(8.2)
G2 = 2
s + 2,4s + 5,05
−19,1(s + 3)
Gd = 2
s + 2,4s + 5,05
Für den Betrieb in der Fahrstufe N“ ergeben sich folgende Übertragungsfunktionen:
”
20,5e−0,16s
G1 = 2
s + 2,2s + 12,8
47,6(s + 3,5)e−0,04s
(8.3)
G2 = 2
s + 2,2s + 12,8
−19,1(s + 3,5)
Gd = 2
s + 2,2s + 12,8
8.2.3
Implementierung des Systems
Nun werden die Übertragungsfunktionen für (8.2) und (8.3) angelegt:
G1D = [0 0 9.62;1 2.4 5.05;0 0.16 0];
G2D = [0 15.9 15.9*3;1 2.4 5.05;0 0.04 0];
G1N = [0 0 20.5; 1 2.2 12.8; 0 0.16 0];
G2N = [0 47.6 47.6*3.5; 1 2.2 12.8; 0 0.04 0];
G0 = [0 0;0 0;0 0];
GI = [0 1;0 1;0 0];
Diese Übertragungsfunktionen sind für kontinuierliche Frequenzen formuliert (man beachte,
dass das System im Frequenz- und nicht im Zeitbereich formuliert ist), die MPC Toolbox
kann jedoch nur diskrete Systeme verarbeiten. Deswegen werden nun die beiden Kontrollsysteme gemäß (8.1) mit einer diskreten Approximation der Sprungantworten weiterverwendet.
Dabei benutzen wir eine Endzeit der Approximation von tf = 4 und eine Abtastrate von
ts = 0,1, dies bedeutet, dass wir tf /ts = 40 Koeffizienten der Sprungfunktion approximieren.
Zur Festlegung der Anzahl an stabilen Ausgabevariablen geben wir als drittes Argument
der Funktion tfd2step 2 an. Für Systeme mit integrierenden Ausgabevariablen ist die dritte Übergabevariable ein Vektor mit der Dimension des Ausgabevektors, eine 1 in der i-ten
Komponente signalisiert dabei einen stabilen i-ten Ausgang, eine 0 einen integrierenden
i-ten Ausgang. Die restlichen vier Übergabevariablen stellen die Transferfunktionen des ungestörten Systems dar, wobei die Elemente der Matrix spaltenweise von oben nach unten
angegeben werden.
tf = 4;
ts = 0.1;
systemD = tfd2step(tf,ts,2,G1D,G0,G2D,GI);
systemN = tfd2step(tf,ts,2,G1N,G0,G2N,GI);
122 Kapitel 8: MPC Toolbox in Matlab
Um die Kontrollsysteme zu vervollständigen, implementiert man nun noch die Störungen für
beide Szenarien, dabei geht man genauso vor wie oben:
GdD = [0 -19.1 -19.1*3; 1 2.4 5.05; 0 0 0];
dD = tfd2step(tf,ts,2,GdD,G0);
GdN = [0 -19.1 -19.1*3.5; 1 2.2 12.8; 0 0 0];
dN = tfd2step(tf,ts,2,GdN,G0);
Die Vorarbeit ist nun geleistet und man kann zum Reglerentwurf und zu Simulationen des
geschlossenen Regelkreises übergehen.
8.2.4
Implementierung des Reglers
Wir benutzen hierfür den cmpc-Regler (constraint MPC), der sich besonders für Simulationen an closed-loop Systemen mit relativ starken Beschränkungen an Ein- und/oder Ausgangsvariablen eignet. Auf die implementierten Algorithmen dieses und anderer MPC-Regler
wird in Kapitel 8.3 eingegangen. Die Zusammenhänge dieses Reglers verdeutlicht Abbildung
8.1.
Abbildung 8.1: Signalflussplan des cmpc-Reglers
Zunächst legen wir die Reglerparameter fest:
ˆ Gewichtsfaktoren für Ausgänge: In der Grundeinstellung sind alle zu regelnden Ausgänge
gleich bewertet, dies bedeutet, Abweichungen von den Setpoints werden für alle Ausgänge
gleich bestraft“. Im vorliegenden Modell ist die Drehzahlregelung viel wichtiger als die
”
Zündzeitpunktregelung, letztere spielt eine untergeordnete Rolle. Wir gewichten also
y1 5-fach und y2 1-fach.
ywt = [5 1];
8.2 Beispiel: Leerlauffüllungsregelung
123
ˆ Gewichtsfaktoren für Regelung: In der Grundeinstellung sind alle Regeleingriffe unbestraft in der Optimierungsformel. In unserem Fall bestrafen wir zunächst beide 0,5-fach.
uwt = [.5 .5];
ˆ Kontrollhorizont: Die Standardeinstellung für den Kontrollhorizont ist M = 1, dies
bedeutet, es wird jeweils nur der erste Zeitschritt des aktuellen Horizonts mit der gerade berechneten Kontrollfolge geregelt. Wir definieren unseren Kontrollhorizont mit
N = 10, das heißt, es wird bei einer Abtastrate von ts = 0,1 immer genau eine Sekunde mit der aktuell berechneten Steuerfolge geregelt. Es besteht die Möglichkeit,
sogenannte Blockierfaktoren“ zu definieren, diese geben die Anzahl der Zeitschritte
”
an, über die die Kontrollfolge unverändert bleibt, also ∆u = 0. Dafür definiert man M
als Zeilenvektor, wobei die Summe über alle Blockierfaktoren“ maximal so groß sein
”
darf wie der Prädiktionshorizont.
m = 10;
ˆ Prädiktionshorizont: Wir definieren den Prädiktionshorizont mit p = ∞.
p = inf;
ˆ Simulationszeit: Die Endzeit der Simulation definieren wir mit tf sim = 20.
tfsim = 20;
ˆ Referenztrajektorie: Die Standardeinstellung für die Referenztrajektorie ist eine Nullregelung für alle Komponenten. Für eine Regelung mit Setpoints verschieden von 0
definiert man die Referenztrajektorie als Spaltenvektor, wobei in der i-ten Komponente der Setpoint für die i-te Ausgangsvariable steht. Möchte man beispielsweise einer
Referenztrajektorie folgen, so definiert man die Referenztrajektorie als Matrix. Dabei
bezeichnet das Element in der i-ten Zeile und der j-ten Spalte, den Setpoint für die
i-te Komponente zur Zeit t = jts . Hat die Matrix j Spalten mit jts < tf sim , so gilt ab
der Zeit t = jts die letzte Spalte als konstante Setpointdefinition für den Zeitbereich
[jts , tf sim ]. In unserem Fall wünschen wir eine konstante Nullregelung (beachte, das
System wurde dementsprechend normiert).
r = [0 0];
ˆ Beschränkungen der Kontrolle: Um den Kontrolleingriff zu beschränken, definiert man
einen Spaltenvektor, bestehend aus drei Matrizen nach dem selben Prinzip wie bei
der Referenztrajektorie. Die erste Matrix beschreibt die unteren Schranken für u, die
zweite Matrix beschreibt die oberen Schranken an u und die dritte Matrix beschreibt
die Beschränkungen an ∆u. Die Standardeinstellungen sind umin = −∞, umax = ∞
sowie (∆u)max = 106 für alle Zeitpunkte und alle Komponenten. Für unser System ist
124 Kapitel 8: MPC Toolbox in Matlab
u1 (Luftmenge) unbeschränkt sowohl in der oberen und unteren Grenze, als auch in
der maximalen Änderung. Der Zündzeitpunkt ist beschränkt durch −0,7 ≤ u2 ≤ 0,7.
Um die Motorfunktionalität nicht zu beeinträchtigen, beschränken wir die maximale
Änderung des Zündzeitpunkts auf (∆u2 )max ≤ 1,4.
ulim = [[-inf -0.7] [inf 0.7] [1e6 1.4]];
ˆ Beschränkungen des Ausgangs: Die Definition der Beschränkungen des Ausgangs entspricht der der Kontrolle, lediglich die Beschränkung an die Änderung der Ausgangsvariablen (∆y)max fällt weg. In unserem Fall liegen keine Beschränkungen des Ausgangs
vor, die Änderung des Zündzeitpunkts wurde bereits durch u2 beschränkt.
ylim = [];
ˆ Filterung und Verzögerung für Störungen: Für die Definition eines Entstörfilters und
für die Definition von Verzögerungen für die Störungen definiert man je eine Matrix mit
Zeitkonstanten. Die Standardeinstellungen sind keine Filterung und keine Verzögerung
(also ein unverzögerter Einheitssprung in der Störung). Wir definieren keine Filterung
und keine Verzögerung für unser Modell.
tfilter = [];
ˆ Störungen: Für die Störungen ergibt sich das selbe Format wie für die Referenztrajektorie. Für reine Störungen an den Ausgabevariablen (kein Störungssystem und kein
Störungsmodell vorhanden), stehen in der Matrix die additiven Störungen. Ist ein
Störungssystem oder sowohl ein Störungsmodell als auch ein Störungssystem vorhanden, so werden in der Matrix die Sprungfunktionen definiert. In unserem Fall haben wir
eine ungemessene Störung, die durch eine Übertragungsfunktion in das System eingeht
(also nur ein Störungssystem ohne Störungsmodell). Das zugehörige Störungssystem
haben wir bereits angelegt. Desweiteren benötigen wir nun noch einen Einheitssprung
auf das Störungssystem.
dstep = 1;
Nun sind alle System-, Modell- und Reglerparameter definiert und man kann zu den ersten
Simulationen übergehen.
8.2.5
Simulation des closed-loop-Verhaltens
Als erstes testen wir die Regler unter der Voraussetzung, dass wir keinen Modellfehler gemacht haben, das modellierte System entspricht also dem realen System. Für den Betrieb in
der Fahrstufe D“ ergibt sich damit:
”
125
8.2 Beispiel: Leerlauffüllungsregelung
[y1,u1] = cmpc(systemD,systemD,ywt,uwt,m,p,tfsim,r,ulim,ylim,...
tfilter,dD,[],dstep);
figure;
plotall(y1,u1,ts);
Nun die gleiche Simulation für den Betrieb in der Fahrstufe N“:
”
[y2,u2] = cmpc(systemN,systemN,ywt,uwt,m,p,tfsim,r,ulim,ylim,...
tfilter,dN,[],dstep);
figure;
plotall(y2,u2,ts);
Man beachte, dass wir nun zwei verschiedene Regler erstellt haben, die, jeder für sich, das
jeweilige System stabilisieren (vergleiche die Plots in Abbildung C.1 und C.2 im Anhang
C.1). Was man wirklich will, ist ein Regler, der das System in beiden Fahrstufen regelt.
Wir testen deswegen nun die Regler indem wir für das System D“ das Modell N“ und
”
”
umgekehrt verwenden.
[y3,u3] = cmpc(systemD,systemN,ywt,uwt,m,p,tfsim,r,ulim,ylim,...
tfilter,dD,[],dstep);
figure;
plotall(y3,u3,ts);
[y4,u4] = cmpc(systemN,systemD,ywt,uwt,m,p,tfsim,r,ulim,ylim,...
tfilter,dN,[],dstep);
figure;
plotall(y4,u4,ts);
Outputs
15
y1
10
5
Abbildung 8.2: Simulation für die Fahrstufe
D“ mit Modellfehler
”
0
y2
−5
−10
−15
0
1
2
3
4
Time
5
6
7
8
Man sieht, dass nun keiner der Regler das System stabilisieren kann, wenn ein Modellfehler
vorliegt (vergleiche die Plots in Abbildung C.3 und C.4 im Anhang C.1 sowie in Abbildung 8.2 rechts). Man muss also die Reglerparameter verändern, um eine bessere Robustheit
126 Kapitel 8: MPC Toolbox in Matlab
zu erhalten. Ein Versuch kann sein, den Regeleingriff in der Optimierungsfunktion stärker
zu bestrafen, um ein zu starkes Schwingen zu verhindern. Wir erhöhen deswegen den Gewichtsfaktor für die Bestrafung der Veränderung der Luftzufuhr von 0,5 auf 10 und den
Gewichtsfaktor für die Bestrafung der Veränderung des Zündzeitpunkts von 0,5 auf 20.
uwt = [10 20];
[y5,u5] = cmpc(systemD,systemD,ywt,uwt,m,p,tfsim,r,ulim,ylim,...
tfilter,dD,[],dstep);
figure;
plotall(y5,u5,ts);
[y6,u6] = cmpc(systemN,systemD,ywt,uwt,m,p,tfsim,r,ulim,ylim,...
tfilter,dN,[],dstep);
figure;
plotall(y6,u6,ts);
Outputs
1
y2
0.5
0
−0.5
−1
Abbildung 8.3: Simulation für die Fahrstufe
N“ mit Modellfehler
”
y1
−1.5
−2
−2.5
−3
−3.5
0
1
2
3
4
Time
5
6
7
8
Man sieht, dass für das System ohne Modellfehler der Regler weiterhin stabilisierend wirkt
(vergleiche den Plot in Abbildung C.5 im Anhang C.1), natürlich dauert es nun länger, bis
das System stabilisiert ist, da ja ein starker Regeleingriff, der zu einer schnelleren Nullregelung führt, bestraft wird. Zum gleichen Ergebnis kommt man für das System in der Fahrstufe
N“ wenn kein Modellfehler vorliegt. Für das System mit Modellfehler zeigt sich nun auch
”
ein stabilisierendes Regelverhalten (vergleiche den Plot in Abbildung C.6 im Anhang C.1
sowie in Abbildung 8.3 links), das gleiche Ergebnis erhält man für das System D“ mit feh”
lerbehaftetem Modell N“.
”
Die Ergebnisse sollten jedoch nicht dazu verleiten, den erstellten Regler als global asymptotisch stabil für das System mit Modellfehler zu betrachten. Eine globale asymptotische
Stabilität kann nämlich nur für die Regler ohne Modellfehler garantiert werden, jedoch sollen
uns in diesem Beispiel die erhaltenen Ergebnisse genügen.
8.2 Beispiel: Leerlauffüllungsregelung
8.2.6
127
Vergleich verschiedener Regler
Wir vergleichen nun den cmpc-Regler, der das quadratische Kostenfunktional in jedem
Schritt online minimiert, mit einem MPC-Regelansatz, der zuerst die Gain-Matrix berechnet
und dann das System simuliert.
Kmpc = mpccon(systemD,ywt,uwt,m,p);
[y7,u7] = mpcsim(systemD,systemD,Kmpc,tfsim,r,ulim,tfilter,...
dD,[],dstep);
figure;
plot([0:ts:tfsim],y5(:,1),’-b’,[0:ts:tfsim],y5(:,2),’-k’,...
[0:ts:tfsim],y7(:,1),’-.b’,[0:ts:tfsim],y7(:,2),’-.k’);
legend(’y_1 mit cmpc’,’y_2 mit cmpc’,...
’y1 mit mpcsim’,’y_2 mit mpcsim’,0);
xlabel(’Time’);
title(’Outputs’);
Man sieht, dass sich die Ergebnisse nicht stark unterscheiden (vergleiche den Plot in Abbildung C.7 im Anhang C.1), obwohl wir zwei unterschiedliche Wege in der Optimierung
des Kostenfunktionals gegangen sind. Der Vorteil der Online-Optimierung lässt sich jedoch
verdeutlichen, wenn wir den Prädiktionshorizont auf einen beschränkten Wert setzen, z. B.
p = 80 und beide Simulationen nocheinmal durchführen.
p = 80;
[y8,u8] = cmpc(systemD,systemD,ywt,uwt,m,p,tfsim,r,ulim,ylim,...
tfilter,dD,[],dstep);
Kmpc = mpccon(systemD,ywt,uwt,m,p);
[y9,u9] = mpcsim(systemD,systemD,Kmpc,tfsim,r,ulim,tfilter,...
dD,[],dstep);
figure;
plot([0:ts:tfsim],y8(:,1),’-b’,[0:ts:tfsim],y8(:,2),’-k’,...
[0:ts:tfsim],y9(:,1),’-.b’,[0:ts:tfsim],y9(:,2),’-.k’);
legend(’y_1 mit cmpc’,’y_2 mit cmpc’,...
’y1 mit mpcsim’,’y_2 mit mpcsim’,0);
xlabel(’Time’);
title(’Outputs’);
Die Ergebnisse zeigen, dass in diesem Fall die Online-Optimierung des Kostenfunktionals zu
einer schnelleren Nullregelung führt (vergleiche den Plot in Abbildung C.8 im Anhang C.1
sowie in Abbildung 8.4).
128 Kapitel 8: MPC Toolbox in Matlab
Outputs
1
0
−1
−2
Abbildung 8.4: Vergleich von Simulationen
für die Fahrstufe D“ mit beschränktem
”
Prädiktionshorizont
−3
−4
y1 mit cmpc
y2 mit cmpc
y1 mit mpcsim
y2 mit mpcsim
−5
−6
−7
0
1
8.2.7
2
3
4
Time
5
6
7
8
Import des Reglers in Simulink
Die gute Zusammenarbeit zwischen der MPC Toolbox und anderen Toolboxen in Matlab
sowie Simulink erlaubt es, einen modellprädiktiven Regler für lineare Systeme in Simulink
an einer nichtlinearen Regelstrecke zu testen. Wir benutzen hier den zuletzt betrachteten
Regler für beschränkte Systeme (cmpc, Prädiktionshorizont p = 80, erhöhte Gewichtsfaktoren). Simulink bietet zum Import eine S-Block-Funktion, die diesen Regler anspricht, die
nötigen Modelldaten und Reglereinstellungen müssen bereits im Arbeitsbereich geladen sein.
Abbildung 8.5 zeigt die lineare Regelstrecke und den modellprädiktiven Regler in Simulink.
Abbildung 8.5: Signalflussplan des linearen Kontrollsystems in Simulink.
8.3 Der Blick hinter die Kulissen der MPC Toolbox
129
Nun wird der Strecke eine leichte Nichtlinearität sowie als eine weitere Störung ein Messrauschen hinzugefügt. Die roten Blöcke in Abbildung 8.6 zeigen die Nichtlinearitäten und die
zusätzliche Störung in der Regelstrecke.
Abbildung 8.6: Signalflussplan der nichtlinearen Regelstrecke mit zusätzlicher Störung.
Die Abbildungen C.9 und C.10 im Anhang C.1 zeigen, dass der Regler auch für die nun
nichtlineare Strecke gute Ergebnisse liefert.
8.3
Der Blick hinter die Kulissen der MPC Toolbox
In diesem Abschnitt wird kurz auf die in der MPC Toolbox implementierten Algorithmen
eingegangen.
8.3.1
Algorithmen für unbeschränkte Probleme oder Probleme
mit saturierten Beschränkungen
Für Modelle (modelliert im Frequenzbereich oder im Zeitbereich) ohne Beschränkungen oder
mit saturierten Beschränkungen bietet die MPC Toolbox einen GPC-Ansatz (Generalized
Predictive Control). Dabei wird zuerst iterativ über die algebraische Riccati-Gleichung die
sog. Gain–Matrix berechnet, im Anschluss wird eine closed-loop-Simulation durchgeführt.
130 Kapitel 8: MPC Toolbox in Matlab
Ist das Modell unbeschränkt, so liefert dieses Vorgehen gute Ergebnisse. Liegen nur schwache Beschränkungen vor, so kann man das System mit saturierten Beschränkungen“ be”
treiben. Dies bedeutet, dass die Gain-Matrix, die ja für unbeschränkte Probleme gilt, für
das beschränkte System eingesetzt wird. Sollte nun eine Kontrollanweisung oder eine Ausgangsvariable eine Beschränkung verletzen, so wird die Kontrollanweisung so verändert, dass
Beschränkungen nicht verletzt werden. Der zu große“ Anteil der Steuerung wird sozusagen
”
abgeschnitten“, so dass Beschränkungen erfüllt bleiben, Abbildung 8.7 verdeutlicht die”
ses Vorgehen. Verständlicherweise funktioniert dieses Vorgehen nur für schwach beschränkte
Abbildung 8.7: Prinzip der saturierten Beschränkungen
Systeme und stellt in der Realität somit nicht das Verfahren der Wahl dar. Für die Regelung
über den GPC wird auf Kapitel 2 verwiesen.
8.3.2
Algorithmen für beschränkte Probleme
Für Modelle (modelliert im Frequenzbereich oder im Zeitbereich) mit Beschränkungen wird
das Kostenfunktional
!
p
m
X
X
min
|Q (y(k + l|k) − r(k + l))|2 +
|R∆u(k + l − 1)|2
∆u(k)...∆u(k+m−l)
l=1
l=1
in jedem Schritt online unter Beachtung der Beschränkungen gelöst. Dabei bezeichnen Q
und R die Gewichtsmatrizen, y(k + l|k) den l-ten vorausgesagten Ausgangswert zum k-ten
Abtastschritt und u(k + m − l) die k + m − l-te Kontrollanweisung.
Zur Lösung dieses Problems verwendet die MPC Toolbox die Dantzig1 -Wolfe2 -Methode der
aktiven Mengen (ausführlich erläutert im Buch von R. Fletcher [24, Kapitel 10.3 und 10.6]).
Dabei wird das quadratische Programm
1 T
T
min
x Hx + f x =: min (q(x))
x
x
2
Ax ≤ b, x ≥ xmin
1
2
George Bernard Dantzig, 1914 - 2005, US-amerikanischer Mathematiker
Philip Wolfe, US-amerikanischer Mathematiker
8.3 Der Blick hinter die Kulissen der MPC Toolbox
131
iterativ gelöst. Voraussetzung ist hierfür, dass die Hessematrix H positiv definit ist, dies
garantiert, dass das Problem eindeutig lösbar ist.
Die Dantzig-Wolfe-Methode der aktiven Mengen ist eine Erweiterung des bekannten SimplexAlgorithmus, bei dem entlang des Beschränkungsrandes gesucht wird. Da hier eine quadratische Funktion vorliegt, muss das Minimum aber nicht auf dem Rand des zu untersuchenden
Gebiets liegen. Man unterscheidet deswegen zwei Fälle:
(1) Zuerst sucht man das globale Minimum. Verletzt dies keine Beschränkungen, so ist
dies auch das Minimum unter Beschränkungen.
(2) Verletzt dieses globale Minimum aber Beschränkungen, so liegt das Minimum unter
Beschränkungen auf dem Rand der zulässigen Menge.
Man beachtet nun eine gewisse Auswahlmenge (die aktive Menge) an Beschränkungen,
die über Gleichheit anstatt Ungleichheit erfüllt werden müssen. Im ersten Schritt sind
dies die Beschränkungen, welche vom globalen Minimum verletzt werden.
(a) Man sucht nun ein Minimum auf dieser aktiven Menge an Restriktionen und
überprüft, ob nicht aktive Beschränkungen verletzt werden. Ist dies der Fall, werden diese mit in die aktive Menge der Beschränkungen aufgenommen (wieder
mittels Gleichheit anstatt Ungleichheit) und es wird erneut gesucht.
(b) Werden aber keine inaktiven Beschränkungen verletzt, so ist ein potentieller Kandidat für das Minimum unter Beschränkungen gefunden. Verletzt der Kandidat
die Karush3 -Kuhn4 -Tucker5 -Bedingung (s. u.) für eine aktive Beschränkung, so
wird diese inaktiv und es kann weitergesucht werden. Erfüllt aber der potentielle
Kandidat die Karush-Kuhn-Tucker-Bedingung, so ist er auch Lösung des Problems.
Die Karush-Kuhn-Tucker-Bedingung lässt sich folgendermaßen formulieren: Ist x∗ ein lokales Minimum einer skalaren Funktion q(x) := 12 xT Hx + f T x unter den Nebenbedingungen
g(x) := b − Ax ≤ 0 und gilt für die Gradienten der aktiven Gleichungen gi (x∗ ) = 0 für
i ∈ I (aktive Menge), dass sie linear unabhängig sind, so existieren eindeutige LagrangeMultiplikatoren λi ≥ 0, so dass
X
∇q(x∗ ) =
λi ∇gi (x∗ ).
i∈I
Abbildung 8.8 zeigt die Vorgehensweise des Algorithmus.
3
William Karush, 1917 - 1997, US-amerikanischer Mathematiker
Harold W. Kuhn, geb. 1925, US-amerikanischer Mathematiker
5
Albert William Tucker, 1905 - 1995, US-amerikanischer Mathematiker
4
132 Kapitel 8: MPC Toolbox in Matlab
Abbildung 8.8: Dantzig-Wolfe-Methode der aktiven Mengen, aus [46].
Zur genaueren Beschreibung des Algorithmus wird noch folgendes vermerkt:
Im ersten Schritt muss nicht notwendigerweise das globale Minimum für das unbeschränkte
System gesucht werden, ein Warmstart“ innerhalb der zulässigen Menge ist möglich. Sollte
”
in einem Suchschritt keine Beschränkung aktiv sein, so bestimmt sich die Suchrichtung als
negativer Gradient der Zielfunktion, also als −Hx.
Die Implementierung geschieht dabei analog zum Simplex-Algorithmus über ein Tableau, in
dem ein transformiertes und erweitertes System gespeichert wird. In jedem Iterationsschritt
verändern Zeilenoperationen das Tableau so, dass am Ende eine spezielle Form erhalten wird
und die Lösung abgelesen werden kann. Eine genauere Besprechung der Implementierung findet sich im Buch von R. Fletcher [24, Kapitel 10.6].
Es lässt sich zeigen, dass der Algorithmus in einer endlichen Schrittzahl ein Ergebnis liefert.
Der Aufwand für die Lösung beträgt O(n + p), wobei n = dim(x) und p = dim(b), nur selten
werden dabei mehr als 3(n + p) Iterationen benötigt (eine ausführliche Begründung dieses
8.3 Der Blick hinter die Kulissen der MPC Toolbox
133
Resultats findet sich im Buch von G.B. Dantzig [19, Kapitel 7.3]).
Zur Verdeutlichung des Algorithmus folgt ein einfaches Beispiel im R2 : Abbildung 8.9 zeigt
die Höhenlinien der quadratischen Zielfunktion, der Punkt x stellt dabei das globale Minimum ohne Beschränkungen dar, die weiße Fläche beschreibt die zulässige Menge (beschränkt
durch g1 ≥ 0, g2 ≥ 0 und g3 ≤ 0). Man startet mit einem Punkt in der zulässigen Menge,
hier ist es der Punkt x(0) . Dieser erfüllt die Beschränkung g1 , weswegen diese in der aktiven
Menge der Beschränkungen ist. Man sucht nun das Minimum unter der Voraussetzung, dass
x2 = 0, dies ist x(1) . Nun wird die zweite Beschränkung g2 aktiv: Überprüft man nun die
Karush-Kuhn-Tucker-Bedingung, so stellt man fest, dass
∇f
∇g1
=−
k∇f k
k∇g1 k
gilt, da der Gradient von f in negative x2 -Richtung, der Gradient der Nebenbedingung aber
in positive x2 -Richtung zeigt. Die Beschränkung g1 wird also inaktiv.
Man muss nun das Minimum unter der Bedingung g2 = 0 suchen. Dies findet sich in x(2) . Betrachtet man wieder den Gradienten der Zielfunktion (dieser zeigt in negative x1 -Richtung),
so ergibt sich wieder ein negativer Lagrange-Multiplikator (der Gradient der Bedingung g2
zeigt in positive x1 -Richtung). Die Beschränkung g2 wird also auch inaktiv.
Beachte, nun sind keine Bedingungen aktiv und es wird in Richtung des aktuellen negativen Gradienten der Zielfunktion gesucht. Man gelangt schließlich zu x(3) , was nun die
Beschränkung g3 aktiv werden lässt. Eine Suche unter der Beschränkung g3 = 0 liefert dann
das Minimum x(4) . Hier zeigt der Gradient der Zielfunktion in die selbe Richtung wie der
Gradient der einzigen aktiven Nebenbedingung g3 . Wir haben also die Karush-Kuhn-TuckerBedingung erfüllt und somit das Minimum unter den Beschränkungen gefunden.
Abbildung 8.9: Beispiel zur Dantzig-Wolfe-Methode der aktiven Mengen.
134 Kapitel 8: MPC Toolbox in Matlab
Kapitel 9
Hybride MPC
9.1
Einleitung
In diesem Abschnitt beschäftigen wir uns mit hybriden Kontrollsystemen und hybrider modellprädiktiver Regelung. Für den Begriff des hybriden dynamischen Systems existiert keine
allgemeingültige Definition. Eine weit verbreitete Definition, die auch hier Verwendung finden soll, ist
Definition 9.1 (Hybrides dynamisches System).
Ein hybrides dynamisches System ist gekennzeichnet durch die Interaktion von kontinuierlicher und diskreter Dynamik.
Solche dynamischen Systeme bestehen typischerweise zum Teil aus Variablen aus einer kontinuierlichen Menge, normalerweise den reellen Zahlen, zum Teil aus Variablen, die Werte
aus einer diskreten Menge – zum Beispiel {0, 1} – annehmen.
So können zum Beispiel Abtastsysteme als hybrides System angesehen werden:
Ein Prozess in kontinuierlicher Zeit, gegeben durch eine Differenzialgleichung, wird von einem digitalen Regler kontrolliert, der nur zu diskreten Zeitpunkten eingreifen kann. Dieses
Gebiet hat sicherlich auch maßgeblich mit zur Entwicklung des Gebiets der hybriden Systeme
beigetragen, da angesichts immer schnellerer und billiger Mikrocontroller/Mikroprozessoren
immer mehr Kontrollsysteme nicht mehr mit klassischen analogen Reglern (PI, PID), sondern digital implementiert werden.
Ein noch deutlicheres Beispiel für ein hybrides System ist das sogenannte Schaltsystem:
Hier wird zwischen mehreren (endlich vielen) Systemen nach einer vorgegebenen logischen
Regel umgeschaltet.
Im Allgemeinen führen selbst einfache hybride Systeme zu schweren mathematischen Problemen, wenn man Aussagen über Kontrollierbarkeit, Stabilität etc. treffen oder etwa Feedbacks
berechnen will. Aus diesem Grund werden meist nur spezielle Klassen hybrider Systeme betrachtet.
ˆ stückweise affine (PWA) Systeme
ˆ mixed logical dynamical (MLD) Systeme
136 Kapitel 9: Hybride MPC
ˆ max-min-plus scaling (MMPS) Systeme
ˆ (extended) linear complementary (ELC) Systeme
ˆ Automaten, Petri-Netze, . . .
Hier sollen nun die ersten Drei kurz vorgestellt sowie ihre Äquivalenz gezeigt werden. Im
Anschluss wird dann gezeigt, wie man mittels modellprädiktiver Regelung Nutzen aus der
hybriden Modellierung ziehen kann.
9.2
Klassen hybrider Systeme
Diesem Abschnitt liegen die Arbeiten von W. Heemels, B. de Schutter und A. Bemporad
[36] sowie von L. Rodrigues und J. How [59] zugrunde, jedoch soll an dieser Stelle lediglich
auf eine Auswahl von Klassen hybrider Systeme eingegangen werden. Für weitergehende
Informationen sei daher an dieser Stelle auf die Literatur verwiesen.
9.2.1
Stückweise affine Systeme
Stückweise affine Systeme (PieceWise Affine, PWA) sind eine einfache Erweiterung linearer
Systeme, die dennoch nichtlineares und nichtglattes Verhalten beschreiben bzw. beliebig
genau approximieren können.
Definition 9.2 (Stückweise affine Systeme — PWA).
Ein stückweise affines Kontrollsystem ist gegeben durch die Gleichungen
xk+1 = Ai xk + Bi uk + fi
yk = Ci xk + Di uk + gi
xk
∈ Ωi , i = 1, . . . , N.
uk
(9.1)
Dabei sind die Ωi ⊆ Rn+m Polyeder, also durch endlich viele linare Ungleichungen beschrieben.
Das System heißt wohldefiniert, falls xk+1 und yk eindeutig von xk und uk abhängen.
Beispiel 9.3. Gegeben sei
xk+1 =
(
xk + uk
1
falls xk + uk ≤ 1
sonst
Umformen auf die Standardform führt zu
xk
∈ R2
Ω1 =
uk
xk
∈ R2
Ω2 =
uk
xk + uk ≤ 1
xk + uk > 1
137
9.2 Klassen hybrider Systeme
A1 = B1 = 1, A2 = B2 = 0, f1 = 0, f2 = 1
C1 = C2 = 0, D1 = D2 = 0, g1 = g2 = 0
9.2.2
Max-Min-Plus Scaling
Definition 9.4 (Max-Min-Plus Scaling Ausdruck — MMPS Ausdruck).
Ein MMPS-Ausdruck f (x1 , . . . , xn ) ist gegeben durch
f := xi | α | max(fk , fl ) | min(fk , fl ) | fk + fl | βfk
(9.2)
mit i ∈ {1, . . . , n}, α, β ∈ R, fk , fl MMPS-Ausdrücke.
Definition 9.5 (Max-Min-Plus Scaling System — MMPS System).
Ein MMPS-System ist gegeben durch
xk+1 = Mx (xk , uk , dk )
yk = My (xk , uk , dk )
(9.3)
mit MMPS-Ausdrücken Mx , My in den Variablen xk , uk und der Hilfsvariable dk . Ein beschränktes MMPS-System muss zusätzlich noch die Nebenbedingung
Mc (xk , uk , dk ) ≤ ck
(9.4)
erfüllen.
Beispiel 9.6 (Fortsetzung des PWA-Beispiels).
xk+1 = min(xk + uk , 1)
yk = xk
Leicht ersichtlich ist, dass die Darstellung als MMPS-System nicht eindeutig ist. Bei kleinen
Beispielen ist dies noch ohne Bedeutung, für reale Anwendungen allerdings kann man durch
geschickte Wahl eines kleinen Modells Rechenaufwand sparen.
9.2.3
Gemischt-logische Systeme
Gemischt-logische dynamische (Mixed-Logical Dynamical, MLD) Systeme sind – wie der
Name schon nahelegt – charakterisiert durch das Zusammenwirken logischer Regeln, Beschränkungen an Zustände und Kontrollen sowie den physikalischen Gesetzen, die das Systemverhalten, also die Entwicklung der Zustandstrajektorie, beschreiben. Anwendung kann
dies etwa bei den eingangs erwähnten Schaltsystemen finden, wenn das Umschalten durch
logische Ausdrücke, sog. Literale, vorgeschrieben wird. Für die mathematische Modellierung
benötigt man Regeln, wie diese Literale in lineare Ungleichung umgewandelt werden können,
um schließlich Systeme zu erhalten, deren Dynamik durch lineare Differenzengleichungen mit
linearen Ungleichungen als Nebenbedingungen beschrieben werden kann. Dies hat allerdings
138 Kapitel 9: Hybride MPC
den Preis, dass binäre Entscheidungsvariablen eingeführt werden müssen.
Die Idee ist, logische Ausdrücke Xi durch binäre Variablen δi ∈ {0, 1} zu ersetzen, wobei
δi = 1 ⇔ Xi = wahr
bedeutet. So erhält man dann etwa die Äquivalenzen X1 ∧ X2 ⇔ δ1 = δ2 = 1, oder
(X1 ⇔ X2 ) ⇔ δ1 − δ2 = 0.
Da bei den hier betrachteten Systemen binäre und reelle Variablen zusammenwirken werden
Hilfsmittel benötigt, die die beiden verbinden. Betrachte dazu für eine Funktion f : X 7→ R,
wobei X ⊂ Rn beschränkt, das Literal X := (f (x) ≤ 0) und definiere
M := max f (x) und m := min f (x).
x∈X
x∈X
(9.5)
Hierbei genügen auch M ′ > M bzw. m′ < m, eine genauere Annäherung des Maximums
bzw. Minimums verbessert jedoch die Genauigkeit der späteren Berechnungen.
Nun rechnet man leicht nach, dass gilt:
(f (x) ≤ 0) ∧ (δ = 1)
ist genau dann wahr, wenn
¬ (f (x) ≤ 0)
ist genau dann wahr, wenn
(f (x) ≤ 0) ∨ (δ = 1)
ist genau dann wahr, wenn
f (x) − δ ≤ −1 + m(1 − δ) (9.6)
f (x) ≤ Mδ
f (x) ≥ ε
(9.7)
(9.8)
Auch für Implikationen kann man Transformationsregeln angeben:
(f (x) ≤ 0) ⇒ (δ = 1)
ist genau dann wahr, wenn
(f (x) ≤ 0) ⇔ (δ = 1)
ist genau dann wahr, wenn
f (x) ≥ ε + (m − ε) δ
(
≤ M (1 − δ)
f (x)
≥ ε + (m − ε) δ
(9.9)
(9.10)
Beispiel 9.7. Gegeben sei das folgende PWA-System
(
0,8xk + uk ,
falls xk ≥ 0
xk+1 =
−0,8xk + uk , falls xk < 0
xk ∈ [−10, 10]
uk ∈ [−1, 1]
Setze nun
δk :=
(
1,
0,
xk ≥ 0
sonst
,
um die Bedingung durch eine binäre Variable auszudrücken. Dieses δk kann beschrieben werden durch die Ungleichungen
−mδk ≤ xk − m
−(M + ε)δk ≤ −xk − ε,
wobei M = −m = 10, ε > 0 hinreichend klein. Damit erhält man als Systemgleichung
xk+1 = 1.6δk xk − 0.8xk + uk
139
9.2 Klassen hybrider Systeme
Um Produkte von logischen Variablen, bzw. von logischen und reellen Variaben (wie sie im
Beispiel aufgetreten sind) als lineare Ungleichungen umzuschreiben, benötigt man zusätzliche
Hilfsvariablen. Dann kann der Term δ3 := δ1 δ2 ausgedrückt werden als
(δ3 = 1) ist genau dann wahr, wenn (δ1 = 1) ∧ (δ2 = 2) ,
(9.11)
Dies führt zu den Ungleichungen
− δ1 + δ3 ≤ 0
(9.12)
−δ1 + δ2 + δ3 ≤ 1.
(9.14)
−δ2 + δ3 ≤ 0
(9.13)
Des weiteren kann der Term δf (x) für f : Rn 7→ R und δ ∈ {0, 1} ersetzt werden durch eine
weitere Hilfsvariable z := δf (x), die die Bedingungen
(δ = 0) ⇒ (z = 0)
(δ = 1) ⇒ (z = f (x))
(9.15)
(9.16)
erfüllt und somit auf die Ungleichungen
z ≤ Mδ
(9.17)
z ≤ f (x) − m (1 − δ)
(9.19)
z ≥ mδ
z ≥ f (x) − M (1 − δ)
(9.18)
(9.20)
führt.
Dies führt zu der allgemeinen, formalen Definition eines MLD-Systems:
Definition 9.8 (MLD-System).
Ein gemischt-logisches dynamisches System ist gegeben durch die Gleichungen
xk+1 = Axk + B1 uk + B2 δk + B3 zk
yk = Cxk + D1 uk + D2 δk + D3 zk
(9.21)
e5 ≥ E1 xk + E2 uk + E3 δk + E4 zk
mit
r
xk
xk =
,
xbk
(9.22)
xrk ∈ Rnr , xbk ∈ {0, 1}nb und uk , yk analog. zk ∈ Rrr , δk ∈ {0, 1}rb Hilfsvariablen.
Bemerkung 9.9. Die Belegung der Hilfsvariablen selbst muss auch dann nicht eindeutig
sein, wenn das System wohldefiniert ist (siehe Definition 9.2). Falls aber die Variablen xk+1 ,
yk , δk und zk eindeutig von xk und uk abhängen, nennt man das System vollständig wohldefiniert.
140 Kapitel 9: Hybride MPC
Ein MLD-System beschreibt also die Entwicklung der reellen Variablen durch lineare Gleichungen, die der diskreten Variablen durch logische Aussagen. Transformation der logischen
Variablen in sog. Assignment-Variablen führt zu mathematisch behandelbaren gemischtganzzahligen Programmen, mit denen viele dynamische Systeme modelliert werden können.
Zu beachten ist noch, dass dieses Konzept sowohl leicht auf kontinuierliche Zeit übertragen
werden kann, indem xk+1 durch ẋ(t) ersetzt wird, und auch auf ein nichtlineares System,
indem man die linearen Gleichungen und Ungleichungen durch allgemeine, nichtlineare Funktionen ersetzt.
9.2.4
Äquivalenzen
Da es für einzelne Klassen von Systemen Resultate zu Stabilität, für andere wiederum gute Modellierungstools, etc. gibt, möchte man gerne zeigen, dass diese Klassen zueinander
äquivalent sind. So können die Ergebnisse auf Systeme einer anderen Klasse übertragen werden – und man muss nicht für jede Klasse MPC untersuchen. Dabei ist Äquivalenz wie folgt
zu verstehen:
Klasse A ist zu Klasse B äquivalent, wenn für jedes System in A ein System in B exisitiert,
so dass das Verhalten gleich ist (gleicher Input, gleicher Zustand ⇒ gleicher Output).
Exemplarisch wird im Folgenden die Äquivalenz von PWA- und MMPS-Systemen gezeigt,
weitere Resultate nur aus der Arbeit von W. Heemels, B. de Schutter und A. Bemporad [36]
zitiert.
Satz 9.10.
Jedes wohldefinierte stückweise affine Kontrollsystem kann als max-min-plus-scaling-System
geschrieben werden.
Beweis. Betrachte zunächst ein autonomes PWA-System
x(k + 1) = Ai x(k)
y(k) = Ci x(k)
wobei
x(k) ∈ Ωi := {x ∈ Rn |Hix ≤ Ki }, i = 1, . . . , m
und Hi ∈ Rqi ×n , Ki ∈ Rqi Die Systemgleichung soll als
x(k + 1) =
m
X
Ai di (k)
i=1
y(k) =
m
X
Ci di (k)
i=1
geschrieben werden. Die Hilfsvariablen di (k) ∈ Rn werden durch die folgenden Ungleichungen
so festgelegt, dass für einen Zustand x(k) ∈ Ωi∗ di∗ (k) = x(k) gilt und alle anderen di (k) = 0
141
9.2 Klassen hybrider Systeme
sind. Dazu werden Schlupfvariablen wi (k) ∈ Rqi benötigt.
Hi di (k) − wi (k) ≤ Ki
min
= 0
max |x(k) − di (k)|j
i=1,...,m j=1,...,n
!
qi
n
X
X
min
(wi (k))j
= 0, i = 1, . . . , m
|di (k)|j ,
(9.23)
(9.24)
(9.25)
j=1
j=1
wi (k) ≥ 0, i = 1, . . . , m
(9.26)
Bedingung 9.24 besagt, dass für gegebenes x(k) mindestens ein i∗ exisitiert, so dass di∗ (k) =
x(k) gilt. Ungleichung 9.23 zusammen mit 9.25 impliziert, dass für wi (k) > 0 folgt, dass
di (k) = 0. Da die Polyeder Ωi disjunkt sind, bedeutet dies, dass genau ein i∗ exisitiert so
dass di∗ (k) = x(k) und di(k) = 0 ∀i ∈ {1, . . . , m}\{i∗ }.
Die Erweiterung auf den nichtautonomen Fall geschieht dadurch, dass Ai durch (Ai Bi fi ),
Ci durch (Ci Di gi ) ersetzt, sowie Hi und di(k) angepasst werden.
Die weiteren Relationen zeigt die folgende Grafik: Dabei sind folgende zusätzliche Voraus-
PWA
MMPS
4
2
1
3
MLD
Abbildung 9.1: Äquivalenzen
setzungen für den Beweis nötig:
➀ Wohldefiniertheit des PWA-Systems sowie Beschränkungen für Zustand und Kontrolle
➁ Vollständige Wohldefiniertheit des MLD-Systems.
➂ Hier müssen nur die Binärvariablen umgeschrieben werden durch δk ∈ {0, 1}rb
min {δi (k), 1 − δi (k)} = 0 ∀i = 1, . . . , rb .
⇔
➃ Hierfür benötigt man eine bzw. zwei weitere Systemklassen, sog. (Extended) Linear
Complementary-Systeme.
142 Kapitel 9: Hybride MPC
9.3
MPC für MLD-Systeme
Nun soll für diese Klassen von Systemen ein MPC–Verfahren entwickelt werden. Hierfür
dienen die Arbeiten von B. de Schutter und T. van den Boom [62], A. Bemporad und M.
Morari [6] sowie W. Heemels, B. de Schutter und A. Bemporad [35] als Grundlage. Ebenso
sei für weitere Ausführungen und Ergebnisse auf diese Arbeit verwiesen.
9.3.1
Problemstellung
Ein vorgegebenes MLD-System soll zu einem Gleichgewicht (xeq , yeq , ueq ) mit den Hilfsvariablen (δeq , zeq ) kontrolliert werden. Für die Anwendung des MPC-Algorithmus’ definiert man
folgendes Kostenfunktional
Jk :=
Np
X
j=1
kxk+j|k − xeq k2Qx + kuk+j|k − ueq k2Qu + kyk+j|k − yeq k2Qy
+ kδk+j|k − δeq k2Qδ + kzk+j|k − zeq k2Qz
Qx , Qu > 0,
Qy , Qδ , Qz ≥ 0,
symmetrisch
Das MPC-Problem lautet damit
min Jk
u
(9.27)
mit den MLD-Systemgleichungen als Nebenbedingungen und
xk+Np |k = xeq
(9.28)
als Endzustandsbedingung. Zusätzlich zum Prädiktionshorizont Np kann man noch einen
Kontrollhorizont Nc einführen und somit Rechenaufwand einsparen:
uk+j = uk+Nc −1
j = Nc , . . . , Np − 1.
(9.29)
Allerdings verbleiben auch mit Kontrollhorizont alle Hilfsvariablen δ und z in der Optimierung, weshalb der Rechenaufwand weniger reduziert wird, als dies bei nicht-hybriden Systemen der Fall ist. Als Feedback wählt man dann u∗0 , die erste Komponente der minimierenden
Folge u∗ .
Satz 9.11.
Sei zusätzlich zu gegebenem MLD-System mit Gleichgewicht (xeq , yeq , ueq ) und den Hilfsvariablen (δeq , zeq ) ein Anfangszustand x(0) gegeben, so dass eine Lösung für das Minimierungsproblem existiert. Dann stabilisiert die Anwendung der damit berechneten MPC-Strategie das
System so, dass gilt
lim xk = xeq
k→∞
lim uk = ueq
k→∞
lim kyk − yeq kQy = 0
k→∞
lim kδk − δeq kQδ = 0
k→∞
lim kzk − zeq kQz = 0
k→∞
143
9.3 MPC für MLD-Systeme
Beweis. Sei u∗k = (u∗k,0, . . . , u∗k,Np−1 die berechntet optimale Kontrollfolge. Definiere Vk :=
J(u∗k , xk ), die optimale Wertefunktion. Sei weiter uk die Folge u∗k,1, . . . , u∗k,Np −2 , ueq ). Damit
ist auch uk eine zulässige Kontrollfolge im Schritt k + 1 mit den entsprechenden Belegungen
der Hilfsvariablen. Somit erhält man
Vk+1 ≤ J(uk , xk+1 )
= Vk − kxk − xeq kQx − kuk − ueq kQu − kyk − yeq kQx − kδk − δeq kQδ − kzk − zeq kQz
Somit ist Vk monoton fallend und durch Null nach unten beschränkt, also konvergiert Vk .
Deshalb muss Vk+1 − Vk → 0 für k → ∞. Aus diesem Grund konvergieren auch die Normen
gegen Null.
Bemerkung 9.12. Sind Qy , Qδ und Qz positiv definit, so konvergieren auch y, δ und z
gegen die entsprechenden Gleichgewichtspunkte.
9.3.2
Lösungsmöglichkeiten
Das MPC-Optimierungsproblem kann als gemischt-ganzzahliges quadratisches Optimierungsproblem (Mixed Integer Quadratic Program, MIQP) geschrieben werden, also mit quadratischer Zielfunktion, linearen Gleichungs- und Ungleichungsnebenbedingungen und sowohl
reellen als auch binären Variablen.
Für die Umformung berechnet man aus der Systemdynamik zunächst die Prädiktionsgleichung
für x (für y natürlich analog)
j
xk+j|k = A xk +
j−1
X
Aj−i (B1 uk+i + B2 δk+i + B3 zk+i )
(9.30)
i=0
und setzt sie ins Kostenfunktional ein. Weiter definiert man Vektoren ũk :=
T
δ̃k und z̃k analog, und setzt Ṽk := ũTk ỹkT δ̃kT z̃kT . Man erhält dann
uTk
...
uTk+Np −1
T
min ṼkT S1 Ṽk + 2(S2 + xT S3 )Ṽk
Ṽk
s.t. F1 Ṽk ≤ F2 + F3 xk ,
wobei die Matrizen Si , Fi , i = 1, 2, 3 aus der Zielfunktion und den MLD-Systemgleichungen
gewonnen werden. Die Lösung des MIQP ist NP-schwer. Es existieren jedoch gute Algorithmen, die auch die hier vorliegende Struktur ausnutzen können.
Zerlegungsmethoden Hier teilt man die Variablen (ganzzahlig und reell) auf und versucht
über Dualität und Relaxierungen zu einer Lösung zu kommen.
Schnittebenenverfahren Neue Ungleichungsnebenbedingungen werden generiert und hinzugenommen, um fraktionale Lösungen unzulässig zu machen. Wird auch oft zur Berechnung von oberen/unteren Schranken in Verbindung mit Branch-and-Bound verwendet (→ Branch-and-Cut).
,
144 Kapitel 9: Hybride MPC
Brach-and-Bound Erzeuge durch Festlegen einzelner Binärvariablen und Relaxierung der
restlichen ganzzahligen Variablen quadratische Programme in einer Baumstruktur, die
nur reelle Variablen enthalten und deshalb effizient zu lösen sind, um untere/obere
Schranken zu generieren und Teilbäume von der Suche nach dem ganzzahligen Optimum ausschließen zu können (umgeht vollständige Enumeration).
Die Problemstruktur zeichnet sich dadurch aus, dass die Hessematrizen der QPs (im Branchand-Bound) konstant sind, also nur einmal, nicht in jedem Teilproblem neu, berechnet/approximiert werden müssen. Des weiteren erhält man Dreiecksmatrizen für die Si , die Fi sind
oft dünn besetzt.
9.4
Messrauschen und hybride MPC
Bisher haben wie immer Systeme betrachtet, bei denen zwischen verschiedenen Modellgleichungen o. ä. umgeschaltet wird. Im Weiteren sollen Möglichkeiten zur Modifikation des
MPC-Algorithmus betrachtete werden, um robustere Kontrollgesetze zu erhalten, in denen
das berechnete Feedback nicht nur vom Zustand abhängt, sondern eine zusätzliche Dynamik besitzt. Als Motivation und Beispiel wann ein reines Zustandsfeedback nicht robust ist,
betrachten wir sogenanntes Messrauschen. Dies kann so interpretiert werden, dass das zu
regelnde System nicht im Voraus vollständig bekannt ist, oder das durch die Messung“ des
”
Zustandes Fehler auftreten, etwa durch den Beobachter. Dies kommt in der Praxis fast immer vor, ist also kein künstliches Problem. In einem Zustand x wird also nicht eine Kontrolle
u(x) berechnet und angewendet, sondern ein u(x + e), wobei e das Messrauschen, also einen
Fehlervektor darstellt. Grundlage für dieses Kapitel wird dabei die Arbeit von S. Tuna, R.
Sanfelice, M. Messina und A. Teel [66] bilden.
9.4.1
Modellproblem
Die Effekte von Messrauschen sollen an folgendem Modellproblem betrachtet werden:
ẋ = v,
(9.31)
wobei x ∈ R2 der Zustand, etwa die Position eines Wagens, und v ∈ B1 (x) die Kontrolle,
also etwa die Geschwindigkeit, darstellen. Aufgaben sollen sein
ˆ Anfahren“ eines Punktes von beliebiger Startposition (also global)
”
ˆ Anfahren“ eines von zwei Punkten, abhängig von der Startposition (auch global)
”
Die Lösung dieser Aufgaben soll dabei mit stückweise konstanten Kontrollen geschehen (also
etwa über einen digitalen Regler). Die Diskretisierung des Systems führt zu dem hier oft
verwendeten Standard-Beispiel
xk+1 = xk + uk ,
(9.32)
mit uk ∈ Bδ (xk ) und stets δ ∈ (0, 1].
145
9.4 MPC für MLD-Systeme
9.4.2
Regelung zu einem Punkt
Voraussetzung:
Es sei κδ : R2 → Bδ eine Familie stetiger Feedbacks, die Stabilität und globale asymptotische
Konvergenz des Systems ohne Messrauschen zu (oBdA.) x∗ = 0 garantieren.
Wir betrachten also zunächst nicht die Generierung des Feedbacks, sondern setzen es als
bekannt voraus, zum Beispiel durch den Standard-MPC-Algorithmus bestimmt.
Speziell werden im Folgenden Feedbacks der Form
κδ (x) =
−δx
max {1, |x|}
(9.33)
betrachtet.
Dass die Voraussetzung erfüllt ist, kann leicht nachgerechnet werden. Zusätzlich benötigen
wir noch die Hilfsfunktion
γ(s, δ) :=
max{1, s} − δ
δ
=1−
.
max{1, s}
max{1, s}
(9.34)
γ(·, δ) ist monoton wachsend und natürlich gilt γ(s, δ) < 1 ∀(s, δ).
Betrachtet man jetzt das Systemverhalten unter Messrauschen e, so erhält man
|x + κδ (x + e)| ≤
|x| (max{1, |x + e|} − δ) + δ|e|
.
max{1, |x + e|}
(9.35)
Falls für den Fehler gilt |e| ≤ 0.5|x|, erhält man
|x + κδ (x + e)| ≤ |x|γ(1.5|x|, 0.5δ) = |x| −
0.5δ|x|
.
max{1, 1.5|x|}
(9.36)
Folgerung:
Die Trajektorie der Zustände x konvergiert gegen eine Umgebung von x∗ , deren Größe proportional zu max |e| ist, unabhängig davon, wie klein δ ist (also macht ein kleineres SamplingIntervall das System nicht anfälliger für Messrauschen).
146 Kapitel 9: Hybride MPC
9.4.3
Regelung zu zwei Punkten
Während also bei der zuvor betrachteten Aufgabe die Feedback-Kontrolle unabhängig von δ
stets konvergiert, sieht es hier anders aus. Betrachten wir konkret das Ziel, zu zwei Punkten
xa 6= xb zu steuern, wie in der folgenden Grafik dargestellt.
xb
Hb
xa
Ha
Abbildung 9.2: Aufgabenstellung
Eine Problemstellung dieser Art kommt relativ häufig vor, denn wie Abbildung 9.3 zeigt,
können zum Beispiel kurz vor Erreichen der Endpunktmenge Beschränkungen aktiv werden,
so dass der Algorithmus entscheiden muss, ob er das System (in diesem Fall) oben oder unten
am Hindernis vorbeiregelt.
Abbildung 9.3: Anwendungsbeispiel Hindernisvermeidung
147
9.4 MPC für MLD-Systeme
Dabei sind Hi := {y ∈ R2 | y → xi }, i = a, b mit den folgenden leicht zu überprüfenden
Eigenschaften:
ˆ Ha und Hb wohldefiniert
ˆ Ha ∩ Hb = ∅
ˆ H a ∪ H b = R2
ˆ Ha 6= ∅, Hb 6= ∅
ˆ Ha , Hb sind vorwärts invariant.
Definiere H := Ha ∩ Hb . ⇒ ∀x ∈ H ∃ Umgebung U(x) mit U(x) ∩ Ha 6= ∅ 6= U(x) ∩ Hb .
Zusammen erhält man damit
Bδ (H) := {x ∈ R2 | d(x, H) < δ} ∋ y ⇒ ∃e : |e| < δ s.d. y + κ(y + e) ∈ Bδ (H).
(9.37)
Betrachte (oBdA) y ∈ Ha ∩ Bδ (H). Dann existiert z mit |y − z| < δ und z ∈ Hb . Somit ist
auch z + κ(z) ∈ Hb . Betrachte Störung e := z − y und y + κ(y + e).
| {z }
=z
H
xb
z
y
Hb
e
xa
Ha
B
Abbildung 9.4: Regelung zu zwei Punkten: Startsituation
Falls y + κ(y + e) ∈ Hb gilt, muss y + κ(y + e) ∈ Bδ (H) sein, da ein Punkt auf der Verbindungsstrecke von y und y + κ(y + e) in H liegen muss und wegen |κ(y + e)| < δ die Länge
dieser Strecke kleiner als δ ist.
148 Kapitel 9: Hybride MPC
H
z
xb
Hb
y
xa
B
Ha
Abbildung 9.5: Regelung zu zwei Punkten, 1.Fall: y + κ(y + e) ∈ Hb
Falls y + κ(y + e) ∈ Ha liegt folgt, dass y + κ(y + e) ∈ Bδ (H) sein muss, da ein Punkt auf
der Verbindungsstrecke von y + κ(y + e) und y + e + κ(y + e) sich in H befinden muss und
wegen |e| < δ die Länge dieser Strecke kleiner als δ ist.
H
z
xb
Hb
y
xa
Ha
Abbildung 9.6: Regelung zu zwei Punkten, 2.Fall: y + κ(y + e) ∈ Ha
B
149
9.4 MPC für MLD-Systeme
Zusammengefasst:
Für Punkte y ∈ Ha ∩ Bδ (H), z ∈ Hb ∩ Bδ (H) und eine Störung e := z − y ist auch
y + κ(y + e) ∈ Bδ (H). Somit existiert für jeden Anfangswert y0 ∈ Bδ (H) eine Störfolge
(ek )k∈N mit |ek | < δ, so dass die Lösung des Systems für alle Zeiten in dieser Umgebung
Bδ (H) bleibt. Unabhängig wie das Feedback generiert wird, führt jedes δ > 0 dazu, dass
globale Konvergenz verhindert wird.
Abbildung 9.7 zeigt, wie sich dies auf das zuvor genannte Beispiel der Hindernisvermeidung
auswirkt:
Abbildung 9.7: Unmöglichkeit der Hindernisvermeidung
9.4.4
Modifikationen des MPC-Algorithmus
Standard-MPC
Bevor Modifikationen vorgestellt werden, wird hier nochmals kurz die verwendete Notation
zusammengefasst. Stabilisiere A ⊂ X , X ⊆ Rn offen.
ˆ Eingabefolge u = {u0, u1 , . . . }, ui ∈ U
ˆ Zustandsmaß σ : Rn → [0, ∞) mit
– σ(x) = 0 ∀x ∈ A
– σ(x) ∈ (0, ∞) ∀x ∈ X
– σ(x) → ∞ falls x unbeschränkt oder unzulässig
ˆ laufende Kosten ℓ : Rn × U → [0, ∞) mit ℓ(x, u) ≥ σ(x)
ˆ Endkosten g : Rn → [0, ∞) mit g(x) ≥ σ(x)
ˆ Kostenfunktional
JN (x, u) :=
N
−1
X
k=0
ℓ(ϕ(k, x, u), uk ) + g(ϕ(N, x, u))
150 Kapitel 9: Hybride MPC
und Wertefunktion
VN (x) = inf JN (x, u),
u
wobei ϕ(k, x, u) die Lösung des Systems.
MPC mit Gedächtnis
Für Zustandsfeedbacks wie sie vom MPC-Algorithmus generiert werden, tritt oben beobachtetes Robustheitsproblem auf. Eine einfache Abhilfe wäre hier eine Erhöhung des Ausführungshorizontes, d. h. es wird nicht nur die erste Komponente der berechneten Kontrollfolge
angewendet, sondern Ne ≥ 2, bevor neu optimiert wird. Der Vorteil liegt auf der Hand:
Falls das System in einem Gebiet besonders anfällig für Messrauschen ist, besteht die Hoffnung, dass dieses Gebiet verlassen wird, bevor neue Berechnungen stattfinden. Falls aber die
Systemdynamik schnell ist, kann unter Umständen keine Stabilität mehr garantiert werden
(open-loop-Steuerung).
Eine Idee zur Abhilfe ist, sich die berechnete Kontrollfolge für einen Schritt zu merken, eine
neue Folge zu berechnen und dann anhand eines zu definierenden Kriteriums zu entscheiden,
ob die erste Komponente der alten oder neuen Kontrollfolge angewandt werden soll.
Wie entscheidet man, welche Kontrolle verwendet werden soll? Definiere dazu
ˆ buffer gain (Sicherungsfaktor) µ > 1
ˆ memory horizon (Erinnerungszeitraum) M ∈ N
ˆ Ω := {ω1 , . . . , ωM }, ωi ∈ U
Definiere zu x ∈ X
v = {v0 , v1 , . . . } := argmin JN (x, u)
u
w = {w0 , w1 , . . . } := argmin JN (x, u)
s.t. ui−1 = ωi ∀i = 1, . . . , M
u
WN (x, Ω) := inf JN (x, u)
u
s.t. ui−1 = ωi ∀i = 1, . . . , M
Wähle dann als Feedback
κ̄N (x, Ω) =
πN (x, Ω) =
(
v0
falls WN (x, Ω) > µVN (x)
w0 falls WN (x, Ω) ≤ µVN (x)
(
{v1 , . . . , vM }
falls WN (x, Ω) > µVN (x)
{w1 , . . . , wM }
falls WN (x, Ω) ≤ µVN (x)
Dies führt zu dem neuen System
xk+1 = f (xk , κ̄N (xk , Ωk ))
Ωk+1 = πN (x, Ωk )
Man kann beweisen, dass dieses System die Robustheit erhöht, die längliche Rechnung mit
vielen Abschätzungen soll hier aber nicht explizit aufgeführt werden.
151
9.4 MPC für MLD-Systeme
MPC mit Logik
Eine andere Idee ist es, den Zustand mit einer logischen Variable zu erweitern, um Hysterese–
S
artiges Verhalten zu erreichen. Dazu unterteilt man den zulässigen Bereich X in X = q∈Q Xq
mit Q := {1, . . . , q̄}. Weiter definiert man
ˆ q-Zustandsmaß σq : Rn → [0, ∞) mit σq (x) ≥ σ(x)
ˆ ℓq : Rn × U → [0, ∞) mit ℓq (x, u) ≥ σq (x), auch gq wie oben mit gq (x, u) ≥ σq (x)
ˆ q-Kostenfunktional
JNq (x, u)
:=
N
−1
X
ℓq (ϕ(k, x, u), uk ) + gq (ϕ(N, x, u))
k=0
und q-Wertefunktion
VNq (x) = inf JNq (x, u)
u
Sei wieder µ > 1. Zu gegebenem x ∈ X sei
vq = {v0q , v1q , . . . } := argmin JNq (x, u) und
u
q := argmin VNq (x).
∗
q∈Q
Definiere damit
κ̄N (x, q) :=
θN (x, q) :=
( ∗
∗
v0q , falls VNq (x) > µVNq (x)
∗
v0q , falls VNq (x) ≤ µVNq (x)
(
∗
q ∗ , falls VNq (x) > µVNq (x)
q,
∗
falls VNq (x) ≤ µVNq (x)
Das closed-loop-System für diesen Algorithmus ergibt sich dann zu
xk+1 = f (xk , κ̄N (xk , qk ))
qk+1 = θN (xk , qk )
Wiederum kann man nachweisen, dass diese Modifikation die Robustheit erhöht.
Bemerkung 9.13. In der Arbeit von S. Tuna, R. Sanfelice, M. Messina und A. Teel [66]
finden sich hierzu die entsprechenden Abschätzungen sowie Beispiele. Dort wird auch gezeigt, dass bestimmte kompliziertere Aufgaben, wie etwa zusätzliche Hindernisvermeidung,
erst durch diese Änderungen mit MPC lösbar werden.
152 Kapitel 9: Hybride MPC
Kapitel 10
Grenzen von MPC
Das folgende Kapitel orientiert sich an den Arbeiten von G. Grimm, M.J. Messina, S.E.
Tuna und A.R. Teel [29] sowie von L. Grüne [33] und beschäftigt sich mit den Fragen
ˆ Was ist Robustheit?
ˆ Wozu ist Robustheit wichtig?
ˆ Wie sehen hinreichende Bedingungen für Robustheit aus?
10.1
Grundlagen
10.1.1
Begriffsklärung
Im gesamten Abschnitt wird das diskrete Kontrollsystem
x+ = f (x, u)
(10.1)
mit x ∈ Rn als Zustand, u ∈ Rm der Kontrolle und x+ dem Zustand in der nächsten
Zeitinstanz betrachtet.
Die Kostenfunktion sei hierbei durch
JN (x, uN ) := g(ϕ(N, x, uN )) +
N
−1
X
l(ϕ(k, x, uN ), u(k))
(10.2)
k=0
+
n
m
gegeben, wobei g : Rn 7→ R+
0 die Endkosten beschreibt und l : R × R 7→ R0 die Zustandskosten sind.
Das Optimierungsproblem ergibt sich somit zu VN (x) := inf uN JN (x, uN ) bezüglich
u(k) ∈ U, k ∈ [0, N − 1]
ϕ(k, x, uN ) ∈ X , k ∈ [0, N − 1]
ϕ(N, x, uN ) ∈ Xf
153
(10.3)
154 Kapitel 10: Grenzen von MPC
mit U ⊆ Rm die Menge der zulässigen Kontrollen, Xf ⊆ Rn die Menge der zulässigen
Endzustände (Endbeschränkung) und X ⊆ Rn die Menge der allgemein zulässigen Zustände
(Nebenbedingungen).
Weiter bezeichne κN das vom MPC generierte Feedback zu einem Kontrollsystem (10.1).
Definition 10.1 (Asymptotisch Stabil).
Der Ursprung des Systems x+ = f (x, κx) heißt asymptotisch stabil in einer Umgebung
F ⊆ Rn des Ursprungs, wenn es eine KL-Funktion β gibt, so dass kϕ(k, x)k 6 β(kxk, k), k ∈
N, ∀x ∈ F gilt.
Definition 10.2 (Robust asymptotisch stabil).
Der Ursprung des Systems x+ = f (x, κx) heißt robust asymptotisch stabil im Innern
von F unter Berücksichtigung von Messfehlern und zusätzlicher Störung, wenn es eine KLFunktion β gibt zu der für alle ε > 0 und kompakte Mengen C ⊂ int(F ) ein δ > 0 existiert,
so dass für alle {eK , dK } (Messfehler, zusätzliche Störung), die
i) max{keK k∞ , kdK k∞ } 6 δ
ii) ϕed (k, x) ∈ C ∀ k ∈ [0, K]
erfüllen, kϕed (k, x)k 6 β(kxk, k) + ε gilt.
Der Ursprung ist robust asymptotisch stabil in int(F ) unter Berücksichtigung von Messfehlern/zusätzlicher Störung, wenn die Bedingungen mit kdK k∞ = 0/keK k∞ = 0 erfüllt sind.
Für weitergehende Informationen sei hier auf die Arbeit von L. Grüne [33, S. 77] verwiesen.
10.1.2
Sätze
Satz 10.3 (Lyapunov–Funktion ⇒ asymptotische Stabilität).
Wenn es eine Lyapunov–Funktion zum Kontrollsystem (10.1) in F mit {0} ∈ int(F ) gibt
und F vorwärts invariant ist, dann ist der Ursprung asymptotisch stabil in einer Umgebung
N mit F ⊆ N.
Ein Beweis hierzu kann in der Arbeit von L. Grüne [33] nachgelesen werden.
Für die Umkehrung dieses Satzes benötigt man weitere Annahmen:
Annahme 10.4.
(A1) Es bezeichne FN die Menge der Punkte, für die die Nebenbedingungen erfüllt werden
können, und O eine Umgebung des Ursprungs. Weiter sei FN 6= ∅, O ⊂ FN und für
alle x ∈ FN existiere eine Steuerfolge u∗N so dass VN (x) = JN (x, u∗N ).
(A2) Es gebe eine K∞ -Funktion α1 , so dass l(x, u) > α1 (kxk), ∀u ∈ U.
(A3) Es gebe eine K∞ -Funktion α2 , so dass VN (x) 6 α2 (kxk), ∀x ∈ FN .
155
10.1 Grundlagen
(A4) Sei Xf ⊂ X und es existiere ein Feedback κf : Rn 7→ Rm , das für alle x ∈ Xf die
folgenden Bedingungen erfüllt:
1. κf (x) ∈ U
2. f (x, κf (x)) ∈ Xf und
3. g(f (x, κf (x))) − g(x) 6 −l(x, κf (x)).
Satz 10.5 (Asymptotische Stabilität ⇒ Lyapunov–Funktion).
Sei das Optimierungsproblem (10.2),(10.3) gegeben. Unter den Annahmen (A1)-(A4) ist der
Ursprung des Kontrollsystems x+ = f (x, κ(x)) asymptotisch stabil und die Zielfunktion VN
ist eine Lyapunov–Funktion.
Beweis. Wegen (A4) ist FN vorwärts invariant. Für x ∈ FN sei u∗N eine minimierende
Steuerfolge. Dann ist
vN := {u∗ (0), u∗(1), . . . , u∗(N − 1), κf (ϕ(N, x, u∗N ))}
eine zulässige Eingabefolge für f (x, κN (x)) und kann somit benutzt werden, um die Wertefunktion VN (f (x, κN (x))) von oben zu beschränken. Aus (A2) und (A4) folgt, dass
VN (f (x, κN (x))) − VN (x) 6 −α1 (kxk),
außerdem folgt aus (A2) und (A3)
α1 (kxk) 6 l(x, κN (x)) 6 VN (x) 6 α2 (kxk).
Damit ist VN Lyapunov–Funktion in FN und die asymptotische Stabilität folgt aus dem Satz
10.3.
Satz 10.6 (Stetiges Feedback ⇒ Robustheit).
Sei der Ursprung des Kontrollsystems (10.1) asymptotisch stabil in einer Umgebung von F .
Ist nun κ stetig im Innern von F , so ist der Ursprung robust asymptotisch stabil.
Der Beweis hierzu wird ausführlich im Artikel von G. Grimm, M.J. Messina, S.E. Tuna und
A.R. Teel [29] geführt.
Satz 10.7 (Stetige Lyapunov–Funktion ⇒ Robustheit).
Gibt es eine auf dem Innern von F stetige Lyapunov–Funktion, dann ist der Ursprung des
Kontrollsystems (10.1) robust asymptotisch stabil.
Beweis. Seien α1 , α2 , α3 K∞ -Funktionen passend zur Lyapunov–Funktion V . Sei weiter
β(s, k) := α1−1 (µ(α2 (s), k))
mit einer KL-Funktion µ, die die Lösung des Anfangswertproblems
1
η(k + 1) = η(k) − α3 ( α2−1 (η(k)))
2
mit
η(0) = s
156 Kapitel 10: Grenzen von MPC
darstellt.
Zu gegebenem ε und einer kompakten Menge C ⊂ int(F ) sei ε̃ definiert durch
1
1
ε̃ := {α1−1(α2 + α3−1 )}−1 (ε).
2
2
Sei δ > 0 so gewählt, dass gilt
⇒
max{kek, kdk} 6 δ
n
sup max kV (f (x + e, κ(x + e))) − V (f (x, κ(x + e)))k,
x∈C
kV (f (x, κ(x + e)) + d) − V (f (x, κ(x + e)))k,
kV (x + e) − V (x)k,
o
1
kα3 (kx + ek) − α3 (kxk)k 6 α3−1 (ε̃).
8
Seien {eK , dK } Messfehler und Störung, die die Definition 10.2 mit δ und C erfüllen. Dann
gilt für x ∈ C, e ∈ eK und d ∈ dK :
3
V (f (x, κ(x + e)) + d) − V (x) 6 V (f (x + e, κ(x + e))) − V (x + e) + α3−1 (ε̃)
8
1 −1
(10.4)
6 −α3 (kxk) + α3 (ε̃)
2
Ist nun |x| > ε̃, so kann Obiges umgeformt werden zu
1
V (f (x, κ(x + e)) + d) − V (x) 6 − α3 (kxk)
2
Daher gilt V (ϕed (k, x)) 6 µ(V (x), k) und somit
kϕed (k, x)k 6 β(kxk, k) für kxk > ε̃.
(10.5)
Für kxk 6 ε̃ folgt aus (10.4):
1
V (f (x, κ(x + e)) + d) 6 V (x) + α3−1 (ε̃)
2
und somit, dass
1
kf (x, κ(x + e)) + dk 6 α1−1 (α2 (ε̃) + α3−1 (ε̃)) 6 ε.
2
Es gilt also weiter
kϕed (k, x)k 6 max{β(kxk, k), ε} 6 β(kxk, k) + ε
für alle k ∈ {0, . . . , K} und somit folgt die robuste asymptotische Stabilität.
(10.6)
157
10.2 Beispiele
10.1.3
Lineare Systeme
Sei nun x ∈ FN und u∗N eine minimierende Steuerfolge, die Bedingungen aus Annahme (A1)
gelten und das MPC–Feedback κN : Rn 7→ Rm sei definiert als
κN (x) := u∗ (0),
(10.7)
also als das erste Element von u∗N .
Satz 10.8 (Stetige Kostenfunktionen ⇒ Stetigkeit von VN ).
Sind die Zustandskosten l, die Endkosten g und die mengenwertige Abbildung WR stetig und
lokal beschränkt im Innern von FN , so ist die Zielfunktion VN stetig im Innern von FN .
Satz 10.9 (Stetigkeit der mengenwertigen Abbildung im linearen Fall).
Sei das Optimierungsproblem (10.2), (10.3) mit f (x, u) = Ax + Bu gegeben. Sind die Beschränkungen Xf , X , U konvex und U beschränkt, Dann ist für jeden Horizont N ∈ N0 WR
lokal beschränkt und stetig im Innern von FN .
Für einen Beweis dieser Sätze sei auf die Arbeiten von J.P. Aubin und A. Cellina [2, Chapter
1, Section 3] und F.H. Clarke [17, Chapter 6, Corollary 1] verwiesen.
Aus den letzten Sätzen folgt direkt:
Lemma 10.10 (Robuste asymptotische Stabilität für lineare Systeme).
Sei κN das vom MPC generierte Feedback zum Optimierungsproblem (10.2),(10.3) für ein
lineares Kontrollsystem x+ = Ax + Bu unter den Vorraussetzungen von Satz 10.5 und konvexem U, X , Xf und beschränktem U. Außerdem seien l und g stetig. Dann ist der Ursprung
des Kontrollsystems robust asymptotisch stabil.
10.2
Beispiele
In drei (notwendigerweise) nichtlinearen, asymptotisch stabilen Beispielen wird gezeigt, dass
diese nicht robust asymptotisch stabil unter Berücksichtigung von Messfehlern/zusätzlicher
Störung sind.
10.2.1
Artsteins Kreise mit Nebenbedingungen
Sei das Kontrollsystem x+ = f (x, u) gegeben durch
x+
1 =
x+
2 =
−(x21 +x22 )u+x1
1+(x21 +x22 )u2 −2x1 u
x2
1+(x21 +x22 )u2 −2x1 u
(10.8)
.
(10.9)
Dies entspricht dem kontinuierlichen System ẋ1 = (x21 −x22 )u, ẋ2 = 2x1 x2 u. Eine Besonderheit
des Systems ist, dass der Zustand, befindet er sich auf einem Kreis
x21 + (x2 − r)2 = r 2 , ∀r ∈ R
(10.10)
158 Kapitel 10: Grenzen von MPC
unabhängig vom Eingang auf dem Kreis bleibt. Für nähere Erläuterungen zu Artsteins Kreisen sei auf die Arbeit von L. Grüne [33] verwiesen. Für dieses System gibt es im Ursprung kein
stabilisierendes Feedback. Jetzt nehmen wir einen MPC Algorithmus an, der den Ursprung
von (10.9) unter Berücksichtigung des Eingangs und der Nebenbedingungen
u ∈ [−1, 1] =: U
(10.11)
2
x ∈ {x ∈ R : x1 ≤ c} =: X , c ∈]0, 1[
(10.12)
stabilisiert.
Zudem sei ein derartiges Kostenfunktional gegeben, so dass g(x) die Länge des kürzeren
Kreissegments (von (10.10)) zwischen x und dem Ursprung, und l(x) die Länge des kürzeren
Kreissegments zwischen x und f (x, v), v ∈ U und f (x, v) der Punkt ist, der am nähesten am
Ursprung liegt und von x aus in einem Schritt erreicht werden kann. Außerdem sei
Xf = εB2 ,
(10.13)
so dass Xf ⊂ X und
κf (x) = −1
κf (x) = 1,
∀x1 > 0,
∀x1 < 0.
(10.14)
(10.15)
Mit diesen Parametern werden die Vorraussetzungen von Satz 10.5 erfüllt und das Feedback
κN stabilisiert den Ursprung.
Abbildung 10.1:
steins Kreise
Art-
Im Folgenden wird nur der Fall x2 > 0 betrachtet, da die Trajektorien einfach an der x1 Achse gespeigelt werden können.
159
10.2 Beispiele
√
Nun sei (10.10) mit r = rc , rc := c/ 1 − c2 der kritische Kreis. Also gibt es für keinen
Startwert außerhalb des kritischen Kreises mit
√
1+c
|x2 | > c √
=: x2,b′
1−c
eine Steuerfolge, die rechtsherum (im Uhrzeigersinn) in den Nullpunkt steuert ohne U oder
Nebenbedingungen zu verletzen. Hierbei beschreibt x2,b′ die x2 Komponente des oberen
Schnittpunkts des kritischen Kreises mit der Grenze der Nebenbedingung (vergleiche Punkt
b′ in Abbildung 10.1).
Proposition 10.11 (Robustheit des Ursprungs bei Artsteins Kreisen).
Das System (10.9) ist unter Berücksichtigung von Messfehlern/Störungen im Ursprung nicht
robust asymptotisch stabil im Innern des zulässigen Bereichs.
Beweis. Der in der Zeichnung schraffierte Bereich ist der durch die Nebenbedingungen ausgeschlossene Wertebereich (im vorliegenden Fall also R2 \ X ). Der durchgezogene Kreis
ist der kritische Kreis (mit f (b′ , −1) = b′′ ). Der gestrichelte Kreis ist der durch e, d und
(0, 0) eindeutig festgelegte. Desweiteren sei der Horizont N groß genug gewählt, so dass
a, b, d, e ∈ int(FN ).
Sei nun der Zustand x = a mit f (a, −1) = b sowie f (b, −1) = b′ . Zum nächsten Zeitpunkt
wird das Feedback den Zustand auf b steuern, da (falls es keine Störung gibt) eine zulässige,
optimale Trajektorie über b′ und b′′ existiert.
Kommen jetzt ungünstige Störungen hinzu, könnte der Zustand in d landen, oder tatsächlich
in b sein, aber wegen Messungenauigkeiten so erscheinen, als wäre er in d. Von d aus ist die
Trajektorie im Uhrzeigersinn allerdings (wegen der Nebenbedingungen) nicht zulässig und
die einzig mögliche Steuerung ist gegen den Uhrzeigersinn. Kommen in diesem Schritt wieder
ähnliche Störungen hinzu, die den Zustand zurück auf den kritischen Kreis bringen, oder es
zumindest durch Messungenauigkeit so erscheinen lassen, wäre der Zustand wieder in a statt
in e.
Von a aus könnte das Ganze von vorne beginnen, womit der Zustand für unbestimmte Zeit
zwischen a, b, d, e kreisen würde. Dies bedeutete, dass die gestörte Lösung ϕe (x, k) in der
kompakten Menge C ⊂ int(FN ) bleibt und nicht gegen den Ursprung konvergiert. Das Resultat folgt aus Definition 10.2.
Korollar 10.12 (Stetigkeit bei Artsteins Kreisen).
Im Kontrollsystem (10.9) ist weder die Zielfunktion VN noch das Feedback κN stetig im
Innern von FN .
Beweis. Würde eine der beiden Aussagen zutreffen, so wäre das System robust asymptotisch
stabil. Dies steht im Widerspruch zu Proposition 10.11.
10.2.2
Ursprung als Endbeschränkung
Sei folgendes Kontrollsystem f (x, u) gegeben:
x+
1 = x1 (1 − u)
x+
2 = kxku
(10.16)
160 Kapitel 10: Grenzen von MPC
mit
u ∈ [0, 1] =: U
und
x ∈ R2 =: X .
(10.17)
Mit Hilfe der Lyapunov–Funktion V (x) = kxk2 kann die globale asymptotische Stabilität des
Ursprungs für die konstante Steuerung u = 0.5 gezeigt werden. Der mögliche Wertebereich
für x+ liegt auf dem Geradenstück zwischen (0, kxk) und (x1 , 0). Dies impliziert, dass x+ 6= 0
wenn x1 6= 0 und dass (u(0), u(1)) = (1, 0) die einzige Steuerung ist, die von einem beliebigen
Punkt mit x1 6= 0 in zwei Schritten den Ursprung erreicht.
Nun bemühen wir einen MPC–Alghoritmus mit Horizontlänge N = 2 um den Ursprung
mit Xf zu stabilisieren. Werden nun l, g und κf beliebig zulässig gewählt, (z.B. l(x, u) 6
α(kxk), α ∈ K∞ ; g(x) = 0 und κf (x) = 0), so stabilisiert das Feedback κ2 (x) den Ursprung
nach Satz 10.5 global asymptotisch stabil. Trotzdem gibt es keine Robustheit.
Abbildung 10.2: Ursprung
als
Endbeschränkung
Proposition 10.13 (Robustheit des Ursprungs).
Das System (10.16) ist unter Berücksichtigung von Störungen/Messfehlern im Ursprung
nicht robust asymptotisch stabil.
Beweis. Wegen der Eindeutigkeit der optimalen Steuerfolge muss zwingend gelten
κ2 (x) = 1, ∀x1 6= 0.
Nun können beliebig kleine Messfehler oder Störungen den (gemessenen) Zustand auf x1 6= 0
halten, wodurch x2 = kxk mit jedem Iterationsschritt wachsen und sogar gegen ∞ gehen
kann. Das Ergebnis folgt aus Definition 10.2.
161
10.2 Beispiele
10.2.3
Einheitsscheibe als Endbeschränkung
Sei folgendes stetiges Kontrollsystem f (x, u) gegeben:
sin(u1 )
+
sin(u2 ) + γ(θx )x π8 cos(u2) ,
x = (1 + |x1 |)
cos(u1 )
mit
(10.18)
π
π
x1
∈ R2 =: X .
und
x=
∈ [0, ] × [0, ] =: U
u=
x2
4
2
Sei θ der Winkel von der positiven vertikalen Achse (x2 ) zum Zustand und xf racπ8 der Zustand
um π8 im Uhrzeigersinn gedreht. Zudem sei γ gegeben durch

1 , 0 6 θ < π2


 2
− π θ + 2 , π2 6 θ < π
γ(θ) :=
2
θ − 2 , π 6 θ < 3π


2
 π
1 , 3π
6
θ
<
2π
2
u1
u2
In diesem System kann der Zustand von manchen Punkten aus mit der Folge
0
·
(u(0), u(1)) =
, π
π
2
2
in zwei Schritten auf die Einheitsscheibe B2 =: Xf gesteuert werden. Die Einzigartigkeit folgt
daraus, dass es von der Menge
π
S π2 := {z ∈ R2 : |z| > 1, θ ∈]0, ]}
2
aus keine Steuerfolge in U gibt, die den Zustand in B2 bringt.
Dies ist nicht der Fall für
x ∈ S π4
und
∗
f (x, U) ⊂ S := S π2 ∪
da hier der Zustand erst auf
0
1 + |x1 |
,
0
1 + |x1 |
gebracht werden kann und von dort aus in
sin(u1 )
∈ B2 .
cos(u1 )
Man nehme nun eine MPC–Regelung mit Horizontlänge 2, die den Ursprung stabilisiert.
Außerdem sei
∞
X
g(x) :=
kϕ(k, x)k,
κf (x) = 0,
l(x, u) 6 α(kxk)
k=0
nach Satz 10.5 gewählt. Damit stabilisiert das angegebene Feedback κ2 zum Optimierungsproblem (10.2),(10.3) global (F2 = R2 ) den Ursprung, schafft aber keine Robustheit. Abbildung 10.3 verdeutlicht dies noch einmal graphisch.
162 Kapitel 10: Grenzen von MPC
Abbildung 10.3: Einheitsscheibe als Endbeschränkung
Proposition 10.14 (Robustheit des Ursprungs).
Das System (10.18) ist unter Berücksichtigung von Störungen oder Messfehlern im Ursprung
nicht robust asymptotisch stabil.
Beweis. Der Beweis gestaltet sich im Wesentlichen analog zum Beweis von Proposition 10.13.
Wie oben bereits beschrieben muss wegen der Eindeutigkeit der 2–Schritt Steuerung für
Anfangswerte aus S π4
0
,
∀x ∈ S π4
κ2 (x) =
π
2
gelten. Damit ergibt sich für alle x ∈ S π4 der Punkt
f (x, κ2 (x)) =
0
1 + |x1 |
,
der auf dem Rand von S π4 liegt. Nun können beliebig kleine Messfehler bzw. Störungen den
Zustand im Inneren von S π4 halten. Damit wäre dann
kϕe (k, x)k ≈ 1
bzw.
Die Behauptung folgt dann aus Definition 10.2.
kϕd (k, x) | ≈ 1,
∀k.
163
10.3 Fazit
10.3
Fazit
Obige Beispiele zeigen, dass MPC mit kurzen Horizonten, angewendet auf nichtlineare Systeme, asymptotische Stabilität ohne jegliche Robustheit produzieren können, wenn das Optimierungsproblem Zustandsbeschränkungen oder Endbeschränkungen enthält. Dies geschieht
nicht, wenn MPC auf lineare Systeme mit konvexen Beschränkungen angewendet wird, weil
dort die Zielfunktion stetig im Inneren des zulässigen Bereichs ist.
Da diese relativ einfachen Beispiele nicht physikalisch motiviert sind, muss sich in der Praxis
erst noch zeigen, ob die hier vorgeführten Phänomene auch in echten Steuerungssystemen
auftreten. Zumeist werden deratige Probleme schon während der Einführungsphase durch
Anpassen der Parameter von Ingenieuren gelöst.
164 Kapitel 10: Grenzen von MPC
Anhang A
Programmcode zur Generierung von
GPC–Lösungen
Der folgende Code wurde zur Generierung von Lösungen zu Beispiel 2.3 mit den dortigen
Parametern und der ebenfalls dort aufgeführten Referenztrajektorie geschrieben. Anweisungen zur Compilierung und graphischen Veranschaulichung können dem Programm selbst
entnommen werden.
/*----------------------------------------------------------*/
/* Beispiel zum Seminar Modellpraediktive Regelung
*/
/*
*/
/* kompilieren: gcc -lm -o bsp.exe plot_bsp.c
*/
/* fuer Animation: gnuplot ’input.lib’
*/
/* oder die einzelnen Bilder in gnuplot aufrufen
*/
/*
*/
/* HARALD VOIT, 27.04.2006
*/
/*----------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define xi() ((double)rand()/RAND_MAX*0.2-0.1)
int main(void)
{
int j, i;
double r[60], y[60], du[60];
char name[20];
FILE *fp;
srand(time(NULL));
for (i = 0; i < 60; i++)
/* Initialisierung */
165
166 Kapitel A: Programmcode zur Generierung von GPC–Lösungen
{
r[i] = sin((double) (i-2)/10)+1;
y[i] = 0.;
du[i] = 0.;
}
y[0] = 0.5; y[1] = 0.5;
du[0] = 0.; du[1] = 0.;
/* Referenztrajektorie */
/* Startwerte Ausgang */
/* Startwerte Regelung */
for (i = 2; i < 28; i++)
/* GPC Schleife */
{
y[i]
= 1.7*y[i-1]-0.7*y[i-2]+0.9*du[i-1]-0.6*du[i-2]+xi();
du[i]
= 0.6441*du[i-1]-1.7485*y[i]+0.7514*y[i-1]
+0.8947*r[i+1]+0.0929*r[i+2]+0.0095*r[i+3];
du[i+1] = 0.4484*du[i-1]-0.5935*y[i]+0.5231*y[i-1]
-0.8316*r[i+1]+0.8091*r[i+2]+0.0929*r[i+3];
du[i+2] = 0.0369*du[i-1]-0.0296*y[i]+0.0431*y[i-1]
-0.0766*r[i+1]-0.8316*r[i+2]+0.8947*r[i+3];
sprintf(name, "bsp%03d.dat", i);
/* Speichern */
fp = fopen(name, "w");
for (j = 0; j < i+2; j++)
fprintf(fp, "%3d %6.4f %6.4f\n", j, y[j], du[j]);
fprintf(fp, "%3d %6.4f %6.4f\n", i+2, y[i+2], du[i+2]); */
fclose(fp);
/*
sprintf(name, "bsp%03du.dat", i);
fp = fopen(name, "w");
fprintf(fp, "%3d %6.4f\n", i+1, du[i+1]);
fprintf(fp, "%3d %6.4f\n", i+2, du[i+2]);
fprintf(fp, "%3d %6.4f\n", i+3, du[i+2]);
fclose(fp);
/* Speichern */
}
fp = fopen("input.lib", "w");
/* für graph. Ausgabe */
for (i = 2; i < 28; i++)
fprintf(fp, "plot [x=0:30] [-0.5:2.5] sin((x-2)/10)+1 title \"r_t\",
’bsp%03d.dat’ using 3 with steps title \"Delta u_t\",
’bsp%03d.dat’ using 2 title \"y_t\", ’bsp%03du.dat’
with steps title \"Delta u+\"\npause 0.5\n", i, i, i);
fprintf(fp, "pause -1 \"RETURN\"\n");
fclose(fp);
return 0;
}
Anhang B
Erweiterter Kalman–Filter
Da nicht alle Zustandsgrößen messbar sein müssen, der MPC–Algorithmus jedoch für die
Prädiktion diese benötigt, kann es sein, dass man Zustandsgrößen rekonstruieren muss. Dies
kann im nichtlinearen Fall mit dem erweiterten Kalman–Filter geschehen.
Bemerkung B.1. Andere mögliche Arten der Rekonstruktion der Zustände sind ebenfalls
anwendbar, so ist etwa der Luenberger–Filter in der Industrie weit verbreitet, ebenso der
Kalman–Filter. Da diese beiden Arten von Beobachtern speziell für lineare Systeme entwickelt
worden sind, müssen entsprechende Erweiterungen für den nichtlinearen Fall vorgenommen
werden.
Direkt für nichtlineare Systeme konzipierte Konstruktionsverfahren für Beobachter können
ebenso verwendet werden. Hierzu zählt unter anderem das Backstepping–Verfahren.
Daher wird folgendes Modell zugrundegelegt:
Definition B.2 (Prozessmodell:).
Das Kontrollsystem mit Ausgang
¯
˙
x̄(t)
= f¯(x̄(t), ū(t)) + ξ(t)
(B.1)
ȳ(k) = ḡ(x̄(k), ū(k)) + ν̄(k)
(B.2)
wird Prozessmodell genannt. Hierbei bezeichnet x̄(t) ∈ Rn wieder den Zustand, ū(t) ∈ U ⊂
¯ ∈ Rn und
Rm die Steuerung und ȳ(k) ∈ Rk den Ausgang des Systems. Die Größen ξ(t)
ν̄(k) ∈ Rk seien unbekannte mittelwertfreiem, nicht miteinander noch mit den Zustandgrößen korrelierte weiße Gausssche Rauschprozesse mit bekannten Kovarianzmatrizen Q(t)
und R(k).
Die Schätzung der Zustandsgrößen kann nun rekursiv im Echtzeitbetrieb durch abwechselnde
Berechnung der Lösungen der Filter- und Prädiktiongleichungen erfolgen.
Definition B.3 (Präzisionsmatrix:).
Als Präzisionsmatrix bezeichnet man
n
T o
ˆ
ˆ
E x̄(t = 0) − x̄(t = 0) x̄(t = 0) − x̄(t = 0)
= P (t = 0).
167
(B.3)
168 Kapitel B: Erweiterter Kalman–Filter
Zu einem Zeitpunkt k des Eintreffens neuer Messwerte ȳ(k) aus dem Ausgang des Prozesses
ergeben sich folgende Filtergleichungen:
x̄ˆ(k|k) = x̄ˆ(k|k − 1) + K(k) ȳ(k) − ḡ(x̄ˆ(k|k − 1), ū(k − 1))
(B.4)
−1
K(k) = P (k|k − 1)H T (k) H(k)P (k|k − 1)H T (k) + R
(B.5)
P (k|k) = [I − K(k)H(k)] P (k|k − 1)
mit
H(k) =
∂ḡ(x̄(k), ū(k))
∂ x̄(k)
(B.6)
(B.7)
ˆ(k|k−1)
x̄=x̄
Hierbei wird K auch als Filterverstärkung bezeichnet.
Mit dieser neuen Schätzung des Zustandes kann dann die Berechnung auf dem Horizont
gestartet und eine entsprechende Steuerung u bestimmt werden.
Z tk+1
¯
f(x̄(t),
u(t))dt
(B.8)
x̄ˆ(k + 1|k) = x̄ˆ(k|k) +
t
P (k + 1|k) = P (k|k) +
Z k tk+1
tk
mit
F (t) =
F (t)P (t|k) + P (t|k)F T (t) + Q dt
∂ f¯(x̄(t), ū(k))
.
∂ x̄(t)
ˆ(t|k)
x̄=x̄
(B.9)
(B.10)
Anhang C
Matlab–Toolbox: Plots und Quelltext
C.1
Plots
Outputs
1
0
−1
y2
−2
−3
y1
−4
−5
0
2
4
6
8
10
Time
12
14
16
18
20
14
16
18
20
Manipulated Variables
8
6
4
u1
2
u2
0
−2
0
2
4
6
8
10
Time
12
Abbildung C.1: Simulation für die Fahrstufe D“ ohne Modellfehler. Man sieht, dass der
”
Regler das System asymptotisch stabil zur 0 regelt.
169
170 Kapitel C: Matlab–Toolbox: Plots und Quelltext
Outputs
1
0.5
0
−0.5
y2
−1
y1
−1.5
−2
−2.5
0
2
4
6
8
10
Time
12
14
16
18
20
14
16
18
20
Manipulated Variables
5
4
3
2
u1
1
u2
0
−1
0
2
4
6
8
10
Time
12
Abbildung C.2: Simulation für die Fahrstufe N“ ohne Modellfehler. Ebenso beim zweiten
”
Modell liefert der Regler ein asymptotisch stabiles Verhalten.
Outputs
20
y1
10
0
−10
−20
y2
0
2
4
6
8
10
Time
12
14
16
18
20
14
16
18
20
Manipulated Variables
20
15
u1
10
5
0
−5
−10
u2
0
2
4
6
8
10
Time
12
Abbildung C.3: Simulation für die Fahrstufe D“, wobei als Systemmodell die Fahrstufe N“
”
”
gewählt wurde. Man sieht, dass der Regler das System nicht stabilisieren kann.
171
C.1 Plots
Outputs
2
1
0
−1
−2
−3
0
2
4
6
8
10
Time
12
14
16
18
20
14
16
18
20
Manipulated Variables
4
3
u1
2
u2
1
0
−1
0
2
4
6
8
10
Time
12
Abbildung C.4: Simulation für die Fahrstufe N“, wobei als Systemmodell die Fahrstufe D“
”
”
gewählt wurde. Auch hier kann der Regler das System nicht stabilisieren.
Outputs
1
0
−1
−2
y2
−3
y1
−4
−5
−6
0
2
4
6
8
10
Time
12
14
16
18
20
14
16
18
20
Manipulated Variables
8
6
4
u1
2
u2
0
−2
0
2
4
6
8
10
Time
12
Abbildung C.5: Simulation für die Fahrstufe D“ ohne Modellfehler mit erhöhten Gewichts”
faktoren für die Bestrafung des Regeleingriffs in der Kostenfunktion.
172 Kapitel C: Matlab–Toolbox: Plots und Quelltext
Outputs
1
0
−1
u2
−2
u1
−3
−4
0
2
4
6
8
10
Time
12
14
16
18
20
14
16
18
20
Manipulated Variables
3.5
3
2.5
2
u1
1.5
u2
1
0.5
0
0
2
4
6
8
10
Time
12
Abbildung C.6: Simulation für die Fahrstufe N“, wobei als Systemmodell die Fahrstufe D“
”
”
gewählt wurde mit erhöhten Gewichtsfaktoren für die Bestrafung des Regeleingriffs in der
Kostenfunktion. Nun zeigt sich, dass der Regler auch für das System mit Modellfehler ein
stabilisierendes Ergebnis liefert.
173
C.1 Plots
Outputs
1
0
−1
−2
−3
y1 mit cmpc
y2 mit cmpc
−4
y1 mit mpcsim
y2 mit mpcsim
−5
−6
0
2
4
6
8
10
Time
12
14
16
18
20
Abbildung C.7: Vergleich von Simulationen für die Fahrstufe D“ ohne Modellfehler und
”
Prädiktionshorizont p = ∞. Durchgezogene Linien: cmpc mit Online-Optimierung des Kostenfunktionals. Strich-Punkt-Linien: mpcsim mit im Voraus berechneter Gain-Matrix. Es
zeigt sich kein wesentlicher Unterschied zwischen den verschiedenen Verfahren.
174 Kapitel C: Matlab–Toolbox: Plots und Quelltext
Outputs
1
0
−1
−2
−3
−4
y1 mit cmpc
y2 mit cmpc
y1 mit mpcsim
y2 mit mpcsim
−5
−6
−7
0
2
4
6
8
10
Time
12
14
16
18
20
Abbildung C.8: Vergleich von Simulationen für die Fahrstufe D“ ohne Modellfehler und
”
Prädiktionshorizont p = 80. Durchgezogene Linien: cmpc mit Online-Optimierung des Kostenfunktionals. Strich-Punkt-Linien: mpcsim mit im Voraus berechneter Gain-Matrix. Die
Online-Optimierung ist hier klar im Vorteil.
175
C.1 Plots
2
0
y1
−2
−4
−6
−8
0
2
4
6
8
10
Time
12
14
16
18
20
4
6
8
10
Time
12
14
16
18
20
0.8
0.6
y2
0.4
0.2
0
−0.2
0
2
Abbildung C.9: Simulation des linearen cmpc-Reglers an der nichtlinearen Regelstrecke, Ausgangsvariablen.
6
5
u1
4
3
2
1
0
−1
0
2
4
6
8
10
Time
12
14
16
18
20
4
6
8
10
Time
12
14
16
18
20
0.8
0.6
u2
0.4
0.2
0
−0.2
0
2
Abbildung C.10: Simulation des linearen cmpc-Reglers an der nichtlinearen Regelstrecke,
Kontrollvariablen.
176 Kapitel C: Matlab–Toolbox: Plots und Quelltext
C.2
Quelltext zu Kapitel 8.2
function bsp();
% Definition der Systemuebertragungsfunktionen
G1D = [0 0 9.62;1 2.4 5.05;0 0.16 0];
G2D = [0 15.9 15.9*3;1 2.4 5.05;0 0.04 0];
G1N = [0 0 20.5; 1 2.2 12.8; 0 0.16 0];
G2N = [0 47.6 47.6*3.5; 1 2.2 12.8; 0 0.04 0];
G0 = [0 0;0 0;0 0];
GI = [0 1;0 1;0 0];
% Approximation der Systemsprungfunktionen
tf = 4; % Endzeit der Approximation
ts = 0.1; % Abtastzeit
systemD = tfd2step(tf,ts,2,G1D,G0,G2D,GI);
systemN = tfd2step(tf,ts,2,G1N,G0,G2N,GI);
% Definition der Stoerungsuebertragungsfunktionen
% und Approximation der Stoerungssprungfunktionen
GdD = [0 -19.1 -19.1*3; 1 2.4 5.05; 0 0 0];
dD = tfd2step(tf,ts,2,GdD,G0);
GdN = [0 -19.1 -19.1*3.5; 1 2.2 12.8; 0 0 0];
dN = tfd2step(tf,ts,2,GdN,G0);
% Definition der Reglerparameter
ywt = [5 1]; % Gewichte fuer die Ausgaenge
uwt = [.5 .5]; % Gewichte fuer die Kontrolleingriffe
m = 10; % Kontrollhorizont
p = inf; % Praediktionshorizont
tfsim = 20; % Dauer der Simulation
r = [0 0]; % Setpunkte
ulim = [[-inf -0.7] [inf 0.7] [1e6 1.4]];
% Beschraenkungen an die Kontrolle
ylim = []; % Beschraenkungen an die Ausgaenge
tfilter = []; % Stoerungsfilter, -verzoegerung
dstep = 1; % Sprungfunktion fuer Stoerung
%================================================================
% 1. Simulation ohne Modellfehler
%===============================================================
% Fahrstufe D
C.2 Quelltext zu Kapitel 8.2
[y1,u1] = cmpc(systemD,systemD,ywt,uwt,m,p,tfsim,r,ulim,ylim,...
tfilter,dD,[],dstep);
figure; % neues Plotfenster
plotall(y1,u1,ts); % plottet Ausgaenge und Kontrollen
% Fahrstufe N
[y2,u2] = cmpc(systemN,systemN,ywt,uwt,m,p,tfsim,r,ulim,ylim,...
tfilter,dN,[],dstep);
figure;
plotall(y2,u2,ts);
%===============================================================
% 2. Simulation mit Modellfehler
%===============================================================
% Fahrstufe D
[y3,u3] = cmpc(systemD,systemN,ywt,uwt,m,p,tfsim,r,ulim,ylim,...
tfilter,dD,[],dstep);
figure;
plotall(y3,u3,ts);
%Fahrstufe N
[y4,u4] = cmpc(systemN,systemD,ywt,uwt,m,p,tfsim,r,ulim,ylim,...
tfilter,dN,[],dstep);
figure;
plotall(y4,u4,ts);
%===============================================================
% 3. Simulation mit erhoehtem Gewichtsfaktor fuer die Kontrolle
%===============================================================
uwt = [10 20]; % Gewichtsfaktor fuer die Kontrolle
% Fahrstufe D ohne Modellfehler
[y5,u5] = cmpc(systemD,systemD,ywt,uwt,m,p,tfsim,r,ulim,ylim,...
tfilter,dD,[],dstep);
figure;
plotall(y5,u5,ts);
% Fahrstufe N mit Modellfehler
[y6,u6] = cmpc(systemN,systemD,ywt,uwt,m,p,tfsim,r,ulim,ylim,...
tfilter,dN,[],dstep);
figure;
177
178 Kapitel C: Matlab–Toolbox: Plots und Quelltext
plotall(y6,u6,ts);
%===============================================================
% 4. Simulation - Vergleich zwischen cmpc und mpcsim
%===============================================================
Kmpc = mpccon(systemD,ywt,uwt,m,p); % Erstellung der Gain-Matrix
[y7,u7] = mpcsim(systemD,systemD,Kmpc,tfsim,r,ulim,tfilter,...
dD,[],dstep);
figure;
plot([0:ts:tfsim],y5(:,1),’-b’,[0:ts:tfsim],y5(:,2),’-k’,...
[0:ts:tfsim],y7(:,1),’-.b’,[0:ts:tfsim],y7(:,2),’-.k’);
legend(’y_1 mit cmpc’,’y_2 mit cmpc’,...
’y1 mit mpcsim’,’y_2 mit mpcsim’,0);
xlabel(’Time’);
title(’Outputs’);
%===============================================================
% 5. Simulation - Vergleich zwischen cmpc und mpcsim
% mit beschraenktem Praediktionshorizont
%===============================================================
p = 80; % neuer Praediktionshorizont
[y8,u8] = cmpc(systemD,systemD,ywt,uwt,m,p,tfsim,r,ulim,ylim,...
tfilter,dD,[],dstep);
Kmpc = mpccon(systemD,ywt,uwt,m,p);
[y9,u9] = mpcsim(systemD,systemD,Kmpc,tfsim,r,ulim,tfilter,...
dD,[],dstep);
figure;
plot([0:ts:tfsim],y8(:,1),’-b’,[0:ts:tfsim],y8(:,2),’-k’,...
[0:ts:tfsim],y9(:,1),’-.b’,[0:ts:tfsim],y9(:,2),’-.k’);
legend(’y_1 mit cmpc’,’y_2 mit cmpc’,...
’y1 mit mpcsim’,’y_2 mit mpcsim’,0);
xlabel(’Time’);
title(’Outputs’);
Literaturverzeichnis
[1] Allgöwer, F. ; Findeisen, R.: Introduction to Nonlinear Model Predictive Control.
In: Proceedings of the 21st Benelux Meeting on Systems and Control (2002)
[2] Aubin, J.P. ; Cellina, A.: Differential Inclusions. Springer–Verlag, Berlin, 1984 (Comprehensive Studies in Mathematics 264)
[3] Aufderheide, B. ; Bequette, B.W.: Extension of dynamic matrix control to multiple
models. In: Computations in Chemical Engineering 27 (2003), S. 1079–1096
[4] Bemporad, A.: Reducing Conservativeness in Predictive Control of Constrained Systems with Disturbances. In: Proc. 37th IEEE Conference on Decision and Control
(1998), S. 1385–1391
[5] Bemporad, A. ; Borrelli, F. ; Morari, M.: Model Predictive Control Based on Linear Programming—the Explicit Solution. In: IEEE Transactions on Automatic Control
47 (2002), Dezember, Nr. 12, S. 1975–1984
[6] Bemporad, A. ; Morari, M.: Control of Systems integrating logic, dynamics, and
constraints. In: Automatica 35 (1999)
[7] Bemporad, A. ; Morari, M. ; Ricker, N.L.: Getting Started with the Model Predictive
Control Toolbox. 2004–2006
[8] Besancon, G. ; Busvelle, E.: On observer design for nonlinear systems - FAP 2006.
2006
[9] Bitmead, R.R. ; Gevers, M. ; Petersen, I.R. ; Kaye, R.J.: Monotonicity and
Stabilizability Properties of Solutions of the Riccati Difference Equation: Propositions,
Lemmas, Theorems, Fallacious Conjectures and Counterexamples. In: System and Control Letters 5 (1985), S. 309–315
[10] Bitmead, R.R. ; Gevers, M. ; Wertz, V.: Adaptive Optimal Control, The Thinking
Man’s GPC. Englewood Cliffs, New Jersey : Prentice-Hall, 1990. – 244 S.
[11] Borrelli, F. ; Bemporad, A. ; Morari, M.: Geometric Algortihm for Multiparametric Linear Programming. In: Journal of Optimization Theory and Applications 118
(2003), September, Nr. 3, S. 515–540
179
180 Literaturverzeichnis
[12] Büskens, C.: Diskretisierungsverfahren zur Lösung nichtlinearer Optimalsteuerungsprobleme — Skript zur Vorlesung. 2003
[13] Büskens, C.: Optimierung dynamischer Systeme — Skript zur Vorlesung. 2005
[14] Camacho, E.F. ; Bordons, C.: Model Predictive Control. Springer-Verlag, London,
2004 (Advanced Textbooks in Control and Signal Processing). – 435 S.
[15] Chidambram, M.: Computer Control of Processes. Alpha Science, Pangbourne, 2002
[16] Clarke, D.W. ; Mohtadi, C. ; Tuff, P.S.: Generalized Predictive Control - Part I:
The Basic Algorithm. In: Automatica 23 (1987), Nr. 2, S. 137–148
[17] Clarke, F.H.: Optimization and Nonsmooth Analysis. SIAM, 1990 (Classics in Applied
Mathematics 5). – 304 S.
[18] Clarke, F.H. ; Ledyaev, Yu.S. ; Stern, R.J. ; Wolenski, P.R.: Nonsmooth Analysis
and Control Theory. Springer, 1998. – 278 S.
[19] Dantzig, G.B.: Linear Programming and Extensions. Princeton University Press, 1963
[20] Deuflhard, P. ; Bornemann, F.: Numerische Mathematik II, 2. Auflage. de Gruyter,
2002
[21] Diehl, M.: Nichtlineare Modell–Prädiktive Regelung einer Destillationskolonne. 2001
[22] Diehl, M. ; Uslu, I. ; Findeisen, R. ; Schwarzkopf, S. ; Allgöwer, F. ; Bock,
H.G. ; Bürner, T. ; Gilles, E.D. ; Kienle, A. ; Schlöder, J.P. ; Stein, E.: RealTime Optimization for Large Scale Processes: Nonlinear Model Predictive Control of a
High Purity Distillation Column. In: Online Optimization of Large Scale Systems, Ed.
M. Grötschel, S.O. Krumke and J. Rambau (2001), S. 363–384
[23] Dittmar, R. ; Pfeiffer, B.M.: Modellbasierte prädiktive Regelung. Oldenburg Verlag
München Wien, 2004
[24] Fletcher, R.: Practical Methods of Optimization, 2nd Edition. Wiley, 1987
[25] Fontes, F.A.C.C.: A General Framework to Design Stabilizing Nonlinear Model Predictive Controllers. In: Systems and Control Letters 42 (2001), Nr. 2, S. 127–143
[26] Föllinger, O. ; Roppenecker, G.: Optimale Regelung und Steuerung. Oldenburg
Verlag München Wien, 1994
[27] Gilbert, E.G. ; Tan, K.T.: Linear Systems with state and Control Constraints: The
Theory and Applications of Maximal Outp Admissable Sets. In: IEEE Transaction on
Automatic Control 36 (1991), S. 1008–1020
[28] Gill, P.E. ; Murray, W. ; Wright, M.H.: Practical Optimization. Academic Press,
1981
Literaturverzeichnis
181
[29] Grimm, G. ; Messina, M.J. ; Tuna, S.E. ; Teel, A.R.: Examples when nonlinear
model predictive control is nonrobust. In: Automatica 40 (2004), S. 1729–1738
[30] Grötschel, M.: Lineare Optimierung — Skript zur Vorlesung. 2004
[31] Grüne, L.: Numerische Dynamik von Kontrollsystemen — Skript zur Vorlesung. 2004
[32] Grüne, L.: Mathematische Kontrolltheorie I — Skript zur Vorlesung. 2006
[33] Grüne, L.: Mathematische Kontrolltheorie II — Skript zur Vorlesung. 2006
[34] Guzzella, L. ; Onder, C.H.: Introduction to Modeling and Control of Internal Combustion Engine Systems. Springer, 2004
[35] Heemels, W. ; Schutter, B. de ; Bemporad, A.: On hybrid systems and closed-loop
MPC systems. In: Proceedings of the 40th IEEE Conference on Decision and Control
(2001)
[36] Heemels, W. ; Schutter, B. de ; Bemporad, A.: On the equivalence of classes of
hybrid dynamical models. In: Proceedings of the 40th IEEE Conference on Decision
and Control (2001)
[37] Hinrichsen, D. ; Pritchard, A.J.: Texts in Applied Mathematics. Bd. 48: Mathematical Systems Theory I . Springer, 2005. – 804 S.
[38] Hrovat, D. ; Bodenheimer, B.: Robust Automotive Idle Speed Control Design Based
on µ-Synthesis. In: Proceedings of American Control Conference (1993), S. 1778–1783
[39] Jadbabaie, A. ; Hauser, J.: On the Stability of Unconstrained Receding Horizon
Control. In: Proceedings of the 44th IEEE Conference on Decision and Control 5 (2001),
S. 4826–4831
[40] Jadbabaie, A. ; Yu, J. ; Hauser, J.: Uncontrained Receding Horizon Control of
Nonlinear Systems. In: IEEE Transactions on Automatic Control 46 (2001), S. 776–783
[41] Kerrigan, E.C. ; Maciejowski, J.M.: Invariant Sets for Constrained Nonlinear
Discrete-Time Systems with Application to Feasibility in Model Predictive Control.
In: Proc. 39th IEEE Conference on Decision and Control (2000)
[42] Kiendl, H. ; Adamy, J. ; Stelzner, P.: Vector Norms as Lyapunov Functions for
Linear Systems. In: IEEE Transaction on Automatic Control 37 (1992), Juni, S. 839–842
[43] Lunze, J.: Regelungstechnik 1, 5., neubearb. u. erw. Aufl. Springer Verlag Berlin, 2005.
– 661 S.
[44] Magni, L. ; Sepulchre, R.: Stability margins of NRHS via Inverse Optimality. In:
System and Control Letters 32 (1997), S. 241–245
182 Literaturverzeichnis
[45] Malanowski, K. ; Büskens, Ch. ; Maurer, H.: Convergence of approximations to
nonlinear optimal control problems. In: Mathematical Programming with Data Perturbations 195 (1998), S. 253–284
[46] Matthes, J. ; Gröll, L. ; Mikut, R. ; Jäkel, J.: Optimale Führung von Endoskopen
mit redundanter Kinematik. In: Automatisierungstechnik 48 (2000)
[47] Maurer, H.: On the Minimum Principle for Optimal Control Problems with State
Constraints. 1979
[48] Maurer, H. ; Pickenhain, S.: Second order sufficient conditions for optimal control
problems with mixed control-state constraints. In: Journal of Optimization Theory and
Applications 86 (1996), S. 649–667
[49] Mayne, D.Q.: NMPC: Challenges and Opportunities. In: Progress in Systems and
Control Theory 26 (2000), S. 23–44
[50] Mayne, D.Q. ; Rawlings, J.B. ; Rao, C.V. ; Scokaert, P.O.M.: Constrained Model
Predictive Control: Stability and Optimality. In: Automatica 36 (2000), S. 789–814
[51] Morari, M. ; Ricker, N.L.: Model Predictive Control Toolbox User’s Guide. 1995–1998
[52] Nelles, O.: LOLIMOT — Lokale, lineare Modelle zur Identifikation nichtlinearer
Systeme. In: Automatisierungstechnik 45 (1997), Nr. 4, S. 163–174
[53] Neustadt, L.W.: Optimization: A Theory of Necessary Conditions. Princeton University Press, 1976
[54] Nešić, D. ; Grüne, L.: A receding horizon control approach to sampled-data implementation of continuous-time controllers. In: Systems and Control Letters 55 (2006), S.
660–672
[55] Ogunnaike, B.A. ; Ray, W.H.: Process Dynamics, Modeling and Control. Oxford
University Press, 1994
[56] Pannek, J.: Modellprädiktive Regelung nichtlinearer sampled-data Systeme — Diplomarbeit. 2005
[57] Polański, A.: On Infinity Norms as Lyapunov Functions for Linear Systems. In: IEEE
Transaction on Automatic Control 40 (1995), Juli, S. 1270–1273
[58] Pontryagin, L.S. ; Boltjanskij, V.G. ; Gamkrelidze, R.V. ; Miscdenko, E.F.:
Mathematische Theorie optimaler Prozesse. Oldenbourg, 1967
[59] Rodrigues, L. ; How, J.: Automated Control Design for a Piecewise-Affine Approximation of a Class of Nonlinear Systems. In: Proceedings of the 2001 American Control
Conference (2001)
Literaturverzeichnis
183
[60] Roset, B. ; Nijemeijer, H.: Observer-based model predictive control. In: Internation
Journal on Control 77 (2004), Nr. 17, S. 1452–1462
[61] Schittkowski, K.: On the convergence of a sequential quadratic programming method
with an augmented Lagrangian search direction. In: Mathematische Operationsforschung
und Statistik, Series: Optimization 14 (1983), S. 197–216
[62] Schutter, B. de ; Boom, T. van d.: Model predictive control for discrete-event and
hybrid systems. In: Proceedings of the 42nd IEEE Conference on Decision and Control
(2003)
[63] Sontag, E.D: Texts in Applied Mathematics. Bd. 6: Mathematical Control Theory, 2nd
Ed. Springer, 1998. – 552 S.
[64] Souza, C.E. de ; Gevers, M. ; Goodwin, G.C.: Riccati Equations in Optimal Filtering of Nonstabilizable Systems having Singular State Transition Matrices. In: IEEE
Transaction on Automatic Control AC-31 (1986), S. 831–838
[65] Spjotvold, J.: Multi-parametric Mixed-Integer Linear Programming and Optimal Control, Institut for Teknisk Kybernetikk — NTNU, Diss., Juni 2003
[66] Tuna, S. ; Sanfelice, R. ; Messina, M. ; Teel, A.: Hybrid MPC: open-minded
but not easily swayed. In: Springer Lecture Notes in Control and Information Sciences
Series (to appear 2006)
[67] Unbehauen, H.: Regelungstechnik 1, 13., verb. Aufl. Vieweg, 2005. – 389 S.
[68] Wimmer, R.W.: Regelung einer Wärmepumpenanlage mit Model Predictive Control,
Zürich, Diss., 2004
[69] Wittenmark, B. ; Rao, P. K.: Comments on ”Single–step versus Multi–step Performance Criteria for Steady State SISO Systems“. In: IEEE Transactions on Automatic
Control AC-24 (1979), S. 140–141
Index
Algorithmus
aktive Mengen, 79
Dantig–Wolfe, 131
GPC, 21
LMPC, 6
LQG, 30
MPC mit Gedächtnis, 150
MPC mit Logik, 151
NMPC, 55
Partitionierung, 49
adjungierte, 60
Differenzengleichung, 3
Diophantische Gleichung, 21
Diskretisierung, 66
mit Euler, 68
rekursiv, 67
voll, 67
Dynamische Programmierung, 65
Bedingung
hinreichend, 71, 76
KKT, 74, 75, 131
Legendre-Clebsch, 72
notwendig, 61, 70, 75
Randbedingungen, 52
Beobachtbarkeit, 104
schwache, 104
Beobachter, 103
ENOC–Form, 110
Fehler, 111
Beschränkungen, 9
Endbedingung, 92
Endzustand, 97
gemischt, 53
Ordnung, 54
Output–Beschränkungen, 10, 39
saturierte, 130
Steuerbeschränkungen, 9, 39, 91, 99
Steuerungsänderung, 9
Vektor, 53
Zustand, 53, 91
Feedback
linear, 2, 25
stetig, 155
Degeneriertheit
primal, 45
Differentialgleichung, 2
Endzustandskriterium, 40
Gain Scheduling, 108
Gain–Matrix, 22, 129
Generalized Predictive Control, 19
Gitter, 66
H–Repräsentation, 46
Hamilton-Jacobi-Bellman Gleichung, 55
Hamiltonfunktion, 60
erweitert, 69
Invarianz, 95
Inverse Optimalität, 101
Kalman–Matrix, 32
Kontaktpunkt, 69
Kontrollfunktion
endlicher LQ–Regler, 27
GPC, 22
mp–LP, 44
Receding Horizon LQ–Regler, 28
Receding Horizon LQG–Regler, 31
unendlicher LQ–Regler, 27
Kontrollsystem mit Ausgang, 2
184
185
Index
ARIMAX-Modell, 4, 20
diskret linear zeitinvariant, 3, 26, 39
gestört diskret linear zeitinvariant, 30
hybrid, 135
Lösung linear zeitinvariant, 3
linear gemischt logisch, 139
linear zeitinvariant, 2
nichtlinear, 52, 103
Kritisches Gebiet, 44
Laplace-Transformation, 4
Linearisierung
einfach, 56, 105
multiple, 58
Lyapunov
Bedingung, 93
Funktion, 42, 154
Gleichung, 98, 99
stetige Funktion, 155
Markov–Parameter, 22
Messrauschen, 19, 144, 154
Minimum Variance Controller, 19
Minimumprinzip, 61
autonome Probleme, 61
erweitert, 70
freie Endzeit, 61
Minimumbedingung, 61
Multiplikatorfunktion, 70
Randsteuerung, 70
Sprungbedingung, 70
Transversalität, 61
MMPS–Ausdruck, 137
Multi-parametrisches lineares Problem, 44
Multiple–Shooting, 63
Nebenbedingung
aktiv, 45
Nebenbedingungen, 43
Optimalitätsprinzip, 65
Optimalsteuerungsprozess, 54
Optimierungsproblem
konvex, 51
linear quadratisch, 40
linearisiert, 44
primal — dual, 46
Partition, 45
Parameterraumteilung, 45
Polstellen, 29
Randstück, 69
Randwertproblem, 60
Raum
Banach, 69
Sobolev, 69
Referenz
linear diskrete Referenzgleichung, 28
Referenzsignal, 19
Referenztrajektorie, 8
Setpoint, 119
Regelungsmatrix, 31
Riccati Gleichung
Algebraische Riccati Gleichung, 27, 33
Fake Algebraische Riccati Gleichung, 35
Riccati Differenzen Gleichung, 27, 34
Robustheit, 153
Schlupfbedingung, 46
Sensitivität, 77
Single–Shooting, 62
SQP
Bewertungsfunktion, 78
BFGS–Update, 80
Iteration, 77
Schrittlänge, 78
Suchrichtung, 77
Störung, 30, 156
gestörtes Kontrollsystem mit Ausgang, 30
Stabilität, 35
asymptotische, 40, 93, 154
durch Modifikation, 97
Hurwitz–Kriterium, 105
Nachweis direkt, 94
Nachweis mit Monotonie, 96
robust asymptotische, 154
robuste asymptotische, 157
186 Index
Tracking
Fehler, 107
linear quadratisch, 28
Transferfunktion, 4
Transformationsregeln logischer Variablen, 138
Unterproblem
quadratisch, 77
Verbindungspunkt, 69
Wertefunktion, 55
Zielfunktional
Endkostenfunktion, 98
endlicher LQ–Regler, 27
GMV, 19
GPC, 20
linear gemischt logisch, 142
LMPC, 6
mp–LP, 43
nichtlineares Problem, 53
unendlicher LQ–Regler, 27
zulässige Menge, 75
Zulässigkeit
dual, 46
primal, 46
Zustand, 1
gestört, 30
Kozustand, 60
nicht vollständig, 103
Referenzzustand, 29