วันพฤหัสบดีที่ 23 กุมภาพันธ์ พ.ศ. 2560

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

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

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

แผนภาพบล็อกของการควบคุมแบบพีไอดี
วิธีคำนวณของ PID ขึ้นอยู่กับสามตัวแปรคือค่าสัดส่วน, ปริพันธ์ และ อนุพันธ์ ค่าสัดส่วนกำหนดจากผลของความผิดพลาดในปัจจุบัน, ค่าปริพันธ์กำหนดจากผลบนพื้นฐานของผลรวมความผิดพลาดที่ซึ่งพึ่งผ่านพ้นไป, และค่าอนุพันธ์กำหนดจากผลบนพื้นฐานของอัตราการเปลี่ยนแปลงของค่าความผิดพลาด น้ำหนักที่เกิดจากการรวมกันของทั้งสามนี้จะใช้ในการปรับกระบวนการ
โดยการปรับค่าคงที่ใน PID ตัวควบคุมสามารถปรับรูปแบบการควบคุมให้เหมาะกับที่กระบวนการต้องการได้ การตอบสนองของตัวควบคุมจะอยู่ในรูปของการไหวตัวของตัวควบคุมจนถึงค่าความผิดพลาด ค่าโอเวอร์ชูต (overshoots) และ ค่าแกว่งของระบบ (oscillation) วิธี PID ไม่รับประกันได้ว่าจะเป็นระบบควบคุมที่เหมาะสมที่สุดหรือสามารถทำให้กระบวนการมีความเสถียรแน่นอน
การประยุกต์ใช้งานบางครั้งอาจใช้เพียงหนึ่งถึงสองรูปแบบ ขึ้นอยู่กับกระบวนการเป็นสำคัญ พีไอดีบางครั้งจะถูกเรียกว่าการควบคุมแบบ PI, PD, P หรือ I ขึ้นอยู่กับว่าใช้รูปแบบใดบ้าทฤษฎี
การควบคุมแบบ PID ได้ชื่อตามการรวมกันของเทอมของตัวแปรทั้งสามตามสมการ:
{\displaystyle \mathrm {MV(t)} =\,P_{\mathrm {out} }+I_{\mathrm {out} }+D_{\mathrm {out} }}
เมื่อ
{\displaystyle P_{\mathrm {out} }}, {\displaystyle I_{\mathrm {out} }}, และ {\displaystyle D_{\mathrm {out} }} เป็นผลของสัญญาณขาออกจากระบบควบคุม PID จากแต่ละเทอมซึ่งนิยามตามรายละเอียดด้านล่าง

สัดส่วน
Proportinal control action (P - Action) 


กราฟ PV ต่อเวลา, Kp กำหนดเป็น 3 ค่า(Ki และ Kd คงที่)
เทอมของสัดส่วน (บางครั้งเรียก อัตราขยาย) จะเปลี่ยนแปลงเป็นสัดส่วนของค่าความผิดพลาด การตอบสนองของสัดส่วนสามารถทำได้โดยการคูณค่าความผิดพลาดด้วยค่าคงที่ Kp, หรือที่เรียกว่าอัตราขยายสัดส่วน
เทอมของสัดส่วนจะเป็นไปตามสมการ:
{\displaystyle P_{\mathrm {out} }=K_{p}\,{e(t)}}
เมื่อ
{\displaystyle P_{\mathrm {out} }}: สัญญาณขาออกของเทอมสัดส่วน
{\displaystyle K_{p}}: อัตราขยายสัดส่วน, ตัวแปรปรับค่าได้
e: ค่าความผิดพลาด {\displaystyle =SP-PV}
{\displaystyle t}: เวลา
ผลอัตราขยายสัดส่วนที่สูงค่าความผิดพลาดก็จะเปลี่ยนแปลงมากเช่นกัน แต่ถ้าสูงเกินไประบบจะไม่เสถียรได้ ในทางตรงกันข้าม ผลอัตราขยายสัดส่วนที่ต่ำ ระบบควบคุมจะมีผลตอบสนองต่อกระบวนการน้อยตามไปด้วย
ซึ่งก็คือ  การกำหนดการทำงานของ ouput ให้เป็นสัดส่วนเปอร์เซ็นกับค่า error

ปริพันธ์

Integral control action (I-Action) 


