FCEA2

CEA2 (Chemical Equilibrium with Applications) ist ein seit gut 30 Jahren entwickeltes NASA Programm mit dem verschiedenste Probleme bei Gasphasen berechnet werden können. Ich beschränke mich auf das, was Raumfahrtliebhaber wohl am meisten machen: Die Berechnung der Performance von Triebwerken bei Raketen. Ich will die Benutzung des Programmes einmal erläutern, damit es auch andere nutzen können. Der Download des Programmes mit einer Java GUI finden sie unter diesem Link.

Zuerst ein paar Dinge die wichtig sind und die auch immer wieder falsch mache, weil sie nicht so selbstverständlich sind.

  • Das Programm übernimmt nicht die Ländereinstellungen. Wer „1,6“ eintippt und damit einen Wert zwischen 1 und 2 meint, wird in Wirklichkeit dem Programm zwei Werte übergeben, nämlich 1 und 6. Also immer einen Dezimalpunkt anstatt einem Komma Benutzen.
  • Bei Listen wird ein Wert erst übernommen wenn man in ein anderes Inputfeld derselben Liste klickt. Vergisst man dies, so steht er zwar in der Liste, taucht aber in den Ergebnissen nicht als Parameter auf
  • Beim Speichern muss man die Dateiendung „.inp“ immer angeben, sonst meckert dann das eigentliche Konsolenprogramm das die Berechnung durchführt. (Die GUI dient nur zum Erstellen der Eingabedateien).

Nun zur Bedienung selbst. Nachdem man CEAexec.win.bat gestartet hat (es empfiehlt sich das Programm im Benutzerverzeichnis abzulegen, da es in dieses Verzeichnis schreiben will) wählt man zuerst im oberen Fenster als Problemstellung „Rocket rkt“. Daraufhin öffnet sich ein weiteres Eingabefenster mit den Möglichkeiten Triebwerksparameter einzugeben.

Inital Press ist der Brennkammerdruck. Wir wollen mal das Shuttle SSME simulieren und geben hier 220 an. Wenn wir mehrere Drücke simulieren wollen, können wir die Liste ergänzen. Pro Eingangsdruck gibt es eine komplette Berechnung. In der Groupbox „Combustion Chamber“ können wir wenn wir die genauen Daten über die Brennkammer haben diese eintragen. Meistens liegen diese aber nicht vor. So nehmen wir „infinitive Area„, gehen also davon aus, dass wir eine unendlich große Brennkammer haben.

Die beiden Checkboxen darunter geben an welche Annahmen nun über das chemische Gleichgewicht gemacht werden soll. Das Problem ist, das ein chemisches Gleichgewicht temperaturabhängig ist. Bekannte temperaturabhängige Gleichgewichte sind zum Beispiel CO2 ↔ CO + O oder H20 + CO ↔ CO2 + H2. Je nach Temperatur liegen unterschiedliche Mengen der Edukte und Produkte vor und da diese dann auch noch mit anderen Bestandteilen reagieren können, wird das ganze dann recht komplex. Sobald nun aber die Gase den Düsenhals passieren, nimmt die Temperatur durch Expansion ab und nun muss man angeben wie die Berechnung erfolgen muss:

