李德川,馬清峰,單 巍,黃 克
(淮北師范大學 物理與電子信息學院,安徽 淮北 235000)
作為信號轉(zhuǎn)換的基本單元,傳感器能夠利用敏感物質(zhì)把各種非電量轉(zhuǎn)化為可讀取的電信號,實現(xiàn)物理量的表征。目前,傳感器已被廣泛地應(yīng)用于工業(yè)、農(nóng)業(yè)、交通和教育等領(lǐng)域,在信號檢測和智能儀表中發(fā)揮著重要作用[1-3]。
在傳感器實驗教學中,教學內(nèi)容多以開放性的探索實驗為主,學生常常利用傳感電路測量某個物理量在某一范圍內(nèi)的變化規(guī)律,采集的數(shù)據(jù)呈現(xiàn)出組數(shù)多、數(shù)據(jù)量大和數(shù)值不唯一等特點,導致數(shù)據(jù)計算結(jié)果具有多樣性。而教師在評判眾多實驗結(jié)果時,只能根據(jù)數(shù)據(jù)處理方法進行粗略評判,無法針對學生測試的實際數(shù)據(jù)提供具體的標準參考數(shù)值,從而可能產(chǎn)生誤判。因此,如何快速準確地分析每位學生測試數(shù)據(jù)的有效性是每一位任課教師需要解決的實際問題。為解決實驗數(shù)據(jù)組數(shù)多和數(shù)值大小不同等問題,需要一款能夠快速重現(xiàn)和分析實驗數(shù)據(jù)的處理系統(tǒng),并且所設(shè)計系統(tǒng)能適用其系列下所有測量儀器。
在現(xiàn)有數(shù)據(jù)獲取的方式中,LabVIEW軟件具有可視化的人機交互采集模式,使用圖形化界面將軟件分析和硬件測試結(jié)果結(jié)合起來,廣泛用于水下溫鹽深數(shù)據(jù)探測[4]、溫度采集[5]、生化信號采集[6]、漏水檢測[7]和動態(tài)轉(zhuǎn)矩監(jiān)測[8]等場景,在數(shù)據(jù)采集和處理方面具有快速、直觀和形象化的優(yōu)點。但在現(xiàn)有研究中,采用LabVIEW設(shè)計的電路常常采集的都是單獨信號、連續(xù)信號或等間隔信號,而關(guān)于非等間隔信號采集電路的設(shè)計相對較少,也未發(fā)現(xiàn)LabVIEW在通用電壓傳感信號數(shù)據(jù)復(fù)測方面的應(yīng)用。
為此,本文基于LabVIEW 2018設(shè)計了一款傳感器智能測試與分析系統(tǒng)。該系統(tǒng)利用圖形化編程開發(fā)平臺,調(diào)用杭州英聯(lián)YL610型現(xiàn)代檢測技術(shù)綜合實驗臺上的8路A/D轉(zhuǎn)換模塊,實現(xiàn)了非等間隔電壓信號的快速采集、分析和評價。在程序執(zhí)行過程中,用戶可自由設(shè)定輸入量的大小,實時觀察測量進度,并能在測量結(jié)束后預(yù)覽全部測量數(shù)據(jù)、刪除誤差數(shù)據(jù)和查看數(shù)據(jù)分析結(jié)果。本文設(shè)計系統(tǒng)具有實驗進程清晰、檢測速度快和參數(shù)指標直觀等特點,可直接用于應(yīng)變式、電感式、電容式和霍爾式等傳感器實驗中大量隨機電壓信號的快速復(fù)測、分析和驗證,為每一組測量數(shù)據(jù)提供可參考的傳感器靜態(tài)特性指標值。同時,該系統(tǒng)預(yù)留開發(fā)端口,可用于編程再開發(fā),增加系統(tǒng)功能的適用性。
LabVIEW軟件是一個開放式平臺,允許用戶調(diào)用系統(tǒng)函數(shù)讀取通用設(shè)備I/O接口的數(shù)據(jù),并結(jié)合圖形化人機交互界面,實現(xiàn)數(shù)據(jù)采集、分析和處理[9-11]。本文設(shè)計系統(tǒng)通過調(diào)用8路A/D轉(zhuǎn)換模塊(圖1中標記部分),實現(xiàn)了數(shù)據(jù)的采集與分析功能。系統(tǒng)開發(fā)流程如圖2所示。
由圖2可知,在數(shù)據(jù)采集過程中,軟件通過讀取計算機串口通道號、板卡通道地址和端口數(shù)據(jù)信號,組建特征字符串數(shù)據(jù)流,將該數(shù)據(jù)存入系統(tǒng)緩沖區(qū)。在數(shù)據(jù)處理過程中,利用“VISA”模塊獲取緩沖區(qū)的數(shù)據(jù)流,并截取其中的4位十六進制測量數(shù)據(jù),將其轉(zhuǎn)化為相應(yīng)的十進制數(shù)值,并進行實時顯示。最后,程序?qū)τ行?shù)據(jù)進行處理,并將處理結(jié)果展示在XY曲線圖和數(shù)值顯示變量中,實現(xiàn)了采集、處理和分析的一體化設(shè)計。同時,在該設(shè)計方案中,也可采用通用的A/D轉(zhuǎn)換模塊替換本實驗平臺上的A/D模塊,實現(xiàn)通用數(shù)據(jù)采集系統(tǒng)的設(shè)計。
系統(tǒng)軟件的開發(fā)主要分為2個部分:“前面板”布局的設(shè)計和“后面板”編程。在前面板的程序設(shè)計中,考慮數(shù)據(jù)采樣區(qū)、處理區(qū)和顯示功能區(qū)的布局,從簡潔、直觀和易操作等方面進行排版。在后面板的程序設(shè)計中,注重程序?qū)δK的讀取順序、存儲方式、字符串截取和響應(yīng)時間,利用for循環(huán)、while循環(huán)和順序結(jié)構(gòu)進行程序開發(fā),設(shè)計出自變量可調(diào)的測試與分析系統(tǒng)。
數(shù)據(jù)采集前面板為人機交互界面,如圖3所示。
由圖3可知,該界面主要由硬件參數(shù)設(shè)置、數(shù)據(jù)展示和結(jié)果分析3個模塊組成。在硬件參數(shù)模塊設(shè)計中,“通道選擇”和“波特率”可以分別通過“創(chuàng)建VISA資源名稱”和“數(shù)值輸入控件”完成。通道選擇部分可以實時檢測計算機接口,并通過下拉方式呈現(xiàn)串口標識供用戶選擇。在板卡模塊設(shè)計中,采用“字符串控件”作為“下位機板卡地址”和“通道號”變量的輸入端,用于指定數(shù)據(jù)采集。在實時參數(shù)顯示模塊的設(shè)計中,通過創(chuàng)建“字符串顯示控件”變量,實時顯示數(shù)據(jù)的測量進程。在自變量數(shù)組的設(shè)計中,系統(tǒng)選用“數(shù)值輸入數(shù)組”控件創(chuàng)建自變量,使設(shè)計系統(tǒng)能夠復(fù)測出不同輸入下的傳感數(shù)值。同時,測試數(shù)據(jù)和分析結(jié)果可以直接顯示在“數(shù)組顯示控件”、“字符串顯示控件”和“XY圖”上,簡潔直觀。
通道選擇與端口配置如圖4所示。
由圖4可知,首先,利用“格式化寫入字符串”控件將下位機板卡地址和A/D通道號寫入特定字符串,“連接字符串”控件將通道號和特定字符組成完整的數(shù)據(jù)字符串,實現(xiàn)傳感端口的信息采集。再利用VISA Configure Serial Port串口配置控件,將通訊通道號、波特率和數(shù)據(jù)信息寫入寄存器,實現(xiàn)端口的配置和數(shù)據(jù)的寫入。該串口配置控件可通過前面板/儀器I/O/VISA選項下的“VISA配置串口”獲取。
數(shù)據(jù)讀取與轉(zhuǎn)換如圖5所示。
由圖5可知,將屬性節(jié)點中的字符串數(shù)據(jù)讀出需要利用截取和轉(zhuǎn)換模塊,得到表征傳感數(shù)值的字符串。首先,“屬性節(jié)點”將當前串口緩沖區(qū)中的字節(jié)數(shù)傳給“VISA讀取”,讀取當前含有數(shù)據(jù)的字符串;其次,選用“截取字符串”函數(shù),設(shè)置偏移量為7,數(shù)據(jù)長度為4,得到表征測量數(shù)據(jù)的十六進制字符串;最后,利用“十六進制字符串至數(shù)值轉(zhuǎn)換”函數(shù),將十六進制字符串轉(zhuǎn)換為十進制數(shù)值量。
本文設(shè)計系統(tǒng)調(diào)用的是杭州英聯(lián)YL610實訓平臺中的8路A/D模塊,其電壓范圍為0~5 V,分辨力為10位二進制數(shù),A/D轉(zhuǎn)換后的數(shù)字量X對應(yīng)的電壓值為Y。電壓值Y的表達公式為
(1)
批量非等時間間隔的數(shù)據(jù)采集設(shè)計如圖6所示。
從圖6可知,批量非等時間間隔的數(shù)據(jù)采集程序主要由循環(huán)結(jié)構(gòu)和平鋪式順序結(jié)構(gòu)構(gòu)成。在平鋪式順序結(jié)構(gòu)中,由于A/D模塊轉(zhuǎn)換數(shù)據(jù)時需要一定的時間,因此,需要在數(shù)據(jù)的寫入模塊和讀取模塊中間設(shè)置一次系統(tǒng)延遲,以等待模塊響應(yīng)。在單個數(shù)據(jù)的測量時,可以通過順序結(jié)構(gòu)的端口讀取和數(shù)據(jù)轉(zhuǎn)換來完成。當需要對多個數(shù)據(jù)進行采集時,則需要重復(fù)執(zhí)行采集過程。因此,針對采樣需求,設(shè)置for循環(huán)結(jié)構(gòu),實現(xiàn)對數(shù)據(jù)的連續(xù)采樣。然而,由于傳感數(shù)據(jù)測量和實驗過程并不是瞬時完成的,且相鄰采樣時間長短不一,因而不能直接用for循環(huán)和定時延遲的方式連續(xù)執(zhí)行,而是需要在2次循環(huán)中設(shè)置不定時長的中斷暫停,為用戶提供自由的外部操作時間。待用戶實驗準備完成后,才能進行下一步操作。常見的循環(huán)暫停主要是通過使用狀態(tài)機的形式來完成[12-14],但這些方式需要額外設(shè)置函數(shù)節(jié)點,增加程序的復(fù)雜性,而定時函數(shù)模塊只能用于設(shè)置固定的程序暫停時間??紤]到等待時間的不確定性,本研究采用在下一次循環(huán)前增加“確認對話框”的形式執(zhí)行采集確認,在保持程序簡潔的情況下,實現(xiàn)采樣的不定時暫停。
在數(shù)據(jù)批量分析和處理中,利用“Line Fit”函數(shù)模塊、數(shù)組模塊和循環(huán)結(jié)構(gòu)生成數(shù)據(jù)的擬合直線,用于校準數(shù)據(jù)和擬合直線間的數(shù)值差異。2類數(shù)據(jù)通過“簇數(shù)組”綁定后以“XY圖”的形式直接顯示在前面板的人機交互界面上,實現(xiàn)數(shù)據(jù)的可視化展示。在“Line Fit”函數(shù)中,選擇最小二乘法處理數(shù)據(jù),得到擬合精度較高的傳感器指標參數(shù)。數(shù)據(jù)求解過程如下:
(2)
(3)
聯(lián)立公式(2)和公式(3)可得
(4)
(5)
利用公式(1-4)可得到測量數(shù)據(jù)的擬合直線的斜率K,該值即為傳感器的靈敏度。同時,把計算得到的K和b生成擬合直線。通過“創(chuàng)建數(shù)組”和“索引數(shù)組”進行數(shù)值綁定,生成能同時顯示“測量值”和“擬合直線”的XY曲線圖。在傳感器性能指標參數(shù)線性度的求解中,將“Line Fit”函數(shù)產(chǎn)生的殘差組建殘差數(shù)組,然后利用“數(shù)組最大值和最小值”函數(shù)取出最大殘差,利用公式(6)求出傳感器的線性度。線性度δL的表達公式為
(6)
式中:△Ymax為測量值和擬合直線間的最大殘差,YF·S為傳感器的量程。
數(shù)據(jù)批量分析和處理過程如圖7所示。
由圖7(a)可知,本文對條件結(jié)構(gòu)為真時的誤差數(shù)據(jù)利用“平鋪式順序結(jié)構(gòu)”進行了刪除處理。首先執(zhí)行數(shù)據(jù)預(yù)覽,以識別數(shù)據(jù)中是否有粗大誤差數(shù)據(jù)。然后利用條件結(jié)構(gòu),通過判斷對話框選擇是否進入“刪除無效數(shù)據(jù)”的分支語句。當發(fā)現(xiàn)測量數(shù)據(jù)中存在誤差數(shù)據(jù)時,可輸入數(shù)據(jù)在該數(shù)組中的索引位置直接刪除。當有多個誤差數(shù)據(jù)時,While循環(huán)可依次刪除其他誤差數(shù)據(jù),并把剩余數(shù)據(jù)按原順序保存在數(shù)組中。當所有誤差數(shù)據(jù)刪除后,可選擇對話框中的“數(shù)據(jù)不需要刪除”按鈕,進入有效數(shù)據(jù)處理環(huán)節(jié)。由圖7(b)可知,利用數(shù)組分析組件可以實現(xiàn)傳感器線性度參數(shù)、靈敏度參數(shù)和擬合直線的計算和顯示。
測試前,需要預(yù)先選擇數(shù)據(jù)的通訊端口、波特率、板卡地址和通道號,并輸入待驗證的自變量x,然后運行程序進行系統(tǒng)測試。系統(tǒng)測試和分析的過程如圖8所示。
由圖8(a)可知,試驗人員可通過對話框?qū)嵤┐_認,實現(xiàn)按需采集數(shù)據(jù);由圖8(b)可知,需要刪除的數(shù)據(jù)為數(shù)組中的元素x4(100, 2.397 46),在數(shù)據(jù)修正模塊輸入需要刪除的元素索引,實現(xiàn)了無效數(shù)據(jù)的刪除;由圖8(c)可知,當元素刪除后,數(shù)組X和Y中無效數(shù)據(jù)消失,而且對應(yīng)的XY坐標圖上的數(shù)據(jù)已實時更新,待確認無誤差數(shù)據(jù)后,選擇“數(shù)據(jù)不需要刪除”按鈕,進入數(shù)據(jù)的分析階段;圖8(d),顯示了數(shù)據(jù)處理結(jié)果和相應(yīng)的傳感器指標參數(shù)。通過對實驗數(shù)據(jù)中無效數(shù)據(jù)的刪除和有效數(shù)據(jù)的線性擬合,實現(xiàn)了數(shù)據(jù)的可視化快速評判。
為驗證本文設(shè)計系統(tǒng)的數(shù)據(jù)精準度和測量誤差,將設(shè)計系統(tǒng)和UT56數(shù)字萬用表對同一信號進行采集。其中,UT56數(shù)字萬用表選用的是20 V量程,分辨力為1 mV,準確度為±(0.1%讀數(shù)+3字數(shù)),數(shù)據(jù)對比分析結(jié)果見表1。
表1 數(shù)據(jù)對比分析結(jié)果 單位:V
由表1可知,本文設(shè)計系統(tǒng)的測量數(shù)值與商用萬用表基本保持一致,測量誤差在0.003 V以內(nèi),且能保持相對穩(wěn)定,其精度能夠滿足正常的教學測試要求,可以廣泛應(yīng)用于電壓信號的采集和分析。
本文基于LabVIEW軟件,利用綜合實訓平臺上的A/D轉(zhuǎn)換模塊,設(shè)計了傳感器智能測試與分析系統(tǒng)。該系統(tǒng)提供8路A/D轉(zhuǎn)換口供用戶自由選擇,可自動檢測電腦端的USB接口,允許用戶對任意自變量下的信號進行實時采集,并可通過修改前面板中數(shù)據(jù)變量的“數(shù)值類的屬性”設(shè)定線性度參數(shù)和靈敏度參數(shù)等浮點型變量的顯示“位數(shù)”,實現(xiàn)了對顯示數(shù)據(jù)有效位數(shù)的四舍五入,具有廣泛的適用性。該系統(tǒng)具有數(shù)據(jù)采集、數(shù)據(jù)預(yù)覽、無效數(shù)據(jù)刪除和數(shù)據(jù)分析等功能,可用于應(yīng)變式、電容式、電感式、熱電式和霍爾式等傳感器教學過程中電壓信號的采集與分析。同時,測試進度和傳感器參數(shù)可直觀顯示,有助于教師快速評判學生測試數(shù)據(jù)的質(zhì)量,提高教師工作效率。