ตอนที่ 15: รูปแบบของ PID: Series, Parallel และ Standard (ISA) ความลับที่ซ่อนอยู่ในสมการ

1. 🎯 ตอนที่ 15: รูปแบบของ PID: Series, Parallel และ Standard (ISA) ความลับที่ซ่อนอยู่ในสมการ
2. 📖 เปิดฉาก (The Hook)
สวัสดีครับน้องๆ และเพื่อนวิศวกรทุกท่าน! ยินดีต้อนรับกลับสู่ซีรีส์ เจาะลึกวิศวกรรมระบบควบคุม (Control Systems) จาก 101 ถึง Advance กับพี่วิศวกรคนเดิมครับ
เคยเจอปัญหานี้ไหมครับ? สมมติว่าโรงงานของเราใช้ PLC หรือ Temperature Controller ยี่ห้อ A ทำงานได้นิ่งและเสถียรมาก วันหนึ่งเครื่องเกิดพัง เราเลยไปซื้อยี่ห้อ B มาเปลี่ยนแทน โดยความฉลาดของเรา เราก็จดค่า $P, I, D$ จากเครื่องเก่า ไปกรอกใส่เครื่องใหม่แบบเป๊ะๆ ทุกตัวอักษร… แต่ผลปรากฏว่า เครื่องจักรสั่นเป็นเจ้าเข้า อุณหภูมิแกว่ง (Hunting) จนของพังพินาศ!
เกิดอะไรขึ้น? คณิตศาสตร์หลอกเรางั้นหรือ? เปล่าเลยครับ ปัญหาคือ “PID ไม่ได้มีแค่รูปแบบเดียว” ครับ! ในโลกของอุตสาหกรรม ผู้ผลิตแต่ละค่าย (เช่น Siemens, Allen-Bradley, Yokogawa, OMRON) มีการใช้โครงสร้างสมการ (Topology) ของ PID ที่ต่างกันออกไปตามรากฐานประวัติศาสตร์ของตัวเอง วันนี้พี่จะพาไปเจาะลึกโครงสร้าง 3 รูปแบบหลัก คือ Parallel, Standard (ISA) และ Series (Interacting) ว่ามันต่างกันอย่างไร ทำไมถึงต้องมีหลายแบบ และมันส่งผลกับชีวิตการจูนหน้างานของเราอย่างไรครับ!
3. 🧠 แก่นวิชา (Core Concepts)
สาเหตุที่โลกนี้มีสมการ PID หลายรูปแบบ ต้องย้อนกลับไปในยุค 1930s ที่ตัวควบคุมยังเป็นระบบลม (Pneumatic Controllers) การจะสร้างกลไกบวกสัญญาณ 3 เส้นพร้อมๆ กัน (Parallel) ด้วยท่อลมนั้นทำได้ยากมาก วิศวกรยุคแรกจึงใช้วิธีเอาวาล์วลมแบบ PI ไปต่ออนุกรมกับวาล์วลมแบบ PD กลายเป็นรูปแบบ Series,
ต่อมาเมื่อโลกเปลี่ยนเข้าสู่ยุคอิเล็กทรอนิกส์และดิจิทัล (Digital Control) ไมโครคอนโทรลเลอร์สามารถคำนวณสมการแบบขนานได้อย่างอิสระ ทำให้เกิดรูปแบบ Parallel ขึ้นมา แต่อย่างไรก็ตาม ผู้ผลิตหลายรายก็ยังคงรูปแบบ Series เอาไว้ เพื่อให้วิศวกรรุ่นเก่าไม่ต้องเรียนรู้วิธีการจูนใหม่
เราสามารถแบ่งโครงสร้างของ PID ออกเป็น 3 รูปแบบหลักๆ ดังนี้ครับ:
- Parallel Form (แบบขนาน): แต่ละพจน์ ($P, I, D$) ทำงานแยกจากกันอย่างเด็ดขาด เป็นรูปแบบที่นักคณิตศาสตร์และนักวิชาการชอบที่สุด
- Standard Form หรือ ISA Form (แบบมาตรฐาน / Non-interacting): ดึงค่า Proportional Gain ออกมาเป็นตัวร่วม (Multiplier) ให้กับทุกพจน์ เป็นรูปแบบมาตรฐานที่นิยมใช้ในตำราเรียนและระบบ DCS สมัยใหม่
- Series Form หรือ Interacting Form (แบบอนุกรม): เอาพจน์ PI และ PD มาต่ออนุกรมกัน ทำให้ค่า I ส่งผลกระทบต่อ D และค่า D ส่งผลกระทบต่อ I (Interacting),

