數(shù)值分析 第2講_第1頁
數(shù)值分析 第2講_第2頁
數(shù)值分析 第2講_第3頁
數(shù)值分析 第2講_第4頁
數(shù)值分析 第2講_第5頁
已閱讀5頁,還剩102頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Labview語言Labview基礎(chǔ)程序結(jié)構(gòu)數(shù)組、簇波形圖表掌握Labview的關(guān)鍵 一、一、LabVIEW基礎(chǔ)基礎(chǔ)所有的LabVIEW應(yīng)用程序包括以下三部分前面板窗口(front panel)流程圖編輯窗口(block diagram)又叫程序框圖窗口圖標(biāo)/連結(jié)器(icon/connector) 。 圖標(biāo)前面板窗口框圖窗口1.1 前面板窗口 前面板主要用于輸入量的設(shè)置和輸出量的顯示,用于模擬真實(shí)儀表的前面板??刂坪惋@示是使用系統(tǒng)提供的各種控件圖標(biāo),如開關(guān)、旋鈕、圖形以及其他控制和顯示對象。 輸入控制對象 輸出顯示對象控制對象控制對象(輸入輸入)顯示對象顯示對象(輸出輸出)隨機(jī)信號(hào)發(fā)生器的前面

2、板隨機(jī)信號(hào)發(fā)生器的前面板1.2 程序框圖窗口u 用戶為完成特定功能用圖形化編程語言編寫的程序,即VI的圖形化源程序代碼。在程序框中對VI編程,以控制和操縱定義在前面板上的輸入和輸出功能。u 流程圖由節(jié)點(diǎn)、端口、圖框和連線組成。 1.3 圖標(biāo)/連接器一個(gè)VI可以作為子程序被其他VI調(diào)用。在子VI創(chuàng)建時(shí),圖標(biāo)與連接器在這里相當(dāng)于圖形化的參數(shù)。 圖標(biāo):在前面板和程序框圖窗口的右上角,是一個(gè)默認(rèn)圖標(biāo),雙擊該圖標(biāo),進(jìn)入圖標(biāo)編輯狀態(tài),可進(jìn)行個(gè)性化設(shè)置。 連接器:相當(dāng)于基于文本編輯語言中子程序參數(shù)列表,代表一個(gè)子VI中有多少個(gè)控制和指示,可以輸入和輸出的數(shù)據(jù)。2 2 LabVIEW的操作模板的操作模板 在L

3、abVIEW的用戶界面上,提供了三個(gè)操作模板,包括:v 工具(Tools)模板v 控制(Controls)模板v 函數(shù)(Functions)模板 這些模板集中反映了該軟件的功能與特征。 2.1 工具模板 在前面板和程序框圖中都可以使用工具選板,使用其中不同的工具可以操作、編輯或修飾前面板和程序框圖中選定的對象,也可以用來調(diào)試程序等。 可以選擇Window-Show Tools Palette 選項(xiàng)來顯示工具選板 2.2 控制模板 控件選板在前面板前面板顯示,它包含創(chuàng)建前面板時(shí)可用的控制和顯示全部對象。 選擇主菜單indows-Show Controls Palette選項(xiàng)或右擊前面板空白處就可

4、以顯示控件選板。 2.3 函數(shù)模板 函數(shù)選板只能在編輯程序框圖時(shí)使用,與控件選板的工作方式大體相同。創(chuàng)建框圖程序常用的VI和函數(shù)對象都包含在該選板中。 選擇Windows- Show Functions Palette或右擊框圖面板空白處就可以顯示函數(shù)選板。在 VI面板中添加控件 前面板上有兩種類型的控件對象:控制(control)和指示(indicator)。利用輸入控件可以輸入相應(yīng)的數(shù)據(jù),例如數(shù)字、布爾量、字符串和文件路徑等。 顯示控件用來顯示數(shù)據(jù)。顯示控件有數(shù)字、溫度計(jì)、LED指示燈、文本、波形圖等 。 程序框圖中,控制與指示的主要區(qū)別程序框圖中,控制與指示的主要區(qū)別: 邊框的粗細(xì)邊框的

5、粗細(xì):控制的邊框是粗線邊框,指示的邊框是細(xì)線邊框。 端口端口:控制的右側(cè)有一個(gè)三角形數(shù)據(jù)輸出端,指示的左側(cè)有一個(gè)三角形數(shù)據(jù)輸入端??刂茖ο罂刂茖ο?數(shù)據(jù)終端數(shù)據(jù)終端 指示對象指示對象 數(shù)據(jù)終端數(shù)據(jù)終端前面板中的每個(gè)控件都有自己的屬性,如控件的顏色、最大最小值、顯示精度和方式等。許多屬性都可以根據(jù)不同的需要進(jìn)行編輯。右擊前面板任何一個(gè)控件選擇Properties選項(xiàng)就可以彈出該控件的屬性配置窗口??丶傩栽O(shè)置控件屬性設(shè)置編輯程序框圖流程圖由節(jié)點(diǎn)、端口、圖框和連線組成。端口端口:前面板與程序框圖交換數(shù)據(jù)的入口和出口。每個(gè)在前面板上的對象(控制或指示)會(huì)在程序框圖上對應(yīng)一個(gè)數(shù)據(jù)終端。程序框圖圖標(biāo)程序

6、框圖圖標(biāo)節(jié)點(diǎn)節(jié)點(diǎn):指帶有輸入和輸出接線端的對象,類似文本編程語言中的語句、運(yùn)算符、函數(shù)和子程序。LabVIEW中的節(jié)點(diǎn)主要包括函數(shù)和子VI等。通過調(diào)用此節(jié)點(diǎn)就可以實(shí)現(xiàn)信號(hào)的發(fā)生連線連線用來把程序框圖的其他各元素相互連接,并在其間傳遞數(shù)據(jù)。數(shù)據(jù)通過連線,在不同的數(shù)據(jù)終端和節(jié)點(diǎn)之間傳輸,實(shí)現(xiàn)特定的功能。如果兩個(gè)對象數(shù)據(jù)不一致,則會(huì)出現(xiàn)斷線。ScalarNumericBooleanString2D Array1D ArrayDynamic二、程序結(jié)構(gòu) LabVIEW中的結(jié)構(gòu)是其他基于文本的語言中的循環(huán)、判斷等結(jié)構(gòu)的圖形化體現(xiàn)。 什么是結(jié)構(gòu)? 結(jié)構(gòu)是控制 G程序數(shù)據(jù)流程的元素,G語言包含的結(jié)構(gòu)有: W

7、hile loop結(jié)構(gòu) For Loop結(jié)構(gòu) 條件結(jié)構(gòu) 順序結(jié)構(gòu) 事件結(jié)構(gòu) 使能結(jié)構(gòu) 公式節(jié)點(diǎn) 1 循環(huán)結(jié)構(gòu) LabVIEW中的循環(huán)結(jié)構(gòu)主要有 While循環(huán) For循環(huán) 這兩種循環(huán)結(jié)構(gòu)功能基本相同,但使用上有一些差別。For循環(huán)必須指定循環(huán)的次數(shù),循環(huán)一定的次數(shù)后自動(dòng)退出循環(huán);而While循環(huán)則不用指定循環(huán)的次數(shù),只需要指定循環(huán)退出的條件。 1.1 For循環(huán) For循環(huán)(For Loop)是將某程序段重復(fù)執(zhí)行預(yù)先設(shè)定的次數(shù). For(i =0;iN;i+) 循環(huán)體; 包含兩個(gè)端口:包含兩個(gè)端口: 計(jì)數(shù)端口計(jì)數(shù)端口N N 重復(fù)端口重復(fù)端口i i For循環(huán)循環(huán) 可以通過兩種方法指定循環(huán)次數(shù),

8、一種是直接給定,一種是通過輸入數(shù)組的大小給定 For循環(huán)循環(huán) 移位寄存器(Shift Register)一個(gè)累加一個(gè)累加10次的次的a+程序程序 通過局部變量實(shí)現(xiàn)通過局部變量實(shí)現(xiàn)通過移位寄存器實(shí)現(xiàn)通過移位寄存器實(shí)現(xiàn) 移位寄存器 在LabVIEW的循環(huán)結(jié)構(gòu)中創(chuàng)建移位寄存器的方法是在循環(huán)框圖的左邊或右邊單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇【添加移位寄存器】,可創(chuàng)建一個(gè)移位寄存器 移位積存器的功能是將第i-1, i-2, i-3次循環(huán)的計(jì)算結(jié)果保存在For循環(huán)的緩沖區(qū)內(nèi),并在第i次循環(huán)時(shí)將這些數(shù)據(jù)從循環(huán)況架左側(cè)的移位寄存器中送出,供循環(huán)框架內(nèi)的節(jié)點(diǎn)使用,其中,i=0,1,2,3 。 For循環(huán)循環(huán)

9、隧道和移位寄存器的最大區(qū)別就是隧道程序在運(yùn)行過程中,每次輸入控件都是和初值相加,而不是和循環(huán)的中間結(jié)果相加。 在有索引的隧道數(shù)值輸出控件中輸出的是由每次循環(huán)的結(jié)果組成的一維數(shù)組,在無索引的隧道數(shù)值輸出控件中輸出的是每次的循環(huán)結(jié)果,在程序框圖運(yùn)行過程中這個(gè)數(shù)值一直在隨每次循環(huán)結(jié)果變化,最終輸出最后一次循環(huán)執(zhí)行的結(jié)果。For循環(huán)循環(huán) 反饋節(jié)點(diǎn)(Feedback Node)通過反饋節(jié)點(diǎn)實(shí)現(xiàn)通過反饋節(jié)點(diǎn)實(shí)現(xiàn)a+ !同移位寄存器一樣,最好指定反饋節(jié)點(diǎn)初值。!同移位寄存器一樣,最好指定反饋節(jié)點(diǎn)初值。FOR循環(huán)應(yīng)用舉例例1 求 前面板和程序框圖前面板和程序框圖1001nnFOR循環(huán)應(yīng)用舉例例2 求一組隨機(jī)數(shù)

10、的最大值和最小值。 前面板和程序框圖前面板和程序框圖 2.2. While循環(huán) 當(dāng)循環(huán)次數(shù)不能預(yù)先確定時(shí),就需用到While循環(huán)( While Loop )。While循環(huán)也是LabVIEW最基本的結(jié)構(gòu)之一,相當(dāng)于C語言中的While循環(huán)和do循環(huán)。 While(條件) do 循環(huán)體; 循環(huán)體; While(條件)Whlie循環(huán)結(jié)構(gòu) Whlie循環(huán)包含兩個(gè)端口:條件端口和重復(fù)端口i 條件端口輸入的是布爾變量,它用于判斷循環(huán)在什么條件下停止執(zhí)行。它有兩種使用狀態(tài):Stop if True和Continue if True 重復(fù)端口i為當(dāng)前循環(huán)的次數(shù)。 條件端口 重復(fù)端口 While循環(huán)應(yīng)用示例例

