APP下载

炮口多路磁场信号的卡尔曼融合处理技术

2023-04-28刘威周诗超孙建港温鹏李凯

火炮发射与控制学报 2023年2期
关键词:卡尔曼炮口卡尔曼滤波

刘威,周诗超,孙建港,温鹏,李凯

(中北大学 信息探测与处理重点实验室,山西 太原 030051))

随着军事战略不断调整,炮口磁场测量已经逐渐进入大家的视野。近年来,相关领域的科研工作者开始通过测量炮口磁场数据来进行弹丸运动姿态的解算[1]。在此过程中,炮口磁场数据的精度将直接影响弹丸姿态解算的结果,所以对炮口磁场数据进行处理就显得尤为重要。

目前针对炮口磁场信号,大多采用最小二乘法、经验模态分解、自适应阈值、卡尔曼融合等信号处理方法[2-5]。卡尔曼滤波能巧妙融合测量数据和估计数据,并得到最优的卡尔曼融合值,被广泛运用在信号处理领域[6]。在此基础上,文献[7]设计了基于Inertial Measurement Unit (IMU)弹道测量的扩展卡尔曼滤波参数估计算法,得到了误差小于1 m/s的弹道修正信息;文献[8]研究了一种基于改进卡尔曼数据融合算法的温室物联网采集系统,可提高数据采集的精度和系统的稳定性;文献[9]基于卡尔曼理论推导出多传感器扩维有偏卡尔曼滤波和多传感器序贯有偏卡尔曼滤波算法,并证明了其优越性。

基于此,笔者通过传感阵列测量炮口磁场,并设计了基于卡尔曼的炮口磁场数据融合处理算法,与其他滤波方式比较,卡尔曼滤波不但可以减小外界磁场的干扰,而且可以降低磁传感器空间分布不确定性带来的误差,从而大大提高炮口磁场测量的精度。

1 传感器阵列测量模型

在弹丸上,磁传感器按照既定的规律排列组成磁传感阵列[10-13]。将8个传感器均匀分布在弹丸上,每个传感器相隔45°来组成传感阵列,如图1所示,传感器输出的值即为所在位置的磁场强度。

根据地磁场方向与炮管的位置关系,地磁场与炮管垂直时磁场最大,平行时磁场最小,所以当弹丸旋转时,传感器检测到的磁场总是会有一个明显的波峰和波谷。假设炮管口周围的磁场是周期变化的,从而得到磁场与相位关系式:

B(ti)=Asinφ+C,φ∈(0,2π),

(1)

(2)

由于是8路传感器,根据式(1)可推出:

(3)

式中:Bi表示8路传感器的磁场;Ai表示各传感器所测得的磁场最大值与平均磁场强度的差值;ω表示传感器旋转的角速度;N表示采样点数;Fs表示采样频率;φ表示传感器之间的相位差;φ表示炮口的平均磁场强度。

式(3)是根据磁场部分特点推导出的炮口磁场数学模型,也被称为卡尔曼融合中的经验模型。

2 BP神经网络数据拟合原理

BP神经网络以其逆向传播和多层反馈的特点被广泛应用于数据拟合方面[14-15]。BP神经网络用于数据拟合时,相应数学模型中的参数有未知和已知两种情况,若为已知参数,只需利用已知模型通过神经网络对参数进行微调;若为未知参数,需要通过已知数据集利用训练函数对网络进行训练从而得到参数值。

根据式(3)所示,笔者建立的炮口磁场数学模型为非线性模型,数据拟合时需要在非线性系统模型中引入BP神经网络的激活函数θ。本程序中采用的Leaky ReLu激活函数,该激活函数能将线性模型变为非线性模型,而且相比于ReLu函数Leaky ReLu函数范围更大。

BP神经网络由多个神经元构成,其组成分为输入层、输出层和隐藏层。笔者采用3层神经网络来进行函数模型的拟合,结构图如图2所示,通过训练数据样本,使得BP神经网络不断向期望的未知目标函数逼近,最终确定式(3)中的未知参数,得到确定的炮口磁场分布数学模型。

3 卡尔曼自适应融合算法原理

笔者针对炮口阵列式磁场测量方式,将卡尔曼自适应融合算法分为两个阶段:第一阶段对单个传感器的数据进行卡尔曼滤波处理,为第二阶段提供数据支撑;第二阶段采用多传感器卡尔曼融合算法,首先根据最小均方误差算法寻找最优加权因子得到传感器融合数据,然后以融合数据为基础进行卡尔曼二次融合得到误差更小的数据[16]。基于卡尔曼的数据融合算法结构如图3所示。

3.1 单传感器卡尔曼滤波

