PID Controllor

PID เป็นตัวควบคุมแบบป้อนกลับซึ่งนำมาใช้ในการควบคุมคุณสมบัติของกระบวนการ (Process variable) เช่น อุณหภูมิ, แรงดัน, อัตราการไหล, ระดับความสูง และอื่นๆ ให้ได้ค่าตามที่ต้องการ (Set point) โดยใช้ค่าความผิดพลาด (Error) ระหว่าง PV กับ SP เอาคำนวณในสมการ PID ดังรูป

Setpoint – ป้อนค่า Setpoint

Set output % – ในโหมด Software manual ค่านี้เป็นค่า Output ของ PID

ส่วนในโหมด Auto ค่านี้จะแสดงถึงค่า % Output ของ PID

Output bias – เปอร์เซ็นต์ bias ของ output

Proportion gain (Kp) – คือค่า Kp ของสมการ PID

Integral gain (Ki) – คือค่า Ki ของสมการ PID

Derivative time (Kd) – คือค่า Kd ของสมการ PID

Manual Mode – เลือกโหมด manual ( Hardware) หรือ software manual

ในโหมด manual, คำสั่ง PID จะใช้ค่าจาก Tag tieback เอามาเป็น output ของ PID ซึ่งโดยทั่วไป tieback จะเอามาจากอุปกรณ์ภายนอก

ในโหมด software manual,คำสั่ง PID จะใช้ค่าจาก Tag Set ouput (.SO)เอามาเป็น output ของ PID ซึ่งสามารถเปลี่ยนแปลงค่าได้โดย software

 

PID equation – เลือกชนิดของ gain ใช้ independent เมื่อต้องการให้แต่ละ gain

แยกกัน หรือใช้ dependent เมื่อต้องการใช้แค่ gain รวมเพียงตัวเดียว

Control action – เลือกสมาการ Error, E=PV-SP หรือ E=SP-PV

Direct/Reverse-Acting

ใช้บอกลักษณะ Gain ของระบบ ถ้า CV เพิ่ม แล้ว PV เพิ่มตาม แสดงว่ามี Gain เป็นบวก (positive) เราจะเรียกว่า “Direct acting” ซึ่งตรงกันข้ามกับ “Reverse acting” คือ ถ้า CV เพิ่ม แล้ว PV กลับลดลง แสดงว่ามี Gain เป็นลบ (negative)

สำหรับระบบที่เป็นชนิด  “Direct acting” ให้เลือก Control action (E) = SP-PV

สำหรับระบบที่เป็นชนิด  “Reverse acting” ให้เลือก Control action (E) = PV-SP

ตัวอย่างระบบที่เป็น direct-acting :

PID8                                                                                                                                                                                                                                                 ตัวอย่างระบบที่เป็น Reverse-acting :

PID9

Derivative of – เลือกเป็น PV หรือ error, เลือกเป็น PV เพื่อลดการกระชากของ

output เมื่อค่า setpoint เปลี่ยนแปลง หรือ เลือกเป็น error เมื่อต้องการ response เร็วๆ ต่อเปลี่ยนแปลงของ setpoint

Loop update time – กำหนดช่วงเวลา update PID ซึ่งขึ้นอยู่กับการตอบสนองของ

กระบวนการที่เราควบคุม (Process response) เช่น ควบคุมอุณหภูมิซึ่งมีการตอบสนองต่อการเปลี่ยนแปลงค่อนข้างช้า เราอาจใช้ค่า update time มากๆได้ เช่นประมาณ 1 sec ส่วน process ที่มีการตอยสนองเร็วขึ้น เช่น pressure หรือ Flow อาจต้องการค่า update time ประมาณ 250 ms โดยทั่วไปเราใช้คำสั่ง Timer ช่วยในการกำหนด loop update time

CV high limit – ป้อนค่า high limit ของ control variable ถ้า output เกิน limit, คำสั่งจะเซ็ต alarm bit เป็น True

CV low limit – ป้อนค่า high limit ของ control variable ถ้า output เกิน limit, คำสั่งจะเซ็ต alarm bit เป็น True

Deadband value – ป้อนค่า deadband ซึ่งคือช่วงความผิดพลาด (error)จาก Setpoint ที่ยอมรับได้ คำสั่ง PID จะไม่ปรับค่า CV ถ้า PV อยู่ในช่วง deadband

PV high – ป้อนค่า PV high alarm

PV low – ป้อนค่า PV low alarm

PV deadband – ป้อนค่า PV alarm deadband

Positive deviation – ป้อนค่า positive deviation

Negative deviation – ป้อนค่า Negative deviation

Deviation deadband – ป้อนค่า deviation alarm deadband

PV unscaled maximum – ป้อนค่า maximum PV ที่รับมาจาก Analog Input

PV unscaled minimum – ป้อนค่า minimum PV ที่รับมาจาก Analog Input

PV engineering units maximum – ป้อนค่า max engineering units

PV engineering units minimum – ป้อนค่า min engineering units

CV maximum – ป้อนค่า maximum CV ที่ 100%

CV minimum – ป้อนค่า minimum CV ที่ 0%

Tieback maximum – ป้อนค่า maximum tieback ที่รับมาจาก Analog Input

Tieback minimum – ป้อนค่า minimum tieback ที่รับมาจาก Analog Input

PID Initialized

ตัวอย่าง

โปรแกรมควบคุมระดับของเหลวในถังระบบแบบ direct acting ดังรูปด้านบน

Rung17: กำหนดโหมดการทำงานของคำสั่ง PID จากสวิตซ์บนแผงควบคุม ถ้าบิดสวิตซ์ไปที่ตำแหน่ง Manual ทำให้บิต .MO เป็น True เอาพุตท์ของ PID จะมาจากค่าของ Tag FV1234_Tieback ซึ่งรับค่ามาจาก Analog input card อีกทีหนึ่ง ถ้าสวิตซ์อยู่ที่ตำแหน่ง Auto ทำให้บิต .MO เป็น Fault คำสั่ง PID จะทำงานในโหมด Software Auto และ เอาท์พุตมาจากสมการ PID

Rung18: ใช้เปลี่ยนโหมดของ PID ให้อยู่ในโหมด Software manual เมื่ออุปกรณ์ในลูปมีปัญหา (Loop_Fault เป็น True) เพื่อกำหนดค่าเอาท์พุตของ PID ได้เองผ่าน .SO

Rung19: เมื่ออุปกรณ์ในลูปมีปัญหา เราจะสั่งให้เปิด Valve 100% โดย move ค่า 100 เข้า .SO

Rung20: กำหนดค่า Set point ให้คำสั่ง PID ผ่าน .SP (45%)

Rung21: เป็น Timer รีเซ็ตตัวเองทุก 1 วินาที เพื่อ Trigger คำสั่ง PID

Runf22: คำสั่ง PID

 

 

 

 

 

About these ads

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s