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

ระบบควบคุมแบบสัดส่วน-ปริพันธ์-อนุพันธ์  เป็นระบบควบคุมแบบป้อนกลับที่ใช้กันอย่างกว้างขวาง ซึ่งค่าที่นำไปใช้ในการคำนวณเป็นค่าความผิดพลาดที่หามาจากความแตกต่างของตัวแปรในกระบวนการและค่าที่ต้องการ ตัวควบคุมจะพยายามลดค่าผิดพลาดให้เหลือน้อยที่สุดด้วยการปรับค่าสัญญาณขาเข้าของกระบวนการ ค่าตัวแปรของ PID ที่ใช้จะปรับเปลี่ยนตามธรรมชาติของระบบ
วิธีคำนวณของ PID ขึ้นอยู่กับสามตัวแปรคือค่าสัดส่วน, ปริพันธ์ และ อนุพันธ์ ค่า สัดส่วน กำหนดจากผลของความผิดพลาดในปัจจุบัน, ค่า "ปริพันธ์" กำหนดจากผลบนพื้นฐานของผลรวมความผิดพลาดที่ซึ่งพึ่งผ่านพ้นไป, และค่า อนุพันธ์ กำหนดจากผลบนพื้นฐานของอัตราการเปลี่ยนแปลงของค่าความผิดพลาด น้ำหนักที่เกิดจากการรวมกันของทั้งสามนี้จะใช้ในการปรับกระบวนการ
โดยการปรับค่าคงที่ใน PID ตัวควบคุมสามารถปรับรูปแบบการควบคุมให้เหมาะกับที่กระบวนการต้องการได้ การตอบสนองของตัวควบคุมจะอยู่ในรูปของการไหวตัวของตัวควบคุมจนถึงค่าความผิดพลาด ค่าโอเวอร์ชูต (overshoots) และ ค่าแกว่งของระบบ (oscillation) วิธี PID ไม่รับประกันได้ว่าจะเป็นระบบควบคุมที่เหมาะสมที่สุดหรือสามารถทำให้กระบวนการมีความเสถียรแน่นอน
การประยุกต์ใช้งานบางครั้งอาจใช้เพียงหนึ่งถึงสองรูปแบบ ขึ้นอยู่กับกระบวนการเป็นสำคัญ พีไอดีบางครั้งจะถูกเรียกว่าการควบคุมแบบ PI, PD, P หรือ I ขึ้นอยู่กับว่าใช้รูปแบบใดบ้าง
ทฤษฎี.
การควบคุมแบบ PID ได้ชื่อตามการรวมกันของเทอมของตัวแปรทั้งสามตามสมการ:
<math>\mathrm{MV (t)}=\,P_{\mathrm{out}} + I_{\mathrm{out}} + D_{\mathrm{out}}</math>
เมื่อ
<math>P_{\mathrm{out}}</math>, <math>I_{\mathrm{out}}</math>, และ <math>D_{\mathrm{out}}</math> เป็นผลของสัญญาณขาออกจากระบบควบคุม PID จากแต่ละเทอมซึ่งนิยามตามรายละเอียดด้านล่าง
สัดส่วน.
เทอมของสัดส่วน (บางครั้งเรียก "อัตราขยาย") จะเปลี่ยนแปลงเป็นสัดส่วนของค่าความผิดพลาด การตอบสนองของสัดส่วนสามารถทำได้โดยการคูณค่าความผิดพลาดด้วยค่าคงที่ "Kp", หรือที่เรียกว่าอัตราขยายสัดส่วน
เทอมของสัดส่วนจะเป็นไปตามสมการ:
<math>P_{\mathrm{out}}=K_p\,{e (t)}</math>
เมื่อ
 <math>P_{\mathrm{out}}</math>: สัญญาณขาออกของเทอมสัดส่วน
 <math>K_p</math>: อัตราขยายสัดส่วน, ตัวแปรปรับค่าได้
 <math>e</math>: ค่าความผิดพลาด <math> = SP - PV </math> 
 <math>t</math>: เวลา
ผลอัตราขยายสัดส่วนที่สูงค่าความผิดพลาดก็จะเปลี่ยนแปลงมากเช่นกัน แต่ถ้าสูงเกินไประบบจะไม่เสถียรได้ ในทางตรงกันข้าม ผลอัตราขยายสัดส่วนที่ต่ำ ระบบควบคุมจะมีผลตอบสนองต่อกระบวนการน้อยตามไปด้วย
ปริพันธ์.
ผลจากเทอมปริพันธ์ (บางครั้งเรียก "reset") เป็นสัดส่วนของขนาดความผิดพลาดและระยะเวลาของความผิดพลาด ผลรวมของความผิดพลาดในทุกช่วงเวลา (ปริพันธ์ของความผิดพลาด) จะให้ออฟเซตสะสมที่ควรจะเป็นในก่อนหน้า ความผิดพลาดสะสมจะถูกคูณโดยอัตราขยายปริพันธ์ ขนาดของผลของเทอมปริพันธ์จะกำหนดโดยอัตราขยายปริพันธ์, <math>K_i</math>.
เทอมปริพันธ์จะเป็นไปตามสมการ:
<math>I_{\mathrm{out}}=K_{i}\int_{0}^{t}{e (\tau)}\,{d\tau}</math>
เมื่อ
 <math>I_{\mathrm{out}}</math>: สัญญาณขาออกของเทอมปริพันธ์
 <math>K_i</math>: อัตราขยายปริพันธ์, ตัวแปรปรับค่าได้
 <math>e</math>: ความผิดพลาด <math> = SP - PV</math>
 <math>t</math>: เวลา
 <math>\tau</math>: ตัวแปรปริพันธ์หุ่น
