คู มือการใช งานและ ตัวอย าง ... · 2019-03-26 ·...

Preview:

Citation preview

คูมอืการใชงานและ 

ตัวอยางโปรแกรมควบคุม 

User manual and Sample Code 

 

 

 

 

 

 

 

 

 

ชุดทดลองควบคุมแกนใบพัด

Vertical takeoff training kit 

 

รูปท่ี 1 วงจรสมบูรณของชุดทดลองควบคุมแกนใบพัด

รูปที่ 2 ตัวอยางการตอวงจรเขากับ Arduino Uno

บทนํา คูมือน้ีจะแสดงตัวอยางการเขียนโปรแกรมควบคุมชุดทดลองแกนใบพัดโดยจะแสดงวิธีการ

ควบคุมทั้งแบบ Open loop และ Colse loop ดวยชุดทดลองควบคุมแกนใบพัดดังรูปท่ี 3

 

  

รูปท่ี 3

ชุดทดลองน้ีจะชวยใหผูทดลองไดเขาใจการควบคุม PID สําหรับการควบคุมตําแหนงของแกน

ใบพัดหมุน โปรแกรมควบคุมจะทําผานโปรแกรม Arduino และสามารถแสดงผลเปนกราฟ เพื่อ

ใชดูผลตอบสนองของระบบซึ่งจะชวยใหผูทดลองสามารถปรับปรุงตัวควบคุม PID ใหเหมาะสม

และลูเขาสูคาที่ตองการโดยทดลองจะแบงเปนใบงานดังนี ้

1. การควบคุม Open loop

2. การควบคุมแบบ P

3. การควบคุมแบบ PI

4. การควบคุมแบบ PID

5. การควบคุมแบบ PID โดยใชไลเบอร่ี

 

1.การควบคุม Open loop

 

รูปท่ี 4 โปรแกรมควบคุมแกนใบพัดแบบ Open loop

1.2 สรุปผลการควบคุม Open loop รูปที่ 5 เปนไดอะแกรม การควบคุมแบบ Open loop ที่ผูใชงานสามารถปรับคา

แรงดันไฟฟาที่จะจายใหกับมอเตอรโดยตรง ซึ่งคาแรงดันไฟฟาน้ีคือ สัญญาณ PWM นั่นเอง

การควบคุมลักษณะน้ีตัวควบคุมจะไมรับรูตําแหนงของแกนใบพัดไมวาจะขึ้นลงมากหรือนอย

สัญญาณ PWM ก็จะยังคงเดิมไมเปล่ียนจนกวาผูใชงานจะปรับเปล่ียนคาเอง

การควบคุมลักษณะน้ีเรียบงาย ไมซับซอนแตขอเสียสําคัญคือ ระบบจะไมตอบสนองตอ

การเปล่ียนแปลงของระบ กลาวคือไมวาระบบจะเปนอยางไร สัญญาณเอาตพุตก็ยังคงเดิม

 

  

รูปที่ 5 ไดอะแกรมการควบคุมแบบ Open loop

  

รูปที่ 6 การตอใชงานและลักษณะสัญญาณอินพุตและเอาตพุต

ทดลองใชมือขยับแกนข้ึนลง 

2. การควบคุมแบบ P การควบคุมแบบ P ยอมาจากคําวา Proportional เปนหนึ่งในเทอมของการควบคุม

แบบ PID ในหัวขอนี้จะไดเรียนรูพฤติกรรม ขอดี ขอเสียของ P control

การควบคุมแบบ PID เปนการพิจารณาจากคา Error ที่เกิดขึ้นจากความแตกตาง

ระหวางสัญญาณ set point กับสัญญาณอินพุตปอนกลับ (feed back) โดยมีการคูณดวย

อัตราการขยายหรือเกน เขากับคา Error ที่ได เรียกวาคา K สําหรับการควบคุม P ก็จะเรียกคา

เกนวา Kp (อานวา เคพี)

รูปท่ี 7 สมการการควบคุมแบบ P