frozen“  bedeutet die Zusammensetzung der Gase verändert sich ab dem Punkt nicht mehr, es finden nun keine neuen Reaktionen mehr statt, die neue Produkte generieren, da die Temperatur nun schnell abnimmt. Diese Annahme ist eine Vereinfachung und führt zu 1-4% niedrigeren Werten als sie in Wirklichkeit vorliegen. Es kann hier festgelegt werden, wo das Gleichgewicht eingefroren werden soll (Brennkammer, Düsenhals oder Düsenmündung (siehe unten).

Equilibrium„, bedeutet das Gleichgewicht wird nun fortlaufend an die sich verändernden Temperaturen und Drücken angepasst. Das ist sicher wirklichkeitsnäher, so rekombinieren durch die Abkühlung Radikale und erzeugen so neue Edukte und die dabei entstehende Rekombinationswärme führt zu einer langsameren Temperaturabnahme als bei „Frozen“. (Bei der Berechnung ist bei dieser Einstellung am düsenhals über 200°C wärmer). Da aber alle Reaktionen in endlicher Zeit ablaufen und Kondensationen z.B. sehr oft Initialstörungen wie Kondensationskristalle erfordern und nicht sofort ablaufen, ist diese Annahme wiederum etwas zu optimistisch, da der Computer davon ausgeht dass sich jedes Gleichgewicht sofort einstellt. So führt diese Annahme zu hohen Werten für die Ausströmgeschwindigkeit. Sie liegen dann um 1-4% höher als die wirklichen Werte.

Ich empfehle daher immer beide Teile zu aktivieren und in der Ausgabe einfach beide Werte zu mitteln. Der wahre Wert ist dann genauer bekannt als bei jeder Einzelberechnung da die eine zu hoch und die andere zu niedrig ist.

Wenn die Temperatur in der Brennkammer bekannt ist kann sie angegeben werden, ansonsten wird diese berechnet und man hakt „Estimated“ an.

Der dritte Punkt sind die „optional Exit Conditions„, also die Bedingungen am Düsenaustritt. Auch hier sind mehrere Werte angebbar, z.B. um den Effekt verschieden langer Düsen zu simulieren. Gängig sind zwei Parameter zum einen das Brennkammerdruck zu Mündungsdruckverhältnis Pi/Pe und das Expansionsverhältnis Ae/At, also das Verhältnis der Fläche an der Düsenmündung zu der Fläche am Düsenhals. Für letzteres gibt es noch die Möglichkeit die Berechnung für den Unterschallbereich (Prefix „Sub„) und den Überschallbereich  (Prefix „Sup„). Bekannt ist das Flächenverhältnis des SSME von 77,5 und die Temperatur in der Brennkammer von 3315°C also tragen wir das ein (Umschalten von Kevin auf Celsius nicht vergessen). (Die Gase werden an der Düsenmündung im Normalfall immer Überschallgeschwindigkeit haben, also bei „Sup„). Die Maske sollte nun so wie links aussehen.

Das nächste um das wir uns kümmern müssen, ist es den Treibstoff anzugeben. Nachdem wir das Fenster mit Save geschlossen haben (bei Fehlermeldungen über fehlende Werte in die Liste klicken, dann hat man das Problem das ich oben angesprochen habe), wählen wir im Reiter „Reaktant„. Wenn man in der Tabelle in die Spalte „indent“ klickt, kann man zwischen Treibstoff und Oxidator auswählen. Wie die Tabelle zeigt, sind auch mehr als zwei Treibstoffe möglich, was z.B. auch bei festen Treibstoffen benötigt wird. Beim Klick in Name kann man die Substanz aus einer Liste wählen. Die Liste wird kürzer wenn man „Select atoms of desired species“ wählt und dann bei H einen Haken macht. Nun sind es nur noch zwei, nämlich zwei Gase (molekularer und atomarer Wasserstoff) und eine Flüssigkeit in der rechten Liste, erkennbar an dem (L) als Suffix (für liquid. Wir wählen das letztere.

Dann wiederholen wir das gleiche in der nächsten Zeile nun mit dem Oxidator O2(L). Wichtig ist nun noch die Temperatur der Stoffe anzugeben, da CEA sonst von Normalbedingungen, also 20°C ausgeht und es dann Fehler gibt. Die korrekten Temperaturen wären 20K für den Wasserstoff und 90K für den Sauerstoff. Das Fenster sieht nun so aus:

Wir variieren das Verhältnis der beiden Komponenten später in der Problemstellung. Wenn wir aber Mehrstoffgemische haben, z.B. FLOX als Mischung von Fluor und Sauerstoff als Oxidator oder Aerozin 50 als Mischung von UDMH und Hydrazin als Treibstoff oder bei festen Treibstoffen (Treibstoff HTPB und Aluminium), dann müssen wir hier jeweils das relative Gewicht angeben. Später ist nur das Verhältnis von Oxidator zu Treibstoff variierbar.

Nun können wir erneut in den Reiter „Problem“ wechseln und im unteren Teil das Mischungsverhältnis von Sauerstoff zu Wasserstoff festlegen. Auch hier gibt es eine Liste um mehrere Werte durchzuprobieren. In der Regel ist bei Raketen das O/F Verhältnis bekannt, also das Gewichtsverhältnis der beiden Stoffe. Es liegt beim SSME bei 6.

Nun sind wir schon fertig und das Hauptfenster sollte so aussehen wie im Bild. Wir können nun mit „File save“ (STRG+S) speichern (der Button Save unten macht dies nicht!) und können dann mit Activity →> execute FCEA2 (oder STRG+E) die Berechnung anstoßen. Achten sie darauf die Dateiendung „.inp“ mit einzutippen und das das Verzeichnis beschreibbar sein muss, da dort Ausgabedateien angelegt werden. Danach können wir im Viewer die Ausgabe uns ansehen. Wenn sie andere Werte haben, so schauen sie ob die ersten Zeilen mit diesen identisch sind:

o/f=6,
rocket equilibrium frozen nfz=1 t,c=3315
p,bar=220,
sup,ae/at=77.5,
react
fuel=H2(L) t,k=20
oxid=O2(L) t,k=90
end.

Das sind die eigentlichen Eingabedaten die sie in der Oberfläche festgelegt haben. (mehr macht diese nicht). Es muss bei Änderungen immer über das Menü gespeichert werden und die Punkte „Problem“ und Reactant Fuel Mixture müssen korrekt selektiert sein.

Es kommt als wichtigster Wert für den Vakuumimpuls eine Ausströmgeschwindigkeit von 4539,6 m/s bei chemischen Gleichgewicht und 4375 m/s bei „frozen Combustor“ heraus. Die Ausgaben erfolgen wie in intern in der NASA üblich im SI-System. Sollten sie US-Einheiten wünschen, so müssen sie das bei „output“ umschalten. Dort kann man auch die Ausgabe verkürzen und übersichtlicher gestalten.  (wenn sie Exit1 als Frozen Point nehmen, nähern sie sich dem Wert für das chemische Gleichgewicht an). Bilden wir den Mittelwert so kommen wir auf 4457,3. Das SSME hat einen spezifischen Impuls von 4480 m/s. Der Mittelwert zwischen beiden Simulationen (der zu optimistischen und zu pessimistischen) liefert also eine sehr gute Annäherung an den wahren Wert.

Natürlich wird der theoretische Wert von „equilibrium“ immer besser als der wahre Wert sein. Das liegt zum einen an dem zweiten Hauptsatz der Thermodynamik (der Wirkungsgrad jedes technischen Systems ist immer kleiner als 1, immerhin nutzt das SSME 97,4% der technisch nutzbaren Energie aus (nicht der Gesamtenergie, denn wenn das Gas die Düse verlässt ist es ja nach FCEA immer noch 948 / 1179 K heiß, darin steckt immer noch Energie). Zum zweiten interagiert das Gas auch mit der Brennkammer und süe, erwärmt diese und es wird auch Energie benötigt um den Brennkammerdruck von 220 Bar aufzubauen (bei Nebenstromtriebwerken werden bis zu 3% des Teibstoffs nur dafür benötigt). Auch ist unsere Brennkammer, anders als im Programm vorgesehen nicht unendlich groß. Es zeigt aber auch wie man mit dem Programm recht gut abschätzen kann was Verbesserungen bringen.

Sie können Testweise mal ausprobieren:

  • Was bringt es das O/F Verhältnis auf 8 zu erhöhen?
  • Lohnt es sich den Brennkammerdruck auf 300 Bar anzuheben?
  • Was brächte eine Düse mit dem Expansionsverhältnis 200?

Bitte die richtigen Lösungen in den Kommentaren posten.

10 thoughts on “FCEA2

  1. Bei einem O/F-Verhältnis von 8 wäre der spezifische Impuls 4244,7 m/s bzw. 3991,1 m/s.

    Hingegen brächte eine Erhöhung des Brennkammerdrucks auf 300 bar kaum eine Veränderung mit 4510,6 m/s bzw. 4369,9 m/s. Die spezifischen Impulse sind trotz höheren Brennkammerdrucks sogar etwas niedriger.

    Schaut man sich die Reaktionprodukte an für 220 bar:

    *H 0.02408 HO2 0.00003 *H2 0.24703
    H2O 0.69034 H2O2 0.00002 *O 0.00182
    *OH 0.03473 *O2 0.00195

    und für 300 bar:

    *H 0.02059 HO2 0.00003 *H2 0.24631
    H2O 0.70002 H2O2 0.00002 *O 0.00136
    *OH 0.03020 *O2 0.00148

    sieht man, dass es bei 300 bar mehr von den relativ schweren Wassermolekülen gibt. Warum das so ist, weiß ich nicht.

    Mit einem Expansionsverhältnis von 200 ergeben sich spezifische Impulse von 4669,2 m/s bzw 4485,6 m/s.

    Frage: Wie genau würde man Feststoffraketen der üblichen Mischung eingeben? Und wie ließen sich Hybridraketen simulieren mit flüssigem Oxidator und festem Verbrennungsträger?

  2. Gibt es für HTPB einen Eintrag in den Auswahllisten? Ich habe da keinen gefunden. Oder muss man die Summenformel selbst eingeben und wenn ja, welche?

    Was bedeuten die Kürzel in Klammern hinter den Chemikalien? Bei „L“ scheint es wohl für Liquid zu stehen. Aber es gibt auch „a“, „b“, „cr“ und römische Ziffern (z.B. zwei verschiedene bei NH4CLO4).

    Ich habe nicht geschafft, Magnesium „Mg(cr)“ mit LOX „O2(L)“ reagieren zu lassen. Aluminium „Al(cr)“ mit LOX hingegen klappt. Aber bei Magnesium sagt das Programm:

    „LOW TEMPERATURE IMPLIES A CONDENSED SPECIES SHOULD HAVE BEEN INSERTED,
    RESTART WITH insert DATASET (EQLBRM)

    CALCULATIONS STOPPED AFTER POINT 0(EQLBRM)“

    Die Einstellungen lauteten:

    „problem o/f=1.32,
    rocket equilibrium frozen nfz=2 tcest,k=3800
    p,bar=18,
    sup,ae/at=100,
    react
    oxid=O2(L)
    fuel=Mg(cr)
    output
    plot ivac
    end“

    Und dann nur den Treibstoff mit „Al(cr)“ getauscht.

  3. Tja grundlegende Kenntnisse in Rocket science oder ein Blick ins Benutzerhandbuch ist bei fortgeschrittenen Fällen sinnvoll. Wie das Programm schon sagt musst du angeben welche Kristallmodifikation es gibt „condensed“, wenn ein Mineral mehrere hat, daher gibt es einige Elemente auch mit mehreren Modifkationen.

    Die thermo.lib ist endlich wenn Du etwas nehmen willst was dort nicht vorhanden ist musst die die Summenformel und die freie Enthalpie angeben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.