RegistrierenRegistrieren   LoginLogin   FAQFAQ    SuchenSuchen   
Flugcomputer: Beschleunigung berechnen (Programmieren)
 
Neue Frage »
Antworten »
    Foren-Übersicht -> Mechanik
Autor Nachricht
WilliamR
Gast





Beitrag WilliamR Verfasst am: 06. Mai 2014 00:30    Titel: Flugcomputer: Beschleunigung berechnen (Programmieren) Antworten mit Zitat

Meine Frage:
Guten Tag,

das ist sicherlich eine eher untypische Frage aber ich denke mal, hier können mir so einige helfen. ;)

Folgendes Szenario: Ich programmier gerade ein kleines 3D-Spiel, bei dem ein schwebendes "Flugzeug" durch die Gegend geflogen wird. Der Boden ist uneben und das Flugzeug soll immer eine gewisse Distanz über dem Boden schweben. Nun möchte ich eine Art Flugcomputer programmieren, die die Beschleunigung nach oben / unten so korrigiert, das das Flugzeug auf der angezielten Flughöhe landet ohne vorher 3 mal daran vorbei zu schießen. (Mein erster Versuch erinnerte eher an einen Flummi.)

In meinem Programm wird also alle paar Millisekunden eine Funktion Aufgerufen, die sich aus vorhandenen Daten die Beschleunigung so berechnet, das das Flugzeug möglichst schnell zur angezielten Flughöhe kommt, aber auf dieser Flughöhe auch stehen bleibt. Diese Funktion gilt es zu schreiben. Was hier wohl entscheidend ist: Die Beschleunigung darf nur so hoch gesetzt werden, dass die Geschwindigkeit vor erreichen der Flughöhe auch wieder abgebremst werden kann. (Nebenbei: es geht wirklich nur um die eine Achse, die Beschleunigung zielt direkt nach unten / oben und Gravitation gibt es in meiner Welt nicht! Big Laugh)

Bekannt ist also:
- Distanz zur Flughöhe
- aktuelle Geschwindigkeit in Z-Achse
- dadurch auch Zeit bis zum erreichen der Flughöhe bei Beschleunigung = 0
- eine maximale Beschleunigung



Meine Ideen:
Ich würde das dann z.B. in folgende Teilprobleme zerlegen:

1) Ist die Distanz zur Flughöhe zu klein, um mit einer bekannten maximale Beschleunigung vor erreichen der Flughöhe zu bremsen?
Die Zeit bis zum erreichen der Flughöhe beträgt
Die Zeit zum Abbremsen beträgt:
Was muss ich noch ändern, damit die Werte vergleichbar sind? Die Bremszeit geht ja von einer maximalen Beschleunigung aus, in der Formel für die Flughöhe gibt es aber keine Beschleunigung.

2) Ist noch nicht Zeit zum Bremsen, wie schnell darf ich dann Beschleunigen ohne das Ziel dann zu überfliegen?
Hier ist dann direkt nach der Beschleunigung gefragt und hier komme ich auch nicht weiter.

Das ist leider schon alles, was ich bis jetzt zusammen bekommen habe. Ich würde mich freuen, wenn ihr mir da helfen könntet. ;)

Beste Grüße
William
Steffen Bühler
Moderator


Anmeldungsdatum: 13.01.2012
Beiträge: 7251

Beitrag Steffen Bühler Verfasst am: 06. Mai 2014 09:55    Titel: Antworten mit Zitat

Du brauchst eigentlich nur eine einzige Formel:



Alle Deine Fragen sollten damit beantwortbar sein. Wenn Du hierbei weitere Hilfe brauchst, frag einfach.

Viele Grüße
Steffen
WilliamR
Gast





Beitrag WilliamR Verfasst am: 06. Mai 2014 15:02    Titel: Antworten mit Zitat

Guten Tag,

sei mir nicht böse aber in etwa eine solche Antwort habe ich erwartet. Augenzwinkern
Mir hilft eine Formel nicht viel da mir momentan eher der Ansatz fehlt.
Ich weiß z.B., wie man die Beschleunigung zum Abbremsen berechnen kann. Mit der Formel komm ich jedoch nicht weiter, wenn sich das Flugzeug momentan nicht bewegt.

Die Frage ist eher, wie soll das Flugzeug vorgehen. Mein Gedanke wäre: In Richtung der Flughöhe Beschleunigen, solange die Zeit zum Erreichen der Flughöhe größer ist als die Zeit, die man zum Abbremsen auf diese Flughöhe benötigt.

Wie drücke ich das mathematisch aus?

Danke aber trotzdem. smile
Steffen Bühler
Moderator


