ดิว.นินจา

ดิว.นินจา

Thursday, May 25, 2017

แนะนำหนังสือ “ระบบควบคุมฝังตัว”

ระบบควบคุมเป็นวิชาที่มีพื้นฐานบนหลายสาขาด้านวิศวกรรมศาสตร์ โดยเฉพาะวิศวกรรมไฟฟ้าและเครื่องกล และในยุคดิจิทัลนี้หลีกเลี่ยงไม่ได้ที่จะเกี่ยวข้องกับคอมพิวเตอร์ค่อนข้างมาก ทั้งทางด้านการวิเคราะห์และออกแบบโดยซอฟต์แวร์ จนถึงการอิมพลีเมนต์บนระบบคอมพิวเตอร์เฉพาะที่มีทรัพยากรจำกัดที่เรียกว่า ระบบสมองกลฝังตัว (Embedded Systems) จึงเป็นที่มาของชื่อหนังสือ “ระบบควบคุมฝังตัว (Embedded Control Systems)” หนา 374 หน้า จัดทำโดยสำนักพิมพ์มหาวิทยาลัยเกษตรศาสตร์ โดยมีในรูปแบบ e-book และพิมพ์เป็นเล่มจำนวนจำกัด *


* จำหน่ายโดยผู้เขียน ราคาเล่มละ 350 บาท ค่าส่ง EMS 80 บาท สั่งซื้อได้ที่ ดิว.นินจา facebook page


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

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

อย่างไรก็ตาม โดยเนื้อหาที่ถูกใช้เป็นตำราด้านวิศวกรรมศาสตร์ ทำให้หลายส่วนของหนังสือต้องอ้างอิงกับหลักการและทฤษฎีทางคณิตศาสตร์และทางด้านวิศวกรรมระบบควบคุม ซึ่งในชั้นเรียนผู้สอนมีโอกาสที่จะใช้เวลาลงรายละเอียดกับพื้นฐานที่จำเป็นเพื่อให้นิสิตสามารถเข้าใจได้ถ่องแท้ แต่ในการศึกษาด้วยตนเองสำหรับผู้เริ่มต้นอาจมีอุปสรรคอยู่บ้าง โดยเฉพาะบทที่ 9 ของหนังสือที่มีเนื้อหาบางส่วนอยู่ในระดับสูงกว่าปริญญาตรี ดังนั้นบทนี้จึงเหมาะสมเฉพาะกับผู้ศึกษาระดับบัณฑิตศึกษาหรือวิศวกรที่ทำงานเกี่ยวข้องกับการอิมพลีเมนต์ระบบควบคุมขั้นสูง

จากประสบการณ์ในการสอนและเป็นที่ปรึกษา/ประธานโครงงาน ปัญหาที่ผู้เขียนได้เรียนรู้จากนิสิตและนักวิจัย 2 กลุ่ม กลุ่มแรกมีความรู้และทักษะด้านไมโครคอนโทรลเลอร์เป็นอย่างดี สามารถเขียนโปรแกรมสั่งงานฮาร์ดแวร์ส่วนต่างๆ ให้ทำงานได้ แต่ขาดความรู้ด้านระบบควบคุม ไม่ทราบว่าจะเขียนอัลกอริทึมตัวควบคุม PID หรือปรับพารามิเตอร์อย่างไรให้ได้คุณสมบัติของระบบป้อนกลับตามต้องการ กลุ่มที่สองคือเก่งทฤษฎีด้านระบบควบคุมรวมถึงการใช้ผลิตภัณฑ์ซอฟต์แวร์วิเคราะห์ ออกแบบ และจำลองผลแต่ยังไม่เข้าใจการสร้างต้นแบบไมโครคอนโทรลเลอร์เพื่อใช้ในงานที่ต้องการได้ ยังต้องพึ่งผลิตภัณฑ์ฮาร์ดแวร์และซอฟต์แวร์ราคาแพง ผู้เขียนเลยมีความคิดว่าทำอย่างไรจึงจะประสานรอยต่อระหว่างทั้งสองกลุ่มนี้ได้ซึ่งต่อมากลายเป็นแนวทางของหนังสือเล่มนี้ คือมุ่งหวังให้ให้โปรแกรมเมอร์หรือนักพัฒนาระบบฝังตัวสามารถอิมพลีเมนต์ตัวควบคุมป้อนกลับได้อย่างมั่นใจ ขณะเดียวกันวิศวกรระบบควบคุมสามารถหลุดพ้นจากการใช้ผลิตภัณฑ์สำเร็จรูป ซึ่งนอกจากราคาสูงแล้วยังอาจมีเงื่อนไขทางลิขสิทธิ์ผูกมัดผลงานวิจัย หันมาพัฒนาฮาร์ดแวร์ของตนเองและอาศัยซอฟต์แวร์แบบโอเพนซอร์สแทน

