Pemrograman diferensial untuk kendaraan


8

Saya sampai pada titik di kendaraan saya di mana, ketika saya melaju cepat dan berputar, kendaraan itu bertindak aneh karena ban di dalam bergerak lebih cepat daripada ban luar. Jadi saya perlu mencari tahu cara memprogram dalam diferensial tetapi saya tidak bisa membuatnya berfungsi dengan baik jadi saya di sini untuk melihat apakah ada yang punya pengalaman dengan ini.

Saya telah memeriksa fisika secara online tetapi itu sepertinya mempertimbangkan lebih banyak info daripada yang dapat saya berikan dalam permainan saya (seperti pengaruh gravitasi nyata pada kendaraan). Saat ini saya menggunakan logika berikut untuk menentukan kecepatan roda diferensial. Saya akan mencoba menjelaskan sejelas dan sesederhana mungkin jadi saya minta maaf jika itu membingungkan atau terlalu disederhanakan, itu membingungkan saya!

Inilah yang saya lakukan: Saya membagi derajat belokan saya saat ini dengan jumlah belokan maks untuk mendapatkan persentase, saya kemudian mengambil persentase itu dan menerapkannya pada persentase pengubah (hanya satu persen yang saya buat dan atur untuk mengurangi jumlah yang lulus) ke diferensial, tidak yakin apa ini benar-benar seharusnya. Kecepatan mesin? Velocity?). Kemudian di diferensial saya, saya memeriksa untuk melihat apakah kendaraan berbelok ke kiri atau kanan dan mengurangi kecepatan di satu sisi sebesar x% dan meningkatkan kecepatan di sisi lain dengan x% yang sama

Saya yakin bahwa masalah terbesar saya adalah angka yang saya perbaiki untuk mengurangi persentase belokan tetapi saya tidak tahu apa yang harus saya masukkan ke sana. Saya tahu bahwa secara langsung melewati pergantian% ke diferensial (katakanlah, 40%) akan mengurangi satu sisi dengan 40 dan meningkatkan yang lain sebesar 40 dan itu jelas tidak benar.

Saya memiliki akses ke kecepatan engine, transmisi, kecepatan gandar setiap roda, torsi, kecepatan kendaraan, dll. Tetapi saya tidak yakin yang mana dari ini yang harus saya pertimbangkan ketika melakukan formula ini.

Mungkin saya terlalu rumit atau mungkin saya terlalu menyederhanakannya. Setiap bantuan dalam memahami ini akan sangat bagus!


Apa masalah yang benar-benar Anda miliki dengan fisika nyata yang terlibat? Karena gravitasi mudah diperoleh (ini adalah konstanta yang harus Anda sesuaikan, berlaku juga untuk massa kendaraan, dll.)
Roy T.

Yah, tidak benar-benar ada masalah besar dengan fisika nyata tetapi karena saya tidak benar-benar tahu banyak tentang perbedaan dan mekanika (kehidupan nyata), fisika melampaui kepala saya.
Mungoid

Jawaban:


9

Saya benar-benar berpikir Anda tidak harus melakukannya dengan cara ini dan bahwa Anda harus melihat lebih dalam fisika nyata (lihat komentar saya). Namun saya dapat memberi tahu Anda mengapa pendekatan Anda saat ini tidak berhasil. (Terlalu lama untuk komentar jadi saya hanya akan memposting ini sebagai jawaban)

Pertama mari kita telusuri apa yang terjadi (Anda mungkin sudah melakukannya sendiri).

Titik balik

Sitasi pada dasarnya seperti pada gambar di atas, tapi mari kita sederhanakan angkanya:

Katakanlah mobil C memiliki lebar 2 meter dan memiliki putaran minimum 5 meter. Sekarang saya mengarahkan penuh kiri. Roda kiri depan sekarang mengikuti lingkaran dengan diameter 5 meter. Roda kanan depan sekarang mengikuti lingkaran dengan diameter 7 meter. Menyelesaikan satu lingkaran penuh akan membuat roda kiri menempuh 10 * pi meter. Roda kanan berjalan 14 * pi meter. Sekarang katakan bahwa roda C semua memiliki ukuran yang sama, dan bahwa keliling roda adalah 0,5 * pi meter (ya itu adalah roda besar, tapi tidak ada yang bilang kami tidak bisa memodelkan truk monster!) Diferensial akan harus memastikan bahwa untuk setiap 20 rotasi roda kiri, roda kanan berputar 28 kali agar tidak ada roda yang tergelincir.

Jadi sekarang Anda dapat mengatakan bahwa diff-% harus di-tweak, katakan untuk kiri penuh itu harus membedakan + 40%, dan mari kita lerp ini ke kanan -40% dan kemudian kita emas?

Sayangnya, seperti yang Anda lihat, ini tidak berhasil. Mari kita cari formula umum untuk diferensial di mobil ini. Di sini x adalah lingkaran balik yang diinginkan.

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

Saya berpendapat bahwa diff harus bekerja di fraksi ((x + 2) * 4 / (x * 4)) [*]. (Kali 100% jika Anda menginginkannya dalam persentase) Mari kita plot itu:

plot yang berbeda

Seperti yang Anda lihat dengan jelas, fungsi ini non-linear. Jadi, hanya memiliki perbedaan tergantung secara linier pada seberapa banyak mengarahkan Anda ke kiri atau ke kanan tidak akan pernah berhasil.

Sekarang saya melihat bahwa tergoda untuk hanya menggunakan rumus di atas, tetapi saya pikir itu mungkin yang terbaik jika Anda tidak karena alasan yang dijelaskan di atas :). Anda juga perlu menerapkan 2 diferensial kecuali jika kemudi Anda melibatkan keempat roda, yang membuatnya lebih sulit untuk diterapkan, lihat gambar 1 lagi.

[*]: yang dapat kita sederhanakan: (x + 2) * 4 / (x * 4) => (x + 2) / x


Saya tidak di komputer kerja saya untuk mencoba ini, tetapi saya memiliki perasaan yang kuat Anda benar pada semua poin! Dan Anda tidak terlalu jauh tentang truk monster. Ini adalah mesin berat untuk simulator sehingga rodanya berdiameter sekitar 2 meter. Awalnya saya pikir saya akan bisa 'menipu' karena saya hanya perlu menjaga roda di tanah tetapi saya pikir ini akan membuatnya jauh lebih akurat. Saya akan menjalankan angka besok dan memberi tahu Anda. Terima kasih!
Mungoid

Yap, posting Anda menunjuk saya ke arah yang benar. Saya telah mencoba versi matematika saya sendiri yang Anda berikan, tetapi ternyata saya salah melakukannya. Terima kasih untuk panduannya!
Mungoid
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.