基于某型数据存储压力仪的图形用户界面开发
扫描二维码
随时随地手机看文章
0 引 言
爆炸冲击波超压测试仪是进行各种爆炸试验必备的测试仪器,可重构数据存储压力仪是一种新型的爆炸冲击波超压测试仪器。该仪器不同于传统的测试系统,它不需要引线电缆,而是将压电传感器、适配放大器、A/D变换器、存储器、控制电路、接口电路及电池集合在一起,组成一个独立的测试系统。它可以耐受较高的冲击加速度、较高的环境温度及环境压力;能直接放入被测体内,在被测体工作过程中把信号记录下来,然后取出装置,用计算机读出和处理数据。该压力仪具有体积小、功耗低、精度高等特点。正是由于可重构数据存储压力仪的突出特点,其被广泛应用于爆炸威力试验。但是该压力仪自带的数据处理软件功能却十分有限。该软件只能对所采集到的超压数据逐一进行波形显示和简单读取,不能满足工程实际中对测试数据进行深入分析的需要。因此,需要对该软件进行再次开发,使其能对所采集的数据能够快速读取并作进一步分析处理。MATLAB是一套高性能数值计算和可视化软件,它集数值分析、矩阵运算、信号处理和图形显示于一体,作为一种开发性程序设计软件在系统建模和仿真、科学和工程绘图以及应用程序开发等方面有着广泛应用。在图形用户界面设计方面,它可以使用M文件来创建图形用户界面(GUl),同时它还提供了一个方便高效的用户界面开发环境(GUIDE),将所有GUI所支持的用户控件都集成起来,并提供界面外观、属性和行为响应方法的设置方法。使用GUIDE创建GUI对象执行效率高,可以交互地进行组件布局,还能生成保存和发布GUI的对应文件。由于MATLAB在界面开发方面有着独特的优势,本文用MATLAB语言对爆炸冲击波超压测试仪数据处理软件进行二次开发。
1 数据读取程序设计
对于大多数用户,MATLAB函数load和save为装载和存储数据提供了足够的工具。利用以扩展名为.mat结尾的文件名,load和save假定数据是以与平台无关的二进制格式保存,或者用称之为flat的ASCII文件格式保存。当文件格式非flat ASCII或.mat时,MATLAB提供了基于C语言的低级文件I/O函数。用这些低级文件I/O函数,MATIAB可以读写任意文件格式。
该压力仪的数据处理软件默认采集数据的存储格式为.dpr格式,此数据格式并不是MATLAB可以直接读取的数据格式,因此需要用MATLAB的低级文件I/O函数对采集数据进行读取。通常情况下,在使用MATLAB对文件进行读取时,需要知道所读取文件数据的长度和存储精度,而.dpr格式测试数据的存储状态事先并不清楚,所以需要用不同精度格式对此文件进行尝试性判读。通过判读可知:此文件需要分别用‘*char’、‘long’和‘short’三种格式进行读取,其中用‘short’格式读取的数据是采集到的4 194 304个超压信号数据。图1为.dpr文件的读取流程。其中,P为压力仪采集到的超压数据,T为超压数据所对应的采集时刻。
图2为用该程序读取的超压数据和用压力仪自带软件读取的超压数据对比图。其中,上部分为用压力仪自带程序读出的超压数据,下部分为用MATLAB编程读取到的超压数据。可以看到用MATLAB程序读取到的超压数据和压力仪自带软件读取的超压数据完全一致,这样就町以对采集到的超压数据进行进一步分析处理。
2 图形用户界面开发
图形用户界面(graphical user interfaces,GUI)是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面,用户通过一定的方法选择、激活这些图形对象,以实现计算、绘图等功能。如果所需要的数据分析程序比较单一,那么一般不会考虑GUI的制作。但是如果需要向别人提供应用程序,进行某种演示,制作一个供反复使用且操作简单的专用工具,那么图形用户界面就是最好的选择之一。
由于超压测试工作需要一个使用方便、快速、直观而且操作简单的程序,所以本文为超压测试仪的.dpr文件读取程序设计了相应的图形用户界而。在MATIAB下建立一个图形窗口由命令figure完成,每执行一次figure命令就产生一个图形窗口,这些窗口都被自动分配一个句柄。在图形窗口中有一系列对象,每一个对象有一个句柄和它相关,每一个对象可以设置和改变属性。在图形窗口中,坐标轴和用户界面等对象足图形窗口的子对象,而线条、文本、表面和图像等是坐标轴的子对象。每个父对象中可以包含一个或多个子对象,所有创建的对象当父对象小存在时,都会首先自动创建它们。图3为所设计的超压测试仪数据分析程序界面。使用时,只需用输入传感器编号、传感器相对于爆炸装置的距离以及测试数据存放的地址,程序可以一次性读取试验中所有压力仪的测试数据,并且能够自动判读各个距离卜所测超压的峰值、计算冲击波的正压作用时间、冲量以及冲击波传播的平均速度。这样就得到了爆炸冲击波的基本参数,从而可以进一步对爆炸冲击波进行威力评估。
3 应用实例
为了检验该程序的实用性,在某次自由空间的TNT静爆试验中,对该程序进行了应用。试验工况:TNT的质量为35kg,爆高为1.2 m,起爆方式为两端起爆,16个可重构数据存储压力仪分两路分别布置在距爆点投影中心5 m、6 m、8m、10 m、12 m、14 m、17 m、20 m的位置处。
用雷管引爆TNT炸药后,用可重构数据存储压力仪采集TNT的爆炸冲击波,信号采集完成后用压力仪自带软件对压力仪存储的数据进行存取,然后用开发程序对所采集到的数据进行分析处理,从而得到此次爆炸产生的冲击波的主要威力评估参数。表1列出了利用该程序计算得出的爆炸冲击波超压的主要参数,图4显示了压力仪在不同距离处采集到的爆炸冲击波的波形图,图5和图6分别为超压峰值、冲击波平均传播速度、正压作用时间以及冲量随距离的变化曲线。
从以上图表中对TNT爆炸冲击波的测量数据有一个清楚直观的了解,并且由图6可以看到压力仪在10 m处所测数据不是有效数据,因为该点测得的正压作用时间和冲量都出现了异常。
4 结束语
(1)通过对压力仪存储数据格式的分析,用MATLAB读取到压力仪的测试数据,并根据实际测试需求,开发了基于图形用户界面的数据读取分析程序,该程序具有良好的人机交互性,可以简单、方便地对所测数据进行分析处理。
(2)经过实际应用,该程序可以快速、准确地判读出一次爆炸中所有测试点的威力评估参数,省掉了人工判读时的繁杂程序和人为误差,节约了时间,并且可以直观判断出所测数据是否有效,有利于对爆炸威力进行准确评估。
(3)此程序基于MATLAB7.0中的GUIDE模板编制,具有很好的可扩展性,可以在今后的应用中根据不同需求对该程序的功能做进一步拓展,比如在进行数据读取之前进行数字滤波等。