Research

ฝึกปรับแต่ง PID อย่างสนุก


อาจารย์ชนม์รัตน์ ตติยะวรนันท์  
อาจารย์ประจำภาควิชาวิศวกรรมระบบวัดคุมและเมคคาทรอนิกส์ ​ 
คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเทคโนโลยีมหานคร  
14 มิถุนายน 2558  

       การใช้งานขั้นตอนวิธีแบบ PID ในอุตสาหกรรมมีความจำเป็นมาก ครั้งนี้ผู้แต่งขอนำเสนอ Websiteที่ช่วยให้เพื่อน พี่ น้องชาววิศวะ-ม.มหานคร มาลองฝึกปรับแต่ง PID อย่างสนุกกัน โดยจะนำเสนอเทคนิคการปรับแต่ง PID แบบ Trial and Error ถ้าผู้อ่านมีความรู้สึกว่ายากจัง Trial and Error คืออะไร ??? ไม่ต้องกังวลเรามาเริ่มรู้จักการควบคุมแบบอัตโนมัติก่อนดังรูปที่ 1 เป็นไดอะแกรมทั่วไปของระบบควบคุมแบบป้อนกลับซึ่งมีตัวแปรที่เราสนใจดังนี้โดย

       SP คือค่าคำสั่งหรืออาจกล่าวได้ว่าเป็นสิ่งที่เราต้องการ 
       PV คือสิ่งที่วัดได้จริง 
       EV คือค่า Error ซึ่งเป็นค่าผลต่างระหว่างค่าคำสั่ง SP กับค่าจริงที่เกิดในระบบนั่นคือค่า PV 
       OP ในที่นี้คือเป็นค่าเอาต์พุตที่ได้จากตัวควบคุมซึ่งเกิดจากการนำค่าผิดพลาดหรือ Error มาทำการคำนวณตามวิธีการของตัวควบคุม

       โดยปกติแล้วในการควบคุมกระบวนการในอุตสาหกรรมเราก็ต้องการให้ระบบทำงานตามที่เรากำหนดนั้นคือค่าตัวแปรที่เกิดขึ้นในระบบคือ PV และค่าคำสั่ง SP จะต้องมีค่าเท่ากันนั่นคือ ค่าError เท่ากับศูนย์สำหรับตัวอย่างระบบควบคุมจริงที่มีให้เห็นในอุตสาหกรรมทั่วไปก็อาจจะได้แก่ ระบบควบคุมอุณหภูมิในตู้อบเพื่อการทดสอบชิ้นงานหรือการทดสอบผลิตภัณฑ์ที่ผลิตได้ซึ่งปกติจะใช้ในการควบคุมอุณหภูมิให้มีค่าต่างๆตามมาตรฐานการทดสอบเพื่อดูการทำงานของผลิตภัณฑ์ที่ผลิตได้ว่าทำงานได้ตามที่ควรจะเป็นหรือไม่ ดังนั้นในระบบตัวอย่างดังกล่าวนี้ค่า SP ก็คือค่าอุณหภูมิในตู้อบที่เราต้องการ PV คืออุณหภูมิในตู้อบที่วัดได้จริงและสัญญาณที่ได้จากตัวควบคุมก็คือ OP ซึ่งอาจอยู่ในรูปแรงดันหรือกระแสเพื่อนำไปสั่งงานชุดขับฮีตเตอร์ไฟฟ้าที่ให้ความร้อนกับตู้อบ    ส่วนค่า PV ที่จะป้อนกลับไปยังตัวควบคุมก็จะได้จากการใช้เซนเซอร์ในการวัดอุณหภูมิเช่น เทอร์โมคัปเปิ้ล และ RTD เป็นต้น ในรูปที่ 2 เป็นตัวอย่างของตัวควบคุมชนิดหนึ่งที่ใช้งานมากในอุตสาหกรรมซึ่งเราจะต้องกำหนดค่าพารามิเตอร์ตัวควบคุมพีไอดีผ่านการกดปุ่มและดูค่าที่จอแสดงผลของตัวควบคุม