เทอมปริพันธ์ (เมื่อรวมกับเทอมสัดส่วน) จะเร่งกระบวนการให้เข้าสู่จุดที่ต้องการและขจัดความผิดพลาดที่เหลืออยู่ที่เกิดจากการใช้เพียงเทอมสัดส่วน แต่อย่างไรก็ตาม เทอมปริพันธ์เป็นการตอบสนองต่อความผิดพลาดสะสมในอดีต จึงสามารถทำให้เกิดโอเวอร์ชูตได้ (ข้ามจุดที่ต้องการและเกิดการหันเหไปทางทิศทางอื่น)
อนุพันธ์.
อัตราการเปลี่ยนแปลงของความผิดพลาดจากกระบวนการนั้นคำนวณหาจากความชันของความผิดพลาดทุก ๆ เวลา (นั่นคือ เป็นอนุพันธ์อันดับหนึ่งสัมพันธ์กับเวลา) และคูณด้วยอัตราขยายอนุพันธ์ <math>K_d</math> ขนาดของผลของเทอมอนุพันธ์ (บางครั้งเรียก "อัตรา") ขึ้นกับ อัตราขยายอนุพันธ์ <math>K_d</math>
เทอมอนุพันธ์เป็นไปตามสมการ:
<math>D_{\mathrm{out}}=K_d\frac{d}{dt}e (t) </math>
เมื่อ
 <math>D_{\mathrm{out}}</math>: สัญญาณขาออกของเทอมอนุพันธ์
 <math>K_d</math>: อัตราขยายอนุพันธ์, ตัวแปรปรับค่าได้
 <math>e</math>: ความผิดพลาด <math> = SP - PV</math>
 <math>t</math>: เวลา
เทอมอนุพันธ์จะชะลออัตราการเปลี่ยนแปลงของสัญญาณขาออกของระบบควบคุมและด้วยผลนี้จะช่วยให้ระบบควบคุมเข้าสู่จุดที่ต้องการ ดังนั้นเทอมอนุพันธ์จะใช้ในการลดขนาดของโอเวอร์ชูตที่เกิดจาเทอมปริพันธ์และทำให้เสถียรภาพของการรวมกันของระบบควบคุมดีขึ้น แต่อย่างไรก็ตามอนุพันธ์ของสัญญาณรบกวนที่ถูกขยายในระบบควบคุมจะไวมากต่อการรบกวนในเทอมของความผิดพลาดและสามารถทำให้กระบวนการไม่เสถียรได้ถ้าสัญญาณรบกวนและอัตราขยายอนุพันธ์มีขนาดใหญ่เพียงพอ
ผลรวม.
เทอมสัดส่วน, ปริพันธ์, และอนุพันธ์ จะนำมารวมกันเป็นสัญญาณขาออกของการควบคุมแบบ PID กำหนดให้ <math>u (t) </math> เป็นสัญญาณขาออก สมการสุดท้ายของวิธี PID คือ:
<math>\mathrm{u (t)}=\mathrm{MV (t)}=K_p{e (t)} + K_{i}\int_{0}^{t}{e (\tau)}\,{d\tau} + K_{d}\frac{d}{dt}e (t) </math>
รหัสเทียม.
รหัสเทียม  ของ ขั้นตอนวิธีระบบควบคุมพีไอดี โดยอยู่บนสมมุติฐานว่าตัวประมวลผลประมวลผลแบบขนานอย่างสมบูรณ์แบบ เป็นดังต่อไปนี้
 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
การปรับจูน.
การปรับจูนด้วยมือ.
ถ้าระบบยังคงทำงาน ขั้นแรกให้ตั้งค่า <math>K_i</math> และ <math>K_d</math> เป็นศูนย์ เพิ่มค่า <math>K_p</math> จนกระทั่งสัญญาณขาออกเกิดการแกว่ง (oscillate) แล้วตั้งค่า <math>K_p</math> ให้เหลือครึ่งหนึ่งของค่าที่ทำให้เกิดการแกว่งสำหรับการตอบสนองชนิด "quarter amplitude decay" แล้วเพิ่ม <math>K_i</math> จนกระทั่งออฟเซตถูกต้องในเวลาที่พอเพียงของกระบวนการ แต่ถ้า <math>K_i</math> มากไปจะทำให้ไม่เสถียร สุดท้ายถ้าต้องการ ให้เพิ่มค่า <math>K_d</math> จนกระทั่งลูปอยู่ในระดับที่ยอมรับได้ แต่ถ้า <math>K_d</math> มากเกินไปจะเป็นเหตุให้การตอบสนองและโอเวอร์ชูตเกินยอมรับได้ ปกติการปรับจูน PID ถ้าเกิดโอเวอร์ชูตเล็กน้อยจะช่วยให้เข้าสู่จุดที่ต้องการเร็วขึ้น แต่ในบางระบบไม่สามารถยอมให้เกิดโอเวอร์ชูตได้ และถ้าค่า <math>K_p</math> น้อยเกินไปก็จะทำให้เกิดการแกว่ง
วิธีการ.
วิธีการนี้นำเสนอโดย John G. Ziegler และ Nathaniel B. Nichols ในคริสต์ทศวรรษที่ 1940 ขั้นแรกให้ตั้งค่า <math>K_i</math> และ <math>K_d</math> เป็นศูนย์ เพิ่มอัตราขยาย "P" สูงที่สุด, <math>K_u</math>, จนกระทั่งเริ่มเกิดการแกว่ง นำค่า <math>K_u</math> และค่าช่วงการแกว่ง <math>P_u</math> มาหาค่าตัวแปรที่เหลือดังตาราง:
ดูเพิ่ม.
<templatestyles src="Div col/styles.css"/>