กราฟ PV ต่อเวลา, Ki กำหนดเป็นสามค่า (Kp และ Kd คงที่)
ผลจากเทอมปริพันธ์ (บางครั้งเรียก reset) เป็นสัดส่วนของขนาดความผิดพลาดและระยะเวลาของความผิดพลาด ผลรวมของความผิดพลาดในทุกช่วงเวลา (ปริพันธ์ของความผิดพลาด) จะให้ออฟเซตสะสมที่ควรจะเป็นในก่อนหน้า ความผิดพลาดสะสมจะถูกคูณโดยอัตราขยายปริพันธ์ ขนาดของผลของเทอมปริพันธ์จะกำหนดโดยอัตราขยายปริพันธ์, {\displaystyle K_{i}}.
เทอมปริพันธ์จะเป็นไปตามสมการ:
{\displaystyle I_{\mathrm {out} }=K_{i}\int _{0}^{t}{e(\tau )}\,{d\tau }}
เมื่อ
{\displaystyle I_{\mathrm {out} }}: สัญญาณขาออกของเทอมปริพันธ์
{\displaystyle K_{i}}: อัตราขยายปริพันธ์, ตัวแปรปรับค่าได้
e: ความผิดพลาด {\displaystyle =SP-PV}
{\displaystyle t}: เวลา
{\displaystyle \tau }: ตัวแปรปริพันธ์หุ่น
เทอมปริพันธ์ (เมื่อรวมกับเทอมสัดส่วน) จะเร่งกระบวนการให้เข้าสู่จุดที่ต้องการและขจัดความผิดพลาดที่เหลืออยู่ที่เกิดจากการใช้เพียงเทอมสัดส่วน แต่อย่างไรก็ตาม เทอมปริพันธ์เป็นการตอบสนองต่อความผิดพลาดสะสมในอดีต จึงสามารถทำให้เกิดโอเวอร์ชูตได้ (ข้ามจุดที่ต้องการและเกิดการหันเหไปทางทิศทางอื่น)
ซึ่งก็คือ สัดส่วนของขนาดความผิดพลาดและระยะเวลาของความผิดพลาด

อนุพันธ์

Derivative control action (D-Action) 


กราฟ PV ต่อเวลา, สำหรับ Kd 3 ค่า (Kp และ Ki คงที่)
อัตราการเปลี่ยนแปลงของความผิดพลาดจากกระบวนการนั้นคำนวณหาจากความชันของความผิดพลาดทุกๆเวลา (นั่นคือ เป็นอนุพันธ์อันดับหนึ่งสัมพันธ์กับเวลา) และคูณด้วยอัตราขยายอนุพันธ์ {\displaystyle K_{d}} ขนาดของผลของเทอมอนุพันธ์ (บางครั้งเรียก อัตรา) ขึ้นกับ อัตราขยายอนุพันธ์ {\displaystyle K_{d}}
เทอมอนุพันธ์เป็นไปตามสมการ:
{\displaystyle D_{\mathrm {out} }=K_{d}{\frac {d}{dt}}e(t)}
เมื่อ
{\displaystyle D_{\mathrm {out} }}: สัญญาณขาออกของเทอมอนุพันธ์
{\displaystyle K_{d}}: อัตราขยายอนุพันธ์, ตัวแปรปรับค่าได้
e: ความผิดพลาด {\displaystyle =SP-PV}
{\displaystyle t}: เวลา
เทอมอนุพันธ์จะชะลออัตราการเปลี่ยนแปลงของสัญญาณขาออกของระบบควบคุมและด้วยผลนี้จะช่วยให้ระบบควบคุมเข้าสู่จุดที่ต้องการ ดังนั้นเทอมอนุพันธ์จะใช้ในการลดขนาดของโอเวอร์ชูตที่เกิดจาเทอมปริพันธ์และทำให้เสถียรภาพของการรวมกันของระบบควบคุมดีขึ้น แต่อย่างไรก็ตามอนุพันธ์ของสัญญาณรบกวนที่ถูกขยายในระบบควบคุมจะไวมากต่อการรบกวนในเทอมของความผิดพลาดและสามารถทำให้กระบวนการไม่เสถียรได้ถ้าสัญญาณรบกวนและอัตราขยายอนุพันธ์มีขนาดใหญ่เพียงพอ
ซึ่งก็คือ อัตราการเปลี่ยนแปลงของความผิดพลาด การรบกวนระบบจากภายนอ

