Thông báo

Collapse
No announcement yet.

Matlab - các thủ thuật nhỏ, đơn giản nhưng hiệu quả

Collapse
X
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Matlab - các thủ thuật nhỏ, đơn giản nhưng hiệu quả

    Mình mở luồng này ra với hi vọng cùng nhau trao đổi về các thủ thuật nhỏ trong Matlab và các cách để giải quyết những vấn đề trong các project về Matlab.

    Mình xin đưa ra thủ thuật đầu tiên: lấy lại số liệu trên Scope và hiển thị trên đồ thị Plot.

    Chắc hẳn các bạn làm việc với Matlab - Simulink đã làm quen với khối Scope trong thư viện Sinks, khối này khi hiển thị mô phỏng với thời gian tương đối dài thì chúng ta khó lòng thu lại được đường đặc tính của nó. Khi chụp thẳng hình này thì sẽ toàn màu đen, khi đem in làm báo cáo,.. thì rất khó nhìn. Vì vậy nên tôi làm như sau.

    Với các mô hình Simulink đó, bạn kích đúp chuột vào khối Scope.



    Hình 1:Chọn Parameter trên cửa sổ Scope.


    Hình 2: chọn tab Data history, Chọn Save data to workspace, chọn kiểu structure with time vì cần có biến time.



    Hình 3: Sau khi chạy mô phỏng xong bạn sẽ thấy cửa sổ Workspace có biến ScopeData

    Bạn gõ lệnh sau để vẽ :
    Code:
    >>figure(1);
    >>plot(ScopeData.time,ScopeData.signals.values);
    >>grid on;

    Hình 4: Cửa sổ figure 1 hiện ra, kích vào pictools trên thanh công cụ.



    Hình 5: Các công cụ hiện ra, bạn có thể xào nấu cái plot của mình theo ý muốn rùi nhé.

    Chúc các bạn thành công.
    Last edited by ngohaibac; 11-12-2006, 16:20.
    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

  • #2
    Hưởng ứng với luồng của Bắc


    theo tôi thì ta nên phát triển luồng này
    vì có nhiều thủ thuật hay trong Matlab ta nên biết
    khi đó việc mô phỏng của chúng ta nhanh hiệu quả hơn và nhanh hơn nhiều

    Comment


    • #3
      Giả sử bạn có 1 đoạn lệnh hay dùng và bạn không muốn cứ khi sử dụng lại phải đánh lại mất công vì nó chỉ mang tính chất thủ tục mà thôi
      Bạn có thể tạo cho mình 1 shortcut trên thanh shortcut Toolbar(chỉ có ở Matlab 7 trở đi)
      Khi muốn đoạn lệnh đó thực thi bạn chỉ cần click chuột lên shortcut đó
      như thế tiện hơn nhiều.

      Tạo shortcut trên thanh shortcut Toolbar
      click chuột phải lên thanh toolbar
      Chọn Shortcuts toolbars
      Trên thanh shortcut toolbar Click chuột phải chọn new shortcut
      Màn hình Shortcut Editor xuất hiện :
      Viết hàm vào phần callback
      Đặt tên vào phần label
      Chọn save
      Ví dụ như hình dưới đây
      Tại mục category bạn có thể chọn dạng Shortcut
      Tại mục icon bạn có thể chọn Icon biểu thị cho shortcut
      Để hiển thị tên shortcut bạn có thể click chuột phải vào shortcut và chọn show label
      Sau đó khi muốn xóa màn hình đánh lệnh Comman Windows ta chỉ cần click vào phần shortcut clc tương ứng
      Tương tự như thế bạn có thể viết các shortcut để callback các hàm khác mà bạn thường dùng như clear , grid ,close ,hold on …..

      Comment


      • #4
        Bạn có thể tạo nhanh 1 shortcut bằng cách đánh và chọn các lệnh trong Command History hoặc trong M-file Editor sau đó kéo các lện lên thanh shortcut toolbar
        Các lệnh do bạn chọn sẽ được tự động điền vào phần callback tương ứng

        Comment


        • #5
          To CNT: bạn scale lại cái hình cho nó nhỏ lại một tí.

          Như thế thì sẽ dễ dàng nhìn hơn bạn ạ.

          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


          • #6
            Các bạn chú ý.

            Khi cái scope của bạn có nhiều hình trong đó thì mà bạn muốn vẽ từng hình thì bạn làm như ví dụ sau. Mình có 2 hình trong một scope:

            Code:
            %% Plot speed
            figure(1);
            x = out.time;
            y = out.signals(1).values;
            plot(x,y,'k-','LineWidth',2);
            title(' Motor speed [Rad/s]','FontSize',12);
            xlabel('Time [s]','FontSize', 12);
            grid on;
            
            %% Plot torque
            figure(2);
            x = out.time;
            y = out.signals(2).values;
            plot(x,y,'k-','LineWidth',2);
            title('Amature Current [A]','FontSize',12);
            xlabel('Time [s]','FontSize', 12);
            grid on;
            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


            • #7
              Góp ý thủ thuật của NHB về cách output dữ liệu:

              Trong hình này, các bạn thấy hộp chọn dưới cùng (Format):


              Hãy chọn format là Array, thì dữ liệu xuất ra truy cập sẽ dễ dàng, không phải truy cập dạng Structure với các dấu chấm (hơi phức tạp với những ai chưa quen).

              Array xuất ra sẽ có cột đầu tiên là time, các cột sau là tín hiệu. Code để vẽ 2 hình giống như bài trên sẽ thay đổi thế này:

              %% Plot speed
              figure(1);
              plot(out(:,1),out(:,2),'k-','LineWidth',2);
              title(' Motor speed [Rad/s]','FontSize',12);
              xlabel('Time [s]','FontSize', 12);
              grid on;

              %% Plot torque
              figure(2);
              plot(out(:,1),out(:,3),'k-','LineWidth',2);
              title('Amature Current [A]','FontSize',12);
              xlabel('Time [s]','FontSize', 12);
              grid on;

              Comment


              • #8
                Chào các bác.
                Em co câu hỏi này muốn 2 đại ca giúp em với.

                Em đang tạo ra khâu điều chỉnh sử dụng PID như hình vẽ



                Em muốn tín hiệu đầu vào có dạng sau (có phải thay khâu Step không):



                giúp em nhá.
                Last edited by ngohaibac; 01-05-2009, 20:21. Lý do: vứt tag IMG thừa đi

                Comment


                • #9
                  Chào em.

                  Tất nhiên là em phải thay khâu Step bằng khâu khác rồi em. Vì khâu Step là tín hiệu bước nhảy mà.

                  Cái đồ thị đầu vào của em đó có thể tổng hợp từ thư viện Step (bước nhảy) và Ramp(tam giác), bằng cách triển khai hàm đầu vào thành các hàm 1(t) đó em. Thử nghĩ xem nhá keke.

                  Chúc em 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


                  • #10
                    hj
                    mình muốn chuyển dữ diệu từ Simulink sang guid thì làm thế nào?

                    Comment


                    • #11
                      ai co chuong trinh matlab ti share cho minh voi phien ban moi nhat

                      Comment


                      • #12
                        bai viet cua bac rat hay. em cam on nhieu vi em cung dang lam ve cai do.
                        nhung bac cho em hoi them : lam the nao de ta co the ghep hai so do cua hai scope vao 1 scope thui de tien cho viec so sanh do thi ay ma.

                        Comment


                        • #13
                          Bác Hải Bắc ơi, luồng này bác mở em rất thix vì em đang định làm khóa luận tốt nghiệp sử dung matlab để mô phỏng, bác có thể tiếp tục được không?

                          Bác share cho em tài liệu hướng dẫn được không ạ.

                          Comment


                          • #14
                            ban muon cho 2 tin hieu vao 1 scope don gian ban vao Library> chon Commonly Used Blocks> Mux sau do ban chon 2 tin hieu vao Mux dau ra cho vao scope la ok

                            Comment


                            • #15
                              các bác cho em hỏi, muốn dùng công cụ FFT (fast forier transform) trong power gui để khảo sát sóng hài dòng và áp thì làm thế nào ạ?

                              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