โมดูล 3/5 · สัปดาห์ 7–9 · 27 ชม.

การควบคุมป้อนกลับ

DRT 344 ระบบอัตโนมัติ หุ่นยนต์ และการควบคุมอัจฉริยะ

เวลาเรียนประมาณ 90 นาทีร่าง รอตรวจปรับปรุงล่าสุด 26 กันยายน 2569

บทเรียน

เมื่อเรียนจบโมดูลนี้ ผู้เรียนจะสามารถ

  1. เปรียบเทียบการควบคุมแบบวงเปิดกับวงปิด
  2. อธิบายหน้าที่ของเทอม P, I และ D และผลต่อการตอบสนอง
  3. คำนวณความคลาดเคลื่อนสถานะคงตัวของการควบคุมแบบ P
  4. ปรับจูน PID เบื้องต้นด้วยวิธี Ziegler–Nichols และบอกข้อจำกัด
  5. อธิบายโครงสร้างควบคุมแบบซ้อน (cascade) ของมัลติโรเตอร์ใน PX4 และลำดับการจูน

ความรู้พื้นฐานที่ควรมี: DRT 111 โมดูล 4 (อนุพันธ์และปริพันธ์) · DRT 341 โมดูล 3

ทำไมต้องรู้

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

การควบคุมป้อนกลับเปรียบได้กับการขับรถให้อยู่กลางเลน ตาดูว่ารถเบี่ยงจากกลางเลนไปเท่าไร (ความคลาดเคลื่อน) แล้วหมุนพวงมาลัยแก้ ยิ่งเบี่ยงมากยิ่งหมุนมาก ถ้ามีลมด้านข้างพัดตลอด ก็ค่อย ๆ ถือพวงมาลัยเผื่อไว้ และถ้าเห็นว่ารถกำลังเบี่ยงเร็ว ก็แก้ล่วงหน้า สามพฤติกรรมนี้คือ P, I และ D

วงเปิดกับวงปิด

  • วงเปิด สั่งงานตามแผนโดยไม่วัดผล เช่น เปิดมอเตอร์ที่กำลังคงที่ตามตาราง ถ้ามีลมหรือน้ำหนักเปลี่ยน ผลจะคลาดโดยไม่มีใครแก้
  • วงปิด วัดผลจริงด้วยเซนเซอร์ เทียบกับค่าเป้าหมาย แล้วปรับคำสั่งตามความคลาดเคลื่อน
บล็อกไดอะแกรม ค่าเป้าหมาย r เข้าจุดรวมสัญญาณ ลบด้วยค่าจากเซนเซอร์ ได้ความคลาดเคลื่อน e เข้าตัวควบคุม PID ไปยังตัวขับเร้าและระบบ ได้เอาต์พุต y ซึ่งวัดด้วยเซนเซอร์แล้วป้อนกลับ
ภาพที่ 1 วงควบคุมป้อนกลับ

ตัวควบคุม PID

เทอมตอบสนองต่อผลเมื่อเพิ่มค่าข้อควรระวัง
P (proportional)ความคลาดเคลื่อนตอนนี้ตอบสนองเร็วขึ้นมากไปทำให้แกว่ง ใช้อย่างเดียวมักเหลือความคลาดเคลื่อนค้าง
I (integral)ความคลาดเคลื่อนสะสมในอดีตกำจัดความคลาดเคลื่อนค้างมากไปทำให้แกว่งและ overshoot ต้องมี anti-windup
D (derivative)อัตราการเปลี่ยนของความคลาดเคลื่อนลดการแกว่ง หน่วงการเคลื่อนที่ขยายสัญญาณรบกวน ต้องกรองสัญญาณ

Integrator windup เกิดเมื่อตัวขับเร้าถึงขีดจำกัด เช่น มอเตอร์เต็มกำลังแล้ว แต่เทอม I ยังสะสมต่อ เมื่อความคลาดเคลื่อนกลับทิศ ตัวควบคุมจะตอบช้ามาก จึงต้องจำกัดค่าของเทอม I (anti-windup) ซึ่ง PX4 ทำด้วยการจำกัดค่า (clamping) ในวงความเร็ว

ตัวอย่างที่ 1 ทำไม P อย่างเดียวจึงไม่ถึงเป้า

ระบบอันดับหนึ่งมีอัตราขยายสถานะคงตัว ใช้ตัวควบคุม P ที่ เมื่อสั่งค่าเป้าหมายแบบขั้นบันได

