รูปปกบทความ

1. 🎯 ตอนที่ 3: Feedback Control: หัวใจหลักของระบบอัตโนมัติ

2. 📖 เปิดฉาก (The Hook)

สวัสดีครับชาววิศวกรและนักพัฒนาทุกท่าน! กลับมาพบกับซีรีส์ เจาะลึกวิศวกรรมระบบควบคุม (Control Systems) จาก 101 ถึง Advance กับผมอีกครั้งครับ

ในตอนที่แล้ว เราพูดถึงความต่างระหว่างระบบเปิด (Open-loop) และระบบปิด (Closed-loop) กันไปแล้ว ลองจินตนาการดูนะครับว่า สมมติคุณกำลังขับรถและต้องการรักษาความเร็วไว้ที่ 100 km/h (ระบบ Cruise Control) ถ้าคุณใช้วิธีเหยียบคันเร่งค้างไว้ที่ตำแหน่งเดิมตลอด (Open-loop) เวลาขับขึ้นเขารถก็จะความเร็วตก และเวลาลงเขารถก็จะพุ่งเร็วเกินไป ท้ายที่สุดระบบก็พังไม่เป็นท่า เพราะมัน “ตาบอด” ต่อสภาพแวดล้อมภายนอก

แล้วเราจะทำให้เครื่องจักร “ลืมตา” และมองเห็นโลกความจริงได้อย่างไร? คำตอบคือการใช้สิ่งที่เรียกว่า “การป้อนกลับ (Feedback)” ครับ ในตอนนี้เราจะมาผ่าสมองของ Closed-loop กันว่า เครื่องจักรอ่านค่าจากเซ็นเซอร์มาตีความอย่างไร และคำศัพท์หน้าตางงๆ อย่าง SP, PV หรือ Error มันคืออะไรกันแน่!

3. 🧠 แก่นวิชา (Core Concepts)

ในโลกของวิศวกรรมควบคุม (Control Systems Engineering) หัวใจของการทำ Feedback Control คือการรับรู้สถานะปัจจุบันแล้วนำมาเปรียบเทียบกับเป้าหมาย ซึ่งเรามีคำศัพท์เทคนิค 3 คำที่วิศวกรควบคุมทุกคน “ต้อง” ท่องให้ขึ้นใจครับ:

  • Setpoint (SP) - “จุดหมายที่เราใฝ่ฝัน”: คือค่าเป้าหมาย (Desired Value หรือ Reference Input) ที่ผู้ใช้งานหรือระบบระดับสูงกว่าป้อนเข้ามาตั้งไว้ เช่น ตั้งอุณหภูมิแอร์ไว้ที่ 25°C หรือตั้งความเร็วรถ Cruise Control ไว้ที่ 100 km/h ค่านี้คือจุดที่เราอยากให้ระบบวิ่งไปให้ถึง
  • Process Variable (PV) - “ความเป็นจริงที่เผชิญ”: คือค่าสถานะจริงของกระบวนการที่ถูกวัดได้จากเซ็นเซอร์ (Measured Output) ในขณะนั้น เช่น อุณหภูมิห้องตอนนี้อยู่ที่ 28°C หรือความเร็วรถตอนนี้อยู่ที่ 90 km/h (เซ็นเซอร์บางครั้งอาจมีสัญญาณรบกวนปนมาด้วย)
  • Error ($e$) - “ช่องว่างระหว่างความฝันกับความจริง”: เมื่อเรานำ SP มาหักล้างกับ PV เราจะได้ “ค่าความผิดพลาด (Error)” ซึ่งเป็นตัวชี้วัดว่าระบบของเราอยู่ห่างจากเป้าหมายแค่ไหน ยิ่ง Error มาก ระบบก็ต้องยิ่งออกแรงมาก ยิ่ง Error เข้าใกล้ศูนย์ ระบบก็เริ่มผ่อนแรงลง

กระบวนการทำงาน (The Feedback Loop): เซ็นเซอร์จะวัดค่า PV แล้วป้อนกลับ (Feedback) มายังจุดเปรียบเทียบ (Summing Junction) เพื่อลบออกจาก SP กลายเป็นค่า Error จากนั้นตัวควบคุม (Controller) จะนำค่า Error นี้ไปคำนวณเพื่อสั่งงานวาล์ว มอเตอร์ หรือฮีตเตอร์ (Actuator) ต่อไปให้ทำงานชดเชยส่วนที่ขาดหายครับ

บล็อกไดอะแกรมแสดง SP, PV และ Error

4. 🧮 ร่ายมนต์สมการและโค้ดควบคุม (The Math & Implementation)

ในทางคณิตศาสตร์ เราสามารถอธิบายสมการของการหาค่าความผิดพลาดได้ง่ายๆ ในโดเมนของเวลา (Time Domain) ดังนี้ครับ: $$ e(t) = SP - PV(t) $$

แต่ถ้าเรามองในมุมมองของโดเมนความถี่ (Frequency Domain) ผ่านการแปลงลาปลาซ (Laplace Transform) เพื่อใช้วิเคราะห์ Transfer Function เราจะเขียนสมการของ Actuating Error Signal ได้เป็น: $$ E(s) = R(s) - C(s)H(s) $$ โดยที่:

  • $R(s)$ คือ Reference Input หรือ Setpoint
  • $C(s)$ คือ Controlled Output ของระบบ
  • $H(s)$ คือ Transfer Function ของเซ็นเซอร์ในสายป้อนกลับ (Feedback path)

