โมดูล 4/5 · สัปดาห์ 10–12 · 27 ชม.

การควบคุมป้อนกลับเบื้องต้น

UAT 202 พื้นฐานเทคโนโลยีระบบอัตโนมัติ

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

บทเรียน

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

  1. อธิบายการควบคุมแบบ ON/OFF พร้อม hysteresis และเหตุที่ทำให้ค่าแกว่ง
  2. อธิบายหน้าที่ของพจน์ P, I และ D ในตัวควบคุม PID
  3. จำลองวงควบคุมอุณหภูมิและเปรียบเทียบ ON/OFF, P และ PI จากค่าผิดพลาดคงค้างและการแกว่ง
  4. อธิบาย integral windup และวิธีป้องกันเบื้องต้น

ความรู้พื้นฐานที่ควรมี: UAT 202 โมดูล 1–3 · UAT 101 (คณิตศาสตร์ประยุกต์)

ทำไมต้องรู้

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

ผังบล็อกของวงป้อนกลับ

setpoint 30 องศาเข้าตัวรวมสัญญาณ ได้ค่าผิดพลาด e เข้าตัวควบคุม ON/OFF P หรือ PI สั่งพัดลมทำความเย็น ซึ่งทำให้ตู้ชาร์จแบตเตอรี่เย็นลง ความร้อนจากการชาร์จเข้าตู้ชาร์จจากด้านบน เซนเซอร์อุณหภูมิวัดตู้แล้วป้อนกลับเป็นค่าลบที่ตัวรวมสัญญาณ
ภาพที่ 1 ผังบล็อกวงควบคุมอุณหภูมิตู้ชาร์จ

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

ON/OFF, P, I และ D

  • ON/OFF เปิดพัดลมเต็มที่เมื่อร้อนเกิน ปิดเมื่อเย็นพอ ต้องมี hysteresis (ช่วงเผื่อ) เช่น เปิดเมื่อเกิน 30.5 °C ปิดเมื่อต่ำกว่า 29.5 °C มิฉะนั้นพัดลมจะเปิดปิดถี่จนเสีย ค่าอุณหภูมิจึงแกว่งอยู่ในช่วงนั้นเสมอ
  • P (proportional) สั่งตามขนาดค่าผิดพลาดปัจจุบัน ยิ่งร้อนยิ่งเปิดแรง แต่มักเหลือ ค่าผิดพลาดคงค้าง (steady-state error) เพราะต้องมีค่าผิดพลาดอยู่บ้างจึงจะมีคำสั่งให้พัดลมหมุน
  • I (integral) สะสมค่าผิดพลาดตามเวลา ตราบใดที่ยังผิดอยู่ คำสั่งจะเพิ่มขึ้นเรื่อย ๆ จนค่าผิดพลาดคงค้างหายไป
  • D (derivative) ดูอัตราการเปลี่ยนของค่าผิดพลาด ช่วยลดการพุ่งเกิน แต่ไวต่อสัญญาณรบกวน งานอุณหภูมิที่เปลี่ยนช้ามักไม่ใช้ D

ตัวอย่างที่ 1 เปรียบเทียบ ON/OFF, P และ PI

ตู้ชาร์จเริ่มที่ 32 °C ต้องการ 30 °C จำลอง 1 ชั่วโมง ทีละ 1 วินาที คำสั่งพัดลม อยู่ในช่วง 0–1

def cabinet(mode, kp=0.3, ki=0.002, t_end=3600, dt=1.0):
    C, h, Ta, Q, Pmax, sp = 20000.0, 10.0, 32.0, 300.0, 600.0, 30.0   # J/K, W/K, °C, W, W, °C
    temp, integ, on, switches, hist = 32.0, 0.0, False, 0, []
    for _ in range(int(t_end / dt) + 1):
        e = temp - sp                                    # ร้อนเกินเป็นบวก
        if mode == "ON/OFF":
            new_on = True if temp > sp + 0.5 else False if temp < sp - 0.5 else on
            switches += new_on != on
            on = new_on
            u = 1.0 if on else 0.0
        elif mode == "P":
            u = min(max(kp * e, 0.0), 1.0)
        else:                                            # PI พร้อมกันไม่ให้สะสมเมื่อคำสั่งอิ่มตัว
            integ += e * dt
            raw = kp * e + ki * integ
            u = min(max(raw, 0.0), 1.0)
            if u != raw:
                integ -= e * dt
        temp += dt * (Q - Pmax * u - h * (temp - Ta)) / C
        hist.append(temp)
    last = hist[-1200:]                                  # 20 นาทีสุดท้าย
    return min(last), max(last), switches


for mode in ("ON/OFF", "P", "PI"):
    lo, hi, sw = cabinet(mode)
    print(f"{mode:<6} last 20 min: {lo:.2f}–{hi:.2f} °C" + (f", fan switched {sw} times" if mode == "ON/OFF" else ""))
