MS-WORD DOC

Werbung
Handout zum Optimierungsseminar von Jakob, Anwendungsbeispiel
Problemstellung:
Optimierung von chemischen Prozessen mit “steady state”.
Steady state bedeutet, dass die Veränderung des Volumens in einem Reaktionsgefäß
= 0 ist.  dx/dt = f(x, u) = 0. Die Funktion ist von x abhängig, dem Zustand selber
und von u, der Flußrate, beziehungsweise von Kontrollen für den Zufluss. Genauer
betrachtet bedeutet es sogar, dass sich gar nicht mehr ändert und das System sich in
einem dynamischen Gleichgewicht befindet. Aus dem Wörterbuch: “A nonequilibrium
state of a system through which matter is flowing and in which all components remain
at a constant concentration.” Es ist zeitunabhängig.
Angenommenes Problem: in einem Reaktionsgefäß reagieren ein Stoff x0 in einer
gewünschten Reaktion erster Ordnung zu x1, aber auch in zwei unerwünschten
Reaktionen zu x2 (nullte Ordnung) und zu x3 (zweiter Ordnung).
Modell
x0 wird von außen mit u0 zugeführt. u0 ist hier als Volumenstrom gedacht. Da in dem
Gefäß ein steady state vorliegt, müssen die Stoffe mit dem gleichen Volumenstrom u0
auch wieder herausfliessen. Die Reaktionen für die einzelnen Stoffe, bzw deren
Konzentrationen können mit unterschiedlichen Gleichungen verdeutlicht werden.
x1, x2 und x3 entstehen aus den Reaktionen und werden alle auch mit der
konstanten Flussrate u0 aus dem Reaktor abgeführt. (Falls man mehrere Stoffe
einführt, müssen natuerliche die Einflussraten insgesamt so groß sein wie die
Ausflussrate, da das Volumen weder zu noch abnimmt).
Betrachtet man nun die Zu- und Abnahmen der einzelnen Stoffe, so ergeben sich
dadurch folgende Gleichungen (Beschränkungen):
1. d x0/dt = -u0*x0/Vol + u0*X1/Vol - k1*x0 - k2 - k3*x0*x0.
Hier steht bei dem Einfluss von u0 noch ein X1 dabei, einerseits wegen der Einheiten,
andererseits, um eine eventuelle Verdünnung zu berücksichtigen. wir betrachten den
Fall x = 1000. Bei den Reaktionskonstanten steht je nach Ordnung der Reaktion noch
x0 dabei. die Konstanten sind in unserem Beispiel k1 = 0.2,
k2 = 25.0, k3 =
0.0004.
Für die anderen Stoffe ergibt sich:
2. d x1/dt = -u0*x1/Vol + k1*x0;
3. d x2/dt = -u0*x2/Vol + k2;
4. d x3/dt = -u0*x3/Vol + k3*x0*x0;
Das Volumen (Vol) ist gleich 1.
Man kann dann z.B. die Umsatzrate optimieren, also max x1/(X1-x0).
Das Optimierungsproblem hat somit folgende Form:
min - x1/(X1-x0),
x1, x0 єR
s.t.
d x0/dt = -u0*x0/Vol + u0*X1/Vol - k1*x0 - k2 - k3*x0*x0 = 0
d x1/dt = -u0*x1/Vol + k1*x0 = 0
d x2/dt = -u0*x2/Vol + k2 = 0
d x3/dt = -u0*x3/Vol + k3*x0*x0 = 0
Lösung
Man kann dieses Problem nun für FSQP (bietet sich an, da die
Gleichungsbeschränkungen nicht linear sind) formulieren und lösen. Dazu werden die
drei Dateien steadystate.pds, steadystate.sim und steadystate.ini erstellt:
steadystate.pds (deklarieren der Variablen und Funktionen)
dv x0 x1 x2 x3 u0
ob f
ec c0 c1 c2 c3 cfix
steadystate.sim (definieren der Zielfunktion und der constraints)
f = -x1/(1000-x0)
c0 = -u0*x0 + u0*1000 - 0.2*x0 - 25.0 - 0.0004*x0*x0
c1 = -u0*x1 + 0.2*x0
c2 = -u0*x2 + 25.0
c3 = -u0*x3 + 0.0004*x0*x0
cfix = u0 - 0.13 (Erklärung siehe Ergebnisse)
steadystate.ini (definieren der Startwerte)
x0 = 250
x1 = 370
x2 = 180
x3 = 180
u0 = 0.13
Ergebnisse
Leider findet FSQP nicht alleine eine optimale Lösung für das Problem. Man muss in
der pds Datei einen zusätzlichen constraint einführen, in dem das u0 fixiert wird
(cfix), und dieses dann von Hand variieren. So kann man das Minimum finden,
zumindest findet es dann einen steady state. Allerdings braucht FSQP dafür – wenn
es denn klappt - sehr lange. Das Optimum bekommt man theoretisch, in dem man
die Beschränkung wieder wegnimmt, allerdings gibt es mit FSQP auch hier Probleme.
Bei den Startwerten kann man eigentlich beliebig variieren, jedoch funktioniert es mit
den hier angegebenen am besten.
Zusammenfassung
Das wichtige ist das „Umschreiben“ der chemischen Reaktionen und de Zu- und
Abflüsse in Gleichungen bzw Gleichungsbeschränkungen.
Dabei muss immer
betrachtet werden ob der Stoff von außen zugeführt wird, ob er in einer Reaktion
veschwindet oder entsteht und mit welcher Rate er wieder abfliesst. Um einen steady
state zu gewährleisten, setzt man die Änderung des Stoffes (dx/dt) gleich Null. Das
wird für jeden Stoff gemacht. Auf die Zielfunktion kommt man durch einfaches
Überlegen der Fragestellung, es gibt viele verschiedene Möglichkeiten. Man kann auch
die Produktionsrate maximieren (das wäre in unserem Beispiel dann einfach max x1).
Oder wie oben angegeben die Umsatzrate. Da die Lösung mit FSQP nicht leicht zu
finden ist, können auch andere Programme benutzt werden, allerdings funktioniert es
einigermassen mit den oben angegebenen Dateien. Man bekommt als Ergebnis eine
optimale Flussrate von u0 = 0.133.
Herunterladen