AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mini-Flugzeugsimulator

Ein Thema von Crocotronic · begonnen am 24. Mär 2015 · letzter Beitrag vom 25. Mär 2015
Antwort Antwort
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#1

AW: Mini-Flugzeugsimulator

  Alt 25. Mär 2015, 19:09
Da sich die Masse deines Flugzeugs nicht ändert
Stimmt auch nicht so ganz...

Klar die Masse ändert sich nicht... [...]

[...] Wenn das Flugzeug 10° nach oben zeigt, kann das in einem Steigflug wunderbar funktionieren. Aber falls das Flugzeug nach unten fliegt (und dabei nach oben zeigt) dann ist der Anstellwinkel zu groß und es kommt zum Strömungsabriss.
[...] Der Anstellwinkel ist der Winkel zwischen Profilsehne und der anströmenden Luft.

Mavarik
Ich finde die Widersprüche nicht .

lg Caps
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
CHackbart

Registriert seit: 22. Okt 2012
267 Beiträge
 
#2

AW: Mini-Flugzeugsimulator

  Alt 25. Mär 2015, 20:06
Mir gefällt die Entwicklung der Diskussion Das erinnert mich an eine Spielerei von vor 15 Jahren (Herrje, wo ist nur die Zeit hin).
Damals hatte ich nach eingehendem Studieren der Webseite von David Braben angefangen einen Elite-Klon zu schreiben.

Der Code für die Flugbewegung war nicht sonderlich komplex, aber tat seinen Dienst:

Delphi-Quellcode:
function moveToTarget(cur, tar, speed: single): single;
begin
  if (cur <> tar) then
  begin
    if (cur < tar) then
    begin
      cur := cur + speed;
      if (cur > tar) then
        cur := tar;
    end
    else
    begin
      cur := cur - speed;
      if (cur < tar) then
        cur := tar;
    end;
  end;
  result := cur;
end;

...

    Rcur.x := moveToTarget(Rcur.x, Rtar.x, Rdampen.x);
    Rcur.y := moveToTarget(Rcur.y, Rtar.y, Rdampen.y);
    Rcur.z := moveToTarget(Rcur.z, Rtar.z, Rdampen.z);

    // z-Achsenrotation für Autopilot
    if (Rcur.z <> 0) then
    begin
      thrust.Assign(0, 0, 1);
      thrust.Mul(Matrix);
      M.RotateAbout(thrust, -Rcur.z);
      Matrix.Mul(M);
    end;

    if (Rcur.x <> 0) then
    begin
      thrust.Assign(1, 0, 0);
      thrust.Mul(Matrix);
      M.RotateAbout(thrust, -Rcur.x);
      Matrix.Mul(M);
    end;

    if (Rcur.y <> 0) then
    begin
      thrust.Assign(0, 1, 0);
      thrust.Mul(Matrix);
      M.RotateAbout(thrust, -Rcur.y);
      Matrix.Mul(M);
    end;

    // Minimalgeschwindigkeit
    if (fSpeedTar < 4) then
      fSpeedTar := 4;
    fSpeedCur := moveToTarget(fSpeedCur, fSpeedTar, 2);
    if (fSpeedCur <> 0) then
    begin
      thrust.Assign(0, 0, fSpeedCur);
      thrust.Mul(Matrix);
      Position.Add(thrust);
      Movement.Copy(thrust);
    end
    else
      Movement.Assign(0, 0, 0);
Bei der Gelegenheit habe ich den Code mal wieder rausgekramt und gleich um FMX und GDI+ erweitert. Schon erstaunlich, wie einfach die alte Delphi2 Version auf Delphi7 bzw. XE5/8 portiert werden konnte.
Angehängte Grafiken
Dateityp: jpg flupp.jpg (108,8 KB, 26x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#3

AW: Mini-Flugzeugsimulator

  Alt 25. Mär 2015, 20:30
Da sich die Masse deines Flugzeugs nicht ändert
Stimmt auch nicht so ganz...
Deshalb steht ja auch direkt dahinter ein "(Vereinfachung!)"


[...] Der Anstellwinkel ist der Winkel zwischen Profilsehne und der anströmenden Luft.

Mavarik
Ich finde die Widersprüche nicht .

lg Caps
Das eine ist halt eine Vereinfachung, und das andere die strikte Definition. Auf der einen Seite wurde Profilsehne = Flugzeuglängsachse gesetzt. Das ist beim realen Flugzeug meist nicht so, der Flügel ist etwas geneigt (soll ja auch ordentlich Auftrieb erzeugen, wenn das Flugzeug geradeaus fliegt). Andererseits werden damit auch Auftriebshilfen wie Slats und Klappen, sowie neigbare Flügel vernachlässigt.
Auf der anderen Seite habe ich Winkel der anströmenden Luft = Geschwindigkeit im Erdbasierten Intertialsystem gesetzt. Das gilt eben nur für Windstille.

Um noch weitere Vereinfachungen aufzuzeigen: Der Luftwiderstand müsste sich natürlich mit der Höhe ändern, genauso auch der Auftrieb. Und Kurven (das Quer- und Seitenruder) sind in dieser 2D-Betrachtung natürlich ohnehin außen vor. Man kann das im Grunde beliebig kompliziert machen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz