Aus technischen Gründen bleibt diese Seite leer
Arno Lowe
Chemische Reaktionstechnik mit MATLAB und SIMULINK
Aus t...
230 downloads
2387 Views
16MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Aus technischen Gründen bleibt diese Seite leer
Arno Lowe
Chemische Reaktionstechnik mit MATLAB und SIMULINK
Aus technischen Gründen bleibt diese Seite leer
Arno Lowe
Chemische Reaktionstechnik mit MATLAB und SIMULINK
@WILEY-VCH Weinheim * New York * Chichester Brisbane . Singapore Toronto
Univ.-Prof. i . R . Dr. Arno Lowe Ahornweg 10 97267 Himmelstadt
Das vorliegende Werk wurde sorgfaltig erarbeitet. Dennoch ubernehmen Autor und Verlag fur die Richtigkeit von Angaben, Hinweisen und Ratschlagen sowie fur eventuelle Druckfehler keine Haftung.
Verzicht: Dieses eBook enthält keine begleitenden Medien, die mit der gedruckten Version des Buches verpackt wurden.
Die Deutsche Bibliothek - CIP-Einheitsaufnahme Ein Titeldatensatz fur diese Publikation ist bei Die Deutsche Bibliothek erhaltlich
ISBN 3-527-30268-9
0 WILEY-VCH Verlag GmbH, D-69469 Weinheim (Federal Republic of Germany), 2001
Gedruckt auf saurefreiem Papier. Alle Rechte, insbesondere die der Ubersetzung in andere Sprachen, vorbehalten. Kein Teil dieses Buches darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form - durch Photokopie, Mikroverfilrnung oder irgendein anderes Verfahren - reproduziert oder in eine von Maschinen, insbesondere von Datenverarbeitungsmaschinen, verwendbare Sprache iibertragen oder ubersetzt werden. Die Wiedergabe von Warenbezeichnungen, Handelsnamen oder sonstigen Kennzeichen in diesem Buch berechtigt nicht zu der Annahme, daR diese von jedermann frei benutzt werden durfen. Vielmehr kann es sich auch dann um eingetragene Warenzeichen oder sonstige gesetzlich geschutzte Kennzeichen handeln, wenn sie nicht eigens als solche markiert sind. All rights reserved (including those of translation into other languages). No part of this book may be reproduced in any form - by photoprinting, microfilm, or any other means - nor transmitted or translated into a machine language without written permission from the publishers. Registered names, trademarks, etc. used in this book, even when not specifically marked as such, are not to be considered unprotected by law. Druck: Strauss Offsetdruck, D-69509 Morlenbach Bindung: GroRbuchbinderei J. Schiffer, D-67269 Grunstadt Printed in the Federal Republic of Germany
Herrn Professor Dr. KURTDIALER zum 80. Geburtstag gewidmet
Aus technischen Gründen bleibt diese Seite leer
Inhalt sverzeichnis Vorwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XI11
Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0.1 Schriftauszeichnung . . . . . . . . . . . . . . . . . . . . . . . . . 0.2 Symbolverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . 0.3 Abkiirzungsverzeichnis . . . . . . . . . . . . . . . . . . . . . . .
XIX XIX
XX XXIII
1
Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
2
MATLAB und SIMULINK . . . . . . . . . . . . . . . . . . . . . . .
5 5 6 6 7 8 9 10 17 23 23 23 23 24
2.1 Einfiihrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Kostproben aus MATLABs Programmiertechniken . . . . . . . . 2.2.1 Vektorisierung . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2 Matrizenmanipulation . . . . . . . . . . . . . . . . . . . . . 2.2.3 Zeichenkettenverarbeitung . . . . . . . . . . . . . . . . . . . 2.2.4 MATLABs Befehl eual . . . . . . . . . . . . . . . . . . . . . 2.3 MATLAB-Programme oder SIMULINK-Modelle? . . . . . . . . . 2.4 S-Funktionen, C und FORTRAN . . . . . . . . . . . . . . . . . . . 2.5 Erweiterungen und Toolboxen . . . . . . . . . . . . . . . . . . . . . 2.5.1 MATLAB-Compiler . . . . . . . . . . . . . . . . . . . . . . . 2.5.2 optimization Toolbox . . . . . . . . . . . . . . . . . . . . . . 2.5.3 Symbolic Math Toolbox . . . . . . . . . . . . . . . . . . . . . 2.5.4 Weitere Toolboxen . . . . . . . . . . . . . . . . . . . . . . . 3
Stochiometrie. Thermodynamik. Reaktionskinetik: Drei Saulen der CRT . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 Stochiometrische Gleichungen (Lineare Algebra) . . . . . . . . . . 3.1.1 Stochiometrische Gleichungen aus der Element-SpeziesMatrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.2 Stochiometrische Gleichungen aus der stochiometrischen Matrix chemischer Reaktionen . . . . . . . . . . . . . . . . 3.1.3 Beispiel: Katalytische Dampfspaltung von Methan zu Synthesegas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Thermodynamische Gleichgewichte (Nichtlineare AGls) . . . . .
25 25 25 34 38 40
VIII
Inhaltsverzezchnzs
3.3 Reaktionskinetik (Gewohnliche. auch steife DGls; DAGls) . . . . 3.3.1 Wichtige reaktionskinetische GroBen und Beziehurigen . . 3.3.2 Komplexe Reaktionssysteme (DGls) . . . . . . . . . . . . . 3.3.2.1 Analytische Losung . . . . . . . . . . . . . . . . . . 3.3.2.2 Numerische Losung . . . . . . . . . . . . . . . . . . 3.3.2.3 SIMULINK-Block-Model1 . . . . . . . . . . . . . . 3.3.2.4 SIMULINK-Model1 mit M-File S-Funktion . . . . 3.3.2.5 SIMULINK-Model1 mit C MEX-File S-Funkction . . . . . . . . . . . . . . . . . . . . . . . 3.3.2.6 SIMULINK-Model1 mit compilierter M-File S-Function . . . . . . . . . . . . . . . . . . . 3.3.3 Beispiel: Spaltung von Kohlenwasserstoffen . . . . . . . . . 3.3.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Probleme und Losungen . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 Wahl von Nichtschlusselkomponenten (*) . . . . . . . . . . 3.4.2 Korrespondierende Manipulation von ESM und Spezies-Vektor (** bis ***; * wenn STOICH als Vorlage benutzt wird) . . . . . . . . . . . . . . . . . . . . . 3.4.3 Erzeugung einer String-Matrix aus einem Reaktionsmechanismus (*) . . . . . . . . . . . . . . . . . . . 3.4.4 Automatische Genericrung der Reaktionsmatrix fur einen Reaktionsmechanismus (Chemischer Compiler 1) (***) . . . . . . . . . . . . . . . . 3.4.5 Automatische Generierung der Geschwindigkeitsgleichungen fur einen Elementarmechanisnius (Chemischer Compiler 2) (**) . . . . . . . . . . . . . . . . . 3.4.6 Wasserdampfsattiger (*) . . . . . . . . . . . . . . . . . . . . 3.4.7 Synthesegaszusammensetzung aus der Analyse des trockenen Produktgases (*) . . . . . . . . . . . . . . . . . . 3.4.8 Uberprufung eines Reaktionsgemisches am Reaktorausgang auf Gleichgewicht (*) . . . . . . . . . . . . 3.4.9 Gleichgewicht am Reaktorausgang (*) . . . . . . . . . . . . 3.4. 10 Rechengeschwindigkeit mit vollen und sparsen Matrizen im Vergleich (*) . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.11 Molwarme eines realen Gases (*) . . . . . . . . . . . . . . . 3.4.12 SIMULINK-Model1 der Ethan-Spaltung mit MATLAB-Fcn-Block (**) . . . . . . . . . . . . . . . . . . . 3.4.13 SIMULINK-Model1 der Ethan-Spaltung mit Fcn-Blocken (**. SE bedingt) . . . . . . . . . . . . . . . . . 3.4.14 SIMULINK-Model1 der Ethan-Spaltung mit S-Funktion (**) . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.15 Einfaches System aus nichtlinearen algebraischen urid Differential-Gleichungen (DAE- oder DAG1-System) (*) .
43 43 45 46 46 52 54 55
62 63 67 68 68
69 70
70
72 73 75 78 81 84 84 86 88
90 96
Znhaltsverzeichnis
4
Ruhrkesselreaktoren . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IX
101 4.1 Batch-Reaktor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 4.1.1 Stoff- und Energiebilanzen . . . . . . . . . . . . . . . . . . . 103 4.1.2 Beispiel: Zweistufiger ProzeB (DAG1-Systeme mit Unstetigkeiten) . . . . . . . . . . . . . . . . . . . . . . . . . . 104 111 4.2 Semibatch-Reaktor . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1 Stoff- und Energiebilanzen . . . . . . . . . . . . . . . . . . . 111 4.2.2 Beispiel: Reaktionskalorimeter . . . . . . . . . . . . . . . . 111 4.3 Konti-Reaktor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 4.3.1 Stoff- und Energiebilanzen . . . . . . . . . . . . . . . . . . . 123 4.3.2 Beispiel: Optimierung einer Losungs-Copolymerisation in einer vierstufigen Ruhrkesselkaskade . . . . . . . . . . . 123 4.4 Probleme und Losungen . . . . . . . . . . . . . . . . . . . . . . . . 128 4.4.1 Losung eines DAG1-Systems durch Kombination von DG1- und algebraischen Gleichungslosern (*) . . . . . . . . 128 4.4.2 Losung eines reaktionskinetischen DAG1-Systems durch Uberfuhrung der Gleichgewichtsbeziehungen in kinetische Gleichungen (*) . . . . . . . . . . . . . . . . . . . 131 4.4.3 Losung eines DAG1-Systems uber Differentiation der algebraischen Gleichungen (**) . . . . . . . . . . . . . . . . 133 4.4.4 Losung des DAG1-Systems 4.4.1 mit einem DAG1-Loser von MATLAB a b Version 5.3 . . . . . . . . . 135 4.4.5 Losung des DAG1-Systems 4.4.1 mit SIMULINK unter Verwendung eines externen DAG1-Losers (***) . . . 136 4.4.6 Einstellen der Regler am Reaktionskalorimeter fur die Sulfonierung von Nitrobenzol (*, nicht SE) . . . . . . . . . 148 4.4.7 Verlust leistung des Reakt ionskalorimeters bei den Bedingungen des Problems 4.4.6 (*, nicht SE) . . . . . . . 149 4.4.8 Sulfonierung von Nitrobenzol mit Oleum im leistungskompensierten Reaktionskalorimeter mit Differentialkuhlung (*, nicht SE) . . . . . . . . . . . . . . . 150 4.4.9 Warmeubergangskoeffizienten im wandgekuhlten Ruhrkessel durch Modellversuche im Reaktionskalorimeter (*, nicht SE) . . . . . . . . . . . . . . . . . . . . 153 4.4.10 Produktivitatssteigerung bei einer technischen Cyanethylierung (**) . . . . . . . . . . . . . . . . . . . . . . 153 4.4.11 Produktivitatssteigerung bei einer technischen Cyanethylierung (2): optimale Dosierzeit bei konstanter Dosierrate (*) . . . . . . . . . . . . . . . . . . . . 158 4.4.12 CSTR - Chemostat (*) . . . . . . . . . . . . . . . . . . . . . 158 4.4.13 Exotherme Reaktion im wandgekuhlten CSTR (**) . . . . 160 4.4.14 Styrolpolymerisation im CSTR (***) . . . . . . . . . . . . 163 4.4.15 Einstellen der Zustrome in einem konzentrationsgeregelten Differential-Kreislaufreaktor (**) . . . . . . . . 173 4.4.16 SIMULINK-Model1 einer Destillationskolonne anhand der MESH-Gleichungen (***, nicht SE) . . . . . . 175
x 5
Inhaltsverreichnzs
Festbettreaktor . einphasige Modelle . . . . . . . . . . . . . . . . 5.1 Noch einmal Stochiometrie . . . . . . . . . . . . . . . . . . . . . . . 5.2 FBR mit axialer Dispersion . . . . . . . . . . . . . . . . . . . . . . 5.2.1 h.Iodellgleichungen und Diskussion der Randbedingungen . . . . . . . . . . . . . . . . . . . . . . . . 5.2.2 SchuDverfahren und Diskretisierung . . . . . . . . . . . . . 5.2.3 h4ehrzielmethode (Bulirsch’sehes Randwertprobleni) . . . 5.3 Instationarer FBR mit axialer Dispersion . . . . . . . . . . . . . . 5.4 FBR mit radialer Dispersion . . . . . . . . . . . . . . . . . . . . . . 5.4.1 I\iIodellgleichungen und Randbedingungen . . . . . . . . . . 5.4.2 Methode der finiten Bilanzvolumina (Finite Volumenmethode) . . . . . . . . . . . . . . . . . . . 5.4.3 Linienmethode . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.4 Orthogonale Kollokation . . . . . . . . . . . . . . . . . . . . 5.5 Problcme und Losungen . . . . . . . . . . . . . . . . . . . . . . . . 5.5.1 Aufstellen der Stofiilanzen fur die katalytische Methanisierung im isothermen FBR (*) . . . . . . . . . . . 5.5.2 Gleichgewichtsberechnungen durch Losen von Reaktorgleichungen bei groi3er Verweilzeit (*) . . . . . . . 5.5.3 Oxidation von 0-Xylol im idealen FBR (*) . . . . . . . . . 5.5.4 Radiale Temperaturprofile im FBR in parabolischer Naherung (*) . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.5 SIMULINK-Model1 fur den FBR mit beliebigen Reaktionen (***, nicht SE) . . . . . . . . . . . . . . . . . . 5.5.6 EinfluD axialer Dispersion (**) . . . . . . . . . . . . . . . . 5.5.7 Auswertung von Verweilzeitmessungen in cincm Festbettreaktor (*) . . . . . . . . . . . . . . . . . . . . . . . 5.5.8 Konzentrations- und Temperaturprofile im adiabatischen FBR mit axialer Dispersion (**) . . . . . . 5.5.9 FBR mit periodischer Stromungsumkehr (**) . . . . . . . 5.5.10 Simulation eines FBR nach dem zweidimensionalen Modell mit Hilfe der FVM (**) . . . . . . . . . . . . . . . . 5.5.11 Losung der Warmeleitungsgleichung mit der Linienmethode (**) . . . . . . . . . . . . . . . . . . . . . . 5.5.12 Berechnung der Nullstellen fur die orthogonalen Polynorrie nach G1. 5.106 (***, nicht SE) . . . . . . . . . . 5.5.13 Berechnung der Matrizen A, B, Q und W fur die orthogonale Kollokation (*) . . . . . . . . . . . . . . . . . . 5.5.14 Oxidation von 0-Xylol nach dem zweidimensionalen Modell cines FBR (Orthogonalc Kollokation) (***) . . . . 5.5.15 Oxidation von 0-Xylol nach den1 zweidimcnsionalen Modell cines FBR mit Hilfe von FEMLAB (nicht SE) . .
191 191 199 199 201 208 213 214 214 215 219 224 226 226 227 231 233 234 239 242 245 249 253 258 261 262 263 266
Znhaltsverzeichnis
6
Festbettreaktor . zweiphasige Modelle . . . . . . . . . . . . . . . 6.1 Transportlimitierungen zwischen den Phasen . . . . . . . . . . . . 6.2 Transportlimitierungen in der Feststoffphase . . . . . . . . . . . . 6.3 Probleme und Losungen . . . . . . . . . . . . . . . . . . . . . . . . 6.3.1 Konzentrationsprofile zwischen Gas und Katalysatorkorn nach der Filmtheorie bei einer Reaktion vom Typ A B + C mit Hilfe der SM-Gleichungen (*) . . . . . . 6.3.2 Konzentrationsdifferenzen zwischen Gas und Katalysatorkorn nach der Filmtheorie bei einer Reaktion vom Typ A B + C mit Hilfe der SM-Gleichungen (*) . . . . . . 6.3.3 Isothermer eindimensionaler FBR mit externem Stofftransportwiderstand (DAG1-System) (**. nicht SE) . 6.3.4 Konzentrationsprofil und Nutzungsgrad fur eine heterogen-katalytische Reaktion A + B erster Ordnung in A (**] SE bedingt) . . . . . . . . . . . . . . . . 6.3.5 Reaktion erster Ordnung A B im isothermen FBR mit Porendiffusion (**) . . . . . . . . . . . . . . . . . . . . . 6.3.6 Reaktion erster Ordnung A + B im porosen Katalysatorkorn nach dem Staub-Gas-Model1 (**) . . . . 6.3.7 Reaktion A i=! B C mit LH-Kinetik im porosen Katalysatorkorn nach dem Staub-Gas-Model1 (***) . . . . 6.3.8 Nichtisothermer Festbettreaktor mit Stofftransportwiderstanden im Katalysatorkorn (***) . . . . . . . . . . .
-
XI
269 269 273 279
279
281 284
289
---$
+
7
292 293 296 300
Planen und Auswerten reaktionskinetischer Experimente . . 305 7.1 Parameterschatzung . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 7.1.1 Regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 7.1.2 Parameterschatzung in Differentialgleichungen . . . . . . . 308 7.1.2.1 Sensitivitatsgleichungen . . . . . . . . . . . . . . . 308 7.1.2.2 Das ,,inverse" Problem . . . . . . . . . . . . . . . . 309 7.1.3 Differenzieren und Integrieren von MeDwerten . . . . . . . 310 7.2 Versuchsplanung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 7.2.1 Parameterprazisierung . . . . . . . . . . . . . . . . . . . . . 313 7.2.2 Modellaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 7.2.3 Modelldiskriminierung . . . . . . . . . . . . . . . . . . . . . 316 7.3 Probleme und Losungen . . . . . . . . . . . . . . . . . . . . . . . . 317 7.3.1 Kinetische Untersuchungen im isothermen Batch-Reaktor (*) . . . . . . . . . . . . . . . . . . . . . . . . 317 7.3.2 Reaktionskinetische Auswertung einer q,. Kurve im Reaktionskalorimeter (*) . . . . . . . . . . . . . . . . . . . . 321 7.3.3 Einzelreaktion erster Ordnung; Haufigkeitsfaktor und Aktivierungsenergie nach der Methode der kleinsten Quadrate (*) . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 7.3.4 Bewertung der Anpassung in Problem 7.3.3: Antwortflache. Kovarianzmatrix und gemeinsamer Konfidenzbereich der Parameter (**) . . . . . . . . . . . . 325
XI1
Znhaltsverzeichnis
7.3.5 Eigenwert-Eigenvektor-Zerlegungder Matrix N und Korrelationsmatrix der Parameter aus Problem 7.3.4 (*) . 7.3.6 Parameterschatzung in DGls (*) . . . . . . . . . . . . . . . 7.3.7 Parameterschatzung in DGls mit der Mehrzielmethode (***. nicht SE) . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.8 Differentielle Auswertung von Konzentrations-ZeitKurven mit Polynomen und Splines (*. SE nur mit Polynomen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.9 Differentielle Auswertung von Konzentrations-ZeitKurven mit ausgleichenden Splines (*. nicht SE) . . . . . 7.3.10 Differentielle Auswertung von Konzentrations-ZeitKurven mit rationalen Funktionen (*) . . . . . . . . . . . . 7.3.11 Parameterschatzung in einer einfachen DG1 mit der Himmelblau-Jones-Bischoff-Methode (*) . . . . . . . . . . 7.3.12 Parameterschatzung in der Bulirsch-DG1 mit der Himmelblau-Jones-Bischoff-Methode (*) . . . . . . . . . . 7.3.13 Prazisierung der Geschwindigkeitskonstanten in einer Langmuir-Hinshelwood-Gleichung(**. nicht SE) . . . . . 7.3.14 Modellauhau (**) . . . . . . . . . . . . . . . . . . . . . . . . 7.3.15 Diskriminierung zwischen zwei Geschwindigkeitsgleichungen (**) . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.16 Differentielle Auswertung von axialen Konzentrationsund Temperaturmessungen in einem NHs-Versuchsreaktor (***. nicht SE) . . . . . . . . . . . . . . . . . . . . .
329 329 333
342 347 350 353 354 356 359 365
369
A Einige weitere Moglichkeiten von MATLAB . . . . . . . . . . . A . l Menu-Fuhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2 GUIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.3 Neuronale Netze - ein Beispiel fur Toolboxen . . . . . . . . . . . . A.4 CFD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
383 383 384 385 389
Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
395
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
398
Vorwort Als Hochschullehrer fiir Technische Chemie horte ich von MATLAB zum ersten Ma1 von einem Kollegen aus der Regelungstechnik. Ich halte das auch heutc noch fur bezeichnend: Obwohl MATLAB - wie das vorliegende Buch a n Beispiclcn aus der Chemischen Reaktionstechnik zeigen wird - ein universelles Werkzeug der numerischen Mathematik ist, hat es sich auf bestimmten Gebieten schnell durchgesetzt, wtihrend es auf anderen hochstens eine Randrolle spielt. Fur regelungstechnische Aufgaben z. B. gibt es eine ganze Reihe von Toolboxcn, dagegen la5t sich fiir das Chemie-Ingenieur-Wesen hochstens ein entfernter Verwandtcr anfiihren, die Chemometncs Toolbox. Nach kurzer Einarbeitungszeit setzte ich MATLAB in reaktionstechnischen Vorlesungcn und Ubungen ein, mit dem erhofften Erfolg: Meine fortgeschrittencn Studenten, vom Chemiestudium nicht gerade optimal auf wissenschaftliches Rechncn vorbereitet, scheiterten bis dahin regelmaig bei dem Versuch, miihSam erarbeitete Losungsmethoden in Programme einer hoheren Programmiersprache umzusetzen, und ich hatte weder Zeit noch Lust, die Fehler in solchen Programmtorsos zu suchen. MATLAB zu lernen und einzusetzen erwies sich als sehr vicl einfacher, so dai3 wir uns mehr auf die vorgelagerten Schritte konzentricren konnten, also auf die mathematische Modellierung reaktionstechnischcr Systcme, das Erkennen der mathematischen Struktur und die Auswahl geeigneter Losungsalgorithmen. Mit fortschreitender Ubung lie5en sich meine Studenten auch auf ein fiir sie vollig neues Gelande fiihren, auf die Programmierung in Blockschaltbildern, mit anderen Worten auf den Einsatz von SIMULINK, das wesentlich schnellere Simulationsrechnungen zulii5t. So wurden MATLAB und SIMULINK zu unserem Standardwerkzeug fur wissenschaftliches Rechnen; es wurde in Forschungsarbeiten und in Kooperationcn mit Industriepartnern auf komplexe Probleme angesetzt und iiberzeugte. Das vorliegende Buch mochte diese Erfahrungen weitergeben. Es ist kein hcrkommliches einfuhrendes Lehrbuch der Chemischen Reaktionstechnik (CRT), cs vcrmittclt CRT anhand realistischer Problemc, zu deren Losung man cincn Computer benotigt. Im Vordergrund steht die Anwendung moderner numerischer Methoden, nicht die Vollsttindigkeit der fachlichen Inhalte; zu Beginn der einzelnen Kapitel werden die Grundlagen der CRT aber im Zusammenhang crweitert und vertieft. Im Gegensatz zu herkommlichen Aufgabensammlungen, die sich iiberwiegend auf analytisch losbare, einfache Ubungen beschran-
XIV
Vorwort
ken, konzentriert es sich auf die Computeranwendung; das geschieht mit Hilfc von MATLAB, einer weitverbreiteten, vielseitigen und machtigen Softwarc, die nicht nur bei einfachen Ubungsaufgaben cinsetzbar ist, sondern hohercn Anforderungen geniigt und den ubergang zu den Problemen der Praxis mitmachen kann. Eine Einfuhrung in MATLAB wird nur soweit gegeben, wic man zum Einstieg benotigt, fiir alles weitere sind die Handbucher und insbesondere auch die Online-Hilfe bestens geeignet; weitere Informationcn zu MATLAB gibt dcr vorletzte Abschnitt dieses Vorworts. Das Buch ist also in erster Linie gedacht als eine Anleitung zum wissenschaftlichen Rechnen anhand typischer Probleme der CRT, die auf dem Computcr bcarbeitet werden konnen. Der Weg vom Problem zur Losung vcrlauft uber die Hauptstationen Modellierung, Simulation und Interpretation, die in vielfaltigcr Weise miteinandcr verwoben sind und nicht isolicrt betrachtet werden solltcn. In diesem Buch liegt das Hauptgewicht auf dem Simulationstcil, dcm wisscnschaftlichen Rechnen. Es werden (Muster-)Losungen vorgestellt und gezeigt, wie MATLAB und SIMULINK als vielseitige Hilfsmittel dienen konnen, insbesondere auch in Verbindung mit einer symbolischen Programmiersprachc wie MAPLE, das als Toolbox in MATLAB eingebunden werden kann, und unter geschicktem Einsatz der Zeichenkettenverarbeitung. Die Probleme sind moglichst realistisch gestaltet, es gibt einfache Probleme zur Ubung oder zum Einsticg, solche mittleren Schwierigkeitsgrades und anspruchsvollere, aus dcncn - so stcht zu hoffen - auch der erfahrene Reaktionstechniker Nutzen zichen kann. Die Beispiele dieses Buches sind iiber viele Jahrc entstanden; sie stammcn aus der akademischen Lehre, aus Kursen fur die industrielle Praxis, aus Forschungsarbeitcn und aus Kooperationen mit Partnern aus der Industric.
Zur Organisation des Buches Die Gliederung und den roten Faden bcstimmt die CRT. Es warc auch denkbar gcwesen, die Moglichkeiten von MATLAB vorzustellen und anhand von rcaktionstechnischen Beispielen zu demonstrieren - das aber wiirdc dem Weg vom Problem zur Losung zuwiderlaufen. In den einzelnen Kapiteln werden stets die reaktionstechnischen Grundlagcn crlautert, auf denen eine Losung der Probleme aufbauen kann; die gedrangte Darstellung der Grundlagen ist zur Wiederholung und zur Vertiefung gedacht, erweitert aber die in den herkommlichen Lehrbiichern behandelten Gebietc. Ich hoffe, dai3 an manchen Stellen die Ausfiihrungen zur Klarung von Begriffen odcr Sachverhalten beitragen konnen, die in einschlagigen Werken unvollstandig odcr gar irrefiihrend behandelt werden. Von den klassischen Gebicten der CRT fehlcn die Mehrphasenrcaktoren aus folgendem Grund: Das Zusammenspiel von chemischer Reaktion und physikalischen Transportprozesscn wird, was seine Anfordcrungen an wissenschaftlichcs Rechnen betrifft, ausreichend im Kapitcl iiber zweiphasige Modellc von Fcstbettreaktoren behandelt. Dariiber hinausgehende, spezifische Anforderungcn von Mehrphasensystemen an Rechentechniken gibt es durchaus, wie etwa die Losung von Intcgro-Differentialgleichungen,die bci Populationsmodellen auf-
Vorwort
XV
trcten, abcr auf diesem Feld hat MATLAB so wenig zu bieten wie andere Programmpakete. Anderen Gebieten, wie z. B. dem Verweilzeitverhalten von Reaktoren, sind auch keine eigenen Kapitel gewidmet; sie werden aber in Form von Problemen an geeigneter Stelle gestreift. Dic Problemc selbst sind in eigenen Abschnitten zusammengefaBt, den Kapitclthcmcn wie Stochiometrie, Thermodynamik, Kinetik, Reaktoren usw. zugcordnct, aber zwangslaufig haufig iibergreifend. Die meisten Kapitel enthalten cin besondcrs umfangreiches Problem oder Beispiel, das in den Uberschriften zusammcn mit seinen Hauptinhalten reaktionstechnischer oder rechnerischcr Art ausgewicsen ist. Der erfahrene Reaktionstechniker kann sich unmittelbar mit solchen Problemen beschaftigen, um die Moglichkeiten von MATLAB und SIMULINK kennenzulernen. Far weniger Erfahrene sind die meisten groBen P r e blemc in cine Reihe von Teilproblemen aufgespaltet, an denen sie sich zunachst versuchen konnen. Zur Orientierung ist der Schwierigkeitsgrad angegeben: * steht fur leicht, ** far mittelschwer und *** fur schwierig; die Einschatzungen sind relativ und subjektiv; je nach Vorkenntnissen kann dcr Leser' anders urteilen. Es wcrden einige numerische Verfahren angewendet, die nicht unmittelbar zum Umfang von MATLAB und seinen Toolboxen gehoren, aber mit ihrer Hilfe bcsondcrs kompakt und einfach cingesetzt werden konnen, wic z. B. die orthogonalc Kollokation oder die finite Volumenmethode zur Losung von particllen Differcntialgleichungen. Damit der Leser auf sie zuriickgreifen kann, sind diese Methodcn in eigenen Abschnitten kochbuchartig zusammengestellt. Fur die Beispiclc und die Losungen dcr Probleme wurden MATLAB-Programme crstellt liberwiegend in Form von M-Files oder SIMULINK-Modellen (MDL-Filcs), die auf der Begleit-CD zu finden sind; ihre Namen sind im laufendcn Tcxt in KAPITALCHEN gesetzt. Hier werden (Muster-)Losungen vorgestclk, dic keincswegs uniibertrefflich sind. Meistens sind es Ad-hoc-Losungen, so wie man sic zum Bearbeiten eigener Probleme entwickclt, nicht in crster Linic fiir andcrc Benutzer gedacht, insbesondere auch nicht defensiv, d. h. nicht fehlerabwciscnd ausgebaut. Aber: Verstandlich sollten sie in jedem Fall sein. Um dic bedeutende Rolle des Experiments in der Reaktionstechnik wenigstcns anklingen zu lassen in einem Buch, das der mathematischen Modellierung und dem wissenschaftlichen Rechnen gewidmet ist, werden gelegentlich Experimentc anhand von SIMULINK-Modellen simuliert, z. B. mit einem Reaktionskalorimeter im Abschnitt 4.2.2 oder mit einem Festbettreaktor in Abschnitt 3.1.3, an anderen Stellen werden schlichte Exe-Files verwendet. In den cinzelncn Kapiteln werden die komfortablen Moglichkeiten von MATLAB und SIMULINK zur Ein- und Ausgabe von Datcn sowie zur Visualisierung Liehc Lcserin, ich bcnutzc hier und in1 folgcnden den Oherhegriff ,,Leser". Der m$nnlichc Lcscr niag sich beschweren, daO far ihn kcine eigcnc Bczeichnung gcbr8uchlich ist, die Leserin, daU sie in1 Oberbegriff eingeschlossen ist und ihrc cigcne Bezeichnung nicht genannt wird. Wer hier ein Dilenirna sieht, kann niich trotzdern nicht zu Vcrrcnkungen veranlasscn, etwa dcn Text durch ,,der Leser oder die Leserin" (in welcher R.eihenfolge?) aufzubl8hcn oder gar mcine Mutter/Vater-Sprache durch ungeheuerliche Schr8gstrichkonstruktionen (Marke: Der/die Lcscr(in)) zu verhunzen; auch rnein privater Ausweg - ,,das LeserIn-Mensch" -- ist, hier sicherlich nicht angehracht. Kurz und gut: Leser bciderlei Gcschlechts sind rnir willkomrnen.
XVI
Vorwort
viclfaltig aufgezeigt. Darilber hinaus bietet MATLAB eine Reihc wciterer Hilfsmittel. Dazu gehort vor allem das Notebook, die Vcrbindung von WinWord und MATLAB: So kann man Dokumentation und Rechnen bequem vcrknupfen. Mit MATLAB kann man vollstiindige GUIs erzeugen, wie eindrucksvoll MATLABs Demos zeigen. Das mag ilber eine gewisse Spielerei hinaus vorteilhaft scin, z. B. wenn man denselben Rechenablauf haufig bcnotigt, oder wenn man Mitarbeiter, die nicht mit MATLAB vertraut sind, fur Routinerechnungcn cinsetzcn mochte. Auf solche peripheren Moglichkeiten weist bcispielhaft cin Kapitel im Anhang hin. Es ist in diesem Vorwort vielleicht schon deutlich geworden, dai3 dieses Buch auch und vor allem als professionelles Nachschlagcwerk far typische Aufgabcn der reaktionstechnischen Modellierung gedacht ist. Um schnelles und sichcrcs Finden von Losungen oder Losungsmoglichkeiten bei Bedarf moglichst einfach zu machen, sind im Inhaltsverzeichnis samtliche Aufgaben (Problcme) vermcrkt; auch beim Stichwortverzeichnis (Index) wurde darauf geachtet, wichtige Begriffe und Methodcn herauszustellen. Dieses Buch ist in mehr als dreijghriger Arbeit entstandcn. In dieser Zeit gab es eine Reihe von updates fur MATLAB und seine Toolboxen; ein besonders groi3er Schritt war der Wechsel von der Version 4.x auf 5.x. Wo es sinnvoll erschien, wurden Programme auf den neuesten Stand gebracht. Nicht allc neuen Moglichkeiten wurden im Nachhinein cingcbaut: Zum Beispiel wird auffallen, dai3 die Art der Bcschriftung von Abbildungen nicht einheitlich ist. Das liegt zum Teil daran, da0 die Verwendung von Sonderzcichen odcr von TEX-Elementen erst in sptiteren Versionen moglich war - dic Vcrstandlichkcit dcr Abbildungen ist davon nicht beruhrt. Gelegentlich wurdcn auch altcrc Losungswege bcibehalten, weil sie zeigen sollen, wic man sich in MATLAB gcschickt helfen kann, wenn die vorhandenen Werkzeuge einmal nicht ausrcichcn odcr nicht optimal erscheinen. D a m gchort etwa das programmierte Ausblcnden von Vektorkomponenten mit Demuz-Blocken in SIMULINK, vor allem bci dcm Modcll cines Reaktionskalorimeters im Abschnitt 4.2.2, das man in dcr SIMULINK-Version 2 zum Teil einfacher mit Select-Blocken crrcichen konntc, abcr eben nur zum Teil: Das Ausblenden cinzelner Vektorelementc ist einfachcr, aber nicht das Ausblenden von Teil-Vcktoren; erst mit der Version 5.3 kam cin Bus-Selector-Block als entsprechendes Hilfsmittel. So blieb die alte Losung an manchen Stellcn erhalten, weil sie cinfacher oder zumindest gleichwertig war, oder sie dient zur Demonstration.
Zum Gebrauch des Buches Dic Organisation eines Buches wird naturlich nachhaltig davon bccinflu5t, wie sich cin Autor den Gcbrauch seines Buches vorstellt. Deshalb cnthalt dcr vorigc Abschnitt schon eine Reihe von Hinweisen in diese Richtung, dic nun im Zusammcnhang noch einmal aufgegriffen und crwcitert werdcn sollcn. Grundkenntnisse in MATLAB und in numcrischcn Methoden vermittelt dicses Buch nicht systematisch. Der Leser sollte sie mitbringen oder sich (parallel) aneignen, z. B. anhand von Kapitel 3, und dann im weitcren Vcrlauf verticfcn.
Vorwort
XVII
Auch reaktionstechnische Vorkenntnisse sind gefragt; sie konnen anhand der auf die Probleme ausgerichteten Darstellung in den einzelnen Kapiteln wiederholt und vertieft werden. Die meisten Probleme kann man allein mit Hilfe der Studentenausgaben von MATLAB und SIMULINK bearbeiten, fur andere benotigt man die professionellen Ausgaben, und fur einige zustitzlich auch die eine oder andere Toolbox. Obwohl die Datenbeschaffung ein ganz wichtiger Bestandteil der Modellierung und Simulation ist, werden die meisten der benotigten Daten angegeben. Selbst wer noch keinen Zugang zu MATLAB hat, kann das Buch mit Nutzen studieren: Die Aufbereitung der Probleme und Losungswege bis zur Simulation ist in vielen Fallen weitgehend unabhangig von der Programmierung; man konnte auch in einer der Hochsprachen programmieren oder andere Simulationswerkzeuge benutzen - der eigene Arbeitsaufwand wurde allerdings betrachtlich steigen. Dem Leser kann nicht dringend genug empfohlen werden, zunachst eine eigene Losung zu versuchen. Erst wenn eine eigene Losung erarbeitet ist, oder wenn man trotz aller Anstrengung festsitzt, sollte man sich den Musterlosungen zuwenden. Die drei Hauptschritte werden besprochen: Modellierung, Simulation, Interpretation und gegebenenfalls ihre Interdependenzen. Bei den einfachen Beispielen, die auf Ungetibte zugeschnitten sind, wird ausfuhrlicher auf den Losungsweg eingegangen, insbesondere in den ersten Kapiteln; bei den komplizierteren Aufgaben wird oft nur die Losungsstruktur skizziert. Zur Diskussion der Simulationsschritte dienen kommentierte Programmausdrucke. (Die Programme auf der Begleit-CD sind aus mehreren Griinden unkommentiert; einige liegcn nur in kompilierter Form vor.) Dem fortgeschrittenen Leser wird gclcgentlich zugemutet, Variablennamen im Programm entsprechenden Formelzeichen zuzuordnen oder ganze Programmteile ohne weiter Erlauterungcn zu verstehen, besonders dann, wenn auf tihnliche Aufgaben verwiesen werdcn kann.
Die Losungsvorschltige kann man zwar zur Not auch ohne Computer studieren, aber so bei weitem nicht ausschopfen. Sie sind zweckmafiig vor einem cingeschalteten Computer zu lesen, auf dem die CD-Programme gestartet und die Ergebnisse der Simulationen - tiber die schwarz-weii3 Grafiken im Buch hinaus - wtihrend oder nach dem Simulationslauf visualisiert werden konnen. Dabei sol1 man naturlich die Moglichkeit ausgiebig nutzen, Parameter zu andern und die Auswirkungen zu studieren. Besondere Bedeutung kommt der Interpretation der Ergebnisse zu. Vor allem: Scheincn sie frei von numerischen Artefakten und sind sie physikalisch sinnvoll? Was ein Computer ausgibt, mui3 gepruft werden. Das kann auf verschiedcncn Wegen geschehen: Ein wichtiger und vom reinem Anwendcr numerischer Methodcn noch am leichtesten zu begehender Weg ist die Vercinfachung seiner Glcichungen auf analytisch losbare, fiir die dann die symbolische Toolbox mit Vorteil eingesetzt werden kann. Auch dafiir enthalt dieses Buch Beispiele.
XVIII
Vorwort
Informationen uber MATLAB und SIMULINK Wcr MATLAB noch nicht kennt und auch keinen Zugang hat (z. B. ubcr ein Rechenzentrum!, kann sich im Internet untcr http://www.mathworks. com umfassend informicren. Von den demos konnte man sich zunachst Basic Matrix Operations in M A T L A B ansehen: Man erreicht sie am besten unter dem quick link ' M A T L A B in Education'. Die anderen demos sind wie die SIMULINKDemos zwar interessant und beeindruckend, der Anfgnger wird aber Muhc haben, sie im einzelnen zu verstehen. Untcr M A T L A B in Education findet man auch den Punkt Select resources for your particular area of interest, and GO: Wahlt man hier Chemical Engineering, so crreicht man Teaching examples, von dcnen ich Numerical Methods. CENG303: M A T L A B for Chemical Engineers, Rice University empfehlen mochte; es ist ein Kurs, der in kleinen Schrittcn in MATLAB einfuhrt und am Bildschirm verfolgt werden kann. Einfachcr ist es, sich die Studentenausgaben von MATLAB und SIMULINK zu besorgen (je 120,- bis 130,- DM). Preiswerter wird man wohl kaum an cin so vielseitiges Instrumentarium fur das wissenschaftliche Rechnen gelangen; es hat einige Einschrankungen gegenuber den Vollversionen, die aber fur das Lcrnen unerheblich sind; dafur enthalt es ( MATLAB) zusatzlich das Notebook sowie drei Toolboxen , darunter die so wichtige Symbolic Math Toolbox, eine Auswahl aus MAPLE. Mit diesen Studentenausgaben kann man fast alle Aufgaben diescs Buches bearbeiten.
Begleitprogramme Die Begleit-CD enthalt zwei Verzeichnissc: In ,,crcums'' sind dic Programme fur die Vollversionen von MATLAB und SIMULINK, in ,,creums-se '' dic Programme fur die Studentenausgaben. Vorsicht ! Trotz gleichen Namens untcrscheiden sich viele Programme aus dicsen beiden Verzeichnissen (MATLAB-Programme und SIMULINK-Modclle) - sie sind also nicht austauschbar. Am besten kopiert man das zutreffende Verzeichnis in ein neues Unterverzeichnis von MATLAB; wie man dieses Unterverzeichnis zum aktuellen macht odcr wie man cincn Pfad legt, steht im Handbuch.
Not ation 0.1
Schriftauszeichnung
Mit wcnigen, angemerkten Ausnamen bezeichnen kleine fette Buchstaben Vektoren (x),grof3e fettc Buchstaben Matrizen (M);Buchstabenkombinationen als Matrix- oder Vektorname sind zusgtzlich unterstrichen (ESM). Fremdsprachige Ausdrilcke sind mit wenigen Ausnahmen (MATLAB) kursiv gesetzt (backslash), ebenso Programmnamen und sonstige Bezeichnungen in MATLAB und SIMULINK (5’-function); Fachausdrilcke (online) werden normal geschrieben, sofern sie im Duden aufgefilhrt sind. Variable sind im laufenden Text kursiv gesetzt ( h ) ,Programmvariable steil (XZU). Platzhaltcr fur chemische Verbindungen (A, B usw.) stehen im Text normal stcil, in mathematischen, stochiometrischen und Rcaktionsgleichungen kursiv. Anwcisungen (Befehle) , auch in Programmausdrucken, sind in serifenloscr Schrift gesetzt (inv(M)), Ausgaben im MATLAB-Fcnster in TypewriterSchriftart (ans = 5.87). Ausnahmen sind einige aus Vorlagen entstandene C MEX-+fileS-functions, die statt in serifenloser Schrift in Typewriter-Schriftart gesetzt sind: Die fettgedruckten eigenen Eintriige heben sich so besser ab. Dic Namen der beigefagten Programme und sonstiger Files sind in Kapitiilchen gesetzt (STOICH). Kommentare in Programmausdrucken werden mit % eingeleitet und, wenn sic uber eine Zeile gehen, auch mit % abgeschlossen.
XX Notation
Symbolverzeichnis
0.2
Im folgenden werden typische Einheiten angegeben; in den Rechnungen konnen durchaus auch andere Mafisysteme verwendet werden.
Einheit
Symbol
a
BO Bi Bo CP C
CP
D Da d E E ESM F
f G H H h J K KO k k0
L 1
m m
N N N N N N
NR NS n
spezifische Austauschflachc Per meabili tat Biot-Zahl Bodenstein-Zahl Molwarme Konzentration spezifische Warmc Diffusions-(Dispersions-) koeffizient Damkohler-Zahl Durchmesser Akt ivierungsenergie Anzahl Elementc Element-Spezies-Mat rix Flache Flache freie Enthalpie Enthalpie Hesscsche Matrix Warmedurchgangskoeffizient Jacobi-Matrix Gleichgewichtskonstante Knudsenkoeffizient Gcschwindigkeitskonst ant e Haufigkeitsfaktor Ltinge Langenkoordinate Masse Massestrom Matrix der stochiometrischen Koeffizienten u,? Ntiherung fiir Hessesche Matrix Molstrom Molstromdichte Anzahl Kollokationspunktc Anzahl Komponenten Reaktionsmatrix stochiometrische Matrix Molzahl
m2/m3 m2
kJ/(kmol K) kmol/m3 k J / k K) m2/s m kJ /kmol
m2 m2 kJ/kmol kJ/kmol kW/(m2 K) versch. Einh. m versch. Einh. versch. Einh. m m kg kg/s
kmol/s kmol/(m2 s)
kmol
Symbolverzeichnis
ni
Pe P 4
R R
R Re r r S
sc SEM Sh St S S
Reak tionsordnung Peclet-Zahl Druck Warmestrom Gaskonstante individuelle Reaktionsgeschwindigkeit, Produktions- oder Verbrauchsgeschwindigkeit Anzahl Reaktionen Rey nolds-Zahl Reakt ionsgeschwindigkeit radiale Koordinate Anzahl der unabhangigen stochiometrischen Gleichungen Schmidt-Zahl Spezies-Element-Matrix Sherwod-Zahl Stanton-Zahl Schatzwert filr St andardabweichung Zustandsvariable CVZl,
Temperatur Zeit St romungsgeschwindigkeit Volumen Kovarianz-Matrix Volumenstr om Umsatz Molanteil Ortskoordinate
V V 2,
X X 2
kmo1/(m3 S)
krnol/(m3 s) m
...., C V i R
ST
T t U
Pa kW kJ/(krnol K)
K S
4 s rn3 m3/s
m
Griechische Buchstaben cr
P 6 E
rl
8 A
x
v
E
Warmeiibergangskoeffizient Stoffiibergangskoeffizient Grenzschichtdicke relativer Volumenanteil; Porositat dynamische ZBhigkeit Parameter rnittlere freie Weglange Warmeleitfahigkeitskoeffizient stochiometrischer Koeffizient Reaktionslaufzahl, (Reaktionsvar iable)
kW/(m2 K) rn3/(m2 s) m
kmol/s
xx
XXII Notation P U 7 T
Q,
4
Dichte Standardabweichung Raumzeit, Verweilzeit Labyrinthfaktor Zielfunktion
kg/m3 S
versch. Einh.
Thiele-Modul; allgemeine Variable
Index oben
0 D e e ff S V
*
Eingang; Zulauf; Bezug; Standardwert Diffusion Ausgang; Ablauf effektiv Sollwert; Oberflache (surface) Volurnen (volume) Schgtz-(Regressions-) Wer t
Index unten a ad ax C
e 9
h i j
K Kn A4 m
N P
R T
S S
t U V
W
axial adiabatisch axial Kiihlung Gleichgewicht (equilibrium) Gas (gas) Wtirme (heat) Komponente i Reaktion j; Reaktormantel (jacket) Kreislauf Knudsen Mantel; Molmasse Masse (mass) Anzahl Komponenten Partikel (particle) Reaktion; Reaktionsvolumen; Anzahl Reaktionen Reaktion; Reaktor; radial Anzahl Schliisselkomponenten stationgr Rohr (tube) Umgebung Volumen (volume) Wand (wall)
A bkiirzungsverzeichnis
0.3
Abkurzungsverzeichnis
BR CFD CRE CRT CSTR DAE DAGl DG1 ESM FBR HJB LSM MSR MWR NAG NDIR OK PDGl RB RTW Rv SBR SE SGM SM TDMA UP
B atch-Reaktor Computational Fluid Dynamics Chemical Reaction Engineering Chemische Reaktionstechnik Continuous Starred Tank Reactor Diflerential-Algebraic Equation Differential-Algebraische Gleichung Differentialgleichung Element-Spezies-Matrix Fcst bet treaktor Himmclblau, Joncs, Bischoff Least-squares-Methode .Messen Stcuern Regcln Method of Weighted Residues Numerical Algorithm Group Non-Dispersive Infra-Red Orthogonalc Kollokation Partielle Differentialgleichung Randbedingung Real Time Workshop Reakt ionsvolumen Semibatch-Reaktor Student Edition Staub-Gas-Modcll Stefan-Maxwell Tridiagonal- mat^ Algorithm Untcrprogramm
m I I
Aus technischen Gründen bleibt diese Seite leer
Kapitel 1
Einleitung Mui3 ein Reaktionstechniker die numerische Mathematik beherrschen? Die Chemische Reaktionstechnik (CRT) wendet die Erhaltungsshtze fur Stoff, Encrgic und Impuls auf chemisch reagierende Systemc an, speziell auf Prozessc dcr chcmischen Industrie oder verwandter Industrien. Die mathematische Modellicrung solcher Prozesse fiihrt in der Regel zu stark nichtlinearen Differentialund algebraischen Gleichungen, vor allem, weil die Geschwindigkeit chcmischcr Rcaktionen nach dem Arrhenius-Gesetz exponenticll von der Temperatur abhangt. Gegenuber anderen naturwissenschaftlich-technischenDisziplinen kann man cs geradezu als Besonderheit der CRT herausstellen, dai3 ihre Modellgleichungcn in der Regel diese so stark nichtlineare Abhangigkeit von einer Zustandsgrooe enthalten. Entsprechend ist man in der CRT bei dcr Losung dcr Modcllglcichungen, bei der Simulation, im besondercn MaBe auf effizicntc numcrischc Mcthoden angcwiesen. Um dic cinleitendc Fragc aufzugreifen: Mui3 dcswegcn der Reaktionstcchnikcr auch cin numerischer Mathematiker sein? Ich mcinc: nein; seine Aufgabcn sind die Modcllicrung und die Interpretation dcr Simulationsergebnisse; numerischc Methoden gehoren zu scinem Handwerkszcug. Ohne gutcs Handwerkszeug kann man allerdings nicht adtiquat arbeiten, und man mui3 lernen, mit ihm umzugchen. Fiir einfache Probleme, fur Ubungsaufgaben in der Ausbildung odcr zum Einstieg in bestimmtc Teilgebiete, geniigcn haufig einfache Werkzeugc: Softwarcpakete wie ISIM, MATHCAD oder POLYMATH gehoren dazu, um nur cinigc zu nennen. Fur groae, komplexe Aufgaben in der Praxis mit ihrcn Tauscndcn oder gar Zehntausenden von Modellgleichungen, die meist weit ubcr dcn Bercich der CRT hinausreichen, stehen leistungsfahige Pakete zur Vcrfugung, z. B. SPEEDUP oder DIVA. Solche Softwarc bedarf allerdings langcr Einarbeitungszeit und andauernden Umgangs. Fur die professionellc taglichc Arbeit dcs Reaktionstechnikers ist etwas anderes vonnoten: ein Instrumentarium, das zugleich machtig, vielseitig, flexibel und offcn ist, nicht so starr wie dic groi3cn Softwarepakete, das mehr Raum lafit fur ungewohnliche, krcativc Losungsansatze, und trotzdcm einfach zu erlerncn und zu bedienen ist, benutzcrfrcundlich, wic man zu sagen pflegt. Ein solches Werkzeug ist MATLAB mit
2
1 Einleitung
seincn Toolboxen und Erweiterungen, von dencn SIMULINK cinc bcsondcrc Rollc spielt. Das exemplarisch aufzuzeigen ist Anliegen dicscs Buchcs. MATLAB hilft uns, unserc .Modellglcichungen zu losen und numerischc Ergcbnissc zu bckommen, was wir dem allgemeinen Sprachgcbrauch folgcnd kurz als Simulation bezeichnen. Vor der Simulation stcht die Modellierung unscres Problems, also die Uberfuhrung in mathematische Gleichungen; nach dcr Simulation solltcn wir die Ergebnisse interpretieren. Uber diese drci Schritte Modellierung, Simulation und Interpretation - konntc man ganze Bucher schrciben, und sie sind geschrieben worden. Alleine schon die Gcwichtung dieser drci Schritte wurdc uns in tiefe Wasscr fuhrcn; es stcht aber auiler Fragc: Bei dcr Simulation kann nichts besscres hcrauskommen, als man in dic Modcllicrung hineingesteckt hat. Dic Simulation ist unscr Hauptthcma, abcr wir konncn, diirfen und wollcn dic bciden anderen Schritte nicht auacr acht lasscn. Wcnn wir mit unscrer Programmsammlung, hicr also mit MATLAB, cinigermailcn vertraut sind, werden wir in vielen Fallen gceignetc Losungsvcrfahrcn findcn - vorausgesetzt, wir habcn die mathematischc Struktur unscrcs Modclls richtig erkannt. Meistcns gibt cs mehrcrc Losungswcgc, und sic werdcn nicht allc glcich bcqucm zu bcgehcn sein. Gclcgcntlich fchlcn bckanntc Losungsmcthodcn in unscrer Programmsammlung, und wir musscn vcrsuchcn, mit dcn vorhandenen zu improvisieren. Mit andcren Wortcn: Dic Auswahl cines LOsungsvcrfahrcns crfordcrt haufig einigc Ubcrlegung. Bctrachten wir ein Beispiel zu diesen Vorbemcrkungen, das in dcr rechncrischcn Ausfuhrung schon sehr wcit fuhrt: Stcllen Sic sich vor, wir habcn cin dctaillicrtcs Model1 fur cinc Dcstilla.tionskolonnc (mit oder ohne chemische Reaktion); dic Bilanzglcichungcn sind v011 dcr allgcmeincn Form:
Dabei sind s die Zustandsvariablcn, z. B. Molantcilc und Tcmpcratur, x vorgcgcbcne Groacn und u z. B. Molstrome von Dampf und Flussigkeit, die sich so cinstellen miissen, dail die algebraischcn Bezichungen crfullt, z. 3.Phascngleichgewichte cingestellt sind. Im Abschnitt 4.4.16 konncn Sie solchc Bilanzcn dctailliert schcn. Wie lost man ein solches DAG1-System? Eine naheliegcndc Moglichkeit: Man itericrt mit Hilfc eines Optimicrprogramms die u(t)-Variablcn iibcr hinrcichend klein gewghlte t-Abschnitte, bis dic algebraischen Glcichungcn jcweils crfullt sind, entweder von Boden zu Bodcn, oder ubcr die gcsamtc Kolonnc. Beidcs fiihrt zu unertraglich langen Rechcnzeiten. Ein DAG1-Loser warc schr vortcilhaft, und wir werdcn spatcr schcn, wic wir cxtcrnc Programme in SIMULINK implemcntieren konncn, abcr: Man muate zuvor den Indcx bcstimmcn - zumindest bei dcn meistcn bis hcute verfugbaren Programmcn - , und cs wird sich hcrausstcllcn, daa dcr Indcx grofier als eins ist und damit cine Routineanwendung dcs DAG1-Losers nicht in Frage kommt. NATLAB (nicht SIMULINK!) cnthalt erst seit dcr Version 5.3 eingcschranktc Moglichkciten zur
3 Losung von DAGls vom Index 1. Fiir MATLAB oder SIMULINK l a t sich die Indexbestimmung aber in ein Losungsverfahren iiberfiihrcn, das nur mit DGls zu tun hat und daher sehr schnell arbeitet. Wir betrachten das an einem sehr weit abgespeckten formalen Analogon, das eine analytische Losung hat: ds dt g
-
-
U
= s*(t+l)-1=0
Die analytische Losung liegt auf der Hand: s=-
1 t+l’
= --
(t
1
+ 1)2
Wie konnen wir vorgehen? Die Differentiation von g liefert uns: ds dg _ - ( t + 1)- + s dt
Wir setzen den Ausdruck fiir
dt
=0
% ein und differenzieren erneut:
g2 = (t
+ 1). + s = 0
du _ dg2 - (t + 1)- + u + dt dt
ds dt
-=0
Damit erhaltcn wir eine DG1 fur u. Die konsistenten Anfangsbedingungen fur das DG1-System sind:
t = 0 : s = 1 , u = -1
(1.9)
Die Anfangsbedingung fiir u folgt aus g2. Der Leser moge sich anhand dieses einfachen Beispiels iiberzeugen, wie erheblich die Unterschiede in den Rechenzeiten fur das erste Verfahrcn, die Iteration, und fiir die Losung des DG1-Systems (1.3), (1.8) und (1.9) sind; dann wird er die Miihe des zweimaligen Differenzierens gering achten, zumal ihm bei komplizierteren Gleichungen die Symbolic Math Toolbox hilfreich zur Seite stcht, und die Indexpriifung fiir einen DAG1-Loser es ebenfalls erfordern wiirde. (Das DG1-System ist im SIMULINK-Model1 DAGL-DGL.MDL implementiert.) Eine iterative Losung auf dem skizzierten Weg ist nicht nur zeitraubend, was die Rechengeschwindigkeit betrifft, sondern erfordert auch umfangreichc Tests hinsichtlich der Zeitdiskretisierung sowie der Einstellungen der zahlreichcn Optionen sowohl beim Optimierverfahren als auch beim DG1-Loser. Versuchen Sie
4
1 Einleitung
es selbst , bevor sie auf den Losungsvorschlag zuruckgrcifcn! (Dcr Losungsvorschlag ist in dem Programm DAGL-STEU mit den UPS DAGL-OPT und DAGL cnthalten.) Es sei noch angemerkt: Die Aufgabe laat sich auch als Variationsproblem behandeln: u ist dann als Steuervektor zu verstehen, der cine geeigncte Zielfunktion optimiert, hier z. B. (g(u,t ) ) 2 minimiert. Bci nichtlinearen S y s t c men durfte aber die Bestimmung der optimalen u-Trajektorie, z. B. durch das Vcrfahren der Steuervektor-Iteration, ebenfalls zu langen Rechenzeiten fuhrcn; ich habe das nicht ausprobiert, aber Sie konnten es versuchen. Anleitung findcn In dicsem Zusammenhang Sic z. B. in einem Buch uber Regelungstechnik ([l]). sei angemerkt: Regelungstechnik und Chemischc Reaktionstechnik lassen sich rccht zwanglos unter dem Dach der Systcrnthcorie ansicdeln, ihrc Mcthodcn weiscn schr vielc Ahnlichkeitcn auf; diesc Verwandtschaft solltc vie1 mchr in Anspruch genommen werden! Wir sehen also, die Auswahl von Losungswcgcn fur die Simulation crfordcrt Erfahrung und Ubung, auch bei einer so benutzerfrcundlichen Programmsammlung wie MATLAB, und dazu sollen die folgendcn Kapitel vcrhelfcn.
Kapitel 2
MATLAB und SIMULINK 2.1
Einfuhrung
Welche Kenntnisse von MATLAB sollte man mitbringen, um diescm und den folgenden Kapiteln ohne allzu groi3e Muhc folgen zu konnen? Das kann auf jeden Fall, wer intro im MATLAB-Fenster eingegeben hat, Getting Started With MATLAB durchgearbeitet, wenigstens so weit, dai3 er wcii3, wo er nachsehen kann, und sich vielleicht noch einige demos angesehen und einige einfache MFiles studiert hat. Es geht aber auch einfacher und schneller: Sie bcginnen mit Kapitel 3 dieses Buches, lernen dort umzugehen mit Vektoren und Matrizen, linearen und nichtlinearen Gleichungssystemen, mit Differcntialgleichungen in MATLAB und in SIMULINK, und kommen in SIMULINK sogar bis zu den S-Funktionen, ein Kapitel fur sich, das in fast allen in MATLAB und SIMULINK einfuhrenden Buchern ausgespart ist; auch in die Zeichenkettenverarbeitung werden Sie dort schon eingcfuhrt, und alles im Zusammenhang mit Problemen der CRT. Dabei lernen Sic cine ganze Rcihe von MATLAB- Anweisungen und von SIMULINK-Blocken kennen, und Sic konnen sich gleich daran gcwohnen, mit der MATLAB-Hilfe umzugehen. Dazu noch einige Hinweise: help help im MATLAB-Fenster gibt Ihnen eine ausreichende Einfuhrung. Jeden Bcfchl konnen Sie mit help 'Befehlsnarne' aufrufen und in allen Einzelheiten studieren, viele auch im MATLAB-Handbuch nachlescn. Schwierig wird es erst, wenn Sic selbst etwas rechnen oder programmieren wollen und sich im Befehlsvorrat noch zu wenig auskennen. Eine gewisse Hilfe bietet lookfor, mit dem man nach (mathematischen) Begriffen wie ,,inverseii suchen kann. (Sic konnen help lookfor im MATLAB-Fenster eingeben, um Naheres zu crfahren!) Am besten sieht man von Zeit zu Zeit die Befehlssammlungen durch ( m a t ~ u b \ g e ~ e r ~ ~ - General purpose commands, matlab\ ops - Operators and special characters usw.); man findet sie im Help-Menti unter help window; Doppelklicken fuhrt bis zu dcn Erlauterungen der einzelnen Befehle. Auch dic nicht so umfangreichc SIMULINK-Blockbibliothek sollte man gelegcntlich durchblattern.
6 2 MATLAB
und SIMULINK
Wenn Sie das Kapitel 3 dieses Buches studiert haben, konnen Sic, wcnn Sic wollen, an diesc Stellc zuruckkehren, um einigc fortgeschrittcne Technikcn kennzulernen, die in spateren Kapiteln haufiger angewendet wcrden; selbstvcrstandlich gibt es einige Dinge, an die man sich erst durch Ubung gcwohncn mui3, vor allem an das moglichst weitgehende Vektorisieren der Anweisungcn und Programme, verbunden mit dem Manipulicren von Matrizen. Solchc und cinige andere Besonderheiten werden im folgenden herausgegriffen.
2.2 2.2.1
Kostproben aus MATLABs Programmiertechniken Vekt orisierung
Beginnen wir mit einem Standardbeispiel: Es sol1 cine Hilbert-Matrix H crzcugt werden:
=
1 .
.
2 + p 1
Mit DO- oder FOR- Schleifen aufgewachsen wird man gcneigt sein, ctwa folgendes Script File zu schreiben:
i=l:n j=l:n H (i ,j ) =1/ (i +j- 1) ; end end for for
Etwas bcsser, d. h. schneller, ware es, die Matrix mit Nullcn vorzubcsctzcn, so dafl der Interpreter nicht bei jedem Schtitt ncucn Platz im Arbeitsspcichcr
schaffen mui3, also: H=zeros( n,n); for i = l : n for j = l : n H( i,j)=l/( i+j-l); end end
Noch besser ware es, wenn man vor dem Programmieren etwas iiberlcgtc, in dcr Modellierungsphase sozusagen, und erkennen und beriicksichtigen wiirdc, dai3 eine Hilbert-Matrix symmetrisch ist:
H=zeros( n,n); for i = l : n
2.2 Kostproben aus MATLABs Programmiertechniken 7 for j=i:n H(i,j)=l/(i+j-1);
H(j ,i)=H(i,j); end end
Die beste Losung, und die einzige, die MATLAB angemessen ist, ist eine vektorisiertc Form, etwa i=l:n;j=l:n; A=ones( n,n)./(i’*ones( l,n)+ones( n,l)*j-1);
oder die noch etwas ilbersichtlichere Codierung im MATLAB-File hzlb. An diesc Stelle paflt vielleicht der MATLAB-Spruch: Lzfe zs too short to spend wrztzng for loops. Wenn Sic diese Programme so erweitcrn, dafl sie x-ma1 durchlaufcn werden, konncn sic mit tzc und toc die Unterschiede in den Rechenzeiten sehcn; x sollte so groB gcwahlt werden, dafl die Rechenzeiten mindestens im Sekundenbcrcich licgen, um vcrlalich zu sein.
2.2.2
Matrizenmanipulation
Grcifen wir cin wenig vor und betrachten ein etwas komplexeres Problcm. Es sollen die DGls
dx
- = NR r(x) dt fur einen umfangreichen Elcmentarmcchanismus aufgestcllt werdcn. Wie man mit Hilfe von MATLABs Zcichenkettenverarbeitungeinen Reaktionsmechanismus geschickt eingibt und dann automatisch die Reaktionsmatrix und die Geschwindigkcitsgleichungen erzeugen l&, ist Gcgenstand von Problemen im Abschnitt 3.4. Mit der Reaktionsmatrix NR kann man aber auch dic Reaktionsgeschwindigkeiten r(x) direkt berechnen, wobei wir Hin- und Riickreaktionen als cinzclnc Schritte auffassen wollen. Wir mochten also ein UP schreibcn, dcm Werte von x ubergeben werden, und das Werte von r zuriickgibt. Nehmen wir das Reaktionsschema
A+B C+B 2B C+D
-+ -+
-+ --t
C+D E F A+B
8 2 MATLAB und SIMULINK
Es hat die Reaktionsmatrix NR=[-1 0 0 1;-1 -1 -2 1;l -1 0 - 1 ; l 0 0 -l;O 1 0 0;O 0
lo]
NR = - 1 0 0 1 -1 -1 -2 I 1 -1 0 -1 I 0 0-1 0 1 0 0 0 0 1 0
Dann konnte unser U P folgendermden aussehen: function r =rate(x) global NR k %k ist der Vektor der Geschwindigkeitskonstantcn% for i=1:4 j =f ind ( NR( :,i) 2 C2H5. n-C4H10 ---> 1-C3H7. + CH3. 1-C4H8 ---> C3H5. + CH3. C2H4 + H. ---> C2H3. + H2 C2H6 + H. ---> C2H5. + H2 C2H4 + CH3. ---> C2H3. + CH4 C2H6 + CH3. ---> C2H5. + CH4 C2H4 + C2H5. ---> CH3. + C3H6 C2H3. ---> C2H2 + H. C2H5. ---> C2H4 + H. C3H5. ---> C2H2 + CH3. 1-C3H7. ---> C2H4 + CH3. 1-C3H7. ---> C3H6 + H. C4H7. ---> C4H6 + H. C4H7. ---> C2H4 + C2H3. 1-C4H9. ---> C2H4 + C2H5. 1-C4H9. ---> 1-C4H8 + H. C5Hll. ---> C5H10 + H. C5Hll. ---> 1-C4H8 + CH3. C5H11. ---> C2H4 + I-C3H7. C2H2 + H. ---> C2H3. C2H4 + H. ---> C2H5. C3H6 + H. ---> 1-C3H7. C4H6 + H. ---> C4H7. C2H4 + CH3. ---> l-C3H7. C2H4 + C2H3. ---> C4H7. C2H4 + C2H5. ---> l-C4H9. C3H6 + C2H5. ---> C5Hll. C2H4 + 1-C3H7. ---> C5H11.
64 3 Stochiometrie, Therrnodynamik, Reaktionskinetik: Drei SCrulen der CRT C2H3. + H. ---> C2H4 C2H5. + H. ---> C2H6 C3H5. + H. ---> C3H6 1-C3H7. + H. ---> C3H8 C4H7. + H. ---> 1-C4H8 1-C4H9. + H. ---> n-C4H10 C5H11. + H. ---> C5H12 2 CH3. ---> C2H6 C2H5. + CH3. ---> C3H8 C3H5. + CH3. ---> 1-C4H8 C4H7. + CH3. ---> C5+ 2 C2H3. ---> C4H6 C4H7. + C2H3. ---> C5+ 2 C2H5. ---> n-C4HlO 2 C2H5. ---> C2H4 + C2H6 C4H7. + C2H5. ---> C5+ C4H7. + C3H5. ---> C5+ 2 C4H7. ---> C5+ C2H2 ---> 2 C + H2 Mit einem kleinen Programm lassen sich die stochiometrische Reaktionsmatrix und der Komponentenvektor erzeugen (s. Problem 3.4.4); aus Platzgriinden wurde die Ausgabe in Zeilen umgewandelt und zusatzlich nummeriert: zeich='->'; [RN,komp]=checomp2( mechn,zeich); komp komp = 1) C2H6 2) CH3. 3) n-C4H10 4) C2H5. 5) 1-C3H7. 6) l-C4H8 7) C3H5. 8) C2H4 9) H. 10) C2H3. 11) H2 12) CH4 13) C3H6 14) C2H2 15) C4H7. 16) C4H6 17) i-C4H9. 18) C5Hll. 19) C5H10 20) C3H8
21) C5H12 22) C5+ 23) C Die Reaktionsmatrix besteht naturlich uberwiegend aus Nullen (Abb. 3.13); die Besetzung mit endlichen Werten kann man als Muster erzeugen mit dem Befehl NR=RN'; Spy(NR,'d')
Also sind nur etwa 13 % der Matrix besetzt. Anders ausgedriickt: Jede der 49 Spalten (Reaktionen) hat im Mittel etwa drei Eintrage (Komponenten). Diese schwache Besetzung der Matrix konnen wir berucksichtigen und MATLABs sparse matrix techniques verwenden. Zunachst aber erzeugen wir uns mit einem weiteren kleinen Stringverarbeitungsprogramm, C H E M D G L , die Geschwindigkeitsgleichungen des Elementarmechanismus:
3.3 Reaktionskinetik (Gewtrhnliche, auch steife DGls; DAGls)
nz = 146 0
O
'
.-32 10-
15-
20-
fo;
0 0
0
0
0 OO 0 O00
0
8000
O
0
O
800
-
8
O0
0 ~ 8 0 0 0 0 ~ 0 0008 8 0 0 0 ~ oo $ o ~ o o o o
oo
0-
0 0
0000-
0 0
000
0
oooo
0
0 0
0
0 0
80
8O 00800
OOO
OO 0
0
O
Abbildung 3.13: Besetzungsmuster der =-Matrix bei der Ethanspaltung. nz gibt die Anzahl der von Null verschiedenen Eintriige an.
65
66
3 Stochiometrie, Thermodynamik, Reaktionskinetik: Drei Siiulen der CRT
r(25) r(26) r (27) r(28) r(29) r(30) r(31) r(32) r(33) r (34) r(35) r(36) r(37) r (38) r(39) r(40) r(41) r(42) r(43) r(44) r(45) r(46) r(47) r(48) r(49)
= kh(25)*y(9)*y(16) = = =
= =
= = = =
= = = = =
= = = =
= = = = =
=
kh(26)*y(2)*y(8) kh(27) *y(8) *y(10) kh(28)*y(4)*~(8) kh(29)*y(4)*~(13) kh(30)*y(5)*y(8) kh(31)*y(g)*y(10) kh(32)*y(4)*y(9) kh(33)*y(7)*y(9) kh(34) *y(5) *y(9) kh(35)*y(9)*y(15) kh(36)*y(g)*y(17) kh(37)*y(9)*y(18) kh(38) *y(2) **2 kh(39)*y(2)*y(4) kh(40)*y(2)*y(7) kh(41)*y(2)*y(15) kh(42)*y(10)**2 kh(43)*y(10) *y(15) kh(44)*y(4)**2 kh(45)*y(4)**2 kh(46)*y(4)*~(15) kh(47)*~(7)*~(15) kh(48)*y(15)**2 kh(49)*y(14)
Mit diesen Gleichungen konnen wir nun bequem die DGls = NR r erzeugen. Es sei dem Leser uberlassen, verschiedene Losungsmoglichkeiten auszuprobieren; sie sind in den Problemen 3.4.12 bis 3.4.14 skizziert. Ausgefiihrt werden sol1 hier nur noch die Verwendung sparser Matrizentechniken in MATLAB. Wir wghlen eine Reaktionstemperatur von 800 "C und besetzen die Geschwindigkeitskonstantenkh durch Aufruf von C2H6KON:
T= 1073.16;c2 h6kon Dann erzeugen wir eine sparse Version von NR und machen diese Reaktionsmatrix und den Vektor der Geschwindigkeitskonstantenzu globalen GroBen, um sie an das UP C2H6KIN ubergeben zu konnen. AnschlieBend starten wir die G Integration des DG1-Systems, wobei wir nur der ersten Komponente C ~ H einen endlichen Anfangswert zuweisen, und integrieren uber eine Sekunde: NRS=sparse(NR); global kh NRS NR%Wir erhalten eine Warnung, weil GroBen in der neuen MATLAB-Version vor ihrer Besetzung als global erklart werden mussen (leider; der Grund i s t mir unklar).%
3.3 Reaktionskinetik (Gewohnliche, auch steife DGls; DAGls)
67
tic;[t,y]=odel5s('c2h6kin', [O;11,[l;zeros(22,l)]);toc elapsed-time = 1.6880
Das Ergebnis ist in Abb. 3.14 gezeigt.
-
0.2 r
*
-
c
/
'
Oh
-
.---------Q.5 1 Zeit in s
0.5 Zeit in s
1
Abbildung 3.14: Ethanspaltung bei 800 "C. Linkes Teilbild: - Cz=, - - C3=, . . . C4=, - . - . c5= Rechtes Teilbild: - Hz, - - CHI, . . . C5+ Zunachst etwas iiberraschend ergibt sich praktisch kein Unterschied in der Rechenzeit, wenn wir mit der vollen Matrix NR rechnen. Erst bei erheblich gr65erem Umfang wirken sich die unterschiedlichen Speicherungs- und Rechenarten auf die Rechenzeiten merklich aus; dazu konnen im Problem 3.4.10 einige Versuche gemacht werden. Fur ein einmaliges Durchrechnen ist die Rechenzeit kurz genug. Wenn wir aber z. B. die Ethen-Ausbeute optimieren oder kinetische Konstanten in den Reaktionsgleichungen an Meflwerte anpassen wollten, wiirde der haufige Aufruf des DG1-Systems doch vie1 Zeit beanspruchen. Deshalb sollten andere Losungsmoglichkeiten studiert werden, die wie schon erwahnt in den Problemen skizziert sind.
3.3.4 Zusammenfassung Die formale Reaktionskinetik setzt typische Reaktionsmechanismen in DGls um und lost sie. um das Konzentrations-Zeit-Verhaltenzu studieren. Dabei wird
68 3 Stdchiometrie, Thermodynamik, Reaktionskinetik: Drei StiuJen der C R T (oft stillschweigend!) davon ausgegangen, dai3 die Reaktionen in einem ideal vermischten isothermen Riihrkessel von konstantem Reaktionsvolumen ablaufen, die DGls also von der Form sind: dc dt
- = NRr(c)
-
(3.42)
Bei den einzelnen Schritten kann MATLAB die Arbeit ganz erheblich erleichtern. Man schreibt den Reaktionsmechanismus als Strings und setzt diese zu einer Matrix zusammen; ein Beispiel (das noch verbesserungsfahig ist, s. Prcblem 3.4.3) ist in dem File c 2 ~ fur 6 einen vereinfachten Mechanismus der thermischen Ethan-Spaltung zu finden. Mit MATLABs Zeichenkettenverarbeitung kann man dann aus der Mechanismus-Matrix automatisch erzeugen: 0
0
die Matrix der stochiometrischen Koeffizienten des Reaktionssystems, die (Komponenten-)Reaktionsmatrix NR bzw. ihre Transponierte RN (Programm-File CHECOMP2) das Gleichungssystem r = r(c), das in dieser Form ohne weiteres in ein Unterprogramm fur einen DG1-Loser von MATLAB eingebunden werden kann (File C H E M D G L ) ; mit ,,Suchen und Ersetzen" eines Editors oder Textverarbeitungsprogramms konnen leicht Anderungen fur FORTRAN oder C/C++ durchgefuhrt werden.
Damit sind die arbeitsaufwendigen und fehlertrachtigen Schritte der Prcgrammierung automatisiert. Am bequemsten, aber nicht am schnellsten, kann die Losung des DG1Systems mit einer einzigen Anweisung im MATLAB-Fenster erfolgen. Wie man die Reaktionsmatrix NR analysieren und weiterverarbeiten kann, wurde bereits im Abschnitt 3.1 besprochen. DAGls werden im Problem 3.4.15 angegangen und in den folgenden Kapiteln wei tergefilhrt .
3.4 Probleme und Losungen 3.4.1
Wahl von Nichtschlusselkomponenten (*)
Bei der Dampfspaltung von Methan konnen noch weitere Komponenten auftreten, vor allem C und C2H6. Wir benotigen dann 7 - 3 = 4 Schlilsselkomponenten, um aus der Element-Spezies-Matrix einen vollstandigen stochiometrischen Satz abzuleiten. Probieren Sie aus, dai3 das Verfahren nicht funktioniert, wenn man als Schlilsselkomponenten H20, CO, C02 und C wahlt. Dann sind namlich in den Nichtschltisselkomponenten H2 , CH4 und C ~ H nicht G alle Elemente ent halten.
3.4 Probleme und Ltrsungen
69
Losungsvorschlag Wenn Sie mit verschiedenen Anordnungen von Schlussel- und Nichtschlusselkomponenten experimentieren wollen, mag es Ihnen 1Btig erscheinen, jedesmal den Speziesvektor und die ESM neu zu formulieren. Dann sollten Sie zunachst das folgende Problem betrachten, in dem ein Weg gewiesen wird, den Speziesvektor geschickter zu formulieren und dann die Anordnung der Komponenten und die korrespondierende Anordnung der ESM durch eine einfache Matrizenmanipulation zu andern.
3.4.2 Korrespondierende Manipulation von ESM und Spezies-Vektor (** bis ***; * wenn stoich als Vorlage benutzt wird) Wenn man verschiedene Wahlmoglichkeiten von Schlussel- und Nichtschlilsselkomponenten realisieren mbchte, kann die Umstellung der ESM und des Speziesvektors Sp l%tig werden, besonders bei groflen Komponentensystemen wie etwa bei deyH2-Verbrennung. Wer haufiger mit grdfleren Systemen umgeht, wird sich hier komfortablere Maglichkeiten schaffen. Losungsvorschlag
Dazu bietet MATLAB geeignete Manipulationen von Matrizen (und damit naturlich auch von Vektoren) an. Den Speziesvektor sollte man zunachst anders einrichten. Es bietet sich an, die Komponenten als einzelne Strings so in einem Vektor anzuordnen, d d ihre Reihenfolge mit den Spalten der ESM ilbereinstimmt. Dann kann man MATLABs Vektorindizierung von Matrizen zur korrespondierenden Umstellung von ESM und Speziesvektor benutzen. Fur diesen Zweck konnen STOICHQ und STOICH4 die Files STOICH und STOICH:! ersetzen. STOICHQ
%Das Script-File stoich3.m gibt einen Satz unabhaengiger %stoechiornetrischer Gleichungen aus. In der Workspace muessen %bereitgestellt werden: Die Stringrnatrix s mit den Kornponenten %und die Element-Spezies-Matrix ESM nach den beiden folgenden %Mustern: %s=str2rnat( 'H2', 'H20', 'CH4', 'CO', ' C 0 2 ' ) ;
%SEM=[0,2,0;0,2,1;1,4,0;1,0,1;1,0,2]; %Die stoechiometrische Matrix wird in NS bereitgehalten. %Die Arbeitsweise von stoich3 entspricht der von stoich irn Abschnitt 3.1.1.%
STOICH4 %Das Skript-File stoich4 gibt Reaktionsgleichungen aus, die %in der Workspace durch die Reaktionsrnatrix NR und die String%Matrix s definiert wurden. Dann gibt stoich4 %einen Satz unabhaengiger stoechiometrischer Gleichungen aus.
70 3 St(lchiometrie, Thermodynamik, Reaktionskinetik: Drei SBulen der CRT %Die Schluesselkomponenten muessen die ersten in s sein. %Beispiel fuer s und NR: %s=str2mat( 'CO' , 'CH4', ' H2',' H 2 0 ' ,'C02'); %NR=(-1 -1 0;1 0 1;-3 1 -4;l -1 2;O 1-11; %Die stoechiometrische Matrix wird in NS bereitgehalten. %Die Arbeitsweise von stoich4 entspricht der von stoich im Abschnitt 3.1.1.%
3.4.3 Erzeugung einer String-Matrix aus einem Reaktionsmechanismus (*) Das Vorgehen in der Datei ~ 2 ~ den 6 ,Reaktionsmechanismus in eine StringMatrix zu bringen, ist noch etwas anfangerhaft. Programmieren Sie eine bequemere Methode! Losungsvorschlag Ein Losungsvorschlag ist in der Datei GLEICHU zu finden GLEICHU
YOgleichu
liest Reaktionsgleichungen
% als String ein und bildet aus ihnen % die Matrix mechn. Ende mit E.
'1
xei n=[' ; mech=[] ;mec hn=[]; while xein(1) ^.='E' xein = input('Naechste Gleichung','~'); mech=str2mat( mech,xein); end si=size( mech); mechn=mech(2:si( 1)-1,:); disp('Vergessen Sie nicht, mechn zu speichern!')
3.4.4 Automatische Generierung der Reaktionsmatrix fur einen Reaktionsmechanismus (Chemischer Compiler 1) (***) Dies ist eine schwierige Aufgabe, auch wenn man mit MATLABs Stringverarbeitung schon etwas vertraut ist. Es wird sie nur jemand angehen, der haufiger mit grijileren Reaktionssystemen zu tun hat. Losungsvorschlag Ein Losungsvorschlag ist in CHECOMP:! zu finden. CHECOMP2 function [RN,komp] = checomp2(mechn,zeich)
YO"chemischer compiler"
3.4 Problerne und Ltisungen
71
%Das function file berechnet die Reaktionsmatrix R N und den %Komponentenvektor komp aus der String-Matrix mechn der chemischen %Reaktionen. Das Reaktionszeichen "=", "->" oder " muss als %String uebergeben werden. si=size( mechn); k=l; rem=mechn( 1,:); [token,rem]=strtok(rem); %Untersuche den ersten Term der ersten Gleichung; wenn er nicht aus Buchstaben besteht (Komponente), dann ist er eine positive Zahl ungleich 1, die als stochiometrischer Koeffizient (negativ, da linke Seite!) in der Matrix RN gespeichert wird; der ngchste Term ist dann ein Komponentenname. Wenn der erste Term jedoch aus Buchstaben besteht, dann handelt es sich um eine Komponente, die den stbchiometrischen Koeffizienten -1 erh%lt.% if isletter(token) == 0 RN( l,l)=-str2num(token); I'
[token,rem]=strtok(rem);
else RN( 1 1)=-1; end ~
komp=str2mat(token);%Die Komponente (genauer: ihr Name) wird in der Stringmatrix komp gespeichert% for i = l:si(l)% Die Terme der Reaktionsgleichungen werden untersucht% I rem =O ; fak=-l;%wird benutzt, urn die Zahlen der linken Seiten in negative stochie metrische Koeffizienten zu verwandeln% rem=mechn (i, :); while lrem == 0 tokold='l';
I=O;
[token,rem]=strtok(rem); if token == '+'%wenn zutreffend, ist der ngchste Term eine positive Zahl ungleich 1 oder eine Komponente% [token,rem]=strtok( rem); end if token(1) == zeich(l)%wenn Reaktionszeichen, fak=l;%folgt die rechte Seite, fur die die stochiometrischen Koeffizienten positiv sein sollen.% [token,rem]=strtok(rem);%ntichster Term (Zahl oder Komponente)% end if isletter(token) %Wenn Zahl, tokold = token;%dann zwischenspeichern% [token,rem]=strtok( rem);%Neuer Term ist Komponente% end
72 3 Sttrchiornetrie, Thermodynamik, Reaktionskinetik: Drei Ssulen der CRT %Komponente mit bereits vorhandenen vergleichen% for j = l : k I=strcmp(deblank( komp(j,:)),deblank(token)); if I == l%Wenn schon vorhanden, R N ( ij)=fa k*str2nurn(tokold);%den zwischengespeicherten stochiometrischen Koeffizienten mit dem richtigen Vorzeichen in der Reaktionsmatrix speichern% brea k%Die for-Schleife verlassen end %if end %for if 1 == O%Wenn Komponente noch nicht vorhanden, k=k+l;%Laufzahl fiir die Komponenten erhohen RN(i, k)=fak*str2num(tokold);%st~chiometrischen Koeffizienten speichern% kom p=str2mat (kom p,token);%Komponente spcichern in der Stringmatrix% end ?&f if isempty(strtok(rem)) == l%Wenn Ende der Reaktionsgleichung erreicht, I rem =1;%while-Schleife verlassen. end end %while end %for; nachste Reaktionsgleichung untersuchen%
3.4.5
Automatische Generierung der Geschwindigkeit sgleichungen fur einen Elementarmechanismus (Chemischer Compiler 2) (**)
Losungsvorschlag Ein Losungsvorschlag ist in
CHEMDGL
zu finden.
CH E M D G L
% chernische DGI % N R Reaktionsmatrix, z. B. [-1-1 0 ; l 0 1;-3 1 - 4 ; l -1 2;O 1-11% x=NR'; si=size( NR'); for i=l:si( 1) is=num2str(i); Is=['kh is, rs=['kr(',is,')']; for j=l:si(2) js=num2str(j); if x(i,j) < 0 a bsx=a bs(x( ij)); if absx == 1 Is=[Is,'*y(',js,')'J; elseif absx > 1 a bsxs=nurn2str( a bsx); ( I ,
I)'];
3.4 Probleme und Ltrsungen
73
Is=[ls,'*y(',js,')**',absxs]; else end elseif x(i,j) > O a bsx=a bs(x( i,j)); if absx == 1 rs=[rs,'*y(',js,')']; elseif absx > 1 a bsxs=num2str( absx); rs=[rs,'*y(',js,')**',absxs]; else end else end end %Fur reversible Mechanismen muB die folgende Zeile rz entsprechend erganzt we rden% rz=['r(', is, ') = Is]; disp( rz) rv=str2mat(rv,rz); I,
end
Wasserdampfsatt iger (*)
3.4.6
Auf welche Temperatur m d der Wasserdampfs2ttiger in Abb. 3.2 eingeregelt werden, damit bei einem Gesamtdruck von 10 bar das molare H20/CH4Verhaltnis vier betrtigt? Losungsvorschlag
Der Gesamtdruck ist 10 bar, das molare H2O/CH4-Verh<nisist vier, also ist der H2O-Partialdruck 8 bar. Es gibt eine Reihe von Moglichkeiten, aus Angaben zur Dampfdruckkurve die Temperatur fur 8 bar zu bestimmen. Zunachst: Wo findet man solche Angaben? Zum Beispiel im ,,Perry" [9]:
TC
=
p=
[lo0 120.1 152.4 180.5 213.11;
[ 1 2 5 10 201;
(TC in " C , p in bar) Zur Interpolation benutzt man entweder die Dampfdruckgleichung oder ein Interpolationspolynom; in jedem Fall gibt es wieder mehrere Mbglichkeiten. Am einfachsten (aber etwas umstthdlich) ist es, die Werte in ein log(p)-1/TDiagramm einzutragen.
74 3 Stdchiometrie, Thermodynamik, Reaktionskinetik: Drei SBulen der CRT Ein Interpolationspolynom ist z. B. spline: p8=8; T8 = spline(p,TC,p8) T8 =
170.9223 Von der Genauigkeit der Interpolation iiberzeugt man sich am besten grafisch (Abb. 3.15): Tplot=80:5:220; pplot=spline(TC, p,Tplot); pIot(TC,p,'+',Tplot,pplot,'-',T8,~8,'o')
25 20$152 1c-
5-
Abbildung 3.15: Dampfdruckkurve von Wasser. Tabellenwerte, - Spline, o interpolierter Wert.
+
Das Wertepaar p 8 und T8 stimmt auch gut mit der Antoine-Gleichung fur Wasser uberein: ph2o=exp( 18.3036-3816.44/(T8+273.16-46.13))/760 ph2o = 8.0052
3.4 Probleme und LBsungen
75
3.4.7 Synthesegaszusammensetzung aus der Analyse des trockenen Produktgases (*) Nach dem Wasserabscheider in Abb. 3.2 wird das trockene Produktgas durch NDIR- Analysatoren geschickt. Berechnen Sie aus den Analysenergebnissen (im Datenfile SYNYOUT.DAT) die Gaszusammensetzung am Reaktorausgang. (Versuchsbedingungen: Gesamtdruck 10 bar, Methandurchsatz 2 Ncm3/s, molares Dampf-Methan-Verhtiltnis 4, Reaktortemperatur 850 " C . )
%CH4
%COz
%CO
1.3190ef001 1.3153e+001 1.3119e+001 1.3319e+001 1.3359e+001 1.3301e+001 1.3500e+001 1.3324e+001 1.3374e+001 1.3016e+001 1.3259e+001
6.7594e-001 6.4 163e-001 6.3656e-001 5.6246e-001 6.1028e-001 6.1750e-001 6.1289e-001 6.5334e-001 7.1543e-001 6.3215e-001 6.3406e-001
(Der Rest ist Wasserstoff, andere Bestandteile ktinnen vernachlssigt werden.) Losungsvorschlag
Die Berechnung der Zusammensetzung des nassen Gasgemisches am Reaktorausgang kann auf vielen Wegen erfolgen, die aber nicht alle gleichwertig sind. Wir beziffern die Komponenten wie folgt:
CH4 COz H2O CO Hz 1
2
3
4
5
(3.43) (3.44)
Die Molanteile im trockenen Produktgas (tr) sind mit den Stromen verknitpft durch die Beziehung:
xi(tr) =
Ni E N , - N3
(3.45)
Also gibt jeder Mei3wert eine Beziehung zwischen den Ni; zustitzlich zu den Elementarbilanzen bentitigen wir zwei MeBwerte, um alle Molstrtime und damit alle Molanteile am Reaktorausgang berechnen zu ktinnen. Die Meflwerte (im File SYNYOUT.DAT enthalten) sind aber fehlerbehaftet, und das in unterschiedlichem Ausmai3. Aus den angegebenen Analysenergebnissen kbnnen zuntichst
76 3 Sttichiometrie, Thermodynamik, Reaktionskinetjk: Drei Siiulen der CRT mit der Anweisung halten werden:
STAT
folgende Mittelwerte und Standardabweichungen er-
load synyout.dat
Fiir CH4:
[mxtrl, sdevxtr 11=stat
(synyout( : ,1))
mxtrl = 6.3566e-001 sdevxtri = 3.7173e-002 Fur COz : [mxtr2, sdevxtr2]=stat(synyout(: ,2))
mxtr2 = 9.2180e+000 sdevxtr:! =
2.1300e-001 Fur CO:
[mxtr4, sdevxtr41=stat( sy nyout( : ,3)) mxtr4 = 1.3265e+001 sdevxtr4 = 1.2974e-001
Die Werte fiir Methan sind am ungenauesten, wie die relativen Standardabweichungen zeigen: sdevxtrl/mxtrl*lOO ans =
5.8480e+000 sdevxtr2/ mxtr2* 100 ans =
2.3107e+000 sdevxtr4/mxtr4*100 ans =
9.7807e-001
Wenn wir alle drei Werte verwendeten, hiitten wir ein iiberbestimmtes Gleichungssystem, filr das wir eine Least-squares-Losung berechnen konnten; das mui3te strenggenommen eine gewichtete sein. Da wir den Fehler in den Zustrb men nicht kennen (eine bose Nachlasigkeit des Experimentators, die Sie bei eigenen Simulationen rnit EXPUNIT2 verbessern konnten!), verzichten wir auf eine gewichtete Lbsung. Stattdessen wahlen wir die beiden genaueren Mefiwerte fiir COz und CO und e r g a z e n die drei Elementarbilanzen urn die beiden folgenden Gleichungen, die durch Umformen von G1. (3.45)entstehen:
3.4 Probleme und Ltlsungen
mxtr2
* N1+
(mxtr2 - 1) * Nz
77
+ 0 * N3 +mxtr2 * N4 +mxtr2 * N5 = 0 (3.46)
mxtr4 * Nl f m x t r 4 * Nz + O
* N3 + (mxtr4 - 1) * N4 + mxtr4 * N5
=0
(3.47) Wir sollten uns zur Vorsicht noch iiberzeugen, dai3 die Mefifehler statistisch verteilt sind. Dazu plotten wir die Residuen, als Beispiel filr CH4 (Abb. 3.16): si=size(synyout); xa= 1:si( 1);ya=zeros( 1,si ( 1)); mean-sdev=surn(synyout)/si( 1); plot(xa,synyout(: , 1)-mean-sdev( l),'k+' ,xa,ya,' k') axis([O 12 -0.10.1 1)
0.1
0.05
I*
t
t
+
* 5 0 * 0 --0.10
2
4
+
6
a
10
Listen-Nummer der Methan-MeOwerte
2
Abbildung 3.16: Residuenplot der Methan-Mefiwerte. In Abb. 3.16 ist kein signifikanter Trend zu entdecken. In MATLAB wiirde sich das Gleichungssystem etwa folgendermafien konfigurieren und losen lassen: Die Element-Spezies-Matrix (in der Reihenfolge CHO) ist
78 3 St(ichiometrie, Thermodynamik, Reaktionskinetik: Drei Saulen der CRT SEM=[1 4 0 ; l 0 2;O 2 1;l 0 l ; O 2 01; ESM=SEM ’
ESM = 1 1 0 1 0 4 0 2 0 2 0 2 1 1 0
Dann weiter in kompakter Form: NO( 1)=2/22400*1e-03; %kmol/s, Zustrom CH4 NO=[NO( 1);0;4*NO( 1);O;Ol; x=[ones( 1,5)*mxtr2/ 100;ones(1,5)*mxtr4/ 1001;%relative Molanteile x( 1,[2I3])=[x( 182)- 1I01; x( 2 [3,4]) =[O ,x(2,4)- 11; I
Bei den wenigen Gleichungen und Variablen lt&t sich x auch durch direkten Eintrag besetzen, wobei man die beidenvariablennamen jeweils kopiert: rmxtr2=mxtr2/ 100;rmxtr4=mxtr4/ 100; x=[ rmxtr2, rmxtr2-1,0, rmxtr2, rmxtr2;rmxtr4,rmxtr4,0,rmxtr4-1, rmxtr41; esmxtr=[ESM;x];
Die L6sung von Ax = b gewinnt man mit der Anweisung x = A\b, hier also N=esmxtr\[ ESM*NO;O;O]; xnass=N/sum( N) xnass = 0.0053 0.0570
0.3813 0.0821 0.4743
3.4.8 Uberprufung eines Reaktionsgemisches am Reaktorausgang auf Gleichgewicht (*) Anhand der Versuchsbedingungen und der Analysenergebnisse in 3.4.7 ist zu prilfen, ob sich das Reaktionsgemisch am Reaktorausgang im thermodynamischen Gleichgewicht befindet.
Losungsvorschlag Die folgenden MATLAB-Anweisungen filhren diese Berechnungen fizr unser Beispiel durch (alle Daten stammen aus [S]): Wir haben 5 Komponenten und 3 Elementarbilanzen und benotigen deshalb zwei Gleichgewichtsbeziehungen,denen die Komponenten bzw. ihre Molanteile
3.4 Probleme und Ldsungen
79
(oder entsprechende Grbi3en) geniigen miissen. Genauso wie wir zwei beliebige stochiometrische Gleichungen gewtihlt haben, aus denen durch Linearkombination jede gewiinschte Reaktionsgleichung erhalten werden kann, kbnnen wir die zugehbrigen Gleichgewichte formulieren. Wenn diese Gleichgewichtsbeziehungen erfiillt sind, mui3 jede ableitbare Reaktion nach dem 1. Hauptsatz ebenfalls im Gleichgewicht sein. Unsere gewtihlten stbchiometrischen Gleichungen waren:
CO + 3H2 = CH4
CO
+ €320
+ H2O = C02 + H2
(3.48)
(3.49)
Die entsprechenden Gleichgewichtsbeziehungen(Index e (equilibrium): Gleichgewicht) sind:
(3.50)
(3.51)
Die Berechnung der Gleichgewichtskonstantenfolgt nun dem Schema, das im Abschnitt 3.2 skizziert wurde. Die MATLAB-Anweisungen sind im File SYNG A - GL zusammengefdt, die wichtigsten im folgenden angegeben. Die meisten Schritte diirften selbsterkltirend sein. Zuntichst wird die Matrix NS der stbchie metrischen Koeffizienten der beiden gewtihlten stochiometrischen Gleichungen besetzt. Dann werden den benbtigten thermodynamischen Grbflen Werte zugewiesen. Diese Werte sind nicht etwa eingetippt, sondern aus Tabellen mit copy and paste iibernommen, ein Verfahren, das die meisten Leser anwenden konnen. Schliefllich wird die freie Reaktionsenthalpie (delg) berechnet, so wie es im Abschnitt 3.2 beschrieben wurde, und aus ihr die Gleichgewichtskonstante Ka bzw. Kx. Wie man sieht, sind alle Wertzuweisungen und Berechnungen fiir das vorliegende Beispiel formuliert. Wer bfter Berechnungen dieser Art machen muB, wird sich ein allgemeineres Programm nach diesem Muster schreiben, das fiir eine variable Anzahl von Komponenten und Reaktionen eingesetzt werden kann. SYNGA-GL
% ne number of elements = nk - ns % nc number of components % ns number of stoichiometric eqs nc=5;ns=2;
NS=[1 0;O 1;l -1;-1-1;-3 11;
80 3 St(lchiometrie, Thermodynamik, Reaktionskinetik: Drei SSulen der CRT nues=[-2;0]; CPVAP(1,1:4)=[ 1.925E+l 5.213E-2 1.197E-5 -1.132E-81; DELHF(1) = -7.490E+4; DELGF( 1) = -5.087E+4; CPVAP(2,1:4)=[ 1.980E+1 7.344E-2 -5.602E-5 1.715E-81; DELHF(2) = -3.938E+5; DELGF(2) = -3.946E+5; CPVAP(3,1:4) = [ 3.224E+1 1.924E-3 1.055E-5 -3.596E-91; DELHF(3)z -2.420E+5; DELGF(3)= -2.288E+5; CPVAP(4,1:4)=[ 3.087E+1 -1.285E-2 2.789E-5 -1.272E-81; DELHF(4)= -1.106E+5 ; DELGF(4)= -1.374E+5; CPVAP(5,1:4)=[ 2.714E+1 9.274E-3 -1.381E-5 7.645E-9 1; DELHF(5)=O.O; DELGF(5)= 0.0; T=850+273,16;T2=T*T;T3=T2*T;T4=T3*T; TB=298.16;TB2=TB*TB;TB3=TB2*TB;TB4=TB3*TB; dela =NS ' * C PVAP( :,1) ;del b= NS' * CPVAP ( :,2) ;delc= NS ' * CPVA P( :,3); deld=NS'*CPVAP(:,4); delh298=NS'*DELHF'; delg298=NS'*DELGF'; del hO=del h298-dela*TB-.5*del b*TB2-1/3*delc*TB3-.25*deld*TB4; I=(delg298-delhO+dela*TB*log(TB)+O.5*delb*TB2+1/6*delc*TB3+. .. 1/12*deld*TB4)/TB; delg=delhO-dela*T*Iog(T)-.5*del b*T2-1/6*delc*T3-1/12*deld*T4+1*T; RG=8.314; p=lO;%bar Ka=exp(-delg/RG/T); Kx=Ka.*(p*ones(ns,l)). -(-nues); Man beachte, dai3 viele Gleichungen Vektor- oder Matrix-Gleichungen sind. Auffsllig wird das besonders in der letzten Gleichung, in der MATLABs spezielle Operatoren .* und .^ auftreten. (In der stochiometrischen Matrix NS sind den Schlusselkomponenten CH4 und C02 die Koeffizienten +1 zugewiesen. Wie wir in spateren Kapiteln noch sehen werden, hat das fur die Formulierung stochiometrischer Beziehungen gewisse Vorteile; man mui3 aber daran denken, wenn man die Werte der Gleichgewichtskonstanten betrachtet.) Nachdem wir die Zusammensetzung am Reaktorausgang berechnet haben (s. Problem 3.4.7), konnen wir die Gleichgewichtsausdricke
bilden und mit den Gleichgewichtskonstanten Kz,I und Kz,2 vergleichen:
3.4 Problerne und Ldsungen pi l=prod(xnass.
A
81
NS(:, 1))
pi1 = 0.2291 pi2=prod(xnass.
NS(:,2))
pi2 = 0.8644 synga-GI Kx
Kx = 0.1984 0.8167
Es hat sich also kein Gleichgewicht im Reaktor eingestellt.
3.4.9 Gleichgewicht a m Reaktorausgang (*) Welche Gleichgewichtszusammensetzung wiirde sich unter den Reaktionsbedingungen von Problem 3.4.7 a m Reaktorausgang einstellen? Ltkungsvorschlag Die Hauptarbeit, die Berechnung der Gleichgewichtskonstanten,ist schon mit der Losung von Problem 3.4.8 getan worden. Wir miissen jetzt berechnen, fih welche Werte der Molanteile 2 1 bis 2 5 die durch die beiden sttjchiometrischen Gleichungen gegebenen Gleichgewichte erfiillt sind; Nebenbedingungen sind die Elerr.entarbilanzen, die gleichzeitig erfiillt sein miissen. Wir haben also ein Gleichungssystem zu losen, das aus den beiden nichtlinearen Gleichgewichtsbeziehungen und drei linearen Elementarbilanzen besteht: das sind 5 Gleichungen f i h 5 Unbekannte. Es gibt mehrere Mtiglichkeiten, wie man diese Rechnung durchfilhren kann, z. B.: a) (Poor man’s method): Man benutzt die drei Elementarbilanzen, um drei (Nichtsch1iisseL)Komponentendurch die beiden restlichen (Schliissel-) Komponenten auszudriicken und setzt diese Ausdriicke in die beiden Gleichgewichtsbeziehungen ein. Es verbleiben zwei nichtlineare Gleichungen mit zwei Unbekannten, die man zur Not sogar grafisch ltjsen kann. Ein solches Vorgehen ist iiberholt! b) Man benutzt eine subroutine einer Programmsammlung oder eines Software-Pakets, die ein Gleichungssystem f(x) = 0 ltjsen kann; alternativ kann man auch eine Optimierroutine benutzen, die das Minimum einer Funktion von mehreren Vertinderlichen, f(x),unter den Nebenbedingungen g(x) +XO(5>
4.4 Probleme und Ldsungen
XO(6) = 3.DO*XO(i)+X0(2) RETURN END
C C
SUBROUTINE DERIVS(T, X, U, DX) . . Scalar arguments .. REAL*8 T . . Array arguments .. REAL*8 X(*), U(*>, DX(*)
..............................................................
C
C C C C C C
C C C C
C C
Purpose: Function to return derivatives Input arguments: T time X state vector U input vector Output arguments: DX state vector derivatives Remark : The state vector is partitioned into continuous and discrete states. The first states contain the continuous states, andthe last states contain the discrete states.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
C C
. . Local scalars
C
..
..
..
Local arrays .. Executable statements
..
RETURN END
C C
C
SUBROUTINE DSTATES(T, XI U, XNEW) IMPLICIT DOUBLE PRECISION(A-H.0-Z) . . Scalar arguments . . REAL*8 T . . Array arguments .. REAL*8 X(*>, U(*), XNEW(*) common/Base/ kllklrlk21k2r,k31V,B0,COlk41
IVSTRl,VSTR2,VSTR3,VSTR4
C C C
C
Purpose: Function to perform discrete state update Input arguments: T time
141
142 4 Riihrkesselreaktoren
C C C C C C C
C C
X state vector U input vector Output arguments: XNEW next state values Remark : The state vector is partitioned into continuous and discrete states. The first states contain the continuous states, and the last states contain the discrete states.
............................................................... .. Local scalars . . C . . Local arrays . . C . . Executable statements . . C DOUBLE PRECISION Y(S),P(G),TI.TEND INTEGER I
300
DO 300 I=1,3 P ( 1 ) = U(I+I) CONTINUE
500
DO 500 I=1,7 Y(1) = X(1) CONTINUE CALL Kessel(TI,TEND,Y,P)
700
DO 700 I=1,7 XNEW(1) = Y(1) CONTINUE XNEW(8) = TEND RETURN END SUBROUTINE Kessel(TI,TEND,Y,P) Implicit DOUBLE PRECISION (A-H,O-Z) DOUBLE PRECISION Y (9),RW(4IO), kl ,klr,k2,k2r,k3,k4,V,BO 1 CO,VSTRI,VSTR2,VSTR3,VSTR4,P(G) INTEGER IW ( 5 0 ) ,IJOB ( 13) ,I EXTERNAL FCN,LSC,JAC,JDUM
4.4 Probleme und Ldsungen
143
common/Base/ kl,klr,k2,k2r,k3,V,BO,CO,k4,VSTFtl,VSTR2, *VSTR3,VSTR4
BO = Y(6) CO=Y(7) V=l .DO k2 = P ( 1 ) k2r = P ( 2 ) k3 = P(3)
c ........................................................... C *
LIMEX PARAMETER
c ...........................................................
*
N=5 NZC=2 NZV=1 RTOL=I.D-6 YMAXO=l.DO HMAX=TEND-TI H=O
.
NRW=410* 2 NIW=50*2 IJOB (1)=O IJOB(2)=0 IJOB(3)=O IJOB(4)=0 IJOB(5)=0 IJOB(6) =O IJOB(7)=0 CALL LIMEX(N,NZC,NZV,LSC,FCN,JAC,TI,Y,TEND,RTOL,YMAXO,HMAX,H,IJOB, 1 NRW.RW,NIW,IW) RETURN END
c ............................................................. C * C * C *
SUBROUTINE FUNCTION (FCN) Y(1) = NA, Y(2) = NB, Y(3) = NC, Y(4) = ND, Y(5) = NE NA steht fuer Molzahl A usw.
c ............................................................. SUBROUTINE FCN (N,NZV,T,Y,DY,BV,IRV,ICV)
* * *
144 4 Rrihrkesselreaktoren
IMPLICIT DOUBLE PRECISION(A-H, 0-2) DOUBLE PRECISION kl,klr,k2,k2r,k3,k4,V,VSTR1,CO,HILF, I VSTR2,VSTR3 DIMENSION Y(N) ,DY(N) .BV(~) ,IRV(i) ,ICV(1) common/Base/ kl,kir.k2,k2r,k3,V,BO,CO,k4,VSTR~,VS~2, *vsTR3,vsTR4
***
C23456
Bilanzgleichungen
***
- 1.DO
DY(1) =Y(2)**3*Y(3)/Y(l)/V**3 DY(2) =3.DO*Y(i)+Y(2)-BO
DY(4)
=
2.DO/V*(k2*Y(3)**2
-
k2r* (4)**2) -k3*Y (
DY(5) = k3*Y(4) BV( I ) =O .DO IRV(1)=1 Icv (I) =I
RETURN END
***
C C
SUBROUTINE CONSTANT PART OF LEFT MATRIX
SUBROUTINE LSC (NZC,BC,IRC,ICC) IMPLICIT DOUBLE PRECISION(A-H,O-Z) INTEGER J,I DOUBLE PRECISION BC(N2C) DIMENSION IRC(NZC) ,ICC(NZC) BC(l)=I.DO IRC( 1) =4 ICC(1)=4 BC(2)=1.DO IRC(2)=5 ICC(2) =5
***
4.4 Probleme und Losungen
RETURN END C SUBROUTINE JAC (N,MB,T,Y,YP,A) IMPLICIT DOUBLE PRECISION(A-H,O-Z) DOUBLE PRECISION Y(N) ,YP(N) ,A(MB,N) DOUBLE PRECISION kl,klr,k2,k2r,k3,k4,V,VSTRI,BO,CO,HILF, 1 VSTR2.VSTR3 common/Base/ kl,klr,k2,k2r,k3,V,BO,CO,k4,VSTRl, 1 VSTR2,VSTR3,VSTR4
RETURN END C SUBROUTINE JDUM (N ,MB ,T,Y,YP,A) IMPLICIT DOUBLE PRECISION(A-H,O-Z) RETURN END
C C
*** SUBROUTINE LIMEX *** hier folgt das vollstaendige LIMEX-Programm
SUBROUTINE OVTPUT(T, X. U, Y) C . . Scalar arguments .. REAL48 T C . . Array arguments .. REAL48 X(*), U(*>, Y(*> .......................................................... C Purpose: C Function to return continuous outputs C Input arguments: C T time C X state vector C U input vector C Output arguments: C Y output vector C Remark : The state vector is partitioned into continuous C C and discrete states. The first states contain C the continuous states, and the last states contain C the discrete states. ...........................................................
145
146 4 Rlihrkesselreaktoren C C C
.. ..
..
Local s c a l a r s . . Local a r r a y s . . Executable s t a t e m e n t s
.
RETURN END
C
c
SUBROUTINE DOUTPUT(T, X, U , Y) . . S c a l a r arguments . . REAL*8 T . . Array arguments . . REAL*8 X(*>, U(*>, Y(*)
C---------------------------------------------------------.................................................
C C C C
C C C
Purpose: Function t o r e t u r n d i s c r e t e o u t p u t s Input arguments : T time X s t a t e vector U input v e c t o r Output arguments : Y output v e c t o r Remark : The s t a t e v e c t o r i s p a r t i t i o n e d i n t o continuous and d i s c r e t e s t a t e s . The f i r s t s t a t e s c o n t a i n t h e continuous s t a t e s , and t h e l a s t s t a t e s c o n t a i n t h e d i s c r e t e states. This procedure i s c a l l e d only i f it is a sample h i t .
C C C C C C C C====--------=====----------=============================== C C C
5
C C
Local s c a l a r s . . Local a r r a y s . . Executable statements DO 5 I = 1 , 5 Y(1) = X(1) CONTINUE RETURN END
.. .. ..
..
SUBROUTINE TSAMPL(T, X, U , TS. OFFSET) . . S c a l a r arguments . . REAL*8 T,TS,OFFSET . . Array arguments . . REAL*8 X(*>, U(*>
........................................................... C C C
Purpose: Function t o r e t u r n t h e sample and o f f s e t times Input arguments :
4.4 Probleme und Losungen
C C C C
147
T X U
time state vector input vector Output arguments: C TS sample time (Abtast-Intervall!) C OFFSET offset time C===================PDEZD===I=I==================================== C .. Local scalars .. C . . Local arrays .. C . . Executable statements . . TS = U(1) OFFSET = 0. RETURN END
C C C C
C C C C
Purpose: Function to return singularities Input arguments: T time X state vector U input vector Output arguments: SING singularities
........................................................... C
C C
.. .. ..
Local scalars . . Local arrays . . Executable statements
..
RETURN END
Das Muster far diese FORTRAN MEX-file S-function stammt noch aus der SIMULINK-Version 1.3. Ausgaben wahrend des Rechenlaufs, auch Fehlermeldungen, fiihrten in den neuen SIMULINK-Versionen 2.x leider dazu, d d sich samtliche MATLAB-Fenster schlossen. Deshalb wurde im Programm ABCDE-GL.F die Mbglichkeit geschden, es in der Testphase als FORTRAN-EXE Programm laufen zu lassen; das fehlerfreie Programm kann dann nach Loschen
148 4 Ruhrkesselreaktoren des Kommentarzeichens ,,C'' in der Zeile ,,Subroutine Hauptprogramm '' in eine FORTRAN MEX-file S-function compiliert werden. Das SIMULINK-Model1 mit der so erzeugten dll-Datei im S-Function-Block ist ABCDE-GL-SYS.MDL.
4.4.6
Einstellen der Regler a m Reaktionskalorimeter fur die Sulfonierung von Nitrobenzol (*, nicht SE)
siehe ErlButerungen im Abschnitt 4.2 sowie Problem 4.4.8.
Losungsvorschlag Einstellen der Regler: Standardwerte Kritischer Wert von PIDl(1) ca. 2.1; Periode ca. 4.8. (Htingt das Verhalten vom FUllstand ab?) Daraus ergibt sich nach Ziegler-Nichols:
PIDl(1)=0.45*2.1;PID1(2)=4.8/1.2; Die Zieler-Nichols-Regeln liefern nur Anhaltswerte. Die Regelung der Reaktortemperatur wird mit diesen Einstellungen erst gut, wenn man auch die Manteltemperatur wenigstens mit einem P-Anteil von etwa 5 in die Ntihe des Sollwerts von 363.16 K bringt. Sehr gut wird die Regelung, wenn man alle drei Anteile des Regiers nach Ziegler-Nichols einstellt . Die Abb. 4.9 zeigt, wie die Manteltemperatur beim kritischen Wert des Proportionalteils von etwa 8 in Dauerschwingungen iibergeht:
28%
500
1000 t Ins
1500
2 00
Abbildung 4.9:Dauerschwingungen der Manteltemperatur im geschlossenen Regelkreis bei einer Verstbkung von 8 (PID2(1)).
4.4 Probleme und Lasungen
149
Mit den Reglereinstellungen
PID1=[0.45*2.1 4.8/1.2 0); PID2=[0.45*8 50/1.2 01; wird das in Abb. 4.10 gezeigte Regelverhalten bei Standardeinstellungen (ohne Zulauf) erzielt:
;\
380-
Abbildung 4.10: Einschwingen von Reaktor- und Manteltemperatur (untere Kurve). PI-Regler , eingestellt nach Ziegler-Nichols.
4.4.7
Verlustleistung des Reaktionskalorimeters bei den Bedingungen des Problems 4.4.6 (*, nicht SE)
Ein Versuchslauf mit den optimierten Reglereinstellungen, dessen Ergebnis in der Abb. (4.10) dargestellt ist, lat sich zur Abschlitzung der Verlustleistung auswerten. Losungsvorschlag
Mehr als eine Abschlitzung ist kaum moglich, da die Verlustleistung in der Gr6flenordnung von 1 % der tibertragenen Wxrmemenge liegt. Es ist q a e c = m p j * ~ * ( T j - T-uz ~)
(4.54)
150 4 Rilhrkesselreaktoren Da man die vom Riihrer eingetragene Leistlmg iiber das Drehmoment an der Achse bestimmen kann (qrvm), ergibt sich die eigentliche Verlustleistung aus der Differenz qsec- qrvrn; im vorliegenden Fall erhalt man ca. 3e-04 kW.
4.4.8
Sulfonierung von Nitrobeneol mit Oleum im leistungskompensierten Reaktionskalorimeter mit Differentialkuhlung (*, nicht SE)
Anleitungen fur diesen Versuch finden Sie im Text, irn Info-System und in den vorhergehenden Problemen 4.4.6 und 4.4.7. Bevor man einen Versuch im Reaktionskalorimeter ansetzt, wird man sich durch mikrokalorimetrische Methoden Anhaltspunkte iiber die kalorischen Verhaltnisse des Reaktionssystems verschaffen. Abb. 4.11 zeigt eine (entschmierte) DSC-Kurve der Sulfonierung von Nitrobenzol mit Oleum.
Abbildung 4.11: DSC-Messung der Sulfonierung von Nitrobenzol. Heizrate 5 K/min, nO = [0.0200 0.0308 0 0.1006]e-03 mol.
Losungsvorschlag Aus der DSC-Messung kann man leicht eine Reaktionsenthalpie von etwa 90 kJ/mol abschatzen. Weiterhin kann man die Warmeproduktionsrate Umsatz und Temperatur zuordnen; man wird z. B. bei 373 K ca. 120 W erreichen, wenn man - gemafi dem Umsatz von ca. 20 % an dieser Stelle - 0.8 mol Nitrobenzol vorlegt und 1.34 mol SO3 bzw. die entsprechende Menge Oleum sehr schnell dosiert.
4.4 Probleme und Losungen
151
Wenn wir eine Dosierzeit von etwa 10000 s vorsehen, erzeugen wir bei der Standardvorlage von 2 mol eine durchschnittliche Wtirmeproduktionsrate von 10 W/mol (bezogen auf Einwaage, das ist in der Kalorimetrie so iiblich); bei einer sehr schnellen ( ,,dosierungskontrollierten") Reaktion miiBten wir also mit etwa 20 W rechnen, filr die nach unserer Abschiitzung aus dem Vorversuch auch im Anfang 6 K Temperaturdifferenz ausreichen warden. Die Sulfonierung eines Nitro-Aromaten ist aber eine langsame Reaktion, bei der eine Akkumulation des dosierten Reaktanden und damit ein Maximum der Wiirmeproduktionsrate zu erwarten ist. Versuchen wir es mit 10 K Temperaturdifferenz: Tjsp=363.16;Tu=Tjsp; tdos= 11000;npO( n kz)=ndos/tdos; tdos0=1000;
Die Reglereinstellungen nach Ziegler-Nichols miissen gegebenenfalls noch etwas verandert werden, denn sie sind auf einfache PID-Regler zugeschnitten und beriicksichtigen nicht die zusiitzlichen Maanahmen in den hier verwendeten Reglern mit anti-windup. Nach dem Versuchslauf bis 22000 s blenden wir am besten die Anfangsphase aus: [i ,j]=find( sy(: , l ) >=tdosO); syr=sy( i , :); Dann ermitteln wir den mittleren cp-Wert des Kiihlmittelzulaufs: cpj=fcpj ((syr(: ,8)+syr(: ,9))/2);%FCPJ cpj=sum( cpj)/size( cpj, 1)
%(cpj=fcpj(Tjsp) hiitte auch geniigt, schliealich haben wir nur Differenzen in der Groaenordnung von 0.1 K)% qr=mpj*cpj*(syr(: ,8)-syr(: ,9))-syr(: ,5)-syr(: ,4)+3e-O4;%DieTerme sind Tj , T;, ui,qrvm und die Verlustleistung.%
Das Ergebnis ist im rechten unteren Teilbild von Abb. (4.12) zu sehen. Die Regelabweichungen in diesem Versuch gehen kaum fiber K hinaus - das ist etwa die Auflbsungsgrenze von Pt-100-Thermometern. Man mua allerdings erwahnen, daB der Verlauf der entsprechenden Signale im realen Experiment nicht so glatt ist wie in Abb. (4.12). Man kbnnte die Modellierung noch weiter treiben, Stbrsignale einbauen oder MeBinstrumente wie z. B. ADWandler modellieren - darauf wurde hier verzichtet, zumal man fiir ein solches Unterfangen die Hilfe eines MSR-Spezialisten kaum entbehren kann. Um den Umsatz vollsttindig zu machen, kbnnten wir schneller dosieren; da dann das Maximum von q,. spiiter kommen wird, also bei schon grbflerer Fiillung, werden wir mit 10 K Temperaturdifferenz T, - Tj wahrscheinlich auskommen. Far einen weiteren Versuch mit schnellerer Dosierung zeigt das ntichste Bild (Abb. 4.13) die Wiirmeproduktionsrate; die Auswertung dieses Ergebnisses im Hinblick auf thermodynamische und kinetische Daten ist in Abschnitt 7.3.2 beschrieben.
152 4 Rtihrkesselreaktoren
0
.
2
7
,
Y
.-c
4
tk-.
-1
-
0
4
2
OO
4
2
1U4t
-OO
in s
2
4
1u41 in s
Abbildung 4.12: Versuch mit Reaktion im Reaktionskalorimeter. Oberes linkes Teilbild: Abweichung vom Sollwert (- T,., - - Ti);oben rechts: Tj - T:; unten links: Leistung der Kompensationsheizung; unten rechts: Wiirmeproduktionsrate.
0.041 0.0350.03-
3 0.025Y
.-c 0.02mL
0.0150.01 -
0.005-
OO
0.5
1 1.5 1U41 in s
2
1
.5
Abbildung 4.13: Wiirmeproduktionsrate der Sulfonierung bei einer Dosierdauer von 5000 Sekunden.
153
4.4 Probleme und Ldsungen
4.4.9 W5rmeubergangskoeffizienten im wandgekuhlt en Riihrkessel durch Modellversuche im Reaktionskalorimeter (*, nicht SE) Bei dem hier simulierten, streng isotherm arbeitenden Reaktionskalorimeter kann man den Warmedurchgangskoeffizienten aus der stationaren Bilanz (4.55) erhalten und iiber den gesamten Reaktionsverlauf verfolgen. Selbst wenn sich der Warmeiibergangskoeffizient a, im Reaktor stark andert, kann man das Temperaturprofil zwischen Reaktor und Ktihlmantel als quasi-station& behandeln - vielleicht von ganz extremen Bedingungen abgesehen. Aus hfolgt a,, wenn kennt. Die beiden letzten GroBen kbnman aj und den Term fiir die Wand, nen bei gegebenen Bedingungen zu einer Apparatekonstante zusammengefdt werden, die man aus einem Wilson-Plot erhalten kann; das Verfahren geht aus der nachstehenden Gleichungsfolge hervor:
-&,
1 h
-
1 s , 1 1 -+-+-=-++(Tj) a, X aj CY,
(4.56)
(4.58) Die letzte Gleichung liegt dem Wilson-Plot zugrunde: In einem nichtreagierenden System ermittelt man h bei verschiedenen Riihrerdrehzahlen rum und den gewiinschten Werten der Temperaturen T, und Tj und gewinnt die Apparatekonstante durch lineare Regression. Mit dieser Aufgabe wird der Leser sich selbst iiberlassen. Es sei nur noch darauf hingewiesen, d d im wirklichen Experiment die Werte oft stark um die Wilson-Gerade streuen, besonders, wenn der Warmedurchgangswiderstand von den beiden anderen Termen dominiert wird, wie es in dickwandigen Glasgefaen zu sein pflegt; a, ist dann nur schwierig genau genug zu bestimmen.
+
4.4.10 Produktivitatssteigerung bei einer technischen
Cyanethylierung (* *) Diese Aufgabe stiitzt sich auf die Verbffentlichung [12]. Die Cyanethylierung eines Amins wird zur Zeit nach folgendem Ablauf durchgeftihrt: Das Amin wird in einem wandgekiihlten 6,3-m3-Rilhrkessel bei 40 “C vorgelegt und das Acrylnitril mit 20 OC innerhalb von 5 Stunden bei konstanter Temperatur zugegeben. Mit den Zeiten fiir das Laden und Entleeren des Kessels betragt die Zykluszeit 6 Stunden, aus der bei einer Ansatzgroae von 6 t eine Produktivitat von 1 t/h folgt. Es sol1 untersucht werden, ob die P r e duktivitat gesteigert werden kann. Aus Griinden der Produktqualitat darf eine Temperatur von 80 “C nicht iiberschritten werden.
154 4 Rtihrkesselreaktoren
Tabelle 4.2: Daten zur Cyanethylierung. End-Reaktionsmasse (ERM) 6000 kg Dichte 900 kg/m3 Reaktionswarme 396 kJ/kg ERM cp der ERM 2,300 kJ/(kg K) Dosierte Masse CP
Warmedurchgangskoeffizient
1919 kg 1,900 kJ/(kg K) 0,440 kW/(m2 K)
Anfangstemperat ur Temperatur Kiihlmantel Dosiertemperatur
40 "C
m a . Fiillvolumen des Kessels min. Fiillvolumen m u . Kiihlflache min. Kuhlflache
5,5 m3 1 m3 10 m2 3.2 m2
30 "C 20 "C
Es bietet sich an, die Zulaufzeit des Acrylnitrils zu verkurzen und bei hijherer Temperatur zu arbeiten. Um die Erfolgsaussichten beurteilen zu konnen, miissen einige thermodynamische und kinetische Groijen ermittelt werden: die Reaktionswgrme, die spezifischen Warmen des Reaktionsgemisches und des Acrylnitrils sowie der Warmedurchgangskoeffizient; auijerdem mui3 die Kinetik der Reaktion untersucht werden. All das kann mit einigen gezielten Experimenten in einem Reaktionskalorimeter geschehen. Kalorische Ergebnisse sind in der folgenden Tabelle 4.2 enthalten; die kinetischen Untersuchungen zeigen, daij die Reaktion sehr schnell ist: Es findet keine merkliche Akkumulation von Acrylnitril statt, nicht unter den bisherigen Betriebsbedingungen und auch nicht unter scharferen Bedingungen, namlich bei 40 und 80 "C mit jeweils 1 Stunde Dosierzeit. Mit anderen Worten: Im abgesteckten Bereich ist die Reaktion dosierungskontrolliert . Da die Geometrie eines Kiihlmantels nicht ganz simpel ist, sei hier ein Zusammenhang zwischen Volumen der Reaktionsmasse und Kiihlflache angegeben:
F, = 2.7348
+ 1.2845V
(4.59)
Anhand dieser Daten sol1 die Produktivitat optimiert werden.
Losungsvorschlag Da die Fiill- und Leerzeiten vorgegeben sind, lauft die Aufgabe darauf hinaus, die Dosierzeit zu optimieren, d. h. unter Beachtung der Randbedingungen zu minimieren.
4.4 Problerne und Ldsungen
155
Wir folgen zungchst dem Lbsungsweg in [12]. Dort werden die entsprechenden Bilanzgleichungen numerisch gelbst (nach dem Newton-Verfahren mit einem Tabellenkalkulationsprogramm!) und in mehreren Laufen die Dosierzeit gesucht, die den Temperaturverlauf von der Anfangstemperatur bis an die obere Grenze von 80 "C filhrt. Wir machen einen solchen Simulationslauf, benutzen aber naturlich einen DG1-Loser von MATLAB; dazu geben wir eine Dosierzeit vor (in Stunden), rufen dann das Datenfile STOESSEL.DAT auf, das alle benotigten Daten aus der Tabelle setzt und die Dosierzeit in Sekunden umrechnet, und starten die L6sung der DG1 mit der ilblichen MATLAB-Befehlszeile. Wie man in dieser Zeile sieht, heifit das Unterprogramm fUr die DG1 STOESSEL2; es ist anschliei3end ausgedruckt , so dai3 man die wohl selbsterklarenden Anweisungen sehen kann; die DG1 ist so einfach, dai3 ihre codierte Form geniigen sollte; die Bedeutung der Variablennamen geht aus STOESSEL.DAT hervor: STOESSEL:!
function dx = stoessel2(t,x) global mO rho mdos delh cp cpdos Tdos TO h Tc dR mpdos tdos pol T=x; m=mO+t*mpdos; V=m/rho; F=pol( 2)+p0f ( l)*V; if F >= 10
F=10; end dx=( mpdos*(-del h)-h*F*( T-Tc)-mpdos*cpdos*(T-Tdos))/m/cp; Man gibt nun ein: global tdos
td0~=2.65; stoesseldat [t,y] =ode45( 'stoessel2', [0 tdos*3600],TO); Wie der Temperaturverlauf in Abb. 4.14 zeigt, haben wir praktisch die o p timale Dosierzeit gewahlt; das wird i. a. nicht gelingen, man wird vielmehr wenn man der Literaturvorlage folgen will - eine Reihe von Simulationsrechnungen machen milssen, bis man die optimale Dosierzeit trifft. Geschickter warire es, die Suche nach der optimalen Dosierzeit von einem Optimierprogramm machen zu lassen oder wenigstens zwischen einigen wenigen Simulationsl&ufen zu interpolieren; beide Wege werden im folgenden Problem angesprochen. Der Losungsweg der Literaturvorlage, den wir hier ilbernommen haben, filhrt noch nicht zur optimalen Produktivitat. Genauer gesagt: Es wurde noch eine andere Randbedingung beachtet, die aber nicht genannt wurde: Die Dosierrate wurde zwar als variabel angesehen, aber nicht innerhalb eines Produktionslaufs. Lassen Sie uns sehen, ob man durch Steuerung der Dosierrate, also durch eine Dosier-Trajektorie nicht ein noch besseres Ergebnis, eine hohere Produktivitat,
156 4 Rifhrkesselreaktoren
9
0
80-
2000
4000
tins
6000
8000
1( I00
Abbildung 4.14: Simulationslauf der Cyanethylierung.
erzielen kann. Das ist nicht schwer zu erkennen: Vom Start bis zum Erreichen der oberen Temperaturgrenze sollte man mit maximaler Dosierung fahren, dann die Dosierung so steuern, dafl man sich an dieser Grenze bewegt. Natiirlich kann man die Dosierrate nicht beliebig hochtreiben: Nicht nur miissen die Dosiereinrichtungen das hergeben, sondern insbesondere m d die Vermischung im Riihrkessel (nahezu) ideal bleiben. Nehmen wir an, die maximale Dosierrate entspreche einer Dosierzeit von 0.5 Stunden, dann kann uns das Programm STOESSEL3 das optimale Ergebnis liefern: STOESSELQ
function dx = stoessel3(m,x) global mO rho mdos delh cp cpdos Tdos TO h Tc dR mpdos ... tdos pol Tmax mpmax t=x( l);T=x(2); V=m/rho; F=p0l(2) +pol (1)*V; if F >= 10 F=lO; end if T < Tmax mpdos = mpmax; dx(2)=((-del h)-h* F*(T-Tc)/mpdos-cpdos*(T-Tdos))/m/cp; else
%T=Tmax: berechne mpdos aus der stationgren Warmebilanz ( d T / d t = O)!%
4.4 Problerne und L6sungen
157
rnpdos= h*F* (T-Tc)/( (-del h)-cpdos*(T-Tdos)) ; dx(2)=( (-delh)-h*F*(T-Tc)/rnpdos-cpdos*(T-Tdos))/rn/cp; end dx( l)=l/mpdos; dx=dx' ;
Wie man sieht, wird jetzt nicht ilber die Zeit t, sondern iiber die Masse m integriert: Die Wiirmebilanz wird durch Division durch mpdos entsprechend umgeformt. Da es bequem ist, gleich den Zusammenhang zwischen t und m zu bekommen, wird die Zeit als zustitzliche abhtingige Variable neben T eingefilhrt. Wir starten wieder: global tdos
td0~=0.5; stoesseldat [rn,y]=ode45('stoessel3',[rnO 60001,[O;TO]); plot(y(:,1)/3600,y(:2 ) )
Abbildung 4.15: Optimaler Temperaturverlauf bei der Cyanethylierung.
Die Dosierzeit kann mit variabler Dosierrate also noch weiter reduziert werden, wie aus Abb. 4.15 hervorgeht. Allerdings ist der Effekt in diesem Fall nicht groi3: Er wiirde kaum die Umrilstung einer Anlage auf automatisch gesteuerte Dosierung rechtfertigen; Steuerung im Handbetrieb wilrde wahrscheinlich als zu unsicher eingestuft. Ein reaktionstechnisches Optimum ist eben i. a. nicht
158 4 Rifhrkesselreaktoren gleichbedeutend mit einem Gesamtoptimum; meist mussen zusatzlich noch weitere Kriterien berlicksichtigt werden: wirtschaftliche, sicherheitstechnische, 6kologische, um die wichtigsten zu nennen.
4.4.11
Produktivitatssteigerung bei einer technischen Cyanethylie-rung (2) : optimale Dosierzeit bei konstanter Dosierrate (*)
In dem vorigen Problem sol1 die optimale Dosierzeit bei konstanter Dosierrate gesucht werden. Zwei LBsungsmbglichkeiten sind im dortigen LGsungsvorschlag schon g e nannt : entweder eine Optimierroutine anwenden oder zwischen den Ergebnissen mehrerer Simulationslaufe interpolieren. Wir beschranken uns hier auf den zweiten Weg; Optimierungen auf dem ersten Weg kommen noch haufig genug in diesem Buch vor, und aufierdem ist der Rechenaufwand auf dem zweiten Weg bei dem hier vorliegenden kleinen Problem etwas geringer.
Losungsvorschlag Wir wghlen also einige Werte filr tdos, berechnen den Temperaturverlauf und bestimmem den maximalen T-Wert in der Ttajektorie : global tdos td0=1:3; for i = 1:3 tdos=tdo( i); stoesselda t [t,y]=ode45( 'stoessel2', (0 tdos*3600] ,TO); Tmax( i)=max(y); end
Dann interpolieren wir einfach linear:
topt=interpl(Tmax,tdo,80) topt = 2.7588
Eine Interpolation mit einem kubischen Spline bringt in diesem Fall auch kein anderes Ergebnis (bitte ausprobieren mit Schalter cubic in interpl!).
4.4.12
CSTR - Chemostat (*)
S reagiert mit C autokatalytisch gernafi S + C --+ 2C. Die Reaktionsgeschwindigkeit ist T = k c s c c / ( l + K c s ) mit k = 0.25 1 / (g hr), K = 0.5 1 / g.
4.4 Probleme und Ldsungen
159
In einem CSTR rnit vorgegebenem Volumen V sol1 muglichst vie1 C produziert werden. Es wird S mit 50 g / 1 zugefiihrt, aber kein C. a) Gibt es eine untere Grenze fth die Verweilzeit? Wenn ja, wie groa ist sie? b) Wie groB ist die optimale Verweilzeit? c) Wieviele Kessel gleicher GrUae V milaten bei der optimalen Verweilzeit hintereinandergeschaltet sein, damit die Konzentration von S auf 1g / 1 reduziert wird? d) Uberzeugen Sie sich, d d dieses Beispiel vollig identisch ist mit einem stationaren Monodschen Chemostat , in dem aus einem limitierenden Substrat S Zellmasse C gebildet wird mit der Sterberate Null. Wie groa sind der Ausbeutefaktor, die maximale Zellwachstumsrate, die (formale) Michaelis-MentenKonstante, die optimale Verdiinnungsrate und die Auswaschungsrate? Losungsvorschlag
a> Wir schreiben den Lbsungsweg gleich in MATLAB-Anweisungen, wobei mit den Komponentennamen die Konzentrationen gemeint sind: syms SO S tau k C K bii=(SO-S)/tau-k*S*C/(
l+K*S);%S-Bilanz fur den CSTR;
bilC=subs(bil,C,SO-S);%Wir ersetzen C gernaO der C-Bilanz durch S% Ss=solve(bilC,S);%und losen die Bilanz nach S auf. ss =
c
so1
[ l/(-K+k*tau)]
Die erste Losung ist trivial. Aus der zweiten LUsung sehen wir, daa tau nicht beliebige Werte annehmen kann: grufier als SO kann S im Ablauf nicht werden! Wir lasen die Bilanzgleichung fiir S nach tau auf und ersetzen dann S durch SO; das ergibt den Minimalwert fiir tau, taumin: taul=solve( bilC,tau); taumin=subs(taul,S,SO);
taumin = (l+K*SO)/SO/k Den numerischen Wert berechnen wir unter b). Die bisherigen Rechnungen htitten wir leicht auch mit Bleistift und Papier machen konnen. Bei den folgenden Rechnungen ist die Symbolic Math Toolbox, die wir hier mehr zur Ubung verwendet haben, eine willkommene Erleichterung. b) Die optimale Verweilzeit ergibt sich aus der Optimierung der Raum-ZeitAusbeute C/tau; wir bilden diesen Ausdruck, leiten ihn nach tau ab und bestimmen die Nullstelle(n):
160 4 Rffhrkesselreaktoren
c=so-SS( 2); Ctau=C/tau; dCtau=difF( Ctau,tau); topt=solve( dCtau,tau);
topt = [: 1/2/SO* (2+2*K*S0+2*(l+K*SO) (1/2) /k] [ 1/2/SO*(2+2*K*SO-2*(1+K*SO)-(l/2))/k] S0=50; k=.25;K=.5; topt n =su bs(topt); % Der nu rnerische Wert
toptn = 2.4879 1.6721
Jetzt benatigen wir zur Entscheidung zwischen den beiden Losungen der quadratischen Gleichung auch den numerischen Wert der minimalen Verweilzeit, den wir aus dem unter a) abgeleiteten Ausdruck ftir taumin erhalten: tauminn=subs(taurnin); tauminn =
2.0800
Also ist der erste Wert von toptn die optimale Verweilzeit. c) Schon im bzw. nach dem zweiten Kessel ist die Konzentration von S auf 0.293 g/l abgesunken. Die einfache Rechnung, die zu diesem Ergebnis fiihrt, sei dem Leser iiberlassen.
4
Ausbeutefaktor ((Menge C gebildet) / (Menge S umgesetzt)) ist durch die 1. Monod-G1 gegeben: p= p m a s S / ( K ~ S ~) , also: maximale Zellwachstumsrate pmas = k / K , Michaelis-Menten-Konstante K M M= 1 / K . Optimale Verdiinnungsrate Dopt = l / ~ ~Auswaschungsrate ~ t . D,, = 1/7,in.
+
4.4.13
Exotherme Reaktion im wandgekuhlten CSTR (**)
Die Reaktion A --$ B mit T = k c i sol1 in einem wandgekiihlten kontinuierlichen Ruhrkessel durchgefilhrt werden. Das System ist durch folgende Parameter gekennzeichnet: Zulauftemperatur To = 298 K, maximale adiabatische Temperaturerhbhung AT,, = 175 K , Stanton-Zahl St = 3, Damkohler-Zahl ohne den Faktor exp( - E / R / T ) Dam = le13, E / R = 10000 K. Es wird ein Umsatz von 60 % gefordert. Sind dann die anderen Groflen festgelegt? Wenn ja, welche Temperatur stellt sich im Reaktor ein und wie mui3 die Kuhlmantel-Temperatur eingestellt werden? 1st der Betriebspunkt stabil? Wie sieht das Anfahrverhalten aus, wenn man B bei 298K vorlegt und dann den Zulauf einstellt? Wie sieht
4.4 Probleme und Ltlsungen
161
das Anfahrverhalten aus, wenn man A vorlegt und zuniichst ohne Zulauf bis zum Umsatz von 60 % reagieren l a t , wobei die zugehbrige stationiire Temperatur iiber eine Regelung gehalten wird, sobald sie erreicht ist, wenn man also im stationaren Betriebspunkt startet? Losungsvorschlag Zur ersten Frage: Die stationiiren Formen der dimensionslosen Bilanzgleichungen zeigen, d d nur die Reaktortemperatur T und die Grbae T, unbekannt sind; in T, ist nur die Manteltemperatur TM unbekannt: Also haben wir zwei (transzendente) Gleichungen fUr diese beiden Grbilen T und T, bzw. T M . Die Berechnung dieser beiden Temperaturen aus den beiden stationiiren Bilanzgleichungen gestaltet sich besonders einfach, wenn man die logarithmierte Form der stationaen Stoffbilanz benutzt. Die Stabilitiit kbnnte man anhand der Kriterien beantworten, die in den meisten Lehrbuchern der Chemischen Reaktionstechnik angegeben sind. Da hier aber auch das instationiire Verhalten des Reaktors gefragt ist, erscheint es vorteilhaft, ein SIMULINK-Model1 zu erstellen und mit dessen Hilfe alle Fkagen zu beantworten, also auch die nach dem stationiiren Betriebspunkt. Ein solches Modell ist CSTR-INST.MDL; die Parameter sind im File CSTR-INST-DAT zusammengestellt. An der Stelle im Blockschaltbild, an der man einen Constant-Block mit dem Parameter T, erwarten wiirde, findet man einen Inport-Block in1 (mit Schatten unterlegt): In dieser Konfiguration kann man mit dem SIMULINK-Befehl trim den stationiiren Betriebspunkt berechnen; zunschst stellt man die Reihenfolge der Zustandsgrbaen (xstord) fest: cstr- inst -dat [sizes,xO,xstord]=cstr-inst(
sizes
[I ,I, [I ,0)
=
2
0
0 1 0 1 1
xo
=
298 1
xstord = 'cstr-inst/Integratorl' 'cstr-inst/Integrator' Dann lafit man die stationiiren Werte von T und T, Umsatz X suchen:
(fu)bei festgehaltenem
162 4 Ruhrkesselreaktoren [x,u,y,dx]=trim('cstr-inst',[298;0.6],300,
[],2)
x = 3.4951e+002 6.0000e-001 u = 3.2326e+002
Y = Empty matrix: dx = -6.2528e-013 -3.5527e-015
0-by-1
Die stationtire Temperatur ist also T = 349.51 K, und T, = 323.26 K; daraus folgt fiir die Manteltemperatur TM = 331.68 K. 1st der stationare Betriebspunkt stabil? Wir benutzen die Werte der Zustandsvariablen und des Eingangswertes aus dem vorigen Rechenschritt, um die Bilanzgleichungen am stationaren Betriebspunkt zu linearisieren: [A,B,C,D]=linmod('cstr-inst'.x,u) A =
4.5957e+000 -5.2499e+002 4.9118e-002 -4.0000e+000 B =
4.0000e+000 0
c = Empty matrix: 0-by-2 D = Empty matrix: 0-by-I +(A) ans =
2.9787e-001 +2.7047e+OOOi 2.9787e-001 -2.7047e+OOOi
Die Realteile der Eigenwerte der Systemmatrix sind positiv, also ist der Betriebspunkt instabil. Das X-T-Diagramm (Abb. 4.16) zeigt, daO das Steigungskriterium erfiillt ist (statische Stabilittit); nicht erfilllt ist das zweite Kriterium fur die dynamische Stabilitat. Wir ersetzen jetzt den Inport-Block durch einen Constant-Block mit dem Wert fur T, und simulieren das Anfahrverhalten. Wir sehen: Unabhangig vom Startpunkt laufen die Trajektorien in der Phasenebene in einen Grenzzyklus um den stationtiren Betriebspunkt ein. Besonders interessant ist es, den Start
4.4 Probleme und Losungen
163
Abbildung 4.16: Stabilitiitsdiagramm fUr den CSTR.
aus dem stationaren Betriebspunkt heraus online auf dem X-Y-Graph zu verfolgen, wenn man mit den von MATLAB berechneten Werten ohne Aufrundung rechnet: Eine Zeitlang passiert nichts Sichtbares, bis dann numerische Ungenauigkeiten sich bemerkbar machen und die Trajektorie sich schnell bis zum Grenzzyklus aufschaukelt .
4.4.14
Styrolpolymerisation im CSTR (***)
Der Ausgangspunkt dieser Aufgabe ist eine Arbeit aus dem Jahre 1965 [13], in dem das dynamische Verhalten von Poiymerisationsreaktoren modelliert und auf einem Analogrechner simuliert wurde. Gewiinscht ist ein Umsatz von 60 % in einem CSTR bei einer Manteltemperatur von 358 K. Die Masse-Polymerisation von Styrol kann durch eine Reaktion erster Ordnung beschrieben werden; folgende Daten sind gegeben: 0
Haufigkeitsfaktor k,
0
Aktivierungsenergie E = 21.3 kcal/mol
0
0
0
= 1.39e9min-'
Reaktionsenthalpie AH = -17.7 kcal/mol Zulauftemperatur To= 288K spezifische Warme cp = c: und p = 1.03e-03.
+ pT mit c:
= 0.088 kcal/kg/K
164 4 Riihrkesselreaktoren Groijen des Wiirmeaustausches mit dem Mantel sind zusammengefdt in der Gruppe q = (= 2.93e-03 als Standardwert). Dichte des Zulaufs und des Kesselinhalts sollen gleich sein, und die fur die spezifische Wtirme angegebene Beziehung sol1 fitr den Zulauf und fitr den Kesselinhalt gelten - beide Annahmen erscheinen zumindest fragwitrdig. Wie grof3 m d die Verweilzeit im stationtiren Zustand (Betriebspunkt) sein, welche Temperatur stellt sich im Kessel ein? 1st der Betriebspunkt stabil? Wenn nicht, wie reagiert er auf kleine St6rungen? Wie kbnnte man ihn stabilisieren? Wie wiirde er dann auf grbflere Storungen reagieren, z. B. auf einen Ausfall des Zulaufs? In welchen Bereichen von Kesseltemperatur und Verweilzeit ist instabiles Verhalten zu erwarten?
3
Losungsvorschlag
Werte und Annahmen legen folgende Formulierung der Bilanzen nahe: dX dt
X r
- = k (1 - X ) - -
(4.60)
wobei wie bisher
(4.62) ist. ($' ist gleich der reziproken Molmasse von Styrol.) Die beiden Bilanzgleichungen werden am besten in ein SIMULINK-Modell iibertragen (Abb. 4.17), das erlaubt, stationtire Zustiinde zu ermitteln und das dynamische Verhalten zu untersuchen. Bei Auswahl und Schaltung der Blbcke kann man sich an der Analogrechnerschaltung in [ 131 orientieren; allerdings konnen viele Rechenoperationen wesentlich vereinfacht werden, indem man die Fcn-Blbcke von SIMULINK verwendet. Man kann nun das SIMULINK-Model1 GERREKS bffnen und die erforderlichen Daten laden, die im File GERRENS-DAT enthalten sind. Dann verwendet man den trim-Befehl, um bei festgehaltenem Umsatz von 60 % die beiden noch ausstehenden stationtiren Werte fiir T und r zu erhalten; dafiir mui3 man den Constant-Block u (= T bzw. bei der SE 1 / ~durch ) einen Eingangsblock (Inport-Block) ersetzen. (Zuvor sollte man mit der Anweisung [sizes,xO,xstord]=gerrens(
[I, [],[I ,0)
die Reihenfolge der Zustandsvariablen erfragen!)
4.4 Problerne und Losungen
165
U Clock cpO+mue' Fcnl
1
..
b
Mux
b
XT To Workspace
1
Mux
q'(u-Tm)
FcnP scope
Abbildung 4.17: SIMULINK-ModeU CERRENS.
166 4 Rtihrkesselreaktoren
[x,u,y,dx]=trim('gerrens',[398;0.6],300,[],2) x = 4.0280e 002 6.0000e-001 u = 3.8981e+002
+
Y = Empty matrix: dx = -1.7430e-013 -1.2937e-015
0-by-I
Fur SE!!! [x,u,y,dx]=trim( 'gerrens',[398;0.6],1/400, [] ,2) x = 402.8021 0.6000 u = 0.0026
Y' Empty matrix: dx = 1.0e-013 * 0.8329 0.0029 1/u
0-by-1
ans =
389.8098
Unter den angegebenen Bedingungen mua man also fiir 60 % Umsatz eine Verweilzeit von 389.82 min einstellen - die zugehtjrige stationare Kesseltemperatur ist dann 402.80 K. 1st dieser Betriebspunkt stabil? Wir linearisieren die Bilanzgleichungen am stationlren Betriebspunkt und ermitteln die Eigenwerte der Systemmatrix: [A, B,C,D]=linmod('gerrens',~,~) A =
2.6025e-002 -1.3023e+000 1.0169e-004 -6.4134e-003
B = 6.6669e-004 3.9486e-006
C = Empty matrix:
0-by-2
D = Empty matrix: 0-by-1
4.4 Probleme und Lasungen
167
eig(A) ans =
2.1235e-002 -1.6233e-003
Da ein Eigenwert positiv ist, ist dieser stationare Betriebspunkt instabil. Ein ubliches Diagramm, das die S-fbrmige X-T-Kurve sowie die Wtirmeabfuhrgerade enthalt, zeigt aul3er diesem noch zwei weitere stationtire Bertiebspunkte - die Konstruktion sei dem Leser iiberlassen. Selbstverstandlich lassen sich diese beiden Betriebszusttinde auch mit dem trim-Befehl finden. Eine kleine Stbrung, z. B. ein Anwachsen der Manteltemperatur um 2 K, lafit den Kessel zunachst durchgehen; dann schwingt er sich langsam auf einen neuen Betriebspunkt ein, wie das folgende Phasendiagramm (Abb. 4.18) zeigt.
520
500Y c-4803
c.
2
408.s
0.7
0.8 Umsatz
0.9
I
Abbildung 4.18: Phasendiagramm fiir Styrolpolymerisation im CSTR.
Fur dieselben Einstellungen, die hier verwendet wurden, finden die Autoren der zitierten Arbeit auf dem Analogrechner ebenfalls ein Durchgehen des Reaktors, wenn auch nach etwas ltingerer Zeit, aber dann stellt sich der neue Betriebspunkt aperiodisch ein. Wie ein Reaktor in einem solchen instabilen Betriebspunkt auf Stbrungen reagiert, htingt sehr empfindlich von den Parameterwerten und von der Rechengenauigkeit ab. Abb. 4.19 zeigt das Ubergangsverhalten fur vier Manteltemperaturen: Das untere linke Teilbild (2,l) zeigt noch einmal den Ubergang bei 360 K Manteltemperatur; bei 359 K, also 1 K iiber dem Wert am stationtiren Betriebspunkt, geht der Kessel zwar zunachst durch, ftillt dann aber auf den unteren der drei mbglichen stationtiren Betriebspunkte ab (Teilbild (1,2)).
168 4 Rffhrkesselreaktoren
6 o5 0 1 1 4 I 3 0 00.5 0 ! 1
300
5501.
0.5
1 I
5001
4
/
Abbildung 4.19: T-X-Diagramme bei der Styrolpolymerisation. Start bei T=402.8 K, X=0.6. Bild (1,l):Tm=358 K, (1,2): 359 K, (2,l): 360 K, (2,2): 361 K.
Stabilisieren wiirde man den gewiinschten Betriebspunkt mit einem Umsatz von 60 % iiber eine Regelung, zweckmai3ig eine Regelung der Kesseltemperatur iiber die Manteltemperatur, die man durch Verstellung des Kiihlmitteldurchflusses manipulieren kann. Zum Anfahren wiirde man wahrscheinlich auch noch eine Beheizung des Mantels (mit Dampf) vorsehen. Die Optimierung einer solchen Regelung liei3e sich am SIMULINK-Model1 untersuchen; dafiir m m t e man das Modell GERRENS entsprechend erweitern. Wir verzichten hier auf eine vollstandige Modellierung der Manteltemperatur-Regelung und beschriinken uns darauf, einen Regler fiir die Manteltemperatur einzubauen, ohne auf Details einzugehen (Abb. 4.20). Allerdings wollen wir wenigstens ansatzweise beriicksichtigen, dai3 die Manteltemperatur nach oben und unten begrenzt ist und dai3 die Regeleingriffe nicht beliebig schnell sein konnen; dafiir sehen wir im Modell entsprechende Begrenzer vor (Saturation und Rate Limiter). Wir stellen den Regler als P-Regler ein und fahren den Reaktor an, indem wir ein Losungsmittel bei Zulauftemperatur vorlegen (X0=0.999 ...!) und dann den Styrol-Zulauf anschalten: Das Ergebnis ist in den beiden folgenden Abbildungen 4.21 und 4.22 zu sehen. Der Reaktor fahrt nach moderatem Einschwingen scheinbar Strich. Ein vergrofierter Ausschnitt zeigt Schwankungen in den beiden Temperaturen, die so gering im Realfall natiirlich nicht ausfallen wiirden. Wir konnten das Modell erheblich erweitern, z. B. Storungen einfiihren, MeDfiihler realistisch simulieren usw. - das sollten wir MSR-Spezialisten iiberlassen. Auch die Art des Anfahrens erscheint zwar regeltechnisch einfach, ist aber wegen des Losungsmitteleinsatzes
4.4 Probleme und Ldsungen
-
169
kW'exp(-Ed Wu)
cpO+rnue'u
q'(~(l)-~(2))
MUX
+
regler
Tm
Abbildung 4.20: GERRENS-PID.
f300 a,
500
1000
s20(?!l 500
1000
'20%
1500
2000
2500
3000
1500
2000
2500
3d00
Y
c
a,
E 300 (d
Zeit, min
Abbildung 4.21: Styrolpolymerisation im CSTR - Anfahren und Regeln.
170 4 Riihrkesselreaktoren
402.805 402.8 402.795 402.79
i1660
Y
$
358
$2 357.9 5 357.8 0)
4-
2
1670
1680
1690
rzrl
1650
1660
1670 1680 Zeit, min
1690
Abbildung 4.22: Styrolpolymerisation im CSTR. VergroBerter Ausschnitt des Regelverhaltens. vermutlich nicht die wirtschaftlichste. Auf jeden Fall dilrfen wir aber annehmen, dai3 der instabile Betriebspunkt durch eine Regelung stabilisiert werden kann. Was wurde passieren, wenn im eingeregelten Zustand plotzlich der Zulauf ausfiele? Um diese Rage zu studieren, konnen wir einen Simulationslauf anhalten (mit Pause im Menil Simulation), die Verweilzeit auf einen sehr hohen Wert setzen und mit Continue fortfahren. Wir sehen (Abb. 4.23), daO eine schnelle Regelung mit diesem Problem fertig werden kann, ohne daB der Reaktor ubermaig hohe Temperaturen erreicht. Um das fur die Praxis zu garantieren, milDten wir das Model1 aber noch wesentlich realistischer gestalten, wie es schon angedeutet wurde. Sie kbnnten z. B. ausprobieren, bis zu welchen Werten man den Rate Limiter verstellen kann, bevor der Reaktor bei Ausfall des Zulaufs durchgeht - wie langsam also die Regelung in etwa sein darf! Konnten wir die Vorgaben etwas andern und einen stabilen Betriebspunkt wahlen? Um diese letzte Rage der Aufgabe zu beantworten, stecken wir das Gebiet der instabilen Betriebszustgnde ab, indem wir die beiden einschliigigen Stabilitatskriterien benutzen; sie lauten in der hier passenden Form, die wir aus dem zugrundegelegten Artikel ubernehmen konnen:
(4.63)
(4.64)
4.4 Probleme und Ldsungen
406
404
171
1 ~
0.5; 100 I
1000
2000
3000
4000
5000
6000
1000
2000
3000
4000
5000
6000 I
1000
2000
3000
4000
5000
6000
I
I
-100
Zeit, min
Abbildung 4 . 2 3 : Styrolreaktor bei Ausfall des Zulaufs. Oberes Bild: Kesseltemperatur, mittl. Bild: Umsatz, unteres Bild: Manteltemperatur (Abweichung vom stationtiren Zustmd). Wenn wir ein naives MATLAB-Programm die Werte suchen lassen, die diese Ungleichungen erfilllen, stofien wir auf die Schwierigkeit nicht eindeutiger Losungen (GERRENS-s mit GERRENS-FUN): Offensichtlich findet das Programm manchmal den unteren Zweig, manchmal den oberen (Abb. 4.24). Am einfachsten - wenn auch nicht besonders elegant helfen wir uns, indem wir aus diesem ersten Ergebnis Bereiche abschtitzen, von denen man entweder im oberen oder im unteren Zweig landen diirfte. Im Prcgrammausdruck sind diese beiden Bereiche ,,wegkommentiert". Wenn wir die beiden Zeilen nacheinander zur aktuellen Zeile machen, erhalten wir das gewiinschte Ergebnis; ebenso verfahren wir beim 2. Kriterium (GERRENS-S2 und GERRENS- FUN2): GERRENS -S
Tv=[];taw=[];fv=[] ; for t a u = 100:10:1000 tauv=[tauv,tau]; T=fmin('gerrens fun',273,573); %T=fmin( 'gerren= T ( R )+ -(T(R) 4
(5.29)
- TW)
Daraus folgt
rfR
=
\i-
1 = 0.7071... 2
(5.30)
und weiter iiber
(5.31)
a W ( T ( R-) Tw) = h ( T ( r * )- T w ) der Wfirmedurchgangskoeffizient
(5.32) Damit lai3t sich das radiale T-Profil durch T ( T * ausdrucken: )
(5.33) Interessant ist vor allem die Temperatur in der Rohrachse (bei sie folgt:
T ( 0 )= T ( T * )
+
T ( r * )- Tw 1 + =4
T
= 0); ftir
(5.34)
5.2
FBR rnit axialer Dispersion 199
Wir kihnen die hier angegebene Niiherungsmethode fiir das radiale T-Profil auch als Ein-Punkt-Kollokation bezeichnen. Sphter werden wir sehen, d d die orthogonale Kollokation zur Diskretisierung der radialen Koordinate im zweidimensionalen Modell im speziellen Fall eines einzigen Stiitzpunktes zu einer etwas anderen Wahl fiir r* fiihrt. Jetzt kbnnten wir zuniichst einmal abschiitZen, ob unsere eindimensionale Behandlung des vereinfachten o-Xylol-Beispiels in Problem 5.5.3 zu rechtfertigen ist; das ist in Problem 5.5.4 niiher beschrieben. Die Behandlung eines Festbettreaktors als einphasiges ideales Strbmungsrohr ist eine schnelle und bequeme Mbglichkeit, zu ersten Abschatzungen zu kommen, die rnit parabolischen radialen Temperaturprofilen noch einfach erweitert werden kbnnen. (Das hier beschriebene Modell wird manchmal etwas umstandlich als ,,pseudo-homogen-quasi-eindimensional"bezeichnet.) Es kbnnte sich daher lohnen, ein Programm zu erstellen, das sich auf beliebige Reaktionen anwenden l a t ; eine Moglichkeit wird im Problem 5.5.4 vorgestellt.
FBR mit axialer Dispersion
5.2 5.2.1
Modellgleichungen und Diskussion der Randbedingungen
Wir erganzen die Stoff- und Enthalpiebilanz um die Dispersionsterme cD,,$$? bzw. machen sie dimensionslos und erhalten
&,s, o=---
1 d (ucx;) uoco dz
+ Pe,.,1
dpd2xi L +mlt, L dz2 u c
(5.35)
(5.36) Hier ist z := f . Randbedingungen:
(5.37) rnit q5 = xi oder T . In erster Naherung kann fiir Pe,,, ein Wert von 2 eingesetzt werden, fiir Peh,, ein Wert von 1. (Das gilt fiir Re, > 10.) Genauere Werte kann man z. B. aus Angaben im VDI-Wiirmeatlas erhalten. Urn das Dispersionsmodell und insbesondere um seine Randbedingungen hat es bis in die jiingste Zeit zahlreiche Diskussionen gegeben. Da wir hier mit numerischen Verfahren beschtiftigt sind, wollen wir nicht allzu tief einsteigen, aber doch wenigstens einige Argumente kritisch betrachten, denn die Anforderungen an numerische Verfahren werden j a vom Modell wesentlich gepriigt. Zu den Hauptargumenten zahlen:
200 5 Festbettreaktor - einphasige Modelie 1. Das Modell beschreibt eine unendlich schnelle Signalausbreitung, die unrealistisch ist.
2 . Der Konzentrations- bzw. Temperatursprung, den die linke Randbedingung angibt, ist unrealistisch.
3. Es gibt kein beweiskraftiges Argument f& die rechte Randbedingung. Zu 1.: Es ist richtig, dai3 eine unendlich schnelle Signalausbreitung nicht sein kann, aber diese Modellbehauptung teilt das Dispersionsmodell rnit vielen anderen Modellen, bei denen sie unbeanstandet bleibt, so z. B. mit dem P e n e trationsmodell oder dem Zellenmodell. Man soll eine mathematische Aussage interpretieren und nicht buchstablich nehmen. Es ist unerheblich, dai3 mathematisch in beliebiger Entfernung von einer Signalquelle ein endlicher Wert der entsprechenden Zustandsgrbae wie der Konzentration angesagt wird, wenn dieser Wert vie1 zu klein ist, um praktisch ins Gewicht zu fallen. Zu 2.: Auch hier kbnnte man zunachst darauf hinweisen, daf3 Sprilnge in einer Zustandsgrbfle - obwohl streng genommen unrealistisch - in anderen Modellen nicht beanstandet werden, z. B. im Modell des idealen DurchfluD-Riihrkessels. Dariiber hinaus handelt es sich aber um eine unzureichende Interpretation einer mathematischen Formulierung. Ob der Sprung in der Konzentration (oder der Temperatur) unrealistisch ist oder nicht, ist unerheblich: Die mathematische Aussage bezieht sich auf den (Stoff-)Flufl und besagt, daB dieser stetig zu sein habe. Man kann ohne weiteres beriicksichtigen, dai3 vor Beginn der Reaktionszone mindestens molekulare Diffusion herrschen mui3, ein Konzentrationssprung also in der Tat nicht auftreten kann; die Randbedingung bei z = 0 ware dann wie folgt zu formulieren:
$(-O)
-
1 dpd$(-O) 1 d d$(+O) = $(+O) 7 - -2PeO L Pe L dz
(5.38)
Die Aussage bleibt aber dieselbe: Der FluB ist stetig, rnit anderen Worten: Was von links bei z = 0 ankommt, fliei3t rechts weiter, und ist (solange der stationtire Zustand betrachtet wird!) gleich dem Flu13 durch jeden Querschnitt vor dem Eingang. Insofern sind die beiden Formulierungen der Randbedingung gleichwertig. Zu 3.: Auch am rechten Rand sollte der Flu13 stetig sein. Wenn dort dann ein Profil rnit endlichem Gradienten existiert, m a t e die Konzentration (oder die entsprechende Zustandsgroae) im nachgelagerten Teil einen hoheren oder niedrigeren Wert haben als am Ausgang der Reaktionszone. Wie das zustande kommen soll, ist unverstandlich. (Am linken Rand macht die Reaktion einen solchen Verlauf moglich.) Daher ist die einzig vernilnftige Annahme, dai3 das Profil im Reaktor mit Anstieg Null am rechten Rand einlauft. (Gleiche Konzentration links und rechts am rechten Rand sagt auch das Zellenmodell fiir einen Festbettreaktor an - und zudem einen Konzentrationssprung am linken Rand!) Die Randbedingungen sind also konsistent mit dem Modell. Eine wirkliche Schwache des Modells ist, dafl nicht alle Erscheinungen einer Dispersion rnit
5.2 FBR rnit axialer Dispersion
201
einem Diffusionsprozefl vergleichbar sind. Das kommt merkwtirdigerweise sehr vie1 seltener zur Sprache. J. Hiby [15], der als erster auf den folgenden Sachverhalt hinwies und auch ein Experiment zum Beleg vorschlug, hatte viele Jahre lang Miihe, mit seiner Argumentation durchzudringen. Stellen wir uns vor, wir ftihren einer stationtiren Strbmung eines Gases in einem FBR seitlich einen konstanten Strom eines anderen Gases als Markierungssubstanz zu. Dann wird man aufgrund der Diffusion auch stromaufwgrts diese Substanz nachweisen und quantitativ erfassen ktrnnen. Die Auswertung eines solchen Experiments ergibt bei einem echten Diffusionsprozefl den entsprechenden Diffusionskoeffizienten; beim FBR wiirde man nicht den fiir die durchstrtrmte Schiittung zustiindigen Dispersionkoeffizienten erhalten, sondern im Prinzip nur den molekularen Diffusionskoeffizienten des Gaspaares: Dispersion ist Voreilen und Zurilckbleiben gegeniiber der Stromung, sie wirkt sich in Bezug auf ein festes Koordinatensystem nicht stromaufwtirts aus. Bei der Warmeleitung im gasdurchstromten Festbett ist das etwas anderes: Axiale Stoff- und Warmeleitung sind keine analogen Prozesse. Es gibt eine echte Wgrmeleitung iiber die Feststoffphase, also auch stromaufwats, zuslitzlich zur Ausbreitung durch Dispersion.
5.2.2
Schuherfahren und Diskretisierung
Mit den Bilanzgleichungen fiir den FBR mit axiaIer Dispersion und den zugehorigen Randwerten haben wir ein Zweipunkt-Randwertproblem vorliegen, das mit verschiedenen Methoden gelbst werden kann.
SchuDverfahren
Es liegt nahe, fiir die fehlende Anfangsbedingung einen Wert anzunehmen und diesen so lange zu variieren, bis die Losung den vorgegebenen anderen Randwert trifft - diese Methode hei5t deshalb auch Schuaverfahren. Dabei kann es durchaus Schwierigkeiten geben, z. B. kann ilber Erfolg oder MiBerfolg die SchuBrichtung entscheiden, wie Sie im Problem 5.5.6 ausprobieren ktrnnen.
Diskret isierung Eine andere, hgufig gewlihlte Lbsungsmethode filr Randwertaufgaben besteht darin, die DGls zu diskretisieren. Die wohl bekannteste Diskretisierungsmethode ist die finite Differenzenmethode. Wir wollen uns in diesem Buch auf die finite Volumenmethode (FVM) stiltzen - treffender, aber llinger, ist die Bezeichnung ,,Methode der finiten Bilanzvolumen". Die FVM kann ohne prinzipielle h d e r u n g angewendet werden auf gewohnliche und partielle DGls, auf Anfangs- und Randwertprobleme; nur die Koeffizienten der diskretisierten Gleichungen andern sich entsprechend. Bei dem gerade behandelten Fall der axialen Dispersion im FBR ist kein SchuSverfahren oder eine andere neue Lbsungsstrategie erforderlich; die Randbedingungen werden
202 5 Festbettreaktor
- einphasige Modelle
einfach in die diskreten Gleichungen eingebaut. Die Rechnung nach der Potenzmethode entscheidet zudem selbsttindig, ob die k a l e Dispersion beriicksichtigt werden mui3 oder nicht. Die Diskretisierung der Stofiilanzgleichung fur den FBR mit axialer Dispersion ist einer Teilaufgabe im Problem 5.5.6 vorbehalten. Sie kann durch Vereinfachung der diskretisierten allgemeinen Gleichungen fur drei Dimensie nen gewonnen werden, die im Abschnitt 5.4.2 wiedergegeben sind. Die Diskretisierung nach der FVM sol1 hier zunachst an einem einfachen Beispiel skizziert werden, das aber schon den instationtiren Fall einschlieot. Es handelt sich um die instationiire Wikmeleitung in einer ebenen Reaktorwand mit Wtirmeiibergang auf beiden Seiten. Die PDGl ist
(5.39) Die Anfangs- und Randbedingungen sind:
t = 0: z
= 0:
T,,, =Tw(0) ar(Tr- T w ) = - X w -
(5.40)
aT, dz
(5.41) (5.42)
Wir integrieren die PDGl - im folgenden ohne den Index w geschrieben iiber ein Volumenintervall A1 und ein Zeitintervall At. Das Langenintervall erstrecke sich von w bis e gemiifl Abb. 5.1 und umschlieae den Gitterpunkt P. Zur Verallgemeinerung sei X als ortsabhiingig angenommen. Es ist dann
Um den Ausdruck in eckigen Klammern iiber den Zeitschritt integrieren zu konnen, miissen wir eine Annahme iiber den Verlauf von TE , Tp und Tw in diesem Zeitintervall treffen. Die drei bekanntesten Methoden heioen: 0
Explizit: T nimmt am Ende des Zeitschritts den neuen Wert an.
0
Implizit: T nimmt zu Beginn des Zeitschritts den neuen Wert an.
0
Crank-Nicholson: T iindert sich im Zeitinterval linear vom Anfangs- auf den Endwert.
Wir wiihlen die implizite Formulierung und erhalten formal das Produkt aus Klammer und Zeitschritt At; inhaltlich miissen wir allerdings die T-GrtiBen umdeuten von Variablen zu Variablenwerten zur Zeit t At. Wir kilnnen jetzt das Diskretisierungsergebnis zusammenfassen zu der Form
+
5.2 FBR mit axialer Dispersion
203
(5.44)
(5.45) (5.46) (5.47) (5.48) (5.49)
I
i
I
!
n
w
j W
~
I
~
I
n
je
- -
n
!
P
E
Az
- 2
Abbildung 5.1: Eindimensionales Diskretisierungsgitter.
Urn das Gleichungssystem ltisen zu ktinnen, mussen noch die Randbedingungen eingearbeitet werden. In vielen Fdlen kann man die RBs einer der folgenden drei Arten zuordnen: 1. Gegebene Randwerte
2. Gegebene Fliisse
204 5 Festbettreaktor - einphasige Modelle 3. Implizit fiber Umgebungstemperatur und Wgrmeiibergangskoeffizienten gegebene Fliisse. Unsere RBs sind von der dritten Art. Fiir das (halbe) Bilanzvolumen um den (linken) Randpunkt B nach Abb. 5.2 ergibt sich: (5.50) oder (5.51) mit (5.52) (5.53) (5.54)
Entsprechendes ergibt sich fUr den rechten Rand.
Abbildung 5.2: Halbes Bilanzvolumen am linken Rand.
Um die diskretisierten Gleichungen mit einem Rechenprogramm zu h e n , ist es zweckmgflig, die Gitterpunkte zu numerieren, und zwar von 1 (linker Randpunkt) bis N (rechter Randpunkt). Wir erhalten dann
5.2 FBR mit axialer Dispersion
205
(5.55)
AT=b
(5.56)
(wobei T ein Vektor ist). Dieses lineare Gleichungssystem k6nnen wir leicht losen, wobei wir die besondere Struktur der Matrix A ausnutzen. A hat niimlich eine Bandstruktur; sie ist dreibandig oder eine 'Ikidiagonal-Matrix, da nur die Diagonale sowie die Ober- und Unterdiagonalen besetzt sind (Abb. 5.3).
0 0
2
-
0
0
0 0
4-
6-
a10-
0 0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-
Abbildung 5.3: Tridiagonale Matrix.
Solche Matrizen lassen sich besonders vorteilhaft nach dem Thomas-Algorithmus (TDMA) behandeln (s. Lehrbiicher der numerischen Mathematik); in MATLAB ist es noch einfacher, es geniigt eine einzige Anweisung. Abb. 5.4 zeigt ein Wandtemperaturprofil, das sich nach einem Sprung der Manteltemperatur von Tj = 80 auf Tj = 70 "C innerhalb einer Zeitspanne ausgebildet hat, die 10 % der Zeitkonstante der Wand entspricht. Die Rechnung wurde mit dem M-File FTW durchgefiihrt.
206 5 Festbettreaktor - einphasige Modelle
354
.-c I-
348 346 344-
2
4
6 8 Stutzstelle
10
Abbildung 5.4 Wandtemperaturprofil nach Sprung in Tj.
- - Anfangsprofil; - nach 10 % der Zeitkonstante. FTW
function T w = fiw(alphar,alphaj,dt,Tr,Tj) global Twold swand rhowand cpwand dx A lambdaglas = (.0005 * (Tr+Tj)/2 ,827)
+
tauw=rhowand*cpwand/lambdaglas*swand
* ,001; A
dt=dt/tauw; r=lambdaglas/alphar/swand; s=lambdaglas/alphaj/swand;
Nx=round( l/dx+l); Nt=round( l / d t ) ; ae=l/dx; aw=l/dx; dxdt=dx/dt; aOp=dxdt; ap=ae+aw+aOp; % D=sparse( 1:Nx, 1:Nx,ap); % D(l,l)=ae+l/r; % D(Nx.Nx)=aw+l/s; % W=sparse(2: Nx, 1:Nx-1,-aw,Nx, Nx,Nx-1); % E=sparse( 1:Nx-1,2: Nx,-ae,Nx,Nx, Nx-1);
% A=W+D+E; for i = 1:Nx-1 A( i ,i) =ap; A(i+l,i)=-aw;
2;
5.2 FBR rnit axialer Dispersion 20’7
+
A( i,i I)=-ae; end A( l,l)=ae+l/r; A( Nx, Nx)=aw+l/s; b=aOp*Twold; b( l ) = l / r * T r ; b( Nx)=l/s*Tj; Tw=A\ b;
Der einfache Befehl A\b erspart dem Benutzer viel Programmierarbeit. Die PDGl und die RBs wurden dimensionslos gemacht, wie es aus den entsprechenden Anweisungen hervorgeht. Das Programm wurde geschrieben, um online das Wandtemperaturprofil in einem Reaktionskalorimeter zu berechnen - daher die Argumentenliste und die global-Anweisungen. Fiir den vorliegenden Zweck miissen zuntichst die Parameter besetzt werden: FT W - D AT
global Twold swand rhowand cpwand dx rhowand = 2230; % kg/rn3 Dichte swand = 0.005; % rn Wandstaerke cpwand = 0.7735; % kJ/kg/K spez. Waerrne dx=O. 1; Tr=353.16;TrO=Tr;Tj=343.16; Twold=TrO*ones( l / d x + l , l ) ; alphar=2;alphaj=4;kW/m2 K larnbdaglas = (.0005 * (Tr+Tj)/2 ,827) * .001;
+
tauw=rhowand*cpwand/larnbdaglas*swand -2;%Zeitkonstante der Wand%
dt=tauw/lO;
Dann kann mit T w = ff w (aI phar , aI phaj ,dt ,Tr,Tj)
das Temperaturprofil berechnet werden, das in Abb. 5.4 gezeigt ist. Die numerische Lbsung ist sehr viel einfacher zu gewinnen und auch zu handhaben als die analytische Lbsung, obwohl es sich um ein lineares Problem handelt. Wegen der gegebenen Linearittit mui3 auch bei der Diskretisierung nicht linearisiert und bei der h u n g nicht iteriert werden. Bei der Aufgabe, ein Temperaturprofil in einem adiabatischen FBR mit axialer Dispersion zu berechnen, wird sich das andern (Problem 5.5.8). Die im Programmausdruck wegkommentierten Zeilen zeigen, wie man in MATLAB eine sparse Matrix besetzen kann. Bei feinerer Diskretisierung spart man so erheblich an Speicherplatz (und an Rechenzeit), nimmt doch eine volle (1000,10OO)-Matrixbereits 8 MB ein.
208
5 Festbettreaktor - einphasige Modelle
5.2.3
Mehrzielmethode (Bulirsch'sches Randwertproblem)
Die einfachen Schufiverfahren versagen gelegentlich bei Randwertproblemen. Bei der Suche nach einem der fehlenden Anfangswerte werden Kombinationen erzeugt, die das verwendete Integrationsverfahren instabil werden lassen. Notorisch instabil ist z. B. der isotherme FBR mit axialer Dispersion, wenn vom linken Rand aus (,,bergab") integriert wird. Dann stilrzt die Rechnung sogar ab, wenn die exakten Anfangswerte eingesetzt werden (exakt auf Maschinengenauigkeit). Man kann sich dann helfen, indem man vom rechten Rand her (,,bergauf ") integriert. Sicherer ist es, eine Erweiterung des einfachen Schuherfahrens einzusetzen, das 'Mehrfachschuflverfahren, meist etwas kiirzer Mehrzielmethode genannt . Bei der Mehrzielmethode wird das zu ilberbrilckende Integrationsintervall in Abschnitte eingeteilt und von Abschnitt zu Abschnitt ,,geschossen". Man hat dann iterativ dafilr zu sorgen, daB die Schufibahnen der einzelnen Abschnitte eine stetige Gesamttrajektorie bilden: Der ,,Einschlag" am Ende des einen Abschnitts mufl exakt der ,,Abschuflort" fur den folgenden werden. Wir folgen der Darstellung in [16]: Betrachten wir das System aus n DGls dy = f(t,y)
dt
(5.57)
mit den Randbedingungen
Wir wtihlen im Bereich [a,61 m Stiltzstellen
Es miissen nun n Vektoren sk gefunden werden, die die Bedingungen erfiillen (5.60) (5.61) Diese beiden Gleichungen bilden ein n x m grofies, i. a. nichtlineares Gleichungssystem, dessen Lbsung die gesuchten Vektoren liefert. Die Werte Y(tk+l;tkr sk) ergeben sich durch Integration des DG1-Systems von tk bis tk+l mit den Anfangswerten sk. Wie wiihlt man die Stutzstellen? Man wahle eine moglichst gute Starttrajektorie yO(t) im Bereich [ a , 6 ] ,setzt t l = a und beginnt die Integration des = f ( t , y ) y, ( t 1 ) = yO(t1);man bricht die Integration Anfangswertsproblems an einer Stelle t 2 ab, an der die Lesung y ( t 2 ) ,,zu stark" von yO(t2) abweicht; an
5.2 FBR mit axialer Dispersion
209
dieser Stelle beginnt man die Integration neu mit dem Anfangsvektor yO(t2). Dieses Verfahren setzt man fort, bis man t = b erreicht hat. yO(t1, t 2 , ....tm) wird dann als Startvektor fltr die Lbsung des nichtlinearen Gleichungssystems benutzt. Was eine ,,zu starke" Abweichung ist, mui3 gegebenenfalls durch P r e bieren herausgefunden werden; ein Anhaltspunkt ist z. B., dai3 die Norm Ily(t,)ll ein Vielfaches von IlyO(ti)ll nicht tibertrifft. J e groi3ztigiger man hier ist, umso weniger Stiitzstellen wird man benbtigen, umso grbi3er wird aber auch die Gefahr , dai3 im Verlauf des LUsungsverfahrens ftir das nichtlineare Gleichungssystem Bedingungen auftreten, bei denen die Integration in einem Interval1 lrabstilrzt ".
Randwertproblem von Bulirsch Die DG1
d2Y
(5.62)
dx2 mit den Randbedingungen
(5.63) ist ein von Bulirsch [17] eingefilhrtes, besonders bemerkenswertes Beispiel fur ein Randwertproblem, das sich z. B. fiir p = 60 nicht nach dem Schdverfahren h e n ltii3t. Dazu wltrden wir wie tiblich die DG1 in zwei DGls erster Ordnung umformen, dYl -
dx = Y2 dY2 - p2yl - (p2 dx
(5.64)
+ n2)sin(nx)
(5.65)
und den fehlenden Anfangswert y2(0) suchen. Selbst wenn wir zuftillig auf den richtigen Wert y2(0) = n stoi3en sollten, ltiat sich das DG1-System nicht integrieren. Versuchen wir es mit dem Programm BOCKDGL, in dem T durch einen allgemeinen Parameter par ersetzt ist: global rnue par rnue=60; par=pi; [t,y]=ode45('bockdgl' ,[0,1],[0 pi]); PlOt(t,Y)
Warum stiirzt die Integration ab (Abb. 5.5), obwohl die (auf Maschinengenauigkeit) genauen Werte als Anfangswerte eingegeben werden?
210 5 Festbettreaktor - einphasige Modelle
108-
I I I
, I L
6-
I I
I I
4-
I. I I
I
,
2-
I . I I
, I
-
Abbildung 5.5: Integration des Bulirsch’schen Randwertproblems mit den Anfangswerten der analytischen LUsung.
Die analytische Losung des DG1-Systems ist yl(z) = C1 sinh(mz)
+ C2 cosh(mz) + s i n ( m )
(5.66)
Aus den Randbedingungen folgt C1 = C2 = 0. Es sei nun die Anfangsbedingung yz(0) gestort: yz(0) = 7r +- E . Dann ergibt sich fiir die Integrationskonstante C1 = und damit fiir die gestorte Losung
5
E
y# = m sinh(mz) + sin(7rz)
Mit
E
(5.67)
als Mail fiir die Maschinenengenauigkeit,
ePs M S
=
2.2204e-016
und m = 60 folgt y # ( l ) = & sinh(60): eps/60*si n h(60) ans =
2.1131e+008
statt des exakten Wertes Null; so entsteht eine alles iiberwuchernde parasitare Losung y#.
5.2 FBR rnit axialer Dispersion
211
Versuchen wir die Mehrzielmethode! Im Programm MEZIEL2 (nicht fur SE), in dem die unabhtingige Variable t statt z heifit, ist als Anfangstrajektorie y = 5t(l - t ) gewtihlt. Man kann den Faktor vor der Norm norl in Zeile 6 tindern, oder auch das Integrationsintervall delt. Die Integration wird in deltSchritten solange fortgesetzt, bis die Norm-Bedingung nicht mehr erflillt ist: Der entsprechende t-Wert wird als Stiitzpunkt gespeichert (tfvek) zusammen mit den zugehorigen y- und y'-Werten, yvek und yveks. (Gespeichert werden zu Kontrollzwecken auch die Normen in norlvek und nor2vek.) MEZIEL~
tfvek=[];tf=O;delt=O.Ol;tend=l;yvek=[];yveks=[];
norlve k= [I; nor2ve k= 0; while tf < tend norl=l; nor2=0; xO( 1)=5*tf*( l-tf);x0(2)=5-10*tf; while nor2 < 20*norl & tf < tend tO=tf; tf=tO+delt; xf( 1)=5*tf*( 1-tf);xf(2)=5-10*tf; norl =sq r t (A(1)*xf( 1)+xf( 2) *xf(2)); norlvek=[norlvek;norl]; [t,y]=ode45(' bockdgl',[tO,tf],xO); sit=size(t); if sit(1) > sit(2) si=sit( 1); nor2=sqrt( y( si,I)*y(si,l)+y(si,2)*y(si,2)); nor2vek=[ nor2vek;nor2]; xO( l)=y( si,l);xO(2)=y(si,2); else si=sit(2); nor2=sqrt( y (1si)*y(1,si)+y( 2 ,si) *y(2 5 ) ) ; xO( l)=y( l,si);xO(2)=y(2,si); end%if endxwhile 1 tfvek=(tfvek;tf]; yvek=[yvek;y(si,l)]; yveks=[yve ks;y( si ,2)]; end%while 2
Ein Lauf von MEZIEL2 bringt folgendes Ergebnis: global tfvek;[tfvek,yvek,yveks] am = 8.0000e-002 2.1304e+000 1.1596e+002 1.3OOOe-001 1.7915e+000 8.6247e+001 1.8000e-001 2.3671e+000 1.1207e+002 2.2000e-00 1 1.8108e+000 7.1770ei-001
212 5 Festbettreaktor
-
einphasige Modelle
2.6OOOe-001 1.9893e+000 7.6602e+001 3.OOOOe-001 2.1267e+OOO 7.9661e+OOl 3.3OOOe-001 1.6171e+000 4.4617ef001 3.6OOOe-001 1.6703e+ 000 4.4858e 00 1 3.9000e-001 1.7120e+OOO 4.4892e+001 4.2OOOe-001 1.7429e+000 4.4781e+001 4.5000e-001 1.7637e+OOO 4.4579e+001 4.8000e-001 1.7747e+OOO 4.4323e+001 5.1OOOe-001 1.7764e+000 4.4038e+001 5.4OOOe-001 1.7689e+000 4.3734ef001 5.7OOOe-001 1.7521e+000 4.3408ef001 6.OOOOe-001 1.7259e+000 4.3043e+00 1 6.3OOOe-001 1.6899e+000 4.2608e+001 6.6OOOe-001 1.6436e+OOO 4.2059e+001 7.0000e-001 2.1664e+000 7.8254e+001 7.4OOOe-001 2.0541e+000 7.6033e+001 7.8OOOe-001 1.9096e+000 7.262 le+001 8.2000e-001 1.7270e+000 6.7583e+001 8.7OOOe-001 2.3412e+000 1.1313e+002 9.2OOOe-001 1.8072e+000 8.9926e+00 1 9.8OOOe-001 1.8951e+000 1.0657e+002 1.0000e+000 2.1875e-002 -2.9668e+000
+
Mit yvek und yveks bilden wir nun zusammen mit den Randbedingungen einen Anfangssch&zwert des Parametervektors XO fiir die Optimierroutine fsolve; sie soll die Werte an den Stiitzstellen finden, die die Gln. (5.60) und (5.61) erfullen: XO=[yvek.yveks];
xo= [0,o ;XO];
tic;X=fsolve( 'bockfun',XO);toc elapsed-time = 2.0328e+002
Wir vergleichen die gefundenen X(:,l)-Werte, also die yl-Werte an den Stiitzstellen, mit der analytischen L6sung und kihnen im Rahmen der Zeichengenauigkeit keinen Unterschied feststellen (Abb. 5.6). Man kann nun durch Integrieren von Stiitzpunkt zu Stiitzpunkt einen glatten Verlauf der Usungskurve bekommen - das sei dem Leser iiberlassen. In BOCKFUN, dem UP fUr fsolve, ist die Mtjglichkeit ,,wegkommentiert ", das Bulirsch-Problem ah Anfangswertproblem zu formulieren; ist die Mehrzielmethode in diesem Fall auch erfolgreich? Bitte ausprobieren!
5.3 Instationtirer FBR mit axialer Dispersion
213
Abbildung 5.6: LUsung des Bulirsch'schen Randwertproblems mit der Mehrzielmethode (-) und Vergleich mit der analytischen Usung (0).
BOCKFUN
function F = bockfun(>() global tfvek tf=O;iz= 1;F=[]; while tf < 1 tO=tf;tf=tfvek( iz); xO=X(iz,:); [t,y]=ode45('bockdgl',[to tf],xO); sit=size(t); iz=iz+l;
F=[F;y(sit(l),:)-X(iz,:)];
end % F=[F;X( l , l ) , X (1,2)-pi]; F=[F;X( 1,1),X(iz, l)];
Instationiirer FBR mit axialer Dispersion
5.3
Wir verbinden die StofFbilanz gleich mit der Kontinuitstsgleichung und erhalten in dimensionsloser Form:
wobei
t
:=
2 und uj = C V , ~ .
214 5 Festbettreaktor - einphasige Modelle Enthalpiebilanz:
+
L 'LL
P
(5.69)
Crj ( -AHj) cp
( p c , ) ~bezieht sich auf das Reaktionsvolumen und setzt sich aus Beitrtigen beider Phasen zusammen. Im instationtiren FBR kann man strenggenommen nicht die Randbedingungen des stationtiren verwenden, sondern mui3 mit einem ,,dreigeteilten '' S t r b mungsrohr rechnen: Man mui3 die Bilanzen der vor- und nachgelagerten Zcnen zusammen mit den beiden angegebenen Gleichungen so lbsen, dai3 an den Schnittstellen die allgemeinen Randbedingungen erfiillt sind. Im allgemeinen vernachliissigt man die Akkumulation in der Stofiilanz; in der Ent halpiebilanz benutzt man meistens die Danckwertsschen Randbedingungen, was eigentlich nur zuliissig ist, wenn die vorgelagerte Zone feststomrei ist. Eine wichtige Anwendung haben die instationtiren Bilanzen bei dem FBR mit wechselnder Strtjmungsrichtung gefunden [MI; sie werden z. B. zur katalytischen Reinigung von Abgasen eingesetzt, deren chemischer Energieinhalt nicht ausreicht, eine stationtire Reaktion zu unterhalten. Im folgenden wird das beispielhaft fur vereinfachte Bedingungen dargestellt . Wie htiufig in diesem Buch wird dieses Beispiel in ein Problem gepackt (Problem 5.5.9), damit Sie sich selbst mit der Lbsung beschGtigen kbnnen.
5.4 5.4.1
FBR mit radialer Dispersion Modellgleichungen und Randbedingungen
Wir erweitern die Bilanzgleichungen filr einen FBR urn radiale Dispersionsterme, fassen Parameter zu dimensionslosen Gruppen zusammen und erhalten:
1 d(ucx) uoco
-
aZ
aT _ -
a~
1 d, L l a x (-~ e , , , , ,R . R Tar
1 dp L 1 d T (-R R r ar
a2x
L
+ -)a T 2 + x",rrr(x) c
2T L + -)ddr2 + -rT(-AH) up~,
In diesen Gleichungen sind z und r dimensionslos: z := z / L , r := TIR. Die Randbedingungen sind: z = 0 : zi = ziolT= To fiir alle r; T=O:aZ'=Oar=O 8r ' Or T = 1 : ~!SL=O,Bi.(T-T,) = -z 8T 8r
(5.70)
(5.71)
5.4 FBR mit radialer Dispersion 215
Wenn es erforderlich ist, kbnnen wir die Stofiilanz durch entsprechende Manipulation des Terms UC noch umformen, wie es die Gln. (5.18) bis (5.20) zeigen; da wir uns hier auf die Behandlung der PDGls konzentrieren wollen, werden wir in den Beispielen Uberwiegend mit Reaktionsbedingungen arbeiten, bei denen man Molzahltlnderungen vernachl&sigen kann: uc = uoco. In erster Ntiherung l&t sich fur die radiale Pe-Zahl ein Wert abschtltzen, der auf folgender einfacher Modellvorstellung iiber die radiale Dispersion in einer durchstrbmten Schtittung beruht: Die Fluidelemente weichen den Feststoffpartikeln regellos nach links oder rechts aus; dann ist die mittlere radiale Verschiebung Z2 = 2D,t. Bei einem einmaligen Ereignis ist 3 = 0.5 * d p und t = d p / u ; daraus ergibt sich u d p / D r = Pe,., = 8. Experimentell werden die radialen Pe-Zahlen (fur die Stoffdispersion) zwischen 8 und 15 gefunden mit einem Haufungspunkt in der Ntihe von 10. Filr eine erste grobe Abschatzung kann man mit Pem,r = 10 und Peh,, = 5 rechnen. Im Gegensatz zur axialen Dispersion ist jedoch der E i n f l d der radialen Wtlrmedispersion von so groi3em Einfld, dai3 man die radialen Wtlrmetransportkoeffizienten A, und a, mbglichst genau ermitteln mui3. Es gibt daher auch eine Vielzahl von Messungen und Korrelationen in der Literatur (VDI-Wtlrmeatlas).
5.4.2
Methode der finiten Bilanzvolumina (Finite Volumenmethode)
Wir folgen der Darstellung in Patankar (191, um die Einarbeitung in sein Buch zu erleichtern, und benutzen auch seine Nomenklatur; Umformungen fur unsere Zwecke bleiben uns bei keiner allgemeinen Darstellung erspart. Im Abschnitt 5.2 wurden die Grundlagen der Methode - Diskretisierung und Integration iiber ein Bilanzvolumen - anhand einfacher, eindimensionaler Beispiele schon b e s p r e chen. Hier gehen wir zu einer allgemeinen, dreidimensionalen Darstellung iiber , beschranken uns aber auf die Ausgangsgleichung und die Ergebnisse; der interessierte Leser sollte sich insbesondere die Behandlung der Konvektion mit Diffusion im Buch von Patankar anschauen sowie die Einfuhrung des sog. PotenzGesetzes. Wir gehen aus von einer allgemeinen Bilanzgleichung, die durch Interpretation der Terme auf die Gleichungen der Stoff-, Enthalpie- und Impulsbilanzen in nicht allumfassenden, aber weitverbreiteten Formen filhrt:
a
-( p $ ) = - div(pur$)+ div(r grad
at
4) + S
(5.72)
r vertritt den jeweiligen llansportkoeffizienten. In der Stoffbilanz ist die abh&ngige Variable 4 gleich dem Masseanteil wi; wir ziehen fur m e r e Anwendungen in der chemischen Reaktionstechnik molare Groi3en vor, vor allem, weil die kinetischen Gesetze sich anschaulicher formulieren lassen. In der Enthalpiebilanz ist 4 gleich der massebezogenen Enthalpie h; diesem Gebrauch schlieflen wir uns an, formen aber die Gleichung um,indem wir die
216 5 Festbettreaktor - einphasige ModeIle Kontinuittitsgleichung einbeziehen und dh durch c,dT ersetzen (und dabei meist stillschweigend - ideale Verhtiltnisse annehmen). In der Impulsbilanz fiir eine Rchtung, z. B. die x-Rchtung, ist 4 gleich u,, der Strbmungsgeschwindigkeit in x-Richtung. Sptitestens hier kommt man aber i. a. mit einem diffusiven Term div grad nicht aus; andere viskose Einfliisse werden in den Quellterm hineingezogen, der angegeben wird als
ax + B, + V,
aP S = --
(5.73)
wobei B, fiir die in x-Rchtung auf das Volumenelement ausgeiibten tiufleren Krafte steht und V, fiir die viskosen Terme, die zustitzlich zu div(y grad u) auftreten. Der Druckgradient wird bei den numerischen Anwendungen der Impulsbilanz zweckmtiflig aus dem allgemeinen Quellterm abgetrennt und fiir sich behandelt. Die Diskretisierung der allgemeinen Bilanzgleichung fiihrt zu folgenden Ausdriicken (Patankar):
mit
aE aw
= DeA(IPeI) =
+ m=(-Fe,O)
DwA(IPwI) + m=(-Fw,O)
(5.75) (5.76)
und entsprechenden Ausdriicken fiir die anderen Koeffizienten; weiter ist
=
pop Ax Ay AZ At
b
=
ScAxAyAz+a"p:
up
=
UE
a;
(5.77)
+ uw + + + + U B + UN
US
UT
U$
- SpAxAyAz
(5.78) (5.79)
Die konvektiven und konduktiven Terme sind gegeben durch
(5.80)
usw. P = F/D. Fur die F'unktion A(IP1) wird nach Patankar am besten das Potenz-Gesetz
5.4 FBR rnit radialer Dispersion
A(1P))= max(0, (1 - O.llP1)')
217
(5.83)
gewtihlt. Besonders behutsam sollte man mit den stark nichtlinearen Quelltermen umgehen. Patankar diskutiert sechs Arten der Linearisierung. Gut bewtihrt hat sich insbesondere bei den Arrhenius-Termen die folgende: Der Quellterm S (oder genauer gesagt: sein mittlerer Wert im Bilanzvolumen) wird in einen konstanten Anteil Sc und einen linearen Term SpCpp aufgeteilt, wobei S, nicht positiv sein darf:
s = sc + SpCpp
(5.84)
Wenn im Extremfall der Quellterm die Diskretisierungsgleichung vollstandig dominiert, also Sc + S p Q p = 0 ist, erhtilt man als Lbsung (innerhalb eines Iterationsschritts)
(5.85) Wenn Cp' der augenblickliche Wert ist und ma: den neuen Wert in vorzugebenden Grenzen halten will, z. B. unterhalb von Cpp, wtihlt man
sc
= S'-
sp
=
QP
(5.86)
Cpp - Cp;
--
S'
(5.87)
Cpp - Cp;
Um G1. (5.74) zu losen, kann man nicht unmittelbar den TDMA anwenden, wie in unseren bisherigen, eindimensionalen Beispielen; man kann sie aber nacheinander auf Gitterlinien anwenden (line by lane, nicht zu verwechseln mit der Linienmethode MOL), wie in der Abb. 5.7 angedeutet, wobei man an den benachbarten Gitterpunkten stets die neuesten verfilgbaren Werte einsetzt. Die drei hhufigsten Randbedingungen sind: 1. Der Wert der Zustandsvariablen ist gegeben.
2. Die Diffusionsstromdichte qB am Rand ist gegeben (Diffusion im allgemeinen Sinn, also Diffusion, Dispersion,W%rmeleitungusw.).
3. Die Diffusionsstromdichte am Rand ist ilber einen Austauschterm mit der Umgebung gegeben.
218
5 Festbettreaktor - einphasige Modelle
Aktuelle Gitterlinie X
Abbildung 5.7: Line-by-line-Methode.
Der Fall 1 bietet kein besonderes Problem. Urn fiir die beiden anderen Falle die Randbedingungen einzuarbeiten, integriert man z. B. in x-ftichtung an den Rgndern uber ein halbes Bilanzvolumen der Breite Ax (s. Abb. 5.2). Dann ergibt sich fiir den 2. Fall:
wobei
DiA(IP,()+ max(-Fi,O) b = ScAx+qg ag = a1 - SpAx a1
=
(5.89) (5.90) (5.91)
Hier steht der Index B fur Boundary und I fur den ersten inneren Gitterpunkt. Fiir den 3. Fall, wenn q g = h(q5,, - c $ ~ ) ergibt , sich abweichend von 2.: b ag
+
= S ~ A Xh$,, = aI-SpAx+h
(5.92) (5.93)
Man muf3 darauf achten, q B und h konsistent mit der DG1 zu formulieren! Fur die Reaktorgleichungen am Anfang von Abschnitt 5.4 gilt z. B. an der Rohrwand:
5.4 FBR mit radialer Dispersion
219
(5.94) (mit r := r / R ) und folglich
mit
r h =1 2 d~ Peh,, R R ’
Im Problem 5.5.10 wird die finite Volumenmethode (FVM) auf ein zweidimensionales Model1 des FBR angewendet.
5.4.3
Linienmethode
Bei der Linienmethode (Method Of Lines, MOL) wird eine der unabhthgigen Variablen einer PDGl nicht diskretisiert; so entsteht ein - unter Umstanden sehr groi3es - System gewbhnlicher DGls (oder DAGls). Die heutigen DG1-Loser sind so gut, dai3 diese Methode sich steigender Beliebtheit erfreut. Die eine unabhtingige Variable, die nicht diskretisiert wird, sollte eine ,,Einweg“-Variable sein wie die Zeit, denn sonst wtirde man ein Randwertproblem bekommen. Dann aber bietet die Linienmethode zwei vorteilhafte Mbglichkeiten: Man kann die Steuerung der Schrittweite dem DG1-Lbser fiberlassen, und man braucht nichtlineare Terme nicht zu linearisieren und braucht daher auch nicht zu iterieren. Wie kbnnen wir die Linienmethode in MATLAB oder SIMULINK realisieren? Die Diskretisierung bleibt weiterhin Aufgabe des Anwenders; es bietet sich aus den schon skizzierten Grtinden die FVM an. Als DG1-Lbser verwendet man von vornherein einen ftir steife Systeme, denn die entstehen fast zwangsl a d g bei der Diskretisierung. Sparse Matrizentechniken ftir die groi3en Gleichungssysteme sind in MATLAB einfach anzuwenden, wie wir schon erfahren haben. In SIMULINK sieht die Sache etwas anders aus: Hier kilnnen wir in den Matrix-Gain-Blocken nur volle Matrizen mit konstanten Werten benutzen; bei der Ausfiihrung der Rechenschritte benutzt SIMULINK dann allerdings sparse Techniken, so dai3 hohe Rechengeschwindigkeiten erzielt werden; Speicherplatzprobleme kbnnen wir aber leicht bekommen. Was machen wir, wenn die Parameter der PDGls nicht konstant sind und Matrizen mit nichtkonstanten Elementen auftreten? In MATLAB ist das kein besonderes Problem, wir kbnnen bei jedem Schritt des DG1-Lasers die Matrizen neu berechnen. In SIMULINK miissen wir wieder anders vorgehen: Matrix-Gain-Bltjcke kbnnen wir in solchen Fallen nicht verwenden, wohl aber M A TLAB-Fcn-Blbcke. Wenn die aber die Rechengeschwindigkeit zu stark herabsetzen, konnen wir immer noch auf S-Funktionen ausweichen. Anstatt uns dort nach sparsen Techniken in C umzusehen, ktinnen wir mit Vektoren statt Matrizen arbeiten, da wir j a die einzelnen Elemente sowieso neu berechnen mfissen; in den Abschnitten 2.2 und 2.3 finden Sie Beispiele.
220 5 Festbettreaktor - einphasige Modelle Beispiel: Oxidation von 0-Xylol nach dem zweidimensionalen Model1 eines FBR (MOL) Da die Diskretisierung der Bilanzgleichungen filr die MOL doch ein wenig anders verlguft und man die Formeln von Patankar (Abschnitt 5.4.2) daher nicht unmittelbar anwenden kann, seien hier einige Einzelheiten dargelegt. Wir schreiben die allgemeinen Bilanzgleichung 5.72 noch einmal, diesmal etwas umgestellt und noch weiter gekiirzt:
84 = --(rr-1d dz
(5.96)
rdr
wobei 4 filr x bzw. T steht und wir uns wie bisher I? und S indiziert denken. Wir multiplizieren nun beide Seiten dieser Gleichungen mit T und integrieren dann uber die finiten Bilanzvolumina von r, bis r e ; filr unseren ublichen Fall, 6rw = 6r, = Ar, erhalten wir:
a4
-rpAr dz
=
84 a4 (rr-)e - (rr-)w + SrpAr dr dr
(5.97)
und nach Approximation der Differentialquotienten
oder
mit
rwrw
uw = r pAr Ar
aE
rere
=rpArAr
up
= -(UW
+UE),
b =S
(5.100)
Jetzt mtissen wir noch die Randbedingungen fur die r-Koordinate einarbeiten; am linken Rand ( r = 0) ergibt die Integration liber das halbe Bilanzvolumen von 0 bis 1/2 AT:
5.4 FBR rnit radialer Dispersion
221
Am rechten Rand ( r = 1) erhalt man:
aw ( = UP(
=
T,r,
w r ) =
1 / 2 ( A ~- ( A ~ / 2 ) ( A r / 2 ) ) A r
(5.102)
Bi l?
aNr+l)
b = S+
) (5.103) = -(w+ 1/2(Ar - ( A T / ~ ) ( A T / ~ ) )
Bi I? T,, 1/2(Ar - ( A ~ / 2 ) ( A r / 2 ) )
(5.104)
Die beiden letzten Gleichungen gelten naturlich nur fur die Enthalpiebilanz; bei der StofTbilanz entfallen die Terme mit Bi. Das File MOLDAT zeigt die Codierung dieser Beziehungen: MOLDAT
global c0 cpG delh L Nr p02 rhoG rhokat Tmax Tmin u0 R1 phils global Q1 phi25 k l Nz global Gam Gah x10 TO dz dr BiGah Tu global rdr ASm Ash Luc hLurcp rw=[];re=[];aEms=[];aWms=[];aEm=~;aWm=[];
aEhs=[];aWhs=[];aEh=O;aWh=[l;rb=[;xl=[;T=[]; cpG=l.046; % kJ/ kg/ K delh=-1285400; % kJ/kmol Dmr=0.0003; %m2/s dp=O.O03;%m;Partikeldrm hw=159.1; % W/m2/K, Waermedurchgangskoeffizient an der Rohrwand% L=3.; %m lamr=0.7729; % W/m/K;X,
Nr=100: p0=.015; xentspricht hier dem Partialdruck in bar pL=101325;%Pa; Druck am Reaktorausgang p02=0.211; %bar R=O.O254/2;%m; Rohrradius RG=8314; rhoG=1.293; % kg/m3 rhokat=1300; % kg/m3, Schuettdichte T0=625; %K Tu=625; uO=l;%m/s; Leerrohrgeschwindigkeit x10=.015; cO=pL/RG/273.2; dr=l/Nr;
222 5 Festbettreaktor - einphasige Modelle Pehr=uO*rhoG*cpG*dp/(lamr*le-3); Pemr=uO*dp/Dmr; %Peclet masse radial
Gam=l/Pemr*dp/R*L/R; Gah=l/Pehr*dp/R*L/R; Bi=hw*R/lamr; BiGah=Bi*Gah; Luc=L/u0/c0; Lurcp=L/uO/rhoG/cpG; hLurcp=(-del h)* Lurcp; xl=xlO*ones( Nr+l,l); T=TO*ones( Nr+l,l); rw=dr/2:dr: 1-1.5*dr; re=rw+dr; aEms=Gam*re/dr; aWms=Gam*rw/dr; a Ehs=Ga h*re/dr; aWhs=Gah*rw/dr; rb=dr:dr: 1-dr; rdr=dr*rb; rdr=[1/2*dr/2*dr/2,rdr, 1/2*( l*dr-dr/2*dr/2)] ; aEm=[aWms(l),aEms]; aWm=[aWms,Gam*(l-.5*dr)/dr]; aEh=[aWhs(l),aEhs]; aW h=[aWhs, Ga h* ( 1-.5*d r)/d r] ; aPms=aEms+aWms; a Pm=[a Em(l), a Pms,a Wm (Nr)] ./rdr;
aEm=aEm./rdr(l:Nr); aWm=a Wm ./ rdr( 2: Nr+ 1); D=sparse(l:Nr+l,l:Nr+l,-aPm);
W=sparse(2:Nr+l,l:Nr,aWm,Nr+l,Nr+l,Nr); E=sparse( 1:Nr,2: Nr+l,aEm, Nr+l, Nr+l, Nr); ASm=W+D+E; aPhs=aEhs+aWhs; aPh=[aEh( l),aPhs,aWh(Nr)+BiGah]./rdr; aEh=aEh./rdr( 1:Nr); aW h=a Wh ./rdr( 2: Nr+ 1); D=sparse( 1:Nr+1, 1:Nr+l,-aP h); W=sparse(2:Nr+l,l:Nr,aWh,Nr+l,Nr+l,Nr); E=sparse( l:Nr,2:Nr+l,aEh,Nr+l,Nr+l,Nr); ASh=W+D+E;
5.4 FBR mit radialer Dispersion
223
Das U P fiir den DG1-User ist im folgenden File MOLKIN dargestellt: MOLKIX
function dy = molkin(z,y)
% Bilanzgln fuer das o-Xylol-Beispiel. Zweidimensionaler, % einphasiger, nichtisothermer FBR. Zu verwenden mit % moldat. global c0 cpG delh L Nr p02 rhoG rhokat Tmax Tmin u0 R1 phils global Q1 phi2s k l Nz global Gam Gah x10 TO dz dr BiGah Tu global rdr ASm Ash Luc hLurcp xl=y( l:Nr+l); T=y(Nr+2:2*(Nr+l));
kl=l.l44e+05*exp(-13636./T);% Geschw.-Konstante, kmol/kg/s/bar^2 %kl=O; rl=kl*rhokat*po2.*xl; R1=-rl*Luc; Ql=rl*hLurcp;Ql( Nr+l)=Ql( Nr+l)+BiGah*Tu/rdr( Nr+l); dxl=ASm*xl+Rl; dT=ASh*T+Ql; dy=[dxl;dT]; Mit odel5s Iassen sich nun durch den iiblichen Aufruf die Konzentrationsund Temperaturfelder berechnen: moldat [z,y]=odel5s('molkin',[O l],[xl;T]);
Es erscheint ratsam, die Toleranzen RelTol und Abs To1 etwas zu verschhrfen. Auch in SIMULINK Itii3t sich das Gleichungssystem sehr schbn behandeln (MOLSIM.MDL): Die tridiagonalen Matrizen enthalten nur konstante Werte, so dai3 man die Matrix-Gain-Blbcke verwenden kann. Die Quellterme kann man abtrennen und in einem eigenen Block berechnen, am einfachsten in einem MATLAB-Fcn-Block (MOLKINSIM); da dieser keine im MATLAB-Compiler verbotenen Anweisungen enthhlt, kann man den Geschwindigkeitsverlust erheblich reduzieren, und wenn das nicht reicht, immer noch auf eine S-Funktion zuriickgreifen (entweder selbst geschrieben oder mit der Compiler Toolbox ab Version 1.2 ). MOLKINSIM
function RQ = molkinsim(y) % Quellterme fuer das o-Xylol-Beispiel. Zweidimensionaler, % einphasiger, nichtisothermer FBR. Zu verwenden mit % moldat und molsim (Matlab Fcn). global c0 cpG delh L Nr p02 rhoG rhokat Tmax Tmin u0 R 1 phils
224 5 Festbettreaktor - einphasige Modelle global Q1 phi2s k l Nz global Gam Gah x10 TO dz dr BiGah Tu global rdr ASm Ash Luc hLurcp xl=y( l:Nr+l); T=y(Nr+2:2*(Nr+l));
kl=l.l44e+O5*exp(-13636./T); % Geschw.-Konstante, kmol/kg/s/barA2 %kl=0; r 1=k l* rhokat *po2. * x l ; R1=-rl*Luc; Ql=rl*hLurcp;Ql( Nr+l)=Ql( Nr+l)+BiGah*Tu/rdr( Nr+l); RQ=[Rl;Ql]; 5.4.4
Orthogonale Kollokation
Die vielen Gleichungen, die bei der Diskretisierung nach der FVM oder anderer Methoden niedriger Ordnung auftreten konnen, insbesondere bei mehrdimensionalen Problemen, lassen uns nach Methoden Ausschau halten, die vielleicht mit deutlich weniger Stiitzpunkten auskommen. Wir werden im Bereich der MWR fiindig, bei den Methoden der gewichteten Residuen (MWR, Method of
Weighted Residues). Die Methode der orthogonalen Kollokation, ein Spezialfall der allgemeinen Kollokationsmethoden innerhalb der MWR, hat sich in der Reaktionstechnik als besonders geeignet erwiesen; sie kommt mit den oft stark nichtlinearen Gleichungen, insbesondere mit den Arrheniustermen, gut zurecht, ebenso mit den haufig zu findenden Randwertbedingungen l., 2. und 3. Art, ihre Ordnung lafit sich leicht variieren, und eine besondere Vereinfachung ist, d d die Lasungen nicht in Form unanschaulicher Koeffizienten von Potenzreihen auftreten, sondern als Funktionen der Lbsungen an den Kollokationspunkten. Wir werden auch hier nicht tiefer in den mathematischen Hintergrund vordringen (s. z. B. Finlayson[20], dem wir auch bei der folgenden Darstellung der Methode folgen), sondern uns mit der Anwendung begniigen. Zuvor aber noch ein Wort zur Bezeichnung ,,orthogonal". ,,Orthogonale Kollokation '' ist eigentlich ein Kiirzel; etwas lgnger, dafiir aber aufschluheicher, ist die Bezeichnung ,,Kollokation rnit orthogonalen Polynomen ", die also die Rolle der Naherungsfunktionen iibernehmen. Es steckt mehr dahinter als nur eine systematische Art, ilber ihre Nullstellen die Stiitzstellen festzulegen: Vor allem liefern die orthogonalen Polynome optimale Quadraturformeln, also in gewissem Sinne die genauesten Niiherungen fiir Integrale iiber den fraglichen Bereich. Das ist auch in der Reaktionstechnik wichtig, man denke nur an den iiber den Radius gemittelten Umsatz im Stromungsrohr oder - vielleicht noch bedeutsamer - an den Nutzungsgrad von Katalysatorpartikeln. Welche Naherungsfunktion man wahlt, hangt von der Modellgleichung ab. Wir beschranken uns hier auf Probleme, bei denen die Losung fiir den Bereich 0 5 2 5 1 gesucht ist und symmetrisch um 2 = 0 liegen sol1 - das ist der Fall bei dem FBR mit radialer Dispersion; eine mbgliche Naherungsfunktion fiir die iiblichen Geometrien Platte, Zylinder und Kugel ist
5.4 FBR mit radialer Dispersion
225
(5.105) Die Polynome Pi sind gegeben durch
wobei b = 0, 1 , 2 filr die genannten Geometrien ist. Dieser Naherungsansatz erzeugt eine Lbsung, die symmetrisch zu x = 0 ist und damit die Randbedingung = 0 erfiillt, und die filr x = 1 die Anpassung an die dortige Randbedingung erlaubt. Wir k6nnen den Nhherungsansatz, dieses Polynom in x2,vereinfacht schreiben als
(5.107) An den Kollokationspunkten SOU diese Funktion die PDGl genau erfiillen, also ohne Rest, ohne Residuum - das ist das Wesen der Kollokationsmethoden; aus dieser Forderung lassen sich die Koeffizienten di bestimmen, wenn man die Naherungsfunktion in die PDGl einsetzt. Wir mbchten aber, wie oben schon angedeutet, die Lbsung nicht durch die Koeffizienten di angeben, sondern durch die Werte der abhlngigen Variablen y an den N inneren Kollokationspunkten xj und dem Randpunkt 1. Wir nehmen dazu die vorige Gleichung an diesen Stellen und schreiben sie zunlchst in Matrixform: Y = Q ~
(5.108)
~3"'.
( Q ist also hier eine ((N+1), (N+l))-Matrix, wobei Yj = ~ ( x j ) , Q j i = das sei noch einmal hervorgehoben.) Die ersten und zweiten Ableitungen von y nach x an den Kollokationsstellen xj lassen sich nun leicht angeben: yx = Cd = CQ-'y = Ay
mit (yx)j = ( % ) 5 j ,
Cji =
(5.109)
dx2'-2
(T)xj = (22 - 2 ) q 3 , und
yxx = Dd = DQ-'y = By
(5.110)
226 5 Festbettreaktor - einphasige Modelle
N+l
"1
(5.111) lassen sich exakt berechnen fur Funktionen f, die Polynome vom Grad 2N in x2 sind, vorausgesetzt, die inneren Kollokationspunkte sind die Wurzeln der Polynome PN(x')mit w = 1 - x2 in G1. (5.106):
(5.112) also
WQ
=f,
W = fQ-'
(5.113)
Die Berechnung der Nullstellen der Polynome sowie der Matrizen A, B und W ist mit MATLAB elegant durchzufiihren, wie auf der Hand liegt. Die benotigten Polynome finden wir in der Extended Symbolic Math Toolbox (Problem 5.5.12); wer die nicht besitzt und auch keinen Zugang zu MAPLE, MATHEMATICA oder entsprechenden symbolischen Programmen hat, findet die Nullstellen in Finlayson [20] oder bei Stroud und Secrest [21] oder - die filr das FBR-Problem - in dem Datenfile JACOBI-NULL.MAT. Mit dem Vektor der Nullstellen, also den inneren Kollokationspunkten, kann man die Matrizen A, B, Q und W berechnen (Problem 5.5.13).
5.5 5.5.1
Probleme und Losungen Aufstellen der Stofbilanzen fur die katalytische Methanisierung im isothermen FBR (*)
Die Methanisierung von Synthesegas sei kinetisch durch die folgenden drei Reaktionen beschrieben:
cO+3H2 C02 4H2 CO+H20
+
CH4+H20, r1 = r l ( x ) CH4 2H20, 7-2 = r2(x) 2 C02+H2, ~3 = r 3 ( x )
--t
-+
+
(5.114) (5.115) (5.116)
Es sol1 die hinreichende Anzahl von Stofiilanzen formuliert werden (fiir das einfachste Model1 eines FBR) , aus denen sich die Konzentrationsprofile aller Komponenten berechnen lassen.
5.5 Problerne und Ldsungen
227
Losungsvorschlag Wir kbnnen das File STOICH4 verwenden (s. a. Abschnitt 3.4.2); Schliisselkomponenten seien CO und CH4: s=str2mat( 'CO', 'CH4','H2', ' H20','C02'); NR=[-1 -1 Oil 0 1;-31 -4;l-1 2;O 1-11; stoich4
CO + 3 H2 CH4 + H20 CO + H20 H2 + C02 4 H2 + C02 CH4 + 2 H20 Stoechiometrische Gleichungen H2 + C02 = CO + H20 4 H2 + C02 = CH4 + 2 H20
NS NS = 1 0 0 1 -1 -4
1 2 -1 -1 Wir benotigen noch die Matrizen (bzw. Vektoren) sT, N N - s , ~NS,R , und S :;
NS); N=5;S=2; N N -SS=NS( N-S:N ,:) NSR=NR( l:S,:) sRT=surn( NR)
sT=surn(
Damit haben wir alle stbchiometrischen Parameter fiir die drei Gleichungen (5.18) bis (5.20) zusammen.
5.5.2
Gleichgewichtsberechnungen durch Losen von Reaktorgleichungen bei groi3er Verweilzeit (*)
Die Berechnung von Simultangleichgewichten,so wie sie im Problem 3.4.8 nach einer iiblichen Methode durchgefiihrt wurde, erfordert die Lbsung eines nichtlinearen Gleichungssystems; das kann besonders bei hoheren Dimensionen Schwierigkeiten bereiten. Eine bedenkenswerte Alternative ist, Gleichgewichte so zu
228
5 Festbettreaktor - einphasige Modelle
berechnen, wie sie sich in einem Reaktor bei gentigend langer Verweilzeit einstellen: Man geht von einem Komponentengemisch aus und berechnet die Endzusammensetzung in einem geeigneten Reaktor mit Hilfe einer Massenwirkungskinetik; das fiihrt z. B. im BR oder im (idealen) FBR auf ein DG1-System. Am Beispiel der katalytischen Dampfspaltung von Methan zu Synthesegas sei diese Methode erprobt; die Bedingungen kbnnen aus dem Problem 3.4.7 iibernommen werden, die Daten zur Gleichgewichtsberechnung aus SYNGA-GL. Losungsvorschlag Im Prinzip kbnnen wir uns orientieren an den Programmen, die im SIMULINKModel1 EXPUNIT:! (Abschnitt 3.1.3) zur Berechnung des Reaktors benutzt worden sind; allerdings erschweren Fehlergeneratoren und einige andere Besonderheiten dort etwas die Ubersichtlichkeit. Wir schreiben deshalb besser ein neues Treiberprogramm fiir die beiden UPS SYSGAODE und S Y N G A K I N , diese beiden konnen wir iibernehmen und sehen sie uns deshalb im Ausdruck an: SYNGAODE
function dx = syngaode(t,x) global uOc0 xOs xOne NS NR nk ns T nues nuer
uc=uOcO*( l-nues'*xOs)/( I-nues'*x); xne=( uOcO*xOne+NS( ns+l:nk,:)*( uc*x-uOcO*xOs))/uc; rate=synga kin( [x;xne]); dx=(NR( l:ns,:)-x*nuer')*rate/uc;
Die beiden ersten ausftihrbaren Anweisungen berechnen die Gesamtstromdichte und die Molanteile der Nichtschlilsselkomponenten, so wie es im Abschnitt 5.1 beschrieben und im vorhergehenden Problem bereits angewendet wurde; nues entspricht also sT, nk bezeichnet ausnahmsweise statt nc die Anzahl der Komponenten. (Als Schltisselkomponenten wurden CH4 und C02 gew%hlt, als Nicht-Schhsselkomponenten H20, CO und H2; in dieser Reihenfolge ist beziffert.) Dann folgt der Aufruf des Programms S Y N G A K I N , das die Massenwirkungskinetik fiir die beiden Reaktionen bereitstellt, die den stbchiometrischen Gleichungen entsprechen: SYNGAKIN
function rate = syngakin(x) global T p Kx k10=0.5e-O3*exp( 15800/8.314/(850+273.16))*p; kl=k10*exp(-15800/8.314/T); k2=5*kl; KCH4=1;KH20=.5;KCO=.3; r( l)=kl*p*(x( 1)-Kx( 1)*~(4)*x(5) 3 / ~ ( 3 ) ) ; r( l)=r( 1)/(1+KCH4*p*x( l)+KH2O*p*x(3)+KCO*p*x(4)); r(2)=k2*p*(x(4)-1/Kx(2)*~(2)*~(5)/~(3)); r(2)=r(2)/( l+KCH4*p*x( l)+KH2O*p*x(3)+KCO*p*x(4));
5.5 Probleme und Ldsungen
229
rate=r' ;
Die Massenwirkungskinetik ist in den Zahlern enthalten; die Nenner k6nnten auch weggelassen werden, sie machen die Kinetik im Hinblick auf endliche Verweilzeiten etwas realistischer fur den Einsatz in EXPUNIT2. Das Treiberprogramm md3 im wesentlichen die Gleichgewichtskonstanten bereitstellen; Vorlage kunnte SYNGA-GL aus Kap. 3 sein: SYNGA-
GL-KIN
function xnass = synga-GI-kin(u) %u enthalt NY, N,", Ternperatur T (in "C), Druck p, Schiitthohe L %m-file fuer syngas-Gleichgewicht
% Berechnet die Ausgangskonzentrationen bei der kat. Dampf% spaitung. lsothermer Reaktor. global uOc0 xOs xOne NS NR nk ns T nues nuer global T p Kx % ne number of elements = nk - ns % nk number of components % ns number of stoichiornetric eqs % Flr Flaeche Reaktor %String fuer stoechiornetrische Matrix: %Sp=['H20 CO H2 CH4 CO2']; %Numerierung CH4 C02 H 2 0 CO H2 if u(3) < 600 error('Temperatur zu tief (sol1 > 600 "C)') else
%Stbchiometrie nk=5;ns=2; NS=[1 0;O 1;l -1;-1-1;-3 13; NR=[-l 0;O1;-1-1;l-1;3 11; nues=[-2;O];nuer=-nues; %Gleichgewicht, siehe auch Abschnitt 3.2 und 3.4.8 mit synga-Gl% CPVAP( 1,1:4)=[ 1.925E+1 5.213E-2 1.197E-5 -1.132E-83 ; DELHF(1) = -7.490E+4; DELGF(1) = -5.087E+4; CPVAP(2,1:4)=[ 1.980E+ 17.344E-2 -5.602E-5 1.715E-81; DELHF(2) = -3.938E+5; DELGF(2) = -3.946E+5; CPVAP(3,1:4) = [ 3.224E+1 1.924E-3 1.055E-5 -3.596E-93; DELHF(3)= -2.420E+5; DELGF(3)= -2.288E+5; CPVAP(4,1:4)=[ 3.087E+1 -1.285E-2 2.789E-5 -1.272E-83; D E LHF(4) = - 1.106E+5 ; DELGF(4)= -1.374E+5; CPVAP(5,1:4)=( 2.714E+l 9.274E-3 -1.381E-5 7.645E-9 1; DELHF(5)=O.O; DELGF(5)= 0.0;
230 5 Festbettreaktor - einphasige Modelle TB=~~~.~~;TB~=TB*TB;TB~=TTB~*TB;TB~=TB~*TB; dela =NS' * C PVAP( :,1) ;del b= NS' * C PVAP( :,2) ; delc=NS'*CPVAP( :,3);deld=NS'*CPVAP(:,4); delh298=NS'*DELHF'; delg298=NS'*DELGF'; del hO=del h298-dela*TB-.5*delb*TB2.. . -1/3*delc*TB3-.25*deId*TB4; I=(delg298-del hO+dela*TB*log(TB)+O.5*del b*TB2.. . +1/6*delc*TB3+1/12*deld*TB4)/TB;
T=U(~}+~~~.I~;T~=T*T;T~=T~*T;T~=T~*T; delg=del hO-dela*T*log(T)-. 5*del b*T2.. . -1/6*delc*T3-1/12*deId*T4+1*T; RG=8.314; p=u(4); Ka=exp(-delg/RG/T); Kx=Ka.*(p*ones( ns, 1)).^(-nues); %Eingangs-Stromdichte uOcO=sum(u( 1:2));%/FIr; %Eingangs-Molanteile xOs=[u( l)/sum( u( 1:2));0]; xOne=[u( 2)/sum( u( 1:2));O;O]; xo=xos; L=u( 5); [t,xt]=odel5s( 'syngaode', [0,L] ,xO); %Berechnung der Ausgangszusammensetzung [ze,ko]=size(xt); x=xt(ze,:); x=x ; uc=uOcO*( I-nues'*xOs)/( 1-nues'*x); xne=( uOcO*xOne+NS( ns+l:n k,:)*( uc*x-uOcO*xOs))/uc;
xnass=[x;xne]; end
Wir kisnnen jetzt mit folgender Argumentenliste aufrufen: xnass=synga-GI-
kin( [2/22400* le-03;4*2/22400*le-03;850;10;3])
xnass =
4.6557e-003 5.5374e-002 3.8184e-001 8.4158e-002 4.7397e-001 1st das Gleichgewicht erreicht? Das kbnnen wir durch Vergleich mit K, uberprufen:
5.5 Probleme und Losungen
231
global NS prod(xnass. NS( :,l)) ans =
1.9839e-001 prod(xnass. ^NS(:,2))
ans = 8.1672e-001 global Kx Kx
Kx = 1.9840e-001 8.1672e-001 Also genau genug!
5.5.3
Oxidation von 0-Xylol im idealen FBR (*)
For die folgenden Reaktionsbedingungen sollen die axialen Profile der Temperatur und der Konzentration von 0-Xylol im eindimensionalen, einphasigen idealen
FBR berechnet werden: py = 0.01, 0.0125, 0.015, 0.016, 0.017, 0.0175, 0.0178, 0.018, 0.019 bar (Eingangs-Partialdruck von 0-Xylol)
k = 1.144e5exp(-13636/T) kmol/kg(Kat) s bar2 Gesamtdruck p = 1 bar 02-Partialdruck p! = 0.211 bar Eingangstemperatur To = 625 K Umgebungstemperatur T" = 625 K Schuttdichte des Katalysators pKat = 1300 kg/m3 Molwarme Gas C, = 30.8 kJ/kmol K Reaktionsenthalpie A H = - 1.285e6 kJ/kmol Warmedurchgangskoeffizient h = 96.2 W/m2 K Rohrdurchmesser dt = 0.0254 m Schiittlange L = 3 m Querschnittsbelastung u p = 1.293 kg/m2 s
Losungsvorschlag Wir stellen alle Werte in einem Datenfile zusammen und berechnen dort auch die Parameter der dimensionslos gemachten Stoff- und Enthalpiebilanzen: FBRDAT
global p02 rhokat Luc hLurcp StL4dt Tu % Daten fuer das 0-Xylol-Beispiel. Eindimensionaler, % einphasiger, nichtisothermer FBR. Zu verwenden mit % fbrkin(x1,T)
L=3;
%rn
232 5 Festbettreaktor
-
einphasige Modelle
dt=0.0254; R=O.O254/2;%m;Rohrradius
pL=101325;%Pa; Ausgangsdruck p02=0.211; %bar RG=83 14; T0=625; %K TU=625 ; Tmax=1000;Trnin=300; cO=pL/RG/273.2; uO=l;%rn/s; Stromunggeschwindigkeit am Eingang p0=.015; xentspricht hier dem Partialdruck in bar x10=.015;%Eingangs-Molenbruch von Xylol rhokat =1300; % kg/m3, Sc huettdic ht e rhoG=1.293; % kg/m3 cpG=1.046; % kJ/kg/K delh=-1285400; % kJ/kmol h=96.2; % W/m2 K St= h/uO/rhoG/cpG*le-03; StL4dt=St*L*4/dt; Luc=L/u0/c0; turcp=L/uO/rhoG/cpG; hLurcp=(-del h)*Lurcp;
Dann schreiben wir das U P far den DG1-Loser: FBRKIN
function dx = fbrkin(z,x) YO Bilanzgln fuer das o-Xylol-Beispiel. Eindimensionaler, % einphasiger, nichtisotherrner FBR. Zu verwenden mit % fbrdat. global p02 rhokat Luc hLurcp StL4dt Tu % St=h/uO/rhoG/cpG*le-03; % StL4dt=St*L*4/dt; % Luc=L/u0/c0; % Lurcp=L/uO/rhoG/cpG; % hLurcp=(-delh)*Lurcp; xll=x( l);TI=x(2); kl=l.l44e+05*exp(-l3636/Tl); % Geschw.-Konstante, krnol/kg/s/bar^2 rl=kl*rhokat*po2*xll; R1=-rl*Luc; Ql=rl*hLurcp; QlStZQ1-St L4dt*( TI-Tu); dx=[Rl;QlSt];
Die nlchsten Anweisungen starten die Rechnung und geben die Ergebnisse grafisch aus:
5.5 Probleme und Ltlsungen 233
fbrdat x10=0.015; % Standardwert in fbrdat [z,x]=ode45('fbrkin',[O,11,[xlO;TO]); subplot(1,2,1) plot(z,x(:2)) subplot(l,2,2) plot(z,x(:J ) )
0.0040
0.5 z/L
Abbildung 5.8: T- und s-Verlauf von 0-Xylol im FBR.
Das Durchrechnen der anderen Eingangskonzentrationen zeigt ab einem bestimmten Wert deutlich eine parametrische Empfindlichkeit.
5.5.4
Radiale Temperaturprofile im FBR in parabolischer Niiherung (*)
Fiir das Beispiel der eXylol-Oxidation in Problem 5.5.3 sollen die radialen TProfile in parabolischer Nlherung berechnet werden; zur Demonstration geniigt es, das axiale 2'-Profil in der Rohrmitte mit dem an der Stelle T = T* zu vergleichen. Fiir die effektive radiale Warmeleitfahigkeit A, kann bei den Reaktionsbedingungen ein Wert von 0.77 W/(m K) angesetzt werden; T, sei gleich TU.
Losungsvorschlag Wir miissen zuerst Problem 5.5.3 bearbeiten und das erhaltene T-Profil auf T = r* beziehen. Dann ktinnen wir aus dem Warmedurchgangskoeffizienten
234 5 Festbettreaktor - einphasige Modelle h und aus A, zungchst den Wiirmeltbergangskoeffizienten a n der Wand, a,, und dann die Biot-Zahl Bi berechnen; G1. (5.34) liefert dann das gewiinschte T-Profil in der Rohrachse. h=96e-O3;lam bdar=0.77e-03; alphaw=h*( l-dt/2/lambdar*h); Bi=alphaw*dt/2/lambdar; Trstar=x(:,2); %x(:,2) aus P 5.5.3 TrO=Trstar+(Trstar-Tu)/( 1+4/Bi); plot(z,x( :,2),z,TrO)
I Abbildung 5.9: Temperaturprofile im o-Xylol-Beispiel. - T = 0, - -
T
= T*
Am hot spot betriigt der Unterschied immerhin ca. 8 K ; es ist fraglich, ob man sich mit dem eindimensionalen Temperaturprofil begniigen sollte.
5.5.5
SIMULINK-Model1 fur den FBR mit beliebigen Reaktionen (***, nicht SE)
Die allgemeinen Bilanzgleichungen filr den idealen FBR sollen so programmiert werden, dai? sie ftir beliebige Reaktionen benutzt werden k6nnen. Das ist eine Aufgabe, die man auf sehr viele verschiedene Weisen angehen kann. Zungchst muB man entscheiden, ob sich der Aufwand ilberhaupt lohnt. Allgemein einsetzbare Programme werden leicht umstgndlich: Sie benbtigen vielleicht viele Schalter, oder rechnen auch einfache Fiille mit den geballten allgemeinen Beziehungen, wo stark vereinfachte, zugeschnittene Programme geniigen wilrden - sie lassen sich kurz gesagt hiiufig nur schwerfdlig bedienen.
5.5 Probleme und Lasungen
235
Wir werden schnell sehen, vor wieviele Entscheidungen wir gestellt werden, die oft gar nicht einfach zu treffen sind. Losungsvorschlag Die erste Entscheidung ftihrt uns zu Standardfragen dieses Buches: MATLABoder SIMULINK-Programm, und wenn SIMULINK, dann mit C MEX-file Sfunctions oder so weit wie mbglich ohne? Oder mit der Kurzfassung dieser F'ragen: schnell oder bequem? Wir entscheiden uns hier f t h schnell, aus verschiedenen Griinden, z. B.: 0
der Ubungseffekt , ein etwas grbfleres SIMULINK-Blockschaltbild zu entwerfen und dabei Matrizentechniken in SIMULINK anzuwenden
0
Schnelligkeit fiir grbi3ere Reaktionssysteme oder komplizierte Kinetik
0
Schnelligkeit fiir Optimierungen, ein besonders schwerwiegender Grund
0
die bequeme OnlineVisualisierung.
Die Gleichungen, die wir codieren miissen, sind die Bilanzgleichungen zusammen mit den stbchiometrischen Berechnungen; die Bilanzgleichungen machen wir dimensionslos und fassen auch einige Parameter zu dimensionslosen Gruppen zusammen. Stoffbilanz: (5.117) Dazu kommen die stochiometrischen Beziehungen Gln. (5.18) und (5.19), aus denen sich die Gesamt-Molstromdichte uc und die Molanteile XN-S der NichtSchliisselkomponenten ergeben. Enthalpiebilanz:
(5,118) Sollen wir im Programm einen Schalter einfiigen, um Reaktionen ohne Molzahltinderungen getrennt rechnen zu kbnnen, oder nehmen wir in Kauf, in solchen Fallen bei jedem Integrationsschritt ein uc zu berechnen, das sich gar nicht tindert? Sollen wir einen Schalter einfiigen, um zwischen konstanter und nicht konstanter spezifischer Warme wiihlen zu kbnnen? Was ist, wenn wir den Druckabfall nicht vernachlasigen kbnnen? Die Ra ge nach dem Druckabfall ist besonders heikel: Das Ubliche Vorgehen, den Druckabfall ilber die Ergun-Formel (oder eine andere einschlggige) integral abzuschatzen, erfordert, einen festen Wert f t h die veranderliche Gasdichte
236 5 Festbettreaktor - einphasige Modelle anzunehmen - den am Ausgang, den am Eingang des Reaktors, welcher von beiden vorgegeben ist, oder iterativ das arithmetische Mittel zwischen diesen beiden? Bei groBeren Druckverlusten ist das aber kaum zu vertreten; dann sollte man mit einer differentiellen Druckverlust-Gleichung, also mit einer zusatzlichen DG1 rechnen. Allerdings: Wenn der Druck am Reaktorausgang vorgegeben ist, handelt man sich auf diese Weise ein Randwertproblem ein, und das ganze Losungsverfahren wird um einige Grade schwieriger. Die kinetischen Gleichungen wird man von Fall zu Fall in einem eigenen U P codieren. So entsteht der Vorschlag eines gar nicht besonders komplizierten SIMULINK-Modells, das in Abb. 5.10 wiedergegeben ist:
Visualisierung Archivierung d(xS,T)/d(z/L)
Nichtisothermer idealer PFR Datenfile: pfral1gdat.m
Abbildung 5.10: SIMULINK-Modell.
Ein Blick in die Subsysteme im SIMULINK-Model1PFRALLG.MDL zeigt, wie man die SIMULINK-Blocke mat^ Gain, Dot Product oder Product fiir VektorMatrix-Operationen einsetzen kann; langere Ausdriicke, wie hier die kinetischen, sind wieder a m besten in Fcn-Blljcken aufgehoben. Die F'ragen, wie wir mit u c , cp und dem Druckverlust umgehen sollen, ist filr uc im ersten Subsystem nach dem Integrator gezeigt: Die Lbsung bringt ein Enabled-Block, der entweder uc berechnet oder seinen Anfangswert uoco ausgibt. Entsprechend kljnnte man auch mit cp verfahren; darauf wurde hier verzichtet. Das Problem rnit der Berechnung eines Druckprofils, wenn der Ausgangsdruck am Reaktor gegeben ist, l a t sich durch Iteration losen: Man ersetzt den Konstantenblock PO durch eine Schaltung, die die differentielle Druckverlustgleichung lbst, und startet das SIMULINK-Modell mehrmals rnit verschiedenen Eingangsdrikken, bis man den vorgegebenen Ausgangsdruck getroffen hat; dieses sog. SchuBverfahren ist eine haufig gewahlte Methode, um Randwert-DGls
5.5 Probleme und Ldsungen
237
zu lbsen; mehr dariiber im Abschnitt 5.2.2. Wenn die Anspriiche geringer sind, setzt man die Druckverlustgleichung integral an und lbst sie mit konstanter Dichte bzw. konstantem Druck, htrufig mit dem arithmetischen Mittelwert zwischen Ein- und Ausgang - allerdings kennt man einen der beiden Werte nicht immer von vornherein und m d sich dann mit dem vorgegebenen Wert begniigen, was nicht zur Genauigkeit beitrtigt; auch hier kann man allerdings iterieren. Die Wahl zwischen den genannten drei Mbglichkeiten - konstanter Druck, linearer Druckabfall und differentieller Druckabfall - ist im Subsystem ,,Druck'' mbglich iiber eine Kombination von Enabled- und Multaport Switch-Blbcken. In der differentiellen Druckverlustgleichung kbnnte man auch noch die Temperaturabhangigkeit der Viskositat bertkksichtigen. Allerdings kann man davon ausgehen, daO sie bei Gasen nicht sehr ausgepragt ist, daf3 der Temperaturbereich in einem nichtisothermen Festbettreaktor i. a. nicht sehr grof3 ist und daf3 die Ergun-Gleichung halbempirisch ist , also keine zu hohe Genauigkeit fordern kann. Es bleibt noch zu erwtrhnen: Zur Erinnerung fiir den Benutzer gibt eine callback routine SETTEST beim Starten die Meldung ,,Parameter speichern!!! " im MATLAB-Fenster aus. Ein Rechenlauf mit den in PFRALLGDAT eingestellten Parametern zeigt, d d der Druckabfall keineswegs zu vernachltissigen ist , nicht linear ist und mit Recht differentiell angesetzt wurde (Schalter switch-dpdz auf 1, switch-port auf 3). Ganz genau wird der Druck p~ am Reaktorende noch nicht getroffen; der Anfangsdruck po m a t e also noch iteriert werden. P F R A L L G D AT
Rea ktor**** ** ** **** **** **** ** **** ** ** ** dp=0.003; %m Partikeldrm dt=0.0254; %m Rohrdrm h=96.2; % W/m2 K Waermedurchgangskoeffizient L=3; %m Schuettlaenge rhokat=1300; % kg/m3, Schuettdichte epsi=0.4;
Oo/
........................................ %Reaktion ..............................
cpG=1.046; % kJ/kg/K delh=-1285400; % kJ/kmol E=113369704; k10=1.144e+05; N=2; %Anzahl der Komponenten R = l ; %Anzahl der Reaktionen RG=8314; S=l; %Anzahl der stoechiometrischen Gleichungen rhoG=1.293; % kg/m3 etaG=33e-06; %kg/m s MW=29;
..................................
238 5 Festbettreaktor - einphasige Modelle %Bet riebsbedi ngungen************* p0=101325; pL=101325; %p02=0.211; %bar x02=0.2 11; T0=625; %K Tu=625; uO=l; xO=[ .015;0];
**
Q/o********************************* pO=1.6*pL;
..................................
%Zusarnrnengesetzte Parameter******* cO=pL/RG/273.2; EdR= E/ RG; EdR= 13636; %kJ/ krnol klOs=klO*rhokat*xo2; Luc=L/ uo/co; Lurcp=L/uO/rhoG/cpG; St=h/uO/rhoG/cpG*le-03; StL4dt=St*L*4/dt; uoco=uo*co;
s=str2rnat( 'A','B'); N R=[-1; 11; stoich4 sT=surn( NS);s=sT'; sRT=su rn(N R); NN-SS=NS(S+l:N,:); NSR=NR( l:S,:); uocoxso=uo*co*xo(
1:s);
~OcOl_sTxSO=uO*cO*( l-sT*xO( 1:s)); uOcOxN SO=uO*cO*xO(S+l:N);
/o .................................
0
O/oSchalter**************************
switch-uc=-1; switch_port=3; % switch-delp=-1; % switch-dpdz=l; pset=(pO+pL)/2; % oder pL, welcher vorgegeben ist, oder Mittel us=( uO*cO/pset*RG*TO); delp=150*etaG*us/dp^2*( 1-epsi) -2; delp=delpt1.75*u0*c0*MW*us/dpY( 1-epsi);
delp=-delp*L/epsi -3; del prel=del p/ p0;
...................................
5.5 Probleme und Lasungen
5.5.6
239
EinfluB axialer Dispersion (**)
Bei welchen Reaktionsbedingungen machen sich beim o-Xylol-Beispiel (Problem 5.5.3 mit Datenfile FBRDAT) axiale Dispersionsprozesse bemerkbar? Zur Vereinfachung sei nur der isotherme Fall betrachtet. Es konnen folgende Teilaufgaben bearbeitet werden: a) Abschatzung fiber Kriterien b) Abschtitzung iiber Lirsung der Bilanzgleichung ohne axiale Dispersion c) L6sung mit der Schu5methode d) Losung mit der FVM e) Losung mit der Mehrzielmethode f ) Analytische L6sung zum Vergleich. Losungsvorschlag a) Nach den Daten in FBRDAT ist Bo = 2000, also kein Einflu5 der axialen Dispersion zu erwarten, solange uber die gesamte Lange nennenswerte Konzentrationen vorliegen. Erst bei Bo < ca.100 ist mit merklichem Einflu5 zu rechnen. Die Temperatur und in Folge die Reaktionsgeschwindigkeit milssen also so hoch sein, daB das Konzentrationsprofil iiber eine Lange von mindestens L/20 = 0.15 m auf praktisch Null abfiillt. b) Zur Abschatzung rechnet man die Konzentrationsprofile bei verschiedenen Temperaturen zunachst ohne axiale Dispersion aus (XYLISO). c) Man wandelt die PDGl 2. Ordnung in zwei PDGls 1. Ordnung um, lost also - fur eine geeignete Temperatur nach a) und b) - das Gleichungssystem dXl =
(5.119) (21 +RYx2)Bo dz dx2 = 21 (5.120) dz mit RY = -m L k l p K a t p o z nach dem Schuherfahren. Man integriert (,,schie5t") von z = 1 ( L = 0.15 m) nach z = 0, da die Integration in anderer Richtung notorisch instabil ist, selbst mit exakten Randbedingungen (bitte ausprobieren!). Bei z = 1 ist rl = 0; der Wert von 2 2 dort wird so bestimmt, daO die Randbedingung bei z = 0 erfullt ist: z=o:
r;-22+-= 2 10 Bo
(5.121)
Die linke Seite der Gleichung ist eine Funktion von 2 2 an der Stelle z = 1, deren Nullstelle gefunden .werden soll. In MATLAB kann das die Routine fzero besorgen (IRAXZERO mit dem UP IRAXOFUN). IRAXZERO
% Loest das Zweipunkt-Randwert-Problem des isothermen IR mit AXialer % Dispersion durch Suche der Nullstelle der Anfangs-Randbedingung
240 5 Festbettreaktor - einphasige Modelle
% mit dem Matlab-Programm fZERO. UP fuer fzero ist irax0fun; die % erforderlichen Daten sind in iraxdat0. xa=fzero( 'iraxOfun' ,0); [LX] =ode45( 'iraxkin', [O 1 1,[O;xa]); [m,n]=size(x); zi=O:l/(m-1): 1; xi=interpl(z,x,zi); xip=xi( m:-l:l,:) ;Xzum Plotten wird die Reihenfolge der berechneten Werte
umgekehrt % plot(zi ,xip(: '2)) %Die Schriftgrbfie wird erhbht; zusatzlich werden Parameterwerte ins Bild eingefilgt% set(gca,'FontSize'.16) text(. 5, .9*xip( 1,2), [ 'L = num2str( L) ,' m'] ,' Fontsize', 16) text ( .5,,8*xi p( 1,2), [' u0 = num2str( u0) , ' m/s'] ,' FontSize' ,16) text(.5,.7*xip(l,2),['x10 = ',num2str(xOzu)],'FontSize',16) text(.5,.6*xip(1,2),['Bo= ',num2str(Bo)],'FontSize',l6) I,
I ,
ylabel('Molanteil','FontSize',l6) xlabel('z / L','FontSize',l6)
IRAXOFUN function y = iraxOfun(x0) global xOzu Bo [z,x]=ode45( 'iraxkin', [0 11,[0 xO]); [m,n]=size( x) ; y=xOzu-x( m,2)-x( m,1)/Bo;
Man kbnnte jetzt noch die StrGmungsgeschwindigkeit verkleinern, was den Einflufi der axialen Dispersion versttirken wiirde. Fiir eine Abschtitzung darf man bis Re, = 1 gehen, ohne zu stark von Pe = 2 abzuweichen; man kann also im Rahmen des Beispiels uo um einen Faktor 10 erniedrigen. d ) Wir benutzen die Stofiilanz in der Form der G1. (5.35) und die RBs nach G1. (5.37). Wie schon in der vorstehenden Teilaufgabe c) konnen wir mit konstantem u c rechnen; fiir R1 gilt wiederum RY*xl mit RY = -&klpKatpo2:
(5.122) z
= 0:
X: = X I
-
--,1 dxl Bo clz
z = 1:
dXl =O
dz
(5.123)
Zur Vereinfachung der Schreibweise ist wieder z := f gesetzt. Wir kGnnen nun die Koeffizienten besetzen, die im Abschnitt 5.4.2 fiir die FVM angegeben sind; das Ergebnis wird gleich in codierter Form gebracht, die Parameternamen des Programms sollten sich unschwer den Koeffizienten der diskretisierten Gleichungen im Abschnitt 5.4.2 zuordnen lassen:
5.5 Probleme und Ldsungen
241
IRAXISO
AP=(l-O.l*Bo*dz)^5;A(IPI) ifAP .01 iter=l;
end end Ta It =To1 d ; To1d =T ; end
Die Linearisierung der Quellterme sind im UP
IRAXADKI
codiert:
IRAXADKI
function Y = iraxadki(x1,T) global c0 cpG delh L Nr p02 rhoG rhokat Tmax Tmin u0 R1 phils global Q1 phi2s k l Nz
% IRAXAD.M, 1RAXDAT.M und 1RAXADKI.M berechnen das T- und % x-Profil in einem ADiabatischen IdealRohr mit AXlaler Dispersion. % Die DATen in IRAXDAT sind fuer die Oxidation von 0-Xylol in einem % FBR. IRAXADKI berechnet aus KInetischen Daten die Quellterme Sc % und Sp fuer die Patankar-Methode der finiten Bilanzvolumina. % Die Ergebnisse sind in den (Nz+l,l)-Vektoren xl und T . x l = x l ' ;T=T';
kl=l.l44e+O5*exp(-13636./T); % Geschw.-Konstante, kmol/kg/s/bar"2
5.5 Probleme und Losungen rl=kl*rhokat*po2.*xl; R1=-rl* L/ uO/cO; Ql=rl*(-del h)*L/uO/rhoG]cpG; phils=zeros( l,Nz+l);%entspricht phi2s=Trnax*ones( 1,Nz+l); Scl= R1.* p hi 1s./(phi ls-xl) ; Sc2=Q 1.* phi2s./( phi2s-T); S p l=-R1 ./(phi ls-xl) ; Sp2=-Q1./( phi2s-T); Y=[Scl;Spl;Sc2;Sp2];
249
61
Sie kiinnen nun Rechenliiufe fiir verschiedene Werte von x10 und TO starten, auch Nz vertindern und eine gentigend feine Diskretisierung suchen (Test auf asymptotisches Erreichen eines Grenzwerts ftir das Profil oder ausgewtihlte Groaen, z. B. die x1 und T bei z = 0). Achten Sie darauf, da5 die adiabatische Temperaturerhohung nicht iiber Tmax hinausschieflen kann! In engen Grenzen kann man auch probeweise die Pe-Zahlen iindern.
5.5.9
FBR rnit periodischer Stromungsumkehr (**)
Eine schtidliche organische Verbindung in Luft soll katalytisch in einem adiabatischen FBR verbrannt werden. Die Reaktionsbedingungen sollen denen des o-Xylol-Beispiels entsprechen, die in der Datei IRAXDAT zusammengestellt sind. Wie wir schon aus den vorhergehenden Aufgaben wissen (konnen), wird bei Eingangsbedindungen von x10 = 0.0015 und TO = 625 K kein vollstiindiger Umsatz erreicht, wohl aber z. B. mit x10 = 0.004. Wenn man nun von x10 = 0.004 auf x10 = 0.0015 zuriickgeht, wird sich der Reaktor abktihlen, und es wird sich nach einiger Zeit wieder der zugehurige stationiire Zustand einstellen, also kein vollstandiger Umsatz; offenbar reicht der Energieinhalt fiir diesen Fall nicht aus, um die zugehiirige adiabatische Endtemperatur im Reaktor einzustellen. Man kann nun der allzu gro5en Abktihlung entgegenwirken, indem man jedesmal rechtzeitig die Stromungsrichtung umkehrt - das Itifit sich technisch durchaus bewerkstelligen. So erzeugt man eine hin und her wandernde Wtirmezone, in der sich auch bei der niedrigeren Eingangskonzentration der gesamte Schadstoff umsetzen kann. Diese Betriebsart soll modelliert werden. Es kbnnen dann auch andere Verhdtnisse untersucht werden, z. B.: Ein Abgas mit x10 =0.004 Schadstoff, das rnit 298 K anfiillt, wird zuntichst mit Fremdenergie auf 625 K Eingangstemperatur aufgeheizt, dann wird die Fremdenergie abgeschaltet.
Losungsvorschlag Wie man stationiire Profile im FBR mit axialer Dispersion berechnet, wurde schon im Problem 5.5.8 gezeigt. Diese Programmabfolge betten wir jetzt in eine Zeitschleife ein, die fiir vorgegebene Zeitschritte dt eine stationtire Zwischenl6sung iterativ berechnet, spiitestens bis ein neuer Zeitschritt keine signifikante Profiltinderung mehr bringt - dann ist die stationtire Liisung erreicht. Fur die
250 5 Festbettreaktor - einphasige Modelle Fahrweise mit wechselnder Stromungsrichtung warten wir nicht die endgiiltige stationtire Losung ab, sondern tindern die Str6mungsrichtung spiitestens, wenn der Schadstoff droht, durchzubrechen. In der Praxis wiirde man vielleicht einen Sensor benutzen; wir machen uns die Sache etwas einfacher und wechseln die Stromungsrichtung rechtzeitig nach einer bestimmten, durch Probieren gefundenen Anzahl von Zeitschritten. Das Umschalten iibernimmt ein kleines Steuerprogramm, IRAXCTRL, das durch einen Schalter (steu) aktiviert wird. Einige Grafik-Anweisungen erlauben, die entstehenden Profile zu verfolgen, auch die wandernden, wenn der Steuerparameter steu auf eins gesetzt ist. IRAXIN
eing='links ';%Steuerparameter fiir grafische Ausgabe h=gcf; axis([l Nz+l TO T0+200]) n=O;
aPO=aPOO*ones( l,Nz+l); zeit=O;
zeitv= [0] ;Tv= [Tanf] ; AP=(l-O.l*Bo*dz) - 5 ; APh=( l-O.l*Boh*dz) - 5 ; ifAP Um die Matrizen N und Ve (vautheta) zu besetzen, miissen die Probleme 7.3.3 und 7.3.4 gerechnet werden. Losungsvorschlag
Eigenwert-Eigenvektor-Zerlegungder Matrix N: [U,L]=eig( N)
U = 0.9645 -0.2641 0.2641 0.9645
L = 1.Oe-004 0.0009 0 0 0.3766
*
Damit konnen wir .r(l = UT 68 und die Ellipse 1/2C&& berechnen (bitte selbst ausfilhren; wenn erforderlich: Anleitung in [31]!). Korrelationsmatrix der Parameter nach den Gln. (7.9) und (7.10): D=(diag(vautheta)). A(-0.5); Corr= diag( D)*vautheta*diag(D)
1.0000 0.9812 0.9812 1.0000
7.3.6
Parameterschatzung in DGls (*)
(Dieses Problem f d t auf einer Vorlage in einem SIMUSOLV-Prospekt.) Das Flilssigphase-Reaktionssystem A + B ZC wurde in einem Batchreaktor bei konstantem Reaktionsvolumen kinetisch vermessen. Die Ergebnisse sind in Abb. 7.9 tabellarisch zusammengestellt und in TABC.MATgespeichert. Die Geschwindigkeitsgleichungensollen einer Elementarkinetik folgen. Zu ermitteln sind die drei Geschwindigkeitskonstanten k l , k2 und k3. Die ,,-1'' in Zeile 5, Spalte 2, SOU anzeigen, d d hier ein Meawert fehlt. Losungsvorschlag global park A0 t A B C load tabc AO=0.75; parkO= [0.300;0.300;0.0200]; %nach Vorlage tic;par=leastsq('tabcfun'.parkO);toc%fmins und TABCFUN-SE filr SE%
330 7 Planen und Auswerten reaktionskinetischer Experimente 2eit t 0 2 4 6 8 10
k A 0.75 0.266 0.105 -1 0.0095 0.00525
Kom,B 0 0.412 0.520 0.470 0.420 0.377
KcnzC 0
0.0479 0.148 0.216 0.329 0.357
Abbildung 7.9: Messwerte (aus einem SIMUSOLV-Prospekt). elapsed-time = 1.7970 Par
par = 0.5026 0.1036 0.0344
[t,y]=ode45('tabcdgI',[O,lO],[AO01); tm=0:2: 10; plot(t ,y,t,A@y(:,1)-y(: ,2),tm,A,'+', tm, B, '0',tm,C,'x') hold Current plot held axis( [0 10 0 0.751)
Das Ergebnis dieser Rechnung ist in Abb. 7.10 zu sehen. Wie das Programm TABCFUN (bzw. TABCFUN-SE) zeigt, werden die berechneten Werte in der Zielfunktion durch Lasen der DGls mit den aktuellen Werten der Parameter gewonnen; der fehlende MeBwert von A wird mit einem FeNer von Null bewertet, so d d der Rechengang nicht umgestellt werden muS; da die Anfangswerte als fehlerfrei angesehen werden, ist die erste Zeile im Fehlervektor f iiberfliissig (vorletzte und letzte Zeile in TABCFUN). TA BCF UN
function f = tabcfun(pa) global park A 0 t A B C park=pa; (tc,yc]=ode45( 'tabcdgl' ,[0,10],[A0;0]); yi=interpI(tc,yc,t,'spIine');
cC=A@yi(:, l)-yi(:,2); yic= [yi ,cC] ;
f=[A,B,C]-yic; f(4,1)=0; f( 1.:)=U;
7.3 Probleme und L6sungen 331
Abbildung 7.10: Meflwerte und Regressionskurven. -
+ A,
- - o B, . . . x C.
Zur Bewertung werden dieselben Gr6flen herangezogen wie in der Vorlage; sie konnen iiber die Sensitivitgtsgleichungen (Abschnitt 7.1.2) berechnet werden (dieser Teil der Aufgabe ist fur den Ungeubten schon als mittelschwer (**) einzuschatzen) : global dhdk dhdc
%dhdc entspricht
[I
ahlas in Abschnitt
7.1.2, dhdk entspricht
d hdc= ; dhdc=str2mat(dhdc,'[-k( l),O]'); dhdc=str2mat(dhdc,'[k( l),-k(2)]'); d hdk=[]; d hdk=str2rnat(dhdk,'[-c( 1),0,0]'); d hdk=str2rnat(d hdk,' [c( 1),-c( 2), AO-c( 1)-c( 2)]
ahlag%
I);
dhdk und dhdc wurden in einer fruheren Version mit einem Programm erzeugt, das jeweils eine Leerzeile voransetzte; um die weiteren Auswertungsprogramme nicht gndern zu mussen, wird diese Leerzeile beibehalten. park=[0.50774, 0.10376, 3.6412e-021;
Dies sind die Parameter aus der Vorlage; sie werden verwendet, um die dortigen Berechnungen kontrollieren zu konnen. N=tabcfun2(park); %NLherung fur Hessesche Matrix, s. G1.(7.3)% f=tabcfun(park);
332 7 Planen und Auswerten reaktionskinetischer Experimente e=f.*f; ss=sum(sum(e)); %Summe aller Abweichungsquadrate sq=ss/( 15-3); V=2*sq*inv( N);%Kovarianz-Matrix
%Standardabweichungen der Parameter: s=sqrt( diag(V)) S=
0.0123 0.0064 0.0159 sf=sum(f);
%[31],S. 200, G1.(7-16-6), equer nach G1.(7-16-4) se-esti
s5=s/5; sqS5=sqrt(S5);
%Standardabweichungen der Residuen: se -res=diag(sqS5) se-res =
0.0042 0.0097 0.0132
(Die Anweisungen zur Bewertung sind in der Datei mengefaBt.)
TABC-BEWERT
zusam-
Zum Vergleich die Standardabweichungen der Residuen aus dem SIMUSOLVProspekt: [4.186e03;9.745e-02;1.217e-021 Obwohl die Werte praktisch ilbereinstimmen, gibt es bei der Summe der Residuen eine Diskrepanz, die offenbar ein Fehler in dem Prospekt ist: sf
sf = -0.0019 -0.0189 -0.0109
Zum Vergleich die Werte in SIMUSOLV: -1.923e-03 -1.071e-02 -1.083e-03
Die Gesamtsumme der Residuen sol1 nach der Vorlage -2.36e-02 sein; das stimmt mit diesen angegeben Werten nicht:
7.3 Probleme und Losungen
333
surn([-1.923e-03-1.071e-02 -1.083e-031 ) ans =
-0.0137
Wenn filr den dritten Wert 0.0109 statt 1.083e-03 eingesetzt wird, entspricht die Summe der dort angegebenen von -2.36e-02; die Residuen von C ergeben in der Tat die Summe -0.0109: surn(f(:,3)) %=-4.561e-03+2.797e-03-1.851e-02+2.005e-02-1.071e-02 ans =
-0.0109
Bleibt der Unterschied in den Residuen fur B: Die Summe von B ist nach den eigenen Berechnungen gleich surn(f(:,2)) as=
-0.0189
und nicht -0.0107, so dai3 sich eine andere Gesamtsumme der Residuen als 2.36e-02 ergibt, niimlich surn(sf) ans =
-3.1703e-002
Die aufgezeigten Diskrepanzen legen den Verdacht nahe, dai3 die Werte in der Vorlage zumindest Druckfehler, wenn ilicht Rechenfehler enthalten.
7.3.7 Parameterschatzung in DGls mit der Mehrzielmethode (** *, nicht SE) Die Modellfunktion d2Y = p2y - (p2 + p 2 ) sin(px) dx2
(7.33)
mit den Anfangsbedingungen y(0) = 0,
y'(0) = 7r
(7.34)
und p = 60 sol1 ilber den Parameter p an Mef3werte angepa5t werden. Alternativ sollen auch die Ftandbedingungen Y(0) = Y(1) = 0
(7.35)
334
7 Planen und Auswerten reaktionskinetischer Experimente
benutzt werden. Verrauschte Meawerte erzeugen wir uns uber die analytische LSsung mit dem ,,wahren" Parameter p = 7r:
y = sin(7rz)
(7.36)
Losungsvorschlag global tfvek trnue yrnue par global mue tmue=O:. 1:1; %Meastellen for i = 1:11 yrnue(i)=sin(pi*trnue(i))+O.O5*randn; end
%Meawerte
Jetzt versuchen wir, den Parameter p durch Anpassung der Modellfunktion an die Meawerte zu bestimmen, wobei wir zuniichst die Anfangsbedingungen y(0) = 0, y'(0) = 7r nehmen. Als Stutzstellen fih die Mehrzielmethode whhlen wir die Meastellen, tfvek=tmue; OJoStutzstellen tfve k( 1)=[];
berilcksichtigen aber schon bei der Programmierung des UPS BOCKFCON fUr die Optimierroutine comtr, daa Me& und Stiitzstellen i. a. unterschiedlich sind. Als Startwerte an den Stutzstellen wahlen wir zunachst die ,,richtigen" Werte der analytischen LGsung, xpsO=[sin( pi*trnue'); pi*cos( pi*trnue'); 11;
und setzen sehr enge Grenzen filr diese Parameter. Der eigentliche Modellparameter (par) wird aber nur grob eingegrenzt. vlb=[-.l*ones( 11,1);-3.2*ones( 11,l);Ol; vub=[l. l*ones( 11,1);3.2*ones( 11,1);6.4];
Wir haben 22 Nebenbedingungen in Gleichheitsform. Die Modellgleichung iiberfilhren wir in zwei DGls erster Ordnung und behandeln dieses DG1-System wie gesagt zungchst als Anfangswertproblem; das machen wir amateurhaft im Programm BOCKFCON durch Wahl der entsprechenden Zeile. BOCKFCON
function [f,g] = bockfcon(x) global tfvek tmue ymue par par=x(23); tf=O;iz=l;g=[];f=O;
7.3 Probleme und Losungen
335
%Abschnittsweise Integration von Stutzpunkt zu Stlltzpunkt zwischen 0 und 1%
oJo*******************************************************
while tf < 1 tO=tf;tf=tfvek( iz); xO=[x( iz),x(iz+II)]; [t,y] =ode45(' bockdgl' ,[to tf],xO); sit=size(t); ind=find(tO