มาเล่าเรื่อง model-based design ให้ฟัง
ด้วยกระแส 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 ต่างๆมากมายมาให้อ่านด้วย)