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