基于某型數(shù)據(jù)存儲(chǔ)壓力儀的圖形用戶界面開發(fā)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
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)行波形顯示和簡(jiǎ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ù)使用且操作簡(jiǎn)單的專用工具,那么圖形用戶界面就是最好的選擇之一。
由于超壓測(cè)試工作需要一個(gè)使用方便、快速、直觀而且操作簡(jiǎn)單的程序,所以本文為超壓測(cè)試儀的.dpr文件讀取程序設(shè)計(jì)了相應(yīng)的圖形用戶界而。在MATIAB下建立一個(gè)圖形窗口由命令figure完成,每執(zhí)行一次figure命令就產(chǎn)生一個(gè)圖形窗口,這些窗口都被自動(dòng)分配一個(gè)句柄。在圖形窗口中有一系列對(duì)象,每一個(gè)對(duì)象有一個(gè)句柄和它相關(guān),每一個(gè)對(duì)象可以設(shè)置和改變屬性。在圖形窗口中,坐標(biāo)軸和用戶界面等對(duì)象足圖形窗口的子對(duì)象,而線條、文本、表面和圖像等是坐標(biāo)軸的子對(duì)象。每個(gè)父對(duì)象中可以包含一個(gè)或多個(gè)子對(duì)象,所有創(chuàng)建的對(duì)象當(dāng)父對(duì)象小存在時(shí),都會(huì)首先自動(dòng)創(chuàng)建它們。圖3為所設(shè)計(jì)的超壓測(cè)試儀數(shù)據(jù)分析程序界面。使用時(shí),只需用輸入傳感器編號(hào)、傳感器相對(duì)于爆炸裝置的距離以及測(cè)試數(shù)據(jù)存放的地址,程序可以一次性讀取試驗(yàn)中所有壓力儀的測(cè)試數(shù)據(jù),并且能夠自動(dòng)判讀各個(gè)距離卜所測(cè)超壓的峰值、計(jì)算沖擊波的正壓作用時(shí)間、沖量以及沖擊波傳播的平均速度。這樣就得到了爆炸沖擊波的基本參數(shù),從而可以進(jìn)一步對(duì)爆炸沖擊波進(jìn)行威力評(píng)估。
3 應(yīng)用實(shí)例
為了檢驗(yàn)該程序的實(shí)用性,在某次自由空間的TNT靜爆試驗(yàn)中,對(duì)該程序進(jìn)行了應(yīng)用。試驗(yàn)工況:TNT的質(zhì)量為35kg,爆高為1.2 m,起爆方式為兩端起爆,16個(gè)可重構(gòu)數(shù)據(jù)存儲(chǔ)壓力儀分兩路分別布置在距爆點(diǎn)投影中心5 m、6 m、8m、10 m、12 m、14 m、17 m、20 m的位置處。
用雷管引爆TNT炸藥后,用可重構(gòu)數(shù)據(jù)存儲(chǔ)壓力儀采集TNT的爆炸沖擊波,信號(hào)采集完成后用壓力儀自帶軟件對(duì)壓力儀存儲(chǔ)的數(shù)據(jù)進(jìn)行存取,然后用開發(fā)程序?qū)λ杉降臄?shù)據(jù)進(jìn)行分析處理,從而得到此次爆炸產(chǎn)生的沖擊波的主要威力評(píng)估參數(shù)。表1列出了利用該程序計(jì)算得出的爆炸沖擊波超壓的主要參數(shù),圖4顯示了壓力儀在不同距離處采集到的爆炸沖擊波的波形圖,圖5和圖6分別為超壓峰值、沖擊波平均傳播速度、正壓作用時(shí)間以及沖量隨距離的變化曲線。
從以上圖表中對(duì)TNT爆炸沖擊波的測(cè)量數(shù)據(jù)有一個(gè)清楚直觀的了解,并且由圖6可以看到壓力儀在10 m處所測(cè)數(shù)據(jù)不是有效數(shù)據(jù),因?yàn)樵擖c(diǎn)測(cè)得的正壓作用時(shí)間和沖量都出現(xiàn)了異常。
4 結(jié)束語
(1)通過對(duì)壓力儀存儲(chǔ)數(shù)據(jù)格式的分析,用MATLAB讀取到壓力儀的測(cè)試數(shù)據(jù),并根據(jù)實(shí)際測(cè)試需求,開發(fā)了基于圖形用戶界面的數(shù)據(jù)讀取分析程序,該程序具有良好的人機(jī)交互性,可以簡(jiǎn)單、方便地對(duì)所測(cè)數(shù)據(jù)進(jìn)行分析處理。
(2)經(jīng)過實(shí)際應(yīng)用,該程序可以快速、準(zhǔn)確地判讀出一次爆炸中所有測(cè)試點(diǎn)的威力評(píng)估參數(shù),省掉了人工判讀時(shí)的繁雜程序和人為誤差,節(jié)約了時(shí)間,并且可以直觀判斷出所測(cè)數(shù)據(jù)是否有效,有利于對(duì)爆炸威力進(jìn)行準(zhǔn)確評(píng)估。
(3)此程序基于MATLAB7.0中的GUIDE模板編制,具有很好的可擴(kuò)展性,可以在今后的應(yīng)用中根據(jù)不同需求對(duì)該程序的功能做進(jìn)一步拓展,比如在進(jìn)行數(shù)據(jù)讀取之前進(jìn)行數(shù)字濾波等。