รูปที่ 8 ไดอะแกรมการควบคุมแบบ P

คาเอาตพุต คาเกน

คาError 

คาปอนกลับ คาท่ีตองการ

2.1 โปรแกรมควบคุมแบบ P

รูปท่ี9 โปรแกรมควบคุมแกนใบพัดแบบ P

2.2 สรุปผลการควบคุมแบบ P

รูปที่ 10 กราฟผลลัพธของการควบคุมแบบ P

ผลการควบคุมแบบ P แสดงดังรูปท่ี 10 จะเห็นวา เม่ือเปล่ียน set point จากคา 600

เปนคา 700 (หนวย ADC มีคาอยูในชวง 0 ถึง 1023) โดยมีคาเกนเทากับ 1.5 หลังจากนัน้ทันที

ท่ีมีการเปล่ียนคา set point สัญญาณ PWM จะเพิ่มข้ึนเปน 100% แทบจะในทันทีสงผลให

มอเตอรตอบสนองดวยการหมุนใบพัดเร็วข้ึน ทําใหเกิดแรงยก ใหตําแหนงของแกนใบพัดลูเขาสู

คา set point แตขณะเดียวกันเม่ือตําแหนงแกนใบพัดเขาใกล set point ก็ทําใหคา Error เขา

ใกลศูนย ทําใหเอาตพุต PWM ลดลงเปนศูนย มอเตอรหมุนชาลง สูญเสียแรงยกทําใหตําแหนง

แกนตกต่ํากวาคา set point แตในรอบน้ีตัวควบคุมท่ีเปนสมการจะคํานวณคาใหเอาตพุตให

สามารถเล้ียงแกนใบพัดใหอยูในตําแหนงท่ีสมดุลระหวางแรงยก และน้ําหนักแกน แตไม

สามารถทําใหเขาใกล set point ไดมากกวาน้ี เกิดเปนความแตกตางระหวางตําแหนง set

point กับตําแหนงของแกนเรียกวา คาออฟเซต ซึ่งเปนพฤติกรรมปกติของการควบคุมแบบ P

หากผูใชทดลองตองการออฟเซตนอยกวาน้ี ก็ตองเพิ่มคาเกน แตคาเกนทีม่ากเกินไปจะทําให

เกิดการแกวงของระบบได น่ันคือแกนใบพัดจะขยับข้ึนลงตลอดเวลาไมนิ่ง

3. การควบคุมแบบ PI การควบคุมแบบ PI ยอมาจากคําวา Proportional Integral เปนสองในสามเทอมของ

การควบคุมแบบ PID ในหัวขอนี้จะไดเรียนรูพฤติกรรม ขอดี ขอเสีย ของ PI control

การควบคุมแบบ PI เปนการปรับปรุงการควบคุมแบบ P โดยเพ่ิมเทอม I เขาไปเพ่ือ

แกปญหาออฟเซต ระหวาง set point และสัญญาณ feed back ในชวงแรก กลไกของเทอม P

จะทํางานเพือ่ใหตําแหนง feed back เขาใกล set point ตอจากนั้น คาออฟเซตทีเ่กิดข้ึนจะถูก

แกดวยเทอม I ท่ีจะคอยๆ ขยับคาเพื่อลดคาออฟเซตใหนอยลงจนเขาใกลศูนย ในทางทฤษฏี

แลวการควบคุมแบบ PI จะมีคา Error เปนศูนย แตในโลกแหงความจริงแลวจะมีการแกวง

เล็กๆ เกิดข้ึนอยูโดยระบบจะแกวงอยูรอบๆ คา set point กลไกการทํางานของ PI control เปน

ตามสมการในรูปที่ 11

รูปท่ี 11 สมการการควบคุม PI

รูปที่ 12 ไดอะแกรมการควบคุมแบบ PI

คาเอาตพุต

คาเกนp คาError 

คาปอนกลับ คาท่ีตองการ

คาเกนI 

3.1 โปรแกรมควบคุมแบบ PI

รูปที่ 13 โปรแกรม PI

3.2 สรุปผลการควบคุมแบบ PI

รูปท่ี 14 ผลตอบสนองของตัวควบคุม PI ชวงขาขึ้น

ผลการควบคุมแบบ PI แสดงดังรูปท่ี 14 จะเห็นวา เม่ือเปล่ียน set point จากคา 500

เปนคา 600 (หนวย ADC มีคาอยูในชวง 0 ถึง 1023) โดยมีคาเกน Kp = 1.2 และ Ki = 0.0005

ทันทีที่มีการเปล่ียนคา set point สัญญาณ PWM จะเพิ่มขึ้นเปน 100% แทบจะในทันที สงผล

ใหมอเตอรตอบสนองดวยการหมุนใบพัดเร็วข้ึน ทําใหเกิดแรงยก สงใหตําแหนงของแกนใบพัด

ลูเขาสูคา set point แตเน่ืองจากหลังเกิดโอเวอรชูตแลว คาตําแหนงปอนกลับตกลงมาต่ํากวา

คาที่ตองการ ตรงจุดน้ีเองกลไกการสะสมคา Error ของเทอม I หรือ อินทิกรัล เร่ิมสงผลใหเห็น

โดยตัวแปร errSum จะมีคาเพิ่มข้ึนเรื่อยๆ เม่ือคูณกับคาเกน Ki ก็สงผลใหคาเอาตพุต PWM

คอยๆ เพิ่มข้ึนอยางชาๆ สรางแรงยกดันใหตําแหนงแกนใบพดัเคล่ือนเขาสูตําแหนงทีต่องการ

อยางไรก็ตามเน่ืองจากตัวอยางนี้ตองการใหเห็นกลไกการทํางานของเทอม I หรือ

อินทิกรัล ทําใหผูเขียนตั้งคาเกน Ki นอยๆ เปนผลใหคาเวลาท่ีใชเพ่ือลูเขาตําแหนงท่ีตองการน้ัน

นานกวาปกติ ซึ่งในทางปฏิบัติแลวตองใชเวลาเขา setting time ใหนอยกวาน้ี จึงจะดี

รูปท่ี 15 ผลตอบสนองของตัวควบคุม PI ชวงขาลง

ผลการควบคุม PI แสดงดังรูปที่ 15 จะเห็นวาเมื่อเปล่ียน set point จากคา 600 เปน

500 คือเปนชวงขาลง จะสังเกตเห็นวา เม่ือคา set point เปล่ียนคา ทําใหคาเอาตพุต PWM

ลดลงเปน 0 ทันทีทําใหแกนใบพัดสูญเสียแรงยก ทําใหแกนใบพัด เคล่ือนตกลงมาดวยแรงโนม

ถวง ชวงเวลาตอมาเม่ือตําแหนงแกนใบพัดเคล่ือนลงเขาใกลคา set point สมการท่ีอยูใน

โปรแกรมจะเร่ิมสงคาเอาตพุตออกมาขับใหมอเตอรหมุน ไดเปนแรงยกดันใหแกนใบพัดยกตัว

ข้ึน กลับเขาสูคา set point อยางสวยงาม

ซึ่งจะสังเกตวาการควบคุมแบบ PI ในระยะยาวนั้น คาความแตกตางระหวาง set point

และสัญญาณ Feed back น้ันเขาใกลศูนย และอีกเชนเดียวกัน ที่พฤติกรรมของระบบตาม

กราฟที่เห็นน้ีอาจยังไมใชคาท่ีดีท่ีสุด แตผูเขียนเลือกที่จะใหผูทดลองไดเห็นกลไกการทํางาน

ของเทอม I เพ่ิมเขามา ซึ่งผูทดลองสามารถทดลองเปล่ียนคาเกนเพ่ือใหชวงการเขา setting

time นอยลงกวาน้ีได

4. การควบคุมแบบ PID การควบคุม PID เปนการรวมเอา สามเทอมมาทํางานรวมกัน โดยแตละเทอมจะทํางาน

เพื่อแกปญหาในแบบของตัวเอง

