วันพุธที่ 28 กรกฎาคม พ.ศ. 2553

ระบบควบคุมแบบป้อนกลับ และการควบคุมแบบ PID สำหรับงานควบคุมเครื่องมือทางการแพทย์

เอาล่ะครับ... วันนี้เราจะมาพูดถึง ระบบควบคุมแบบป้อนกลับและการควบคุมแบบ PID หลายคนอาจจะฟังแล้วก็คุ้นๆ หรือบางคนอาจจะไม่เคยได้ยินเลยด้วยซ้ำ แต่ไม่เป็นไรนะครับ วันนี้กลุ่มของเรา "4inone" จะมาพูดคุยให้ฟังเองว่ามันเป็นอย่างไร

เราจะแยกพูดเป็น 2 เรื่องนะครับ

  1. ระบบควบคุมแบบป้อนกลับ (Feedback Control System)
  2. ระบบควบคุมแบบ PID (อย่าเพิ่ง งง ว่ามันคืออะไร??)

ก่อนอื่น...พวกเราจะพูดถึงบางสิ่งบางอย่างก่อน เพื่อจะให้ทุกๆคนเห็นความสำคัญของระบบควบคุมก่อนนะครับ

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


รูปที่1

รูปที่ 1 แสดงถึงโครงสร้างพื้นฐานของระบบควบคุม โดยผลลัพธ์ที่ออกทางเอาท์พุท (แทนโดยตัวแปร c) จะถูกควบคุมโดยสัณญาณกระตุ้น e ผ่านทางองค์ประกอบต่างๆซึ่งอยู่ภายใน controlled process


ในการควบคุมพวงมาลัยของรถยนต์ สัญญาณกระตุ้น e ได้แก่ ตำแหน่งของพวงมาลัย ส่วนตัวแปรเอาท์พุท c ได้แก่ ทิศทางของล้อหน้า ในส่วนของ controlled process จะประกอบด้วยกลไกต่างๆของพวงมาลัย เช่น การทดเฟือง และรวมถึงลักษณะการเคลื่อนที่ของล้อด้วย



เข้าเรื่องเลยนะครับ...

ระบบควบคุมแบ่งได้ 2 แบบ
  • ระบบควบคุมแบบวงเปิด(Open – loop Control System)
  • ระบบควบคุมแบบวงปิด (Close – loop Control System)


1. ระบบควบคุมแบบวงเปิด(Open – loop Control System)
เรียกอีกอย่างว่า... ระบบควบคุมแบบไม่ป้อนกลับ(Non-Feedback Control System)

ระบบนี้เป็นยังไง??
เป็นระบบที่ควบคุมโดยการคาดคะเนของมนุษย์ เช่นการควบคุมอุณหภูมิในห้องโดยเตาผิง (ถ้าเตาผิงมีปุ่มให้ตั้งเวลา เปิดและปิดเท่านั้น) เราเองนี่แหละครับที่มีหน้าที่ตั้งเวลา หรือคาดคะเนอุณหภูมิให้พอเหมาะเอง และอีกอย่างนึงคือ ระบบควบคุมแบบวงเปิดเป็นระบบควบคุมซึ่งไม่มีการเปรียบเทียบระหว่างสิ่งที่ต้องการกับสิ่งที่ได้ออกมาจากระบบในทฤษฎีการควบคุม สิ่งที่ต้องการหมายถึงสัญญาณป้อนเข้า(In put) และสิ่งที่ได้จากระบบเรียกว่าสัญญาณออกจากระบบ (Out put)

ตัวอย่างง่ายๆ คือเครื่องซักผ้าที่บ้าน

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

นี่แหละครับเป็นจุดอ่อน คือ ไม่มีการเปรียบเทียบระดับว่าเมื่อไรถึงจะถือว่ามันดีแล้ว หรือสะอาดแล้ว

รูปที่ 2

