FDM verstehen und anwenden

Entwicklung von Flugzeugen, Szenerie und Speziellem

FDM verstehen und anwenden

Beitragvon Goosnen » Mi Sep 04, 2013 5:15 pm

Hallo liebe Community, Ich hab da mal ein problem,

Und zwar die Grundstruktur einer Yasim zu verstehn.
Könnte mir evtl freundlicherweise jemand untenstehenden Code aufknüpfen und beschreiben was FG mit den Daten dort macht, ???


Code: Alles auswählen
<!-- 5 -->
   <wing x="0.30" y="3.17" z="0.580"
          chord="2.9"
          length="1.3"
          taper="0.76"
          sweep="19.5"
          incidence="0"
          dihedral="2.6"
          camber="0.045">
          <stall aoa="18" width="8." peak="1.5"/>
          <flap0 start="0" end="1" lift="1.3" drag="1.6"/>
          <flap1 start="0" end="1" lift="1.3" drag="1.6"/>
         
          <control-input axis="/controls/flight/flaps" control="FLAP0" invert="true"/>

          <control-input axis="/controls/flight/elevator" square="false" control="FLAP1"/>
          <control-input axis="/controls/flight/elevator-trim" control="FLAP1"/>

          <control-output control="FLAP0" side="left" prop="/surface-positions/left-flap-pos-norm"/>
          <control-output control="FLAP0" side="right" prop="/surface-positions/right-flap-pos-norm"/>
          <control-output control="FLAP0" prop="/surface-positions/flap-pos-norm"/>
         
         <control-output control="FLAP1" side="left" prop="/surface-positions/left-aileron-pos-norm"/>
         <control-output control="FLAP1" side="right" prop="/surface-positions/right-aileron-pos-norm"/>
         <control-output control="FLAP1" prop="/surface-positions/aileron-pos-norm"/>
         
  </wing>
 
   <!-- 6 -->
  <hstab x="-0.36" y="4.39" z="0.630"
        chord="2.640"
        length="3.5"
        taper="0.56"
        sweep="24.4"
        incidence="0"
        dihedral="2.2"
        twist="0"
        camber="0.045">
        <stall aoa="18" width="8." peak="1.5"/>
        <flap0 start="0" end="1" lift="1.35" drag="1.15"/>

          <!-- control-input axis="/controls/flight/elevator" control="FLAP0" invert="true"/>
          <control-input axis="/controls/flight/elevator-trim" control="FLAP0" invert="true"/ -->
         
        <control-input axis="/controls/flight/aileron" control="FLAP0" square="true" split="true"/>
        <control-input axis="/controls/flight/aileron-trim" control="FLAP0" split="true"/>

          <control-input axis="/controls/flight/elevator" square="false" control="FLAP0"/>
          <control-input axis="/controls/flight/elevator-trim" control="FLAP0"/>
         
          <control-output control="FLAP0" side="left" prop="/surface-positions/left-elevator-pos-norm"/>
          <control-output control="FLAP0" side="right" prop="/surface-positions/right-elevator-pos-norm"/>
   </hstab>


schonmal sehr gespannt bin, und zwar fast mehr darauf ob sich jemand findet der sich dessen annimmt als auf die Daten^^


Grüßle
Benutzeravatar
Goosnen
 
Beiträge: 233
Registriert: So Jul 07, 2013 7:38 pm
Callsign: goosnen

Re: FDM verstehen und anwenden

Beitragvon dfaber » Mi Sep 04, 2013 7:53 pm

na ich fang mal an ...

<!-- 5 -->
<wing x="0.30" y="3.17" z="0.580" Position der Flügelwurzel
chord="2.9" Die Tiefe des Flügelelements
length="1.3" Die Länge des Flügel elements von der Wurzel zur Spitze
taper="0.76" Die Streckung, das Verhältnis zwischen Flügeltiefe am Anfang und am Ende
sweep="19.5" Die Pfeilung
incidence="0" Der Einstellwinkel des Flügelelementes, der Winkel zwischen dem Rumpf und Flügelsehne
dihedral="2.6" Der Winkel der V Stellung
camber="0.045"> Der Auftrieb den das Flügelprofil bei 0 Grad Anstellwinkel liefert als Beiwert
<stall aoa="18" width="8." peak="1.5"/> Kennwerte des Strömungsabriss, aoa ist der Anstellwinkel bei dem der Stall eintritt, width ist ein Maß für die Stärke des Stalls, peak ist ein Beiwert für die "Effektivität" des Flügels
<flap0 start="0" end="1" lift="1.3" drag="1.6"/> Jedes Flügelelement kann 2 Steuerflächen haben, Anfang und Ende beziehen sich auf die Gesamtlänge des Elementes. Dies ist flap0
<flap1 start="0" end="1" lift="1.3" drag="1.6"/> Diese Steuerflächen liegen sozusagen parallel übereinander.

<control-input axis="/controls/flight/flaps" control="FLAP0" invert="true"/> Flap0 bekommt als Steuereingabe die Kontrolleingabe der Klappen

<control-input axis="/controls/flight/elevator" square="false" control="FLAP1"/> Flap1 bekommt die Eingabe des Höhenruders
<control-input axis="/controls/flight/elevator-trim" control="FLAP1"/> und der Höhenrudertrimmung

<control-output control="FLAP0" side="left" prop="/surface-positions/left-flap-pos-norm"/> Die vom Yasim berechnete Ruderposition wird an diese property geschrieben, die können von den Steuereingaben unterschiedlich sein, z.B kann Klappenposition "voll" eingestellt sein, aber die Klappen haben die Position noch nicht erreicht. Wird hauptsächlich für Animation verwendet, der Ausgabewert kann aber auch als Eingabe für ein anderes control element sein.
<control-output control="FLAP0" side="right" prop="/surface-positions/right-flap-pos-norm"/>
<control-output control="FLAP0" prop="/surface-positions/flap-pos-norm"/>

<control-output control="FLAP1" side="left" prop="/surface-positions/left-aileron-pos-norm"/>
<control-output control="FLAP1" side="right" prop="/surface-positions/right-aileron-pos-norm"/>
<control-output control="FLAP1" prop="/surface-positions/aileron-pos-norm"/>

</wing>

<!-- 6 -->
<hstab x="-0.36" y="4.39" z="0.630" Das Höhenruder. Im FDM gibt es nur ein Wing Element, alle anderen mstabs und vstabs liefern nur zusätzlichen Auftrieb. Das Höhenruder ist das wichtigste Element neben dem Wing element.
chord="2.640"
length="3.5"
taper="0.56"
sweep="24.4"
incidence="0" ist für hstab unnötig, der Solver berechnet den Anstellwinkel für das hstab und ignoriert dieses.
dihedral="2.2"
twist="0"
camber="0.045">
<stall aoa="18" width="8." peak="1.5"/>
<flap0 start="0" end="1" lift="1.35" drag="1.15"/>

<!-- control-input axis="/controls/flight/elevator" control="FLAP0" invert="true"/>
<control-input axis="/controls/flight/elevator-trim" control="FLAP0" invert="true"/ -->

<control-input axis="/controls/flight/aileron" control="FLAP0" square="true" split="true"/>
<control-input axis="/controls/flight/aileron-trim" control="FLAP0" split="true"/>

<control-input axis="/controls/flight/elevator" square="false" control="FLAP0"/> hier wird die Eingabe von Quer- und höhenruder zusammengemischt und normalisiert damit nicht mehr als 1 oder -1 rauskommt. Das bedeutet wenn das Höhenruder voll gezogen ist kann das Querruder nur noch auf einer Seite nach unten gehen. Man könnte mit src0/dst0 für die Rudereingaben Grenzwerte festlegen damit nicht eine Eingabe die andere komplett übersteuert (z.B. das Höhenruder nur bis max 0.7/-0.7 ausschlagen lassen) .
<control-input axis="/controls/flight/elevator-trim" control="FLAP0"/>

<control-output control="FLAP0" side="left" prop="/surface-positions/left-elevator-pos-norm"/> Die zusammengemischte Rudrstellung zum Animieren
<control-output control="FLAP0" side="right" prop="/surface-positions/right-elevator-pos-norm"/>
</hstab>

Grüße

Detlef
dfaber
 
Beiträge: 302
Registriert: Di Jun 11, 2013 1:43 pm
Wohnort: Aachen
Callsign: D-FABR

Re: FDM verstehen und anwenden

Beitragvon Goosnen » Sa Sep 07, 2013 1:54 pm

das nenn ich mal ne Anleitung!

dann ist die position der Flügelwurzel also mitte der wurzel, und nicht vorne/hinten??
also x"0.30" liegt bei einer länge von 2.9 (des Flügelansatzes) auf 1.45 sprich mittig!?

und nicht bei 0....

ok hab noch ne menge anderer fragen, aber bin grade nicht in FDM laune^^

(zb das mit dem zusammen mischen fürds elevon... danke an Haddock an dieser stelle, es wär mir nicht eingefallen, obwohl ich auchschon drüber gelesen hatte... als ich hadds FDM das erstemal überflogen hab auf der suche nach der aileron animations lösung... ist mir das sofort aufgefallen und ich hab mir gedenkt, problem behoben............

Bis ich dann keinen Ladebildschirm mehr hatte, sondern eine Horten ohne seitensteuerung.......
ich hab nichts gemacht als die outputs wieder herzustellen wie sie auch bei helijah waren, mit ergebnis des die steuerung nichmehr funktionierte... solche dinge machen mich dann doch skeptisch ob ich mich überhaupt mit FDM's beschäftigen sollte^^ Tagelang versucht und gemacht, bis ich dann drauf gekommen bin einfach die prop für die animation zu ändern...lol)
Benutzeravatar
Goosnen
 
Beiträge: 233
Registriert: So Jul 07, 2013 7:38 pm
Callsign: goosnen

Re: FDM verstehen und anwenden

Beitragvon Goosnen » Fr Okt 11, 2013 2:41 pm

Nächstes Ding was mich skeptisch macht mich mit FDM's näher befassen zu wollen:

for zwei tagen hatte ich die Do228 endlich einigermaßen ausbalanciert........
ich weiß jetzt leider nicht warum ich mir davon nicht gleich ne sicherung gemacht habe, ob ich etwas an dem balancing gravierend verändert habe, oder ob es noch mehrere Gründe für geben kann warum sie jetzt diese hundsgemeine abkipperei zeigt....... sie kann jetzt nichtmehr senkrecht gradaus fliegen... (wenn man höhenruder nach unten giebt macht sie quasi einen riesen satz nach unten)

giebt es unter euch jemand der mal eben so nebenbei ein balancing hinkriegt?
oder mir erklären kann wie man mit dem yasimtool umgeht

bei mir steht da nur immer 00000 bei jedem wert....
und in den docs fand ich auch nur was über rotorenbetriebene yasims :cry:


schöne Grüß
tob
Benutzeravatar
Goosnen
 
Beiträge: 233
Registriert: So Jul 07, 2013 7:38 pm
Callsign: goosnen

Re: FDM verstehen und anwenden

Beitragvon Cpt Haddock » Fr Okt 11, 2013 6:30 pm

Hi Tobi,

benutzt Du das Yasim-plugin für Blender? Da kannst Du schon mal ganz gut Positionierungsfehler Deiner Elemente erkennen.
Daraus entsteht leider noch nicht automatisch ein brauchbares FDM.
Vermute mal die 0000 Werte kriegst Du im Terminal angezeigt. Das kann verschiedene Gründe haben. Hier ein Beispiel wo ich einen xml-Fehler erzeugt hatte:

XML parse error: not well-formed
at /Volumes/Horten-Ho-IX/ho-ix-yasim.xml,
line 146, column 93 (SimGear XML Parser)
Solution results: Iterations: 1
Drag Coefficient: 1000.000000
Lift Ratio: 1.000000
Cruise AoA: 0.000000
Tail Incidence: -0.000000
Approach Elevator: 0.000000
CG: x:-0.082, y:0.000, z:0.634

das ist die angenehmere Art, weil das nur ein Schreibfehler ist, der sich leicht finden lässt. Er sagt die ja die Zeile und Stelle.

Unangenehmer sind dann die Fehler, die aus dem FDM selbst resultieren. Das sieht dann z. B. so aus:

/me209v1-yasim.xml
SOLUTION FAILURE: Solution failed to converge after 10000 iterations
Solution results: Iterations: 10002
Drag Coefficient: 7.821149
Lift Ratio: 242.271667
Cruise AoA: -0.023325
Tail Incidence: 0.118936
Approach Elevator: 0.000000
CG: x:1.191, y:-0.000, z:0.196

Hier ist nicht immer so klar warum das passiert. Manchmal änderst Du einen Wert um 0.1 und das FDM, was die ganze Zeit funktionierte, geht nicht mehr. Auch bei Werten, wo man denk das kann jetzt nicht sein...
Ich habe mir angewöhnt immer nur möglichst ein oder zwei Werte gleichzeitig zu ändern. So ist ziemlich klar wo der Schuldige zu suchen ist. Zur Not wieder zurück. Manchmal lassen sich dann plötzlich Werte eingeben die vorher nicht gingen, nachdem man etwas anderes geändert hat.
Ausserdem speichere ich immer Zwischenstände mit Versionsnummern. Manchmal meckert Yasim zwar nicht, aber das FDM wird trotzdem eher schlechter. Dann kann ich von der letzen guten Version weiterarbeiten.
Ich mache erstmal die Struktur (Rumpf, Flügel etc.) und starte erst dann mit den Parametern. Zu Beginn sollte man den Schwerpunkt schon mal in der Nähe des realen haben. Sonst hast Du überall sehr extreme, unrealistische Werte drin. So was kann manchmal auch fliegen, ist aber dann ein weiter Weg das hinzutrimmen.
Generell solltest Du soviel wie möglich Flugdaten des echten Flugzeugs sammeln. Teils kann man die direkt nutzen. Oft muss man aber noch viel probieren, bis man sie erreichen kann.

Hoffe das hilft.

H-)
Cpt Haddock
 
Beiträge: 156
Registriert: Sa Aug 24, 2013 10:54 am
Callsign:

Re: FDM verstehen und anwenden

Beitragvon Goosnen » Sa Okt 12, 2013 8:57 am

Ja es hilft insofern des ich daran erinnert werde nich mit helschen daten zu experimentieren sondernlieberschnellstmöglich die realen finde ;) Das modell und FDM ist schon "fertig" nur halt wie man es aus frankreich gewohnt ist, eher mal schnell zusammen gezimmert^^ Aber eine gute nachricht hab ich: Sicherung lag aufm Desktop...

problöm ist nur des ich mit sehr unrealistischen werten arbeite was das balancing betrifft, weil ich a, bucks anleitung zum balancing nicht kannte und jetzt weiß des ich da vll doch mit verstand alleine schon einen ordentlichen schwerpunkt hinbekommen müsste, und b. nochmal von dir dran erinnert wurde grade ^^ DANKE

[wieviel tonnen meine turboprops wiegen willst du nicht wissen, oder was sie bei crosswind Landungen machen ;~) aber das Flugverhalten stimmte mir so einfach um einiges besser..... taxing hab ich erst danach festgestellt :~( ]

Bei dem Yasimtool such ich bis heute nach der beschreibung wie man es anwendet, ich klick es immer wärend des fluges an, und dann steht da file not found und alles 00000.... aber nachdem ich die nacht nochmal Bucks Hangar durstöberte sollte ichs nun zumindest theoretisch auch ohne ein yasimtool hinbekommen!