11、3 求N! void main() int a ,i, n; a=1;i=0; scanf (“ %d ”, &n); do i=i+1; a=a*i; while(in); printf (“n! =%d”,a ); 前面板和程序框圖前面板和程序框圖 While循環(huán)循環(huán)While循環(huán)循環(huán) 添加定時(shí)器While循環(huán)循環(huán) 使用移位寄存器和反饋節(jié)點(diǎn)累加器程序累加器程序 2.2 條件結(jié)構(gòu) 條件結(jié)構(gòu)類似于文本編程語言中的switch語句或if.then.else語句。 選擇端口相當(dāng)于選擇端口相當(dāng)于C C語言的語言的SwitchSwitch語句中的語句中的“表達(dá)式表達(dá)式”,框圖表示符相當(dāng)于,框圖表示符相

12、當(dāng)于“表達(dá)式表達(dá)式n n”。編程時(shí),將外部控制條件連接至選擇端口上,程序運(yùn)行時(shí)選。編程時(shí),將外部控制條件連接至選擇端口上,程序運(yùn)行時(shí)選擇端口會(huì)判斷送來的控制條件,引導(dǎo)選擇結(jié)構(gòu)執(zhí)行相應(yīng)框架中的內(nèi)容。擇端口會(huì)判斷送來的控制條件,引導(dǎo)選擇結(jié)構(gòu)執(zhí)行相應(yīng)框架中的內(nèi)容。 選擇端口的外部控制條件選擇端口的外部控制條件的數(shù)據(jù)類型有整型、布爾的數(shù)據(jù)類型有整型、布爾型、字符串型和枚舉型。型、字符串型和枚舉型。 條件結(jié)構(gòu)If(a%2=0)b=a+2;elseb=a+1;end等價(jià)于等價(jià)于if.else.語句的條件結(jié)構(gòu)語句的條件結(jié)構(gòu)條件結(jié)構(gòu) 等價(jià)于switch語句的條件結(jié)構(gòu)switch (fruit)case app

13、le: price=9; case banana: price=10; case pear: price=8; default: price=0;條件結(jié)構(gòu)應(yīng)注意的問題 在使用選擇結(jié)構(gòu)時(shí),控制條件的數(shù)據(jù)類型必須與圖框標(biāo)識(shí)符中的數(shù)據(jù)類型一致。二者若不匹配,LabVIEW 會(huì)報(bào)錯(cuò),圖框標(biāo)識(shí)符中字體的顏色將變?yōu)榧t色。 在 LabVIEW 中,對于數(shù)值型條件必須包含處理超出范圍值的默認(rèn)分支,對于其它類型的條件可設(shè)或不設(shè),但必須明確地列出每一個(gè)可能的輸入值。 條件結(jié)構(gòu)的數(shù)據(jù)輸入和輸出通道 當(dāng)由外部節(jié)點(diǎn)向結(jié)構(gòu)框架連線時(shí),在結(jié)構(gòu)邊框就創(chuàng)建了輸入通道,而當(dāng)由框內(nèi)內(nèi)節(jié)點(diǎn)與邊框連線時(shí),在結(jié)構(gòu)邊框就建立了輸出通道。

14、對所有條件分支來說對于輸入通道的數(shù)據(jù)可以使用,也可以不使用。 只要有一個(gè)分支提供輸出數(shù)據(jù),所有分支條件都必須與輸出通道連接 。條件結(jié)構(gòu)應(yīng)用舉例例4 求一個(gè)數(shù)的平方根,若該數(shù) 0,計(jì)算該值平方根并將計(jì)算結(jié)果輸出;若該數(shù) 0 時(shí),輸出錯(cuò)誤代碼“-999.00”。 框圖程序框圖程序運(yùn)行結(jié)果運(yùn)行結(jié)果 條件結(jié)構(gòu)應(yīng)用舉例例5 利用條件結(jié)構(gòu)編寫溫度采集報(bào)警程序,當(dāng)采集溫度高于設(shè)定值時(shí)產(chǎn)生報(bào)警。 前面板和程序框圖前面板和程序框圖 2.3 順序結(jié)構(gòu)(順序結(jié)構(gòu)(Sequence Structure) 5.1.1 LabVIEW程序的執(zhí)行順序 數(shù)據(jù)流式的編程方法 多段代碼同時(shí)執(zhí)行2.3 順序結(jié)構(gòu) LabVIEW順序

15、結(jié)構(gòu)的功能是強(qiáng)制程序按一定的順序執(zhí)行。順序結(jié)構(gòu)包含一個(gè)或多個(gè)按順序執(zhí)行的子程序框圖或幀。 LabVIEW提供了兩種順序結(jié)構(gòu): 平鋪式順序結(jié)構(gòu) 層疊式順序結(jié)構(gòu) 2.3 順序結(jié)構(gòu)(順序結(jié)構(gòu)(Sequence Structure) 在平鋪的幀間傳遞數(shù)據(jù)5.1 順序結(jié)構(gòu)(順序結(jié)構(gòu)(Sequence Structure) 在層疊的幀間傳遞數(shù)據(jù) 順序結(jié)構(gòu)應(yīng)用舉例例6 計(jì)算生成等于某個(gè)給定值的隨機(jī)數(shù)據(jù)所用時(shí)間。 層疊式順序結(jié)構(gòu)層疊式順序結(jié)構(gòu)VIVI的程序框圖的程序框圖 2.4 事件結(jié)構(gòu)事件結(jié)構(gòu) 事件是對活動(dòng)發(fā)生的異步通知。事件可以來自于用戶界面、外部I/O或程序的其他部分。用戶界面事件包括鼠標(biāo)點(diǎn)擊、鍵盤按鍵

16、等動(dòng)作。 LabVIEW應(yīng)用程序在沒有事件發(fā)生時(shí)處于休息狀態(tài),直到前面板窗口中有一個(gè)事件發(fā)生為止。 事件結(jié)構(gòu)的組成 事件結(jié)構(gòu)包含超時(shí)端口和事件端口 事件數(shù)據(jù)節(jié)點(diǎn) 選擇器標(biāo)簽 事件超時(shí) 事件選擇器標(biāo)簽事件選擇器標(biāo)簽表明由哪些事件引起了當(dāng)前分支的執(zhí)行。表明由哪些事件引起了當(dāng)前分支的執(zhí)行。 事件超時(shí)接線端事件超時(shí)接線端用于設(shè)置事件結(jié)構(gòu)在等待指定事件發(fā)生時(shí)的超時(shí)時(shí)間用于設(shè)置事件結(jié)構(gòu)在等待指定事件發(fā)生時(shí)的超時(shí)時(shí)間 事件數(shù)據(jù)節(jié)點(diǎn)事件數(shù)據(jù)節(jié)點(diǎn)用于輸出事件的參數(shù),端口數(shù)目和數(shù)據(jù)類型根據(jù)事件的不同而不同。用于輸出事件的參數(shù),端口數(shù)目和數(shù)據(jù)類型根據(jù)事件的不同而不同。 事件結(jié)構(gòu)的使用 用戶界面事件有兩種類型:通知事

17、件 過濾事件 通知事件通知事件表明某個(gè)用戶操作已經(jīng)發(fā)生,比如表明某個(gè)用戶操作已經(jīng)發(fā)生,比如用戶改變了控件的值。用戶改變了控件的值。 過濾事件過濾事件將通知用戶將通知用戶LabVIEWLabVIEW在處理事件之前在處理事件之前已由用戶執(zhí)行了某個(gè)操作,以便用戶就程序如已由用戶執(zhí)行了某個(gè)操作,以便用戶就程序如何與用戶界面的交互作出響應(yīng)進(jìn)行自定義。何與用戶界面的交互作出響應(yīng)進(jìn)行自定義。 編輯事件對話框 通過編輯事件對話框,可以設(shè)定某個(gè)事件結(jié)構(gòu)分支響應(yīng)的事件。 事件結(jié)構(gòu)應(yīng)用舉例例7 利用事件結(jié)構(gòu)演示用鼠標(biāo)單擊前面板窗口時(shí),發(fā)生鼠標(biāo)按下事件并處理鼠標(biāo)按下事件。 詢問對話框詢問對話框 事件結(jié)構(gòu)事件結(jié)構(gòu)VIV

18、I的程序框圖的程序框圖 三、三、 數(shù)組數(shù)組。 LabVIEW中的數(shù)組可以為任何數(shù)值類型、布爾型、字符串中的數(shù)組可以為任何數(shù)值類型、布爾型、字符串。 一個(gè)數(shù)組可以是一維的,在內(nèi)存允許的情況下,也可以是一個(gè)數(shù)組可以是一維的,在內(nèi)存允許的情況下,也可以是多維的,每維最多可以包含多維的,每維最多可以包含231個(gè)元素。個(gè)元素。 可以通過數(shù)組指針(索引可以通過數(shù)組指針(索引index)訪問數(shù)組元素,指針在訪問數(shù)組元素,指針在0到到N1的范圍內(nèi)變化,而就是數(shù)組元素的個(gè)數(shù)。的范圍內(nèi)變化,而就是數(shù)組元素的個(gè)數(shù)。例:例:10元素的一維數(shù)組元素的一維數(shù)組3.1.1.創(chuàng)建數(shù)組:創(chuàng)建數(shù)組: 第一步創(chuàng)建數(shù)組殼第一步創(chuàng)建數(shù)

19、組殼: 從控制模板的從控制模板的“數(shù)組和簇?cái)?shù)組和簇”子模板中選擇子模板中選擇“數(shù)組數(shù)組”控制器,控制器,放在前面板上,即建立了一個(gè)空的數(shù)組殼放在前面板上,即建立了一個(gè)空的數(shù)組殼第二步建立數(shù)據(jù)對象第二步建立數(shù)據(jù)對象:把一個(gè)數(shù)據(jù)對象拖入數(shù)組殼,或者從控制模板中添加一把一個(gè)數(shù)據(jù)對象拖入數(shù)組殼,或者從控制模板中添加一個(gè)數(shù)據(jù)對象到數(shù)組殼中,這樣就可以創(chuàng)建一個(gè)數(shù)組個(gè)數(shù)據(jù)對象到數(shù)組殼中,這樣就可以創(chuàng)建一個(gè)數(shù)組增加數(shù)組維數(shù)增加數(shù)組維數(shù) 在數(shù)組殼左邊的指針標(biāo)記上彈出菜單,選擇“添加維度”選項(xiàng),增加數(shù)組的維數(shù) 列指針行指針當(dāng)前指針指示的元素4行2列元素三維數(shù)組三維數(shù)組頁指針行指針列指針數(shù)組函數(shù)詳細(xì)介紹數(shù)組函數(shù)詳細(xì)

20、介紹 (1)數(shù)組大小函數(shù))數(shù)組大小函數(shù) 該函數(shù)返回輸入數(shù)組的元素個(gè)數(shù),對于一該函數(shù)返回輸入數(shù)組的元素個(gè)數(shù),對于一維數(shù)組返回一個(gè)維數(shù)組返回一個(gè)32位的整型數(shù),對于二維或位的整型數(shù),對于二維或多維數(shù)組返回一個(gè)一維多維數(shù)組返回一個(gè)一維32位整型數(shù)組。位整型數(shù)組。 (2)數(shù)組索引函數(shù))數(shù)組索引函數(shù)用于根據(jù)下標(biāo)索引從數(shù)組中得到數(shù)組的元素或用于根據(jù)下標(biāo)索引從數(shù)組中得到數(shù)組的元素或數(shù)組子集。對于一維數(shù)組可得到其中一個(gè)元素?cái)?shù)組子集。對于一維數(shù)組可得到其中一個(gè)元素,對于二維或多維數(shù)組,通過只指定部分下標(biāo),對于二維或多維數(shù)組,通過只指定部分下標(biāo)可以得到某一元素或數(shù)組子集。可以得到某一元素或數(shù)組子集。 (3)子數(shù)組