แผนผังของระบบควบคุมแบบวงเปิดสามารถเขียนได้อีกแบบหนึ่งดังรูปที่ 2 โดยสัญญาณอินพุทหรือสัญญาณสั่งการ r ส่งผ่าน controller ออกมาเป็นสัญญาณกระตุ้น e เพื่อสั่งให้ controlled process ขับเอาท์พุท c ที่ต้องการออกมา



2. ระบบควบคุมแบบวงปิด(Close – loop Control System)
เรียกอีกอย่างนึงว่า.. ระบบควบคุมแบบป้อนกลับ(Feedback Control System)

อันนี้แหละครับ คือประเด็นของพวกเรา ที่จะต้องทำให้ทุกๆคนเข้าใจกันว่ามันเป็นอย่างไร

ระบบแบบป้อนกลับเป็นระบบที่มีการ "เปรียบเทียบกับสิ่งที่ได้กับสิ่งที่ต้องการ"  ผลต่างที่เกิดขึ้นนี้ เราจะเรียกมันว่า ค่าความผิดพลาดของระบบ(error) จากนั้นระบบจะทำการ ป้อนกลับมายัง อินพุทอีกครั้งนึง เพื่อแก้ไขความผิดพลาด นี่แหละครับ เขาจึงเรียกว่า ระบบแบบป้อนกลับ (Feedback Control System) 

ยกตัวอย่างขึ้นมาให้ดูกันซะหน่อย เผื่อจะเข้าใจอาไรๆ มากขึ้น

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

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

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



รูปที่ 4

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


รูปที่ 5

เมื่อลองให้สัญญาณอินพุท r(t) เปลี่ยนค่าจากศูนย์ไปเป็น R ในทันทีทันใดดังรูปที่ 5(a)
ค่าสัญญาณเอาท์พุทจะมีลักษณะดังรูปที่ 5(b)

เนื่องมาจากความเฉื่อยทางกลและทางไฟฟ้าจะทำให้ตำแหน่งของเอาท์พุทไม่เปลี่ยนแปลงอย่างทันทีทันใด แต่จะค่อยๆวิ่งเข้าสู่ตำแหน่งที่กำหนดโดยอินพุท และอาจจะมีการแกว่งไปมารอบๆตำแหน่งที่กำหนดโดยอินพุท การแกว่งนี้จะค่อยๆลดน้อยถอยลงจนกระทั่งเอาท์พุทอยู่ในตำแหน่งที่กำหนดโดยอินพุทอย่างคงที่คืออยู่ใน steady state

*** สิ่งที่ต้องระวังในระบบควบคุมแบบป้อนกลับคือความไม่เสถียรของระบบ ถ้าหากสัญญาณ e(t) ถูกขยายมากเกินไปก็อาจจะทำให้เกิดการแก้ไขค่าความคลาดเคลื่อนของเอาท์พุทแบบ "overcorrect" และเอาท์พุทจะแกว่งในลักษณะที่ลู่ออกโดยไม่มีขอบเขต แต่ถ้าสัญญาณ e(t) ถูกขยายน้อยเกินไปก็จะทำให้เอาท์พุทมีค่าไม่ตรงกับค่าที่กำหนดโดยอินพุทเมื่อเอาท์พุทเข้าสู่ steady state ดังนั้นผู้ออกแบบระบบควบคุมแบบป้อนกลับจึงต้องหาจุดที่เหมาะสมระหว่างปัจจัยสองอย่างคือ ความเที่ยงตรง และความเสถียร ซึ่งปัจจัยทั้งสองนี้แปรผกผันกัน

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


ต่อไปเราก็จะมาพูดถึง .. ส่วนประกอบพื้นฐานของการควบคุมแบบป้อนกลับกันดีกว่า