แนวทางการออกแบบฮาร์ดแวร์

ในบทที่ 2 และ 7 ของหนังสือได้กล่าวถึงการออกแบบบอร์ดควบคุมฝังตัวโดยใช้ผลิตภัณฑ์ไมโครคอนโทรลเลอร์ของบริษัท Microchip ตัวอย่างในรูปที่ 1 คือบอร์ดควบคุมที่สร้างขึ้นโดยบัดกรีไมโครคอนโทรลเลอร์อุปกรณ์ลงบนแผ่น PCB อเนกประสงค์ ผู้เขียนได้ใช้ต้นแบบนี้ในตัวอย่างการอิมพลิเมนต์ตัวควบคุมในหนังสือ ซึ่งสามารถทำงานได้ถูกต้องตามต้องการทุกอย่างถึงแม้ว่าจะดูไม่สวยงาม การสร้างวงจรในลักษณะนี้มีความเหมาะสมในช่วงเริ่มต้นของการพัฒนาเพื่อทดสอบ

รูปที่ 1 ต้นแบบของบอร์ดควบคุมขั้นต้น

การพัฒนาซอฟต์แวร์บนบอร์ดจะอาศัยเครื่องมือ MPLAB X และคอมไพเลอร์ XC16 ที่มีเวอร์ชันดาวน์โหลดฟรีจากเว็บไซต์ของ Microchip อุปกรณ์ที่ต้องซื้อหามีเพียงตัวโหลดโปรแกรม ซึ่งผู้เขียนแนะนำ PICkit3 ที่มีขนาดเล็กและราคาไม่แพง รูปที่ 2 แสดงการใช้โน้ตบุกที่ติดตั้ง MPLABX + XC16 ในการพัฒนาและโหลดโปรแกรมลงบนบอร์ดผ่าน PICkit3

รูปที่ 2 เครื่องมือและอุปกรณ์ในการพัฒนาระบบควบคุมฝังตัว

ต่อมาเมื่อมีความมั่นใจว่าทุกส่วนของฮาร์ดแวร์ทำงานได้ดี จึงลงทุนออกแบบ PCB เพื่อให้ได้บอร์ดที่สวยงามและน่าเชื่อถือมากขึ้น ดังในรูปที่ 3 ซึ่งสามารถจะลดขนาดของอุปกรณ์ให้เล็กลงและเป็นแบบ SMT ได้หากต้องการ รายละเอียดการออกแบบแผ่นวงจรพิมพ์มิได้รวมอยู่ในหนังสือเล่มนี้ ผู้สนใจสามารถอ่านได้จากหนังสือ “ออกแบบวงจรพิมพ์โดยซอฟต์แวร์ Eagle”

รูปที่ 3 ต้นแบบบอร์ดควบคุมบน PCB ที่ออกแบบเฉพาะ

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

รูปที่ 4 ชุดควบคุมดีซีมอเตอร์อย่างง่าย

