Was bewirkt, dass die Geschwindigkeit eines Autos der Richtung der Vorderräder folgt?

Ich versuche, ein Auto mit korrekten Physikmodellen zu simulieren. In diesem Beispiel lassen wir das Auto eine konstante Geschwindigkeit haben, und es gibt keine Kräfte (Reibung und Widerstand), um die Geschwindigkeit zu verlangsamen.

Hier ist ein Video, das mein Problem zeigt. Als ich die Kurve verlasse, indem ich das Vorderrad gerade drehe, folgt die Geschwindigkeit des Autos nicht. Video: https://vid.me/XrSJ . Die Geschwindigkeit des Autos wird mit einem blauen Pfeil angezeigt, die Zentripetalkraft mit einem grünen und die Beschleunigung mit einem roten Pfeil.

Der Simulation fehlt also etwas, was dazu führen würde, dass die Richtung der Geschwindigkeit der Richtung des Vorderrads folgt, wenn sich das Vorderrad gerade richtet. Was ist dieses fehlende Stück, woher kommt es und wie wird es berechnet?

AKTUALISIEREN

Das folgende Bild veranschaulicht, wie ich die auf das Auto wirkenden Kräfte berechnet habe. Das Auto hat gerade eine Linkskurve gemacht, aber sein Vorderrad wurde sofort nach rechts gedreht. Deshalb haben Hinter- und Vorderrad unterschiedliche Kurvenmittelpunkte.

