Model Based Design - ITPL VN

Model Based Design - ITPL VN

Share

Photos from Model Based Design - ITPL VN's post 12/11/2020

Bài 3: Giải phương trình bậc 2 (With MEX)
Bài code giải phương trình bậc 2 thì rất đơn giản rồi. Tuy nhiên trong bài này để tăng độ khó cho game thì mình có sử dụng MEX-files để kết nối giữa file C/C++ (ngoài ra thì còn nhiêu ngôn ngữ khác nữa như Fortran...) với Matlab, và vẫn ra kết quả như khi lập trình trong matlab (file .m bình thường)

Trong matlab, một công cụ rất quan trọng và cần phải tìm hiểu đó là MEX-files.
MEX là viết tắt của MATLAB Executable. Là một loại tệp thực thi tích hợp sẵn trong Matlab. Cái này ứng dụng trong rất nhiều thứ điển hình như làm về nhúng,...
Hiểu đơn giản thì khi bạn có một chương trình đuôi c. hoặc .cpp (C/C++), vậy để matlab thực thi chúng thì có 2 cách,
Một là viết lại theo ngôn ngữ Matlab, hoặc hai là sài MEX file để Matlab có thể đọc trực tiếp và thi hành chúng. Sự kết nối giữa C/C++ và matlab thì cần một chút tìm hiểu thêm về trình tự cách làm nhé. ^^!
Nào let's start.
1. Đầu tiên mình có 2 file .c và .h (để giải phương trình bậc 2 viết bằng ngôn ngữ C/C++)
1 file simulink để input đầu vào, output đầu ra display, và 1 khối S-function Builder. Ngoài ra có thể dùng công cụ Matlab Coder cũng ra được nhưng có lẽ cách này là đơn giản nhất.
2. Đặt S-function name (ví dụ mình đặt là: "name"), sau đó đặt các đầu vào, đầu ra (In/Out Port)
3. Build khối, cái mình cần quan tâm sau khi build khối đó là 2 file name.c (file này có khi mình build thành công ở bước 2), và một file name_wrapper.c
3. Khai báo một chút ở S-function Builder (một số chỗ như Output, Libraries) để nó nhận file .c(.cpp) và .h của mình ở bước 1.
4. Sắp xong rồi, tiếp theo là run cú pháp ở command window: mex + 3 file (2 file được build ra ở bước 3 + file C/C++ của mình nè)
5. Nó ra dòng chữ "MEX completed successfully." thì vui rồi.
6. Cuối cùng là run simulink thôi.

Goodluck! :))))
Note: Cơ bản thì là như vậy, sau này còn có rất nhiều thứ, ngôn ngữ lập trình khác kết nối với Matlab như Python, Perl, Java, ActiveX hoặc .NET...
Để đơn giản hơn mình có ví dụ về tính tổng 2 số ở bài sau.

Model-Based Design of Control Systems - Video 25/09/2020

What is model based design?

Model-Based Design of Control Systems - Video In this webinar, you’ll learn how MATLAB & Simulink are utilized in the development of an embedded control system including implementation and testing on hardware. Our demonstration will emphasize how to design, simulate and test a complex system tha

Tại sao Model Based Design (MBD)? 02/07/2020

Tại sao Model Based Design (MBD)? Lập trình MBD, Matlab/Simulink MBD

MBD là gì? Tại sao phải áp dụng MBD? 10/02/2020

MBD là gì? Tại sao phải áp dụng MBD? Lập trình Matlab

Want your school to be the top-listed School/college in Hanoi?
Click here to claim your Sponsored Listing.

Website

Address


Dịch Vọng Hậu
Hanoi

Opening Hours

Monday 08:30 - 17:30
Tuesday 08:30 - 17:30
Wednesday 08:30 - 17:30
Thursday 08:30 - 17:30
Friday 08:30 - 17:30