基于某型數(shù)據(jù)存儲(chǔ)壓力儀的圖形用戶界面開發(fā)
0 引 言
爆炸沖擊波超壓測(cè)試儀是進(jìn)行各種爆炸試驗(yàn)必備的測(cè)試儀器,可重構(gòu)數(shù)據(jù)存儲(chǔ)壓力儀是一種新型的爆炸沖擊波超壓測(cè)試儀器。該儀器不同于傳統(tǒng)的測(cè)試系統(tǒng),它不需要引線電纜,而是將壓電傳感器、適配放大器、A/D變換器、存儲(chǔ)器、控制電路、接口電路及電池集合在一起,組成一個(gè)獨(dú)立的測(cè)試系統(tǒng)。它可以耐受較高的沖擊加速度、較高的環(huán)境溫度及環(huán)境壓力;能直接放入被測(cè)體內(nèi),在被測(cè)體工作過程中把信號(hào)記錄下來,然后取出裝置,用計(jì)算機(jī)讀出和處理數(shù)據(jù)。該壓力儀具有體積小、功耗低、精度高等特點(diǎn)。正是由于可重構(gòu)數(shù)據(jù)存儲(chǔ)壓力儀的突出特點(diǎn),其被廣泛應(yīng)用于爆炸威力試驗(yàn)。但是該壓力儀自帶的數(shù)據(jù)處理軟件功能卻十分有限。該軟件只能對(duì)所采集到的超壓數(shù)據(jù)逐一進(jìn)行波形顯示和簡單讀取,不能滿足工程實(shí)際中對(duì)測(cè)試數(shù)據(jù)進(jìn)行深入分析的需要。因此,需要對(duì)該軟件進(jìn)行再次開發(fā),使其能對(duì)所采集的數(shù)據(jù)能夠快速讀取并作進(jìn)一步分析處理。MATLAB是一套高性能數(shù)值計(jì)算和可視化軟件,它集數(shù)值分析、矩陣運(yùn)算、信號(hào)處理和圖形顯示于一體,作為一種開發(fā)性程序設(shè)計(jì)軟件在系統(tǒng)建模和仿真、科學(xué)和工程繪圖以及應(yīng)用程序開發(fā)等方面有著廣泛應(yīng)用。在圖形用戶界面設(shè)計(jì)方面,它可以使用M文件來創(chuàng)建圖形用戶界面(GUl),同時(shí)它還提供了一個(gè)方便高效的用戶界面開發(fā)環(huán)境(GUIDE),將所有GUI所支持的用戶控件都集成起來,并提供界面外觀、屬性和行為響應(yīng)方法的設(shè)置方法。使用GUIDE創(chuàng)建GUI對(duì)象執(zhí)行效率高,可以交互地進(jìn)行組件布局,還能生成保存和發(fā)布GUI的對(duì)應(yīng)文件。由于MATLAB在界面開發(fā)方面有著獨(dú)特的優(yōu)勢(shì),本文用MATLAB語言對(duì)爆炸沖擊波超壓測(cè)試儀數(shù)據(jù)處理軟件進(jìn)行二次開發(fā)。
1 數(shù)據(jù)讀取程序設(shè)計(jì)
對(duì)于大多數(shù)用戶,MATLAB函數(shù)load和save為裝載和存儲(chǔ)數(shù)據(jù)提供了足夠的工具。利用以擴(kuò)展名為.mat結(jié)尾的文件名,load和save假定數(shù)據(jù)是以與平臺(tái)無關(guān)的二進(jìn)制格式保存,或者用稱之為flat的ASCII文件格式保存。當(dāng)文件格式非flat ASCII或.mat時(shí),MATLAB提供了基于C語言的低級(jí)文件I/O函數(shù)。用這些低級(jí)文件I/O函數(shù),MATIAB可以讀寫任意文件格式。
該壓力儀的數(shù)據(jù)處理軟件默認(rèn)采集數(shù)據(jù)的存儲(chǔ)格式為.dpr格式,此數(shù)據(jù)格式并不是MATLAB可以直接讀取的數(shù)據(jù)格式,因此需要用MATLAB的低級(jí)文件I/O函數(shù)對(duì)采集數(shù)據(jù)進(jìn)行讀取。通常情況下,在使用MATLAB對(duì)文件進(jìn)行讀取時(shí),需要知道所讀取文件數(shù)據(jù)的長度和存儲(chǔ)精度,而.dpr格式測(cè)試數(shù)據(jù)的存儲(chǔ)狀態(tài)事先并不清楚,所以需要用不同精度格式對(duì)此文件進(jìn)行嘗試性判讀。通過判讀可知:此文件需要分別用‘*char’、‘long’和‘short’三種格式進(jìn)行讀取,其中用‘short’格式讀取的數(shù)據(jù)是采集到的4 194 304個(gè)超壓信號(hào)數(shù)據(jù)。圖1為.dpr文件的讀取流程。其中,P為壓力儀采集到的超壓數(shù)據(jù),T為超壓數(shù)據(jù)所對(duì)應(yīng)的采集時(shí)刻。
圖2為用該程序讀取的超壓數(shù)據(jù)和用壓力儀自帶軟件讀取的超壓數(shù)據(jù)對(duì)比圖。其中,上部分為用壓力儀自帶程序讀出的超壓數(shù)據(jù),下部分為用MATLAB編程讀取到的超壓數(shù)據(jù)??梢钥吹接肕ATLAB程序讀取到的超壓數(shù)據(jù)和壓力儀自帶軟件讀取的超壓數(shù)據(jù)完全一致,這樣就町以對(duì)采集到的超壓數(shù)據(jù)進(jìn)行進(jìn)一步分析處理。
2 圖形用戶界面開發(fā)
圖形用戶界面(graphical user interfaces,GUI)是由窗口、光標(biāo)、按鍵、菜單、文字說明等對(duì)象(Objects)構(gòu)成的一個(gè)用戶界面,用戶通過一定的方法選擇、激活這些圖形對(duì)象,以實(shí)現(xiàn)計(jì)算、繪圖等功能。如果所需要的數(shù)據(jù)分析程序比較單一,那么一般不會(huì)考慮GUI的制作。但是如果需要向別人提供應(yīng)用程序,進(jìn)行某種演示,制作一個(gè)供反復(fù)使用且操作簡單的專用工具,那么圖形用戶界面就是最好的選擇之一。
評(píng)論