std.aero.atmos — Standardatmosphäre, Höhen und Geschwindigkeiten
→ std.aero Übersicht · Guide: Standardatmosphäre · std.aero.perf · 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 |
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 |
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.
