BÀI 5 KẾT NỐI C/C++ VỚI MAPLE/MATLAB VÀ TỐI ƯU HOÁ CHƯƠNG TRÌNH MÔ PHỎNG
Số trang: 50
Loại file: pdf
Dung lượng: 1.00 MB
Lượt xem: 13
Lượt tải: 0
Xem trước 5 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
• Việc sử dụng các hàm tính toán của Maple, Matlab hay các gói phần mềm tính toán khác trong chương trình C/C++ có rất nhiều lợi ích. Bài này sẽ giới thiệu những khả năng này. • Phần thứ hai sẽ bàn về một số cách để tối ưu hoá chương trình mô phỏng.
Kết nối C/C++ với Maple/Matlab
• Những lợi ích của việc kết nối • Kết nối với Maple • Kết nối với Matlab
Tối ưu hoá chương trình mô phỏng
• Tối ưu hoá tính toán • Tối ưu hoá mô hình hiển thị • Tối ưu hoá...
Nội dung trích xuất từ tài liệu:
BÀI 5 KẾT NỐI C/C++ VỚI MAPLE/MATLAB VÀ TỐI ƯU HOÁ CHƯƠNG TRÌNH MÔ PHỎNG BÀI 5 KẾT NỐI C/C++ VỚI MAPLE/MATLAB VÀ TỐI ƯU HOÁ CHƯƠNG TRÌNH MÔ PHỎNG 1 Tóm tắt • Việc sử dụng các hàm tính toán của Maple, Matlab hay các gói phần mềm tính toán khác trong chương trình C/C++ có rất nhiều lợi ích. Bài này sẽ giới thiệu những khả năng này. • Phần thứ hai sẽ bàn về một số cách để tối ưu hoá chương trình mô phỏng. 2 Nội dung Kết nối C/C++ với Maple/Matlab • Những lợi ích của việc kết nối • Kết nối với Maple • Kết nối với Matlab Tối ưu hoá chương trình mô phỏng • Tối ưu hoá tính toán • Tối ưu hoá mô hình hiển thị • Tối ưu hoá đồ hoạ 3 NHỮNG LỢI ÍCH CỦA VIỆC KẾT NỐI 4 Những lợi ích của việc kết nối • Các hệ chương trình tính toán như Maple, Matlab được sử dụng rộng rãi trong tính toán kỹ thuật • Các công cụ này có thư viện các hàm tính toán rất mạnh, chưa kể có rất nhiều các thư viện chương trình được viết trên các môi trường này (SpaceLib, Robotics Toolbox…) • Các hệ chương trình này đều cho phép kết nối giữa chương trình viết bằng C/C++ (hoặc Fortran, Java…) kết nối, tương tác với chúng 5 Những cách khác nhau để kết nối • Có một số kịch bản kết nối giữa C/C++ và Maple/Matlab 1. Một chương trình C/C++ độc lập (standalone) gọi các hàm tính toán của Maple/Matlab 2. Người dùng Maple/Matlab xuất đoạn mã tính toán của mình thành mã C/C++ để có thể được sử dụng trong một chương trình C/C++ độc lập 3. Người dùng Maple/Matlab gọi các hàm tính toán được viết bằng C/C++ trong một thư viện liên kết động (các file dll trong Windows) • Bài giảng này tập trung chủ yếu vào kịch bản thứ nhất: Gọi hàm Maple/Matlab trong C/C++ 6 KẾT NỐI VỚI MAPLE 7 Kết nối với Maple • Chương trình cài đặt Maple copy các tệp tin cần thiết để cho phép lập trình kết nối với một chương trình C/C++ • Các tệp tin cần thiết là \extern\include\maplec.h \bin.win\maplec.lib Trong đó là thư mục cài đặt Maple (ví dụ C:\Program Files\Maple 13). Một số ví dụ có ở thư mục \samples\OpenMaple\ • Trên Windows có thể sử dụng Visual C++ để lập trình kết nối. Khi chạy chương trình, máy tính cần có Maple cài đặt sẵn 8 Các bước kết nối với Maple: Chuẩn bị • Chuẩn bị – Để có thể sử dụng các hàm cần cho kết nối, chương trình C/C++ cần có dòng #include “maplec.h” – Và để kết nối thư viện cần thiết cần có dòng #pragma comment(lib, maplec.lib) • Chú ý: Để Visual C++ tìm được hai tệp maplec.h và maplec.lib ở trên, cần đặt các đường dẫn tương ứng vào trong môi trường phát triển – Trong Visual C++ chọn menu Tools/Options… – Trong cửa sổ hiện ra chọn Projects and Solutions, VC++ Directories – Cần thay đổi Include files và Library files 9 Các bước kết nối với Maple • Một chương trình C/C++ cần thực hiện 3 bước sau để có thể gọi hàm của Maple 1. Gọi hàm StartMaple() để khởi tạo bộ máy tính toán của Maple 2. Gọi hàm EvalMapleStatement() để thực hiện một lệnh trong Maple. Ngoài ra có thể sử dụng các hàm khác trong maplec.h 3. Gọi hàm StopMaple() sau khi kết thúc tính toán 10 Ví dụ #include ALGEB r, l; /* Maple data-structures */ #include #include maplec.h“ /* initialize Maple */ #pragma comment(lib, maplec.lib) if( (kv=StartMaple (argc,argv,&cb,NULL,NULL,err)) == NULL ) { /* callback used for directing result output */ printf(Fatal error, %s\n,err); static void M_DECL textCallBack( void *data, return( 1 ); int tag, char *output ) } { printf(%s\n,output); char s[] = int(x^2+1,x);; } printf(Evaluate an integral: %s\n\t, s); r = EvalMapleStatement (kv, s); int main( int argc, char *argv[] ) { StopMaple(kv); char err[2048]; MKernelVector kv; /* Maple kernel handle return( 0 ); */ } MCallBackVectorDesc cb = { textCallBack, 0, 0, 0, 0, 0, 0, 0 }; 11 Kết quả 12 Minh hoạ 13 KẾT NỐI VỚI MATLAB 14 Kết nối với Matlab • Chương trình cài đặt Matlab copy các tệp tin cần thiết để cho phép lập trình kết nối với một chương trình C/C++ • Các tệp tin cần thiết là \extern\include\engine.h \extern\lib\win32\microsoft\libeng.lib \extern\lib\win32\microsoft\libmx.lib Trong đó là thư mục cài đặt Matlab (ví dụ C:\Program Files\MATLAB\R2010b). Một số ví dụ lập trình có ở đây \extern\examples\ • Trên Windows có thể sử dụng Visual C++ để lập trình kết nối. Khi chạy chương trình trên một máy tính, cần cài đặt Matlab Compiler Runtime trước. Bộ cài có tại \toolbox\compiler\deploy\win32\MCRInstaller.exe 15 Các bước kết nối với Matlab: ...
Nội dung trích xuất từ tài liệu:
BÀI 5 KẾT NỐI C/C++ VỚI MAPLE/MATLAB VÀ TỐI ƯU HOÁ CHƯƠNG TRÌNH MÔ PHỎNG BÀI 5 KẾT NỐI C/C++ VỚI MAPLE/MATLAB VÀ TỐI ƯU HOÁ CHƯƠNG TRÌNH MÔ PHỎNG 1 Tóm tắt • Việc sử dụng các hàm tính toán của Maple, Matlab hay các gói phần mềm tính toán khác trong chương trình C/C++ có rất nhiều lợi ích. Bài này sẽ giới thiệu những khả năng này. • Phần thứ hai sẽ bàn về một số cách để tối ưu hoá chương trình mô phỏng. 2 Nội dung Kết nối C/C++ với Maple/Matlab • Những lợi ích của việc kết nối • Kết nối với Maple • Kết nối với Matlab Tối ưu hoá chương trình mô phỏng • Tối ưu hoá tính toán • Tối ưu hoá mô hình hiển thị • Tối ưu hoá đồ hoạ 3 NHỮNG LỢI ÍCH CỦA VIỆC KẾT NỐI 4 Những lợi ích của việc kết nối • Các hệ chương trình tính toán như Maple, Matlab được sử dụng rộng rãi trong tính toán kỹ thuật • Các công cụ này có thư viện các hàm tính toán rất mạnh, chưa kể có rất nhiều các thư viện chương trình được viết trên các môi trường này (SpaceLib, Robotics Toolbox…) • Các hệ chương trình này đều cho phép kết nối giữa chương trình viết bằng C/C++ (hoặc Fortran, Java…) kết nối, tương tác với chúng 5 Những cách khác nhau để kết nối • Có một số kịch bản kết nối giữa C/C++ và Maple/Matlab 1. Một chương trình C/C++ độc lập (standalone) gọi các hàm tính toán của Maple/Matlab 2. Người dùng Maple/Matlab xuất đoạn mã tính toán của mình thành mã C/C++ để có thể được sử dụng trong một chương trình C/C++ độc lập 3. Người dùng Maple/Matlab gọi các hàm tính toán được viết bằng C/C++ trong một thư viện liên kết động (các file dll trong Windows) • Bài giảng này tập trung chủ yếu vào kịch bản thứ nhất: Gọi hàm Maple/Matlab trong C/C++ 6 KẾT NỐI VỚI MAPLE 7 Kết nối với Maple • Chương trình cài đặt Maple copy các tệp tin cần thiết để cho phép lập trình kết nối với một chương trình C/C++ • Các tệp tin cần thiết là \extern\include\maplec.h \bin.win\maplec.lib Trong đó là thư mục cài đặt Maple (ví dụ C:\Program Files\Maple 13). Một số ví dụ có ở thư mục \samples\OpenMaple\ • Trên Windows có thể sử dụng Visual C++ để lập trình kết nối. Khi chạy chương trình, máy tính cần có Maple cài đặt sẵn 8 Các bước kết nối với Maple: Chuẩn bị • Chuẩn bị – Để có thể sử dụng các hàm cần cho kết nối, chương trình C/C++ cần có dòng #include “maplec.h” – Và để kết nối thư viện cần thiết cần có dòng #pragma comment(lib, maplec.lib) • Chú ý: Để Visual C++ tìm được hai tệp maplec.h và maplec.lib ở trên, cần đặt các đường dẫn tương ứng vào trong môi trường phát triển – Trong Visual C++ chọn menu Tools/Options… – Trong cửa sổ hiện ra chọn Projects and Solutions, VC++ Directories – Cần thay đổi Include files và Library files 9 Các bước kết nối với Maple • Một chương trình C/C++ cần thực hiện 3 bước sau để có thể gọi hàm của Maple 1. Gọi hàm StartMaple() để khởi tạo bộ máy tính toán của Maple 2. Gọi hàm EvalMapleStatement() để thực hiện một lệnh trong Maple. Ngoài ra có thể sử dụng các hàm khác trong maplec.h 3. Gọi hàm StopMaple() sau khi kết thúc tính toán 10 Ví dụ #include ALGEB r, l; /* Maple data-structures */ #include #include maplec.h“ /* initialize Maple */ #pragma comment(lib, maplec.lib) if( (kv=StartMaple (argc,argv,&cb,NULL,NULL,err)) == NULL ) { /* callback used for directing result output */ printf(Fatal error, %s\n,err); static void M_DECL textCallBack( void *data, return( 1 ); int tag, char *output ) } { printf(%s\n,output); char s[] = int(x^2+1,x);; } printf(Evaluate an integral: %s\n\t, s); r = EvalMapleStatement (kv, s); int main( int argc, char *argv[] ) { StopMaple(kv); char err[2048]; MKernelVector kv; /* Maple kernel handle return( 0 ); */ } MCallBackVectorDesc cb = { textCallBack, 0, 0, 0, 0, 0, 0, 0 }; 11 Kết quả 12 Minh hoạ 13 KẾT NỐI VỚI MATLAB 14 Kết nối với Matlab • Chương trình cài đặt Matlab copy các tệp tin cần thiết để cho phép lập trình kết nối với một chương trình C/C++ • Các tệp tin cần thiết là \extern\include\engine.h \extern\lib\win32\microsoft\libeng.lib \extern\lib\win32\microsoft\libmx.lib Trong đó là thư mục cài đặt Matlab (ví dụ C:\Program Files\MATLAB\R2010b). Một số ví dụ lập trình có ở đây \extern\examples\ • Trên Windows có thể sử dụng Visual C++ để lập trình kết nối. Khi chạy chương trình trên một máy tính, cần cài đặt Matlab Compiler Runtime trước. Bộ cài có tại \toolbox\compiler\deploy\win32\MCRInstaller.exe 15 Các bước kết nối với Matlab: ...
Tìm kiếm theo từ khóa liên quan:
cơ điện tử phương trình động học tay máy robot thiết kế robot mô hình hóa lập trình mô phỏngTài liệu có liên quan:
-
Giáo trình Vi điều khiển (Nghề: Cơ điện tử - Trình độ: Cao đẳng) - Trường Cao đẳng nghề Ninh Thuận
127 trang 328 1 0 -
103 trang 323 1 0
-
8 trang 299 0 0
-
Thiết kế, lắp ráp 57 mạch điện thông minh khuếch đại thuật toán: Phần 2
88 trang 254 0 0 -
11 trang 252 0 0
-
61 trang 236 1 0
-
PHÂN TÍCH THIẾT KẾ HỆ THỐNG THÔNG TIN
87 trang 159 0 0 -
Giáo trình Công nghệ phần mềm - Đề tài Quản lý nhà sách
79 trang 145 0 0 -
125 trang 145 2 0
-
0 trang 135 2 0