ตัวอย่างโค้ด (C/C++) บน Microcontroller: เวลาเรานำทฤษฎีนี้มาเขียนโปรแกรมลงในระบบสมองกลฝังตัว (Embedded Systems) อย่าง STM32 หรือ Arduino โค้ดพื้นฐานของจุดเปรียบเทียบ (Summing Junction) จะหน้าตาประมาณนี้ครับ:

// ตัวแปรในระบบ (Global Variables)
float SP = 100.0;     // Setpoint: ความเร็วเป้าหมาย (km/h)
float PV = 0.0;       // Process Variable: ความเร็วที่วัดได้จริง
float Error = 0.0;    // Error: ความผิดพลาด

void Feedback_Control_Loop() {
    while(1) {
        // 1. อ่านค่าจากเซ็นเซอร์ (อ่านค่า PV)
        PV = Read_Speed_Sensor(); 
        
        // 2. คำนวณหาค่าความผิดพลาด (Calculate Error)
        Error = SP - PV;  // e(t) = SP - PV(t)
        
        // 3. นำ Error ไปเข้าสมการของ Controller (เช่น P-Controller พื้นฐาน)
        // ถ้า Error เป็นบวก (รถช้าไป) -> เหยียบคันเร่งเพิ่ม
        // ถ้า Error เป็นลบ (รถเร็วไป) -> ถอนคันเร่ง หรือแตะเบรก
        float Control_Output = Kp * Error; 
        
        // 4. สั่งงาน Actuator (ส่งสัญญาณไปควบคุมคันเร่ง)
        Drive_Throttle(Control_Output);
        
        // 5. หน่วงเวลา (Sampling Time) 
        Wait_Timer_Interrupt(dt);
    }
}

5. 🛡️ เคล็ดลับจากคัมภีร์ลับ (Under the Hood / Pro-Tips)

ในโลกอุดมคติสมการ $e(t) = SP - PV(t)$ ดูเหมือนจะสมบูรณ์แบบ แต่ในโลกความจริง (Physical World) วิศวกรควบคุมต้องรับมือกับ “ปีศาจร้าย” สองตัวที่มักจะแฝงมาในสาย Feedback เสมอครับ:

  1. Measurement Noise (สัญญาณรบกวนของเซ็นเซอร์): ค่า PV ที่เราอ่านได้ มักจะไม่ได้มาเดี่ยวๆ แต่มันบวก Noise $n(t)$ ของวงจรไฟฟ้าหรือสภาพแวดล้อมมาด้วย สมการจริงๆ คือ $e(t) = SP - (PV(t) + n(t))$ หากคุณไม่ทำ Digital Filter (เช่น Low-pass filter) กรองค่า PV เสียก่อน ตัว Controller ของคุณจะสั่งให้มอเตอร์หรือวาล์วกระตุกรัวๆ (Jitter) ตาม Noise ทำให้ Actuator พังก่อนวัยอันควรครับ
  2. Steady-state Error (Offset): ถ้าระบบของคุณอาศัยแค่การคูณ Error ดิบๆ (Proportional Control เท่านั้น) เพื่อนำไปสั่งงาน เมื่อ PV ขยับเข้าใกล้ SP มากขึ้น ค่า Error จะเล็กลงเรื่อยๆ จนกระทั่งแรงสั่งงานไม่พอที่จะชนะแรงเสียดทาน (Friction) ของเครื่องจักร ทำให้ระบบหยุดก่อนที่จะถึงเป้าหมาย เกิดเป็นสิ่งที่เรียกว่า “ออฟเซ็ต (Offset)” ซึ่งเราต้องใช้เทคนิคการป้อนกลับแบบรวมค่า (Integral) เข้ามาช่วยแก้นั่นเอง

6. 🏁 บทสรุป (To be continued…)

การนำค่า PV จากเซ็นเซอร์มาเปรียบเทียบกับ SP เพื่อหา Error คือกลไกสำคัญที่ทำให้ Closed-loop Control มีชีวิตและตระหนักรู้ถึงสิ่งที่เกิดขึ้นรอบตัว ช่วยให้ระบบอัตโนมัติต้านทานต่อสิ่งรบกวนภายนอก (Disturbances) ได้อย่างดีเยี่ยม

แต่คำถามต่อไปก็คือ… “เมื่อเราได้ค่า Error มาแล้ว เราจะเอามันไปทำอะไรต่อ?” ถ้าเราแค่คูณด้วยค่าคงที่ดื้อๆ เครื่องจักรของเราอาจจะทำงานพุ่งเกินเป้า (Overshoot) หรือแกว่งไปมา (Hunting) ไม่ยอมหยุด ในตอนต่อไป เราจะมาทำความรู้จักกับพระเอกของวงการอุตสาหกรรม นั่นคือ “PID Controller” ที่จะมาช่วยจัดการค่า Error อย่างชาญฉลาด รอติดตามกันนะครับ!


ต้องการที่ปรึกษาด้านการออกแบบระบบควบคุม (Control Systems), หุ่นยนต์อัตโนมัติ (Robotics) หรือพัฒนาระบบ Automation ขั้นสูงให้กับโรงงานของคุณ? ทีมงาน WP Solution พร้อมให้บริการออกแบบและติดตั้งระบบแบบครบวงจร ดูรายละเอียดบริการของเราได้ที่: www.wpsolution2017.com หรือพูดคุยปรึกษาเบื้องต้นได้ที่ Line: wisit.p