จากหลักการพื้นฐานของระบบควบคุมแบบป้อนกลับสามารถกล่าวได้ว่า ระบบควบคุมแบบป้อนกลับประกอบด้วยเส้นทางหรือวงรอบของสัญญาณป้อนกลับซึ่งเป็นสัญญาณเอาท์พุท c ตั้งแต่หนึ่งวงรอบขึ้นไป แล้วนำสัญญาณป้อนกลับนี้มาเปรียบเทียบกับสัญญาณสั่งการหรือสัญญาณอ้างอิง r จะได้ผลต่างระหว่างสัญญาณทั้งสองเป็น e = r - c เพื่อนำไปควบคุมสัญญาณเอาท์พุท c ให้มีค่าตามที่กำหนดโดยสัญญาณอ้างอิง r
รูปที่ 6
รูปนี้แสดงให้เห็นถึง แผนผังของระบบควบคุมแบบป้อนกลับ ระบบควบคุมนี้ประกอบด้วยส่วน forward (forward path), ส่วนป้อนกลับ (feedback path) และส่วนตรวจจับค่าความคลาดเคลื่อน (error-sensing device) ส่วนตรวจจับค่าความคลาดเคลื่อนนี้จะเปรียบเทียบค่าสัญญาณอินพุทอ้างอิงกับค่าสัญญาณเอาท์พุทจริงๆหรือค่าที่เป็นฟังก์ชันของสัญญาณเอาท์พุท แล้วส่งสัญญาณที่เกิดจากผลต่างของสัญญาณทั้งสองนี้ออกไป


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


เรื่องที่เราจะพูดต่อไป นั่นก็คือ หัวข้อที่สองนั่นเอง
เป็นเรื่องของ ระบบควบคุมแบบ PID

จริงๆแล้วนะครับ PID นั้นก็คือส่วนหนึ่งของระบบควบคุมแบบวงปิด หรือ ว่าระบบควบคุมแบบป้อนกลับ


คำว่า PID นั่นคืออาไรกัน??

"P" มาจากคำว่า Proportinal control action (P - Action)
"I" มาจากคำว่า......... Integral control action (I-Action)
"D" มาจากคำว่า....Derivative control action (D-Action)

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

ต่อไปจะเป็นทฤษฏีคราวๆนะครับ

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

(Pout ,Iout ,Dout หมายถึง ผลของสัญญาณขาออกของระบบ)

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

Pout: สัญญาณขาออกของเทอมสัดส่วน

Kp: อัตราขยายสัดส่วน, ตัวแปรปรับค่าได้

e: ค่าความผิดพลาด = SP − PV

t: เวลา

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

Iout: สัญญาณขาออกของเทอมปริพันธ์
Ki: อัตราขยายปริพันธ์, ตัวแปรปรับค่าได้
e: ความผิดพลาด = SP − PV
t: เวลา
τ: ตัวแปรปริพันธ์หุ่น
 
เทอมปริพันธ์ (เมื่อรวมกับเทอมสัดส่วน) จะเร่งกระบวนการให้เข้าสู่จุดที่ต้องการและขจัดความผิดพลาดที่เหลืออยู่ที่เกิดจากการใช้เพียงเทอมสัดส่วน แต่อย่างไรก็ตาม เทอมปริพันธ์เป็นการตอบสนองต่อความผิดพลาดสะสมในอดีต จึงสามารถทำให้เกิดโอเวอร์ชูตได้  (หมายถึง ข้ามจุดที่เราต้องการ)

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

Dout: สัญญาณขาออกของเทอมอนุพันธ์
Kd: อัตราขยายอนุพันธ์, ตัวแปรปรับค่าได้
e: ความผิดพลาด = SP − PV
t: เวลา

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

ทั้งหมดนี้ก็เป็นเพียงทฤษฏีอ่านะครับ ต่อไปเราจะมาดูให้เห็นภาพกันนะครับว่า มันทำอะไรได้บ้าง


คลิปนี้เป็นการเปรียบเทียบระหว่างการทำงาน แบบ P Control กับ PID Control นะคับ จากคลิปก็แสดงให้เห็นว่าการที่ใช้ P Control อย่างเดียวนั้น ทำให้การเคลื่อนที่ดูไม่ค่อยจะราบเรียบเท่าไรนัก เพราะมีค่า Oscillations(การกวัดแกว่ง) มากเกินไป แต่พอเขาใช้ PID Control เท่านั้นแหละคับ ว้าวๆๆ การเคลื่อนที่ของหุ่นยนต์ ก็ราบเรียบขึ้นกว่าเดิมมาก เป็นเพราะ PID Control มันทำให้การตอบสนองดีขึ้น และ ค่า overshoot กับ ค่า Oscillations ลดลง เป็นเพราะกระบวนการตามทฤษฏี PID  ที่เราบอกไว้ตั้งแต่ต้นอ่านะ 

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


