รูปปกบทความ

1. 🎯 ตอนที่ 14: พารามิเตอร์ของระบบ: Rise Time, Settling Time และ Overshoot วัดความเก่งของสมองกล

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

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

เวลาที่เราจะซื้อรถสปอร์ตสักคัน เรามักจะดูสเปกที่เซลส์โฆษณาว่า “อัตราเร่ง 0-100 km/h ใน 4 วินาที” หรือ “ระยะเบรกจาก 100-0 km/h สั้นเพียง 35 เมตร” ถูกไหมครับ? ตัวเลขเหล่านี้คือตัวชี้วัดสมรรถนะที่ทำให้เรารู้ว่ารถคันนี้ “แรงและหนึบ” แค่ไหน

ในโลกของวิศวกรรมระบบควบคุม (Control Systems Engineering) ก็เช่นเดียวกันครับ เมื่อเราออกแบบหุ่นยนต์อุตสาหกรรม, โดรน, หรือแม้แต่เตาอบความร้อน เราจะรู้ได้อย่างไรว่าระบบที่เราเขียนโค้ด PID ใส่เข้าไปนั้น “ทำงานได้ดีแค่ไหน?” วิธีการทดสอบที่คลาสสิกและทรงพลังที่สุดคือการป้อน “สัญญาณขั้นบันได (Step Input)” เข้าไป (เหมือนการเหยียบคันเร่งมิดด้ามทันที) แล้วนั่งดูกราฟผลลัพธ์ที่เรียกว่า “Step Response” ครับ

วันนี้พี่จะพาไปทำความรู้จักกับ 3 พารามิเตอร์ระดับเทพที่จะเป็นตัวชี้ชะตาว่าเครื่องจักรของคุณสอบผ่านหรือไม่ นั่นคือ Rise Time, Overshoot และ Settling Time พร้อมกับเจาะลึกว่าพารามิเตอร์ P, I, D ส่งผลกระทบต่อกราฟนี้อย่างไรบ้างครับ!

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

เมื่อเราป้อนสัญญาณเป้าหมาย (Setpoint) แบบฉับพลัน (Step Input) ให้กับระบบ ผลลัพธ์หรือ Step Response ของระบบที่แกว่งแบบมีความหน่วง (Underdamped System) จะมีพารามิเตอร์ชี้วัดสมรรถนะหลักๆ (Transient-response specifications) ดังนี้ครับ:

  • 1. Rise Time ($T_r$) - “ความไวในการออกตัว”: คือเวลาที่ผลตอบสนองใช้ในการไต่ระดับจาก 10% ไปถึง 90% ของค่าเป้าหมาย (หรือ 0% ถึง 100% สำหรับระบบ Underdamped) พูดง่ายๆ คือ “ระบบของคุณตอบสนองได้รวดเร็วแค่ไหน” ถ้ารถ AGV ของคุณมี $T_r$ น้อย แปลว่ามันพุ่งออกตัวได้กระฉับกระเฉงมาก
  • 2. Maximum Percent Overshoot (%OS) - “การพุ่งเลยเป้าหมาย”: คือเปอร์เซ็นต์ของผลตอบสนองที่พุ่งทะลุเลยค่าเป้าหมาย (Steady-state value) ไปยังจุดยอดสูงสุด (Peak) เปรียบเทียบเหมือนรถที่วิ่งมาเร็วจัดแล้ว “เบรกไม่อยู่จนเลยป้าย” ในงานอุตสาหกรรมมักจะจำกัดค่า %OS ให้อยู่ที่ไม่เกิน 10% - 20% เพื่อป้องกันเครื่องจักรพังเสียหายครับ
  • 3. Settling Time ($T_s$) - “เวลาที่ใช้ในการสงบนิ่ง”: คือเวลาที่ผลตอบสนองใช้ในการแกว่งไปมา จนกระทั่งสวิงเข้าไปอยู่ใน “แถบที่ยอมรับได้ (Error Band)” และไม่หลุดออกมาอีกเลย โดยทั่วไปมาตรฐานวิศวกรรมจะใช้เกณฑ์ $\pm 2%$ หรือ $\pm 5%$ ของค่าเป้าหมาย ถ้าระบบมี $T_s$ น้อย แปลว่ามันเข้าสู่สภาวะสมดุลและพร้อมทำงานสเตปต่อไปได้ไวมากครับ
รูปประกอบกราฟ Step Response พร้อมระบุพารามิเตอร์ต่างๆ

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

ในมุมมองของคณิตศาสตร์วิศวกรรม สำหรับระบบอันดับสอง (Second-order system) มาตรฐาน เราสามารถคำนวณพารามิเตอร์เหล่านี้ได้จากค่า ความถี่ธรรมชาติ ($\omega_n$) และ อัตราส่วนความหน่วง ($\zeta$) ดังสมการต่อไปนี้ครับ:

สมการของ %OS (Percent Overshoot): เกิดขึัน ณ ตำแหน่งเวลา Peak time ($T_p$) คำนวณได้จาก: $$ %OS = e^{-\left( \frac{\zeta \pi}{\sqrt{1 - \zeta^2}} \right)} \times 100 $$ (สังเกตว่าค่า %OS จะขึ้นอยู่กับอัตราส่วนความหน่วง $\zeta$ เพียงอย่างเดียว ยิ่งหน่วงมาก Overshoot ยิ่งน้อย)

สมการของ $T_s$ (Settling Time สำหรับเกณฑ์ 2%): $$ T_s \approx \frac{4}{\zeta \omega_n} $$ (ค่า $\zeta \omega_n$ คือส่วนจริงของโพล หรือ Exponential damping frequency ยิ่งโพลอยู่ลึกไปทางซ้ายของ s-plane ระบบยิ่งสงบไว)