Der Kurvenpunkt des Hinterrads wird immer relativ zur Geschwindigkeit des Autos berechnet (beachten Sie die 90 Grad zwischen der Geschwindigkeit des Autos und dem Radius zum Kurvenpunkt. Ich bin mir nicht sicher, ob er stattdessen relativ zur Geschwindigkeit des Vorderrads berechnet werden sollte.

Geben Sie hier die Bildbeschreibung ein

"Die Geschwindigkeit folgt diesem Übergang nicht". Was passiert stattdessen? Das Auto hat einen Drehimpuls, wenn es sich im Kreis dreht - wenn Sie die Räder gerade stellen, müssen Sie es daran hindern, sich zu drehen. Ist das Problem, dass das Auto in Ihrer Simulation nie geradeaus fährt? Was erlaubt es, sich zu drehen, wenn die Räder gerade stehen? Vielleicht kannst du das klären...
@Floris Wenn ich die Räder von 45 Grad auf 0 ändern würde, würden keine Kräfte mehr auf das Auto einwirken, und das Auto würde einfach in die gleiche Richtung wegrutschen wie im Kreis, da es welche gibt keine Kräfte, die die Richtung der Geschwindigkeit ändern, wenn sich die Räder auf 0 zurückdrehen. Mir ist klar, dass meiner Simulation etwas fehlt, ich bin mir nur nicht sicher, was. Sie sagen, ich muss verhindern, dass es sich dreht. Was hindert das Auto daran, sich zu drehen, wenn die Räder auf 0 Grad zurückgehen?
@Floris Um Ihre Frage zu beantworten: "Was lässt es zu, dass es sich dreht, wenn die Räder gerade sind?" Das ist die Tatsache, dass sich das Auto drehte, bevor die Räder auf 0 Grad zurückgedreht wurden. Und ich weiß nicht, was es damit auf sich hat, das Wenden zu stoppen. Ich dachte, die Zentripetalkraft würde alles lösen.
Aber „in die gleiche Richtung gleiten“ ist das richtige Verhalten, oder? Vielleicht müssen Sie Ihrer Frage ein Diagramm hinzufügen: Welche Flugbahn hat das Auto in Ihrer Simulation; und was du denkst, es sollte haben ...
Ein Auto, das (vermutlich) in gleichmäßiger Bewegung im Kreis fährt, erfährt eine konstante Kraft, die genau auf den Mittelpunkt dieses Kreises zeigt. Das Auto muss diese Kraft durch Antreiben der Räder verursachen. Dass sich das Auto bei 45 Grad befindet und in gleichmäßiger Bewegung bleibt, deutet darauf hin, dass trotz dieser Ausrichtung in der Richtung parallel zur Bewegung des Autos eine Nettokraft von 0 vorhanden ist. Der Schlüssel hier ist die Reibung - die Räder brauchen sie, um "hineinzudrücken". drehen, und es wirkt gegen die senkrechte Bewegung des Autos.
@Floris Hier ist ein Video, das ich gemacht habe und das das Problem zeigt: vid.me/XrSJ
@lawls, das klärt es sehr auf! Das Problem ist, dass Ihre Simulation nicht "sieht", dass ein ideales rollendes Rad keinen Widerstand gegen eine Bewegung in Rollrichtung hat - aber es widersteht einem seitlichen Rutschen. Wenn sich das Rad gerade richtet, sollte durch die seitliche Bewegung der Räder ein Drehmoment auf das Auto wirken. Ich werde versuchen, eine Antwort zu verfassen, wenn ich in der Nähe eines Computers bin.
Bestenfalls kann man ein Dreirad simulieren. Um für ein Auto auch nur annähernd realistisch zu werden, gibt es so viele weitere Faktoren, die Sie berücksichtigen müssen.

Antworten (4)

Es passieren mehrere interessante Dinge, wenn ein Auto abbiegt.

Nehmen wir zunächst das einfache Diagramm von zwei um 45° gedrehten Vorderrädern:

Geben Sie hier die Bildbeschreibung ein

Wie Sie sehen können, möchte der obere Reifen, dass das Auto um den Punkt dreht C 1 , aber der untere Reifen (im gleichen Winkel) will sich umdrehen C 2 . Dies bedeutet, dass in Wirklichkeit beide Reifen einen gewissen seitlichen Schlupf erfahren werden. In gewöhnlichen Autos wird dieses Problem normalerweise mit der sogenannten Ackermann-Lenkgeometrie gelöst , bei der sich die Räder um einen geringfügig anderen Betrag drehen, sodass beide den gleichen Drehpunkt "wollen". Das bedeutet, dass das innere Rad in Wirklichkeit etwas stärker gedreht wird als das äußere Rad:

Geben Sie hier die Bildbeschreibung ein

Dies ist eine kleine Vereinfachung, aber ich hoffe, Sie verstehen, dass Räder im Allgemeinen nicht in die gleiche Richtung zeigen sollten, wenn Sie abbiegen (tatsächlich zeigen sie aus Stabilitätsgründen nicht in die gleiche Richtung, wenn Sie geradeaus fahren, entweder - dies wird als Spur bezeichnet und muss von Zeit zu Zeit angepasst werden, wenn Sie eine Achsvermessung an Ihrem Auto durchführen lassen).


Betrachten wir nun die auf die Räder wirkenden Kräfte.

Der Einfachheit halber werde ich nur zwei Räder zeichnen, wie Sie es in Ihrer Simulation getan haben. Wir sehen, dass das innere Rad eine engere Kurve macht als das äußere Rad; Die Nettokraft auf das Auto muss so sein, dass der Schwerpunkt C macht einen Kreis mit Radius R ungefähr Punkt P :

Geben Sie hier die Bildbeschreibung ein

Nehmen wir nun zunächst an, dass die Räder nur Seitenreibung haben, das heißt, sie rollen perfekt und die Kraft auf sie wirkt senkrecht zur Richtung, in die sie zeigen. Die resultierende Kraft muss auf das Massenzentrum zentriert sein und auf das Rotationszentrum zeigen. Mit anderen Worten - können wir lösen für F 1 Und F 2 ? Ausweitung der Kräfte F 1 Und F 2 Entlang ihrer Richtung erhalten wir das folgende Diagramm und sehen, dass es eine Beziehung zwischen ihnen gibt F 1 Und F 2 :

Geben Sie hier die Bildbeschreibung ein

Wenn nun das Vorderrad die Richtung ändert, in die es zeigt, ändern sich Betrag und Richtung der Kraft, die es liefert. Aber bis das Auto seine Bahn ändert, wird die Kraft auf das Heck ( F 1 ) ändert sich nicht.

Was Sie tun müssen, ist dies.

Indem Sie den Winkel der Vorderräder ändern und die Rotation im stationären Zustand auflösen (im Grunde das Parallelogramm der Kräfte lösen, das ich oben gezeichnet habe), erhalten Sie eine Beziehung zwischen den Kräften F 1 Und F 2 und der Winkel zwischen dem Rad und dem Geschwindigkeitsvektor (tatsächlich ist dieser genauso groß wie die Winkel θ 1 Und θ 2 in meinem Diagramm).

Wenn das Vorderrad die Richtung ändert, ändern Sie den Winkel zwischen ihm und dem Geschwindigkeitsvektor; Wenn Sie jedoch das Vorderrad plötzlich auf "gerade" stellen, befindet sich das Hinterrad (noch) in einem Winkel zum Geschwindigkeitsvektor. Dies bedeutet, dass es eine Seitenkraft gibt (die Sie aus der obigen Beziehung berechnen können) und ein Drehmoment, das das Auto gerade richtet.

UPDATE Eine bessere Möglichkeit, die Bewegungsgleichung zu betrachten, besteht darin, rückwärts zu arbeiten: Sie wissen, dass die Bewegung der Schriftart des Autos der Richtung folgen muss, in die das Rad (augenblicklich) zeigt; Ebenso muss der Rücken der Richtung folgen, in die das Hinterrad zeigt. Dies sagt Ihnen, welche Position das Auto danach einnehmen wird Δ T , und daraus können Sie die momentane Beschleunigung und damit die Kraft / das Drehmoment der Räder berechnen. Ein solches Modell gibt Ihnen sowohl die richtige Bewegung als auch die richtigen Kräfte.

Ich habe eine einfache Implementierung der Bewegung (nicht der Kraftberechnung) in Python geschrieben:

# simple car simulation
# one front wheel, one back wheel

import math
import numpy as np
from scipy import interpolate
import matplotlib.pyplot as plt

def sind(x):
    return math.sin(x*math.pi/180.)

def cosd(x):
    return math.cos(x*math.pi/180.)

def atan2d(y,x):
    return 180/math.pi*math.atan2(y,x)

# dimensions:
length = 2  # axis to axis

# time when wheel is turned, and by how much:
timePoints =  [0, 1,  5, 9, 12, 15]
thetaPoints = [0, 0, 15,  15, 0,  0]
theta = interpolate.interp1d(timePoints, thetaPoints)

# time step for simulation:
dt = 0.05

# show that it worked:
plt.figure()
t = np.arange(0, 15, dt)
plt.plot(t, theta(t))
plt.xlabel('time')
plt.ylabel('steering angle')
plt.title('steering angle vs time')
plt.show()


# position of rear wheel of car at time t:
x = 0
y = 0

# velocity of rear wheel
v = 5

# angle of car body
alpha = 0

plt.figure()
for T, th in enumerate(theta(t)):
    dx = v * dt * cosd(alpha)
    dy = v * dt * sind(alpha)
    vf = v / cosd(th)
    dxf = vf * dt * cosd(th+alpha)
    dyf = vf * dt * sind(th+alpha)
    yl = dyf - dy + length * sind(alpha)
    xl = dxf - dx + length * cosd(alpha)
    alpha = atan2d(yl, xl)
    plt.plot(x,y,'.b')
    if (T%50==0):
        plt.plot([x, x+xl], [y,y+yl], 'r', linewidth=5)
    x = x + dx
    y = y + dy

plt.xlabel('x')
plt.ylabel('y')
plt.title('trajectory')
plt.axis('equal')
plt.show()

In diesem Fall wird das Rad langsam gedreht - gemäß folgendem Diagramm:

Geben Sie hier die Bildbeschreibung ein

und die Flugbahn wird durch dieses Diagramm angegeben (die rote Linie entspricht der Richtung, in die das Auto alle 2,5 Sekunden zeigt - Sie können sehen, dass das Auto bei geradem Rad der Richtung der Räder folgt):

Geben Sie hier die Bildbeschreibung ein

Die Ackermann-Lenkgeometrie hat nichts damit zu tun, warum Sie Reibung einbeziehen müssen. Die Reibung wird benötigt, um den Bewegungsweg einzuschränken. Es beinhaltet nicht unbedingt eine dissipative Kraft, so dass der Begriff der "Reibung", die die kinetische Energie reduziert, nicht herangezogen werden muss. Zentripitalkräfte können "konservativ" sein.
@DWin Mein Punkt war, dass die einfache Vorstellung, die beiden Räder um 45 Grad zu richten, das Problem überfordert - weshalb die Analyse mit einem Rad vorne und hinten einfacher zu lösen ist, ohne sich mit Details um die Achse zu wickeln.
Vielen Dank, dass Sie sich die Zeit genommen haben, mir zu helfen. Ich habe die ganze Woche versucht, Ihre Antwort in meine Simulation einzubauen. Es funktioniert gut, aber es gibt einige Probleme. Um zu sehen, ob ich Ihre Antwort richtig verstanden habe, habe ich meine Frage mit einem Bild aktualisiert, um zu veranschaulichen, wie ich derzeit die auf das Auto wirkenden Kräfte berechne. Sind sie richtig berechnet? Ich glaube auch nicht, dass ich dies "rückwärts" machen kann, wie Sie in Ihrem Update vorgeschlagen haben, da das Auto in scharfen Kurven usw. rutschen muss. Korrigieren Sie mich jedoch, wenn ich falsch liege.
Um Schleudern einzubeziehen, gehen Sie zunächst von "kein Schleudern" aus. Dann können Sie die scheinbar ausgeübte Kraft berechnen. Wenn diese Kraft die verfügbare übersteigt, rutscht das Rad. Die Richtung der Kraft auf ein rutschendes, rollendes Rad ist knifflig - die Größe ist gleich wie die Normalkraft multipliziert mit dem dynamischen Reibungskoeffizienten. Aber vielleicht sollte das das Thema einer neuen (und fokussierteren) Frage sein ...
Sollte das Schleudern nicht von selbst passieren, wenn wir die Zentripetalkräfte der Räder nicht größer als die maximale Reibung werden lassen?
Ja (wenn ich verstehe, was Sie gerade gesagt haben) - aber beachten Sie, dass auf Vorder- und Hinterräder eine unterschiedliche Kraft wirkt - also rutschen die Vorderräder zuerst (weshalb das Beschleunigen in eine Kurve helfen kann ... Sie erhöhen die Normalkraft auf die Front). Sie müssen die Verteilung der Kräfte kennen, um zu wissen, ob Sie ins Schleudern geraten.
Wenn die Kräfte mit dem von Ihnen vorgestellten Parallelogramm berechnet werden, sehe ich das Problem nicht. Wir könnten einfach nicht zulassen, dass die Kraft eines der Räder größer als die maximale Reibungskraft ist. Mir ist klar, dass sich die Gewichtsverteilung ändern wird, aber der Einfachheit halber könnten wir die Masse einfach gleichmäßig auf jedes Rad verteilen.

Ich verstehe nicht, warum diese Frage nicht in den Kommentaren beantwortet wurde. Wenn keine Reibung vorhanden ist, kann die "Richtung der Räder" das Auto nicht drehen. Es ist, als stünde das Auto auf einer glatten Eisfläche. (Diejenigen von uns, die schon einmal bei Winterwetter gefahren sind, kennen das Gefühl, auf eine Stelle mit „Schwarzeis“ zu stoßen.)

Um Ihre Frage direkt zu beantworten: Wenn die Richtung der Geschwindigkeit der Vorderseite des Autos nicht mit der Richtung der Vorderräder übereinstimmt, verformt sich der Reifen und wirkt wie eine Feder, die eine Seitenkraft auf das Auto ausübt. Die Abweichung zwischen diesen Richtungen wird Schräglaufwinkel genannt, und die Seitenkraft auf den Reifen ist in erster Näherung proportional zu diesem Schräglaufwinkel.

In Ihrem Modell sieht es so aus, als würden die Kräfte unter der Annahme berechnet, dass sich das Auto bereits in die richtige Richtung bewegt. Dies funktioniert gut, wenn sich das Auto in die richtige Richtung bewegt , aber sobald es eine Abweichung gibt (z. B. verursacht durch eine plötzliche Änderung der Radposition), werden die berechneten Kräfte falsch sein. Als spezifisches Beispiel: Wenn das Rad gerade ausgerichtet ist, "sollte" die Bewegung gerade sein, also "sollte" die Kraft null sein, und Ihr Modell gibt Ihnen treu null Kraft, ohne das Auto tatsächlich gerade zu richten.

Um Ihre Kräfte korrekt zu modellieren, könnten Sie eine Gleichung in der Art von verwenden

F F = C A F A F v F | v F |

Wo C ist eine Konstante, v F ist die Geschwindigkeit der Front des Autos, und A F ist ein Einheitsvektor in Richtung der Achse des Vorderrads (Beachten Sie, dass es keine Rolle spielt, in welche Richtung entlang dieser Achse er zeigt, als ob Sie ihn umdrehen, die Größe wird sich auch umdrehen)

Dies funktioniert auch für das Hinterrad

F R = C A R A R v R | v F |

Natürlich sind die Kräfte jetzt nicht mehr senkrecht zu den Geschwindigkeiten, so dass Sie Reibungsverluste bekommen. Auf der positiven Seite wären dies realistische Reibungsverluste, aber wenn Sie wollten, dass Ihr Auto unbegrenzt in Kurven rollt, würde diese Behandlung der Räder dies nicht zulassen.

Ich habe eine Simulation erstellt, die diese Kräfte integriert, um einen Fahrzeugpfad zu ergeben, aber die naive Implementierung ist numerisch sehr instabil und erfordert einen Zeitschritt von 0,0005 s, um ein stabiles Ergebnis mit Schlupfkoeffizienten zu erhalten, die vernünftige Ergebnisse zu liefern scheinen.

Auto Weg

Dies verwendete das gleiche Setup wie Floris, um Ihnen einen Vergleich der Ergebnisse zu ermöglichen.

Radstand 2 m, Anfangsgeschwindigkeit 5 m/s und gleiches Lenkwinkelprofil.

Angesichts der Probleme mit der numerischen Stabilität bei der Verwendung dieser Methode würde ich empfehlen, den Weg zu gehen, den Floris erkundet hat.

Wenn ich einen Weg finde, die Methoden einfach zu kombinieren, werde ich aktualisieren.

Wenn Sie das Fahrzeug beschleunigen und wenden, verschiebt sich der Schwerpunkt von verschiedenen Teilen der Karosserie. Vielleicht interpretiere ich deine Frage aber falsch..