Thông báo

Collapse
No announcement yet.

Lập trình GUI trong Matlab

Collapse
This is a sticky topic.
X
X
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • sphinx
    replied
    Bản MATLAB 6.5 nhà tớ không chạy được lệnh mcc -m, thông báo lỗi ở lệnh mbuild. nhưng lệnh mcc -B sgl thì chạy tốt. Dịch được ra file .exe, và tớ cũng đã cho nó chạy được trên một máy tính không cài MATLAB .

    Đáng tiếc là MATLAB add-in trong Visual C++ không chạy được, toàn báo lỗi, thế mới đau chứ! Các sếp có biết tại sao không???

    Leave a comment:


  • HaiAu2005
    replied
    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.

    Leave a comment:


  • ngohaibac
    replied
    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
    Sau đó trong cửa sổ command dùng lệnh sau:
    Code:
    >> mcc -m ex1
    Mặc dù nó có thông báo Warning nhưng kệ nó các bạn ạ. mục đích ở đây chúng ta chỉ quan tâm đến là dịch được ra file .exe còn chi tiết chúng ta sẽ xem xét sau. Tại sao lại có thông báo ,...

    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:


  • ngohaibac
    replied
    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:


  • HaiAu2005
    replied
    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, 20:25.

    Leave a comment:


  • HaiAu2005
    replied
    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, 20:32.

    Leave a comment:


  • HaiAu2005
    replied
    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, 08:13.

    Leave a comment:


  • HaiAu2005
    replied
    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:


  • casablanca
    replied
    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, 14:56.

    Leave a comment:


  • loveoflife
    replied
    Nguyên văn bởi casablanca
    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.
    Đ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,...

    Leave a comment:


  • casablanca
    replied
    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:


  • ngohaibac
    replied
    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.

    Leave a comment:


  • loveoflife
    replied
    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 Nghiem
    Last edited by loveoflife; 08-05-2006, 22:38.

    Leave a comment:


  • bangbang
    replied
    sao bác ngohaibac rành về món này thế, bác học lâu chưa vậy

    Leave a comment:


  • opendoor2507
    replied
    Hay quá! rất hữu ích.

    Leave a comment:

Về tác giả

Collapse

ngohaibac Tìm hiểu thêm về ngohaibac

Bài viết mới nhất

Collapse

Đang tải...
X