Flugsimulation programmieren

Diskutiere Flugsimulation programmieren im Multimedia Forum im Bereich Literatur u. Medien; Hallo liebes Forum, ich möchte wie andere vor mir eine Flug Simulation programmieren. Ich programmiere in C++ mit dem Framework gloost von...

Moderatoren: Grimmi
  1. jb3380

    jb3380 Flugschüler

    Dabei seit:
    14.01.2010
    Beiträge:
    2
    Zustimmungen:
    0
    Ort:
    Thüringen
    Hallo liebes Forum,

    ich möchte wie andere vor mir eine Flug Simulation programmieren.
    Ich programmiere in C++ mit dem Framework gloost von Felix weißig.
    Momentan besitze ich einen Scenegraph welcher alle Objekte hält(berg, wasser, flugzeug).
    Mein Problem ist die Flugdynamik:
    folgende Links habe ich gefunden im Forum:
    http://www.flugzeugforum.de/forum/showthread.php?t=34639

    1. meine erste Frage gibt es noch mehr Unterhaltungen in anderen Threads?

    Ich habe nun ein Flugzeug bzw. eine KLasse erstellt welche folgende Methoden schon implementiert sind
    Auftrieb
    folgende Seite
    http://www.flugtheorie.de/15SCHULE.HTM
    Code:
    int
    Airplane::getbuoyancy()///auftrieb
    {
    
          int buoyancy = 1.25*  _wingspread *
                        calcA_Forward()[0] *calcA_Forward()[0]*calcA_Forward()[0] ///speed forward
                        *sin(getAlphaPitch())*2 * cos( getAlphaPitch())*2 ;
    return buoyancy;
    }
    
    benötigter Startgeschwindigkeit
    Code:
    ///which speed is needed to start
    bool
    Airplane::calcuSpeedStart()
     {
       ///Formel Gewichtskraft F_g = m*g (g = 9.81)
      float scalePlaneValues = 1;
      float g = 9.81 *scalePlaneValues;
      float m = _weight  *scalePlaneValues ;
      float a_fluegel =_aFluegel *scalePlaneValues;
      float f_g = 9.81*m *scalePlaneValues;
      float luftdichte = 1.25 *scalePlaneValues;
    
      ///Staudruck =0.5 * Dichte * (Geschwindigkeit)²
      float staudruck = 0.5  * luftdichte *  _actualThrust*_actualThrust;
    
    
      ///* v_start =sqrt( 2*m*g/p*A_Flügel)*/
      float v_start =  sqrt((2*m* g)/(luftdichte * a_fluegel*staudruck));
    
    
    
      if (_actualThrust > v_start )
      {
        return true;
      }
      else
      {
        return false;
      }
     }
    die Beschleunigung
    Code:
    ///actuelThrust?????????
    gloost::Vector3
    Airplane::calcA_Forward()
    {
      ///u_punkt = Gewichtskraft/Masse + Schub/Masse + (Aerodynamische Kräfte)/Masse
      ///Beschleunigung in Richtung vorne
    
      gloost::Vector3 u_punkt=   gloost::Vector3(_actualThrust/_weight,0.0,0.0);//)+gloost::Vector3(getbuoyancy()/_weight,0.0,0.0) ;// +gravitationalForce()/_weight;
     return  u_punkt;//= gravitationalForce(weight)/weight ;//+ Schub/weight + (Aerodynamische Kräfte)/weight
    }
    
    
    Würde mich sehr freuen wenn mich jemand oder viele dabei begleiten.

    2. Gibt es noch Fehler bzw. die dritte vorgestellt Funktion ist ja noch sch....
    Momentan wird auf die Position des Flugzeuges einfach pro Zeitschritt der calcA_Forward() Wert drauf getan. das Zusammenspiel zwischen Auftrieb und Anziehug ist auch noch nicht vorhanden.

    verweist mich auch gern an andere Threads hab leider keine hilfreichen gefunden bzw. nicht verstanden.

    Soweit erstmal ... :-)
     
  2. Anzeige

    Schau dir mal die beiden Links an:
    diesen Ratgeber und die Flugzeug-Kategorie

    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Rhönlerche, 17.01.2010
    Rhönlerche

    Rhönlerche Alien

    Dabei seit:
    27.03.2002
    Beiträge:
    5.848
    Zustimmungen:
    1.111
    Ort:
    Deutschland
  4. Peeder

    Peeder Berufspilot

    Dabei seit:
    09.02.2009
    Beiträge:
    52
    Zustimmungen:
    7
    Hallo jb3380,

    erst mal willkommen im Forum. Auf was willst du denn genau hinaus? Ich kann mich eigentlich nur meinem Vorredner anschließen, ich finde das aber sehr mutig so etwas anzugehen, wobei ich SELBST keinen Sinn darin sehen würde so ein Projekt anzugeben (ist schon sehr sehr komplexes Thema). Ich habe selbst einiges mit FlightGear gemacht und kann sagen, dass die Entwickler immer sehr zuvorkommend, nett und sehr hilfreich waren. Natürlich brauchen diese auch immer gute Männer (/Frauen) die unermüdlich helfen, das Projekt zu verbessern.
    Wenn du dich dafür interessierst, kann ich dir vielleicht ein paar Einsteiger-Tipps geben. :HOT:
    Wenn du wirklich vorhast, so etwas zu programmieren würde ich mich erst mit der grundsätzlichen Flugmechanik beschäftigen. Ich weiß nicht, wie gut du dich damit auskennst, aber es wäre sicher nichts falsches, dir dazu ein Buch zu kaufen (wenn du das Projekt wirklich ernsthaft angehen willst) oder dir ein Skriptum einer Uni zu besorgen. Ich glaube so hopp la hopp wird das ganze leider nichts. Grunsätzlich ist nämlich ein ganzer Batzen Verständnis dabei (nicht nur das Umsetzten von ein paar einfachen Gleichungen von Papier auf C++)... ;)

    Grüße
     
  5. #4 Thiel12, 18.01.2010
    Thiel12

    Thiel12 Fluglehrer

    Dabei seit:
    27.05.2009
    Beiträge:
    220
    Zustimmungen:
    14
    Ort:
    Schwerin
    Hi.

    Ist ein sehr anspruchvolles Projekt... Aber nicht unmöglich. hab mal vor Jahren einen Onlineserver für ein 2WK Flugsimulator in Java programmiert, war ne nette Aufgabe und auch spannend, schlief aber dann ein, weil mein Real Life mich voll in beschlag nahm.

    Drücke die Daumen, das was draus wird. :TOP:
     
  6. jb3380

    jb3380 Flugschüler

    Dabei seit:
    14.01.2010
    Beiträge:
    2
    Zustimmungen:
    0
    Ort:
    Thüringen
    no start :-)

    erstmal vielen Dank!!!! dachte schon die Leute haben keine Lust mehr auf solche threads zu antworten.

    @Rhönlerche
    Ich war auf dieser Seite und habe mir den SourceCode runtergeladen, leider habe ich den für mich interressanten Codeteil nicht gefunden.
    (also die Stelle wo die Flugberechnungen gemacht bzw. Parameter gegeben werden)

    @wem es interssiert
    *An dieser Stelle möchte ich betonen das ich dieses Projekt mache um mehr zu programmieren bzw. um mich zu verbessern
    * der Simulator soll es mir einfacher machen etwas zu programmieren wobei ich spaß habe(ich mag Flugzeuge :-) )
    *ich weitere Sachen lerne: wie Terrain konstruieren bzw. entstehen, Wassersimulation, Grafikkarten programmierung ect.

    Also ein "Anfänger" welcher durch ein Projekt besser werden will.

    Ich habe:

    Einen Scenegraphen(Baumstruktur) in welchen ich alle Objekte einhänge und welcher dann traversiert (durchgegangen) und die Objekte gezeichnet werden.

    Als Flugzeug habe ich momentan ein .obj f5e Tiger kostenlos von der Seite
    http://www.turbosquid.com/

    Als Terrain habe ich eine Heightmap(schwarz/weiß Bild) in Photoshop erstellt
    und dann einfach die Höhenwerte in Verticies umgewandelt und abgespeichert. Diese dann mit einen Delaunay programm zu einem .obj umgewandelt.

    Als Wasser benutze ich eine Texure welche durch einen Shader verzehrt wird und Wasser simuliert.

    (nur falls noch mal fragen in diese Richtung gekommen wären.. )

    @Peeder

    -ich würde es gern so weit es geht vieles selber programmieren bzw. nicht bei anderen dazu stoßen, ich lerne da immer etwas besser, auch wenns länger dauert
    - Tipps sind sehr gut !!!

    Momentan möchte ich die Steuerung neu anfangen:
    -Da die Steuerung momentan nicht den physikalischen Grundgedanken entspricht(bzw. ein abstraktion davon) und einfach nicht ordentlich funktioniert.
    -dazu würde ich gern alle Parameter speichern die ich benötige(ein Teil habe ich ja schon), mir fehlen die Ruder ect.( Winkel)
    - welches günstige Buch könntet ihr mir denn empfehlen( es sollte kein "Flug
    physik für dummies" sein, aber schon gut verständlich, wisst ja selber...)
    -bei anderen Projekten würde ich schon mitarbeiten, glaube momentan ist mir mehr geholfen alles erstmal selber kennen zu lernen
    -für mich waren die Formeln der einzige Anker, leider ist das Thema schwer zu finden und wenn dann nur Bruchstückhaft

    LG jb
     
  7. #6 Thiel12, 18.01.2010
    Thiel12

    Thiel12 Fluglehrer

    Dabei seit:
    27.05.2009
    Beiträge:
    220
    Zustimmungen:
    14
    Ort:
    Schwerin
    Hi nochmal.

    Sicherlich kann man den "schweren" weg gehen und alles selbst im Trial&error Verfahren lernen. Aber aus eigener Erfahrung ist das der umständliche weg, und der ist aus meiner Sicht nicht eben erstrebenswert. Aber wenn du so besser lernst hoffe ich, das du entsprechende Hinweise findest.

    Da du das Rad neu erfinden wirst, empfehle ich dir die Lektüre von entsprechenden Fachbüchern wie

    E. Götsch: Luftfahrzeugtechnik, Motorbuch Verlag Pietsch, 2003

    oder aus dem Anhang.

    Vierl Erfolg:FFTeufel:
     

    Anhänge:

    • teil1.pdf
      Dateigröße:
      113,7 KB
      Aufrufe:
      25
  8. Anzeige

    Hallo

    Schau dir doch mal die Luftfahrt-Kategorie an

    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  9. #7 Acanthurus, 19.01.2010
    Acanthurus

    Acanthurus Testpilot

    Dabei seit:
    19.07.2005
    Beiträge:
    687
    Zustimmungen:
    241
    Beruf:
    Arbeit
    Ort:
    Fest
    Moin.

    Also die "Flugtheorie"-Seite ist mir (früher mal beruflich Aerodramatiker) ziemlich aufgestoßen. Da wird eine Auftriebserklärung aufgestellt, welche zwar auf physikalischen Grundprinzipien basiert, aber sehr unvollständig und teilweise schlicht irreführend ist.

    An deiner Stelle würde ich mir für die Flugmechanik die ganz klassischen Grundformeln hernehmen - die sind millionenfach bewährt und reichen für einen einfachen Flugsimulator allemal:

    Hier mal ne Aufstellung der relevanten Grundgleichungen:
    http://www.delago.de/ariane/DFormel.htm

    Daraus kannst du dir aus dem Flugzustand die Kräfte und Momente ausrechnen, welche auf den Flieger wirken.
    Diese Werte dann in einem einfachen zeitschrittverfahren numerisch integrieren (ein expliziter Euler-Schritt reicht da, nach dem Motto Geschwindigkeit_neu=Geschwindigkeit_alt+zeitschritt*Luftkraft/masse)
    und daraus die Lageänderung des Fliegers (lage_neu=lage_alt+zeitschritt*geschwindigkeit_neu)

    Das ganze natürlich vektoriell, für drei translatorische und 3 rotatorische Freiheitsgrade. Es ist nicht sehr aufwendig, aber ein wenig mechanik und ein klitzekleinwenig Mathematik (speziell Differentialgleichungen und Numerik/Zeitschrittverfahren) ist schon von Nöten, um sowas zu implementieren.
    Das ergibt nicht gerade die beste aller Sim Engines, aber man muss ja mal klein anfangen.

    Formeln wie eine vorab ausgerechnete Startstrecke brauchst du NICHT, das ergibt sich durch die Integration der Zeitschritte automatisch.


    gruß

    a.p.
     
  10. #8 Kilo Mike Sierra, 10.03.2010
    Kilo Mike Sierra

    Kilo Mike Sierra Berufspilot

    Dabei seit:
    27.01.2008
    Beiträge:
    68
    Zustimmungen:
    9
    Ort:
    nördlich von Saint-Tropez (weit nördlich)
    Empfehlung von sachdienlicher Literatur

    Zum Thema Software-Entwicklung für PC-Flugsimulatoren kann ich folgende Bücher empfehlen:


    "Physics for Game Developers" von David M. Bourg, O'Reilly, 2002

    Dieses insgesamt hochinteressante Buch widmet allein 44 Seiten der Entwicklung einer gut ausbaufähigen Flugsimulationsplattform. Diese enthält ein flugmechanisches Modell, welches diesen Namen durchaus schon verdient. Ganz ähnlich wie bei dem Aero-Model für Flight Unlimited II und III (Looking Glass Studios), wird das Flugzeug in einzelne Elemente zerlegt, z.B. linke und rechte Außenflügel mit Querruder, Innenflügel mit Landeklappe, linkes und rechtes Höhenleitwerk, Seitenleitwerk und Rumpf. Die aerodynamische Kräfte und die durch ihre Masse verursachten Trägheitswirkungen der einzelnen Elemente werden individuell berechnet und deren Gesamtwirkungen auf die Lagewinkel des Flugzeuges sowie auf die Position des Schwerpunktes im Raum ermittelt.
    Dazu kommen eine flüssige Sichtsimulation mit drei Kamerapositionen (Cockpit, Spot Plane, Tower) sowie ein einfaches 3D-Geländemodell. Das simulierte Flugzeug verfügt über Seitenruder, Höhenruder, Querruder, Landeklappen, Schubhebel sowie eine akustische Überziehwarnung. (Der Programmautor hat übrigens eine falsches Vorstellung davon, wann ein überzogener Flugzustand vorliegt. Er glaubt, das sei immer dann der Fall, wenn der Auftriebskoeffizient gleich Null sei. Diesen Fehler kann man jedoch leicht selbst korrigieren.)
    Dem Grundgerüst fehlen noch Sound, Joystick-Interface und ein Cockpit mit Instrumenten. Auch ein "Ground Model" sollte ergänzt werden, denn auf dem dargestellten hügeligen Terrain kann man nicht landen, sondern taucht einfach ein und fliegt dann unter Tage weiter, was auf Dauer sicher nicht befriedigt.
    Ich bin mir nicht mehr sicher, aber ich glaube, daß der Effekt des induzierten Widerstandes in diesem Aero-Modell nicht berücksichtigt wird, aber auch das wäre ja sehr leicht einzubauen.


    "Physics for Game Programmers" von Grant Palmer, Apress, 2005

    Auf 43 Seiten wird hier ebenfalls eine Basis-Flugsimulation entwickelt, die sofort lauffähig und erweiterbar ist. Eine 3D-Sichtsimulation wird hier nicht mitgeliefert, sondern eine 2D-Ansicht, die das vertikale Flugprofil graphisch darstellt und einzelne Flugparameter (Steuerkurs, Flugbahnwinkel, Geschwindigkeit, Steiggeschwindigkeit, Höhe) als Zahlenwert ausgibt. Dieser Autor dieses Buches geht zudem etwas tiefer auf die Simulation der Antriebssysteme (Motor, Luftschraube, Strahltriebwerk) sowie Trimmung und Flugstabilität ein.


    Etwas außer Konkurrenz möchte ich noch ein weiteres Buch erwähnen:

    "Build Your Own Flight Sim in C++" von Christopher Lampton und Michael Radtke, The Waite Group, 1996
    (erste Auflage erschien unter dem Titel "Flights of Phanatasy")

    Bislang wahrscheinlich immer noch das einzige Buch, das sich ausschließlich der Programmierung eines eigenen Flugsimulators widmet - immerhin auf 638 Seiten.
    Am Ende steht ein einfacher, aber nahezu vollständiger Flugsimulator mit Cockpit, Sichtsimulation, Sound und Joystickbedienung. Allerdings ist das primitive flugmechanische Modell kaum als solches zu bezeichnen. Auf den ersten Blick ein großer Nachteil, aber jedem interessierter Nutzer des Buches steht es ja frei, den Simulator zu verbessern und zu erweitern. Die Autoren liefern bewußt nur das Grundgerüst.
    Ich erwähne dieses ältere Buch hier außer Konkurrenz, weil die Software für das Betriebssystem MS-DOS geschrieben wurde. Somit läuft sie immerhin noch unter Windows XP, aber den Komfort von Direct X oder OpenGL gibt es halt nicht. Die 3D-Grafik, das Soundsystem und das Joystick- und Tastatur-Interface sind daher ebenfalls Bestandteil des Simulators.
     
Moderatoren: Grimmi
Thema: Flugsimulation programmieren
Besucher kamen mit folgenden Suchen
  1. c flugsimulation programmierung

    ,
  2. plattform für flugsimulation c

    ,
  3. flugsimulation programmieren

    ,
  4. flugsimulator 3d programmierung ,
  5. Flugsimulator-Software richtig programmieren,
  6. so kann man einen simulator programmieren ,
  7. C G kraft,
  8. build your own flight simulator c pdf
Die Seite wird geladen...

Flugsimulation programmieren - Ähnliche Themen

  1. Probleme und Fragen rund um die Flugsimulation

    Probleme und Fragen rund um die Flugsimulation: Liebe FFler, ich dachte mir, ich mache mal so eine Art "Problemecke" auf. Dabei geht es darum, dass jeder der eine Frage oder ein Problem hat,...
  2. Flugsimulation mit Schwerpunkt auf Action

    Flugsimulation mit Schwerpunkt auf Action: Hallo! Bevor ich hier von den eingefleischten Flugsim-Fans in der Luft zerissen werde, ich bin lediglich Gelegenheitsspieler auf der Suche nach...
  3. Flugsimulation, Frage an "echte" Piloten

    Flugsimulation, Frage an "echte" Piloten: Hallo Piloten, ich frage mal hier an, weil mich interessiert, wie gut heutzutage PC Flugsimulationen sind. Mich würde da vor allem mal das Urteil...
  4. Freeware Flugsimulationen

    Freeware Flugsimulationen: Hallo, ich stöbere seit einiger Zeit nach Freeware Flugsimulationen und kommerzielle Simulationen die mittlerweile zum kostenlosen download...
  5. Beste Flugsimulation?

    Beste Flugsimulation?: Ich wollte mal fragen,ob mir jemand die zur Zeit beste Flugsimulation,seiner Meinung nach, nennen könnte? Bin an einem Sim um den 2.Weltkrieg...