มาเล่าเรื่อง 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

I am a full-time Android Developer and part-time contributor with developer community and web3 world, who believe people have hard skills and soft skills to up-skill to da moon.