通过炮口的磁场来得到炮弹的运动状态时,由于炮口磁场环境的复杂和传感器自身的误差,将会导致结果产生偏差。为了获得更精确的炮管磁场数据,采用卡尔曼滤波法对炮口磁场数据进行处理。卡尔曼滤波能在不确定的动态系统中对系统的下一个状态进行预测,及时根据卡尔曼增益选择更可靠的一方,最终得到更真实的数据。

卡尔曼算法实现过程主要分为两个阶段:预测阶段和更新阶段。预测阶段是在预测模型准确的情况下,通过预测方程得到当前状态值;更新阶段则是根据卡尔曼增益修正预测阶段的估计值,得到校正后的状态估计值。最优卡尔曼滤波器设计为式(4)~(8)。

状态预测:

x(k|k-1)=Ax(k-1|k-1)+Bkuk,

(4)

式中:k表示系统离散时间;x(k-1|k-1)表示k-1时刻状态最优估计;A为状态矩阵;x(k|k-1)表示k时刻的预测;uk为控制量;Bk为uk的控制矩阵。

协方差预测:

P(k|k-1)=AP(k-1|k-1)AT+Q(k),

(5)

式中:P(k-1|k-1)表示k-1时刻的协方差最优估计;P(k|k-1)表示k时刻的协方差预测;Qk表示过程噪声协方差。

状态估计更新:

x(k|k)=x(k|k-1)+K(k)[z(k)-Hx(k|k-1)],

(6)

式中:x(k|k)表示k时刻最优估计值;z(k)表示k时刻的测量值;H表示观测矩阵;K(k)表示k时刻的卡尔曼增益:

(7)

式中,R(k)表示k时刻观测噪声协方差矩阵。

协方差更新:

P(k|k)=[I-K(k)H]P(k|k-1),

(8)

式中:P(k|k)表示k时刻协方差估计;I表示单位矩阵。

3.2 多传感器卡尔曼融合

传感器均分安装在测量装置上,每个传感器的分配权重应该一样,但是实际中由于传感器自身的差异和空间分布的不绝对一致,直接应用平均融合会导致误差较大,因此需要采用加权融合。为达到最优结果,采用最小均方算法(LMS),其核心思想是,将各传感器信号作为参考信号di(i=1,2,…,n),di信号经过卡尔曼滤波之后成为d′i,这时提出一个加权因子Wi使得di与Wid′i之间要满足均方差最小的条件。

(9)

式中:xi为第n个传感器的第i个数据;Wn为第n个传感器的加权因子;x′i为第n个传感器经过卡尔曼滤波后第i个数据。

式(9)经过化简得到:

(10)

式中多项都为计算值,设

(11)

将式(11)带入式(10),化简可得:

(12)

当均方误差最小时可得到最优权值W′n,即:

(13)

式中,Wn(σn)表示用σn来表示Wn的关系式。

根据最优加权因子式(13)可得到最后的融合结果D为

(14)

在得到融合数据后,以融合后的数据作为卡尔曼估计值,传感器数据作为观测值,通过卡尔曼滤波再次融合得到误差更小的数据。

4 实验及结果分析

选取一截密闭管道用以仿真炮管的内部结构,将密闭管道放在以转速0.05 r/s旋转的转台上,用带有8路传感器的测量装置,对炮口磁场进行测量,用以模拟炮弹在身管内的旋转运动。在旋转一周的过程中,磁传感器会以46 kHz的采样频率持续采集数据。由于外界环境的干扰,采集的磁场数据会包含噪声,所以要对数据进行处理与分析。

4.1 基于BP神经网络数据拟合仿真

BP神经网络数据拟合是根据传感器采集到的数据对建立的炮口磁场数学模型的验证,确保卡尔曼融合时状态转移模型的贴合性,以减小卡尔曼融合时的过程噪声。

本次BP神经网络数据拟合采用1-10-1的网络结构,也就是由1个输入层、包含10个神经元的隐含层和1个输出层组成。本次神经网络的训练样本为一个转台旋转一周采样20 s的数据,共有920 000个样本数据。图4为BP神经网络数据拟合对比图。

从图4的结果对比中可以看出,原始数据和数据拟合得到的曲线基本贴合,最大的误差7.8%出现在10 s左右,大部分时间的误差基本在6%以下。由于相对误差在10%以下,可以认为该BP神经网络数据拟合采用的函数模型是可行的,可以将该模型作为卡尔曼融合时的经验模型。

4.2 基于单传感器的卡尔曼滤波仿真

