มาเล่าเรื่อง model-based design ให้ฟัง

programming Dec 10, 2014

ด้วยกระแส embedded system ที่ยังคงมาแรงในขณะนี้
และด้วยความที่ทำงานสายนี้ จะต้องเรียนรู้ให้มากขึ้นมากๆ
ไม่ว่าแรงงานจะน้อยจนไปถึงขาดแคลน (คนทำเป็นไม่ค่อยมีนั่นแหละ)
และงานด้านนี้สามารถทำเงินให้กับประเทศไทยได้บ้าง

เลยต้องพัฒนาตัวเองให้สู้ต่างชาติได้

อีกเรื่องที่เพิ่งได้มาศึกษาจริงๆจัง และเกี่ยวข้องกับงานด้วย
นั่นคือ model-based design

model-based design คือ การออกแบบโมเดล โดยใช้หลักการทางคณิตศาสตร์ ซึ่งแปลงสมการแล้วนำไปใช้งานได้จริง

ถ้าไปอ่านบล็อกตอนที่ไปงาน menufacturing มา จะมีช่วงนึงที่ Mr. Kenneth Koh กล่างถึงแผนภาพการออกแบบซอฟต์แวร์ในรถยนต์ ซึ่งจริงๆนั่นก็คือ model-based design โดยไม่รู้ตัวนั่นแหละ สรุปในส่วนนี้ได้ว่า ในการออกแบบสมองกลฝังตัวในรถยนต์นั้น เราออกแบบโปรแกรมตาม requirement ของลูกค้า เราจะได้ prototype compiler หรือ software จากการทำ autocode tool หรือ code generater ซึ่งการ generate code เป็น atomic จะลดเวลาการ develop ได้ถึง 50% เลยทีเดียว และนำไปรันบน simulatior ด้วย มีการตรวจสอบอยู่เสมอ จึงได้รถยนต์ที่เราใช้กันในปัจจุบัน ที่ผ่านการ coding หลายล้านบรรทัด รวมถึงอุปกรณ์อื่นๆด้วย

ใน MATLAB เอง ก็รองรับการทำ model-based design ด้วย คือมีการรัน simulink model บน simulator เพื่อ geneate ผลออกมา ไม่ว่าจะเป็น test case หรือ รันบน emulator ซึ่งทาง matlab มีวิดีโอบรรยายภาพรวมไว้ด้วย และมี workflow การทำงานดังนี้

  • design and simulation : โมเดลของเราประกอบด้วยหลายๆส่วน (component) ซึ่งมีผลต่อการ behavior ของระบบ ดังประกอบด้วย algorithm, logic, physical และภาษาที่ใช้ในการ coding ซึ่งสามารถวิเคราะห์ประสิทธิภาพของระบบในสถานการณ์ต่างๆ
  • implementation : เราสามารถ generate code แบบ auto ได้เลย เพื่อทำ prototype
  • test and verification : ตรวจสอบว่าเราได้ทำตาม requirement หรือเปล่า ซึ่งเราสามารถใช้ test harness ในการทดสอบการทำงานของโมเดลที่เราสร้างขึ้น

หลักการการทำงาน model-based design ใน MATLAB คือ สร้างโมเดล simulate โมเดล analyse โมเดล จัดการข้อมูล และนำไปใช้กับ hardware

ในไทยเอง ก็มีอุปกรณ์รองรับในการทำ model-based design คือ Fio board และ STM32 board มีการพัฒนาให้เราได้ใช้กัน หาซื้อได้ใน aimagin คะ (นอกจากจะมีของพวกนี้ขายแล้ว ยังมี tutorial ต่างๆมากมายมาให้อ่านด้วย)

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

Tags

Minseo Chayabanjonglerd

Android Developer ผู้เป็นเจ้าของบล็อก MikkiPastel ที่ชอบทำหลายๆอย่างนอกจากเขียนแอพแอนดรอยด์ เช่น เขียนบล็อก เขียนแชทบอท เรียนออนไลน์ อ่านหนังสือ วาดรูปเล่น ดู netfilx สั่งอาหารอร่อยๆกัน เป็นต้น