Differentialprogrammierung für ein Fahrzeug


8

Ich bin an einem Punkt an meinem Fahrzeug angelangt, an dem sich das Fahrzeug beim Fahren und Wenden seltsam verhält, weil sich die Innenreifen schneller bewegen als die Außenreifen. Ich muss also herausfinden, wie man ein Differential programmiert, aber ich kann es scheinbar nicht richtig zum Laufen bringen, also bin ich hier, um zu sehen, ob jemand Erfahrung damit hat.

Ich habe online nach der Physik gesucht, aber das scheint mehr Informationen zu berücksichtigen, als ich in meinem Spiel liefern kann (wie der tatsächliche Einfluss der Schwerkraft auf das Fahrzeug). Derzeit verwende ich die folgende Logik, um die unterschiedlichen Raddrehzahlen zu bestimmen. Ich werde versuchen, es so klar und einfach wie möglich zu erklären, also entschuldige ich mich, wenn es verwirrend oder zu stark vereinfacht ist, ist es für mich verwirrend!

Folgendes mache ich : Ich dividiere meinen aktuellen Turn-Grad durch den maximalen Turn-Betrag, um einen Prozentsatz zu erhalten. Dann nehme ich diesen Prozentsatz und wende ihn auf einen Modifikator-Prozentsatz an (nur einen Prozentsatz, den ich erfunden und optimiert habe, um die Anzahl der übergebenen Runden zu reduzieren zum Differential, nicht sicher, was das wirklich sein soll. Motordrehzahl? Geschwindigkeit?). Dann überprüfe ich in meinem Differential, ob das Fahrzeug nach links oder rechts abbiegt, reduziere die Geschwindigkeit auf einer Seite um x% und erhöhe die Geschwindigkeit auf der anderen Seite um die gleichen x%

Ich bin mir sicher, dass mein größtes Problem die Zahl ist, die ich zusammenstelle, um den Prozentsatz der Umdrehungen zu reduzieren, aber ich kann nicht sagen, was ich dort platzieren soll. Ich weiß, dass das direkte Übergeben der Umdrehung% an das Differential (z. B. 40%) eine Seite um 40 reduzieren und die andere um 40 erhöhen würde, und das ist eindeutig nicht richtig.

Ich habe Zugriff auf die Motordrehzahl, das Getriebe, die Achsdrehzahl jedes Rads, das Drehmoment, die Fahrzeuggeschwindigkeit usw., bin mir aber nicht sicher, welche davon ich bei dieser Formel berücksichtigen sollte.

Vielleicht bin ich damit fertig, es zu komplizieren, oder vielleicht bin ich damit fertig, es zu vereinfachen. Jede Hilfe, um dies zu verstehen, wäre großartig!


Welche Probleme hatten Sie wirklich mit der realen Physik? Weil die Schwerkraft leicht zu erreichen ist (es ist eine Konstante, die Sie nur anpassen sollten, gilt dies auch für die Fahrzeugmasse usw.)
Roy T.

Nun, nicht wirklich große Probleme mit der realen Physik, aber weil ich nicht wirklich viel über Differentiale und (reale) Mechanik weiß, ging mir die Physik über den Kopf.
Mungoid

Antworten:


9

Ich denke wirklich, dass Sie es nicht so machen sollten und dass Sie sich mehr mit der realen Physik befassen sollten (siehe meinen Kommentar). Ich kann Ihnen jedoch sagen, warum Ihr aktueller Ansatz nicht funktioniert. (Zu lang für die Kommentare, also werde ich dies nur als Antwort posten)

Lassen Sie uns zunächst untersuchen, was passiert (Sie haben dies wahrscheinlich bereits selbst getan).

Wendepunkt

Die Aufstellung ist im Grunde wie im obigen Bild, aber lassen Sie uns die Zahlen ein wenig vereinfachen:

Angenommen, das Auto C ist 2 Meter breit und hat einen minimalen Wendekreis von 5 Metern. Ich lenke jetzt ganz nach links. Das vordere linke Rad folgt nun einem Kreis mit einem Durchmesser von 5 Metern. Das vordere rechte Rad folgt nun einem Kreis mit einem Durchmesser von 7 Metern. Wenn Sie einen vollen Kreis schließen, bewegt sich das linke Rad 10 * pi Meter. Das rechte Rad fährt 14 * pi Meter. Jetzt sagen , dass die Räder von C alle die gleiche Größe haben, und dass der Umfang der Räder beträgt 0,5 * pi Meter (ja das sind große Räder, aber niemand sagte , dass wir nicht ein Monster Truck! Modell könnte) Das Differential wird Stellen Sie sicher, dass sich das rechte Rad pro 20 Umdrehungen des linken Rads 28 Mal dreht, damit keines der Räder durchrutscht.

Sie könnten jetzt sagen, dass das Diff-% angepasst werden sollte, sagen wir, dass es für volle Linke + 40% differenzieren sollte, und lassen Sie uns dies einfach auf volle Rechte -40% bringen und dann sind wir golden?

Wie Sie gesehen haben, funktioniert dies leider nicht. Lassen Sie uns eine allgemeine Formel für das Differential in diesem Auto finden. Hier ist x der gewünschte Wendekreis.

left wheel distance: x*pi meters
right wheel distance: (x+2)*pi meters:
left wheel rotations: x*4
right wheel rotations: (x+2)*4  

Ich würde argumentieren, dass der Diff bei dem Bruch ((x + 2) * 4 / (x * 4)) [*] funktionieren sollte. (Mal 100%, wenn Sie es in Prozent wollen) Zeichnen wir das:

Diff Plot

Wie Sie deutlich sehen können, ist diese Funktion nicht linear. Nur das Differential zu haben, hängt also linear davon ab, wie stark Sie nach links oder rechts lenken.

Jetzt sehe ich, dass es verlockend ist, nur die obige Formel zu verwenden, aber ich denke, es ist wahrscheinlich am besten, wenn Sie dies aus den oben beschriebenen Gründen nicht tun :). Außerdem müssen Sie zwei Differentiale implementieren, es sei denn, Ihre Lenkung umfasst alle vier Räder, was die Implementierung noch schwieriger macht. Sehen Sie sich das erste Bild noch einmal an.

[*]: was wir vereinfachen können: (x + 2) * 4 / (x * 4) => (x + 2) / x


Ich bin nicht an meinem Arbeitscomputer, um dies auszuprobieren, aber ich habe das starke Gefühl, dass Sie in allen Punkten Recht haben! Und Sie sind nicht zu weit weg von der Monster-Truck-Sache. Es ist eine schwere Maschine für einen Simulator, daher haben die Räder einen Durchmesser von etwa 2 Metern. Ursprünglich dachte ich, ich könnte "schummeln", da ich nur die Räder auf dem Boden halten muss, aber ich denke, das wird es viel genauer machen. Ich werde die Zahlen morgen laufen lassen und Sie wissen lassen. Vielen Dank!
Mungoid

Ja, Ihr Beitrag hat mich in die richtige Richtung gelenkt. Ich hatte meine eigene Version der Mathematik ausprobiert, die Sie gegeben haben, aber anscheinend habe ich es ein bisschen falsch gemacht. Danke für die Anleitung!
Mungoid
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.