ระบบค้างห่างเป้าหมายราว 14.3% ถ้าเพิ่ม ความคลาดเคลื่อนจะเล็กลงแต่ไม่หายไป และระบบจริงที่มีความหน่วงจะเริ่มแกว่ง การเพิ่มเทอม I จึงเป็นวิธีกำจัดความคลาดเคลื่อนค้างนี้

ปรับจูนด้วย Ziegler–Nichols

Ziegler และ Nichols (1942) เสนอวิธีหาค่า PID เริ่มต้นจากการทดลอง แบบหนึ่งคือเพิ่ม ทีละน้อย (ปิด I และ D) จนระบบแกว่งคงที่ บันทึกอัตราขยายนั้นเป็น และคาบการแกว่งเป็น แล้วใช้ตาราง (Åström & Murray, ตาราง 11.1)

ตัวควบคุม
P––
PI–
PID

ตัวอย่างที่ 2 คำนวณค่า PID จากการทดลอง

ทดลองกับแท่นทดสอบมอเตอร์ พบว่าระบบแกว่งคงที่ที่ คาบ s

  1. s ได้
  2. s ได้

Åström และ Murray เตือนว่ากฎของ Ziegler–Nichols ใช้ข้อมูลของระบบน้อยเกินไป และมักได้วงปิดที่ทนทานไม่พอ ค่าเหล่านี้จึงเป็นเพียงจุดเริ่มต้น และ ห้ามทดลองให้โดรนจริงแกว่งจนถึงขีดจำกัด ต้องทำในแท่นทดสอบหรือการจำลองเท่านั้น

การควบคุมแบบซ้อนในมัลติโรเตอร์

PX4 ใช้โครงสร้างควบคุมแบบซ้อน (cascade) ซึ่งเป็นการผสมตัวควบคุม P และ PID ต่อกันเป็นชั้น

ห้าบล็อกเรียงกัน ตัวควบคุมตำแหน่งแบบ P ส่งความเร็วเป้าหมายให้ตัวควบคุมความเร็วแบบ PID ส่งความเร่งหรือแรงขับให้ตัวควบคุมท่าทางแบบ P บน quaternion ส่งอัตราหมุนเป้าหมายให้ตัวควบคุมอัตราหมุนแบบ PID ส่งแรงบิดให้ mixer และมอเตอร์ ลูกศรประย้อนกลับระบุว่าวงในทำงานเร็วกว่าและต้องจูนวงในก่อน
ภาพที่ 2 วงควบคุมซ้อนของมัลติโรเตอร์ใน PX4
วงชนิดส่งออกพารามิเตอร์ตัวอย่างใน PX4
ตำแหน่งPความเร็วเป้าหมายMPC_XY_P, MPC_Z_P
ความเร็วPIDความเร่งเป้าหมายMPC_XY_VEL_P_ACC, MPC_XY_VEL_I_ACC, MPC_XY_VEL_D_ACC
ท่าทางP บน quaternionอัตราหมุนเป้าหมายMC_ROLL_P, MC_PITCH_P, MC_YAW_P
อัตราหมุนPIDแรงบิดไปยัง mixerMC_ROLLRATE_P/I/D, MC_PITCHRATE_P/I/D

วงในทำงานเร็วกว่าวงนอก วงอัตราหมุนรับข้อมูลจาก gyro ผ่านตัวกรองสัญญาณ และความถี่ของข้อมูล gyro ตั้งได้ด้วย IMU_GYRO_RATEMAX คู่มือปรับจูนของ PX4 ย้ำว่า ต้องจูนวงอัตราหมุนให้ดีก่อน เพราะมีผลกับทุกโหมดการบิน หลังจากนั้นวงท่าทางจะจูนง่ายกว่ามาก คู่มือแนะนำให้เพิ่มค่าครั้งละ 20–30% แล้วลดเป็น 5–10% ช่วงละเอียด และทดสอบด้วยการสั่งขั้นบันไดเร็ว ๆ ขณะลอยตัว

กิจกรรมในชั้นเรียน

