基于改进粒子群算法的旋转弹气动系数快速辨识
2019-01-05常思江
刘 洋,刘 丹,常思江
(1.南京理工大学 能源与动力工程学院,江苏 南京 210094; 2.西北工业集团有限公司 设计二所,陕西 西安 710043)
弹丸气动力系数是外弹道仿真、弹道设计及射表编制等的基础数据,如何获取较高精度的弹丸气动力系数是外弹道学、弹箭空气动力学研究人员长期以来一直关注的研究主题。获取弹丸气动力系数的方式主要包括3种[1]:理论计算、风洞实验数据拟合、根据飞行试验数据辨识。一般情况下,与理论计算和风洞实验结果相比,根据飞行试验数据辨识的气动力系数精度最高,与实际状况最为接近[2]。
国内外目前在气动力系数辨识领域已开展了较多研究,使用的方法也是多种多样。文献[3-4]使用了遗传算法及自适应混沌变异粒子群算法对旋转稳定弹进行了气动系数辨识;文献[5]提出一种采用双加速度计测量的辨识方法,辨识出了自振角频率、攻角和升力系数等。文献[6]中提出了一种基于修正质点弹道模型的简化模型,相比于以往的辨识方法,减小了弹道方程的复杂程度,并使用了最小二乘法进行辨识,但是辨识结果在精度上仍有提升的空间。
本文借鉴文献[6]的思路,针对最小二乘法辨识精度较低的问题,提出采用一种改进粒子群算法构建气动力系数辨识的模型,利用弹丸飞行的速度和转速数据,对旋转稳定弹的零升阻力系数、升力系数导数、马格努斯力系数导数及极阻尼力矩系数导数进行辨识,以期为旋转弹丸气动力系数辨识提供一种新的思路和模型。
1 系统模型
根据外弹道理论,六自由度刚体弹道模型可以全面地描述弹丸的飞行[7],但是该六自由度模型较为复杂,需要考虑的因素过多[8],从精度和计算量角度考虑,本文拟使用四自由度修正质点弹道模型,并针对该模型做出以下假设:
①弹丸关于弹轴对称且飞行过程中无形变;
②弹丸飞行过程中保持稳定;
③各个气动力系数对攻角的导数可以认为是线性关系,即:
C=Cαα
(1)
式中:C为各气动力系数,α为攻角,Cα为各气动力系数相对于攻角的导数。
④忽略对飞行影响较小的力和力矩;
(2)
(3)
(4)
(5)
(6)
(7)
式中:ρ为大气密度;D为弹丸直径;l为弹丸特征长度;m为弹丸质量;g为重力加速度;Fc为科氏力;u为弹丸的绝对速度矢量;ux、uy和uz为弹丸的绝对速度u在x,y,z方向上的分量;v为弹丸相对于风的速度矢量;|v|为相对速度矢量v的模长;I1为极转动惯量;ωc为弹丸的转速;αe为弹丸的攻角;Cx0为弹丸的零升阻力系数;CL,α为弹丸的升力系数导数,Cm,α为弹丸的静力矩系数导数,Cz,α为弹丸的马格努斯力系数导数,CMxz,ω为弹丸的极阻尼力矩系数导数。
由粒子群算法的特性可知[9],维度数量直接影响着适应度函数的收敛速度。现有研究表明[10],利用弹丸纸靶章动试验可单独获得高精度的静力矩系数导数,因此,为了提高气动系数辨识的精度和效率,本文建立的气动系数辨识模型中将静力矩系数作为已知量,故可对上述四自由度修正质点弹道方程做出一定的简化。
将攻角方程(7)代入速度方程(2)中,得到简化后的速度方程(8)为
(8)
从上式可以看出,适应度函数就减少了攻角所带来的3个维度,在精度不变的基础上有可能提高收敛的速度。
2 粒子群算法原理与改进
2.1 粒子群算法原理
粒子群算法(简称PSO算法),与蚁群算法、遗传算法和神经网络算法等称为智能算法。与传统算法不同,这种智能算法在全局搜索上具有较强的能力,而且这类算法不依赖于模型本身的好坏,其目的在于在解空间中找出使得适应度函数最大或最小的解。这与Chapman-Kirk法[10]类似,但是不会出现Chapman-Kirk法中偶尔发生的正规方程系数矩阵成为准奇异矩阵的现象。
PSO算法主要分为设计变量、适应度函数和数学模型等几个部分,其计算原理如图1所示。
①设计变量θ。 本文中的设计变量即为待辨识的各个系数。即:
②适应度函数J。 常用的适应度函数有最小二乘准则、极大似然准则等。这里选用准则如下式:
式中:Ui为当前粒子的计算值,Ut0为时间区间[t0,t1]上t0时刻的测量值,Ut1为t1时刻的测量值。(Ui-Ut1)和(Ut1-Ut0)为2个向量之间的标准欧几里得距离。由于ux,uy、uz和ωc具有不同的数量级和量纲,标准欧几里德距离可以修正数量级和量纲带来的差异,使结果更加精确。
③数学模型。 数学模型即为简化后的弹道方程,即式(3)~式(6)和式(8)。
④终止条件设置。
利用转速辨识:J<0.000 01或者k>200。
利用速度辨识:J<0.000 4或者k>1 000。
⑤粒子群算法主要参数。 速度vp与位置n主要由下式决定。
其中初始速度与位置在解空间内随机产生。式中:kn为迭代次数,w为惯性权重,c1和c2为学习因子,gi为当前粒子个体最优点,p为全局最优点,ξ1和ξ2为[-1,1]之间的一个随机数。
2.2 算法的改进
标准PSO算法多用于规划、金融、设计等多目标领域,算法本身具有运算简单、容易实现等优点。但是,在参数辨识领域,单纯的标准PSO算法会有收敛速度慢、迭代方向性差、收敛步数过长等缺点。因此,针对弹丸气动力系数辨识的特点,对PSO算法进行一定的改进与优化。
①出界反射。 一般对待辨识的系数进行范围上的估计,如阻力系数的取值一般在[0.1,0.5]内,当某个粒子超出该范围时,需要对该粒子的位置进行处理。本文使用出界反射原理,即当某一维度超出范围时,将该系数反射回来,这个反射仅在该维度上进行,不涉及其他的维度。反射公式为
θk=2Mk-θk-1
式中:M为待辨识系数的范围,即PSO算法的搜索区间。
②分步辨识。 由于对转速方程进行了简化,忽略了赤道阻尼力矩系数,使得转速ωc仅是极阻尼力矩系数导数CMxz,ω的函数。故可先用转速方程(6)对极阻尼力矩系数导数进行辨识,再将辨识后的极阻尼力矩系数导数代回方程(6)中,与其他方程一起构成完整的弹道方程,对其余的3个系数进行辨识。这样的辨识顺序会提升辨识的速度,提高辨识结果的精确度。
③变速度与区间收敛。 由PSO算法的特性可知,过大的速度有可能导致一次次地“越过”全局最优解,所以随着迭代次数的增多和适应度函数的收敛,速度应逐渐减小。一般情况下,可以使用自适应学习因子和惯性权重来放慢速度。而在本文中,因总迭代步数较少,故可依据适应度函数的值选择学习因子和惯性权重。同时由于PSO算法是全局的优化算法,其搜索的区间较大,若在迭代过程中随着全局最优解p的变化将区间半径R逐渐变小,则能够有效地提高收敛速度,区间中心为当前全局最优解。本文中学习因子、惯性权重的变化和区间设置如表1。
表1 PSO参数设置
④初始区间的选择。 由于弹丸的飞行过程是一个连续的过程,其气动系数的变化也是连续的,在计算下一个区间时,可以以上一个区间的解θk-1为中心,区间半径长度R为
将初始区间Mk取为
Mk=[θk-1-Rθk-1+R]
β的取值与整体数据密度有关,密度越大,β越小;密度越小,β越大。本文中选取β=10。
⑤粒子变异。 为避免陷入局部收敛,根据迭代的步数与当前J的值对粒子进行变异。由于气动系数辨识的解空间中存在唯一解,或在某些条件下(如测量不准确)仅存在少数解,所以本文的变异选择在区间内为重置当前粒子的位置,即随机产生位置n与速度vp。
2.3 算法速度比较
使用改进PSO算法与标准PSO算法对同一段数据进行辨识,其收敛速度如图2所示,终止条件为适应度函数J<0.000 4。为了让结果更加明显,将J取对数,即lgJ<-3.4。
可以看出,改进PSO算法在迭代次数达到36次时就已经达到了收敛要求,而标准PSO算法在迭代次数达到100次时还与迭代终止条件有着较大的差距。考虑到所采用的坐标是对数坐标,这个差距将使迭代次数成数十倍地提升。这说明改进PSO算法的收敛速度要远远高于标准PSO算法。
3 数值验证
3.1 155 mm榴弹仿真数据验证
利用某155 mm榴弹的仿真弹道数据进行气动力系数辨识,并将辨识的结果与仿真使用的气动力系数理论值进行比较,以验证改进PSO算法用于旋转弹气动系数辨识的可行性和有效性。在弹道仿真和气动力系数辨识的过程中,气象条件均选择标准炮兵气象条件,初速选择930 m/s,射角ψ为35°,45°和55°,不考虑科氏力,重力加速度为9.81 m/s2。辨识模型的输入量为:[t0,t1]时间区间上的3个速度ux,uy,uz和转速ωc;辨识模型的输入量为气动力系数的辨识值。在实际应用中,弹丸速度可由坐标雷达测得,弹丸转速可由弹载地磁传感器测得。
将辨识后的结果与理论值对比,并绘制出各个系数随马赫数的变化曲线。
零升阻力系数的辨识结果与理论值对比如图3所示。可以看出,零升阻力系数的辨识结果与理论值基本一致,最大相对误差约为0.1%,平均相对误差为0.036%。
CL,α/Cm,α的辨识结果如图4所示。其中,图4中的辨识值乘以对应马赫数下的静力矩系数为升力系数导数。平均误差约为0.05%,最大误差约为0.15%。多次辨识的误差并不完全一致,这是因为PSO算法位置区间的初始化与前一个点的辨识值有着直接的关系,辨识的结果在辨识过程中产生了一步步的偏移,不同的辨识过程将在总体上产生不同的偏移,但是都在一个较小的范围内。
极阻尼力矩系数导数的辨识结果如图5所示。辨识结果的平均误差为0.041%,最大误差为0.06%。由于极阻尼力矩系数是由转速方程(6)进行辨识,没有其他未知量的干扰,所以辨识的精度要比零升阻力系数和CL,α/Cm,α更高。
Cz,α/Cm,α的辨识结果如图6所示。与其他3个系数的辨识结果不同,马格努斯力系数导数的辨识结果误差较大,但是在不同马赫段上误差是不同的。总体上,马赫数在0.8~1.25范围内,辨识值与理论值的相对误差在30%~50%之间;马赫数在1.25~2.7之间,辨识值的相对误差很大,结果已不可用。此外,从图6可知,不同射角下的误差也有所不同,55°射角下的辨识值要好于其他射角下的辨识值,这可能是由于在55°射角下全弹道上的动力平衡角相对较大,有利于马格努斯力系数导数的辨识。
以上辨识结果表明,本文所采用的辨识方法对零升阻力系数Cx0、升力系数导数CL,α和极阻尼力矩系数导数CMxz,ω具有较高的辨识精度,而马格努斯力系数导数的可辨识性较低[11],辨识值与理论值相差较大。3个射角下Cx0,CL,α和CMxz,ω没有明显的差别,这说明发射条件的改变对改进PSO算法在气动力系数上的辨识没有影响。
将辨识结果代回方程重新计算弹道,并与辨识所用的仿真值进行对比,对比结果如图7所示。
从图7可以看出,由气动系数辨识值计算的弹道轨迹和速度变化均与测量结果较为吻合,其中弹道落点的测量值为(26 386,0,918),而根据气动系数辨识值计算的弹道落点是(26 378,0,918),落点差为8 m。这个结果说明了辨识的结果具有较高的准确性。
为了更加贴近工程实际,将速度ux,uy同时加入相同的高斯白噪声,共选择2个工况:①期望E=0,标准差σ=0.01 m/s;②期望E=0,标准差σ=0.03 m/s。由于数据密度较密,数据初段2个采集点之间的差值在0.8 m/s左右,数据末端2个采集点之间的差值在0.04 m/s左右,而在实际工程运用中,需要对数据进行降噪处理,处理后的数据噪声不会很大,所以这样的高斯白噪声是相对符合实际的。辨识出的零升阻力系数如图8所示。
由图8可以看出,该算法对带噪声的飞行数据具有较好的辨识能力,其中对噪声较小数据的辨识精度要比噪声较大数据的辨识精度要高。在高马赫数下的辨识精度要比低马赫数下的辨识精度要高,这是因为高马赫数为弹道初段,速度变化较大,所以噪声影响较小;而低马赫数为弹道顶端与弹道末段,速度变化较小,所以噪声影响较大。而由于算法中依区间收敛,在辨识过程中减小了噪声对飞行数据的干扰。
4 结束语
本文以四自由度修正质点弹道模型为基础,利用改进粒子群算法对零升阻力系数、升力系数导数、极阻尼力矩系数导数和马格努斯力系数导数进行了辨识,取得了较好的结果,并得出以下结论:
①改进粒子群算法比标准粒子群算法具有更快的收敛速度。
②通过该方法得到的零升阻力系数、升力系数导数和极阻尼力矩系数导数具有较高的精度,满足实际工程的需要。
③对于带有噪声的数据能够进行有效地辨识,且能够在一定程度上减小噪声对辨识结果的影响。