Anmeldungsdatum: 13.01.2012
Beiträge: 7251

Beitrag Steffen Bühler Verfasst am: 06. Mai 2014 15:38    Titel: Antworten mit Zitat

Ich versuch's dann mal grafisch.

Im Bild hab ich Dir dargestellt, wie sich die Geschwindigkeit über der Zeit ändern könnte. Hier fliegst Du zunächst mit einer Anfangsgeschwindigkeit und einer positiven Beschleunigung. Dann bremst Du mit der negativen Maximalbeschleunigung ab, bis die Geschwindigkeit Null ist.

Die beiden Beschleunigungen sind die Steigungen der Geradenabschnitte. Ich denke, das ist Dir klar, oder?

Und der Weg, den Du während dieser Zeit zurückgelegt hast, ist die Fläche unter der Kurve! Also die rote und blaue Fläche addiert. Dieser Weg darf dann nicht größer sein als die Distanz zur Flughöhe.

Jetzt kannst Du Dir daraus die Beschleunigung ausrechnen, die im "roten" Zeitabschnitt genommen werden sollte, damit's passt. Das sind ja nur Dreiecke und Rechtecke.

Viele Grüße
Steffen



vt-Diagramm.png
 Beschreibung:

Download
 Dateiname:  vt-Diagramm.png
 Dateigröße:  9.65 KB
 Heruntergeladen:  400 mal

WilliamR
Gast





Beitrag WilliamR Verfasst am: 06. Mai 2014 16:07    Titel: Antworten mit Zitat

Wenn wir von der identischen Beschleunigung für Beschleunigen und Bremsen ausgehen, haben wir für die Strecke also:



und



richtig? Komme aber trotzdem nicht viel weiter... Ich denke später nochmal drüber nach. Aber danke schonmal für deine Hilfe. smile
Steffen Bühler
Moderator


Anmeldungsdatum: 13.01.2012
Beiträge: 7251

Beitrag Steffen Bühler Verfasst am: 06. Mai 2014 16:49    Titel: Antworten mit Zitat

Bis jetzt passt alles.

Als nächstes musst Du den Schnittpunkt bestimmen, indem Du die beiden Funktionsgleichungen aufstellst und gleichsetzt. Die erste Gleichung ist recht klar:



Siehst Du, oder? Die zweite ist auch nicht viel schwerer.

Ich bin leider erst wieder übermorgen da, eventuell hilft noch jemand aus.

Viele Grüße
Steffen
williamR
Gast





Beitrag williamR Verfasst am: 07. Mai 2014 00:24    Titel: Antworten mit Zitat

Aha! Ich sehe wo du mich hin führst. Augenzwinkern

Also die eine Gerade ist

Sagen wir, die Stelle an der die zweite Gerade v(t) = 0 erreicht heißt , dann ist die zweite Gerade:



Daraus ergibt sich der Schnittpunkt mit



Die einzige Unbekannte ist jetzt , aber die müsste sich aus der gesamten Strecke ergeben. Man muss also so festlegen, das unter den Geraden eine Fläche von rauskommt.

Leider komme ich hier wiedermal nicht weiter. Die Gleichung für die Strecke habe ich ja schon zusammen, aber da habe ich dann drei Unbekannte t0, t1 und t2. (zeit für Beschleunigung, zeit für Bremsen und Gesamtzeit.) Ich kann zwar eine durch die anderen beiden Darstellen, dann bleiben aber als unbekannte immer noch zwei Variablen

Danke für die Hilfe! smile
williamR
Gast





Beitrag williamR Verfasst am: 07. Mai 2014 15:07    Titel: Antworten mit Zitat

Ich hab die Lösung gefunden. Augenzwinkern

Raus kam folgende Formel für die Zeit bis zum Bremsen (t1)



Das funktioniert auch prima. Vielen dank für die Hilfe! Augenzwinkern
Steffen Bühler
Moderator


Anmeldungsdatum: 13.01.2012
Beiträge: 7251

Beitrag Steffen Bühler Verfasst am: 08. Mai 2014 09:25    Titel: Antworten mit Zitat

Freut mich, dass es geklappt hat. Ich hatte mir gestern in einer ruhigen Minute auch mal Papier und Bleistift genommen und angefangen zu rechnen. Dann hab auch ich gemerkt, dass das Problem sich zwar gar nicht so schwer anhört, aber der Weg zur Lösung dann durchaus knackig ist. Und erst mal wieder den Stift zur Seite gelegt. smile

Viele Grüße
Steffen
Neue Frage »
Antworten »
    Foren-Übersicht -> Mechanik