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

  • #31
    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.
    Technical sale at WT Microelectronics S'pore
    Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
    Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

    Comment


    • #32
      Hay quá! rất hữu ích.

      Comment


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

        Comment


        • #34
          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, 23:38.
          Truong Nghiem
          ESE Department, GRASP Lab
          School of Engineering and Applied Science
          University of Pennsylvania

          Comment


          • #35
            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.
            Technical sale at WT Microelectronics S'pore
            Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
            Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

            Comment


            • #36
              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.

              Comment


              • #37
                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,...
                Truong Nghiem
                ESE Department, GRASP Lab
                School of Engineering and Applied Science
                University of Pennsylvania

                Comment


                • #38
                  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.

                  Comment


                  • #39
                    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.

                    Comment


                    • #40
                      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.

                      Comment


                      • #41
                        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.

                        Comment


                        • #42
                          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.

                          Comment


                          • #43
                            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.
                            Technical sale at WT Microelectronics S'pore
                            Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
                            Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

                            Comment


                            • #44
                              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.
                              Technical sale at WT Microelectronics S'pore
                              Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
                              Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

                              Comment


                              • #45
                                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.

                                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