รูปที่ 1 การควบคุมแบบอัตโนมัติด้วยขั้นตอนวิธี PID

รูปที่ 2 ตัวอย่างตัวควบคุมในงานอุตสาหกรรม

       สำหรับการปรับค่าตัวควบคุมด้วยวิธีการ Trial and Error ที่กำลังกล่าวถึงนี้ก็คือการลองผิด ลองถูก (อย่างมีหลักการนะครับ) โดยหลักการคือ เราจะต้องปรับในโหมดการทำงาน AUTO โดยให้เริ่มปรับค่า Kp ให้ระบบมี Error น้อยที่สุดก่อน แล้วจึงปรับค่า Ki ตามก่อนปรับค่าKd ให้ได้ผลตอบสนองของระบบที่เราพอใจ (สามารถปรับค่าKdก่อนปรับค่าKi ได้นะครับ แต่ย้ำต้องปรับ Kp ให้ได้ดีก่อนนะ) ดังรูปที่ 3 แล้วการปรับแต่ง PID ล่ะจะยากไหม ??? 

       ตัวควบคุมแบบ PID ก็ประกอบไปด้วยค่า Kp, Kiและ Kd โดยลองสังเกตดูนะว่า การปรับค่า Kp จะเป็นการปรับแต่งโดยร่วมของระบบ แต่มักมี Error ส่วนการปรับค่า Ki เป็นการปรับเพื่อลด Error ให้น้อยลง แต่ระบบจะช้า แล้วการปรับค่า Kd เป็นการเพิ่มความเร็วให้กับระบบ แต่ไม่ได้เน้นการลด Error ลงนะครับ บางครั้งอาจจะได้อัตราการพุ่งเกินหรือเรียกว่า Over shoot แบบสูงๆมาด้วย

       มาลองปรับตัวควบคุม PID โดยใช้เวปเพจที่สร้างขึ้นมาเพื่อการเรียนรู้การปรับตัวควบคุมอย่างง่ายๆโดยเปิด Web browser และไปตามlink ดังต่อไปนี้
       link --->http://www.msubillings.edu/cotfaculty/sullivan/PID.html

       จากรูปในเวปเพจค่า SP คือค่าอินพุตเป็นสิ่งที่เราอยากได้เหมือนที่เราได้กล่าวมาก่อนหน้านี้ ค่า OPคือสัญญาณเอาต์พุตที่ได้จากตัวควบคุมPID และค่า PV คือค่าเอาต์พุตที่วัดได้จริงซึ่งเราต้องการให้ติดตามอินพุตนั้นเอง เมื่อคลิก link จะปรากฏหน้าจอดังในรูปที่ 4 และจากรูปที่ 4 จะเห็นว่า มีค่า Error =10 ผู้เขียนต้องการเน้นลด Error เป็นหลัก จึงเลือกปรับค่า Ki เพื่อลดค่าผิดพลาด ได้ผลรูปด้านล่างนี้ครับผู้แต่งจะลองปรับค่า Kd ซึ่งตามหลักการแล้วรูปที่ 5 เป็นคำตอบแล้ว ไม่มีความจำเป็นต้องปรับ Kd ครับ
       ดังนั้นคำตอบคือ รูปที่ 5 Kp = 5, Ki = 0.1 และ Kd =0.01 โดยที่ค่าผิดพลาดคือ Error = SP-PV = 0

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

รูปที่ 3 ขั้นตอนการปรับแต่ง PID แบบTrial and Error

รูปที่ 4 Kp = 5, Ki = 9999 และ Kd =0.01Error = SP-PV =10

รูปที่ 5 Kp = 5, Ki = 0.1 และ Kd =0.01Error = SP-PV = 0

รูปที่ 6 Kp = 5, Ki = 0.1 และ Kd =0.50Error = SP-PV = แกว่ง(ไม่นิ่ง)

<< ย้อนกลับ