Chào bạn Hai Bac,
That is a good start with the MATLAB Compiler!
MATLAB/Simulink cùng các công cụ kèm theo làm được nhiều thứ hơn chúng ta nghĩ, người ta đã từng ứng dụng trong điều khiển Mars Pathfinder và các Robots phức tạp khác.
Năm 2000 tôi có giới thiệu ứng dụng MATLAB/Simulink & ReaLOOP (sản phẩm của com.xanalog.com lúc bấy giờ) và đề xuất giải pháp để điều khiển thiết bị dựa trên kết quả thí nghiệm điều khiển tàu tôi làm ở Nhật Bản, ai quan tâm có thể tìm được bài báo sau ở VN:
Nguyen, H.D., H.T.L. Nguyen and K. Ohtsu (2000), Applications of REALoop to Measurement, Simulation and Control of a Dynamic System, Proceedings of the 4th Vietnam Conference on Automation, pp. 219-225, Hanoi, Vietnam.
H.A.
Thông báo
Collapse
No announcement yet.
Lập trình GUI trong Matlab
Collapse
This is a sticky topic.
X
X
-
Bắt đầu nhanh với trình biên dịch M-Complier
Muốn dùng được M-complier thì người dùng cần phải biết kĩ năng viết M-file.
Em đọc qua help của Matlab thì thấy phần M-complier cần nắm được các vấn đề sau và em cũng định viết theo sườn này:- Bắt đầu nhanh (quick start) với trình dich M-complier và làm thử một vài ví dụ nho nhỏ về trình biên dịch này về dịch một ứng dụng chạy độc lập, ...
- Giới hạn và sự hạn chế của trình biên dịch đối với dịch các Toolbox, các code Matlab, các ứng dụng chạy độc lập, giải quyết vấn đề hàm Callback là mất hàm, tìm hàm bị mất trong M-file,..
- Làm việc với mcc
- Các ứng dụng độc lập
- Thư viện
- Các components Com và Exel : 3 phần này sẽ giới thiệu các dịch file và các file đích được dịch có chức năng thế nào,...
Trong này nó hướng dẫn cả về dịch ra file và các chú ý với cả 2 hệ điều hành Windows và Linux. Tuy nhiên trong các bài ở đây và dưới chúng ta chỉ quan tâm đến hệ điều hành Windows (hệ điều hành thông dụng của Microsoft - bác Bill).
Đầu tiên là bắt đầu nhanh với trình biên dịch M-Complier. Phần này sẽ giới thiệu qua cú pháp của lệnh dịch của một vài ứng dụng và thành phần. Đầu tiên không đi quá sâu vào cú pháp và ý nghĩa của tham số nhiều mà nó sẽ được viết chi tiết ở nhữn bài sau đó.
1/ Dịch để tạo một ứng dụng chạy độc lập.
To create a stand-alone application from the M-file mymfunction, use the command mcc -m mymfunction.m
This creates a stand-alone executable named mymfunction.exe on Windows and mymfunction on Linux.
Để tạo một ứng dụng từ một hàm trong M-file. Ví dụ dịch một hàm trong M-file ex1.m
Code:function y = Absolute(x) if (x>0), y = x else y= -x end
Code:>> mcc -m ex1
Các bạn mở thư mục Works trong thư mục cài đặt Matlab7 ra xem sẽ thấy fil e ex1.exe trong đó. coi như là thành công bước đầu rùi.
Đi tập thể dục cái đã . tối viết tiếp.
chúc các bạn thành công.
Leave a comment:
-
Matlab Complier_1
Chào anh HA.
Em đã đọc qua tài liệu của anh gửi và thư viện Help của Matlab 7.0 của em. Em nhận thấy là công cụ Matlab Complier thật là hay.
Vì thế sau khi em đọc tài liệu và hiểu được điều gì thì sẽ viết ngay lên cho anh và mọi nguời xem và chúng ta cùng nhau trao đổi về trình dịch này.
Đầu tiên nói lại về M-Complier đã (anh HA copy tiếng Anh vào có khi nhiều bạn không hiểu hết ):
//================================================== ====================
Matlab complier có thể tạo ra các loại ứng dụng và thành phần sau:- Ứng dụng độc lập: ứng dụng có thể chạy độc lập không yêu cầu trình Matlab được cài trên máy của nguời dùng.
- Các thư viện chia sẻ C, C++ (thư viện liên kết động DLL trên Microsoft Windows). Các thư viện này có thể dùng mà không cần Matlab được cài trong máy của người dùng thư viện này.
- Excel add-ins, yêu cầu phải có MATLAB Builder for Excel
- COM objects; yêu cầu phải có MATLAB Builder for COM
Matlab Complier hỗ trợ mọi hàm của Matlab bao gồm mọi chức năng của Matlabb , bao gồm cả các đối tượng. Thêm vào đó, chúng ta không cần quan tâm đến chức năng và cách thức chuyển đổi như thế nào cả, tất cả những điều đó được thực hiện bởi trình biên dịch M-Complier.
Trên đây là một vài điều ban đầu giới thiệu về M-Complier. Vấn đề này sẽ liên tục được viết tiếp vì em còn đang bận ôn thi học kì nên nghiên cứu được gì thì sẽ post lên luôn.
Chúc mọi nguời thành công.
Leave a comment:
-
Trích:
Matlab mạnh hơn VB rất nhiều về mô phỏng lập trình GUI chỉ là phần nhỏ ứng dụng các hàm tính toán đã được lập sắn trong thư viện của nó. Nhưng bạn chẳng thể nào dịch file đó ra .exe mà chạy riêng đâu.
Bạn Hải Bắc thử nghiên cứu MATLAB Compiler xem sao. Tôi nghĩ rằng MATLAB/Simulink được phát triển từ Visual Studio (tích hợp C/C++, VB, Fortan...) do vậy mà nó có thể dùng kết hợp với các ngôn ngữ lập trình khác (có thể trong tương lai nhiều ngôn ngữ lập trình có tính tích hợp, như Visual Studio chẳng hạn). Nếu lập S-functions, chúng ta có thể lập bằng một số ngôn ngữ khác nhau như C, C++, Fortran... ngoài M-file S-functions.
What Is the MATLAB Compiler?
MATLAB Compiler Version 4 lets you automatically convert your own
MATLAB programs into self-contained applications and software components
and share them with end users. Applications and components created with
the Compiler do not require MATLAB to run. The Compiler takes MATLAB
applications (M-files, MEX-files, or other MATLAB executable code) as
input and generates redistributable, stand-alone applications or software
components. These resulting applications and components are platform
specific. The MATLAB Compiler can generate these kinds of applications or
components:
• Stand-alone applications. Stand-alone applications do not require
MATLAB at run-time; they can run even if MATLAB is not installed on
the end-user’s system.
• C and C++ shared libraries (dynamically linked libraries, or DLLs, on
MicrosoftWindows). These can be used without MATLAB on the end-user’s
system.
• Excel add-ins. Requires MATLAB Builder for Excel
• COM and .NET objects. Requires MATLAB Builder for .NET
The MATLAB Compiler supports all the functionality of MATLAB, including
objects. In addition, no special considerations are necessary for private and
method functions; they are handled by the Compiler.
....
Có thể download MATLAB Compiler User's Guide ở địa chỉ sau:
http://www.mathworks.com/access/help.../Compiler4.pdf
Tôi nghĩ MATLAB/Simulink có rất nhiều ứng dụng và có rất nhiều công cụ đi kèm:
MATLAB
MATLAB (including External Interfaces/API, GUIDE, Handle Graphics, File I/O, Notebook)
MATLAB Builder for .NET
MATLAB Builder for Excel
MATLAB Compiler
Distributed Computing Toolbox
MATLAB Distributed Computing Engine
MATLAB Report Generator
MATLAB Web Server
SimBiology
SystemTest
MATLAB Toolboxes
Bioinformatics Toolbox
Communications Toolbox
Control System Toolbox
Curve Fitting Toolbox
Data Acquisition Toolbox
Database Toolbox
Datafeed Toolbox
Excel Link
Filter Design Toolbox
Filter Design HDL Coder
Financial Toolbox
Financial Derivatives Toolbox
Fixed-Income Toolbox
Fixed-Point Toolbox
Fuzzy Logic Toolbox
GARCH Toolbox
Genetic Algorithm and Direct Search Toolbox
Image Acquisition Toolbox
Image Processing Toolbox
Instrument Control Toolbox
Mapping Toolbox
Model-Based Calibration Toolbox
Model Predictive Control Toolbox
Neural Network Toolbox
Optimization Toolbox
OPC Toolbox
Partial Differential Equation (PDE) Toolbox
RF Toolbox
Robust Control Toolbox
Signal Processing Toolbox
Spline Toolbox
Statistics Toolbox
Symbolic Math Toolbox
System Identification Toolbox
Virtual Reality Toolbox
Wavelet Toolbox
Simulink
Simulink
Embedded Target for Infineon C166® Microcontrollers
Embedded Target for Motorola HC12
Embedded Target for Motorola MPC555
Embedded Target for OSEK/VDX
Embedded Target for TI C2000 DSP
Embedded Target for TI C6000 DSP
Link for Code Composer Studio Development Tools
Link for ModelSim®
Link for TASKING
Real-Time Windows Target
Real-Time Workshop
Real-Time Workshop Embedded Coder
SimDriveline
SimEvents
SimHydraulics
SimMechanics
SimPowerSystems
Simulink Accelerator
Simulink Control Design
Simulink Fixed Point
Simulink Parameter Estimation
Simulink Report Generator
Simulink Response Optimization
Simulink Verification and Validation
Stateflow
xPC Target
xPC TargetBox
Simulink Blocksets
Aerospace Blockset
CDMA Reference Blockset
Communications Blockset
Gauges Blockset
RF Blockset
Signal Processing Blockset
Video and Image Processing Blockset
Xin xem thông tin ở địa chỉ sau:
http://www.mathworks.com/access/help...helpdesk.shtml
Ngoài hãng MathWorks, còn có nhiều hãng khác họ phát triển phần mềm & phần cứng ứng dụng trong data logging, trong điều khiển... dựa trên MATLAB/Simulink như www.xanalog.com, www.opal-rt.com, v.v...
Các bạn có thể xem hình minh họa hệ thống điều khiển máy tính hiện nay không còn đơn thuần nối bằng dây (wire) nữa mà có thể dùng wireless data communication và network (cabled LAN hoặc wireless LAN), và điều khiển (control) cũng như kiểm tra (monitoring) bằng network computers:
http://www.dieukhien.net/vn/index.ph...d=218&arid=578
Việc nối kết máy tính với đối tượng điều khiển cũng trở nên ngày càng phức tạp, phong phú và thuận tiện:
http://www.dieukhien.net/vn/index.ph...d=218&arid=579
Nếu chúng ta (ở mọi nơi trên trái đất) đều nghĩ cách chế tạo các phần mềm và phần cứng sao cho tương thích và hỗ trợ nhau (theo những tiêu chuẩn nào đó, ví dụ như chúng ta đã từng có những bộ điều khiển có tiêu chuẩn tín hiệu dòng 4mA-20mA, 0-20mA... điện áp 0-5V, -5V-+5V, -10V-+10V...) thì việc lắp đặt các thiết bị từ các nguồn khác nhau sẽ thuận tiện và có nhiều lựa chọn cho người sử dụng.
H.A.Last edited by HaiAu2005; 25-05-2006, 21:25.
Leave a comment:
-
Các bạn xem thử chương trình GUI đơn giản tôi đang phác thảo dùng GUIDE trong MATLAB (cho phép làm Menu bar và Toolbar) - chương trình này sẽ dùng để làm mô phỏng cho hệ thống điều khiển:
http://www.dieukhien.net/vn/download...uKhien_GUI.JPG
Nếu bạn nào 'lập trình định hướng vật thể' (object-oriented programming) (cả ActiveX Controls) trong Visual Studio C/C++ thì sẽ thấy lập trình GUI (dùng GUIDE hoặc bằng tay) của MATLAB rất giống, ngoài ra dùng GUIDE có một số điểm rất giống forms của VB. Do vậy có thể nói GUIDE của MATLAB có kết hợp ý tưởng lập trình của Visual C/C++, Visual Fortran và VB nhưng sử dụng cac hàm trong MATLAB (mạnh về matrix operation) cho việc tinh toán xử lý các thuật toán phức tạp thì có vẻ dễ dàng hơn.
H.A.
PS: Just a test...
A general form of state space model:
[latex]\dot{\mathbf{x}}=f(\mathbf{x},\mathbf{u},t)[/latex]
[latex]\mathbf{y}=h(\mathbf{x},\mathbf{u},t)[/latex]Last edited by HaiAu2005; 25-05-2006, 21:32.
Leave a comment:
-
Giá như bạn Hải Bắc tổng kết lại thành một loạt bài viết hướng dẫn sử dụng GUI của MATLAB (tutorials) thành mấy phần như sau thì dễ hiểu và có hệ thống hơn:
1. Cách lập chương trình GUI sử dụng GUIDE (Graphical User Interface Development Environment).
2. Cách lập chương trình GUI bằng tay (creating GUI programmatically).
3. Cách lập chương trình GUI kết hợp với Simulink model (sử dụng GUI nâng cao!)
Bạn nào mới bắt đầu sử dụng GUI thì nên vào Demos, và xem video clip sau:
(MATLAB folder)\demos\CreatingaGUIwithGUIDE_viewlet_swf.ht ml
Và đọc tài liệu ở địa chỉ (tôi nghĩ là cũng có trong online help của phiên bản MATLAB của bạn):
http://www.mathworks.com/access/help...ting_guis.html
Đọc thêm tài liệu "Nguyễn Phùng Quang (2005), MATLAB & Simulink dành cho kỹ sư điều khiển tự động, NXB Khoa học và Kỹ thuật, HN, VN" tại trang 43-62 (phần Giao diện đồ họa).
Xem các chương trình mẫu ở trong folder sau:
(MATLAB folder)\help\techdoc\creating_guis\examples
H.A.Last edited by HaiAu2005; 26-05-2006, 09:13.
Leave a comment:
-
Theo tôi biết, MATLAB/Simulink có thể giao tiếp với "thế giới thực" (real world) để nhận số liệu (data logging) và điều khiển qua các cổng như serial port, parallel port, Ethernet port, DAQ boards và cả wireless nữa. Tuy nhiên để làm được việc này thì phải có các phần mềm và phần cứng kèm theo.
H.A.
Leave a comment:
-
Nguyên văn bởi loveoflifeĐang bận thi nên trả lời vắn tắt.
Trước hết, anh học K43, không phải K44.
Em học K46 nghĩa là bây giờ chuẩn bị bảo vệ, đúng không nhỉ? Nếu vậy thì chúc may mắn
Thí nghiệm về bình mức viết bằng Matlab, dùng thêm S-function của Simulink. Phần mã mô tả dynamics của bình được viết bằng C, chỉ với 1 lý do duy nhất là để tránh không cho sinh viên đọc được code và tìm ra tham số (như khi viết bằng M file). Phần GUI hoàn toàn viết bằng M file.
Vào ra qua cổng serial của Matlab thì có sẵn trong Matlab 7 rồi. Các version khác không biết có không. Search "serial" trong help là ra cả đống, có cả hướng dẫn về cách nối dây, các tín hiệu,...
EM học DKTD2-K46, lớp anh đã chủ nhiệm trước khi đi Mỹ. A sang Penn học ngành gì? Chắc 5 năm năm nữa mới về, cũng lâu đấy! Ở bộ môn mình có anh ÁNH cũng mới đi Mỹ rồi.
ANh cho em xin nick yahoo của Anh để thỉnh thoảng hỏi anh kinh nghiệm và kiến thức. Nick của em là casablanca_o<AT>yahoo<DOT>com
À trong Matlab E dùng xPC để truyền thông, cái này bản 6.5 cũng có. Bản 7 E chưa dám làm vì máy ở bộ môn chưa cài 7.
P.S: Em nhìn anh trong ảnh trông khác lắm, mập hơn chút.Last edited by casablanca; 23-05-2006, 15:56.
Leave a comment:
-
Nguyên văn bởi casablancaAnh Nghiêm Xuân Trường này là sinh viên xuất sắc nhất K44 khoa Điện đấy (là một chuyên gia về VB, Matlab, tiếng anh...). Em học K46 anh Trường ạ, hôm trước thấy cô Minh bảo A đi Mỹ rồi. E đang cầm cuốn đồ án của A xem cách A tình bày trong đó.
Cái thí nghiệm về bình nước của A viết bằng ngôn ngữ gì thế? E đang làm phần vào ra Matlab qua cổng COM.
Trước hết, anh học K43, không phải K44.
Em học K46 nghĩa là bây giờ chuẩn bị bảo vệ, đúng không nhỉ? Nếu vậy thì chúc may mắn
Thí nghiệm về bình mức viết bằng Matlab, dùng thêm S-function của Simulink. Phần mã mô tả dynamics của bình được viết bằng C, chỉ với 1 lý do duy nhất là để tránh không cho sinh viên đọc được code và tìm ra tham số (như khi viết bằng M file). Phần GUI hoàn toàn viết bằng M file.
Vào ra qua cổng serial của Matlab thì có sẵn trong Matlab 7 rồi. Các version khác không biết có không. Search "serial" trong help là ra cả đống, có cả hướng dẫn về cách nối dây, các tín hiệu,...
Leave a comment:
-
Anh Nghiêm Xuân Trường này là sinh viên xuất sắc nhất K44 khoa Điện đấy (là một chuyên gia về VB, Matlab, tiếng anh...). Em học K46 anh Trường ạ, hôm trước thấy cô Minh bảo A đi Mỹ rồi. E đang cầm cuốn đồ án của A xem cách A tình bày trong đó.
Cái thí nghiệm về bình nước của A viết bằng ngôn ngữ gì thế? E đang làm phần vào ra Matlab qua cổng COM.
Leave a comment:
-
Do bài viết của anh k hiển thị là bài mới nên em k biết là luồng có bài viết mới.
Quả là những điều trên em không biết. Trình độ còn non kém quá.
Anh Trường học K44 cùng ngành với em. Được biết anh là cao thủ về Matlab và Simulink,.. Quả là múa rìu qua mắt thợ quá. Đắc tội quá. Xin anh bỏ qua cho.
Rất vui nếu được làm quen với anh. Và mong anh viết vài bài để box này phát triển mạnh.
Em học DKTĐ1 - K48. Chắc trình độ còn non quá hả anh? Trong thời gian tới sẽ update thêm nhiều hơn. Em sẽ xem những điều mà anh chú ý.
Mong anh đóng góp.
Chúc anh thành công.
- 1 like
Leave a comment:
-
Bạn ngohaibac viết hay và chi tiết. Good job! Có thêm một chút bổ sung thế này:
- Chương trình viết bằng Matlab có thể dịch ra file EXE được, bằng công cụ gọi là Matlab Compiler (có sẵn trong bộ cài Matlab). Xem thêm về lệnh mc. Khi chạy chương trình đã dịch này thì không cần Matlab trong máy, nhưng phải có 1 cái kiểu như Matlab library cài trong máy (chắc cũng tầm hơn chục Mb)
- Nếu không thích dịch ra EXE thì có thể tạo ra đối tượng COM từ chương trình Matlab với công cụ Matlab COM Builder. Sau đó có thể dùng nó trong VB, Excel và các công cụ phát triển nhanh (RAD) khác
- Không phải lệnh nào, toolbox nào cũng có thể dịch được ra file EXE hay COM
- Có thể viết chương trình bằng C/C++ hay Fortran, ADA, và khi cần tính toán phức tạp thì gọi thư viện tính toán của Matlab
- Nếu lập trình bằng Java thì có thể từ Java gọi thư viện tính toán của Matlab, thậm chí control cả Matlab/Simulink. Công cụ để làm việc này tôi không nhớ tên chính xác, đại loại kiểu như Matlab Java Link, or something like that (search trên Google chắc sẽ ra ngay).
- Có 1 công cụ mà tôi nghĩ khá hay là Easy Java Simulation (http://fem.um.es/Ejs/Ejs_en/index.html). Công cụ này cho phép thiết kế các Visual Simulation trên cơ sở Java, có GUI khá bắt mắt. Một tính năng hay là nó cho phép link với Simulink, do đó mình có thể tạo GUI khá đẹp cho Simulink simulation của mình mà không mất công lập trình M-file. Hồi trước khi phát triển bộ thí nghiệm điều khiển quá trình cho sinh viên ĐKTĐ BK, tôi phải lập trình GUI bằng M-file cho Simulink rất vất vả.
- Cuối cùng, với những ai thích lập trình Matlab, có 1 blog rất hay là Loren on the Art of Matlab (http://blogs.mathworks.com/loren/?ref=fp)
--
Truong NghiemLast edited by loveoflife; 08-05-2006, 23:38.
- 1 like
Leave a comment:
-
Chào bạn.
Mình hiện giờ đang rất bận. Khi nào rảnh mình sẽ cố gắng viết Tutorial về lập trình M-file và neural toolbox cho các bạn. Đầu tiên các bạn cứ tham khảo trong Help của nó và site help online của Matlab : http://www.mathworks.com/ (tại đây có những đoạn code mẫu cực hay và nhưng ứng dụng và khả năng mà mình từng nghĩ là Matlab không có khả năng đó :d)
Chúc bạn thành công.
Leave a comment:
Bài viết mới nhất
Collapse
-
bởi ngoclinh03Khi Chiếc Tivi SAMSUNG nhà bạn bị lỗi hỏng chắc chắn bạn sẽ cần một Công ty có dịch vụ sửa tivi tại nhà Uy tín mà giá lại rẻ. Tại Hải Phòng có rất nhiều địa chỉ sửa tivi nhưng không phải địa chỉ nào cũng uy tín chất lượng. Vì vậy ở bài viết này mình xin chia sẻ tới các bạn địa chỉ Công ty đang...
-
Channel: Điện tử truyền hình
hôm nay, 08:39 -
-
Comment on Đồng hồ công tơ điện tửbởi qpdt03
-
Channel: Điện tử dành cho người mới bắt đầu
23-03-2024, 17:03 -
-
Comment on Đồng hồ công tơ điện tửbởi qpdt03
-
Channel: Điện tử dành cho người mới bắt đầu
23-03-2024, 17:03 -
-
Trả lời cho Đồng hồ công tơ điện tửbởi qpdt03Hình ảnh mạch của nó đây, mình mang đồng hồ điện tử ra đo giá trị điện trở dán ghi trên lưng các con điện trở trong mạch đều đúng, mà công tơ điện tử vẫn đo sai, không biết nó hỏng chỗ nào; đã ấn nút reset lại nhưng vẫn không đc. Nhờ các bác có kinh nghiệm giúp đỡ. Thanks!
-
Channel: Điện tử dành cho người mới bắt đầu
23-03-2024, 17:03 -
-
bởi qpdt03Mình mới mua 1 cái đồng hồ công tơ điện tử trên shopee; loại hiển thị 4 thông số V,A,W và tổng số Kwh nhưng về cắm thử đc 1 hôm thì chỉ số V báo 378v, cắm về 100v cũng báo 350v có bác nào biết cách sửa chữa nó không chỉ giúp mình nhé. Xin cảm ơn mọi người đã đọc bài.
-
Channel: Điện tử dành cho người mới bắt đầu
23-03-2024, 16:46 -
-
bởi notooth1Các bạn xem giúp mình đây là tụ phân cực hay không phân cực nhé.
...-
Channel: Hướng dẫn tìm thông tin linh kiện
20-03-2024, 18:06 -
-
bởi carl22Xin chào tất cả mọi người.
Tôi hiện đang chế tạo một máy phay CNC. Máy phay được điều khiển thông qua Raspberry Pi 3 b+ và Smoothieboard v1.1 với trình điều khiển động cơ bước ACT DM 542 và động cơ 1,8° 2A.
Trục X 1,8° 3 A chạy qua trình điều khiển động cơ bước vì bảng sinh tố chỉ...-
Channel: Cơ cấu chấp hành (Actuator)
20-03-2024, 15:48 -
-
bởi ningoleChào các bác! Em là newbie về điện tử đang muốn làm một cái đèn báo cho ổ cắm nhưng chưa rành về mạch mong các bác giúp đỡ!
Nhu cầu của e là muốn làm 1 đèn báo nguồn AC 220V:
Nguồn 220v -> Phích cắm -> nối với 1 ổ cắm....-
Channel: Điện tử dành cho người mới bắt đầu
20-03-2024, 11:09 -
-
Trả lời cho có cần thiết phải lắp mạch bms cho khối pin ?bởi bao98Tất nhiên là bạn cần nó!
BMS là một phần không thể thiếu trong hệ thống ắc quy của xe điện.
nếu bạn không cài đặt BMS, có thể xảy ra vấn đề về pin, thậm chí có thể dẫn đến tai nạn-
Channel: Điện tử dành cho người mới bắt đầu
19-03-2024, 22:51 -
Leave a comment: