ระบบควบคุมพีไอดี

ระบบควบคุมแบบสัดส่วน-ปริพันธ์-อนุพันธ์ () เป็นระบบควบคุมแบบป้อนกลับที่ใช้กันอย่างกว้างขวาง ซึ่งค่าที่นำไปใช้ในการคำนวณเป็นค่าความผิดพลาดที่หามาจากความแตกต่างของตัวแปรในกระบวนการและค่าที่ต้องการ ตัวควบคุมจะพยายามลดค่าผิดพลาดให้เหลือน้อยที่สุดด้วยการปรับค่าสัญญาณขาเข้าของกระบวนการ ค่าตัวแปรของ PID ที่ใช้จะปรับเปลี่ยนตามธรรมชาติของระบบ

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

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

การประยุกต์ใช้งานบางครั้งอาจใช้เพียงหนึ่งถึงสองรูปแบบ ขึ้นอยู่กับกระบวนการเป็นสำคัญ พีไอดีบางครั้งจะถูกเรียกว่าการควบคุมแบบ PI, PD, P หรือ I ขึ้นอยู่กับว่าใช้รูปแบบใดบ้าง

ทฤษฎี 
การควบคุมแบบ PID ได้ชื่อตามการรวมกันของเทอมของตัวแปรทั้งสามตามสมการ:

เมื่อ
, , และ  เป็นผลของสัญญาณขาออกจากระบบควบคุม PID จากแต่ละเทอมซึ่งนิยามตามรายละเอียดด้านล่าง

สัดส่วน 

เทอมของสัดส่วน (บางครั้งเรียก อัตราขยาย) จะเปลี่ยนแปลงเป็นสัดส่วนของค่าความผิดพลาด การตอบสนองของสัดส่วนสามารถทำได้โดยการคูณค่าความผิดพลาดด้วยค่าคงที่ Kp, หรือที่เรียกว่าอัตราขยายสัดส่วน

เทอมของสัดส่วนจะเป็นไปตามสมการ:

เมื่อ
 : สัญญาณขาออกของเทอมสัดส่วน
 : อัตราขยายสัดส่วน, ตัวแปรปรับค่าได้
 : ค่าความผิดพลาด  
 : เวลา

ผลอัตราขยายสัดส่วนที่สูงค่าความผิดพลาดก็จะเปลี่ยนแปลงมากเช่นกัน แต่ถ้าสูงเกินไประบบจะไม่เสถียรได้ ในทางตรงกันข้าม ผลอัตราขยายสัดส่วนที่ต่ำ ระบบควบคุมจะมีผลตอบสนองต่อกระบวนการน้อยตามไปด้วย

ปริพันธ์ 

ผลจากเทอมปริพันธ์ (บางครั้งเรียก reset) เป็นสัดส่วนของขนาดความผิดพลาดและระยะเวลาของความผิดพลาด ผลรวมของความผิดพลาดในทุกช่วงเวลา (ปริพันธ์ของความผิดพลาด) จะให้ออฟเซตสะสมที่ควรจะเป็นในก่อนหน้า ความผิดพลาดสะสมจะถูกคูณโดยอัตราขยายปริพันธ์ ขนาดของผลของเทอมปริพันธ์จะกำหนดโดยอัตราขยายปริพันธ์, .

เทอมปริพันธ์จะเป็นไปตามสมการ:

เมื่อ
 : สัญญาณขาออกของเทอมปริพันธ์
 : อัตราขยายปริพันธ์, ตัวแปรปรับค่าได้
 : ความผิดพลาด 
 : เวลา
 : ตัวแปรปริพันธ์หุ่น

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

อนุพันธ์ 

อัตราการเปลี่ยนแปลงของความผิดพลาดจากกระบวนการนั้นคำนวณหาจากความชันของความผิดพลาดทุกๆเวลา (นั่นคือ เป็นอนุพันธ์อันดับหนึ่งสัมพันธ์กับเวลา) และคูณด้วยอัตราขยายอนุพันธ์  ขนาดของผลของเทอมอนุพันธ์ (บางครั้งเรียก อัตรา) ขึ้นกับ อัตราขยายอนุพันธ์ 

เทอมอนุพันธ์เป็นไปตามสมการ:

เมื่อ
 : สัญญาณขาออกของเทอมอนุพันธ์
 : อัตราขยายอนุพันธ์, ตัวแปรปรับค่าได้
 : ความผิดพลาด 
 : เวลา

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

ผลรวม 

เทอมสัดส่วน, ปริพันธ์, และอนุพันธ์ จะนำมารวมกันเป็นสัญญาณขาออกของการควบคุมแบบ PID กำหนดให้  เป็นสัญญาณขาออก สมการสุดท้ายของวิธี PID คือ:

รหัสเทียม 

รหัสเทียม () ของ ขั้นตอนวิธีระบบควบคุมพีไอดี โดยอยู่บนสมมุติฐานว่าตัวประมวลผลประมวลผลแบบขนานอย่างสมบูรณ์แบบ เป็นดังต่อไปนี้

 previous_error = setpoint - actual_position
 integral = 0
 start:
   error = setpoint - actual_position
   integral = integral + (error*dt)
   derivative = (error - previous_error)/dt
   output = (Kp*error) + (Ki*integral) + (Kd*derivative)
   previous_error = error
   wait(dt)
   goto start

การปรับจูน

การปรับจูนด้วยมือ

ถ้าระบบยังคงทำงาน ขั้นแรกให้ตั้งค่า  และ  เป็นศูนย์ เพิ่มค่า  จนกระทั่งสัญญาณขาออกเกิดการแกว่ง (oscillate) แล้วตั้งค่า  ให้เหลือครึ่งหนึ่งของค่าที่ทำให้เกิดการแกว่งสำหรับการตอบสนองชนิด "quarter amplitude decay" แล้วเพิ่ม  จนกระทั่งออฟเซตถูกต้องในเวลาที่พอเพียงของกระบวนการ แต่ถ้า  มากไปจะทำให้ไม่เสถียร สุดท้ายถ้าต้องการ ให้เพิ่มค่า  จนกระทั่งลูปอยู่ในระดับที่ยอมรับได้ แต่ถ้า  มากเกินไปจะเป็นเหตุให้การตอบสนองและโอเวอร์ชูตเกินยอมรับได้ ปกติการปรับจูน PID ถ้าเกิดโอเวอร์ชูตเล็กน้อยจะช่วยให้เข้าสู่จุดที่ต้องการเร็วขึ้น แต่ในบางระบบไม่สามารถยอมให้เกิดโอเวอร์ชูตได้ และถ้าค่า  น้อยเกินไปก็จะทำให้เกิดการแกว่ง

วิธีการ
วิธีการนี้นำเสนอโดย John G. Ziegler และ Nathaniel B. Nichols ในคริสต์ทศวรรษที่ 1940 ขั้นแรกให้ตั้งค่า  และ  เป็นศูนย์ เพิ่มอัตราขยาย P สูงที่สุด, , จนกระทั่งเริ่มเกิดการแกว่ง นำค่า  และค่าช่วงการแกว่ง  มาหาค่าตัวแปรที่เหลือดังตาราง:

ดูเพิ่ม 

 ทฤษฎีระบบควบคุม
 Feedback
 Instability
 Oscillation
 PI controller

อ้างอิง

แหล่งข้อมูลอื่น

PID tutorials 
 PID Tutorial 
 P.I.D. Without a PhD : a beginner's guide to PID loop theory with sample programming code
 What's All This P-I-D Stuff, Anyhow?  Article in Electronic Design
  Shows how to build a PID controller with basic electronic components  (pg. 22)
 Virtual PID Controller Laboratory
 PID Design & Tuning 
ตัวอย่างการประยุกต์ใช้งานตัวควบคุมพีไอดีกับปัญหา Inverted Pendulum โดยมหาวิทยาลัยคาร์เนกีเมลลอน

หัวข้อพิเศษและการประยุกต์ใช้การควบคุมแบบพีไอดี 
 Proven Methods and Best Practices for PID Control 
 PID Control Primer  Article in Embedded Systems Programming

ทฤษฎีระบบควบคุม
พีไอดี