====== std.aero.atmos — Standardatmosphäre, Höhen und Geschwindigkeiten ====== → [[lyx_-_programmiersprache:units:aero|std.aero Übersicht]] · [[lyx_-_programmiersprache:guides:standardatmosphaere|Guide: Standardatmosphäre]] · [[lyx_-_programmiersprache:units:aero:perf|std.aero.perf]] · [[lyx_-_programmiersprache:units|Standard Library]] Fundament für alles, was ein Flugführungsrechner ausrechnet: ICAO-Standardatmosphäre, Druck- und Dichtehöhe, Flugflächen und die Umrechnung zwischen den vier Geschwindigkeitsbegriffen CAS, EAS, TAS und Mach. Ohne sie wäre jede Steig- und Sinkrechnung falsch — Steigrate, wahre Geschwindigkeit und Machzahl hängen sämtlich an Druck, Temperatur und Dichte der jeweiligen Höhe. **Gültigkeit:** 0 bis 20 km geopotentielle Höhe (zwei Schichten der ICAO-Atmosphäre) und Unterschall bis Mach 1. Außerhalb liefert jede Funktion ''AvError()'', statt zu extrapolieren. **Quelle:** ''std/aero/atmos.lyx'' · **Autor:** Andreas Röne · **Copyright:** 2026 Andreas Röne ---- ===== Fehlerwert ===== ^ Signatur ^ Beschreibung ^ | ''AvError(): f64'' | NaN — der Fehlerwert dieser Unit | | ''AvIsError(x: f64): bool'' | Prüft auf NaN (der einzige Wert, der sich selbst ungleich ist) | ---- ===== Konstanten ===== ^ Name ^ Wert ^ Bedeutung ^ | ''AV_T0_K'' | 288.15 | Temperatur auf Meereshöhe, K | | ''AV_P0_PA'' | 101325.0 | Druck auf Meereshöhe, Pa | | ''AV_RHO0'' | 1.225 | Dichte auf Meereshöhe, kg/m³ | | ''AV_LAPSE'' | 0.0065 | Temperaturgradient, K/m | | ''AV_G0'' | 9.80665 | Normfallbeschleunigung, m/s² | | ''AV_R_AIR'' | 287.05287 | spezifische Gaskonstante, J/(kg·K) | | ''AV_KAPPA'' | 1.4 | Isentropenexponent | | ''AV_TROPO_M'' | 11000.0 | Tropopause, geopotentiell | | ''AV_T_TROPO_K'' | 216.65 | Temperatur ab Tropopause, K | | ''AV_OBERGRENZE_M'' | 20000.0 | Gültigkeitsgrenze dieser Unit | | ''AV_ERDRADIUS_M'' | 6356766.0 | Radius für geopotentiell ↔ geometrisch | | ''AV_FT_IN_M'' | 0.3048 | exakt nach internationaler Definition | | ''AV_NM_IN_M'' | 1852.0 | exakt | | ''AV_KT_IN_MS'' | 0.5144… | 1852/3600 | Der Druck an der Tropopause steht **nicht** als Literal in der Unit, sondern wird aus den Konstanten gerechnet — ein abgeschriebener Wert und die Formel darüber laufen sonst auseinander. ---- ===== Einheiten ===== ^ Signatur ^ Beschreibung ^ | ''AvFtToM(ft: f64): f64'' · ''AvMToFt(m: f64): f64'' | Fuß ↔ Meter | | ''AvNmToM(nm: f64): f64'' · ''AvMToNm(m: f64): f64'' | Seemeilen ↔ Meter | | ''AvKtToMs(kt: f64): f64'' · ''AvMsToKt(ms: f64): f64'' | Knoten ↔ m/s | | ''AvCToK(c: f64): f64'' · ''AvKToC(k: f64): f64'' | Celsius ↔ Kelvin | | ''AvHpaToPa(hpa: f64): f64'' · ''AvPaToHpa(pa: f64): f64'' | Hektopascal ↔ Pascal | | ''AvKtToFpm(kt: f64): f64'' · ''AvFpmToKt(fpm: f64): f64'' | Knoten ↔ Fuß je Minute (1 kt = 101,268… fpm; der Faktor wird gerechnet, nicht abgeschrieben — er taucht in jeder Sinkflugrechnung auf) | ---- ===== Geopotentiell und geometrisch ===== ^ Signatur ^ Beschreibung ^ | ''AvGeometrischZuGeopotentiell(hGeoM: f64): f64'' | geometrische → geopotentielle Höhe | | ''AvGeopotentiellZuGeometrisch(hPotM: f64): f64'' | die Umkehrung | ISA ist über der **geopotentiellen** Höhe definiert; ein Höhenmesser misst Druck und liefert damit ebenfalls eine geopotentielle Größe. Die geometrische Höhe liegt darüber, weil die Schwere mit der Höhe abnimmt — in 11 km rund 19 m. Klein, aber vorhanden, und deshalb ausdrücklich statt stillschweigend gleichgesetzt. ---- ===== Standardatmosphäre ===== ^ Signatur ^ Beschreibung ^ | ''AvIsaTemperaturK(hM: f64): f64'' | Temperatur in geopotentieller Höhe, K | | ''AvIsaDruckPa(hM: f64): f64'' | Druck, Pa | | ''AvIsaDichte(hM: f64): f64'' | Dichte, kg/m³ — über die Gasgleichung, nicht über eine zweite Näherungsformel: zwei Formeln für dieselbe Größe laufen auseinander | | ''AvDelta(hM: f64): f64'' | δ — Druckverhältnis zu Meereshöhe | | ''AvTheta(hM: f64): f64'' | θ — Temperaturverhältnis | | ''AvSigma(hM: f64): f64'' | σ — Dichteverhältnis | | ''AvHoeheAusDruckM(pPa: f64): f64'' | Umkehrung: Höhe zu gegebenem Druck. Das ist die Rechnung, die ein Höhenmesser macht | ---- ===== Höhen: Druck, Dichte, wahr ===== ^ Signatur ^ Beschreibung ^ | ''AvStatischerDruckPa(qnhHpa: f64, hM: f64): f64'' | statischer Druck in wahrer Höhe bei gegebenem QNH | | ''AvDruckhoeheM(qnhHpa: f64, hM: f64): f64'' | **Druckhöhe**: was ein auf 1013,25 hPa gestellter Höhenmesser zeigt. Daraus werden Flugflächen gebildet — nicht aus der wahren Höhe | | ''AvDruckhoeheFt(qnhHpa: f64, hFt: f64): f64'' | dasselbe in Fuß | | ''AvDichtehoeheM(druckhoeheM: f64, oatC: f64): f64'' | **Dichtehöhe**: die Höhe, in der die Standardatmosphäre die tatsächliche Dichte hat. Sie bestimmt Startstrecke und Steigleistung — an einem heißen Tag steht ein Flugzeug leistungsmäßig Tausende Fuß höher, als der Höhenmesser zeigt | | ''AvDichtehoeheFt(druckhoeheFt: f64, oatC: f64): f64'' | dasselbe in Fuß | | ''AvIsaAbweichungK(druckhoeheM: f64, oatC: f64): f64'' | um wie viel die Temperatur von der Standardtemperatur dieser Druckhöhe abweicht. Geht in jede Steig-, Sink- und Reichweitenrechnung ein | | ''AvWahreHoeheM(angezeigtM: f64, gelaendeM: f64, isaAbwK: f64): f64'' | wahre Höhe aus angezeigter Höhe und Temperaturabweichung | **Bei kalter Luft ist die wahre Höhe KLEINER als die angezeigte** — das ist die gefährliche Richtung, und genau dafür gibt es ''AvWahreHoeheM''. Die Faustformel der Fliegerei lautet „4 % je 10 °C Abweichung"; die Unit rechnet die Beziehung dahinter, weil die Faustformel bei großen Abweichungen mehrere hundert Fuß danebenliegt. ---- ===== Flugflächen ===== ^ Signatur ^ Beschreibung ^ | ''AvFlugflaecheAusDruckhoeheFt(druckhoeheFt: f64): f64'' | Druckhöhe → Flugfläche | | ''AvDruckhoeheFtAusFlugflaeche(fl: f64): f64'' | Flugfläche → Druckhöhe | | ''AvUebergangsflaeche(uebergangshoeheFt: f64, qnhHpa: f64, mindestabstandFt: f64): f64'' | niedrigste nutzbare Flugfläche über der Übergangshöhe. Bei niedrigem QNH liegt sie höher — genau deshalb wird sie gerechnet und nicht als Konstante geführt. ''mindestabstandFt'' ist die geforderte Trennung (je nach Staat 0 bis 1000 ft) | Eine Flugfläche ist die Druckhöhe in Hundert Fuß, bezogen auf 1013,25 hPa. FL350 = 35000 ft **Druckhöhe** — keine Höhe über Grund und keine über Meer. ---- ===== Geschwindigkeiten ===== ^ Signatur ^ Beschreibung ^ | ''AvSchallgeschwindigkeitMs(tK: f64): f64'' · ''AvSchallgeschwindigkeitKt(tK: f64): f64'' | Schallgeschwindigkeit aus der Temperatur | | ''AvMachAusCasKt(casKt: f64, druckhoeheM: f64): f64'' | CAS → Machzahl | | ''AvTasKtAusCasKt(casKt: f64, druckhoeheM: f64, oatC: f64): f64'' | CAS → TAS. ''oatC'' ist die **tatsächliche** Außentemperatur; sie geht nur über die Schallgeschwindigkeit ein, der Druck kommt aus der Druckhöhe. Wer hier die Standardtemperatur einsetzt, bekommt an einem warmen Tag eine zu kleine TAS | | ''AvCasKtAusTasKt(tasKt: f64, druckhoeheM: f64, oatC: f64): f64'' | die Umkehrung derselben Kette | | ''AvTasKtAusMach(mach: f64, oatC: f64): f64'' | Mach → TAS | | ''AvCasKtAusMach(mach: f64, druckhoeheM: f64): f64'' | Mach → CAS | | ''AvEasKtAusTasKt(tasKt: f64, druckhoeheM: f64): f64'' | TAS → EAS. EAS ist die Geschwindigkeit, die denselben Staudruck auf Meereshöhe ergäbe — an ihr hängen die Strukturgrenzen (VMO) | | ''AvUebergangshoeheM(casKt: f64, mach: f64): f64'' · ''AvUebergangshoeheFt(casKt: f64, mach: f64): f64'' | **Übergangshöhe** zwischen CAS- und Mach-Führung: unterhalb steigt ein Flugzeug mit fester CAS, oberhalb mit fester Machzahl. Sie wird per Bisektion **gesucht**, nicht abgeschätzt — die Beziehung ist nicht geschlossen umkehrbar | Die Unit rechnet durchgehend **kompressibel**. Die einfache Wurzelformel ''CAS·√(ρ0/ρ)'' liefert EAS, nicht TAS; bei 300 kt in FL350 liegen zwischen beiden über zehn Knoten. ---- ===== Codebeispiel ===== unit main; import std.aero.atmos; import std.io; import std.string; fn main(): int64 { var druckhoeheFt: f64 := AvDruckhoeheFtAusFlugflaeche(350.0); var hM: f64 := AvFtToM(druckhoeheFt); var oatC: f64 := AvKToC(AvIsaTemperaturK(hM)) - 10.0; // ISA−10 var tas: f64 := AvTasKtAusCasKt(280.0, hM, oatC); if (AvIsError(tas)) { PrintLn("ausserhalb des Gueltigkeitsbereichs"); return 1; } PrintLn(StrConcat("TAS (kt): ", FloatToStr(tas, 1))); PrintLn(StrConcat("Mach: ", FloatToStr(AvMachAusCasKt(280.0, hM), 2))); PrintLn(StrConcat("ISA-Abw K: ", FloatToStr(AvIsaAbweichungK(hM, oatC), 1))); return 0; } ---- Letzte Aktualisierung: 2026-09-05 — Seite neu angelegt; erhoben aus ''std/aero/atmos.lyx'' (Stand 2026-09-04), Beispiel gegen lyxc 1.1.18A übersetzt und ausgeführt. 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.