ON/OFF last 20 min: 29.50–30.51 °C, fan switched 52 times
P      last 20 min: 31.68–31.68 °C
PI     last 20 min: 30.00–30.00 °C

ON/OFF แกว่งอยู่รอบ 30 °C และพัดลมเปิดปิดหลายสิบครั้งในหนึ่งชั่วโมง P ไม่แกว่ง แต่ค้างอยู่สูงกว่าเป้าหมายราว 1.7 °C ส่วน PI เข้าที่ 30 °C พอดี เพราะพจน์ I ค่อย ๆ เพิ่มคำสั่งจนค่าผิดพลาดหายไป

กราฟอุณหภูมิกับเวลา 0 ถึง 60 นาที เส้นประแนวนอนที่ 30 องศาคือเป้าหมาย เส้นสีส้ม ON/OFF แกว่งซิกแซกระหว่างประมาณ 29.5 ถึง 30.5 องศา เส้นสีม่วง P ลดจาก 32 แล้วค้างที่ประมาณ 31.7 องศา เส้นสีฟ้า PI ลดลงต่ำกว่า 30 เล็กน้อยแล้วเข้าที่ 30 องศา
ภาพที่ 2 อุณหภูมิตู้ชาร์จภายใต้ ON/OFF, P และ PI

Integral windup

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

ปฏิบัติการประจำโมดูล

ปฏิบัติการ: ปรับตัวควบคุมอุณหภูมิ

  1. รันโค้ดตัวอย่างที่ 1 เปลี่ยนช่วง hysteresis ของ ON/OFF เป็น ±0.2 และ ±1.0 °C บันทึกจำนวนครั้งที่พัดลมเปิดปิดและช่วงการแกว่ง
  2. เพิ่ม ของ P เป็น 0.6 และ 1.2 บันทึกค่าผิดพลาดคงค้าง แล้วอธิบายว่าทำไมไม่หายไปหมด
  3. ลบบรรทัดที่หยุดสะสมพจน์ I ออก แล้วเริ่มจากตู้ที่ร้อน 45 °C เปรียบเทียบกับแบบมีการป้องกัน windup
  4. ถ้ามีชุดฝึก ใช้เซนเซอร์อุณหภูมิกับพัดลมจริงผ่าน PLC หรือไมโครคอนโทรลเลอร์ เขียน ON/OFF พร้อม hysteresis แล้วบันทึกกราฟ
  5. สรุปว่าตู้ชาร์จของสถานีควรใช้ตัวควบคุมแบบใด พร้อมเหตุผล

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

ระวัง

  • ใช้ ON/OFF โดยไม่มี hysteresis อุปกรณ์เปิดปิดถี่จนเสีย
  • เพิ่ม เพื่อไล่ค่าผิดพลาดคงค้าง จนระบบแกว่ง
  • ไม่ป้องกัน integral windup เมื่อคำสั่งอิ่มตัว
  • ใส่พจน์ D กับสัญญาณที่มีสัญญาณรบกวนมาก
  • ปรับตัวควบคุมกับระบบจริงโดยไม่มีขีดจำกัดความปลอดภัย เช่น ตัดการชาร์จเมื่อร้อนเกิน

สรุป

  • ON/OFF ง่ายแต่แกว่งเสมอ ต้องมี hysteresis
  • P ลดค่าผิดพลาดแต่มักเหลือค่าผิดพลาดคงค้าง I กำจัดค่าผิดพลาดคงค้าง D ลดการพุ่งเกินแต่ไวต่อสัญญาณรบกวน
  • PI เหมาะกับกระบวนการที่เปลี่ยนช้าอย่างอุณหภูมิ
  • ต้องป้องกัน integral windup เมื่อคำสั่งอิ่มตัว

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

  1. ตู้ที่ °C, W, W/K ถ้าไม่มีพัดลมจะคงที่ที่อุณหภูมิใด
  2. ตัวควบคุม P มี ค่าผิดพลาด 2 °C คำสั่งเท่าใด
  3. พจน์ใดของ PID ที่กำจัดค่าผิดพลาดคงค้าง
  4. ทำไม ON/OFF จึงต้องมี hysteresis
  5. Integral windup เกิดเมื่อใด
เฉลย
  1. °C
  2. พจน์ I
  3. เพื่อไม่ให้อุปกรณ์เปิดปิดถี่เกินไปเมื่อค่าอยู่ใกล้เป้าหมาย
  4. เมื่อคำสั่งอิ่มตัวแต่ยังมีค่าผิดพลาด พจน์ I จึงสะสมต่อโดยไม่มีผล

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

ตัวควบคุม 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. link
  3. PX4 Autopilot. Controller diagrams. PX4 user guide (main). link

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

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

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

ปฏิบัติการในห้องแล็บหรือภาคสนามตามใบงาน พร้อม checklist ความปลอดภัย

หลักฐานการเรียนรู้: ใบงานที่ผ่านการตรวจและผล quiz

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

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

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