เหตุผลในการเลือกใช้ PIC24EP

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

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

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

สำหรับตระกูล PIC24EP ที่เลือกใช้นี้มีข้อดีคือ เป็นไมโครคอนโทรลเลอร์ 16-bit มีสมรรถนะสูง ทำงานที่ 70 MIPS ใช้งานง่าย และมีรุ่นที่เป็นแบบ DIP ทำให้สามารถสร้างวงจรบน PCB อเนกประสงค์ได้ รุ่นที่มี flash 256 MB ราคาไม่เกิน 200 บาท และถ้าใช้รุ่น MC (Motor Control) จะมีโมดุล QEI (Quadrature Encoder Interface) ในตัว ทำให้สามารถรับสัญญาณจากเอนโคเดอร์ของมอเตอร์และแปลงเป็นค่าตำแหน่งหรือความเร็วได้โดยฮาร์ดแวร์

สำหรับผู้ที่ต้องการสมรรถนะสูงกว่านี้อาจเลือกใช้ตระกูล 32 บิต เช่น PIC32 หรือ ARM แต่ข้อเสียคืออาจไม่มีโมดูล QEI และต้นทุนอาจสูงขึ้น

Scilab ทางเลือกใหม่ของซอฟต์แวร์ระบบควบคุม

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

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

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

ในหนังสือระบบควบคุมฝังตัว ส่วนของการวิเคราะห์ ออกแบบ/สังเคราะห์ และจำลองการทำงานทั้งหมด จะอาศัย Scilab (และตัวจำลอง Xcos ที่ถูกติดตั้งพร้อมกันในแพคเกจ) ในบทความแนะนำนี้จะยกตัวอย่างการจำลองในตัวอย่าง 5.3 บทที่ 5 ที่แสดงผลจากการอิ่มตัวในวงป้อนกลับ ทำให้เกิดปรากฏการณ์ที่เรียกว่า windup

หากท่านต้องการทดลองให้เห็นผลลัพธ์จริง ให้ดาวน์โหลดและติดตั้ง Scilab จาก www.scilab.org หลังจากนั้นดาวน์โหลดไฟล์ pid_ilim.zcos และคลิกเปิดไฟล์ จะเห็นโมเดลดังแสดงในรูปที่ 5 ซึ่งการสร้างโมเดลใน Xcos ทำได้ไม่ยาก เพียงแต่ลากบล็อกที่ต้องการจากหน้าต่าง palette และเชื่อมต่อสัญญาณเข้าด้วยกัน คลิกที่ปุ่ม run จะได้ผลการจำลองดังในรูปที่ 6 โดยเปรียบเทียบผลตอบสนองระหว่างระบบป้อนกลับ PID ปกติ (สีเขียว) กับกรณีที่มีการอิ่มตัวระหว่างตัวควบคุมกับพลานต์ (สีแดง) ซึ่งจะเห็นได้ว่าเมื่อมีการอิ่มตัวจะทำให้ผลตอบสนองเลวร้ายลงกว่าปกติอย่างเห็นได้ชัด

ปัญหาการสะสมค่าในตัวอินทิกรัล (integrator windup) นี้เป็นปรากฏการณ์ปกติในตัวควบคุม PID ทำให้ตัวควบคุมที่ใช้ในงานอุตสาหกรรมจริงมีฟังก์ชันสำหรับต่อต้าน เรียกว่า anti-windup ในหนังสือนี้นอกจากจะจำลองดูผลตอบสนองแล้ว เราจะได้เรียนรู้การอิมพลิเมนต์ส่วน anti-windup ในตัวควบคุม PID ที่ดาวน์โหลดลงบนบอร์ดควบคุมฝังตัวด้วย

รูปที่ 5 โมเดล pid_ilim.zcosแสดงผลจากการอิ่มตัวในวงป้อนกลับ
รูปที่ 6 ผลการจำลองจากโมเดล pid_ilim.zcos