กิจกรรม: จำลองตัวควบคุมความสูง

  1. เขียนโปรแกรม Python จำลองระบบอันดับหนึ่งแบบไม่ต่อเนื่อง (discrete) กับตัวควบคุม P, PI และ PID
  2. เปรียบเทียบเวลาขึ้น overshoot และความคลาดเคลื่อนค้างของแต่ละแบบ
  3. ใส่ขีดจำกัดของตัวขับเร้าแล้วสังเกต integrator windup จากนั้นเพิ่ม anti-windup
  4. อ่าน log การจูนจาก SITL ของ PX4 (ถ้ามี) แล้วระบุว่าวงใดถูกจูนก่อน

ข้อผิดพลาดที่พบบ่อย

ระวัง

  • จูนวงนอกก่อนวงใน ทำให้แก้ปัญหาผิดจุด
  • เพิ่ม D โดยไม่กรองสัญญาณ มอเตอร์สั่นและร้อน
  • ไม่มี anti-windup เมื่อตัวขับเร้าถึงขีดจำกัด
  • ใช้ค่า Ziegler–Nichols เป็นค่าสุดท้าย โดยไม่ตรวจความทนทาน
  • ทดลองให้โดรนจริงแกว่งจนถึงขีดจำกัด

สรุป

  • วงปิดวัดผลจริงแล้วแก้ตามความคลาดเคลื่อน
  • P ตอบสนองต่อความคลาดเคลื่อนปัจจุบัน I กำจัดความคลาดเคลื่อนค้าง D หน่วงการแกว่ง
  • P อย่างเดียวกับระบบอันดับหนึ่งเหลือ
  • Ziegler–Nichols แบบ PID: , , ใช้เป็นจุดเริ่มต้นเท่านั้น
  • PX4 ใช้วงซ้อน P → PID → P → PID และต้องจูนวงอัตราหมุนก่อน

แบบฝึกตรวจความเข้าใจ

  1. เทอมใดของ PID ใช้กำจัดความคลาดเคลื่อนค้าง
  2. ระบบอันดับหนึ่ง ใช้ P ที่ ความคลาดเคลื่อนสถานะคงตัวเท่าใด
  3. ทดลองได้ , s คำนวณ , และ ของ PID ตาม Ziegler–Nichols
  4. ใน PX4 วงใดส่งอัตราหมุนเป้าหมายให้วงอัตราหมุน
  5. ทำไมต้องจูนวงอัตราหมุนก่อนวงอื่น
เฉลย
  1. เทอม I (integral)
  2. หรือราว 11%
  3. , s ได้ , s ได้
  4. วงท่าทาง (attitude) ซึ่งเป็นตัวควบคุม P บน quaternion
  5. เพราะวงนอกทุกวงทำงานผ่านวงอัตราหมุน ถ้าวงในไม่ดี วงนอกจะจูนให้ดีไม่ได้ และมีผลกับทุกโหมดการบิน

สรุปสูตรสำคัญ

ตัวควบคุม PID
ความคลาดเคลื่อนสถานะคงตัว (ระบบอันดับหนึ่ง กับ P)
Ziegler–Nichols แบบ ultimate gain (PID)
แปลงเป็นอัตราขยาย

แหล่งอ้างอิงหลัก

  1. Åström, K. J., & Murray, R. M. (2021). Feedback systems: An introduction for scientists and engineers (2nd ed.). Princeton University Press. link
  2. Nise, N. S. (2019). Control systems engineering (8th ed.). Wiley.
  3. Ziegler, J. G., & Nichols, N. B. (1942). Optimum settings for automatic controllers. Transactions of the ASME, 64(8), 759–765. link
  4. PX4 Autopilot. Controller diagrams; Multicopter PID tuning guide. PX4 user guide (main). link
  5. Beard, R. W., & McLain, T. W. (2012). Small unmanned aircraft: Theory and practice. Princeton University Press.
  6. Quan, Q. (2017). Introduction to multicopter design and control. Springer.

อ่านเพิ่มเติม

ศึกษาหน่วยความรู้ที่กำหนดล่วงหน้า ดูสื่อประกอบ และทำ quiz ประจำโมดูล

ในชั้นเรียน / ภาคสนาม

บรรยาย อภิปรายกรณีศึกษา และแก้โจทย์ในชั้นเรียน

หลักฐานการเรียนรู้: ผล quiz และแบบฝึกหัดที่ส่ง

แบบทดสอบประจำโมดูล

แบบทดสอบนี้ใช้ตรวจความเข้าใจ (formative) ไม่ใช่การสอบเก็บคะแนน

โดเมนความรู้: การควบคุม ออโตไพลอต และการนำทาง