Extend AeroAlign with mixed CoG planning and telemetry base
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user