21、替換函數(shù))子數(shù)組替換函數(shù)Replace Array Subset 將已知數(shù)組中部分內(nèi)容用新的數(shù)據(jù)替換掉將已知數(shù)組中部分內(nèi)容用新的數(shù)據(jù)替換掉。 (4)插入到數(shù)組函數(shù))插入到數(shù)組函數(shù)Insert Into Array 向數(shù)組指定位置插入若干行或若干列新元素。向數(shù)組指定位置插入若干行或若干列新元素。 (5)從數(shù)組中刪除元素函數(shù))從數(shù)組中刪除元素函數(shù)Delete From Array 從一個(gè)數(shù)組中刪除單個(gè)元素或者子數(shù)組從一個(gè)數(shù)組中刪除單個(gè)元素或者子數(shù)組 ,對于二維數(shù)組,刪除操作是針對整行或整列的。 (6)初始化數(shù)組)初始化數(shù)組Intialize Array 指定數(shù)組的維數(shù)、大小,并且將數(shù)組元素值都指定

22、數(shù)組的維數(shù)、大小,并且將數(shù)組元素值都初始化為相同的值。初始化為相同的值。 (7)創(chuàng)建數(shù)組函數(shù))創(chuàng)建數(shù)組函數(shù)Build Array 功能:把多個(gè)數(shù)組組合成一個(gè)數(shù)組或?qū)σ粋€(gè)數(shù)功能:把多個(gè)數(shù)組組合成一個(gè)數(shù)組或?qū)σ粋€(gè)數(shù)組添加元素。輸入端子的個(gè)數(shù)可以通過大小調(diào)組添加元素。輸入端子的個(gè)數(shù)可以通過大小調(diào)節(jié)句柄來增減,可以對一維、二維、多維數(shù)組節(jié)句柄來增減,可以對一維、二維、多維數(shù)組進(jìn)行操作,標(biāo)量可當(dāng)作進(jìn)行操作,標(biāo)量可當(dāng)作0維數(shù)組。構(gòu)建數(shù)組函數(shù)維數(shù)組。構(gòu)建數(shù)組函數(shù)的輸入端子中,維數(shù)相差只能是的輸入端子中,維數(shù)相差只能是0或或1。維數(shù)低。維數(shù)低的數(shù)組將追加至維數(shù)高的數(shù)組的尾部,或首部的數(shù)組將追加至維數(shù)高的數(shù)組的

23、尾部,或首部,取決于輸入端子的先后次序。,取決于輸入端子的先后次序。 (8)提取子數(shù)組函數(shù))提取子數(shù)組函數(shù) Array Subset提取輸入數(shù)組的第提取輸入數(shù)組的第0行開始的兩行和第行開始的兩行和第1列開始的兩列開始的兩列元素,組成一個(gè)新數(shù)組。列元素,組成一個(gè)新數(shù)組。 例7. 霓虹燈,8個(gè)霓虹燈以0.5秒的周期交替閃爍(以數(shù)組的方式實(shí)現(xiàn))。3.2 簇簇 定義:定義:在一起的數(shù)據(jù)結(jié)構(gòu),類似于在一起的數(shù)據(jù)結(jié)構(gòu),類似于C語言中的結(jié)構(gòu)體數(shù)語言中的結(jié)構(gòu)體數(shù)據(jù)類型據(jù)類型struct。 我們可以把簇形象地理解為一根多芯電纜,不同我們可以把簇形象地理解為一根多芯電纜,不同的信號(hào)線捆綁在一起進(jìn)行傳輸,電纜中的每

