0 引言
随着电子装备的复杂程度越来越高,现代战争对装备的可靠性的要求也愈来愈高,因此对可靠性试验提出了更高的要求,而可靠性试验数据是装备可靠性*估、设计、研究的重要依据和有力支撑,数据分析则是一切可靠性工作的基础,可靠性试验数据的分析工作越来越显示出其重要的价值和作用。在对系统可靠性分析时,必须对采集的大量原始数据进行预处理,用人工的方法完成这项任务既浪费时间,又容易出错。MATLAB 软件具有强大的数值计算环境和统计分析功能,而VC++又可以实现良好的人机交互界面,采用两种软件混合编程的方法,实现可靠性试验数据处理既弥补了各自的缺点,又提高了试验效率,是软件编程的最佳选择。
1 可靠性试验原始数据处理理论
可靠性试验原始数据处理理论参考文献。可靠性试验原始数据不能直接提供给研究人员做可靠性评估和分析,须针对试验对象、试验类型、信号类型的不同选取不同的数据处理标准,对于原始试验数据的处理主要包括以下几个方面:
1.1 特征参数提取
特征参数提取主要是对试验中采集原始数据提取试验对象在应力条件有明显变化趋势,用于可靠性评估的特征参数的提取,以文献所述的某型雷达装备20 kHZ 信号板为研究对象的可靠性为例,信号板最终输出为一20 kHz 的正弦信号,所以其频率、周期以及幅度(或峰峰值)均是可以反映该电路板是否完成规定功能和发生故障的重要指标参数,因而对于该试验原始数据处理的工作就是从中提取出信号频率、幅度等参数,整理成一定格式用于可靠性评估与分析。具体针对不同形式的试验数据提取方法不尽相同,主要有以下几方面:
1.1.1 非线性数据拟合法
曲线拟合的基本原理是:已知一组测定的数据(例如N个点( xi ,yi )求得自变量x 和因变量y 的一个近似解析表达式y =φ( x )。若记误差δi=φ( xi )- yi , i =1,2,…, N ,则要使误差的平方和最小,要求:
为最小,这就是常用的最小二乘法原理。
Matlab 中非线性数据拟合的函数有lsqcurvefit,lsqnonlin, inline 三个函数,以lsqcurvefit 为例,其调用格式为:x=lsqcurvefit(‘fun’,x0,xdata,ydata) 其中’fun’为拟合函数的M 函数文件名,x0 为初始向量,xdata,ydata 为参与曲线拟合的自变量和因变量试验数据。其他两个函数调用格式与其类似。非线性数据拟合法主要用于能够用于简单信号以及有具体参数函数模型的信号,如正弦波、三角波、方波等。
1.1.2 小波分析法
对于一些复杂信号没有具体函数模型的信号就不能用非线性数据拟合法进行参数提取,如可靠性试验中施加振动应力的试验需要对振动信号进行分析并提取参数,这类信号可采用小波分析法进行参数提取。
小波分析法处理数据主要包括两方面:①小波降噪;②小波包能量距提取。
(1)小波降噪原理
小波变换因其低熵性、去相关性等特点可以比较好地对信号进行降噪处理,小波降噪过程可分为3个步骤进行:①选择一个小波, 并确定一个小波分解层次N,然后对信号进行N层小波分解;②对小波分解的高频系数进行阈值量化, 从第1层到第N层的每一层高频系数选择一个阈值进行阈值量化处理;③根据小波分解的第N层的低频系数和经过量化处理后的第1层到第N层的高频系数,进行信号的重构。
(2)基于小波包的特征参数提取
基于小波包分析法提取参数的步骤是:
①对信号进行小波降噪处理,提取有用信号;②对经过降噪处理的信号采用合理的小波进行某尺度分解,得到不同频带的分解系数;③分别对不同频带的分解系数进行信号重构,得到一组新的时间序列;④对重构信号进行希尔伯特变换求其包络,并对包络进行小波降噪处理;⑤分别对不同频带的信号求其包络谱,并计算各自包络谱的能量,以能量为元素构造信号的特征向量。
包络谱能量:
式(2)中ik x (i=1,2;k=1,2,…,n)表示重构信号包络谱的离散点幅值。当能量较大时,Ei 通常是一个较大的数值,可对其进行归一化处理,令,即:
将T= 【e 1,e 2…… ei】 作为特征向量。
1.2 绘制可靠性数据频率分布
首先将原始数据以大小来分组,按散步在各组的数据个数作成分布图,这种图形称作频率分布图。对于随机分布的数据,用统计频数条形图可以形象地进行描述。
把系统可靠性数据读入MATLAB 的工作空间,便可绘制可靠性数据频数分布图。MATLAB 统计工具箱提供的hiST函数,用于作分布图的MATLAB 命令,其命令格式如下:
HIST(data,k)其中,data 为原始数据;k 为所分小区间数。
1.3 参数估计
根据绘制出的分布图的形状,假设可靠性数据服从某一分布,一般情况可靠性数据服从负指数分布。指数分布可以通过命令expfit 进行参数估计,该命令用其极大似然法给出了常用的概率分布参数的点估计和区域估计值,命令格式如下:
[muhat,muci]=expfit(data),
式中,muhat 为参数μ 的估计值;muci 为参数μ 的估计置信区间。正态分布可以通过命令normfit 进行参数估计,该命令用极大似然法给出了常用的概率分布参数的点估计和区域估计值,命令格式如下:
[muhat,sigmahat,muci,sigmaci]=normfit(data),
式中,muhat 为参数μ 的估计值;muci 为参数μ 的估计的置信区间;sigmahat 为参数σ 置信区间。
2 方案设计与具体实现
针对可靠性试验中试验对象、试验类型的不同,选择的能反映试验对象发生故障的特征量参数也不尽相同。采用上述两种方法对进行处理,用户根据原始试验数据类型的不同,选择不同的方法由软件对其进行处理,并通过处理得到其相关参数。
2.1 方案选择
方案初步定为采用MATLAB 实现数据处理,人机交互界面的设计则用VC完成,主要解决的问题是VC和MATLAB接口实现。将MATLAB 与VC 混合编程有如下四种方法:
①调用MATLAB 引擎。该方法的优点是能支持所有的MATLAB 函数,缺点是混合编程后的可执行程序脱离不了MATLAB 的运行环境;
②利用MATLAB 自带的mcc 编译器;
③利用Matcom 编译。用Matcom 进行转换非常简单、方便,生成的代码可读性很好,且在C 编译器编译后其代码的执行效率高。但是这种方法也不能支持所有MATLAB 工具箱函数;
④利用MATLAB COMBuilder。MATLAB 提供的COM生成器(COMBuilder),为实现MATLAB 独立应用程序增加了又一个新途径。
在比较几种方法优缺点的基础上,确定采用第①种方法实现可靠性试验原始数据的处理。
2.2 MATLAB 实现具体功能
以某型雷达20 kHZ 信号板为试验对象在温度应力下进行加速寿命试验,示波器采集的数据是以excel 文件,调用Matlab 软件可以对起进行非线性拟合处理,以下是实现特征参数提取的源代码:
sampt=xlsread('F:\2-1','B3:B1002');%读入采样时间
v=xlsread('F:\ output195','B2:AS1001');%读入采集数据
for i=1:11 smv(:,i)=smooth(v(:,i)); end %对数据平滑处理
F=@(x,xdata)x(1)*sin(x(2)*xdata+x(3))+x(4)),'x','xdata';
xdata=sampt;
for j=1:44
ydata=v(:,j); x0=[9 1*10^5 0 0];%初始分量
x=lsqcurvefit(F,x0,xdata,ydata);
amp(j)=x(1);fre(j)=x(2)/(2*pi); inip(j)=x(3); inic(j)=x(4);
end
xlswrite('F:\处理结果\amplitude.xls',amp,'B2:AS2')%将幅度参数写入Excel 文件里
xlswrite('F:\处理结果\amplitude.xls',amp,'B2:AS2')%将幅度参数写入Excel 文件里2.3 MATLAB 与VC++混合编程实现:
如前述,结合VC++与MATLAB 的各自优缺点,采用调用MATLAB 引擎的VC++与MATLAB 的混合编程[6-7]的方法实现对可靠性试验原始数据的参数提取。VC++调用MATLAB引擎[3-4]的步骤如下:
如图1 所示数据处理结果与原始数据波形对比图。
图1 数据拟合结果与原始数据对比图
3 结语
采用了调用MATLAB 引擎的方法与VC++混合编程方法实现可靠性试验原始数据的参数提取和拟合运算、绘制直方图等处理。这种方法不仅实现了VC 的可视化界面与MATLAB 强大的数值分析与图形显示能力的有效结合,不仅提高了可靠性试验数据处理的效率,还有效节省了系统资源,缩短了软件开发周期。