• <pre id="60h6n"></pre>
  • <td id="60h6n"><option id="60h6n"></option></td>

      <acronym id="60h6n"></acronym>
      <tr id="60h6n"><s id="60h6n"></s></tr>
      當前位置:首頁 > 新聞資訊 >

      LabVIEW 下開發應用Matlab算法

      時間:2020-06-30 12:44

      LabVIEW 下開發應用Matlab算法

      目     錄

      LabVIEW 下開發應用Matlab算法.................................................................................... 1
      目     錄........................................................................................................................ 1
      概述................................................................................................................................. 2
      LabVIEW MathScript 入門................................................................................................ 2
      NI LabVIEW Mathscript 介紹.............................................................................. 2
      利用MathScript 進行開發.................................................................................. 3
      利用MathScript 交互式窗口............................................................................... 3
      使用MathScript 節點......................................................................................... 3
      儀器化您的算法................................................................................................. 4
      圖形化信號處理、分析與數學............................................................................ 5
      使用測量硬件..................................................................................................... 5
      集成軟件組件..................................................................................................... 6
      總結................................................................................................................... 6
      LabVIEW MathScript 節點................................................................................................ 6
      概述................................................................................................................... 6
      LabVIEW MathScript 節點.................................................................................. 7
      LabVIEW 與圖形化編程介紹............................................................................. 7
      在算法開發與原型化中使用MathScript 節點...................................................... 9
      MathScript 交互式窗口................................................................................................... 11
      概述................................................................................................................. 11
      LabVIEW MathScript 窗口................................................................................ 11
      綜合實驗........................................................................................................................ 13
      概述................................................................................................................. 13
      平臺搭建.......................................................................................................... 13
      綜合實驗.......................................................................................................... 13
      1.調用Matlab 腳本節點................................................................................. 13
      2.  RS-485網絡型采集卡綜合演示程序............................................................ 14
      3.  Matlab模擬AD、DA數據采集演示程序..................................................... 15
      4.  神經網絡算法演示程序............................................................................... 15
      5.  Lorenz Diff Eq.算法演示程序...................................................................... 16
      6.  Fractal算法演示程序.................................................................................. 16
      7.  PID及模糊控制算法演示程序..................................................................... 17
      8.  使用Matlab 腳本控制硬件演示程序........................................................... 18
       
       
       
       

      概述

      LabVIEW具有廣泛的硬件支持,而matlab在智能算法、信號處理等領域具有先進的前沿性的算法,通過MathScript可以將二者的優點結合起來而屏蔽了其缺點:LabVIEW對前沿的先進算法支持不足,Matlab支持的硬件相對較少,軟件界面開發等相對困難。
      利用MathScript,您可以將直觀的LabVIEW 圖形化編程和Matlab 結合起來。MathScript 是基于文本、面向數學的編程語言,它利用了m 文件腳本語法,包括用于數學、信號處理和分析的600 多個常用函數。通過它可以將Matlab的算法直接嵌入在labview開發的程序之中。

      LabVIEW MathScript 入門

      NI LabVIEW Mathscript 介紹

      LabVIEW MathScript 為LabVIEW 增加了面向數學的文本化編程方式。您在使用LabVIEW 開發軟件時,可用MathScript 結合圖形化編程作為另一種方法來定制軟件。使用LabVIEW 開發,您可以選擇文本化實現、圖形化實現或者兩者結合。無論您在開發算法、研究處理信號理論或分析結果,都可以為技術性計算選擇最有效的語法。正如我們在本文中闡述的,LabVIEW 和MathScript 的重要意義在于它們在兩個領域的優勢和便利。
      MathScript 的核心是高級文本化編程語言,具有對信號處理、分析和數學計算相關任務的復雜性進行抽象化的語法和功能(表1)。MathScript 包含用于上述工作的600 多種內置函數,您也可以自行開發新的用戶定義函數。

      表1 :MathScript 的特性使它成為對于信號處理、分析和數學非常有用的文本化語言。
      MathScript 通常兼容m 文件的腳本語法,這種語法被另一種技術計算軟件如MathWorks 公司MATLAB®和其它軟件廣泛采用。這種兼容性使您可以利用很多先前開發的m 文件腳本,例如在工程教科書或網站上發布的開源m 文件腳本。

      利用MathScript 進行開發

      您可以通過交互式或程序化界面來使用LabVIEW MathScript。對于交互式界面,您可以加載、保存、設計和執行m 文件腳本,從而利用MathScript 交互式窗口工作。為了把m 文件腳本部署為LabVIEW 程序的一部分以及結合圖形化和文本化編程,您可以使用MathScript 節點。

      利用MathScript 交互式窗口

      LabVIEW MathScript 窗口(如圖1 所示)提供了一個交互式界面,通過它您可以輸入m 文件腳本命令并能立即看到運行結果、觀察變量和命令歷史。窗口包括一個命令行界面,您可以逐句輸入命令來快速計算、調試腳本或學習。作為選擇,您也可以通過腳本編譯窗口來輸入和執行多組命令。

      圖1 MathScript 窗口提供了交互式界面,可以輸入/執行命令并立即看到結果
      在您工作時,變量顯示窗口會不斷更新來顯示圖形/文本結果以及一個歷史命令窗口。這個歷史命令窗口可以讓您使用剪貼板來重新使用您以前執行的命令從而加快算法的開發。

      使用MathScript 節點

      MathScript 節點在LabVIEW 中提供了直觀的方式來結合圖形化和文本代碼。圖2 顯示了在程序框圖中的MathScript 節點,由藍色矩形框表示。利用MathScript 節點,您可以直接輸入m 文件腳本語言或從文本文件中導入。

      圖2 利用MathScript 節點,您可以輕松地集成文本化數學命令和圖形化編程
      您可以在MathScript 節點的邊界定義、命名輸入和輸出,來指定圖形化LabVIEW 程序和文本化MathScript 節點之間傳輸的數據。圖2 顯示了在MathScript 節點左側的輸入變量:fstoplow,fpasslow 和taps,是m 文件腳本的輸入參數。該MathScript 節點還包含了輸出變量F 和sH,把基于數組的結果傳送到LabVIEW 圖形化節點中。
      通過連接節點的輸入和輸出,您可以把m 文件腳本變量和LabVIEW 圖形化編程相結合。然后您就能在圖形化LabVIEW 程序和m 文件腳本之間傳遞數據?,F在這種文本化.m 文件腳本可以訪問來自傳統LabVIEW 圖形化編程的特性。

      儀器化您的算法

      利用MathScript 節點工作的一個優勢是您可以使用內置強大的LabVIEW 工具來定制交互式用戶界面,從而輕松地“儀器化您的算法”。如圖3 所示,您可以把文本化m 文件腳本代碼變量與LabVIEW 輸入控件和顯示控件相結合,如旋鈕、滑塊、按鈕以及2D/3D 圖,從而開發出使用m 文件腳本算法的定制交互式用戶界面。您可以把MathScript 節點與LabVIEW 內置的上百種現成的用戶界面組件相連,包括波形圖、波形圖標、旋鈕、轉盤和溫度計,從而為您的m 文件腳本定制用戶界面。

      圖3 您可以利用LabVIEW 中內置的用戶界面組件來儀器化您的m 文件腳本

      圖形化信號處理、分析與數學

      利用MathScript 節點在LabVIEW 圖形化代碼中揑入.m 文件腳本使您能訪問大量的圖形化工具庫,從而進行信號處理、分析和數學計算。LabVIEW 具有600 多種圖形化虛擬儀器,其功能涵蓋的領域有:
      ??信號處理:信號生成、信號調理、監測、數字濾波、窗口和頻譜分析
      ??數學:變換、曲線擬合、內揑/外推、概率/統計、最優化、常微分方程、幾何、多項式函數、1D/2D 估計和微積分。

      使用測量硬件

      使用MathScript 節點結合文本化和圖形化編程的另一個優勢是簡化了數據采集、信號生成和儀器控制。在MathScript 節點中執行M 文件腳本可以使用硬件的控制功能,這個功能是LabVIEW 開發環境的基本部分。圖形化環境能很自然地管理連續數據采集操作并為開發人員節省了寶貴的時間。
      LabVIEW 為集成測量硬件設定了標準,它提供:
      ??超過100 種揑入式數據采集設備
      ??超過5,000 種來自200 多個廠商的獨立儀器
      ??超過1,000 種來自65 個廠商的基于PXI 的模塊化設備
      ??支持來自超過15 個第三方即揑即用傳感器廠商的10,000 多種傳感器
      ??超過1,000 種的運動臺和驅動
      ??超過400 種的工業和科學級攝像機

      集成軟件組件

      您可以利用MathScript 節點的優點來連通.m 文件腳本和外部軟件或數據。LabVIEW 作為在各應用領域廣泛使用的開發平臺,提供了大量的軟件集成工具、函數庫和文件格式,從而和多種不同的設計和仿真工具相連。LabVIEW 還提供了各種軟件標準的連接方式以便集成其它工具和軟件包或者如下測量資源:
      ??DLLs,共享庫
      ??ActiveX, COM 和 .NET (Microsoft)
      ??DDE, TCP/IP, UDP, 以太網,藍牙
      ??CAN, DeviceNet, ModBus, OPC
      ??USB, IEEE 1394 (FireWire), RS232/485, GPIB
      ??數據庫 (ADO, SQL 等)
      使用基于互聯網的進程面板和進程學習工具MathScript 節點的其它可選連接可超越本地的軟件或硬件。.M 文件腳本可以利用如進程面板這樣的LabVIEW 特性來使用基于網絡的進程控制對象——不需要額外的編程。您只需點擊兩次鼠標,就可以在標準的網絡瀏覽器中嵌入您定制的LabVIEW 用戶界面。用戶無需安裝LabVIEW 就能通過標準的網絡瀏覽器來進程控制您的程序。該特性對于進程實驗學習特別重要,利用在線演示,教授們可以增強講課的生動性,學生們在課后可訪問實驗室,并且科研人員能共享昂貴的設備并進行研究合作。

      總結

      LabVIEW MathScript 在如算法開發、信號處理和分析等任務方面完善補充了傳統的LabVIEW 圖形化編程。LabVIEW MathScript 為用戶提供單一的開發環境,在這一環境中,用戶可以選擇最佳的語法,無論是文本化、圖形化還是兩者的結合,從而使用戶能加快完成任務。此外,由于MathScript 通常兼容m 文件腳本語法,您可以充分利用LabVIEW 的優勢以及來自網上、教科書公開的m 文件腳本或您已有的m 文件腳本。6

      LabVIEW MathScript 節點

      概述
      這一個系列的文章提供了豐富的練習讓您熟悉LabVIEW MathScript 。本文提供了使用LabVIEWMathScript 節點一步一步開發算法的范例。本系列的下一篇文章將研究交互式LabVIEW MathScript 窗口。MathScript 含義無論您是要開發算法、研究信號處理理論還是分析結果,利用LabVIEW 您可以選擇最有效的技術計算語法。您可以結合LabVIEW 圖形化編程方式和LabVIEW MathScript ,它是面向數學的文本化編程語言,兼容廣泛使用的m 文件腳本語法。
      LabVIEW MathScript 節點
      您可以通過兩種接口來使用LabVIEW MathScript——LabVIEW MathScript 交互式窗口和MathScript 節點。參考本系列文章的第二篇來了解有關LabVIEW MathScript 的更多信息。利用LabVIEW MathScript 節點——下圖中的藍色矩形區域,您可以在LabVIEW 圖形化程序中(虛擬儀器——VI)中運行m 文件語法腳本。您可以使用MathScript 節點在VI 中揑入文本化算法,然后在LabVIEW 環境中通過增加旋鈕、滑塊、按鈕、圖形和其它用戶控制件和顯示件來儀器化您的腳本。

      LabVIEW 與圖形化編程介紹
      LabVIEW 是用于工程和科學應用的圖形化開發平臺,比如設計、控制和測試等。在LabVIEW 中,您可以利用輸入控件和顯示控件來建立用戶界面——前面板。輸入控件包括旋鈕、按鈕、撥盤、文本輸入域和其它輸入對象。顯示控件包括圖形、數碼顯示、LED 和其它輸出顯示。在您建立好用戶界面后,您可以增加代碼來控制前面板對象。程序框圖包含了這種代碼。

      完成下列步驟,建立一個VI 的前面板和程序框圖

      1. 打開LabVIEW
      2. 在LabVIEW Getting Started 窗口中選擇File»New VI,或者點擊Blank VI 來建立一個新VI。
      3. 在VI 的前面板上,選擇View»Controls Palette 來顯示控件選板。
      4. 在Modern 模板的圖標上移動光標定位到Numeric 選板上。當您在Controls 選板的圖標上移動光標,圖標下的提示條上會顯示子選板、輸入控件或顯示控件的名稱。
      5. 點擊Numeric 圖標以顯示Numeric 選板
      6. 在Numeric 選板的圖標上移動光標到Vertical Pointer Slide(垂直指針條)上。
      7.點擊Vertical Pointer Slide 圖標并拖放到前面板上。

      雙擊Vertical Pointer Slide 的Slide 標簽。在出現的文本框中鍵入Amplitude(幅值)。
      8. 在Controls 選板上點擊Modern 鏈接返回到Modern 頂層模板。在Modern 模板的圖標上移動光標定位到Graph 選板上。
      9.點擊Graph 圖標顯示Graph 選板。
      10. 在Graph 選板的圖標上移動光標定位到Waveform Graph。點擊Waveform Graph 圖標并拖放到前面板上。
      11. 選擇Window»Show Block Diagram 來顯示VI 的程序框圖。建立程序框圖和建立前面板類似。當您把操作對象放置在前面板上時,LabVIEW 會在程序框圖中為這些對象建立連線端子。您可以連接數據出入程序框圖中的端子,從而在程序的用戶界面上顯示數據或者在程序中使用用戶輸入值。
      12. 在程序框圖上找到Amplitude 和Waveform Graph 端子。
      13.選擇File»Save As 來保存VI。

      在算法開發與原型化中使用MathScript 節點

      您可以使用MathScript 節點在LabVIEW 中進行Matlab算法編程開發和原型化算法。步驟如下:
      1. 在程序框圖上,右鍵點擊。
      2. 選擇 函數》數學》腳本與公式》Matlab腳本。

      3. 移動光標定位到Matlab腳本選板上。。
      4. 選板上移動光標定位到Matlab腳本上。
      5. 點擊Matlab腳本 圖標。
      6.在程序框圖上,點擊并拖放鼠標畫出矩形框來放置Matlab腳本節點。
      7.在Matlab腳本內部點擊并輸入下列命令。
      x = linspace(0, 2*pi, 30);
      b = A*sin(x)
      注意x = linspace(0, 2*pi, 30);命令生成一個新的x 變量并在0 到2*pi 內均勻取30 個值來填入變量。(可選)您也可以右擊MathScript 節點并從快捷菜單中選擇Import 來輸入您所建立的m 文件腳本。
      8. 右擊Matlab腳本節點框并從快捷菜單中選擇Add Input。
      9. 在輸入端子中鍵入A,為腳本的A 變量提供輸入。
      10.右擊Matlab腳本 節點框并從快捷菜單中選擇Add Output。
      11. 在輸出端子中鍵入b,為腳本中的b 變量提供輸出。
      12. 右擊b 輸出端子并從快捷菜單中選擇Choose Data Type»1D-Array»DBL 1D 來指定b 輸出變量的數據類型。
      13. 把光標移動到Amplitude 端子的箭頭上。光標變成了線軸或連線工具。利用連線工具把程序框圖上的對象連接起來。
      14. 當連線工具出現時,點擊Amplitude 端子的箭頭,然后再點擊Matlab腳本節點的A 輸入來連接兩個對象。數據將順著這條連線從Amplitude 端子流向Matlab腳本節點。
      15.類似地,連接b 輸出到Waveform Graph 端子?,F在您可以從腳本中獲取合適的數據并利用LabVIEW 豐富的用戶界面功能來可視化地分析結果。程序框圖應如下所示:
      16.選擇Window»Show Front Panel 來顯示VI 的前面板。
      17.把Amplitude 控件的滑塊拖放到大約3 的位置。
      18. 點擊前面板頂端的Run 按鈕或白色箭頭。注意波形圖形更新為正弦波。
      19.拖拉Amplitude 控件的滑塊到不同的值并再次運行VI。注意波形會相應地更新。
      20.(可選)點擊前面板頂端的Run Continuously 按鈕或循環箭頭。注意:每次當您改變Amplitude 控件的值時波形圖也會更新。
      21.選擇File»Save 來保存VI。

      您可以通過交互式選板、對話框和菜單來操作這些LabVIEW 工具。LabVIEW 也提供了上百種VI,讓您在所建立的程序中使用它們。拖放這些VI 到程序框圖中可以定義您所寫程序的功能。這種點擊方式能大大地減少從程序最初建立到最終解決方案所需的時間。

      MathScript 交互式窗口

      概述

      本節講述了一個使用LabVIEW MathScript節點的示例。

      LabVIEW MathScript 窗口

      您可以利用兩種接口來使用LabVIEW MathScript——LabVIEW MathScript 交互式窗口和MathScript 節點。參考本系列文章的第一篇來了解有關LabVIEW MathScript 節點的更多信息。您可以使用交互式MathScript 窗口來一次性輸入命令,如下圖所示。您也可以在簡單的文本編輯窗口中輸入批量腳本,從文本文件加載腳本或從獨立的文本編輯器中輸入。MathScript 窗口具有多種形式的回饋信息,如圖形和文本。
      1.  在程序框圖上,右鍵點擊。
      2. 選擇 函數》數學》腳本與公式》Matlab腳本。
      3. 在程序框圖上,點擊并拖放鼠標畫出矩形框來放置Matlab腳本節點。
      4. 點擊Script 標簽來輸入下列命令
      x=linspace(0,2*pi, 30);
      b=sin(x)./(cos(x));
      plot (x,b);axis([0 2*pi -20 20]);
      注意x = linspace(0, 2*pi, 30);命令生成一個新的x 變量并在0 到2*pi 內均勻取30 個值來填入變量。
      5. 在Script 頁面上點擊Run 按鈕,將出現Plot 1 窗口并顯示x 相對于b 的XY 曲線。您可以通過點擊Plot 1 窗口的右上角的x 來關閉窗口。
      6. 點擊Variables 標簽來顯示您所建立的變量,如x 和b
      7. 在Partition/Variable 樹形條中選擇b,將出現一個代表數值的表。選中Graphical First?復選框,您將首先看到變量值的圖形顯示,而不是缺省的數值顯示。
      8. 點擊Script 標簽并點擊 Load 按鈕。選擇Mitra P2_1.m。該腳本生成一個測試信號并在該信號上應用滑動平均濾波器。
      9. 點擊Run 按鈕來運行該腳本,將出現Prompt User for Input 對話框。在Desired length ofthe filter=文本框中輸入正值并點擊OK 按鈕。MathScript 腳本可以包含交互式對話框來提
      示用戶輸入。
      10. 下方顯示的Mitra P2_1.m 腳本,通過子繪圖命令,指定繪圖窗口(Plot window)內4 幅子圖(sub-plot)中的一幅。用戶指定子圖(sub-plot)后,后續命令隨即影響該子圖(sub-plot)。
      例如,當子繪圖命令結束后,繪圖命令可將其本身指定的繪圖裝入先前由子繪圖命令指定
      的子圖(sub-plot)。
      % Program P2_1
      % Simulation of an M-point Moving Average Filter
      % Generate the input signal
      n = 0:100;
      s1 = cos(2*pi*0.05*n); % A low-frequency sinusoid
      s2 = cos(2*pi*0.47*n); % A high frequency sinusoid
      x = s1+s2;
      % Implementation of the moving average filter
      M = input('Desired length of the filter = ');
      num = ones(1,M);
      y = filter(num,1,x)/M;
      % Display the input and output signals
      clf;
      subplot(2,2,1);
      plot(n, s1);
      axis([0, 100, -2, 2]);
      xlabel('Time index n'); ylabel('Amplitude');
      title('Signal #1');
      subplot(2,2,2);
      plot(n, s2);
      axis([0, 100, -2, 2]);
      xlabel('Time index n'); ylabel('Amplitude');
      title('Signal #2');
      subplot(2,2,3);
      plot(n, x);
      axis([0, 100, -2, 2]);
      xlabel('Time index n'); ylabel('Amplitude');
      title('Input Signal');
      subplot(2,2,4);
      plot(n, y);
      axis([0, 100, -2, 2]);
      xlabel('Time index n'); ylabel('Amplitude');
      title('Output Signal');
      axis;
      您可以使用Command Window 文本框來找出更多命令信息。利用在Command Window 文本框中鍵入help subplot,該命令的描述以及語法信息、輸入、輸出和示例將會出現在Output Window中。

      綜合實驗

      概述
      結合已經開發的傳感器實驗平臺和多種傳感器實驗板, 將傳感器技術、數據采集技術、計算機技術、虛擬儀器技術等充分融合、集成,形成基于虛擬儀器的傳感器綜合實驗系統??梢赃M一步深入研究傳感器的電特性, 研究其信號的具體檢測方法并引入虛擬儀器技術、Matlab算法處理功能,將計算機強大的信息處理和顯示能力、應用軟件處理不同任務的靈活性和現代的測試技術與傳感器實驗聯系起來。
       
      平臺搭建
      為了保證Matlab命令的正常運行,需要安裝Labview 和Matlab;若僅有LabVIEW,可能會造成部分命令不能執行。
      綜合實驗

      1.調用Matlab 腳本節點

      demo1.vi  使用Labview調用Matlab腳本節點的初級演示程序

      Demo2.vi  使用Labview調用Matlab腳本節點的初級演示程序。

      2.  RS-485網絡型采集卡綜合演示程序

      ICB-C51F.vi使用Labview調用Matlab腳本節點的對ICB-C51F控制板進行AD、DA、數字量輸入輸出、轉速測量等功能的演示程序

      3.  Matlab模擬AD、DA數據采集演示程序

      adc_with_matlab.vi 使用Labview調用Matlab腳本節點的通過Matlab仿真數據進行數據采集等功能的演示程序

      4.  神經網絡算法演示程序

      ANN.vi 使用Labview調用Matlab腳本節點實現神經網絡算法的演示程序

      5.  Lorenz Diff Eq.算法演示程序

      Lorenz Diff Eq.vi使用Labview調用Matlab腳本節點實現Lorenz Diff Eq算法的演示程序

      6.  Fractal算法演示程序

      MATLAB Fractal.vi使用Labview調用Matlab腳本節點實現Fractal算法的演示程序

      7.  PID及模糊控制算法演示程序

      SLtank.vi 使用Matlab 腳本模擬演示PID算法及模糊控制算法

      采用模糊控制算法

      采用PID算法

      8.  使用Matlab 腳本控制硬件演示程序

      SoundFFT.vi 使用Matlab 腳本控制硬件并進行FFT變換

      中間采用Matlab  FFT變換圖 右為labview算法功率譜圖