สารบัญ:
- ขั้นตอนที่ 1: การสร้างหุ่นยนต์
- ขั้นตอนที่ 2: หุ่นยนต์พิมพ์ 3 มิติ
- ขั้นตอนที่ 3: อัลกอริทึมการควบคุม PID
วีดีโอ: หุ่นยนต์ปรับสมดุลตนเอง - อัลกอริธึมการควบคุม PID: 3 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:02
โครงการนี้เกิดขึ้นเพราะฉันสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับอัลกอริธึมการควบคุมและวิธีการใช้ลูป PID ที่ใช้งานได้อย่างมีประสิทธิภาพ โปรเจ็กต์ยังอยู่ในขั้นตอนการพัฒนาเนื่องจากยังไม่ได้เพิ่มโมดูลบลูทูธ ซึ่งจะช่วยให้สามารถควบคุมหุ่นยนต์จากสมาร์ทโฟนที่ใช้บลูทูธได้
มอเตอร์ DC N20 ที่ใช้นั้นค่อนข้างถูกและด้วยเหตุนี้จึงมีการเล่นจำนวนมาก สิ่งนี้นำไปสู่การกระตุกเล็กน้อยเมื่อมอเตอร์เอาชนะ 'การหย่อน' เนื่องจากใช้แรงบิดกับล้อ ดังนั้นจึงเป็นไปไม่ได้เลยที่จะให้การเคลื่อนไหวที่ราบรื่นสมบูรณ์แบบ รหัสที่ฉันเขียนนั้นเรียบง่ายพอสมควร แต่แสดงให้เห็นถึงความสามารถของอัลกอริธึม PID อย่างมีประสิทธิภาพ
สรุปโครงการ:
แชสซีของหุ่นยนต์ถูกพิมพ์ 3 มิติโดยใช้เครื่องพิมพ์ Ender 3 และได้รับการออกแบบให้กดเข้าด้วยกัน
หุ่นยนต์ถูกควบคุมโดย Arduino Uno ซึ่งใช้ข้อมูลเซ็นเซอร์จาก MPU6050 และควบคุมมอเตอร์กระแสตรงผ่านไดรเวอร์มอเตอร์ภายนอก ใช้พลังงานจากแบตเตอรี่ 7.4V, 1500mAh ตัวขับมอเตอร์ควบคุมสิ่งนี้เป็น 5V เพื่อจ่ายไฟให้กับ Arduino และจ่ายไฟ 7.4V ให้กับมอเตอร์
ซอฟต์แวร์นี้เขียนขึ้นใหม่ทั้งหมดโดยใช้ไลบรารี 'Arduino-KalmanFilter-master' และ 'Arduino-MPU6050-master' จาก gitHub
เสบียง:
- ชิ้นส่วนพิมพ์ 3 มิติ
- Arduino UNO
- MPU6050 เซนเซอร์ 6 แกน
- ไดรเวอร์ DC มอเตอร์
- มอเตอร์ N20 DC (x2)
- แบตเตอรี่ 9V
ขั้นตอนที่ 1: การสร้างหุ่นยนต์
พิมพ์และประกอบ
โครงสร้างทั้งหมดควรเป็นแบบกดพอดี แต่ฉันใช้ superglue เพื่อยึดส่วนประกอบเพื่อให้แน่ใจว่าหุ่นยนต์มีความแข็งทั้งหมดเมื่อทำสมดุล
ฉันได้ออกแบบชิ้นส่วนต่างๆ ใน Fusion 360 และได้ปรับแต่ละส่วนให้เหมาะสมเพื่อพิมพ์โดยไม่ต้องรองรับเพื่อให้มีความคลาดเคลื่อนที่เข้มงวดมากขึ้นและพื้นผิวที่สะอาดขึ้น
การตั้งค่าที่ใช้กับเครื่องพิมพ์ Ender 3 คือ 0.16 มม. ความสูงของเลเยอร์ @ 40% สำหรับการเติมทุกส่วน
ขั้นตอนที่ 2: หุ่นยนต์พิมพ์ 3 มิติ
แชสซี (x1)
ล้อซ้าย (x2)
ตัวเรือนมอเตอร์ด้านซ้าย (x2)
เคส Arduino (x1)
ขั้นตอนที่ 3: อัลกอริทึมการควบคุม PID
ฉันได้เขียนอัลกอริทึมการควบคุม PID ตั้งแต่เริ่มต้นโดยใช้ไลบรารี 'Arduino-KalmanFilter-master' และ 'Arduino-MPU6050-master' จาก gitHub
พื้นฐานของอัลกอริทึมมีดังนี้:
- อ่านข้อมูลดิบจาก MPU6050
- ใช้ตัวกรองคาลมานเพื่อวิเคราะห์ข้อมูลจากทั้งไจโรสโคปและมาตรความเร่งเพื่อขจัดความไม่ถูกต้องในการอ่านไจโรสโคปเนื่องจากการเร่งความเร็วของเซ็นเซอร์ ค่านี้จะส่งกลับค่าที่ค่อนข้างเรียบสำหรับระยะพิทช์ของเซ็นเซอร์ในหน่วยองศาเป็นทศนิยมสองตำแหน่ง
- คำนวณ E rror ในมุม เช่น มุมระหว่างเซ็นเซอร์กับจุดตั้งค่า
- คำนวณข้อผิดพลาดตามสัดส่วนเป็น (ค่าคงที่ของสัดส่วน x ข้อผิดพลาด)
- คำนวณ Integral Error เป็นผลรวมของ (Constant of Integration x error)
- คำนวณข้อผิดพลาดอนุพันธ์เป็นค่าคงที่เป็น [(ค่าคงที่ส่วนต่าง) x (การเปลี่ยนแปลงในข้อผิดพลาด / การเปลี่ยนแปลงในเวลา)]
- รวมข้อผิดพลาดทั้งหมดเพื่อกำหนดความเร็วเอาต์พุตที่จะส่งไปยังมอเตอร์
- คำนวณทิศทางที่จะหมุนมอเตอร์ตามสัญญาณของมุมผิดพลาด
- ลูปจะทำงานอย่างไม่มีกำหนดและสร้างจากเอาต์พุตเมื่ออินพุตแตกต่างกันไป เป็นลูปป้อนกลับ โดยใช้ค่าเอาต์พุตเป็นค่าอินพุตใหม่สำหรับการวนซ้ำครั้งต่อไป
ขั้นตอนสุดท้ายคือการปรับแต่งพารามิเตอร์ PID loop Kp, Ki & Kd
- จุดเริ่มต้นที่ดีคือการเพิ่ม Kp อย่างช้าๆ จนกว่าหุ่นยนต์จะแกว่งไปมารอบๆ จุดสมดุลและสามารถตกได้
- ถัดไป เริ่ม Kd ที่ประมาณ 1% ของค่า Kp และเพิ่มอย่างช้าๆ จนกว่าการสั่นจะหายไปและหุ่นยนต์จะร่อนได้อย่างราบรื่นเมื่อถูกผลัก
- สุดท้าย เริ่มต้นด้วย Ki ประมาณ 20% ของ Kp และเปลี่ยนแปลงไปจนกว่าหุ่นยนต์จะ "เกิน" เซ็ตพอยต์เพื่อจับการตกและกลับสู่แนวตั้ง
แนะนำ:
ผู้ติดตาม PID Line Atmega328P: 4 ขั้นตอน
PID Line Follower Atmega328P: บทนำ คำสั่งนี้เกี่ยวกับการสร้าง Line Follower ที่มีประสิทธิภาพและเชื่อถือได้ด้วย PID (proportional-integral-derivative) Control (Mathematical) ที่ทำงานอยู่ในสมอง (Atmega328P) ผู้ติดตาม Line เป็นหุ่นยนต์อิสระที่ติดตามข
PID Controller VHDL: 10 ขั้นตอน
PID Controller VHDL: โครงการนี้เป็นโครงการสุดท้ายของฉันในการสำเร็จการศึกษาระดับปริญญาตรีเกียรตินิยมจาก Cork Institute of Technology บทช่วยสอนนี้แบ่งออกเป็นสองส่วน ส่วนแรกจะครอบคลุมเนื้อหาหลักของรหัส PID ซึ่งเป็นจุดประสงค์หลักของโครงการและส่วนที่สอง
ควบคุมอุณหภูมิที่บ้านด้วย PID และ Labview: 4 ขั้นตอน
ควบคุมอุณหภูมิหน้าแรกด้วย PID และ Labview: PID merupakan suatu sistem pengontrolan yang biasa digunakan pada dunia indusri yang telah bukti keandalannya disini kita akan mengimplementasikan kontrolloer PID pada pengatur suhu ruangan menggunakan labview
ทาวเวอร์คอปเตอร์พร้อมตัวควบคุม PID: 4 ขั้นตอน
Tower Copter พร้อม PID Controller: สวัสดีทุกคน ฉันชื่อวชิด กุรเนียวัน ปุตรา วันนี้ฉันจะแชร์โปรเจ็กต์ไมโครคอนโทรลเลอร์กับทีมของฉัน ทีมของฉันมี 4 คนรวมฉันด้วย พวกเขาคือ: 1 ฮวน แอนดรูว์ (15/386462 / SV / 09848)2. วชิต กุรณิวรรณบุตร (17/416821 / SV / 14559)3.
แพลตฟอร์มสจ๊วตควบคุมบอลทรงตัวแบบควบคุมด้วย PID: 6 ขั้นตอน
แพลตฟอร์ม PID Controlled Ball Balancing Stewart: แรงจูงใจและแนวคิดโดยรวม: ในฐานะนักฟิสิกส์ในการฝึกอบรม ฉันรู้สึกสนใจและพยายามทำความเข้าใจระบบทางกายภาพอย่างเป็นธรรมชาติ ฉันได้รับการฝึกฝนให้แก้ปัญหาที่ซับซ้อนโดยแยกย่อยออกเป็นส่วนประกอบพื้นฐานและจำเป็นที่สุด จากนั้น