→ std.aero Übersicht · Guide: Flugführungsrechner bauen · std.aero.atmos · std.aero.vnav · Standard Library
Was ein Flugführungsrechner an Bord ausrechnet, aufgebaut auf std.aero.atmos: Bahngeometrie, Zwangspunkte, Kurven, Pseudo-Wegpunkte, Steigleistung aus dem Energieüberschuss, Reiseflugoptimierung und Wind.
Musterabhängige Kennzahlen kommen vom Aufrufer — Gleitzahl, spezifischer Verbrauch, Schub und Widerstand stehen im Flughandbuch. Ein eingebauter „typischer„ Wert wäre für jedes Muster falsch und würde nirgends auffallen.
Quelle: std/aero/perf.lyx · Autor: Andreas Röne · Copyright: 2026 Andreas Röne
| Signatur | Beschreibung |
|---|---|
AvGradZuRad(grad: f64): f64 · AvRadZuGrad(rad: f64): f64 | Winkelmaße |
AvSinkrateFpm(grundgeschwKt: f64, bahnwinkelGrad: f64): f64 | Rate, die einen gegebenen Bahnwinkel hält. 3° bei 140 kt → rund 743 fpm. Die Faustformel „halbe Grundgeschwindigkeit mal 10“ (700 fpm) liegt drei Prozent daneben — sie taugt zum Nachrechnen im Kopf, nicht als Rechnung im Gerät |
AvBahnwinkelGrad(grundgeschwKt: f64, rateFpm: f64): f64 | die Umkehrung |
AvGradientProzent(hoehenaenderungFt: f64, streckeNm: f64): f64 | Gradient in Prozent — die Größe, in der Hindernisfreiheit und Startsteigflug-Vorgaben ausgedrückt sind |
AvRateFuerGradientFpm(grundgeschwKt: f64, gradientProzent: f64): f64 | Rate für einen geforderten Gradienten. Abflugverfahren sind so geschrieben („3,3 % bis 2000 ft„) — die Frage an Bord lautet, welche Rate das ist |
| Signatur | Beschreibung |
|---|---|
AvNoetigeSinkrateFpm(hoeheJetztFt, hoeheZielFt, streckeNm, grundgeschwKt): f64 | Rate für „FL100 bei 30 NM“. Kennt keine Gleitzahl — sie sagt nur, was nötig ist |
AvNoetigerWinkelGrad(hoeheJetztFt, hoeheZielFt, streckeNm): f64 | derselbe Zwangspunkt als Bahnwinkel — die Form, in der ein Anflugprofil beurteilt wird („steiler als 3,5°„ heißt: umplanen) |
AvZwangspunktErreichbar(hoeheJetztFt, hoeheZielFt, streckeNm, gleitzahl, eigengeschwKt, windKomponenteKt): bool | ist er überhaupt erreichbar? Verglichen wird der nötige Bahnwinkel mit dem, den das Flugzeug im Leerlauf schafft |
AvAbweichungVomProfilFt(hoeheJetztFt, hoeheZielFt, streckeNm, gleitzahl, eigengeschwKt, windKomponenteKt): f64 | wie viel Höhe bis zum Zwangspunkt zu viel ist. Positiv = so viele Fuß über dem Profil |
Ob das Flugzeug die nötige Rate kann, entscheidet der Aufrufer, indem er das Ergebnis gegen die Leerlauf-Sinkrate hält. Die Frage „wir sind zu hoch“ stellt sich an Bord ständig — und ist der Grund, warum ein FMS eine Meldung ausgibt, statt still ein unmögliches Profil zu zeichnen.
| Signatur | Beschreibung |
|---|---|
AvTodStreckeNmFaustformel(hoeheJetztFt, hoeheZielFt): f64 | die 3:1-Regel („3 mal die abzubauenden Tausend Fuß„, FL350 → 105 NM), rund 3,2°. Steht als eigene Funktion da, weil sie im Cockpit tatsächlich benutzt wird |
AvTodStreckeNm(hoeheJetztFt, hoeheZielFt, gleitzahl, eigengeschwKt, windKomponenteKt): f64 | die Rechnung mit Gleitzahl und Wind. gleitzahl ist Strecke je Höhe (L/D im Sinkflug, für Verkehrsflugzeuge typisch 15 bis 18) und kommt aus dem Handbuch. windKomponenteKt ist positiv bei Rückenwind — Rückenwind schiebt, die Strecke wird länger, der Punkt liegt früher |
AvTodSinkrateFpm(gleitzahl, eigengeschwKt, windKomponenteKt): f64 | die Sinkrate, die zu diesem Leerlaufprofil gehört |
Genauer als die Gleitzahl über den ganzen Höhenbereich ist die Integration in std.aero.vnav (AvTodStreckeAusProfilNm).
| Signatur | Beschreibung |
|---|---|
AvSteigrateFpm(schubN, widerstandN, tasKt, masseKg): f64 | Steigrate aus dem Energieüberschuss — keine Geometrie und keine Faustformel, sondern die Definition. Sie erklärt, warum die Rate mit der Höhe abnimmt (der Schub fällt) und mit dem Gewicht (der Nenner wächst) |
AvSteigwinkelGrad(schubN, widerstandN, masseKg): f64 | Steigwinkel aus derselben Bilanz — mit Arkussinus, weil die Näherung sin γ ≈ (T−D)/W bei hohem Schub-Gewicht-Verhältnis mehrere Grad danebenliegt |
AvSteigzeitMin(vonFt, bisFt, mittlereRateFpm): f64 | Zeit für einen Steigabschnitt |
AvSteigstreckeNm(vonFt, bisFt, mittlereRateFpm, grundgeschwKt): f64 | zurückgelegte Strecke |
AvDienstgipfelhoeheM(schubSlN, widerstandN, tasKt, masseKg, restrateFpm): f64 | Höhe, in der nur noch restrateFpm übrig ist. Per Bisektion gesucht: die Steigrate fällt mit der Höhe, ist aber nicht geschlossen umkehrbar. Der Schub wird proportional zum Druckverhältnis δ angesetzt — wer eine bessere Schubkurve hat, rechnet damit selbst |
Schub und Widerstand bringt der Aufrufer aus seinem Handbuch mit; sie sind musterabhängig und haben in einer allgemeinen Unit nichts verloren.
| Signatur | Beschreibung |
|---|---|
AvSpezifischeReichweiteNmProKg(tasKt, verbrauchKgProH): f64 | Strecke je Treibstoffmasse — die Größe, die im Reiseflug maximiert wird |
AvBreguetReichweiteNm(tasKt, sfcProH, gleitzahl, masseStartKg, masseEndeKg): f64 | R = (V/c)·(L/D)·ln(m_start/m_ende) |
AvBreguetFlugdauerH(sfcProH, gleitzahl, masseStartKg, masseEndeKg): f64 | Flugdauer nach Breguet |
AvOptimaleHoeheM(masseKg, wProDeltaOptN: f64): f64 | optimale Reiseflughöhe aus W/δ |
AvStufensteigGewinnM(masseVorherKg, masseNachherKg, wProDeltaOptN): f64 | Höhengewinn eines Stufensteigflugs, wenn Treibstoff verbrannt ist |
W/δ ist im Optimum konstant. Wird das Flugzeug leichter, muss δ kleiner werden — die optimale Höhe steigt im Verlauf des Fluges. Genau deshalb gibt es Stufensteigflüge; wer die Höhe als feste Zahl führt, fliegt die zweite Hälfte zu tief. wProDeltaOpt ist die musterabhängige Kennzahl aus dem Handbuch (Gewicht in Newton bei δ = 1).
| Signatur | Beschreibung |
|---|---|
AvGesamtkostenKgAequiv(flugzeitH, treibstoffKg, costIndex): f64 | Zeitkosten plus Treibstoffkosten in „kg-Äquivalent“ — der Einheit, in der ein FMS vergleicht |
AvGuenstigere(zeit1H, kraftstoff1Kg, zeit2H, kraftstoff2Kg, costIndex): int64 | welche von zwei Geschwindigkeiten günstiger ist: 1, 2 oder 0 bei Gleichstand |
CI 0 heißt „Treibstoff ist alles„ — maximale Reichweite; ein hoher CI heißt „Zeit ist teuer“ — schneller und mit mehr Verbrauch. Zwei Angebote zu vergleichen ist die Form, in der die Frage an Bord tatsächlich auftritt, nicht als geschlossene Optimierung: dafür bräuchte man die vollständige Verbrauchskurve des Musters.
| Signatur | Beschreibung |
|---|---|
AvWindkomponenteKt(kursGrad, windRichtungGrad, windStaerkeKt): f64 | Gegen-/Rückenwind. Positiv = Rückenwind |
AvSeitenwindKt(kursGrad, windRichtungGrad, windStaerkeKt): f64 | Seitenwind, immer als Betrag — für den Vergleich mit der zulässigen Grenze |
AvVorhaltewinkelGrad(kursGrad, tasKt, windRichtungGrad, windStaerkeKt): f64 | Vorhaltewinkel aus dem Winddreieck |
AvGrundgeschwindigkeitKt(kursGrad, tasKt, windRichtungGrad, windStaerkeKt): f64 | Grundgeschwindigkeit aus demselben Dreieck |
| Signatur | Beschreibung |
|---|---|
AvKurvenradiusNm(tasKt, querneigungGrad): f64 | r = v² / (g · tan φ) |
AvKurvenrateGradProS(tasKt, querneigungGrad): f64 | ω = g · tan φ / v |
AvQuerneigungFuerRateGrad(tasKt, rateGradProS): f64 | welche Querneigung eine gewünschte Rate ergibt. Die Standardkurve mit 3°/s bräuchte bei 480 kt TAS eine Querneigung, die kein Verkehrsflugzeug fliegt — deshalb wird oben herum mit fester Querneigung gekurvt und die Rate fällt |
AvKurvenvorhaltNm(tasKt, querneigungGrad, kursaenderungGrad): f64 | Kurvenvorhalt (turn anticipation): wie weit vor dem Knickpunkt die Kurve beginnt, d = r · tan(Δψ/2) |
AvKurvenabkuerzungNm(tasKt, querneigungGrad, kursaenderungGrad): f64 | Streckengewinn: zweimal der Vorhalt minus der Bogen |
AvKurvendauerS(tasKt, querneigungGrad, kursaenderungGrad): f64 | Dauer der Kurve — geht in die Zeitvorhersage ein |
AvKurvenvorhaltNm den Fehlerwert, keine sehr große Zahl: die Tangente wäre unendlich, eine Kehrtwende lässt sich nicht abkürzen. Eine große Zahl sähe aus wie ein Ergebnis.
Sie liefern Positionen entlang der Route in NM — die Größe, an der das Symbol auf der Flugroute gezeichnet wird.
| Signatur | Beschreibung |
|---|---|
AvTopOfClimbNm(startPositionNm, hoeheStartFt, reiseflughoeheFt, mittlereRateFpm, grundgeschwKt): f64 | T/C — wo die Reiseflughöhe erreicht ist |
AvTopOfDescentNm(zwangspunktNm, hoeheJetztFt, hoeheZielFt, gleitzahl, eigengeschwKt, windKomponenteKt): f64 | T/D — er liegt um die Sinkstrecke vor dem Zwangspunkt |
AvDecelPunktNm(anflugPunktNm, vonKt, aufKt, verzoegerungKtProMin, grundgeschwKt): f64 | DECEL — wo die Verzögerung auf die Anfluggeschwindigkeit beginnen muss. verzoegerungKtProMin ist musterabhängig (im Leerlauf, sauber, typisch 10 bis 20 kt/min) |
Liegt der T/D vor dem jetzigen Ort, ist die Antwort ein Fehler und keine negative Zahl: „der Sinkflug hätte schon begonnen haben müssen„ ist eine Lage, keine Position.
| Signatur | Beschreibung |
|---|---|
AvPunktGleicherZeitNm(gesamtstreckeNm, tasKt, windKomponenteKt): f64 | Punkt gleicher Zeit: von hier dauert Weiterfliegen genauso lang wie Umkehren. Wichtig über Wasser und in der Wüste — der Wind verschiebt ihn erheblich, weil er in eine Richtung hilft und in die andere bremst. Rückgabe: Strecke vom Startpunkt |
AvPunktOhneWiederkehrNm(nutzbareStundenH, tasKt, windKomponenteKt): f64 | Punkt ohne Wiederkehr: der letzte Punkt, von dem der Treibstoff noch zur Rückkehr reicht |
Letzte Aktualisierung: 2026-09-05 — Seite neu angelegt; erhoben aus std/aero/perf.lyx (Stand 2026-09-04).
Prüflauf 2026-09-05 mit doku-pruefer.py über den gesamten Aero-Bereich (Repo-Compiler lyxc 1.2.2A): 13 Vollprogramme, 13 übersetzen, 0 echte Fehler; 193 Aufrufe gegen die pub fn-Signaturen in aurum/std gehalten, 0 Abweichungen.