Mit den "after 10000 iritations" das hatte ich natürlich auchschon öfters, meistens beim balancing oder weight... was aber wohl daran liegen mag des ich mich an sonst nochnichts rantraue^^

Trotzdem schonmal vielen lieben dank, ich hoffe ich hab es jetzt richtig verstanden und werde nachher weiteres versuchen

Gruß Goos
Benutzeravatar
Goosnen
 
Beiträge: 233
Registriert: So Jul 07, 2013 7:38 pm
Callsign: goosnen

Re: FDM verstehen und anwenden

Beitragvon dfaber » Sa Okt 12, 2013 1:57 pm

Goosnen hat geschrieben:Bei dem Yasimtool such ich bis heute nach der beschreibung wie man es anwendet, ich klick es immer wärend des fluges an, und dann steht da file not found und alles 00000....


Das YaSim Tool rufst du außerhalb von FG aus einer Eingabeaufforderung auf. hintendran kommt dann noch der Pfad der zu verarbeitenden Yasim FDM Datei. Dann kommt so etwas wie hier raus:

Code: Alles auswählen
Solution results:       Iterations: 775
 Drag Coefficient: 38.234997
       Lift Ratio: 41.437771
       Cruise AoA: -1.268257
   Tail Incidence: 0.891031
Approach Elevator: -0.975851
               CG: x:-5.107, y:0.000, z:-0.269

  Inertia tensor : 125121.859, 0.000, 5666.171
        [kg*m^2]   0.000, 99544.320, 0.000
     Origo at CG   5666.171, 0.000, 220891.891


Drag Coefficient und Lift Ratio sind Beiwerte an denen man ansehen kann wie gut der Flieger gleitet. Ein großer Unterschied zwischen den beiden Werten (mit hohem Lift) deutet auf Probleme beim langsamer werden hin.
Cruise AOA zeigt den Anstellwinkel beim Reiseflug. Das kann auch negativ sein. Wenn der zu negativ ist hat man wahrscheinlich zuviel camber und/oder zuviel wing incidence.
Tail Incidence ist der berechnete Anstellwinkel des Höhenleitwerks. Ein Incidence beim Elevator wird ignoriert.
Approach Elevator ist die Stellung des Höhenruders beim Anflug. Ich stelle es meist so ein das der Wert um die 0.9 liegt. Das bedeutet den Knüppel beim Anflug weit zurück zu haben.
CG ist die Position des Schwerpunktes.
Für die anderen Werte habe ich auch keine Erklärungen.

Grüße
dfaber
 
Beiträge: 302
Registriert: Di Jun 11, 2013 1:43 pm
Wohnort: Aachen
Callsign: D-FABR

Re: FDM verstehen und anwenden

Beitragvon Goosnen » So Okt 13, 2013 7:39 am

hintendran kommt dann noch der Pfad der zu verarbeitenden Yasim


asoo :D muß einem doch gesagt werden....
dankse vielmals
Benutzeravatar
Goosnen
 
Beiträge: 233
Registriert: So Jul 07, 2013 7:38 pm
Callsign: goosnen

Re: FDM verstehen und anwenden

Beitragvon Cpt Haddock » So Okt 13, 2013 8:54 pm

Zum Inertia tensor ht Buck inzwischen ein gutes Tutorial:
http://www.buckarooshangar.com/flightgear/yasimtut_inertia_tensors.html

So wie ich s verstehe, repräsentiert es die Massen, die für Trägheitsberechnungen bei Beschleunigungen um die verschiedenen Achsen herangezogen werden. Bin kein Physiker. Die Begrifflichkeit mag also nicht präzise oder fachgerecht sein.

H-)
Cpt Haddock
 
Beiträge: 156
Registriert: Sa Aug 24, 2013 10:54 am
Callsign:


Zurück zu FlightGear Development

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast