ฉันจะป้องกันล้อเลื่อนของรถแคสต์ที่เลื่อนไปด้านข้างได้อย่างไร


11

ฉันเขียนเครื่องยนต์ฟิสิกส์รถยนต์ที่ไม่เหมือนจริงเป็นแบบฝึกหัดการเรียนรู้โดยใช้บทความนี้เป็นข้อมูลอ้างอิง

ฉันมีรถยนต์ที่ชนกับภูมิประเทศอย่างถูกต้องและใช้แรงแขวนลอยที่ถูกต้องสำหรับแต่ละล้อ ปัญหาต่อไปของฉันคือการป้องกันไม่ให้ล้อด้านข้างเคลื่อนที่ ตัวอย่างเช่นถ้าฉันวางรถของฉันลงบนทางลาดชันมันจะเลื่อนลงไปตามทางลาดและไม่เคยหยุดเลื่อนด้านข้าง (เพราะไม่มีแรงเสียดทานใด ๆ )

บทความที่เชื่อมโยงบอกว่าต้องใช้ "แรงด้านข้าง" รวมกับแรงไปข้างหน้า แต่จะคัดสรรวิธีการคำนวณแรงด้านข้างนั้น

เมื่อพิจารณาข้อมูลการชนของล้อแต่ละล้อ (สี่แยกปกติ ฯลฯ ) และข้อมูลเกี่ยวกับตัวถังรถยนต์ฉันจะคำนวณแรงด้านข้างที่เหมาะสมเพื่อนำไปใช้กับตัวถังที่แข็งเพื่อป้องกันการเคลื่อนไหวด้านข้างได้อย่างไร

คำตอบ:


10

แรงด้านข้างนั้นเป็นองค์ประกอบแนวนอนของถนนปกติเมื่อเทียบกับการเคลื่อนที่ไปข้างหน้าของรถ ถนนจะถูกฟาดเหมือนที่คุณกำลังพูดคุยเพื่ออำนวยความสะดวกในการเข้าโค้งด้วยความเร็วสูงโดยไม่ต้องออกนอกเส้นทางจากแรงผลักดันไปยังมุมด้านนอก ธนาคารผลักดันทิศทางยางไม่หมุนอย่างอิสระและหวังว่าจะสามารถต้านทานได้ ถ้าธนาคารมีความชันมากพอจุดศูนย์ถ่วงสูงหรือความเร็วช้าพอตัวรถเองก็จะทำตัวเหมือนล้อและหมุนไปมา

ยางรถยนต์มีช่วงบังคับ จำกัด แรงที่กระทำในแนวตั้งฉากกับแกนแนวยาว (ด้านหน้าไปด้านหลัง) นั้นถูกต่อต้านในส่วนหนึ่งเพราะยางจะไม่หมุนในลักษณะนั้น คุณสามารถคำนวณแรงที่กระทำไปด้านข้างกับถนนจากแรงโน้มถ่วงและความเร็วไปข้างหน้าและคำนวณแรงที่เหลืออยู่หลังจากที่ยางขัดแรงเสียดทานบางส่วนออกไป หากแรงที่เหลืออยู่นั้นมากพอที่จะเอาชนะแรงที่ผลักรถเข้าสู่ถนนรถจะเลื่อน / ลื่นไถล

ต่อไปนี้แสดงให้เห็นถึงสิ่งนี้และจะกล่าวถึงที่นี่ (มีและไม่มีแรงเสียดทาน) :

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

แรงที่กระทำในแนวนอนนั้นเป็นที่สนใจเป็นพิเศษ ที่เหลือ (บังคับเฉพาะการกระทำที่เกิดจากแรงโน้มถ่วง) รถจะไม่ลื่นไถลลงเนินที่ตั้งฉากยกเว้นค่าสัมประสิทธิ์แรงเสียดทานต่ำเป็นพิเศษ ( เช่นถนนน้ำแข็ง)


7

คำตอบของ Andon ไม่ได้ให้ทางแก้ปัญหาแก่ฉัน แต่มันทำให้ฉันไปถูกทาง!

เมื่อฉันเริ่มคิดว่าล้ออยู่บนระนาบของตัวเอง (ปกติซึ่งเป็นเวกเตอร์ยื่นออกมาจากศูนย์กลาง - ฉันจะเรียกสิ่งนี้ว่า "ปกติ" ของล้อ) ฉันรู้ว่าแรงด้านข้างเป็นเพียงเวกเตอร์ที่ต้องการ 'ดัน' ความเร็วของรถลงบนเครื่องบินลำนี้ เวกเตอร์นี้เป็นเพียง "ปกติ" ของล้อคูณด้วยสเกลาร์ซึ่งเป็นผลคูณของจุดระหว่างความเร็วกับ "ปกติ"

นี่คือรหัสที่ฉันตัดสินซึ่งทำงานได้อย่างสมบูรณ์:

            // 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);

ในโค้ดด้านบน "closest_normal" เป็นปกติของภูมิประเทศที่ล้อชนซึ่งใช้เป็นเวกเตอร์ 'up' เมื่อคำนวณล้อของ "ปกติ"


2
ใช่ฉันไม่คิดจริง ๆ ว่าจะให้คำตอบที่คุณต้องการ แต่มันก็ยาวเกินไปที่จะแสดงความคิดเห็น;)
Andon M. Coleman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.