====== std.aero.vnav — Steig- und Sinkprofile, Drift-Down, Notabstieg ====== → [[lyx_-_programmiersprache:units:aero|std.aero Übersicht]] · [[lyx_-_programmiersprache:guides:mcdu|Guide: Flugführungsrechner bauen]] · [[lyx_-_programmiersprache:units:aero:perf|std.aero.perf]] · [[lyx_-_programmiersprache:units:aero:atmos|std.aero.atmos]] · [[lyx_-_programmiersprache:units|Standard Library]] [[lyx_-_programmiersprache:units:aero:perf|std.aero.perf]] rechnet einen Steig- oder Sinkflug mit **einer** mittleren Rate über die ganze Höhe. Das ist für die Faustformel richtig und für ein Flugprofil zu grob: ein Verkehrsflugzeug steigt unten mit 2500 ft/min und oben mit 500, und der Stundenverbrauch fällt dabei um ein Drittel. Wer mit dem Mittelwert rechnet, bekommt Zeit und Treibstoff systematisch falsch — umso mehr, je größer der Höhenbereich ist. **Deshalb wird hier integriert:** in Schritten über die Höhe, mit linear veränderlicher Rate und linear veränderlichem Verbrauch, und mit der TAS aus der Standardatmosphäre — die allein wächst zwischen Boden und FL350 um mehr als die Hälfte. **Quelle:** ''std/aero/vnav.lyx'' · **Autor:** Andreas Röne · **Copyright:** 2026 Andreas Röne ---- ===== Ergebnistyp ===== ==== AvProfil (struct) ==== ^ Feld ^ Typ ^ Bedeutung ^ | ''zeitMin'' | ''f64'' | Dauer des Profils in Minuten | | ''streckeNm'' | ''f64'' | zurückgelegte Strecke | | ''kraftstoffKg'' | ''f64'' | verbrauchter Treibstoff | | ''endhoeheFt'' | ''f64'' | **erreichte** Höhe — kann unter dem Ziel liegen | | ''gueltig'' | ''bool'' | false, sobald ein Schritt unsinnig war | ^ Zugriff ^ Beschreibung ^ | ''AvProfilZeitMin(p: AvProfil): f64'' | Dauer | | ''AvProfilStreckeNm(p: AvProfil): f64'' | Strecke | | ''AvProfilKraftstoffKg(p: AvProfil): f64'' | Verbrauch | | ''AvProfilEndhoeheFt(p: AvProfil): f64'' | erreichte Höhe | | ''AvProfilGueltig(p: AvProfil): bool'' | Gültigkeit | ---- ===== Geschwindigkeitsplan ===== ^ Signatur ^ Beschreibung ^ | ''AvTasImProfilKt(hFt: f64, casKt: f64, mach: f64, isaAbwK: f64): f64'' | TAS in einer Höhe nach dem Geschwindigkeitsplan | Unten wird mit fester **angezeigter** Geschwindigkeit geflogen, oben mit fester **Machzahl**. Genau an der Übergangshöhe wechselt es, und [[lyx_-_programmiersprache:units:aero:atmos|std.aero.atmos]] rechnet sie aus (''AvUebergangshoeheFt''). Wer durchgehend mit CAS rechnet, bekommt oben eine zu kleine TAS und damit eine zu kurze Strecke. ---- ===== Profile ===== ^ Signatur ^ Beschreibung ^ | ''AvSteigprofil(vonFt, bisFt, schrittFt, casKt, mach, isaAbwK, rocUntenFpm, rocObenFpm, ffUntenKgProH, ffObenKgProH, windKomponenteKt): AvProfil'' | Steigprofil. Rate und Verbrauch werden zwischen ''unten'' und ''oben'' linear interpoliert | | ''AvSinkprofil(vonFt, bisFt, schrittFt, casKt, mach, isaAbwK, rodObenFpm, rodUntenFpm, ffObenKgProH, ffUntenKgProH, windKomponenteKt): AvProfil'' | dasselbe abwärts | | ''AvTodStreckeAusProfilNm(vonFt, bisFt, schrittFt, casKt, mach, isaAbwK, rodObenFpm, rodUntenFpm, windKomponenteKt): f64'' | **Sinkflugbeginn aus dem Profil** — die genaue Fassung von ''AvTodStreckeNm'': statt einer Gleitzahl über 32000 ft wird das Profil gerechnet, und die Strecke ist das Ergebnis der Integration | **Sinkraten sind positive Zahlen.** ''rodObenFpm'' und ''rodUntenFpm'' tragen die Richtung im Namen der Funktion, nicht im Vorzeichen. Ein Vorzeichenfehler an dieser Stelle wäre nicht zu bemerken — die Zahlen sähen weiterhin plausibel aus. **Erreicht die Steigrate null oder darunter, bricht das Profil ab**, und ''endhoeheFt'' sagt, wie weit es gekommen ist. Das ist die ehrliche Antwort auf „das Flugzeug schafft die Höhe nicht"; ein Ergebnis mit der Zielhöhe wäre eine Lüge. Wer eine gemessene Steigratenkurve hat, ruft die Funktion abschnittsweise auf, statt über den ganzen Bereich zu interpolieren. ---- ===== Drift-Down ===== Nach einem Triebwerksausfall sinkt das Flugzeug auf die Höhe, die es mit dem verbliebenen Schub noch halten kann. Diese Höhe entscheidet über die Streckenführung im Gebirge. ^ Signatur ^ Beschreibung ^ | ''AvDriftDownHoeheM(schubSlEinTriebwerkN, widerstandN, tasKt, masseKg): f64'' | Höhe, in der die Steigrate null wird — per Suche, weil der Schub mit der Höhe fällt. Der Schub wird proportional zum Druckverhältnis angesetzt; wer eine bessere Schubkurve hat, rechnet abschnittsweise | | ''AvDriftDownHoeheFt(…): f64'' | dasselbe in Fuß | | ''AvDriftDownFreigaengig(driftDownFt, hoechsteErhebungFt, mindestabstandFt): bool'' | reicht die Höhe über die höchste Erhebung? Zwei Seiten: die **erreichbare** Höhe und der **geforderte** Abstand darüber | ---- ===== Notabstieg ===== Bei Druckverlust zählt die Zeit bis zu einer atembaren Höhe. ^ Signatur ^ Beschreibung ^ | ''AvNotabstiegZeitMin(vonFt, aufFt, sinkrateFpm): f64'' | Dauer des Abstiegs | | ''AvNotabstiegStreckeNm(vonFt, aufFt, sinkrateFpm, mittlereGrundgeschwKt): f64'' | dabei zurückgelegte Strecke | | ''AvSauerstoffReicht(vorratMin, abstiegMin, flugInZwischenhoeheMin): bool'' | reicht der Sauerstoffvorrat für Abstieg **und** den anschließenden Flug in der Zwischenhöhe? Die Frage, die über die zulässige Streckenführung entscheidet | Drift-Down und Notabstieg stehen auf derselben Seite, weil beide dasselbe sind wie ein Sinkprofil, nur mit anderem Anlass: **die erste Rechnung sucht eine Höhe, die zweite eine Zeit.** ---- Letzte Aktualisierung: 2026-09-05 — Seite neu angelegt; erhoben aus ''std/aero/vnav.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.