ฉันจะคำนวณการหมุนที่เกิดจากแรงเสียดทานแบบเด้งได้อย่างไร


15

ต่อจากคำถามก่อนหน้าของฉัน : ฉันมีลูกบอลค่อนข้างกระดอนจากพื้นผิวที่มันกระทบ ตอนนี้ผมต้องการที่จะให้มันหมุนจากแรงเสียดทานของการตี

การแสดงนี้ง่ายพอ: ฉันหมุนลูกบอลด้วยความเร็วเชิงมุมของทุกเห็บและใช้การหมุนเดียวกันเมื่อแสดงผล

เมื่อลูกบอลชนกำแพงฉันรู้ว่าความเร็วในการหมุนได้รับผลกระทบจาก ...

  • ความเร็วเริ่มต้นของลูกบอลเมื่อกระทบพื้นผิว
  • ค่าสัมประสิทธิ์แรงเสียดทานของลูกและพื้นผิว (คงที่ทางกายภาพ)
  • มุมตกกระทบ (มุมระหว่างเวกเตอร์ความเร็วลูกบอลเข้าและพื้นผิวปกติ)

มุมของการประมาณการณ์เป็นผลคูณของจุดของผลกระทบของลูกบอลและเวกเตอร์ความเร็วทางออก (1 หมายถึงสปินสูง -1 หมายถึงไม่สปินและทุกอย่างอื่นที่ค่อนข้างอยู่ระหว่าง)

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


นี่เป็นวิธีที่ดีหรือไม่? คุณคิดวิธีที่ง่ายกว่านี้ได้ไหม?

หากวิธีนี้ดูเหมือนดีฉันจะพลาดอะไรบ้าง ฉันจะรู้ได้อย่างไรว่าลูกบอลควรหมุนทวนเข็มนาฬิกาเมื่อใด

คำตอบ:


2

วิธีการของคุณดีเพราะง่ายมาก สิ่งหนึ่งที่คุณอาจต้องการคือการพึ่งพาการหมุนครั้งก่อนบนลูกบอลซึ่งคุณไม่ได้คำนึงถึง ลูกบอลหมุนหมายถึงพลังงานหมุนดังนั้นการจำลองที่เหมือนจริงอาจจะต้องอนุรักษ์พร้อมกับพลังงานอื่น ๆ

อย่างไรก็ตามหากลูกบอลไม่หมุนตามแรงกระแทกฉันไม่สามารถจินตนาการสถานการณ์ที่เริ่มหมุนกับทิศทางของมุมเหตุการณ์ นั่นคือ "ทวนเข็มนาฬิกา" หรือ "ทวนเข็มนาฬิกา" ควรสัมพันธ์กับมุมด้านเหตุการณ์ใด ๆ ก็ตาม

ฉันคิดว่าการคูณผลลัพธ์ด้วยเวกเตอร์ทิศทาง x เดิม (+1 ถ้าเดินทางจากซ้ายไปขวา, -1 ถ้าเดินทางจากขวาไปซ้าย) ควรทำ

แก้ไข:คุณสามารถใช้ผลิตภัณฑ์ข้ามสำหรับสิ่งนี้ Incident cross normalแสดงเวกเตอร์ในทิศทาง Z เท่านั้น (ถ้าเราอยู่บนระนาบ xy 2 มิติ) ดูองค์ประกอบ z: ถ้าเป็นบวกแนวทางของลูกบอลควรทำให้มันหมุนตามเข็มนาฬิกา ถ้ามันเป็นลบลูกบอลควรหมุนทวนเข็มนาฬิกา


เฮ้เอลีประการแรกฉันคำนึงถึงการหมุนของลูกบอลดั้งเดิมลืมที่จะพูดถึงมันในโพสต์ของฉันประการที่สองฉันไม่คิดว่าระบบ x-direction จะทำงานได้ ฉันลองดู, แต่ถ้าลูกบอลกระทบกับพื้นผิวจากด้านล่างซ้าย, เวกเตอร์ x จะเป็น -1, มันหมายถึงการหมุนทวนเข็มนาฬิกา, ในความเป็นจริงมันควรจะหมุนตามเข็มนาฬิกา
codemonkey

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

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

Ouch การแก้ไขเป็นหนึ่งในวิธีการแก้ปัญหาที่แตกต่างกัน 3 ข้อที่ฉันแนะนำและฉันอธิบายว่าทำไมคุณต้องทำ (จุดนั้นให้ขนาดเท่านั้นไม่ใช่ทิศทางของมุม) อนิจจาน่าจะกระชับกว่านี้ฉันเดา
Kaj

ขอโทษสำหรับ kaj นั้นมันลื่นฉัน ... ไม่มีความผิดตั้งใจ :)
codemonkey

3

ก่อนอื่นให้ผิวสัมผัสกันจากพื้นผิวปกติ: t = (ny, -nx)

จากนั้นคุณสามารถได้รับส่วนความเร็วไปตามพื้นผิวเป็นVT = วีดอทที

ตอนนี้คุณสามารถคำนวณการหมุนของลูกบอลได้: w = | ( ปกติ * r) cross vt | โดยที่ r คือรัศมีของลูกบอล

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


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

2