24、根線的信號(hào)線捆綁在一起進(jìn)行傳輸,電纜中的每根線就相當(dāng)于簇中的每個(gè)元素。就相當(dāng)于簇中的每個(gè)元素。 數(shù)組大小是可變的,數(shù)組元素的順序不允許隨意數(shù)組大小是可變的,數(shù)組元素的順序不允許隨意變動(dòng),而簇大小是固定不變的,元素的順序可以變動(dòng),而簇大小是固定不變的,元素的順序可以 任意拖拽改變。簇和數(shù)組也有相同之處:其中的任意拖拽改變。簇和數(shù)組也有相同之處:其中的元素要么是輸入控件要么是顯示控件,即簇合數(shù)元素要么是輸入控件要么是顯示控件,即簇合數(shù)組不能同時(shí)包含輸入控件和顯示控件。組不能同時(shí)包含輸入控件和顯示控件。3.2.1.創(chuàng)建簇創(chuàng)建簇 在前面板放置一個(gè)簇的空框架,然后再加入控在前面板放置一個(gè)簇的空框架,然后

25、再加入控件。簇框架的選擇路徑及放置的空框架如圖所件。簇框架的選擇路徑及放置的空框架如圖所示。示。 與數(shù)組一樣,一個(gè)簇是輸入控件還是顯示控件,取決于放入簇框架中的第一個(gè)元素的類型。創(chuàng)建一個(gè)簇框架并向其中加入數(shù)值控件、數(shù)組控件、布爾控件,如下圖所示。 簇元素的順序取決于簇的各個(gè)元素放入簇框架時(shí)的先后順序。要查看或者改變簇元素的順序,可以右擊簇框架,選擇“重新排序簇中控件”,則打開簇順序編輯界面。3.2.2. 簇函數(shù)簇函數(shù) (1)解除捆綁函數(shù) 該函數(shù)將簇的各個(gè)元素分解開,可分別獲得簇中每個(gè)元素的值。函數(shù)輸出端子的個(gè)數(shù)由簇內(nèi)的元素個(gè)數(shù)決定,輸出順序按照簇元素的排列順序。 (2)簇捆綁函數(shù) 該函數(shù)可將若

26、干獨(dú)立元素打包到一個(gè)新簇中,也可以對簇中的元素賦值或者替換現(xiàn)有簇中的元素。函數(shù)左端的輸入端子個(gè)數(shù)可以通過句柄進(jìn)行調(diào)整。 (3) 按名稱解除捆綁函數(shù) 該函數(shù)在功能方面與解除捆綁函數(shù)相同,可以獲得簇的每一個(gè)元素值,其優(yōu)點(diǎn)是:在輸出端按簇順序列出了各元素標(biāo)簽名稱,便于區(qū)別、定位和連線。 (4) 按名稱捆綁函數(shù) 該函數(shù)的輸入簇端子是必須要連接的,在功能方面,該函數(shù)可以對輸入簇中的元素賦值或替換,但不能將獨(dú)立元素打包到一個(gè)新簇。四、數(shù)據(jù)的圖形化顯示四、數(shù)據(jù)的圖形化顯示 LabVIEW豐富的數(shù)據(jù)圖形化顯示功能是其眾多優(yōu)秀特性之一,也是其應(yīng)用日益廣泛的原因之一。由于是數(shù)據(jù)的圖形化顯示,從輸入控件和顯示控件的

27、角度分類,應(yīng)隸屬顯示控件范疇。 圖形化顯示控件主要分為兩大類:圖表(圖表(Chart),),圖(圖(Graph)。)。 圖表圖表主要用來顯示實(shí)時(shí)數(shù)據(jù),可以顯示被測物理量的變化趨勢,類似于示波器、記錄儀。 圖圖則用于對已采集數(shù)據(jù)進(jìn)行事后顯示處理,它根據(jù)需要將數(shù)據(jù)組織成所需的圖形一次顯示出來。4.1. 波形圖標(biāo)簽Y標(biāo)尺X標(biāo)尺圖例 一次性顯示程序產(chǎn)生的所有數(shù)據(jù)一次性顯示程序產(chǎn)生的所有數(shù)據(jù) 等時(shí)間間隔地顯示數(shù)據(jù)點(diǎn)等時(shí)間間隔地顯示數(shù)據(jù)點(diǎn) 每一時(shí)刻只有一個(gè)數(shù)據(jù)值,類似單值函數(shù)每一時(shí)刻只有一個(gè)數(shù)據(jù)值,類似單值函數(shù) 可繪制一條或多條曲線,數(shù)據(jù)組織格式不同可繪制一條或多條曲線,數(shù)據(jù)組織格式不同(1)波形圖的使用

28、 下面舉例說明波形圖的使用: 例5.在For循環(huán)中,對0-2之間均勻分布的100個(gè)點(diǎn)(單位為弧度),并調(diào)用“三角函數(shù)”中的正弦和余弦函數(shù)。使用波形圖繪制正弦和余弦曲線。 使用波形圖可以繪制出一條或多條曲線,在這兩種情況下,有著不同的數(shù)據(jù)組織格式。繪制一條曲線時(shí),波形圖可以接受如下兩種數(shù)據(jù)格式: (1)一維數(shù)組,對應(yīng)于“波形圖1”,此時(shí),默認(rèn)時(shí)間從0開始,相鄰數(shù)據(jù)點(diǎn)之間的時(shí)間間隔為1,即時(shí)刻0對應(yīng)數(shù)組的第0個(gè)元素,時(shí)刻1對應(yīng)數(shù)組的第1個(gè)元素。 (2)簇?cái)?shù)據(jù)類型,對應(yīng)于“波形圖3”,簇中應(yīng)包括時(shí)間起點(diǎn)、時(shí)間間隔、數(shù)值數(shù)組這三個(gè)元素。 繪制多條曲線時(shí),波形圖可以接受如下數(shù)據(jù)格式: (1)二維數(shù)組,對