4. 🧮 ร่ายมนต์สมการและโค้ดควบคุม (The Math & Implementation)
มาดูหน้าตาสมการ Transfer Function ($G_c(s)$) ของแต่ละรูปแบบกันครับ เพื่อให้เห็นภาพว่าทำไมการก๊อปปี้ค่าพารามิเตอร์ข้ามยี่ห้อถึงทำให้เครื่องพัง!
1. Parallel Form (รูปแบบขนาน) สมการนี้ พารามิเตอร์แต่ละตัวจะแยกเป็นอิสระ (Independent): $$ G_c(s) = K_p + \frac{K_i}{s} + K_d s $$
- จุดเด่น: ง่ายต่อการวิเคราะห์ทางคณิตศาสตร์ เราสามารถปิดเทอม I หรือ D ได้ง่ายๆ ด้วยการเซ็ตค่าเป็นศูนย์
- จุดอ่อน: จูนยากด้วยเซนส์ของมนุษย์ เพราะการเปลี่ยน $K_p$ จะไม่ไปช่วยดึงความเร็วของเทอม I หรือ D เลย เปรียบเหมือนการขับรถที่มีพวงมาลัย 3 วงแยกกัน
2. Standard Form / ISA Form / Non-interacting Form (รูปแบบมาตรฐาน) สมการนี้จะถูกดึงค่า เกนรวม ($K_c$) ออกมาอยู่นอกวงเล็บ: $$ G_c(s) = K_c \left( 1 + \frac{1}{T_i s} + T_d s \right) $$
- โดยที่ $T_i$ คือ Integral Time และ $T_d$ คือ Derivative Time
- จุดเด่น: หากเราเปลี่ยนค่า $K_c$ (ปรับความไวรวม) สัดส่วนของอดีต ($T_i$) และอนาคต ($T_d$) จะยังคงสมดุลอยู่เหมือนเดิม ทำให้จูนง่ายกว่ามาก
3. Series Form / Interacting Form (รูปแบบอนุกรม) เกิดจากการเอา PI Controller มาต่อ Cascade กับ PD Controller: $$ G_c(s) = K_c’ \left( 1 + \frac{1}{T_i’ s} \right) ( 1 + T_d’ s ) $$ หากเราคูณกระจายวงเล็บออกมา จะได้เป็น: $$ G_c(s) = K_c’ \left( 1 + \frac{T_d’}{T_i’} + \frac{1}{T_i’ s} + T_d’ s \right) $$
- จุดเด่น: จูนด้วยวิธีทางความถี่ (Frequency Response) ได้ง่ายเพราะสมการแยกตัวประกอบมาให้แล้ว และให้ผลตอบสนองที่นุ่มนวลกว่าในงาน Process Control
- จุดอ่อน: พารามิเตอร์ตีกันเอง (Interacting) การเปลี่ยน $T_d’$ จะทำให้พจน์ Proportional เดิม ($1 + T_d’/T_i’$) เพี้ยนตามไปด้วย!
วิชาแปลงร่าง (Conversion Equations): หากน้องๆ จำเป็นต้องย้ายพารามิเตอร์จากเครื่อง Series (เช่น PLC รุ่นเก่า) ไปยังเครื่อง Parallel/Standard (เช่น Microcontroller ที่เราเขียน C/C++ เอง) เราต้องแปลงค่ามันด้วยสมการนี้ครับ,:
$$ K_p = K_c’ \left( 1 + \frac{T_d’}{T_i’} \right) $$ $$ T_i = T_i’ \left( 1 + \frac{T_d’}{T_i’} \right) $$ $$ T_d = \frac{T_d’}{1 + \frac{T_d’}{T_i’}} $$
// ตัวอย่าง C++ Code สำหรับการแปลงพารามิเตอร์จาก Series เป็น Standard
void Convert_Series_To_Standard(float Kc_series, float Ti_series, float Td_series,
float *Kp_std, float *Ti_std, float *Td_std) {
// คำนวณค่าสัมประสิทธิ์การพึ่งพากัน (Interaction Factor)
float alpha = 1.0 + (Td_series / Ti_series);
// แปลงค่าพารามิเตอร์
*Kp_std = Kc_series * alpha;
*Ti_std = Ti_series * alpha;
*Td_std = Td_series / alpha;
}5. 🛡️ เคล็ดลับจากคัมภีร์ลับ (Under the Hood / Pro-Tips)
ความแตกต่างของ Topology เหล่านี้ไม่ใช่แค่เรื่องของสมการบนกระดาษ แต่ส่งผลกับ “กฎการจูนระดับตำนาน” อย่างหลีกเลี่ยงไม่ได้ครับ!
- กับดักของ Ziegler-Nichols: รู้หรือไม่ครับว่า กฎการจูนของ Ziegler-Nichols (Z-N Method) ที่เราท่องจำกันมาตั้งแต่สมัยเรียน มหาวิทยาลัยนั้น ถูกคิดค้นขึ้นในปี 1942 ซึ่งยุคนั้นมีแต่ Series PID (Pneumatic)!, ดังนั้น ถ้าคุณเอากฎ Z-N ไปใช้จูนสมการแบบ Parallel หรือ Standard ค่ามันจะไม่เป๊ะครับ (ถึงแม้อัตราส่วน Z-N จะให้ $T_d/T_i = 1/4$ ซึ่งทำให้ความต่างของพารามิเตอร์อยู่ที่ประมาณ 25% ก็ตาม แต่ก็ทำให้พฤติกรรม Overshoot ต่างกันได้)
- หน่วยของ Integral: นอกจากโครงสร้างจะต่างกันแล้ว “หน่วย (Units)” ก็เป็นอีกหนึ่งกับดักมรณะครับ ในสมการ Parallel ค่า $K_i$ ยิ่งมาก ระบบยิ่งสะสมอดีตเร็ว แต่ในสมการ Standard ค่า $T_i$ (Integral Time) ยิ่งมาก ระบบยิ่งสะสมอดีต “ช้าลง” (เพราะมันหารอยู่ใต้เศษส่วน) แถมผู้ผลิตบางรายใช้หน่วยเป็น “วินาที (Seconds)”, บางรายใช้ “นาทีต่อการซ้ำ (Minutes per repeat)” หรือ “การซ้ำต่อนาที (Repeats per minute)”
Pro-Tip จากรุ่นพี่: ก่อนจะเริ่มกดปุ่มจูนหรือก็อปปี้พารามิเตอร์จากคอนโทรลเลอร์ตัวไหน “จงเปิดคู่มือ (Datasheet) ดูสมการและหน่วยของมันก่อนเสมอ!” อย่าไว้ใจแค่ตัวอักษร P, I, D ที่สกรีนอยู่บนหน้าปัดเด็ดขาดครับ!
6. 🏁 บทสรุป (To be continued…)
จะเห็นได้ว่า โครงสร้างของ Series, Parallel และ Standard (ISA) PID ต่างก็มีที่มาที่ไปจากข้อจำกัดทางวิศวกรรมในแต่ละยุคสมัย แม้ในปัจจุบันคอมพิวเตอร์จะสามารถคำนวณสมการแบบไหนก็ได้ แต่ความคุ้นเคยของมนุษย์หน้างานก็ทำให้โครงสร้างเหล่านี้ยังคงดำรงอยู่คู่กับอุตสาหกรรม
เมื่อเราเข้าใจ Topology ของมันแล้ว การจะย้ายโค้ดข้ามแพลตฟอร์มก็ไม่ใช่เรื่องที่เป็นไปไม่ได้อีกต่อไปครับ! ในตอนต่อไป เราจะมาเจาะลึกเทคนิคการเอาตัวรอดจากโลกความจริง เมื่อมอเตอร์ของคุณจ่ายพลังงานเต็ม 100% แล้วแต่ยังไม่ถึงเป้าหมาย ปรากฏการณ์ที่เรียกว่า “Integral Windup” จะมาเยือน! เราจะมีวิธีเขียนโค้ดป้องกัน (Anti-windup) อย่างไร? รอติดตามกันนะครับ!
ต้องการที่ปรึกษาด้านการออกแบบระบบควบคุม (Control Systems), หุ่นยนต์อัตโนมัติ (Robotics) หรือพัฒนาระบบ Automation ขั้นสูงให้กับโรงงานของคุณ? ทีมงาน WP Solution พร้อมให้บริการออกแบบและติดตั้งระบบแบบครบวงจร ดูรายละเอียดบริการของเราได้ที่: www.wpsolution2017.com หรือพูดคุยปรึกษาเบื้องต้นได้ที่ Line: wisit.p