ใช่, นี่อาจฟังดูงี่เง่า แต่คุณไม่ได้ใช้ dot-product ของเวกเตอร์บอลและพื้นผิวปกติและเพิ่งทำ arccos เพื่อคำนวณมุมใช่ไหม? เพราะมุมจะเป็นบวกไม่ว่าจะเป็นบวก (สูงสุด 90 องศา) หรือลบ (เหมือนกัน) เนื่องจากโคไซน์มีความสมมาตรประมาณ 0
ถ้าเป็นเช่นนั้นแทนที่จะใช้ปกติของเครื่องบินให้ใช้ทิศทางของเครื่องบินและ ลบ 90 องศาจากมุมดังนั้น 0 ถึง 180 จะกลายเป็น -90 ถึง +90 องศา (หรือ -half PI ถึง + ครึ่ง PI หากคุณมีความโน้มเอียงที่เรดิโอ)


ลองพิจารณากรณีนี้: x + ve ถูกต้อง y + ive หยุดทำงาน; พื้นผิวเวกเตอร์ S = (1,0); เรามีเวกเตอร์ความเร็วกระแทกสองตัว V1 = (3,4) การกดปุ่มจากด้านบนควรหมุนนาฬิกาลูก & V2 = (3, -4) การกดปุ่มจากด้านล่างควรหมุนลูกต่อต้านนาฬิกา ทีนี้ค่าปกติสำหรับเวกเตอร์ทั้งคู่จะเป็น (3 / 5,4 / 5) & (3/5, -4 / 5) ตามลำดับ จุดดอทโปรดัคของเวกเตอร์ทั้งคู่จะเท่ากับ 3/5 มุมที่สร้างขึ้นจะเป็น arccos (3/5) = 53 องศาสำหรับเวกเตอร์ทั้งคู่ ซึ่งเป็นเรื่องจริง แต่อยู่ฝั่งตรงข้าม! ดังนั้นถ้าฉันใช้วิธีนี้ฉันจะยังคงจบลงด้วยการหมุนทั้งสองทำให้นาฬิกาหมุน เห็นภาวะที่กลืนไม่เข้าคายไม่ออกของฉันได้อย่างไร
codemonkey

3 ทางออกที่เป็นไปได้ 1) อย่าใช้แบบปกติ แต่ใช้ทิศทางด้านข้างและลบ 90 องศาดังที่ได้กล่าวข้างต้น 2) จำลองแบบเดียวกันโดยสลับ x และ y ของปกติและกลับด้านหนึ่ง (คูณด้วย -1) 3) คูณมุมที่มีเครื่องหมายของผลคูณของสองเวกเตอร์เนื่องจาก crossproduct แสดงถึงบาปของมุมซึ่งไม่ได้เป็นสมมาตรประมาณ 0 องศา
Kaj

ผลิตภัณฑ์ดอทไม่ได้ให้มุมกับคุณเพียงแค่ขนาดของมุมคุณต้องมีทิศทางของมุมด้วย ทั้ง 3 วิธีข้างต้นจำลองโดยใช้ไซน์ให้คุณด้านข้าง คุณสามารถใช้ทริกพื้นฐานเพื่อให้ได้มุม Sin (alpha) = ความยาวของฝ่ายตรงข้าม / ด้านที่ลาดเอียง (ขึ้นอยู่กับรูปสามเหลี่ยมที่มีมุม 90 องศาหนึ่งมุมระหว่างฝั่งตรงข้ามและด้านที่ลาดเอียง) ที่และพีทาโกรัสในการคำนวณความยาวด้านจะทำ
Kaj

โดยวิธีการอ่านคำตอบเดิมของฉันเพราะมันจะแก้ปัญหาภาวะที่กลืนไม่เข้าคายไม่ออกโดยใช้มุมกับเครื่องบินแทนของปกติและลบ 90 องศา
Kaj

0

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

รับส่วนประกอบของความเร็วข้ามพื้นผิวที่กระดอน Vxi = Vi จุด Vx โดยเป็น Vx เป็นเวกเตอร์ขนานกับพื้นผิวที่มีขนาด 1

ค่าที่คุณกำลังมองหาคือ Ss = Vxi / r นี่คือการแปลง Vxi เป็นความเร็วเชิงมุม หากศรีต่ำกว่า Ss ลูกบอลควรได้รับการหมุนในทางบวก หากศรีเท่ากับ Ss ลูกบอลควรเก็บรอบการหมุนรอบเดิมไว้ประมาณนี้ในภายหลัง หากศรีมากกว่า Ss ลูกบอลควรจะเสียการหมุน

การสูญเสียและกำไรของความเร็วขึ้นอยู่กับค่าความเสียดทาน อันที่จริงมันเป็นกากบาทระหว่างแรงเสียดทานของรัศมีและแรงเสียดทาน hte แต่คุณสามารถตั้งค่านั้นได้ตามที่คุณต้องการ

คุณต้องสังเกตด้วยว่านอกจากการตีกลับทำให้ลูกบอลเสียพลังงานเนื่องจากแรงเสียดทานระหว่างลูกบอลและพื้นผิวดังนั้น Vxi จึงได้รับผลกระทบในทางลบ ฉันจะบอกว่าการตีกลับมีผลต่อ Vy และแรงเสียดทานมีผลต่อ Vx

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

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