Extend AeroAlign with mixed CoG planning and telemetry base

This commit is contained in:
2026-03-11 23:14:33 +01:00
parent 538c3081bf
commit 56890272a0
28 changed files with 1631 additions and 1332 deletions
+268
View File
@@ -0,0 +1,268 @@
# Aircraft Profile Model
## Zweck
Diese Datei ist die verbindliche Fachvorgabe fuer das Modul, das AeroAlign und CoG gemeinsam bedienen soll.
Sie legt fest:
- welche Flugzeugprofile es gibt
- welche Flaechenarten unterschieden werden
- welche Workflows pro Profil aktiv sind
- welche Spezialfaelle ausdruecklich anders behandelt werden
## Begriffe
### Feste Flaechen
Feste, nicht verstellte aerodynamische Referenzflaechen.
Beispiele:
- Tragflaeche
- Dämpfungsflosse Hoehenleitwerk
- Dämpfungsflosse Seitenleitwerk
- feste Canard-Flaeche
### Bewegliche Flaechen
Aktiv angelenkte Flaechen oder Klappen.
Beispiele:
- Querruder
- Hoehenruder
- Seitenruder
- Wölbklappe
- Spoiler
- Taileron
- Pendelleitwerk
### Referenzflaeche
Die Flaeche, gegen die eine andere Flaeche gemessen wird.
Regel:
Bewegliche Flaechen werden gegen ihre zugehoerige feste Referenz gemessen, nicht pauschal gegen andere bewegliche Flaechen.
## Grundsaetze
1. `EWD / Referenzgeometrie` ist ein eigener Workflow.
2. `CG / Schwerpunkt` ist ein eigener Workflow.
3. `Ruder- und Klappeneinstellung` ist ein eigener Workflow.
4. `90 Grad Servoarm` ist keine universelle Fachregel und darf nur als optionale Montagehilfe behandelt werden.
5. `Pendelleitwerk` und `Taileron` sind keine normalen Hoehenruder.
## Profiltypen
### 1. `classic`
Klassisches Flaechenflugzeug mit:
- Tragflaeche
- Dämpfungsflosse Hoehenleitwerk
- Hoehenruder
- Dämpfungsflosse Seitenleitwerk
- Seitenruder
- Querruder
Aktive Workflows:
- `reference`
- `surfaces`
- `cog`
- spaeter `throw`
MVP-Status:
- dies ist das primäre Startprofil fuer das System
### 2. `jet_taileron`
Jet mit kombiniertem Hoehen-/Querruder an beweglichen Heckflaechen.
Merkmale:
- keine klassische Trennung zwischen Hoehenruder und Querruder hinten
- linke und rechte Tailerons muessen symmetrisch und differenziert pruefbar sein
Aktive Workflows:
- `reference`
- `surfaces`
- `cog`
- spaeter `mixing_check`
Sonderregel:
Tailerons werden nicht wie normale Hoehenruder gegen eine Dämpfungsflosse behandelt.
### 3. `stabilator`
All-flying stabilizer oder Pendelhöhenleitwerk.
Merkmale:
- gesamte Flaeche bewegt sich
- keine feste Dämpfungsflosse als lokale Referenzflaeche
Aktive Workflows:
- `reference`
- `surfaces`
- `cog`
Sonderregel:
Die bewegliche Gesamtflaeche wird gegen eine externe Referenz gemessen, typischerweise Tragflaeche oder definierte Vorrichtung.
### 4. `glider_flap`
Segler mit Querrudern, Wölbklappen und oft mehreren Flugphasen.
Merkmale:
- Grundneutralstellung kann je nach Flugphase bewusst nicht null sein
- Butterfly, Speed, Thermik und Cruise koennen unterschiedliche Sollwerte haben
Aktive Workflows:
- `reference`
- `surfaces`
- `cog`
- spaeter `flight_mode_offsets`
### 5. `delta_elevon`
Delta oder Nurfluegel mit kombinierten Elevons.
Merkmale:
- keine klassische EWD wie beim Leitwerksflugzeug
- linke und rechte Elevons sind kombinierte Hoehen-/Querruderflaechen
Aktive Workflows:
- `reference`
- `surfaces`
- `cog`
Sonderregel:
Es gibt keine klassische Leitwerksreferenz. Das Profil darf keine Leitwerkslogik erzwingen.
## Flaechentypen fuer das Datenmodell
Das Modul soll mindestens folgende Typen unterscheiden:
- `wing_reference`
- `tailplane_fixed`
- `fin_fixed`
- `aileron`
- `elevator`
- `rudder`
- `flap`
- `spoiler`
- `taileron`
- `stabilator`
- `elevon`
- `canard_fixed`
- `canard_control`
## Workflow-Freigabe pro Profil
| Profil | Reference | Surfaces | CoG | Throw später | Speziallogik |
|--------|-----------|----------|-----|--------------|--------------|
| `classic` | ja | ja | ja | ja | gering |
| `jet_taileron` | ja | ja | ja | ja | hoch |
| `stabilator` | ja | ja | ja | ja | hoch |
| `glider_flap` | ja | ja | ja | ja | mittel |
| `delta_elevon` | ja | ja | ja | ja | hoch |
## Messregeln pro Flaechenart
### Querruder
Gegen:
- linke oder rechte Tragflaechenreferenz
### Hoehenruder
Gegen:
- Dämpfungsflosse Hoehenleitwerk
### Seitenruder
Gegen:
- Dämpfungsflosse Seitenleitwerk
### Wölbklappen
Gegen:
- zugehoerige Tragflaechenreferenz
Hinweis:
Die Sollstellung muss nicht `0.0` sein.
### Taileron
Gegen:
- profilabhaengige Heckreferenz oder externe Referenz
### Stabilator
Gegen:
- externe Referenzflaeche
Nicht gegen:
- nicht vorhandene Dämpfungsflosse
## UI-Folgen
Die UI darf nicht einfach fuer alle Modelle dieselben Labels oder Buttons anzeigen.
Pflicht:
- Profilwahl beim Anlegen des Modells
- sprechende Flaechenrollen
- nur die fuer das Profil gueltigen Workflows anzeigen
- Sonderflaechen mit eigenen Begriffen benennen
Beispiele:
- `Elevator` nur bei `classic`
- `Stabilator` bei `stabilator`
- `Taileron Left/Right` bei `jet_taileron`
- `Flap Left/Right` bei `glider_flap`
## MVP-Grenze
Fuer den ersten echten Produktstand soll das Modul fachlich vorbereitet sein, aber operativ auf `classic` optimiert werden.
MVP in der Praxis:
- klassische Tragflaeche
- Dämpfungsflosse Hoehenleitwerk
- Hoehenruder
- Querruder links/rechts
- Seitenruder optional
- CoG-Messung
Andere Profile muessen im Datenmodell vorgesehen sein, auch wenn sie anfangs noch nicht vollstaendig in der UI freigeschaltet sind.
## Verbindliche Anweisung fuer die weitere Implementierung
1. Keine harte Verdrahtung auf nur `elevator`, `aileron`, `rudder`.
2. Workflow-Entscheidungen muessen profilabhaengig sein.
3. `EWD`, `CG` und `surface setup` bleiben getrennte Modi.
4. `Dämpfungsflosse` ist der Standardbegriff fuer den feststehenden Leitwerksteil.
5. `90 Grad Servoarm` darf nie als alleinige Sollbedingung modelliert werden.