29、應(yīng)于“波形圖2”,數(shù)組的每一行反映的是一條曲線的數(shù)據(jù),時(shí)間從0開始,相鄰數(shù)據(jù)點(diǎn)之間的時(shí)間間隔為1。 (2)由簇作為元素的二維數(shù)組,對應(yīng)于“波形圖4”,每個(gè)簇元素都由時(shí)間起點(diǎn)、時(shí)間間隔、數(shù)值數(shù)組這三個(gè)元素組成。這是最通用的一種多曲線數(shù)據(jù)格式,因?yàn)槠湓试S每條曲線都有不同的起始時(shí)間、數(shù)據(jù)點(diǎn)時(shí)間間隔和數(shù)據(jù)點(diǎn)長度。 (3)時(shí)間起點(diǎn)、時(shí)間間隔、數(shù)值型二維數(shù)組組成的簇,對應(yīng)于“波形圖5”.將二維數(shù)組的每一行作為一條曲線的數(shù)據(jù)。 (4)把數(shù)組打包成簇,然后以簇作為元素組成二維簇?cái)?shù)組,對應(yīng)于“波形圖6”。當(dāng)多條曲線的數(shù)據(jù)點(diǎn)個(gè)數(shù)不同時(shí),可以使用這種數(shù)據(jù)組織方式。時(shí)間起點(diǎn)從0開始,相鄰數(shù)據(jù)點(diǎn)之間的時(shí)間間隔為1。 (

30、5)時(shí)間起點(diǎn)、時(shí)間間隔、以簇為元素構(gòu)成的數(shù)組組成的簇,對應(yīng)于“波形圖7”.該簇中的數(shù)組元素的每個(gè)簇都由一個(gè)一維數(shù)組打包而成,每個(gè)一位數(shù)組都是一條曲線,所有曲線共用最外層簇提供的時(shí)間起點(diǎn)和時(shí)間間隔。 此外,波形圖還可以接收波形數(shù)據(jù),在后續(xù)章節(jié)介紹。(2)波形圖的屬性定制包含的組件和功能包含的組件和功能 對象的標(biāo)識(shí),在程序中通過對象的標(biāo)簽實(shí)現(xiàn)對對象對象的標(biāo)識(shí),在程序中通過對象的標(biāo)簽實(shí)現(xiàn)對對象的訪問。的訪問。 對象的名稱,默認(rèn)情況下和對象的標(biāo)簽相同。對象的名稱,默認(rèn)情況下和對象的標(biāo)簽相同。 默認(rèn)標(biāo)簽是默認(rèn)標(biāo)簽是“幅值幅值”,可用標(biāo)簽工具修改。刻度同樣,可用標(biāo)簽工具修改??潭韧瑯涌捎脴?biāo)簽工具進(jìn)行修改。

31、可用標(biāo)簽工具進(jìn)行修改。 右擊波形圖,選擇右擊波形圖,選擇“Y 標(biāo)尺標(biāo)尺” “格式化格式化”,可設(shè)置數(shù)據(jù),可設(shè)置數(shù)據(jù)的的和和。例如設(shè)置是以浮點(diǎn)數(shù)還是以科學(xué)計(jì)數(shù)。例如設(shè)置是以浮點(diǎn)數(shù)還是以科學(xué)計(jì)數(shù)法顯示數(shù)據(jù),小數(shù)點(diǎn)位數(shù)是幾位等。法顯示數(shù)據(jù),小數(shù)點(diǎn)位數(shù)是幾位等。 選擇選擇Y 標(biāo)尺標(biāo)尺樣式,可設(shè)置樣式,可設(shè)置,style子菜單給出了子菜單給出了9 種刻度風(fēng)格,可以選擇是否顯示種刻度風(fēng)格,可以選擇是否顯示主刻度和副刻度數(shù)字及刻度線。主刻度和副刻度數(shù)字及刻度線。 映射子菜單設(shè)定刻度的映射子菜單設(shè)定刻度的:,。 自動(dòng)調(diào)整自動(dòng)調(diào)整Y標(biāo)尺標(biāo)尺 : (4) 橫坐標(biāo)橫坐標(biāo) 默認(rèn)標(biāo)簽是默認(rèn)標(biāo)簽是“時(shí)間時(shí)間”,設(shè)置方法和

32、縱坐標(biāo)類似。,設(shè)置方法和縱坐標(biāo)類似。 (5) 橫坐標(biāo)滾動(dòng)條X Scrollbar (6) 圖形操作面板Graph Palette 3個(gè)按鈕 切換兩種切換兩種觀察模式觀察模式 單擊中間按鈕,單擊中間按鈕,出現(xiàn)出現(xiàn) 將一個(gè)矩將一個(gè)矩形區(qū)域放形區(qū)域放大大 將兩條縱將兩條縱線間的區(qū)線間的區(qū)域放大域放大 將兩條橫將兩條橫線間的區(qū)線間的區(qū)域放大域放大 恢復(fù)圖形原恢復(fù)圖形原有比例有比例 以一個(gè)點(diǎn)為以一個(gè)點(diǎn)為中心放大中心放大 以一個(gè)點(diǎn)以一個(gè)點(diǎn)為中心縮為中心縮小小 (7)圖例圖例 顯示繪圖區(qū)中每條曲線的樣式顯示繪圖區(qū)中每條曲線的樣式 ,單擊圖例單擊圖例 出現(xiàn)快捷菜單,可設(shè)置、修改曲線樣式、線寬、顏出現(xiàn)快捷菜單,

