มีปัญหาอะไรกับเรื่องนี้ไหม?
ปัญหาหลักกับเรื่องนี้ก็คือในขณะที่นำเสนอวิธีการแก้ปัญหาของคุณจะทันทีที่ถูกต้องสำหรับลงตัวระหว่างประสิทธิภาพการทำงานของมอเตอร์ก็จะไม่ถูกต้องสำหรับข้อผิดพลาดที่สะสมให้เกิดข้อผิดพลาดคนเดียวที่ซับซ้อนมากขึ้นในตำแหน่งดังกล่าวเป็นข้อผิดพลาดฝรั่งเศส (ดูในภายหลัง)
อะไรคือแนวทางที่ดีกว่า
มีหลายสิ่งที่คุณสามารถทำได้ขึ้นอยู่กับความอดทนของคุณสำหรับข้อผิดพลาดและความพยายามที่คุณต้องการแก้ไข
ขั้นตอนแรกคือการตั้งค่าลูป PID หนึ่งคู่สำหรับแต่ละล้อทำให้พวกเขาอยู่ในตำแหน่งที่ต้องการเท่ากัน ตามที่ฉันแนะนำในคำตอบของคำถามที่คล้ายกันถ้าคุณเก็บล้อทั้งสองไว้ในข้อผิดพลาดที่แน่นมากที่คุณขอให้พวกเขาเป็นแล้วมันจะใช้เวลาสักครู่เพื่อสะสมข้อผิดพลาดพอที่จะทำให้เกิดการเปลี่ยนทิศทางที่เห็นได้ชัด
นอกจากนี้ยังจะง่ายกว่าในการปรับแต่งระดับ PID ของมอเตอร์ระดับสองที่เป็นอิสระในนามกว่าจะปรับแต่งระบบที่ซับซ้อนซึ่งพึ่งพาซึ่งกันและกันและพึ่งพาอาศัยซึ่งกันและกัน เพื่อให้การเปลี่ยนแปลงของการควบคุมระดับสูงขึ้นคุณต้องการให้มอเตอร์แต่ละตัวทำงานคล้ายกับมอเตอร์อื่นมากที่สุดเท่าที่จะทำได้และต้องใช้เซอร์โวลูปแยกต่างหาก
มีจำนวนของภาวะแทรกซ้อนเพิ่มเติมอย่างไรก็ตามและมันขึ้นอยู่กับความถูกต้องที่คุณต้องการและความพยายามที่คุณเตรียมที่จะไปแก้ไขให้ถูกต้องสำหรับวิธีการแก้ปัญหาที่คุณไป อาจเป็นได้ว่าการคำนวณ Dead Deadนั้นเพียงพอหรือคุณอาจต้องเพิ่มการกำหนดตำแหน่งสัมพัทธ์หรือสัมบูรณ์เข้ากับหุ่นยนต์ของคุณ
ปัญหาหนึ่งคือแม้ว่าล้อซ้ายและล้อขวาของคุณทั้งคู่มีการย้ายตัวเข้ารหัส 1,000 ครั้ง แต่คุณอาจยังอยู่ในตำแหน่งที่แตกต่างกันในการวิ่งสองแบบที่แตกต่างกัน
ตัวอย่างเช่นสมมติว่าคุณมีข้อผิดพลาดสูงสุดต่อไปนี้คือ 10 ตัวนับจำนวนตัวเข้ารหัสและมอเตอร์ของคุณกำลังทำงานด้วยความเร็วตัวเข้ารหัสจำนวนตัวเข้ารหัส 10 ตัวต่อการวนซ้ำ PID มอเตอร์ด้านซ้ายของคุณอาจเคลื่อนไหว 5,10,10,10 ... 10,5 ในขณะที่มอเตอร์ด้านขวาของคุณอาจมีโปรไฟล์ของ 4,11,10,10 ... 10,5 และแม้แต่ความแตกต่างเล็กน้อยในการเร่งความเร็วในตอนเริ่มต้น การเคลื่อนที่อาจทำให้หุ่นยนต์เคลื่อนที่ไปในทิศทางที่ผิดเล็กน้อย ไม่เพียงเท่านั้น แต่ยิ่งคุณก้าวไปในทิศทางนั้นมากขึ้นความผิดพลาดก็จะยิ่งมากขึ้นเท่านั้น นี่คือสิ่งที่เรากำลังพูดถึงเมื่อเราพูดถึงข้อผิดพลาดของAbbeและหากไม่มีโมเดลจลศาสตร์ที่ซับซ้อนหรือการอ้างอิงภายนอกบางประเภทคุณจะไม่สามารถแก้ไขได้
สำหรับข้อมูลเพิ่มเติมดูคำตอบของคำถามที่คล้ายกัน แต่ไม่เหมือนกัน: ฉันจะใช้ห้องสมุด Arduino PID เพื่อขับหุ่นยนต์เป็นเส้นตรงได้อย่างไร?
และคำตอบของฉันในการเพิ่มประสิทธิภาพ Line Followerที่เกี่ยวข้อง