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