สรุปลักษณะเด่นของหนังสือ “ระบบควบคุมฝังตัว” ได้ดังนี้

  • เลือกใช้อุปกรณ์ฮาร์ดแวร์ที่สามารถหาได้ในประเทศไทย ผู้พัฒนาสามารถสร้างได้โดยใช้ต้นทุนต่ำ โดยได้สร้างวงจร ประกอบ และทดสอบจริงเพื่อมั่นใจว่าสามารถทำงานได้
  • ในการวิเคราะห์ ออกแบบ จำลอง ระบบควบคุม ใช้ซอฟต์แวร์ Scilab ซึ่งเป็นแบบโอเพนซอร์ส สามารถดาวน์โหลดมาใช้ได้ฟรี และมีคุณสมบัติดีเพียงพอที่จะใช้ในงานจริง
  • ไฟล์ต่างๆ เช่นสคริป และโมเดลสำหรับจำลอง สามารถดาวน์โหลดได้จากเว็บประกอบหนังสือ
  • นำเสนอแนวทาง ฮาร์ดแวร์ในวง (hardware-in-the-loop) ที่กำลังได้รับความนิยมในปัจจุบัน โดยสามารถจำลองการทำงานของอุปกรณ์จริงโดยอัลกอริทึมที่ทำงานบนระบบฝังตัว ทำให้การพัฒนาต้นแบบรวดเร็วขึ้นและลดความเสี่ยงจากความเสียหายในช่วงเริ่มต้นที่ระบบควบคุมยังไม่เสถียรหรืออาจมีความผิดพลาดอยู่
  • มีเนื้อหาโดยละเอียดเกี่ยวกับตัวควบคุม PID ซึ่งปัจจุบันยังใช้ในงานอุตสาหกรรมมากว่า 90% โดยอธิบายตั้งแต่โครงสร้างพื้นฐาน การปรับแต่ง ฟังก์ชันเสริมเช่นการแก้ไขการสะสมค่า (anti-windup) การปรับแต่งอัตโนมัติ จนถึงการอิมพลิเมนต์บนระบบฝังตัว
  • นอกจาก PID แล้วยังได้กล่าวถึงการอิมพลิเมนต์ตัวควบคุมเชิงเส้นทั่วไปในรูปฟังก์ชันถ่ายโอน
  • อธิบายการพัฒนาระบบปฏิบัติการเวลาจริงอย่างง่ายขึ้นเอง ประกอบด้วยอัลกอริทึมควบคุมที่เป็นฟังก์ชันไทเมอร์ และส่วนรับคำสั่งและส่งข้อมูลไปยังโฮสต์คอมพิวเตอร์ สามารถเพิ่มเติมคำสั่งใหม่ที่ต้องการได้โดยง่าย
  • แนะนำการสังเคราะห์ตัวควบคุมขั้นสูง ซึ่งมีความเป็นระบบและมีขั้นตอนที่ไม่ยากเมื่ออาศัยคำสั่งบน Scilab

ในส่วนท้ายของบทความนี้เป็นรูปจากบางหน้าของหนังสือ ถ่ายโดยใช้กล้องจากโทรศัพท์เลยอาจไม่ชัดเจนเท่าที่ควร ท่านสามารถดูข้อมูลเพิ่มเติมและดาวน์โหลดซอฟต์แวร์ได้จากพจของหนังสือนี้ ที่ http://dewninjathai.blogspot.com/p/ecs.html

No comments:

Post a Comment

แนะนำหนังสือ “ตัวควบคุมป้อนกลับบนอินเทอร์เน็ตโดย ESP8266”

ปัจจุบันเมื่อกล่าวถึงอุปกรณ์ IoT (Internet of Things) คงมีน้อยคนที่จะไม่รู้จัก ในยุคที่การเข้าถึงอินเทอร์เน็ตเป็นกิจวัตรประจำวันของมนุษย์เ...