สมการโดยรวมของ PID เปนดังรูปที่ 16 จะเห็นวาเปนผลรวมของ สามเทอม ท่ี

ประกอบดวย เทอม P เทอม I และ เทอม D อิทธิพลของแตละเทอมจะทํางานในแตละ

สถานการณของระบบ ตัวอยางเชน เทอม P จะมีอิทธิพลสูงเม่ือคาความตางระหวาง set point

กับสัญญาณ Feed back มีคามาก อยูหางกันมาก ขณะท่ีเทอม I จะมีอิทธิพลสูงเม่ือคา Feed

back อยูใกลๆ คา set point เทอม I น้ีจะเร่ิมทํางานเพื่อทําใหคา Error ลดลงจนเปนศูนย

และสุดทายอิทธิพลของเทอม D จะคอยตานทานการเปล่ียนแปลงข้ึนลงอยางรวดเร็ว

ของสัญญาณ feed back ที่จะสงผลตอสัญญาณเอาตพุต อิทธิพลของเทอม D จะลดลงเม่ือ

สัญญาณFeed back ของระบบ ในสถานะนิ่งๆ

รูปที่ 16 สมการควบคุม PID

รูปที่ 17 ไดอะแกรมการควบคุมแบบ PID

4.1 โปรแกรมควบคุมแบบ PID

รูปที่ 18 โปรแกรม PID

4.2 สรุปผลการควบคุมแบบ PID

รูปที่ 19 สัญญาณอินพุตเอาตพุตของการควบคุม PID

ผลการควบคุมแบบ PID แสดงดังรูปที่ 19 จะเห็นวาตําแหนงของแกนใบพัดถูกควบคุม

ใหเปล่ียนแปลงตามสัญญาณ set point ไดเปนอยางดี โดยไมมีการโอเวอรชูต และอันเดอรชูต

โดยชวงเวลาการไตข้ึนและไตลง ของสัญญาณ feed back น้ันเกิดจากคาเวลาคงตัวของระบบ

น้ีเอง ซึ่งทันทีท่ีผานชวงเวลาคงตัวของระบแลวตําแหนงแกนใบพัดก็ลูเขาสูตําแหนงทีก่ําหนด

ทันทีโดยไมมีการแกวงของระบบ ผลการควบคุมดังกลาวเกิดจากการทํางานรวมกันของสมการ

PID ท่ีประกอบดวย สามเทอมนั่นคือ P I และ D

แนวคิดงายๆ ของทั้งสามเทอมนี้คือ เทอมP จะทําหนาที่สรางเอาตพุตเมื่อคา set point

ตางจาก feed back มากๆ สวนเทอม I จะชวยกําจัดคา Error เปนศูนยในตอน stated state

และสวนเทอม D จะคอยสงเอาตพุตเพื่อตานทานการเปล่ียนแปลงของระบบอยางฉับพลัน

เพื่อลดความผิดพลาดจากการพิมพตัวอยางโคด ตามคูมือนี้ ผูเขียนจึงไดรวบรวม

ตัวอยางโคดท่ีอยูในคูมือ สามารถคัดลอกนําไปทดลองตอใชงานไดเลย ตามรูปดานลาง

5 การควบคุมแบบ PIDโดยใชไลเบอร่ี PID ท่ีผานมาเปนการใชตัวควบคุม PID ที่เขียนข้ึนมาเองซึ่งจริงๆ แลวตัวควบคุม PID ที่ใช

งานในอุตสาหกรรม หรือในผลิตภัณฑตัวควบคุม PID สําเร็จรูป ไดเพิ่มข้ึนฟงชั่น ตัวปองกัน

และอัลกอริทึ่มใหมๆ เขาไปเพื่อแกปญหาตัวควบคุม PID แบบพื้นฐาน

เพื่อเปนการรับประกันวาปญหาของตัวควบคุม PID แบบพื้นฐานที่อาจเกิดข้ึนกับโคดท่ี

เขียนข้ึนเองจะไดรับการแกไขและปองกันไวแลว การเลือกใชไลเบอร่ี PID ก็เปนทางเลือกหน่ึงที