เป็นไงล่ะ??? น่าลองทำเล่นดูจัง!

มาถึงเรื่องสำคัญของพวกเราแล้วล่ะ เหล่าเพื่อนๆ ชีวการแพทย์
เราจะเอากระบวนการนี้ไปใช้ได้อย่างไรกันดีในทางการแพทย์... เด๋วจะยกตัวอย่างให้ดูนะ


"เครื่องนึ่งฆ่าเชื้อโรคด้วยไอน้ำอัตโนมัติ"

เครื่องนี้เป็นเครื่องฆ่าเชื้อโรคสำหรับเครื่องมือแพทย์ โดยควบคุมอุณหภูมิแบบ PID CONTROLLER

ผมฝากเว็บนี้ไปให้เพื่อนๆดูนะ http://www.jobpub.com/articles/showarticle.asp?id=2491 มันก็เปนการใช้ PID ที่นำมาประยุกต์ใช้เหมือนกัน อันนี้เอาไปต่อยอดทำอุปกรณ์ใช้แทนแขนเทียมได้เลยแหละ


และยังมีการนำวิธีการ PID ไปทำอย่างอื่นอีกด้วยนะ ผมจะให้ดูคลิปซํกหน่อยนึงนะ...
คลิปนี้ก็เป็นการทำเสาน้ำเกลือที่เคลื่อนที่ตามคนไข้...เขากำลังทดลองกันอยู่อ่านะ แต่ก็เป็นแนวคิดที่ดีเหมือนกัน มันอาจจะมีประโยชน์ในอนาคตภายภาคหน้านะ


ยังมีอีกคลิปนึง....เราอาจจะนำแนวคิดนี้ไปประยุกต์ใช้ได้นะ....ลองดูนะว่าเราจะเอาไปทำไรได้บ้าง เอามาให้ลองดูเล่นๆ นะ ผมว่ามันเจ๋งดีเหมือนกันนะ



สุดท้ายๆๆๆๆ ก็หวังว่าผู้อ่านจะได้เข้าใจเรื่องการควบคุมแบบป้อนกลับ และการควบคุมแบบ PID เพิ่มมากขึ้นนะ ถ้าไม่เข้าใจยังไง ก็ขอโทษด้วยนะ ผมก็พยายามหาข้อมูลอย่างมากๆ มาแล้ว แหะๆ แต่ว่าได้แค่นี้จิงๆคับ ขอบคุณทุกๆแหล่งข้อมูลที่พวกเรา 4inone ไปยืมมาด้วยนะ 555+


๔ I N ๑(4inone) BYE BYE

แหล่งอ้างอิงมากมายก่ายกอง

เรียบเรียงเนื้อหาใหม่โดย
กลุ่ม 4inone เองจร้า





6 ความคิดเห็น:

  1. อยากรู้ว่ามีอุปกรณ์ไดที่มีการควบคุมแบบวงปิดและแบบวงเปิดบ้าง
    เช่น หม้อต้มน้ำร้อนเป็นอุปกรณ์แบบวงปิด และไฟโฆษณาเป็นการควบคุมแบบวงเปิด

    ตอบลบ
  2. สุดยอดมากๆครับ ท่านผู้เขียน

    ตอบลบ
  3. ขอบคุณมากๆครับ สำหรับความรู้ที่ให้ เป็นประโยชน์มากๆเลยคับ

    ตอบลบ
  4. ขอบคุณครับ ผมก็กำลังทำโปรเจคจบ จะชุดรักษาระดับแรงดัน Gen อยู่พอดีเลยครับ

    ตอบลบ
  5. อยากให้มีคลิปอธิบายมากครับจะได้เห็นภาพมากกว่านี้

    ตอบลบ