ตัวอย่างโค้ด (C/C++) เพื่อวัดค่า Performance จากข้อมูลจริง: เวลาวิศวกรทดสอบระบบ พวกเขามักจะเขียนโค้ดเพื่อตรวจจับพารามิเตอร์เหล่านี้จากข้อมูลเซ็นเซอร์ (Sensor Data) อัตโนมัติครับ

// ตัวแปรสำหรับคำนวณพารามิเตอร์ (Pseudo-code)
float setpoint = 100.0;
float max_value = 0.0;
float current_time = 0.0;
bool passed_90_percent = false;
float rise_time = 0.0;
float settling_time = 0.0;

void Analyze_Step_Response(float process_variable, float dt) {
    current_time += dt;
    
    // 1. หาค่า Maximum Overshoot
    if (process_variable > max_value) {
        max_value = process_variable;
    }
    float percent_OS = ((max_value - setpoint) / setpoint) * 100.0;
    
    // 2. จับเวลา Rise Time (0 ถึง 90%)
    if (process_variable >= 0.9 * setpoint && !passed_90_percent) {
        rise_time = current_time;
        passed_90_percent = true;
    }
    
    // 3. จับเวลา Settling Time (เกณฑ์ +/- 2%)
    float error_band = 0.02 * setpoint;
    if (abs(process_variable - setpoint) > error_band) {
        // ถ้ายงัแกว่งหลุดกรอบ 2% ให้รีเซ็ตค่า Settling Time ไปเรื่อยๆ
        settling_time = current_time; 
    }
}

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

แล้วการปรับจูนพารามิเตอร์ P, I, และ D (Proportional, Integral, Derivative) ส่งผลต่อกราฟ Step Response นี้อย่างไร? นี่คือกฎเหล็ก (Rule of Thumb) ที่วิศวกรระบบควบคุมใช้เป็นเข็มทิศในการทำงานหน้างานครับ:

  • ผลของ Proportional Gain ($K_p$):
    • เพิ่ม $K_p$: ระบบจะตื่นตัวและมีแรงฮึดมากขึ้น ทำให้ Rise Time ($T_r$) ลดลง (เร็วขึ้น) แต่ข้อเสียคือมันจะทำให้ระบบเหวี่ยงแรงขึ้น ส่งผลให้ Overshoot (%OS) เพิ่มขึ้น
  • ผลของ Integral Gain ($K_i$ หรือลด $T_i$):
    • เพิ่ม $K_i$: พระเอกเรื่องการขจัด Steady-state error ให้เป็นศูนย์ แต่มันคือนักสะสมอดีต หากเพิ่มมากไป มันจะทำให้เครื่องจักรทะลุเป้าหมายอย่างรุนแรง ส่งผลให้ Overshoot (%OS) เพิ่มขึ้น และทำให้ระบบแกว่งนานขึ้น Settling Time ($T_s$) จึงเพิ่มขึ้น ตามไปด้วย (แถมยังเสี่ยงกับปัญหา Integral Windup อีกด้วย)
  • ผลของ Derivative Gain ($K_d$ หรือเพิ่ม $T_d$):
    • เพิ่ม $K_d$: ตาทิพย์นักพยากรณ์ผู้คอยแตะเบรกล่วงหน้า มันช่วยเพิ่มความหน่วง (Damping) ให้กับระบบ ผลที่ได้คือ Overshoot (%OS) ลดลงอย่างมาก และทำให้ระบบหยุดสั่นเร็วขึ้น ส่งผลให้ Settling Time ($T_s$) ลดลง (แต่แทบจะไม่มีผลกับ Rise Time เลย) ข้อควรระวังเดียวคือระวัง Noise จากเซ็นเซอร์ถูกขยายจนระบบสั่นครับ

Pro-Tip สรุปการจูน: อยากให้ระบบ “ไว” ให้เพิ่ม $K_p$ $\rightarrow$ ถ้ามัน “พุ่งเลยเป้า” ให้เพิ่ม $K_d$ มาช่วยเบรก $\rightarrow$ ถ้าเบรกแล้วมันไป “ไม่ถึงเป้าหมายสนิท (มี Offset)” ค่อยเติม $K_i$ เข้าไปนิดหน่อยเพื่อดันให้เข้าเป้า นี่คือศิลปะของการจูน PID ครับ!

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

พารามิเตอร์ Rise Time ($T_r$), Overshoot (%OS), และ Settling Time ($T_s$) ไม่ใช่แค่ตัวเลขทางคณิตศาสตร์ แต่เป็นหน้าต่างที่ทำให้เรามองเห็น “อุปนิสัย” ของระบบควบคุม ว่ามันว่องไว ดุดัน หรือนุ่มนวลแค่ไหน การที่เราเข้าใจความหมายของค่าเหล่านี้ จะช่วยให้เราสามารถประเมินและสื่อสารประสิทธิภาพของเครื่องจักรได้อย่างเป็นมืออาชีพครับ

แล้วในทางปฏิบัติ เราจะมีวิธีหาค่า $K_p, K_i, K_d$ ที่เหมาะสมเป๊ะๆ โดยไม่ต้องเดาสุ่มได้อย่างไร? ในตอนต่อไป เราจะมาเปิดคัมภีร์วิชาจูน PID ระดับตำนานอย่าง Ziegler-Nichols Method กันครับ รับรองว่าคณิตศาสตร์จะช่วยเซฟเวลาชีวิตคุณได้มหาศาล รอติดตามนะครับ!


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