- หน้าแรก
- บทความ
- ระบบควบคุมและ PID
- คู่มือจูน PID
// คู่มือ · PID Academy · ระบบควบคุม
การจูน PID ฉบับสมบูรณ์: จาก Step Test ถึง Ziegler–Nichols, SIMC และ Anti-Windup
การจูนคือสิ่งที่ตัดสินว่าวงควบคุม PID จะเดินเรียบไปสิบปี หรือแกว่งทุกกะ บทความนี้คือคอร์สทั้งหลักสูตรในหน้าเดียว ตั้งแต่การอ่านสมการของตัวควบคุมที่ใช้อยู่ การวัดกระบวนการ กฎจูนเจ็ดแบบพร้อมสูตรและข้อจำกัด การเทียบผลบนพลานต์ตัวเดียวกันด้วยการจำลอง วิธีแก้ปัญหาที่วงควบคุมจริงต้องเจอ และตารางแก้ปัญหาที่พกไปหน้างานได้ ตัวเลขทุกตัวคำนวณและตรวจด้วยการจำลองแล้ว
- ดูสมการของตัวควบคุมก่อน (ideal, series หรือ parallel; หน่วยเป็นวินาทีหรือนาที) ตัวเลขชุดเดียวกันให้ผลต่างกันในแต่ละรูปแบบ
- step test วงเปิดครั้งเดียวได้ , , และอัตราส่วน บอกว่าวงนี้ควบคุมยากแค่ไหน
- ค่าเริ่มต้นที่ดี: SIMC ที่ : , ส่วน Ziegler–Nichols และ Cohen–Coon เร็วแต่ margin บาง
- วงควบคุมจริงต้องมีเทอม D ที่กรองแล้ว anti-windup เวลาสุ่มตัวอย่างที่เหมาะ และตรวจ stiction ของวาล์ว
1. กำหนดก่อนว่า “จูนดี” หมายถึงอะไร
การจูนคือการเลือก , และ ให้วงปิดได้ตามข้อกำหนด ก่อนแตะตัวเลขใด ๆ ให้เขียนข้อกำหนดออกมาก่อน เพราะวงควบคุมเก่งทุกอย่างพร้อมกันไม่ได้ มีสี่เรื่องที่ต้องแลกกัน:
- การตามค่าเป้าหมาย (setpoint tracking): เวลาขึ้น การเกินเป้า และเวลาเข้าที่หลังค่าเป้าหมายเปลี่ยน
- การต้านสิ่งรบกวน (disturbance rejection): โหลดเปลี่ยนแล้วค่าที่วัดถูกดันไปไกลแค่ไหน และกลับมาเร็วเพียงใด
- ความทนทาน (robustness): วงยังนิ่งอยู่ไหมเมื่อเกน ค่าคงเวลา หรือเวลาหน่วงของกระบวนการเปลี่ยนไป 30–50%
- แรงที่ใช้ควบคุม (control effort): วาล์ว มอเตอร์ หรือฮีตเตอร์ขยับมากแค่ไหน รวมถึงที่ขยับตามสัญญาณรบกวน ขยับมากทำให้ตัวขับสึกหรอ
การจูนแบบดุดันช่วยสองข้อแรกและเสียสองข้อหลัง วงควบคุมในโรงงานส่วนใหญ่เป็นแบบ regulatory คือค่าเป้าหมายแทบไม่เปลี่ยนและสิ่งรบกวนเป็นตัวหลัก จึงให้ความสำคัญกับเทอมปริพันธ์และการต้านสิ่งรบกวน ส่วนวงควบคุมการเคลื่อนที่เป็นแบบ servo ค่าเป้าหมายเปลี่ยนตลอดและ overshoot เป็นศัตรูหลัก ถ้าต้องการทั้งสองอย่างให้ใช้ setpoint weighting (หัวข้อ 13) เพื่อปรับสองพฤติกรรมแยกกัน
2. รู้ก่อนว่าตัวควบคุมของคุณใช้สมการแบบไหน
ความผิดพลาดที่พบบ่อยที่สุดในการจูนคือใส่ตัวเลขถูกต้องลงในสมการผิดรูปแบบ รูปแบบที่พบมีสามแบบ
| รูปแบบ | ฟังก์ชันถ่ายโอน | พบที่ไหน |
|---|---|---|
| Ideal (ISA, มาตรฐาน) | ตำรา DCS และฟังก์ชันบล็อก PLC ส่วนใหญ่ | |
| Parallel | ไลบรารี MATLAB/Python หลายตัว ไดรฟ์และโค้ดไมโครคอนโทรลเลอร์บางชนิด | |
| Series (interacting) | ตัวควบคุมนิวเมติกและอิเล็กทรอนิกส์รุ่นเก่า บางผู้ผลิต |
Ideal กับ parallel แปลงกันตรง ๆ: , , ส่วนแบบ series เมื่อคูณออกมาจะได้รูป ideal ที่ตัวเลขต่างไป
เมื่อ น้อยมากเมื่อเทียบกับ ทั้งสองรูปแบบแทบไม่ต่างกัน แต่ถ้าใช้เทอมอนุพันธ์แรงจะต่างชัดเจน มีรายละเอียดอีกสามอย่างที่เปลี่ยนความหมายของตัวเลข:
- Proportional band: ตัวควบคุมบางรุ่นให้ใส่ PB (%) แทนเกน: เมื่ออินพุตและเอาต์พุตเป็นเปอร์เซ็นต์ของช่วงวัดทั้งคู่
- หน่วยของเทอมปริพันธ์: อาจเป็นวินาทีหรือนาที และบางผู้ผลิตใช้ repeats per minute ซึ่งเลขมากหมายถึงปริพันธ์ แรงขึ้น ตรงข้ามกับ
- หน่วยวิศวกรรมเทียบกับเปอร์เซ็นต์: ถ้าตัวควบคุมทำงานบนเปอร์เซ็นต์ของช่วงวัด เกนกระบวนการ ต้องแปลงเป็นเปอร์เซ็นต์เหมือนกัน เช่น เกนที่วัดเป็น °C ต่อ % ต้องหารด้วยช่วงวัดก่อนนำไปใช้กับกฎจูน
3. P, I และ D ทำอะไรกับการตอบสนอง
สรุปสั้น ๆ ก่อน ส่วนเรื่องเต็มอยู่ในบทความ “PID Controller คืออะไร” กำหนดค่าผิดพลาด
- P ตอบสนองต่อค่าผิดพลาดปัจจุบัน กระบวนการที่มีเกน และไม่มีตัวอินทิเกรต เมื่อใช้ P อย่างเดียวจะนิ่งที่ค่าผิดพลาดค้าง สำหรับค่าเป้าหมายขั้นบันไดหนึ่งหน่วย
- I ตอบสนองต่อค่าผิดพลาดสะสม จึงกำจัดค่าค้างนั้นได้ ราคาที่จ่ายคือเฟสล้าหลัง ปริพันธ์แรง ( น้อย) ทำให้วงช้าลงและแกว่งง่ายขึ้น
- D ตอบสนองต่อแนวโน้ม เพิ่มเฟสนำและการหน่วง แต่เกนของมันโตตามความถี่ จึงขยายสัญญาณรบกวนความถี่สูง
| เพิ่ม | เวลาขึ้น | Overshoot | เวลาเข้าที่ | ค่าผิดพลาดค้าง | เสถียรภาพ |
|---|---|---|---|---|---|
| สั้นลง | มากขึ้น | เปลี่ยนเล็กน้อย | ลดลง | แย่ลง | |
| ปริพันธ์ ( น้อยลง) | สั้นลง | มากขึ้น | นานขึ้น | หมดไป | แย่ลง |
| เปลี่ยนเล็กน้อย | ลดลง | สั้นลง | ไม่เปลี่ยน | ดีขึ้นถึงจุดหนึ่ง |
4. จำแนกกระบวนการก่อนจูน
กฎจูนทุกข้อสมมุติแบบจำลองของกระบวนการไว้ กระบวนการในโรงงานเกือบทั้งหมดอธิบายได้ดีพอด้วยสองรูปแบบ:
- Self-regulating (FOPDT): “อันดับหนึ่งบวกเวลาหน่วง” ป้อนขั้นบันไดที่เอาต์พุตแล้วค่าวัดจะไปนิ่งที่ค่าใหม่ เช่น อุณหภูมิ การไหล ความดันในปริมาตรที่มีทางระบาย ความเร็ว
- Integrating: ค่าวัดไต่เป็นทางลาดตราบใดที่อินพุตไม่เป็นศูนย์ เช่น ระดับน้ำในถังที่มีปั๊ม ตำแหน่งของมอเตอร์ที่ขับด้วยความเร็ว
ตัวเลขสามตัวของ FOPDT คือเกนกระบวนการ (ค่าวัดที่เปลี่ยนต่อเอาต์พุตที่เปลี่ยนหนึ่งหน่วย) เวลาหน่วง (dead time, delay หรือ ) และค่าคงเวลา (หรือ ) เวลาหน่วงคือศัตรู เพราะตัวควบคุมไม่มีทางตอบสนองก่อนที่ค่าวัดจะขยับ และทุกวินาทีที่หน่วงเพิ่มจะลดเกนที่ใช้ได้อย่างปลอดภัย อัตราส่วน สรุปว่าวงนี้ยากแค่ไหน
| ลักษณะ | ความหมายต่อการจูน | |
|---|---|---|
| น้อยกว่า 0.1 | Lag-dominant | ใช้เกนสูงได้ ปริพันธ์ควรเร็ว เทอม D ช่วยได้ SIMC จำกัด ที่ |
| 0.1 ถึง 0.5 | สมดุล | กรณีตามตำรา PI มักพอ PID ได้เพิ่มไม่มาก |
| 0.5 ถึง 1 | เวลาหน่วงเริ่มสำคัญ | ลดเกน เทอม D ช่วยได้น้อย วงช้าลง |
| มากกว่า 1 | Delay-dominant | ใช้เกนต่ำและปริพันธ์เป็นหลัก พิจารณาชดเชยเวลาหน่วง (Smith predictor) หรือ feedforward |
พลานต์ตัวอย่างที่ใช้ตลอดบทความนี้คือ (°C ต่อ % ของเอาต์พุตฮีตเตอร์) วินาที วินาที ได้ ตัวเลขถูกย่อส่วนให้ตามง่าย วิธีทำเหมือนกันกับเตาที่วัดเป็นนาที
5. วัดกระบวนการด้วย step test
step test (หรือ bump test) คือครึ่งชั่วโมงที่คุ้มที่สุดที่ใช้กับวงควบคุม มันเปลี่ยนการเดาให้เป็นตัวเลขสามตัว
ขั้นตอน
- เตรียม ใส่วงเป็นโหมดแมนนวลและรอให้ค่าวัดนิ่ง ตรวจว่าวงอื่นและผู้ปฏิบัติงานไม่ได้เปลี่ยนกระบวนการอยู่
- ป้อนขั้นบันไดที่เอาต์พุต 5–10% ของช่วง ค่าวัดควรเปลี่ยนอย่างน้อย 5–10 เท่าของแถบสัญญาณรบกวน แต่ไม่ใหญ่จนออกนอกช่วงเชิงเส้นหรือเกินขีดจำกัดความปลอดภัย
- บันทึก ค่าวัดและเอาต์พุตที่เวลาสุ่มราวหนึ่งในยี่สิบของ ที่คาดไว้หรือเร็วกว่า จนค่าวัดนิ่งอีกครั้ง (ราว 4–5 หลังเวลาหน่วง)
- คืนค่าเอาต์พุต และถ้าทำได้ให้ทดสอบซ้ำในทิศตรงข้ามและที่จุดทำงานอื่น ถ้าผลต่างกันมากแปลว่ากระบวนการไม่เป็นเชิงเส้น
อ่าน K, L และ T
เกนกระบวนการคือ ในหน่วยเดียวกับที่ตัวควบคุมใช้ ส่วน กับ มีวิธีอ่านมาตรฐานสองแบบ
- วิธีเส้นสัมผัส (reaction curve): ลากเส้นสัมผัสที่จุดชันที่สุด คือจุดที่เส้นตัดค่าเริ่มต้น คือเวลาที่เส้นใช้ไต่จากจุดนั้นถึงค่าสุดท้าย ทำได้เร็วแต่ไวต่อวิธีลากเส้นโดยเฉพาะเมื่อมีสัญญาณรบกวน
- วิธีสองจุด (28.3% และ 63.2%): สำหรับการตอบสนองอันดับหนึ่งที่มีเวลาหน่วง ถึง 28.3% ของการเปลี่ยนแปลงที่ และถึง 63.2% ที่ ลบกันได้ และ วิธีนี้ทำซ้ำได้ดีกว่าการลากเส้นสัมผัสด้วยมือ
อ่านค่าจาก step test ในรูปที่ 2
ป้อนขั้นบันไดที่เอาต์พุตฮีตเตอร์ อุณหภูมิเพิ่มขึ้น ถึง 28.3% ของการเปลี่ยนแปลง (5.7 °C) ที่ วินาที และถึง 63.2% (12.6 °C) ที่ วินาที
, วินาที, วินาที ได้ การสร้างเส้นสัมผัสในรูปที่ 2 ให้ค่าเดียวกัน
กระบวนการแบบ integrating
ถ้าค่าวัดไต่เป็นทางลาดแทนที่จะนิ่ง (เช่นระดับน้ำในถัง) ให้ป้อนขั้นบันไดที่เอาต์พุตแล้ววัดความชันหลังเวลาหน่วง จะได้ และ คือเวลาตั้งแต่ป้อนขั้นบันไดจนถึงจุดที่ทางลาดเริ่มคงที่ กฎจูนของกรณีนี้อยู่ในหัวข้อ 10
6. จูนด้วยมือ: ขั้นตอนที่ใช้ได้เสมอ
เมื่อทำ step test ที่สะอาดไม่ได้ หรือแค่ต้องปรับละเอียดวงที่ทำงานอยู่ ให้จูนแบบลองผิดลองถูก แต่ต้องทำตามลำดับ
- ตรวจวงก่อน เซนเซอร์อ่านค่าสมเหตุสมผลไหม วาล์วขยับถูกทิศไหม ตัวควบคุมเป็น direct หรือ reverse acting ตรงกับที่ต้องการไหม เอาต์พุตไม่ได้ติดขีดจำกัดอยู่ใช่ไหม
- ปิด I และ D ตั้งปริพันธ์เป็นปิด ( สูงสุด) และ เริ่มจากเกนต่ำ
- หาเกนสัดส่วน เปลี่ยนค่าเป้าหมายครั้งละ 5–10% เพิ่ม ครั้งละประมาณ 1.5–2 เท่าจนการตอบสนองเริ่มสั่น แล้วถอยกลับประมาณครึ่งหนึ่ง ในทางปฏิบัติจะอยู่ใกล้
- เพิ่มปริพันธ์ เริ่มที่ (หรือเวลาที่ค่าวัดไต่ถึง 63% ของการเปลี่ยนแปลง) แล้วลดลงทีละขั้นจนค่าผิดพลาดค้างหายในเวลาที่ยอมรับได้ หยุดทันทีที่เริ่มเกินเป้าแบบช้า ๆ เป็นลูกคลื่น
- เพิ่มอนุพันธ์เมื่อจำเป็น ลอง – โดยเปิดตัวกรองไว้ ค่อย ๆ เพิ่มจน overshoot ยอมรับได้และเอาต์พุตไม่กระตุก
- ทดสอบให้ครบ ทดสอบทั้งการเปลี่ยนค่าเป้าหมายและสิ่งรบกวน (โหลดเปลี่ยนหรือกระแทกเอาต์พุต) ที่จุดทำงานมากกว่าหนึ่งจุด และดูเอาต์พุตของตัวควบคุมควบคู่ไปกับค่าวัด
| อาการที่เห็น | สาเหตุที่น่าจะเป็น | สิ่งที่ปรับ |
|---|---|---|
| สั่นถี่ คาบสั้น โตขึ้นหรือค้าง | สูงเกิน (หรือ D สูงเมื่อมีสัญญาณรบกวน) | ลด 30–50% |
| แกว่งช้าเป็นลูกคลื่น คาบนานหลายเท่าของ | ปริพันธ์แรงเกิน | เพิ่ม (หรือลด ) |
| ค่อย ๆ เข้าหาเป้าหมายช้ามากและหยุดก่อนถึง | เกนต่ำเกิน ปริพันธ์น้อย | เพิ่ม ลด |
| เกินเป้ามากหลังเปลี่ยนค่าเป้าหมายใหญ่ เอาต์พุตติดขีดจำกัด | Integral windup | เปิด anti-windup (หัวข้อ 13) |
| เอาต์พุตกระโดดแรง แต่ค่าวัดดูปกติ | D ตอบสนองต่อสัญญาณรบกวน | กรอง D ลด หรือเลิกใช้ D |
| ค่าวัดเป็นฟันเลื่อย เอาต์พุตเป็นคลื่นสี่เหลี่ยม | วาล์วติด (stiction) หรือคลอน (backlash) | แก้ที่วาล์ว (ใส่ positioner) ไม่ใช่จูนใหม่ |
การจูนด้วยมือช้าสำหรับกระบวนการที่ค่าคงเวลายาว เพราะการลองแต่ละครั้งใช้เวลาเป็นนาทีหรือชั่วโมง ตรงนั้นคือจุดที่กฎจูนแบบใช้แบบจำลองคุ้มค่า
7. Ziegler–Nichols แบบวงปิด (เกนวิกฤต)
วิธีนี้เผยแพร่ในปี 1942 ไม่ต้องใช้แบบจำลอง ให้ตั้ง สูงสุดและ แล้วเพิ่ม จนวงแกว่งด้วยแอมพลิจูดคงที่ เกนตรงจุดนั้นคือเกนวิกฤต (ultimate gain) และคาบการแกว่งคือคาบวิกฤต (ultimate period) จากนั้นอ่านค่าจากตาราง
| ตัวควบคุม | |||
|---|---|---|---|
| P | – | – | |
| PI | – | ||
| PID | |||
| PI, Tyreus–Luyben | – | ||
| PID, Tyreus–Luyben |
กฎแบบคลาสสิกตั้งเป้าให้ลดทอนหนึ่งในสี่ต่อรอบ (quarter-amplitude decay) คือยอดแต่ละรอบเป็นหนึ่งในสี่ของยอดก่อนหน้า ซึ่งเร็วแต่แกว่งมาก ส่วนกฎ Tyreus–Luyben (1992) ใช้ และ เท่าเดิมแต่นุ่มนวลกว่ามาก และเหมาะเป็นค่าเริ่มต้นสำหรับกระบวนการเคมี
ZN วงปิดกับพลานต์ตัวอย่าง
สำหรับ เฟสถึง ที่ rad/s ซึ่ง จึงได้ และ วินาที (กับพลานต์จริงคุณจะหาค่าเหล่านี้ด้วยการทดลองเหมือนรูปที่ 1)
PID: , วินาที, วินาที หัวข้อ 12 จะแสดงว่าค่านี้ให้การตอบสนองจริงอย่างไร: overshoot 56%
8. Ziegler–Nichols แบบวงเปิด (reaction curve)
วิธี ZN แบบที่สองใช้ step test ของหัวข้อ 5 แทนการทดลองที่ขอบเสถียรภาพ จึงปลอดภัยกว่า เมื่อได้ , และ จากกราฟแล้ว:
| ตัวควบคุม | |||
|---|---|---|---|
| P | – | – | |
| PI | – | ||
| PID |
ZN วงเปิดแบบ PID เมื่อ
, วินาที, วินาที สังเกตสูตร: เกนแปรผกผันกับ เวลาหน่วงหรือเกนกระบวนการที่มากขึ้นจึงลดเกนของตัวควบคุม ซึ่งถูกต้องตามหลักการ
กฎนี้มุ่งให้ลดทอนหนึ่งในสี่ต่อรอบกับกระบวนการที่เวลาหน่วงปานกลาง และจะแย่เมื่อเวลาหน่วงน้อยมากเมื่อเทียบกับ (เกน โตไม่จำกัด) หรือมากเกินไป (วงจะดุดันเกิน)
9. Cohen–Coon
Cohen และ Coon (1953) ปรับกฎแบบ step test โดยเพิ่มเทอมที่ขึ้นกับอัตราส่วน ทำให้รับมือเวลาหน่วงที่มากขึ้นได้ดีกว่าตาราง ZN วงเปิด แต่ยังตั้งเป้าลดทอนหนึ่งในสี่ต่อรอบ กำหนด :
| ตัวควบคุม | |||
|---|---|---|---|
| PI | – | ||
| PID |
Cohen–Coon แบบ PID กับพลานต์เดิม
ที่นี่ และ
, วินาที, วินาที เป็นกฎที่ดุดันที่สุดในบทความนี้ (overshoot 85% ในหัวข้อ 12) จึงควรถือเป็นจุดเริ่มต้นที่ต้องลดเกนต่อ
10. IMC, Lambda และ SIMC: จูนด้วยการเลือกความเร็ว
กฎก่อนหน้านี้ถูกปรับให้เข้ากับเกณฑ์สมรรถนะ แนวคิด internal model control (IMC) กลับด้าน: เลือกก่อนว่าต้องการให้วงปิดเร็วแค่ไหน แล้วคำนวณตัวควบคุมที่ให้ผลนั้นพอดี ขอการตอบสนอง คืออันดับหนึ่งที่มีเวลาหน่วงซึ่งเลี่ยงไม่ได้ เมื่อประมาณเวลาหน่วงเป็น ตัวควบคุมสำหรับกระบวนการ FOPDT จะออกมาเป็นตัวควบคุม PI:
กฎ SIMC ของ Skogestad (2003) แก้เพียงตัวเลขเดียว สำหรับกระบวนการ lag-dominant การใช้ ทำให้วงฟื้นจากโหลดรบกวนช้า SIMC จึงจำกัดไว้ว่า
ปุ่มปรับตัวเดียวคือ ซึ่งเป็นค่าคงเวลาวงปิดที่ต้องการ ข้อแนะนำในทางปฏิบัติคือ เร็วเท่าที่เวลาหน่วงยอมให้ ค่าที่มากกว่านั้นให้วงที่นุ่มและทนทานกว่า ส่วนค่าที่น้อยกว่า ได้ความเร็วเพิ่มนิดเดียวแต่เสียความทนทานมาก
SIMC แบบ PI เมื่อ
- เมื่อ วินาที:
- เมื่อ วินาที (นุ่มกว่า):
, วินาที สำหรับการตั้งแบบเร็ว และ , วินาที สำหรับแบบนุ่ม คำนวณแบบแม่นยำ แบบแรกมี gain margin 3.14 และ phase margin 61°
กระบวนการรูปแบบอื่น
- กระบวนการ integrating (ระดับน้ำในถัง): ,
- อันดับสองบวกเวลาหน่วง : ใช้รูป series , , (แปลงเป็นรูป ideal ด้วยสูตรในหัวข้อ 2)
- Lambda tuning คือกฎ PI ตัวเดียวกันโดยใช้ เสมอ เป็นที่นิยมในอุตสาหกรรมกระดาษและเคมี เพราะ ที่มากให้วงนุ่มและไม่รบกวนกันเอง
เพราะการตอบสนองถูกกำหนดไว้ล่วงหน้าแทนที่จะเป็นสิ่งที่ค้นพบทีหลัง SIMC และ lambda จึงเข้ากับขั้นตอนทำงานได้ดี: มีแบบจำลอง เลือกความเร็ว ได้ตัวควบคุม ซึ่งเป็นเหตุผลที่เหมาะเป็นค่าเริ่มต้น
11. Relay auto-tune
การทดลองรีเลย์ของ Åström และ Hägglund (1984) หา และ โดยไม่ต้องพาวงไปที่ขอบเสถียรภาพ ให้แทนตัวควบคุมด้วยรีเลย์ที่สลับเอาต์พุตระหว่าง กับ กระบวนการส่วนใหญ่จะแกว่งคงที่โดยแอมพลิจูดถูกจำกัดด้วย ถ้าค่าวัดแกว่งด้วยแอมพลิจูด การประมาณด้วย describing function ให้
จากนั้นนำไปใช้กับตาราง Ziegler–Nichols หรือ Tyreus–Luyben ในหัวข้อ 7 ปุ่ม “auto-tune” ในเชิงพาณิชย์ส่วนใหญ่ทำงานแบบนี้
ออโต้จูนเตาอบ
รีเลย์ ทำให้อุณหภูมิเตาอบแกว่งด้วยแอมพลิจูด คาบ วินาที
- Tyreus–Luyben แบบ PI:
PI: , วินาที
ข้อควรระวัง: ใส่ hysteresis ที่รีเลย์เล็กน้อยเพื่อไม่ให้สัญญาณรบกวนทำให้สลับผิด เลือก ให้เล็กพอที่การแกว่งไม่เป็นอันตรายแต่ใหญ่พอที่พ้นสัญญาณรบกวน และจำไว้ว่าการประมาณสมมุติว่ากระบวนการกรองฮาร์มอนิกของคลื่นสี่เหลี่ยมออกได้ ซึ่งจริงสำหรับกระบวนการแบบ lag ส่วนใหญ่
12. เทียบกันตรง ๆ: พลานต์เดียว หลายกฎ
แต่ละกฎถูกนำไปใช้กับพลานต์ แล้วจำลอง: ค่าเป้าหมายขั้นบันไดหนึ่งหน่วยที่ จากนั้นโหลดขั้นบันได ที่อินพุตของกระบวนการที่ วินาที เทอม D ทำงานกับค่าวัดผ่านตัวกรอง “เวลาเข้าที่” คือเวลาหลังจากนั้นการตอบสนองอยู่ในช่วง 2% ตลอด IAE คือปริพันธ์ของค่าผิดพลาดสัมบูรณ์ (ยิ่งน้อยยิ่งดี) วัดแยกสำหรับขั้นของค่าเป้าหมายและขั้นของโหลด
| กฎ | (s) | (s) | Overshoot | เวลาเข้าที่ (s) | IAE ค่าเป้าหมาย | IAE โหลด | Gain margin | Phase margin | |
|---|---|---|---|---|---|---|---|---|---|
| ZN วงปิด PID | 2.55 | 3.72 | 0.93 | 56% | 19.1 | 5.50 | 0.90 | 1.63 | 40° |
| ZN วงปิด PI | 1.91 | 6.20 | – | 44% | 20.8 | 5.40 | 1.62 | 1.92 | 36° |
| ZN วงเปิด PID | 3.00 | 4.00 | 1.00 | 64% | 19.6 | 5.33 | 0.79 | 1.33 | 39° |
| Cohen–Coon PID | 3.46 | 4.55 | 0.70 | 85% | 24.2 | 6.08 | 0.79 | 1.31 | 27° |
| Tyreus–Luyben PI | 1.33 | 16.4 | – | 0% | 40.2 | 6.08 | 6.05 | 3.06 | 69° |
| Tyreus–Luyben PID | 1.93 | 16.4 | 1.18 | 0% | 13.7 | 4.22 | 4.16 | 1.76 | 75° |
| SIMC PI, | 1.25 | 10.0 | – | 4% | 12.1 | 4.34 | 3.99 | 3.14 | 61° |
| SIMC PI, | 0.83 | 10.0 | – | 0% | 15.7 | 5.99 | 5.99 | 4.71 | 71° |
ตัวเลขบอกอะไร
- กฎ PID ของ ZN และ Cohen–Coon ต้านโหลดได้ดีกว่าสี่ถึงห้าเท่า (IAE 0.8–0.9 เทียบกับ 4.0 ของ SIMC) แต่เกินเป้า 56–85% และ gain margin เพียง 1.3–1.6 หากเกนกระบวนการเพิ่มขึ้น 30–60% ก็เข้าใกล้ความไม่เสถียร
- ความต่างของการต้านโหลดอธิบายได้ด้วยตัวเลขเดียวคือ สำหรับการตอบสนองที่เกินเป้าน้อย พื้นที่ใต้ค่าผิดพลาดหลังโหลดขั้นบันไดขนาด มีค่า กับ SIMC: ได้ ตรงกับผลจำลอง 3.99 กับ ZN PID ทำนายได้ 0.73 (ผลจำลอง 0.90 สูงกว่าเพราะการตอบสนองนั้นแกว่ง)
- SIMC ที่ เป็นตัวเลือกที่สมดุลที่สุดในตารางนี้: เวลาเข้าที่เร็วที่สุดของทุกแถว (12.1 วินาที) พื้นที่ความผิดพลาดของค่าเป้าหมาย (4.34) ใกล้ค่าที่ดีที่สุด (4.22 ของ Tyreus–Luyben PID) เกินเป้าเพียง 4% และ gain margin เกิน 3 ราคาที่ต้องจ่ายคือฟื้นจากโหลดช้ากว่า ซึ่งซื้อคืนได้ด้วยการลด ถ้า margin ยอมให้
- Tyreus–Luyben PI ช้ามาก บนพลานต์นี้ เพราะ วินาทีมากกว่าค่าคงเวลาของกระบวนการ การเพิ่ม D (แถว PID) ช่วยให้ตามค่าเป้าหมายได้ดีขึ้นแต่ทำให้ gain margin ลดเหลือ 1.76
| สถานการณ์ | ตัวเลือกที่สมเหตุสมผล |
|---|---|
| มี step test และต้องการวงที่นุ่มและปลอดภัย | SIMC ที่ (หรือ ถ้ากระบวนการเปลี่ยนแปลงมาก) |
| ทดลองได้เฉพาะวงปิด | ทดสอบ relay แล้วใช้ Tyreus–Luyben (หรือ ZN ที่ลดเกนแล้ว) |
| โหลดรบกวนเป็นตัวหลักและยอมรับ overshoot ได้บ้าง | ZN วงเปิด แล้วลด 20–30% |
| ระดับน้ำในถังพัก (buffer tank) | SIMC สำหรับ integrating ที่ มาก หรือ P อย่างเดียว/PI เกนต่ำ |
| เวลาหน่วงยาวมาก () | PI เกนต่ำ แล้วพิจารณา Smith predictor หรือ feedforward |
| กระบวนการไม่เป็นเชิงเส้นหรือเปลี่ยนตามเวลา | จูนที่จุดทำงานที่ยากที่สุด และใช้ gain scheduling กับจุดอื่น |
ผลนี้เป็นของพลานต์ตัวเดียว ค่า ที่ต่างกันจะเปลี่ยนภาพ จึงควรตรวจค่าจูนใหม่ด้วยการจำลองหรือการทดสอบหน้างานอย่างระมัดระวังเสมอ
13. วิธีแก้ปัญหาที่วงควบคุมจริงต้องมี
กรองเทอมอนุพันธ์ และไม่ให้ D ตามค่าเป้าหมาย
อนุพันธ์บริสุทธิ์มีเกนไม่จำกัดที่ความถี่สูง จึงใช้ตัวกรองอันดับหนึ่ง:
ทำให้เกนความถี่สูงถูกจำกัดที่ และให้ใช้อนุพันธ์กับ ค่าวัด ไม่ใช่ค่าผิดพลาด เมื่อค่าเป้าหมายเปลี่ยนขั้นบันไดเอาต์พุตจะไม่กระโดดแรงจาก “derivative kick” ตัวควบคุมเชิงพาณิชย์ส่วนใหญ่ทำแบบนี้เป็นค่าเริ่มต้น ควรตรวจตัวที่คุณใช้ ถ้าสัญญาณมีสัญญาณรบกวน การใส่ตัวกรองความถี่ต่ำอันดับหนึ่งที่ค่าวัดแก้ได้ดีกว่าการลด
Setpoint weighting (สององศาอิสระ)
ตัวเดียวกันที่ต้านโหลดได้ดีทำให้การตอบสนองต่อค่าเป้าหมายเกินเป้า ถ้าถ่วงน้ำหนักเทอมสัดส่วนของค่าเป้าหมาย เมื่อ จะลด overshoot ต่อขั้นของค่าเป้าหมายโดยไม่กระทบการต้านโหลด ตัวควบคุมหลายรุ่นเรียกพารามิเตอร์นี้ว่า “setpoint weight” หรือ “beta”
Integral windup และ anti-windup
ถ้าตัวขับอิ่มตัว (วาล์วเปิดสุด ฮีตเตอร์ 100%) ขณะที่ยังมีค่าผิดพลาด ปริพันธ์จะโตต่อไป เมื่อค่าผิดพลาดกลับเครื่องหมาย ปริพันธ์ต้องใช้เวลานานกว่าจะคลายและค่าวัดเกินเป้า มีวิธีแก้ที่พบบ่อยสองแบบ:
- Clamping (หยุดสะสมตามเงื่อนไข): หยุดอินทิเกรตเมื่อเอาต์พุตอิ่มตัวและค่าผิดพลาดจะดันให้อิ่มตัวหนักขึ้น
- Back-calculation: ป้อนผลต่างจากการอิ่มตัวกลับเข้าตัวอินทิเกรต ค่าที่นิยมคือ สำหรับ PI และ สำหรับ PID
Bumpless transfer
เมื่อสลับจากแมนนวลเป็นออโต้ (หรือเปลี่ยนแหล่งค่าเป้าหมาย) ให้กำหนดค่าเริ่มต้นของตัวอินทิเกรตเพื่อให้เอาต์พุตเริ่มจากค่าปัจจุบัน ไม่เช่นนั้นเอาต์พุตจะกระโดดและกระตุ้นกระบวนการ
เวลาสุ่มตัวอย่าง
ตัวควบคุมดิจิทัลสุ่มค่าวัดทุก หลักคร่าว ๆ คือให้ ไม่เกินหนึ่งในสิบของค่าคงเวลา และไม่เกินราวครึ่งหนึ่งของเวลาหน่วงเมื่อ มีค่าน้อย zero-order hold ยังเพิ่มเวลาหน่วงอีกราว จึงควรจูนด้วย บทเรียนเรื่องการควบคุมดิจิทัลอธิบายละเอียดกว่านี้
เมื่อฮาร์ดแวร์คือปัญหา
- Stiction และ backlash: วาล์วที่ติดจะค้างแล้วกระโดด ผลคือ limit cycle (ค่าวัดเป็นฟันเลื่อย เอาต์พุตเป็นคลื่นสี่เหลี่ยม) ที่แย่ลงเมื่อเพิ่มปริพันธ์ ให้ซ่อมวาล์วหรือเพิ่ม positioner อย่าจูนหนีปัญหา
- Dead band และความละเอียด: เอาต์พุตที่หยาบ (ขั้นละหลายเปอร์เซ็นต์) หรืออินพุตความละเอียดต่ำทำให้วงเดินส่ายไปมา ลดปริพันธ์หรือใส่ dead band ในตัวควบคุม
- ความไม่เป็นเชิงเส้น: ลักษณะของวาล์ว เส้นโค้ง pH และเกนของเตาเปลี่ยนตามจุดทำงาน ให้จูนที่จุดที่ยากที่สุด หรือปรับเกนตามจุดทำงาน (gain scheduling)
- ช่วงของคุณเองอิ่มตัว: ถ้าเอาต์พุตอิ่มตัวเกือบตลอดเวลา การจูนช่วยอะไรไม่ได้ วงนี้เลือกขนาดผิด
14. วงควบคุมชนิดทั่วไป และจะเริ่มจากตรงไหน
ใช้เป็นจุดเริ่มต้นเชิงคุณภาพ แล้วปรับละเอียดด้วย step test เพราะพลานต์แต่ละตัวต่างกันมาก
| วงควบคุม | ลักษณะทั่วไป | ตัวควบคุมที่มักใช้ | หมายเหตุ |
|---|---|---|---|
| อัตราการไหล | เร็ว เวลาหน่วงน้อย สัญญาณมีสัญญาณรบกวน | PI เกนต่ำ ไม่ใช้ D | กรองค่าวัด และวาล์วมักเป็นส่วนที่ช้าที่สุด |
| ความดัน (ก๊าซ) | เร็ว มักเกือบเป็น integrating | PI บางครั้ง PID | วงเร็วต้องสุ่มตัวอย่างเร็ว |
| ระดับ (ถังพัก) | Integrating | P หรือ PI เกนต่ำ | การควบคุมระดับแบบ averaging ส่งต่อการเปลี่ยนของอัตราไหลไปหน่วยถัดไปอย่างนุ่มนวล อย่าจูนแน่น |
| อุณหภูมิ | ช้า เวลาหน่วงมีนัยสำคัญ | PI หรือ PID | มากคุ้มกับ D, มากต้องใจเย็น |
| ความเร็ว (มอเตอร์) | Lag-dominant และเร็ว | PI | มักอยู่ในวงกระแส ให้จูนวงในก่อน |
| ตำแหน่ง | Integrating | P, PD หรือ PID | แรงเสียดทานอาจต้องการปริพันธ์เล็กน้อยกับ anti-windup |
| pH, องค์ประกอบ | ไม่เป็นเชิงเส้นมาก เวลาหน่วงนาน | PI ร่วมกับ gain scheduling | จูนที่จุดที่ความชันสูงสุด แล้วปรับเกนตามจุดทำงาน |
สำหรับวงแบบ cascade (อุณหภูมิเป็นวงนอก การไหลหรือตำแหน่งวาล์วเป็นวงใน) ให้จูน วงใน ก่อนเสมอ และทำให้เร็วกว่าวงนอกหลายเท่า
15. ตัดสินค่าจูนอย่างไร
ตัดสินวงควบคุมด้วยตัวเลข ไม่ใช่จากความรู้สึกเวลาดูเทรนด์
- ในโดเมนเวลา: overshoot, เวลาเข้าที่ (±2% หรือ ±5%), ค่าเบี่ยงสูงสุดหลังโหลดขั้นบันได และเวลาฟื้นตัว
- ปริพันธ์ของค่าผิดพลาด: IAE , ISE , ITAE เทียบค่าจูนบนการทดสอบเดียวกัน ยิ่งน้อยยิ่งดี IAE ของโหลดขั้นบันไดมีค่าประมาณ
- ความทนทาน: gain margin อย่างน้อย 2 (6 dB) phase margin 45–60° และ peak sensitivity 1.4–2 ในตารางเปรียบเทียบข้างต้น มีเพียงสองแถวของ SIMC และ Tyreus–Luyben PI ที่ gain margin เกิน 2 และ phase margin เกิน 45° ทั้งคู่
- แรงที่ใช้ควบคุม: ดูส่วนเบี่ยงเบนมาตรฐานหรือ total variation ของเอาต์พุต สัญญาณรบกวนที่ D ขยายจะเห็นที่นี่ก่อน
16. คู่มือแก้ปัญหา
| อาการ | สิ่งที่ต้องตรวจ | การแก้ |
|---|---|---|
| วงวิ่งหนีทันทีหลังสลับเป็นออโต้ | Direct/reverse acting, สเกลของเซนเซอร์, แหล่งค่าเป้าหมาย | แก้ทิศและสเกล ตั้งค่าเริ่มต้นให้ bumpless |
| แกว่งคงที่ คาบใกล้ | ใกล้ หรือไม่ | ลด ครึ่งหนึ่ง แล้วยืนยันด้วยการเพิ่มเกน 50% |
| แกว่งช้า คาบหลายเท่าของ | สั้นเกินสำหรับเวลาหน่วง | เพิ่ม เป็นสองเท่า (หรือลด และ ไปพร้อมกัน) |
| ไม่ถึงค่าเป้าหมาย หยุดก่อนถึง | ไม่มีปริพันธ์ หรือเอาต์พุตถูกหนีบ | เปิด I ตรวจขีดจำกัดเอาต์พุตและโหมด |
| ถึงค่าเป้าหมายแต่คืบคลานช่วงไม่กี่เปอร์เซ็นต์สุดท้าย | ยาวเกินมาก | ลด เข้าใกล้ |
| เกินเป้าเฉพาะเมื่อเปลี่ยนค่าเป้าหมายมาก ๆ | Windup | ใช้ anti-windup และจำกัดอัตราการเปลี่ยนค่าเป้าหมาย |
| เอาต์พุตมีสัญญาณรบกวน วาล์วสั่น | D ตามสัญญาณรบกวน ค่าวัดไม่ได้กรอง | กรองค่าวัดและ D ลด |
| ดีที่โหลดหนึ่ง แย่ที่อีกโหลด | กระบวนการไม่เป็นเชิงเส้น | จูนที่จุดที่ยากที่สุด หรือปรับเกนตามจุดทำงาน |
| Limit cycle ที่แย่ลงเมื่อเพิ่ม I | วาล์ว stiction | ซ่อมหรือติด positioner |
17. ขั้นตอนจูนที่ทำซ้ำได้
- เขียนข้อกำหนด: ตามค่าเป้าหมายหรือต้านสิ่งรบกวน overshoot ที่ยอมรับได้ การขยับของตัวขับที่ยอมรับได้
- ตรวจฮาร์ดแวร์และสมการ: เซนเซอร์ วาล์ว direct/reverse รูปแบบของบล็อก PID หน่วยเวลา
- ทำ step test (หัวข้อ 5) อ่าน , , และคำนวณ
- เลือกกฎ: SIMC เป็นค่าเริ่มต้น ใช้ relay test ถ้าเปิดวงไม่ได้ และใช้ Ziegler–Nichols เป็นค่าเดาครั้งแรกเท่านั้น
- แปลงเป็นรูปแบบและหน่วยของตัวควบคุม (หัวข้อ 2)
- ใส่ส่วนที่ใช้งานจริงต้องมี: ตัวกรอง D, anti-windup, ขีดจำกัดเอาต์พุต, เวลาสุ่มตัวอย่าง
- ทดสอบ ค่าเป้าหมายขั้นบันได สิ่งรบกวน และเพิ่มเกน 50% ที่จุดทำงานที่เกี่ยวข้อง
- ปรับละเอียดและบันทึก ค่าสุดท้าย วันที่ และผลทดสอบ เพื่อให้วิศวกรคนถัดไปไม่ต้องเริ่มจากศูนย์
18. โจทย์ฝึกทำ
ลองทำบนกระดาษก่อน แล้วค่อยเปิดเฉลย
แปลงรูปแบบ
ตัวควบคุมแบบ series มี , วินาที, วินาที จงหาค่าในรูป ideal
ดูเฉลย
Ziegler–Nichols จากการทดลอง
การทดลองวงปิดได้ และ วินาที จงหาค่า ZN แบบ PID และเกน , ในรูป parallel
ดูเฉลย
SIMC กับกระบวนการที่เวลาหน่วงมาก
step test ได้ , วินาที, วินาที จงหาค่า SIMC แบบ PI เมื่อ และหา
ดูเฉลย
ประมาณการต้านสิ่งรบกวน
วง PI มี และ วินาที เกินเป้าน้อย เกิดโหลดรบกวน 0.4 (ในหน่วยของเอาต์พุตตัวควบคุม) จงประมาณ IAE และดูว่าเปลี่ยนไปอย่างไรถ้าลด ลงครึ่งหนึ่ง
ดูเฉลย
ลด ลงครึ่งหนึ่งทำให้พื้นที่ความผิดพลาดลดลงครึ่งหนึ่ง แต่ margin ก็ลดลงด้วย จึงต้องตรวจการตอบสนองอีกครั้งเรียนต่อในคลังความรู้
บทเรียนเต็มและแล็บโต้ตอบที่รันในเบราว์เซอร์อยู่ในคลังความรู้ ใช้สูตรและรหัสอ้างอิงชุดเดียวกับบทความนี้
- ตัวควบคุม PID: โครงสร้าง ผลของแต่ละเทอม และแล็บจำลองในเบราว์เซอร์
- การจูน PID: Ziegler–Nichols, Cohen–Coon, SIMC, relay และแล็บลองค่า
- Gain margin และ phase margin ตัวเลขความทนทานที่ใช้ในบทความนี้
- การตอบสนองเชิงเวลา: เวลาขึ้น overshoot และเวลาเข้าที่
- การควบคุมดิจิทัลและการเลือกเวลาสุ่มตัวอย่าง
- อินพุตเอาต์พุตแอนะล็อก บล็อก PID และ VFD ใน PLC
- บทความสั้น: PID Controller คืออะไร
คำถามที่พบบ่อย
วิธีจูน PID ที่เร็วและเชื่อถือได้ที่สุดคืออะไร?
ทำ step test วงเปิดหนึ่งครั้ง อ่านเกน K เวลาหน่วง L และค่าคงเวลา T จากกราฟ แล้วใช้กฎ SIMC , โดยตั้ง ใช้การทดลองครั้งเดียว มีปุ่มปรับตัวเดียว ได้การตอบสนองนุ่มนวลและเกน margin ราว 3
ควรใช้ Ziegler–Nichols ไหม?
ใช้เป็นค่าเริ่มต้นเมื่อไม่มีข้อมูลอื่นได้ แต่ต้องรู้ว่า overshoot มักอยู่ที่ 40–80% และ margin บาง เพราะออกแบบให้ลดทอนหนึ่งในสี่ต่อรอบ วิศวกรส่วนใหญ่จึงลดเกน (ลด เพิ่ม ) หรือใช้ SIMC หรือ Tyreus–Luyben แทน
จำเป็นต้องใช้เทอม D เสมอไหม?
ไม่จำเป็น วงควบคุมในโรงงานส่วนใหญ่ใช้ PI เทอม D ช่วยได้กับกระบวนการที่ตอบสนองช้าแบบ lag-dominant และสัญญาณวัดสะอาด (เช่นอุณหภูมิ บางวงตำแหน่งและความเร็ว) แต่แทบไม่ช่วยเมื่อเวลาหน่วงมากหรือสัญญาณมีสัญญาณรบกวน และถ้าใช้ต้องมีตัวกรองเสมอ
เลือกเวลาปริพันธ์ อย่างไร?
กระบวนการแบบ self-regulating ค่าเริ่มต้นที่ดีคือ (ค่าคงเวลาของกระบวนการ) และไม่เกิน เมื่อค่านั้นน้อยกว่า ถ้า สั้นเกินจะแกว่งช้า ๆ เป็นลูกคลื่น ถ้ายาวเกินค่าผิดพลาดจะค้างนาน พื้นที่ความผิดพลาดหลังโหลดรบกวนมีค่าประมาณ เมื่อ
ควรตั้งเวลาสุ่มตัวอย่าง (sample time) เท่าไร?
ประมาณหนึ่งในสิบของค่าคงเวลาของกระบวนการหรือเล็กกว่า และไม่เกินราวครึ่งหนึ่งของเวลาหน่วงเมื่อเวลาหน่วงมีค่าน้อย การสุ่มตัวอย่างเพิ่มเวลาหน่วงเทียบเท่าอีกราว จึงต้องลดเกนลงถ้าสุ่มช้า
ทำไมวงควบคุมยังแกว่งทั้งที่ตั้งเกนต่ำแล้ว?
ให้สงสัยฮาร์ดแวร์ก่อน วาล์วที่ติด (stiction) เฟืองคลอน (backlash) หรือ dead band ทำให้เกิด limit cycle ที่ไม่มีค่าเกนใดแก้ได้ และสัญญาณวัดที่มีสัญญาณรบกวนหรือกรองไม่ดีก็เป็นสาเหตุได้ ดูที่เอาต์พุตของตัวควบคุม ถ้าค่าวัดเป็นฟันเลื่อยและเอาต์พุตเป็นคลื่นสี่เหลี่ยมคือสัญญาณคลาสสิกของ stiction
Integral windup คืออะไร และป้องกันอย่างไร?
windup คือเทอมปริพันธ์สะสมค่าขณะที่ตัวขับอิ่มตัว ทำให้เกินเป้ามากหลังจากนั้น ป้องกันด้วย anti-windup เช่นหยุดสะสม (clamping) หรือ back-calculation ในผลจำลองของบทความนี้ back-calculation ลด overshoot จาก 19% เหลือ 0.5%
รู้ได้อย่างไรว่าค่าจูนทนทานพอ?
เป้าหมายคือ gain margin อย่างน้อย 2 phase margin 45–60° และ peak sensitivity 1.4–2 วิธีเช็กเร็วหน้างานคือเพิ่ม อีก 50% (หรือให้เกนของกระบวนการเพิ่มเป็นสองเท่า) แล้วดูว่าการตอบสนองยังนิ่งอยู่
บทความอื่นที่น่าอ่าน
ดูบทความทั้งหมดในหมวดระบบควบคุมและ PID (2 เรื่อง) → · บทความทั้งหมด