使用传感器测量时,常常因为传感器自身噪声而导致结果产生误差,所以需要对获得的数据进行处理。传感器自身的噪声一般为高斯白噪声,针对白噪声,通常使用卡尔曼滤波进行处理。本次仿真将通过神经网络验证的炮口磁场数学模型作为卡尔曼滤波的先验估计,以传感器采集的数据作为卡尔曼滤波的测量值。

对传感器阵列测量炮口磁场来说,状态值为磁场和相位,观测值为传感器测量值,分别建立状态方程和测量方程:

(15)

z(k)=Hx(k)+υ(k),

(16)

根据式(15)、(16)最终得到的状态方程如下:

X=A(x)+Cu,

(17)

y=Dx,

(18)

其中:

D=[1 0];C=b.

由于测量值采用的是8路传感器直接采集的数据,所以卡尔曼滤波的观测方式为直接观测。根据状态值和测量值的关系,可得到式(16)中的测量矩阵为H=[1 0]。

卡尔曼是一个多次迭代的修正过程,在每一次迭代中都会进行一次更新,导致最后的值会慢慢收敛趋近于真实值,所以在设置初始值时,零时刻X(0|0)就用零时刻的测量值代替,协方差初始P(0|0)用1代替。

在单传感器进行滤波时,卡尔曼估计值完全是由炮口磁场数据模型计算的数据,测量值由传感器提供。经过卡尔曼滤波后得到结果,如图5所示。

图5(a)为运用卡尔曼算法迭代运行920 000次的结果,其中理论值表示炮口磁场数学模型输出的值;测量值为传感器的测量值;Kalman预测值则表示经过卡尔曼滤波的数据;图5(b)为测量值与卡尔曼滤波值相对于理论值相对误差的对比。从图5(b)中可以看出测量值与理论值的误差的最大值为13%左右,而卡尔曼滤波值与理论值的误差最大约为11%,且卡尔曼滤波后的数据的误差在全采样段均小于测量值误差。由此可见,经过卡尔曼滤波后,降低了部分噪声,使数据更加准确。

4.3 基于多传感器的卡尔曼融合仿真

在进行多传感器融合时,首先,根据单传感器卡尔曼数据处理把8路信号分别进行滤波得到处理之后8路卡尔曼预测值。然后,根据传感器测量的信号与卡尔曼预测得到信号的均方误差进行计算。此时引入权值Wn,根据式(13)、(14)得到融合后的数据。之后,将融合后的数据作为卡尔曼新的估计值,传感器的值作为测量值,再次经过卡尔曼滤波得到结果,如图6所示。图6(a)表示多传感器融合滤波的结果,其中理论值表示炮口磁场数学模型输出的值;测量值为传感器的测量值;Kalman预测值则表示经过卡尔曼滤波的数据。图6(b)表示融合后的值和测量值与理论值的误差对比。从图6(b)中可以看出,卡尔曼滤波后的数据的误差最大为3.5%左右,且在全采样段均小于测量值误差。

5 结束语

笔者基于卡尔曼融合理论提出了炮口多路磁场信号的卡尔曼融合处理方法。对该方法的数据融合原理和炮口磁场信号处理的过程进行了详细分析,并根据炮口磁场的物理模型建立了炮口磁场的数学模型。在建立数学模型之后,通过BP神经网络进行拟合,验证了该数学模型的准确性,其次对各个传感器进行了卡尔曼滤波得到待融合值,然后通过最小均方误差算法对待融合数据进行一次融合,最后再对一次融合数据进行卡尔曼融合得到最终结果。仿真结果表明,建立的炮口磁场数学模型与测试的结果基本吻合,误差不超过7.8%,可以作为卡尔曼滤波的系统状态方程。单传感器进行的卡尔曼滤波得到的预测值误差不超过11%,均低于测量值的误差,证明了卡尔曼滤波的有效性。多传感器卡尔曼融合后数据与真值的误差不超过3.5%,和测量值与真值误差13%相比,误差小了9.5%,证明了将多传感器卡尔曼融合用于炮口磁场信号处理是可行的。

猜你喜欢

卡尔曼炮口卡尔曼滤波
大口径线膛炮炮口振动位移测量方法
状态变换扩展卡尔曼平滑算法在AUV水下航迹修正中的应用
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
基于卡尔曼算法的动力锂电池SOC估算
基于卡尔曼预测的逆变焊接电源信号处理方法
基于模糊卡尔曼滤波算法的动力电池SOC估计
炮口结构参数对炮口性能的影响分析
基于扩展卡尔曼估计的飞机防滑刹车系统模糊控制
基于扩展卡尔曼滤波的PMSM无位置传感器控制
基于自适应卡尔曼滤波的新船舶试航系统