นาสนใจ ซึ่งชวยใหผูใชงานสามารถมุงไปการจูนคาเกน PID และดูผลตอบสนองของระบบ ให

ไดอยางที่ตองการ โดยไมตองกังวลกับปญหาที่อาจเกิดกับโคดที่เขียนข้ึนเอง สําหรับไลเบอรี PID ผูใชงานสามารถไปโหลดมาใชงานไดตามรูปที่ 20

รูปท่ี 20 ดาวนโหลดไลเบอรี PID เวอรชัน V1.0.1

เวอรช่ันลาสุดโหลดที่นี่

รูปที่ 21 ตรวจสอบตัวอยางโคด PID ท่ีมีมาให หากติดตั้งไลเบอรี่เรียบรอยแลว เมื่อโหลดไลเบอร่ีมาแลวติดตั้งใหเสร็จ จากนั้นตรวจสอบโดยทําตามรูปท่ี 21 ถาถูกตองจะตอง

เห็นตัวอยางใน Examples

ตัวอยาง PID 

รูปที่ 22 ตัวอยางโคดการใชงานไลเบอรี่เพื่อควบคุมตําแหนงแกนใบพัด

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

Rise Time ชวงเวลาขาข้ึน ตองการเร็วมากหรือไม หรือยอมรับคามากๆได รอได

Overshoot ยอมใหมีโอเวอรหรือไม หรือยอมไดมากนอยขนาดไหน

Settling Time ชวงเวลาตั้งแตมีการเปล่ียนคาตําแหนงเกาไปตําแหนงใหมตองเร็ว

ขนาดไหน หรือรอได ขอใหไดตรงตําแหนงเปนพอ

Steady-state Error ยอมใหมีคา Error ตอนระบบนิ่งแลวหรือไม ยอมไดหรือยอม

ไมได ตองไมเกินเทาไร 2. ถาตองการลด rise time ใหเพิ่มคา Kp 3. ถาตองการลด over shoot และ settling time ใหเพิ่มคา Kd 4. ถาตองการใหคา error เปน 0 ใหเพิ่มคา Ki มากกวา 0

รูปที่ 23

การจูน PID โดยใชวิธีการ Ziegler-Nichols

แนวคิดงายๆ ของวิธีน้ีคือ เราจะหาคาเกน Kp, Ki, Kd ดวยการให step

response แกระบบ แลวคํานวณจากกราฟท่ีได ซึ่งกราฟท่ีไดน้ีเกิดจากใชออส

ซิโลสโคปจบัวัดสัญญาณFeed back ในกรณีท่ีระบบตอบสนองรวดเร็ว เชน ความเร็ว

ตําแหนงแขนกล กลไกตางๆ สวนระบบชาๆ เชนอุณหภูมิความชื้น อาจตองเก็บคา

ดวย Data logger แลวนํามาพล็อตกราฟ

รูปท่ี24

ลากเสนสัมผัสกราฟใหปลายไปตัดเสนแนวนอน

วัดเวลาแตละชวงเพ่ือนําไปคํานวณคาเกนตาม

ตารางดานลาง

 

รูปที่1 

 

รูปที่2 

 

 

รูปที่3 

  

 

 

 

ปรับใหรองของแกนโวลุม

อยูในแนวระดับดังรูป 

นําหัวโวลุมาสวมเขาโดย

ใหขีดสีขาวตรงกับหัว

ลูกศรดานบน 

หลังจากสวมเสร็จแลว

ลองปลอยแกนใหตกลง

ตามธรรมชาติ น้ําหนัก

ของดานมอเตอรใบพัดจะ

หนักกวาน้ําหนักถวง

เล็กนอย ทําใหแกนตกมา

ดานขวา 

ใชมือประคองแกนแลวกด

สวมเขาไปใหแนน 

นําหัวโวลุมาสวมเขาโดย

ใหขีดสีขาวตรงกับหัว

ลูกศรดานบน 

Recommended