Rycast araba tekerleklerinin yana kaymasını nasıl önleyebilirim?


11

Bu makaleyi referans olarak kullanarak gerçekçi olmayan bir araba fiziği motorunu bir öğrenme egzersizi olarak yazıyorum .

Bir araziyle doğru bir şekilde çarpışan ve her tekerlek için doğru süspansiyon kuvvetlerini uygulayan bir arabam var. Bir sonraki sorunum tekerleklerin yanal hareketini önlemektir. Örneğin, arabamı bir eğime düşürürsem, eğimden aşağı doğru kayar ve daha sonra asla yana doğru kaymayı bırakmaz (herhangi bir sürtünme olmadığından).

Bağlantılı makale ileri kuvvetle birlikte bir "yan kuvvet" uygulanması gerektiğini, ancak bu yan kuvvetin nasıl hesaplandığını açıklamaktadır.

Her bir tekerleğin çarpışma bilgisi (kavşak normal, vb.) Ve otomobilin rijit gövdesi hakkındaki bilgiler göz önüne alındığında, yana doğru hareketi önlemek için rijit gövdeye uygulanacak uygun yan kuvveti nasıl hesaplayabilirim?

Yanıtlar:


10

Bu yan kuvvet, otomobilin ileri hareketine göre normalin yatay bileşenidir. Yollar, momentumdan dış köşeye doğru itmeden pistten uçmadan daha yüksek hızlarda viraj almayı kolaylaştırmak için tartıştığınız gibi bankalar. Bankacılık, lastiklerin serbestçe dönmediği ve umarım direnemeyeceği bir yönde geri iter; Eğer bankacılık yeterince dik olsaydı, ağırlık merkezi yeterince yüksek ya da yeterince yavaş olsaydı, arabanın kendisi bir tekerlek gibi hareket eder ve sadece devrilirdi.

Lastiklerin sınırlı bir direksiyon aralığı vardır. Uzunlamasına eksene (önden arkaya) dikey olarak etki eden kuvvetler, lastikler bu şekilde dönmeyeceği için kısmen karşı koyar. Yerçekimi ve ileri hızdan yola doğru yana doğru etkiyen kuvveti hesaplayabilir ve lastik bu sürtünmenin bir kısmını temizledikten sonra kalan kuvveti hesaplayabilirsiniz. Kalan kuvvet, aracı yola iten gücün üstesinden gelmek için yeterince büyükse, araba kayacak / kayacaktır.

Aşağıdakiler bunu göstermektedir ve burada tartışılmıştır (sürtünmeli ve sürtünmesiz) :

   https://upload.wikimedia.org/wikipedia/commons/thumb/5/5b/Banked_turn.svg/375px-Banked_turn.svg.png

Yatay olarak hareket eden kuvvet burada özellikle ilgi çekicidir. Hareketsizken (sadece üzerine etki eden kuvvet yerçekiminden kaynaklanır), sürtünme katsayısı istisnai derecede düşük olmadığı sürece ( örneğin buzlu bir yol) araç dik bir yokuştan aşağı kaymayacaktır .


7

Andon'un cevabı bana tam olarak çözüm getirmedi, ama kesinlikle beni doğru yola soktu!

Tekerleklerin kendi düzlemlerinde olduğunu düşünmeye başladığımda (normal olanı merkezden dışarı çıkmış olan vektördür - bunu tekerleğin "normal" olarak anlatacağım) Yan kuvvetin sadece gerekli vektör olduğunu fark ettim arabanın hızını bu uçağa 'itin'. Bu vektör, tekerleğin "normal" hızı ile hız ve "normal" arasındaki nokta çarpımı olan bir skalerle çarpılır.

İşte ben mükemmel yerleşti yerleşti kod:

            // Now calculate the side force. Get the linear velocity
            auto vel = car->body()->linear_velocity();
            auto side_force = car->wheel_right_axis(i, closest_normal);

            // Find the length of the vector necessary to nullify the horizontal movement
            auto dot = kmVec3Dot(&vel, &side_force);

            // Scale the right vector to that length
            kmVec3Scale(&side_force, &side_force, -dot);

Yukarıdaki kodda, "en yakın_normal", tekerleğin "normal" değeri hesaplanırken 'yukarı' vektör olarak kullanılan tekerleğin çarpıştığı arazinin normalidir.


2
Evet, bunun size ihtiyacınız olan cevabı vereceğini gerçekten düşünmedim, ama bir yorum yapmak çok uzun sürdü;)
Andon M. Coleman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.