Einführung
Steuerung, Zustand, Zielfunktion
Bei der Optimalen Steuerung unterscheidet man
prinzipiell zwischen Steuergrößen, auf die direkt Einfluss genommen werden
kann, und Zustandsgrößen, die aus den Steuergrößen und den Zustandsgrößen
berechnet werden.
In den Beispielen lassen sich Werte für die Steuergrößen einstellen, indem die Maus bei
gedrückter linker Maustaste entlang des gewünschten Verlaufs der Steuerung
gezogen wird.
Gleichzeitig wird so auch indirekt Einfluss auf die Zustandgrößen genommen.
Hauptaufgabe der Optimalen Steuerung ist es zudem, eine vorgegebene Zielfunktion zu
minimieren. Der aktuelle Wert der Zielfunktion, der meist der Endwert einer
Zustandsgröße ist, wird über dieser Zustandsgröße angezeigt.
Im ersten Beispiel soll die Steuerung u so bestimmt werden, dass der Zustand
x(t)
zum Zeitpunkt t=1 möglichst groß wird. Die Steuerung darf dabei Werte von -1
bis 1 annehmen:
Maximiere x(1)
System |
dx/dt = u2 |
Anfangswerte |
x(0) = 0 |
Beschränkungen |
-1 < u(t) < 1 für t ∈ [0,1] |
Freie Anfangswerte, Randwerte
Bei einigen Optimalsteuerungsproblem sind die Anfangswerte für einzelne
Zustände nicht vorgegeben. In den Graphen dieser Zustände können diese freien
Anfangswerte vorgegeben werden, indem die Maus am linken Rand der Anzeige auf
und ab gezogen wird.
Wenn für einzelne Zustände Randwerte eingehalten werden müssen, zeigt ein
blauer Pfeil am rechten Rand des Anzeigefensters zu diesem Zustand an,
wo der Randwert liegen sollte. Ein roter Pfeil markiert den aktuellen
Endzustand. Wird der Randwert ausreichend gut getroffen, erscheint ein
grüner Pfeil.
Im nächsten Beispiel soll der Anfangswert einer einfachen Differentialgleichung
so bestimmt werden, dass ein vorgegebener Randwert erreicht wird:
System |
dx/dt = x |
Anfangswerte |
x(0) = frei |
Randwerte |
x(1) = 1 |
Endzeit, Zustandsbeschränkungen
Bei einigen Steuerprozessen ist die Endzeit t
f nicht fest
vorgegeben, sondern kann ebenfalls zur Optimierung verändert werden. Oft ist
auch die Endzeit die Größe, die minimiert werden soll. Die Endzeit kann über
einen eigenen Schieberegler eingestellt werden. Man beachte, dass sich dadurch die
Zeitachsen in der Anzeige der Steuerung und der Zustände verändern.
Zustandsbeschränkungen schreiben vor, dass ein bestimmter Zustand über dem
ganzen betrachteten Zeitintervall bestimmte Werte nicht über- oder
unterschreiten darf. Diese Schranken werden als gestrichelte Balken angezeigt,
die rot werden, wenn die Beschränkung verletzt wird.
Im dritten Beispiel soll ein Räuber-Beute-Modell betrachtet werden. Der
zu betrachtende Zeitraum kann über den unteren Schieberegler eingestellt
werden. Über die Steuerung u(t) können zusätzliche Beutetiere ausgesetzt
(u(t) > 0) oder
bestehende entfernt werden (u(t) < 0). Ziel ist es, die beiden Populationen in den angegebenen
Schranken zu halten.
System |
dx1/dt = a⋅x1 - c⋅x1⋅x2 + u |
dx2/dt = -b⋅x2 + d⋅x1⋅x2 |
|
a = 0.08 |
b = 0.2 |
|
c = 0.002 |
d = 0.0004 |
Anfangswerte |
x1(0) = 500 |
x2(0) = 20 |
Beschränkungen |
x1(t) > 400 |
x2(t) < 50 für t ∈ [0, tf] |
|
-10 < u(t) < 10 für t ∈ [0, tf] |