Projektziel: Die Dash 8 (De Havilland Canada DHC-8) ist das Flugzeug, mit dem Air Greenland
zwischen den Orten in Grönland fliegt. In FlightGear gibt es sie als freies Modell. Die aktuelle
Entwicklerversion hatte aber ein paar Fehler: Die Triebwerke verbrauchten dreimal zu viel Treibstoff, ein
Instrument lud nicht, ein Skript meldete zehnmal pro Sekunde einen Fehler und der Autopilot pendelte im langsamen
Endanflug. Dieser Beitrag zeigt, wie ich die Fehler gefunden und behoben habe, dazu zwei Piloten im Cockpit und
eigene Lackierungen. Unten gibt es alle Änderungen als Patch zum Herunterladen.
Bild 1 - Die Dash 8 in der eigenen Lackierung „Air Toczler“ (D-BTOX) in Kangerlussuaq, Grönland
Download:
dash8_patch.zip
(geänderte und neue Dateien, für die DHC-8 aus dem FGAddon-Entwicklungszweig, getestet mit FlightGear 2024.1.7)
Original:
DHC-8_original_FGAddon_2026-10-16.zip
(47 MB, unveränderte DHC-8 aus dem FGAddon-Entwicklungszweig, Stand 16.10.2026, GPL v2 – für den Fall, dass
sich das Original ändert oder nicht mehr zu finden ist)
1. Dreimal zu viel Treibstoff
Auf einer Strecke von Kangerlussuaq nach Island zeigte die Anzeige im Reiseflug rund
1150 lb/h pro Triebwerk. Ein echtes PW123-Triebwerk braucht bei dieser Leistung etwa ein Drittel
davon. Der Treibstoff hätte nicht bis Island gereicht; für den Test musste ich im Flug nachtanken.
Die Triebwerke rechnet JSBSim, das Flugdynamik-Modell von FlightGear. In der Triebwerksdatei
Engines/PW123D.xml stand die Tabelle für den Verbrennungswirkungsgrad in einem Kommentar. Fehlt sie,
nimmt JSBSim einen eingebauten Standardwert, der im Reiseflug bei etwa 0,31 liegt, und teilt den Verbrauch
dadurch. Zusätzlich war der spezifische Verbrauch (psfc) mit 0,23 zu niedrig angesetzt, real sind
es beim PW123 etwa 0,45 bis 0,5 lb pro PS und Stunde.
<psfc unit="LBS/HR/HP">0.45</psfc> <!-- war 0.23; PW123 real ca. 0.45-0.5 -->
...
<!-- Vorher auskommentiert: JSBSim nahm dann einen Standardwert (ca. 0.3 im Reiseflug)
und verdreifachte damit den Treibstoffverbrauch. -->
<table name="CombustionEfficiency_N1" type="internal">
<tableData>
0.0 0.50
20.0 0.80
24.6 0.95
50.0 0.98
70.0 1.00
110.0 1.00
</tableData>
</table>
Danach: rund 440 lb/h pro Triebwerk im Reiseflug (17 000 ft, 246 kt wahre Fahrt). Die Probe aufs
Exempel war ein Flug von Keflavík nach Aberdeen: 727 nm in gut drei Stunden mit 2670 lb Treibstoff, ein
realistischer Wert für dieses Flugzeug.
2. Ein Instrument, das nicht lädt
Beim Start meldete FlightGear: Couldn't load animation … Unknown condition comparison left child: use.
Die Lageanzeige (EADI) benutzt in ihren Bedingungen die Schreibweise <use alias=…>, die
FlightGear 2024.1 an dieser Stelle nicht kennt. Die ältere Schreibweise bedeutet dasselbe:
<!-- vorher (nur Entwicklerversion von FlightGear) -->
<use alias="/params/display-property" />
<!-- nachher (FlightGear 2024.1) -->
<property alias="/params/display-property" />
3. Zehn Fehlermeldungen pro Sekunde
Sobald der Autopilot die Fahrt hielt, füllte sich das Log mit
Nasal runtime error: non-objects have no members, zehnmal pro Sekunde. Das Skript der
Cockpit-Anzeige ID-802 (id-802.nas) las die eingestellte Fahrt unter /it-autoflight/input/ias. Der
Autopilot dieser Version legt sie aber unter /it-autoflight/input/kts ab. Den Knoten gab es also nicht,
und jeder Zugriff darauf schlug fehl:
# vorher: ias: props.globals.getNode("/it-autoflight/input/ias"),
ias: props.globals.getNode("/it-autoflight/input/kts", 1),
Die 1 als zweites Argument legt den Knoten an, falls er noch fehlt. So kann getNode nie
wieder nil liefern.
4. Der Autopilot pendelt im Endanflug
Beim Anflug auf Nuuk mit Landeklappen und 88 kt pendelte die Dash 8 im Kursmodus um bis zu 65 m links und rechts
der Anfluglinie, mit bis zu 24° Querlage. Der Kursregler rechnet eine Kursabweichung in eine Querlage um, und die
Verstärkung war für alle Geschwindigkeiten gleich. Bei gleicher Querlage dreht ein langsames Flugzeug aber viel
schneller als ein schnelles; der gleiche Regler ist im langsamen Endanflug also zu scharf eingestellt. Jetzt wird
die Verstärkung unter 140 kt im Verhältnis zur Fahrt kleiner (höchstens bis auf die Hälfte bei 70 kt):
# Unter 140 kt dreht das Flugzeug bei gleicher Querlage schneller -> Verstaerkung
# proportional zur Fahrt verkleinern, sonst pendelt HDG im langsamen Endanflug
if (Velocities.airspeedKt.getValue() < 140) {
Gain.rollCmdKpCalc = Gain.hdgGain.getValue() * math.max(Velocities.airspeedKt.getValue(), 70) / 140;
}
5. Cockpit mit Oberfläche und zwei Piloten
Wände, Instrumentenbrett, Blendschutz und Steuerhörner wirkten wie flach grau angemalt. Die Textur hat dort nur
einfarbige Flächen, und diese Teile hatten gar keinen Shader. Ein neuer Effekt (cockpit-grain.eff) auf
Basis des Standard-Flugzeugshaders von FlightGear legt eine feine, gekachelte Kunststoff-Struktur darüber und
sorgt dafür, dass die Teile das gleiche Licht bekommen wie der Rest des Cockpits.
Außerdem sitzen jetzt zwei Piloten im Cockpit: links ein Kapitän, rechts eine Erste Offizierin, beide in Uniform
mit Headset. Die Figuren stammen aus FlightGears eigenem Bestand (Aircraft/Generic/Human), die
sitzenden Posen aus der Cessna 172. Damit man sich nicht selbst im Weg sitzt, wird die eigene Figur in der
jeweiligen Cockpit-Ansicht ausgeblendet.
Bild 2 - Blick aus der Kapitänsansicht: rechts die Erste Offizierin, die Cockpitflächen mit Struktur
6. Eigene Lackierungen
Die Lackierungen sind bei der Dash 8 einfache PNG-Bilder, die über das Modell gelegt werden. Ein kleines
Python-Skript erzeugt neue Lackierungen aus einer Vorlage: Name, Farben und Kennzeichen sind frei wählbar.
Mitgeliefert sind drei Varianten „Air Toczler“: lila (D-BTOC), rot-weiß (D-BTOR) und ganz rot mit weißer Schrift
(D-BTOX, Bild 1). Ausgewählt werden sie im Menü der Dash 8 unter Select Livery.
7. Nachtrag: Warnlampen, die nicht leuchten
Bei einem Testflug mit Triebwerksausfall blieben MASTER WARNING und MASTER CAUTION auf dem Blendschutz dunkel.
Dafür gab es zwei Gründe. Erstens lädt nur die Dash 8-400 das Warnsystem (Nasal/cautionlights.nas);
die -100, -200 und -300 bekommen es gar nicht, obwohl es auch zu ihnen passt: Es überwacht Öldruck, Hydraulik,
Generatoren, Treibstoff, Türen und Parkbremse. Jetzt lädt dhc-8-123-common.xml es mit.
Zweitens liegen die leuchtenden Flächen der beiden Tasten im 3D-Modell ein paar Millimeter hinter der
Taste. Die Lampe ist also an, man sieht sie nur nicht. Eine zusätzliche Animation lässt jetzt die Taste selbst
rot beziehungsweise gelb leuchten, solange die Lampe an ist:
<animation>
<type>material</type>
<object-name>master_warning</object-name>
<condition>
<property>instrumentation/crew-alerting/master-warning-light/state</property>
<greater-than>
<property>systems/electrical/outputs/advsy[0]</property>
<value>10</value>
</greater-than>
</condition>
<emission><red>1</red><green>0.05</green><blue>0.05</blue></emission>
</animation>
Bei der Gelegenheit auch die Dash 8-400: Ihre Konfiguration sucht das Warnsystem unter
Nasal/400/cautionlights.nas, die Datei liegt aber in Nasal/. Außerdem fehlt der ganze
Ordner mit den FMS-Dateien (Models/Cockpit/Pedestal/Front/CDU/), auch im offiziellen Paket für
FlightGear 2024. Mit korrigiertem Pfad und ohne die fehlenden Module lädt die -400 jetzt ohne Fehlermeldung; das
FMS bleibt allerdings ohne Funktion.
Ein Hinweis für eigene Skripte: Stellt man ein Triebwerk mit dem Condition Lever auf FUEL OFF ab, setzt das Modell
die Segelstellung (propeller-feather) gleich wieder zurück. Der Propeller dreht dann im Fahrtwind
weiter und bremst auf einer Seite, die Maschine giert. Die Segelstellung muss man deshalb wiederholt setzen.
8. Nachtrag: Rollen über Gras in Aberdeen
In Aberdeen rollte die Dash 8 auf dem Weg zur Bahn 16 über die Wiese. Schuld war nicht das Flugzeug, sondern das
Rollwegnetz des Flughafens, das nicht zur Landschaft passt. Wie ich den Untergrund abgetastet und den Weg
korrigiert habe, steht in einem eigenen Beitrag:
FlightGear: Rollen über Gras – Rollwege abtasten und korrigieren.
Installation
- Die DHC-8 aus dem FGAddon-Entwicklungszweig herunterladen (oder das Original oben) und in einen eigenen
Flugzeugordner legen, zum Beispiel
Custom Aircraft\DHC-8 (den Ordner im Launcher unter
„Zusätzliche Flugzeugpfade“ eintragen).
- Vorher eine Kopie des Ordners machen, dann dash8_patch.zip
in den Ordner
DHC-8 entpacken und vorhandene Dateien ersetzen.
- Im Launcher „De Havilland Canada DHC-8-200“ wählen.
Die Änderungen stehen mit Begründung in AENDERUNGEN_Claude.md im Patch. Die Lizenz bleibt die des
Originals (GPL v2 oder neuer).
Fazit
Keiner der Fehler war groß: eine auskommentierte Tabelle, ein umbenannter Knoten, eine neue Schreibweise, eine
feste Verstärkung. Aufgefallen sind sie bei Testflügen mit einem Autopilot-Skript, das bei jedem Flug Verbrauch,
Fehlermeldungen und Flugweg mitschreibt. Mit den Änderungen fliegt sie jetzt eine Tour von Grönland über Island,
Schottland und Dänemark bis nach Erfurt, mit realistischem Verbrauch und ruhigen Anflügen.