33、可設(shè)置、修改曲線樣式、線寬、顏色等。色等。4.2. 波形圖表也稱為趨勢圖。波形圖在接收到新數(shù)據(jù)時(shí),先把已有數(shù)據(jù)曲線完全清除,然后根據(jù)新數(shù)據(jù)重新繪制整條曲線。波形圖表則不同:波形圖表保存了舊的數(shù)據(jù),且所保存舊數(shù)據(jù)的長度還可以自行制定。在波形圖表中,新數(shù)據(jù)被連接在舊數(shù)據(jù)的后面,同時(shí)顯示。 繪制單曲線時(shí)繪制單曲線時(shí) ,可接受兩種數(shù)據(jù)格式:分別是,可接受兩種數(shù)據(jù)格式:分別是標(biāo)量數(shù)據(jù)和數(shù)組。標(biāo)量數(shù)據(jù)和數(shù)組。 當(dāng)輸入標(biāo)量,每次推進(jìn)一個(gè)點(diǎn);當(dāng)輸入標(biāo)量,每次推進(jìn)一個(gè)點(diǎn); 當(dāng)輸入數(shù)組,每次推進(jìn)的點(diǎn)數(shù)等于數(shù)組長度。當(dāng)輸入數(shù)組,每次推進(jìn)的點(diǎn)數(shù)等于數(shù)組長度。 當(dāng)繪制多曲線時(shí),也可接受兩種數(shù)據(jù)格式:當(dāng)繪制多曲線時(shí),也可

34、接受兩種數(shù)據(jù)格式: 第一種:將每條曲線的一個(gè)新數(shù)據(jù)點(diǎn)(數(shù)值類型)第一種:將每條曲線的一個(gè)新數(shù)據(jù)點(diǎn)(數(shù)值類型)打包成簇,然后輸入到波形打包成簇,然后輸入到波形Chart中,這時(shí)波形中,這時(shí)波形Chart將所有曲線同時(shí)推進(jìn)一個(gè)點(diǎn);將所有曲線同時(shí)推進(jìn)一個(gè)點(diǎn); 第二種第二種: 將每條曲線的一個(gè)數(shù)據(jù)點(diǎn)打包成簇,若干個(gè)將每條曲線的一個(gè)數(shù)據(jù)點(diǎn)打包成簇,若干個(gè)這樣的簇作為元素構(gòu)建數(shù)組,再把數(shù)組傳送到波形這樣的簇作為元素構(gòu)建數(shù)組,再把數(shù)組傳送到波形Chart中。數(shù)組中的元素個(gè)數(shù)決定了繪制中。數(shù)組中的元素個(gè)數(shù)決定了繪制Chart每次數(shù)每次數(shù)據(jù)的長度。在這種數(shù)據(jù)格式下,波形據(jù)的長度。在這種數(shù)據(jù)格式下,波形Chart

35、將所有曲將所有曲線推進(jìn)多個(gè)點(diǎn)。線推進(jìn)多個(gè)點(diǎn)。 例6:分別用以上兩種方式顯示兩條隨機(jī)數(shù)曲線。波形圖表有一個(gè)緩沖區(qū),用來保存歷史數(shù)據(jù),緩沖區(qū)容納不下的舊數(shù)據(jù)將被舍棄。在快捷菜單的“圖標(biāo)歷史長度”選項(xiàng)中可以設(shè)置緩沖區(qū)長度。在繪制多條曲線時(shí),波形圖表的默認(rèn)情況是把這些曲線繪制在同一個(gè)坐標(biāo)系中。在波形圖表的快捷菜單中選擇“分格顯示曲線”即可把多條曲線繪制在不同的坐標(biāo)系中,從上倒下排列。選擇“層疊顯示曲線”則回到同一坐標(biāo)系中顯示。4.3. XY圖即坐標(biāo)圖,而前面講的波形圖和波形圖表,是x軸數(shù)據(jù)等間隔時(shí)的坐標(biāo)圖。在繪制XY圖時(shí),需要把x軸數(shù)據(jù)和Y軸數(shù)據(jù)捆綁成簇作為圖形的輸入。 例8. 繪制圓和橢圓的XY圖。 4.4. 三維圖形顯示 除了用于顯示二維圖形的函數(shù)和VI,LabVIEW也提供了用于三維圖形的控件,如強(qiáng)度趨勢圖Intensity Chart 和強(qiáng)度圖表Intensity Graph 、三維曲面圖函數(shù)3D Surface Graph 、三維參數(shù)圖函數(shù) 3D Surface Graph 。(1)三維曲面圖 三維曲面圖用于顯示三維空間的一個(gè)曲面。在前面板放置一個(gè)三維曲面控件時(shí),框圖中將出現(xiàn)兩個(gè)圖標(biāo),如下圖所示: 3D Surface Graph是一個(gè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論