ผลรวม

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

{\displaystyle \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)}

รหัสเทียม

รหัสเทียม (อังกฤษ: pseudocode) ของ ขั้นตอนวิธีระบบควบคุมพีไอดี โดยอยู่บนสมมุติฐานว่าตัวประมวลผลประมวลผลแบบขนานอย่างสมบูรณ์แบบ เป็นดังต่อไปนี้
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

การปรับจูน[แก้]

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

ถ้าระบบยังคงทำงาน ขั้นแรกให้ตั้งค่า {\displaystyle K_{i}} และ {\displaystyle K_{d}} เป็นศูนย์ เพิ่มค่า {\displaystyle K_{p}} จนกระทั่งสัญญาณขาออกเกิดการแกว่ง (oscillate) แล้วตั้งค่า {\displaystyle K_{p}} ให้เหลือครึ่งหนึ่งของค่าที่ทำให้เกิดการแกว่งสำหรับการตอบสนองชนิด "quarter amplitude decay" แล้วเพิ่ม {\displaystyle K_{i}} จนกระทั่งออฟเซตถูกต้องในเวลาที่พอเพียงของกระบวนการ แต่ถ้า {\displaystyle K_{i}} มากไปจะทำให้ไม่เสถียร สุดท้ายถ้าต้องการ ให้เพิ่มค่า {\displaystyle K_{d}} จนกระทั่งลูปอยู่ในระดับที่ยอมรับได้ แต่ถ้า {\displaystyle K_{d}} มากเกินไปจะเป็นเหตุให้การตอบสนองและโอเวอร์ชูตเกินยอมรับได้ ปกติการปรับจูน PID ถ้าเกิดโอเวอร์ชูตเล็กน้อยจะช่วยให้เข้าสู่จุดที่ต้องการเร็วขึ้น แต่ในบางระบบไม่สามารถยอมให้เกิดโอเวอร์ชูตได้ และถ้าค่า {\displaystyle K_{p}} น้อยเกินไปก็จะทำให้เกิดการแกว่ง
ผลของการเพิ่มค่าตัวแปรอย่างอิสระ
ตัวแปรช่วงเวลาขึ้น
(Rise time)
โอเวอร์ชูต
(Overshoot)
เวลาสู่สมดุล
(Settling time)
ความผิดพลาดสถานะคงตัว
(Steady-state error)
เสถียรภาพ[1]
{\displaystyle K_{p}}ลดเพิ่มเปลี่ยนแปลงเล็กน้อยลดลด
{\displaystyle K_{i}}ลด[2]เพิ่มเพิ่มลดลงอย่างมีนัยสำคัญลด
{\displaystyle K_{d}}ลดลงเล็กน้อยลดลงเล็กน้อยลดลงเล็กน้อยตามทฤษฏีไม่มีผลดีขึ้นถ้า {\displaystyle K_{d}} มีค่าน้อย

วิธีการ Ziegler–Nichols

วิธีการนี้นำเสนอโดย John G. Ziegler และ Nathaniel B. Nichols ในคริสต์ทศวรรษที่ 1940 ขั้นแรกให้ตั้งค่า {\displaystyle K_{i}} และ {\displaystyle K_{d}} เป็นศูนย์ เพิ่มอัตราขยาย P สูงที่สุด, {\displaystyle K_{u}}, จนกระทั่งเริ่มเกิดการแกว่ง นำค่า {\displaystyle K_{u}} และค่าช่วงการแกว่ง {\displaystyle P_{u}} มาหาค่าตัวแปรที่เหลือดังตาราง:
Ziegler–Nichols method
Control Type{\displaystyle K_{p}}{\displaystyle K_{i}}{\displaystyle K_{d}}
P{\displaystyle 0.50{K_{u}}}--
PI{\displaystyle 0.45{K_{u}}}{\displaystyle 1.2{K_{p}}/P_{u}}-
PID{\displaystyle 0.60{K_{u}}}{\displaystyle 2{K_{p}}/P_{u}}{\displaystyle {K_{p}}{P_{u}}/8}

ไม่มีความคิดเห็น:

แสดงความคิดเห็น