LabVIEW在智能虛擬儀器仿真中的應(yīng)用
圖10 低通濾波器實(shí)驗(yàn)框圖程序
?。?) 選擇"有源濾波器"的情況略有不同。由于輸入波形為400Hz 方波,為很多不同頻率的正弦波疊加而成,不能像前兩個(gè)濾波器那樣由公式節(jié)點(diǎn)計(jì)算,需要引入LabVIEW 提供的數(shù)字濾波器。該實(shí)驗(yàn)的框圖程序如圖11 所示。
圖11 有源濾波器實(shí)驗(yàn)框圖程序
如果濾波器的輸入輸出都是離散的時(shí)間信號(hào),那么該濾波器的沖擊響應(yīng)也必然是離散的,稱(chēng)這樣的濾波器為數(shù)字濾波器。它的功能是把輸入序列通過(guò)一定的運(yùn)算編程輸出序列, 同時(shí)起到濾波的作用。設(shè)h ( n) , n = 0 ,1 ,2 ??是濾波器的沖擊響應(yīng),一個(gè)線(xiàn)性時(shí)不變因果(所謂因果性是指系統(tǒng)的輸出僅取決于過(guò)去和現(xiàn)在的輸入) 濾波器若對(duì)所有的n ≥N ( N 為有限正整數(shù)) ,有h ( n) = 0 ,則稱(chēng)其為有限沖擊響應(yīng)濾波器( FIR) ,否則稱(chēng)之為無(wú)限沖擊響應(yīng)濾波器( I IR) .LabVIEW 提供的數(shù)字濾波器使用方便,只需根據(jù)需要設(shè)定各參數(shù)即可。本系統(tǒng)中使用FIR 濾波器。在對(duì)相位信息有要求時(shí),通常使用FIR 濾波器。因?yàn)镕IR 濾波器的相頻相應(yīng)總是線(xiàn)性的,可以防止時(shí)域數(shù)據(jù)發(fā)生畸變。
系統(tǒng)中使用的DigitalFIRFilter. vi 在進(jìn)行濾波的同時(shí)還可以輸出幅頻響應(yīng)和相頻響應(yīng)。將該濾波器設(shè)定為中心頻率為400Hz 的帶通濾波器, 當(dāng)400Hz 方波通過(guò)該濾波器時(shí), 可以得到較好的400Hz 正弦波,并且輸出幅頻特性曲線(xiàn)。由于與前面的實(shí)驗(yàn)測(cè)量對(duì)象不同, 示波器控件的Xscale.
Maximum 屬性需要進(jìn)行相應(yīng)的調(diào)節(jié)。
2.3 數(shù)據(jù)的保存
實(shí)驗(yàn)結(jié)束以后為了使學(xué)生可以將實(shí)驗(yàn)數(shù)據(jù)拷貝帶出實(shí)驗(yàn)室,數(shù)據(jù)的保存就成了客戶(hù)端不可缺少的程序。該框圖程序如圖12 所示。
圖12 數(shù)據(jù)保存的框圖程序
首先,把客戶(hù)端發(fā)給服務(wù)器的數(shù)據(jù)流分解,再重新組合成存入文件的數(shù)據(jù)格式。該功能由Fil2terCreateRxSt ring. vi 完成,它位于安裝目錄下的function 目錄中,它的圖標(biāo)如圖13 所示。
圖13 FilterCreateRxString. vi 圖標(biāo)
該子VI 的功能與服務(wù)器數(shù)據(jù)流處理的程序大致相同,只是組成存入文件字符串時(shí)有所不同。
它把數(shù)據(jù)分為兩行,第一行為姓名、學(xué)號(hào),第二行為實(shí)驗(yàn)數(shù)據(jù)。每個(gè)數(shù)據(jù)項(xiàng)之間加入tab 空格,數(shù)據(jù)的精度控制為3 位浮點(diǎn)型,每行結(jié)束添加回車(chē)換行符。這樣規(guī)定數(shù)據(jù)格式的好處是最后生成的。 txt文件可以被Excel 以電子表格的形式打開(kāi),便于分類(lèi)管理。生成文件字符串后,通過(guò)Write Charac2ters To File. vi 寫(xiě)入文件:濾波器實(shí)驗(yàn)數(shù)據(jù)。 txt .為使該文件的所在目錄不隨著客戶(hù)端程序所在位置的改變而無(wú)法找到,在保存之前,先指定客戶(hù)端運(yùn)行所在的當(dāng)前目錄,也就是說(shuō)該文件的目錄必須是相對(duì)目錄。取得當(dāng)前目錄功能由GetCurrentDi2rectory. vi 實(shí)現(xiàn),它的框圖程序如圖14 所示。
圖14 取得當(dāng)前目錄的框圖程序。
在這個(gè)框圖程序中使用了LabVIEW 提供的調(diào)用庫(kù)函數(shù)節(jié)點(diǎn)(Call Library Function Node. vi) ,利用這個(gè)節(jié)點(diǎn),可以在LabVIEW 中實(shí)現(xiàn)DLL 和API 函數(shù)的調(diào)用。
實(shí)現(xiàn)取得當(dāng)前目錄調(diào)用的是kernel32. dll 中的long GetCurrentDirectoryA() ;函數(shù),需要在框圖程序中創(chuàng)建調(diào)用庫(kù)函數(shù)節(jié)點(diǎn),添加length和buffer 兩個(gè)參數(shù),使該函數(shù)變?yōu)閘ong GetCurrentDirectoryA(long length ,CStr buffer) ;.該函數(shù)返回值為當(dāng)前目錄的字符串,在其后添加濾波器實(shí)驗(yàn)數(shù)據(jù)。 txt ,并把這個(gè)字符串轉(zhuǎn)化為文件路徑,這樣實(shí)驗(yàn)數(shù)據(jù)的文件的所在目錄就變?yōu)橄鄬?duì)路徑了。指定了文件路徑和文件內(nèi)容,把存儲(chǔ)類(lèi)型設(shè)為"append",最后通過(guò)Write Characters To File. vi將實(shí)驗(yàn)數(shù)據(jù)寫(xiě)入到文件中。
3 結(jié)束語(yǔ)
在虛擬儀器的基礎(chǔ)上開(kāi)發(fā)虛擬儀器實(shí)驗(yàn)室,與傳統(tǒng)的實(shí)驗(yàn)室相比,虛擬儀器實(shí)驗(yàn)室可以大大減少實(shí)驗(yàn)設(shè)備資金的投入。并且在一臺(tái)計(jì)算機(jī)上可以實(shí)現(xiàn)諸如示波器、函數(shù)發(fā)生器、電壓表、頻譜分析儀等儀器的功能,節(jié)約了儀器成本,虛擬儀器基于軟件的體系結(jié)構(gòu)大大節(jié)省了開(kāi)發(fā)和維護(hù)的費(fèi)用。在大學(xué)教學(xué)中通過(guò)引入基于LabVIEW 虛擬儀器的教學(xué),便于開(kāi)放式管理,擴(kuò)大教學(xué)規(guī)模,也可以促進(jìn)虛擬儀器在教學(xué)、實(shí)驗(yàn)和工程領(lǐng)域的推廣。
評(píng)論