毛廷鎏 赵建印 耿 东 吴一乔 雷 瑶
(海军航空大学 烟台 264001)
在产品的测试过程中,有静态测试和动态测试两种方式,由于两种测试方式侧重的测试数据不同,导致产生的误差也具备不同的特点,因此在测量误差分析上所釆用的方法也有很大区别。从目前我国误差修正方法的研究来看,普遍适用于静态测量误差分析,比如最小二乘法[1~2]、分段直线拟合法[3~4]等等,这些方法理论已经非常成熟,应用也比较广泛,在处理静态测量误差上,具有较好的效果,但对于具有动态特点的测量误差,其效果往往不够理想。因此对于动态测量误差的分析,需要进一步改进误差修正方法。针对这一问题,当前已经有了一些研究成果[5~7],但还有许多的研究空间。例如将贝叶斯[8~9]、灰色模型[10~11]以及卡尔曼滤波方法[12~13]等具有预测和学习的方法运用到误差修正上,弥补传统误差修正方法不适用于动态误差修正的缺点,结合某型航空发动机的动态测试数据误差修正,分析几种方法的优缺点,为选择合理的动态测量数据误差修正模型提供思路。
在某型航空发动机的性能参数测试中,很大一部分参数都具有随时间动态变化的特点,从中选取两个参数,一个是具有线性变化特点的参数,一个是具有非稳定性变化特点的参数。同时从测试数据中分别截取两个参数的10 组时间序列数据,并与标准值进行比较,得到误差数据如表1、表2 所示。
表1 参数1测试误差数据
表2 参数2测试误差数据
贝叶斯预测修正模型的建立是利用客观信息和主观信息相结合的方法,具有较好的适用性,可以对复杂的变化规律进行描述,也可以对发生的异常情况进行处理[9,14]。
针对某型航空发动机动态测试误差数据,设yt为参数的测试值,θt为模型的随机状态变量,反映参数的误差趋势,F′t、Gt为模型函数,建立观测方程(反映测试值在随机状态变量下的趋势)和状态方程(反映所取状态变量的随机变动)如下:
为了更好描述发动机动态测量中数据误差的多种规律,利用线性叠加方法将贝叶斯三种基本模型(趋势模型、季节模型、回归模型)融合建立贝叶斯混合模型[15],基本形式如下:
设混合模型的状态向量为θit,i=1,2,3,代入式(1)、式(2),则有:
设D0为包含过去时间序列信息的原始数据样本,则各模型的先验信息分布如式(7)所示,总模型的先验分布表示为式(8)和(9)。
取t时刻的状态向量为θt,设p=(θt|Dt-1) 为参数的先验分布模型,p=(θt|Dt)为后验分布模型,t时刻之前所有的有效信息为Dt,记为
针对发动机参数动态测试得到的原始信号进行误差分离,得到n个动态误差序列:
根据动态误差序列和发动机参数的动态特点,建立发动机测试数据误差的贝叶斯动态模型,其分布如下:
得到其第t+r项前的分布为
当t=n时,通过r步向前预测,就可以得到t+r时刻的参数动态预报值yt+r,由此可以实现发动机参数动态测量误差的实时修正。
灰色模型本身就包含了一般线性回归和幕函数的相关内容,使得模型的趋势性比较强,且具有较快的建模速度和计算速度[16~17]。
基于灰色模型解决某型航空发动机动态测量中的误差问题时,可以采用GM(1 ,1) 模型。其中G表示Grey(灰色),M表示Mode(模型),GM(1 ,1)表示1阶的、1个变量的灰色模型[18]。
设测得发动机参数的原始序列为
设X(1)为X(0)的一次累加序列:
即:
利用X()1计算GM( )1,1 模型中的参数a、u。令:。
式中:,则有:
由此获得GM(1 ,1) 模型如下:
采用相对误差检验法和后验差检验法这两种方法对模型的精度进行检验[19]。
1)相对误差检验方法
设残差序列为
相对误差序列为
通过残差的大小来判断模型的好坏。残差大,说明精度低;
残差小,说明精度高。对于k≤n,称为k点模拟相对误差,称为平均相对误差。给定α,当<α且Δk<α成立时,称模型为残差合格模型。精度等级参照表3。
表3 相对误差精度检验对照表
2)后验差检验方法
要确定所建立的模型是否合格,必须用后验差检验[20]。设X(0)为原始序列,(0)为相应的模拟序列,ε(0)为X(0)与(0)的残差序列,则求得X(0)的均值和方差如式(24)所示。残差的均值和方差如式(25)所示。
C=S2/S1称为均方差的比值,假如给定的C0>0 并且当C 式(26)为模型的小误差概率精度,假如给定的p0>0,并且当p>p0时,认为模型误差较小。具体分级见表4。 表4 小误差概率和方差比精度检验对照表 经过检验后,获得预测值如下: 以上得到的预测值即为经过误差修正的各时间序列点的发动机参数预测值。 卡尔曼滤波通过对先验估计以及新的变量输入进行不断的迭代和递归,从而更新状态变量的估计,下步计算中将其作为先验估计,所以仅需存储前一步的先验状态估计数据[21~22],这种特性使卡尔曼滤波在非线性系统随机误差的预估修正中具有很好的效果。 针对发动机动态测量数据误差,设状态变量xt是一组可以描述所测参数动态变化的最小数组,ut为测量系统的实际输入值,wt为预估噪声模型参数,一般为常量,yt为量测值; 确定系统的初始状态后,参数下一时刻的状态预测值可根据状态转移方程得到,yt预估值由状态预测值经过观测方程处理后得到; 其中mt为测试系统的输入过程噪声,et为系统的观察噪声,假设它们是正态分布的白噪声且相互独立,即p(ε)~N(0,Qt),p(μ)~N(0,Rt); 假设给定参数的观测值yt并知道t 时刻之前的过程,设t 时刻先验状态估计为′t、后验状态估计为t,先验估计误差可以定义为,后验估计误差可以定义为,则为先验误差协方差,为后验估计协方差。 式中Kt(yt-′t)为误差值,反应的是实际观测值yt和观测估计Ht′t之间的误差关系; 经过以上分析,可以推导出发动机测试参数误差修正卡尔曼滤波器的基本算法如下: 其状态预测方程如式(35): 协方差预测方程如式(36): 利用式(32)~(34)可以计算参数预估的卡尔曼增益,式(30)可计算观测估计值,式(31)可进行状态更新。 利用式(37)进行协方差更新: 利用上述卡尔曼滤波算法进行递归计算,可以实现发动机参数测试误差的修正。 针对引言中某型航空发动机性能测试中的两个动态变化类参数的测试数据。本节利用上述方法分别对其误差进行了修正,图1、图2分别给出了两个参数的动态预估修正结果,表5、表6为针对两个参数分别截取的10 个序列数据以及各修正方法的修正结果数据对比。 图1 参数1动态误差预估修正对比图 图2 参数2动态误差预估修正对比图 表5 参数1误差修正数据对比 表6 参数2误差修正数据对比 从图3 和表5 可以看出,在参数1 动态测试的中段,几种方法的误差修正效果都比较理想,但在开始阶段和结尾阶段,贝叶斯方法、灰色模型方法和神经网络方法波动较大,而基于卡尔曼滤波的修正方法在参数1 的修正上表现出了更好的性能,尤其是第7 组数据可以看出,在测试误差较大时,前三种方法的修正效果明显不如第四种方法好。 从图4 以及表6 可以看出,贝叶斯方法和神经网络方法在针对参数2 进行误差修正时,达不到误差实吋修正的效果; 本文研究了四种常用的动态误差修正方法,选取某型航空发动机动态测试中两个参数的误差数据进行修正对比,第一个参数具有线性变化特点,第二个参数具有周期性和非稳定性特点。在针对第一个参数误差数据的修正中,四种动态误差修正方法在时间序列的中段均表现出了较好的修正效果;
′t为状态先验估计值,′t为观测先验估计值,t为状态后验估计值。
式(28)(状态时间更新方程)与式(29)(输出测量更新方程)构成了线性卡尔曼滤波基本模型。
Qt为观测噪声协方差矩阵,Rt为输入噪声协方差矩阵。
矩阵Kt代表的是卡尔曼增益,式(32)~(34)为计算该增益的方程。
灰色模型的修正效果较前两种方法要好,但其波动性仍然较大;
卡尔曼滤波方法依然比其他几种方法的修正效果更好,说明卡尔曼滤波方法也适用于类似参数2 的动态误差数据修正[23]。
但在时间序列的两端,贝叶斯、灰色模型和神经网络三种方法的修正结果波动较大,说明前三种方法在处理开始阶段参数误差的滞后性和结尾阶段系统的不稳定性方面不如卡尔曼滤波。在针对第二个参数误差数据的修正中,贝叶斯和神经网络两种方法产生了局部误差修正的问题,没有实现误差的实时修正,有待进一步改进;
而灰色模型和卡尔曼滤波两种方法,均展现出了较好的修正效果,但前者误差实时修正效果不如后者理想。综上可知,基于卡尔曼滤波的动态误差修正方法在针对两个参数的误差修正中,修正效果没有因为参数特点的不同而受到太大的影响,说明该方法适应性强,可以做进一步研究。