APP下载

改进型果蝇算法在压力传感器动态补偿的应用

2019-07-05韩太林张永立

兵器装备工程学报 2019年6期
关键词:果蝇冲击波味道

高 杨,韩太林,王 磊,2,张永立

(1.长春理工大学 电子信息工程学院, 长春 130022; 2.中国人民解放军63850部队, 吉林 白城 137000)

火炮、导弹等武器装备在发射时产生的冲击波会导致人体器官损伤与武器周边零部件损坏,因此需要准确测量冲击波参数为评估冲击波毁伤提供科学依据[1]。冲击波属于瞬态信号,它具有上升速度快,超压峰值高,频谱宽等特点。一般用于冲击波测试的主要有压电式和压阻式传感器,其中压电式传感器在使用上受湿度、电缆容性和装配方式等条件影响较大[2],因此采用压阻式传感器进行冲击波测试。而常规电测法使用的压阻式压力传感器受制作工艺等条件限制,工作频带小于信号频谱,导致信号失真,引入动态误差,不满足测量要求[3-4]。

为了使测试结果更加精确,须对传感器的动态特性进行补偿,提高传感器的响应速度、抑制超调量、扩展频谱。常用补偿方法主要有两类:一是依赖传感器动态模型的零极点配置法、反卷积法等,此类方法需要确定传感器动态模型,实现较复杂且受传感器建模误差影响较大;二是不依赖动态模型的神经网络算法、群智能算法等,其中群智能算法补偿精度高,体现出巨大优势[5]。在基于群智能算法的动态补偿方法研究中,粒子群优化算法(PSO)因为算法结构清晰,精度较高等优点应用最多[6-7],但PSO算法后期搜索速度慢,且易陷入局部最优。果蝇算法(FOA)依靠其简单的个体行为和群体规则,对最优解信息更加敏感,因此具有更强的全局寻优能力和更快的计算速度。但因候选解为个体与原点距离的倒数,FOA算法不能解决最优值为负数的问题,适用范围收到了限制[8-10]。因此,本文引入果蝇算法并对其进行改进,通过多次迭代确定最优补偿系数,提高传感器动态补偿精度。

1 果蝇优化算法(FOA)

1.1 FOA算法原理

果蝇优化算法(Fruit-fly Optimization Algorithm,FOA)是Pan于2011年提出的一种用来寻求全局最优解的新方法[11],通过对果蝇觅食行为进行仿真模拟,演化成具有全局搜索能力的优化算法,具有可塑性好、全局搜索能力强、搜索速度快和求解精度高等优点[12]。果蝇个体利用其良好的嗅觉器官在空间中嗅探到食物源,然后飞近目标,其他同伴依靠敏锐的视觉系统迅速聚集到所获食物味道最浓的果蝇位置。果蝇种群搜索食物的过程就是不断从味道浓度小的地方转移到味道浓度大的地方,直到找到食物。图1展示了果蝇群体搜寻食物的迭代过程。

图1 果蝇群体搜索食物过程

图1中,初始点为果蝇种群的迭代起始点,其位置信息为随机赋予。Dist为果蝇个体与原点之间的直线距离;S为其距离的倒数,代表果蝇个体的味道浓度判定值;Smell为果蝇个体所获取的味道浓度值;Function函数作为算法的适应度函数,一般是寻优问题所对应的数学模型,被用于计算果蝇个体的味道浓度值。

果蝇优化算法将待优化问题的解空间对应为果蝇飞行的空间。在每一次的迭代寻优过程中,每个果蝇个体所在的位置信息都是待优化问题的一个可行解。通过对适应度函数进行计算获取果蝇群体的味道浓度值,并找到味道浓度值最佳的果蝇个体的位置,其他果蝇都向着最优个体移动。经过一次又一次的寻优,所获取到的味道浓度值越来越高,最优的味道浓度值对应的果蝇个体位置信息便是本次待优化问题的最优解。

1.2 FOA与标准PSO算法对比

FOA算法与PSO算法一样,都依靠群体间的互相协作与信息共享。PSO算法依据个体最优与群体最优来更新粒子自身的速度,并且依靠惯性权重系数决定上次迭代速度保留多少。而FOA算法利用视觉搜索机制,当群体的单次迭代出现最优值时,与种群的历史最优值进行比较,若本次迭代结果优于过去的解,则直接继承该个体位置为种群下一次迭代搜索的空间位置。FOA算法较PSO算法而言,其所需参数更少,因此计算量更小,寻优速度更快,且减小了参数取值不当对算法造成的影响;对于上次迭代的最优解进行完全继承的方式也使得FOA算法对最优解信息的获取更加敏感,因此FOA算法的全局寻优能力比PSO更强,但是单次搜索陷入局部最优的概率也大于PSO。

然而在解决实际工程问题时,为了降低群智能算法随机性对单次寻优结果的影响,总是采用多次寻优来确定更好的结果。计算速度快,对软硬件要求低,具备连续优化能力的FOA算法在相同时间内可以进行更多次的寻优进程,既降低了算法随机性的影响,又避免了单次搜索陷入局部最优的问题[13-14]。

FOA算法也存在一些缺陷需要改进:味道浓度判定值Si为果蝇个体到原点距离的倒数,Si一定是正数,不能解决定义域包含负数的问题,从而影响在压阻传感器动态补偿上的应用;由于味道浓度判定值Si不是均匀分布的,导致FOA无法均匀地在解空间内进行全局搜索等等[15]。

2 改进果蝇优化算法(DFOA)

针对上文所提果蝇优化算法的缺陷,将从算法本身完善和寻优策略优化这两方面对果蝇算法进行改进,即改变候选解产生机制和采用动态步长搜索策略,使其能够被更好地运用到压阻传感器的动态补偿上。

2.1 算法改进描述及步骤

FOA算法具有候选解只能为正数且逐渐趋向于0的缺陷,因此本文所改进的DFOA放弃原算法中味道浓度判定值Si为距离倒数的方式,在求解高维优化问题时,采用果蝇个体在立体空间内各维度上的坐标信息直接作为味道浓度判定值的候选解。

同时,优化算法的寻优能力在于全局寻优和局部寻优相结合。在优化过程初期,算法依靠大步长可以具备较强的全局搜索能力,而在优化过程后期,算法需要通过减小步长来增强局部搜索能力。因此本为引入步长调节系数ω

ω=k1-(k1-k2)*(gen/maxgen)2

(1)

经试验,其中动态补偿调节参数k1,k2的值分别设为1和0.1,gen为当前迭代次数,maxgen为最大迭代次数,补偿调节系数ω随着迭代次数的增加而减小,如图2所示。

图2 补偿调节系数变化

N维寻优问题的表达式可归结为FOA(f(x1,x2,x3,x4,…,xn)),设定果蝇种群大小sizepop和迭代次数iter_times,每个果蝇个体的位置信息为X(i, j),其中i=1,2,3,…,sizepop为个体标号,j=1,2,3,…,n为维度标号。

1) 第一次寻优过程中,随机初始化果蝇群体位置X_axis(, j),下式中Rand(, j)[LR,UR]为各维度所设初始区间内的某个随机位置。

InitalizeX_axis(i, j)=Rand(, j)[LR,UR]

(2)

2) 赋予果蝇个体利用嗅觉搜寻食物所需的各维度上的随机距离与方向,并将其作为味道浓度判定值(Si)

S(i, j)=X(i, j)=X_axis(, j)+ω*LBj*(2*rand-1)

(3)

ω=k1-(k1-k2)*(gen/maxgen)2

(4)

3) 将味道浓度判定值(S(i, j))代入味道浓度判定函数(或称为Fitnessfunction)以求出该果蝇个体所在位置的味道浓度(Smelli)。

Smelli=Function(S(i, j))

(5)

4) 找出该果蝇群体中味道浓度最高的果蝇(求极优值)。

[bestSmellbestIndex]=best(Smelli)

(6)

5) 保留最佳味道浓度值与位置坐标,此时果蝇种群利用视觉向该位置飞去。

Smellbest=bestSmell

(7)

X_axis(i, j)=X(bestIndex)

(8)

6) 进入迭代寻优,重复执行步骤2)~4),并判断味道浓度是否优于前一迭代味道浓度,若是则实行步骤5)。

2.2 通用寻优函数测试

为研究DFOA算法实际效果,采用4个标准的测试函数进行最小值寻优测试,并且与FOA算法及PSO算法的性能进行对比试验,其中标准测试函数如下,其中-30

1) Ackley函数:

(9)

2) Sphere函数:

(10)

3)Rastrigrin函数:

(11)

4)Griewank函数:

(12)

将n设为2,xi取(-8,8),4个寻优测试函数如图3所示。其中,Sphere为单峰函数,Ackley函数,Rastrigin函数和Griewank函数都是典型的多峰极值函数,常被用于算法函数性能的测试。

图3 标准寻优测试函数

在以上各函数的测试中,变量维数均设置为30,果蝇种群大小和粒子群大小都取为50,最大迭代次数为2 000。3种算法对于每个测试函数都独立进行20次重复测试后计算均值,衡量指标为寻优结果和运行时间。结果如表1和表2所示。

由于算法所求最优值精度较高,为了更加清晰直观表示,将3种算法对4种测试函数连续20次的平均适应度值进行取对数操作,并将其指数在表2中呈现出来。

从3种算法对测试函数的适应度值寻优结果来看,通过表2的指数形式可知,FOA算法略优于PSO,而DFOA算法的精度数量级则远远高于前两者,这表明DFOA的寻优精度要优于FOA和PSO算法;在程序运行耗时方面,DFOA与FOA迭代2000次的耗时均远小于PSO,表明FOA及其改进算法具有运算量较小,硬件要求较低的特点;同时,在Rastrigrin函数的优化上,DFOA有效解决了FOA算法因为候选解只能是正数所导致的寻优失败问题。因此,本文在果蝇优化算法上所提出的改进是有效的,DFOA在寻优问题中较FOA与PSO而言,具有更高的搜索精度和搜索效率。同时,适用性变得更加广泛的DFOA优化算法也能够被更好地运用于压阻式压力传感器的动态补偿研究中去。

表1 标准测试函数结果

表2 寻优结果精度

3 基于DFOA的传感器动态补偿

3.1 动态补偿原理

在冲击波所产生的瞬态信号测试过程中,由于传感器动态性能不足导致所测瞬态信号发生畸变,引入动态误差,因此需要对传感器实测数据进行动态补偿,消除误差,尽可能地还原出原始信号[16]。压阻压力传感器动态补偿原理如图4所示。

图4 动态补偿原理框图

其中,X(n)为原始被测信号,经过传感器系统G(z)后,得到传感器所测信号为Y(n)。由于传感器测试系统的工作带宽有限且在传感器谐振频率左右的频率分量被失真放大,从而引入了动态误差,而为了尽量减小误差,构建补偿系统H(z),既可以拓宽测试系统的工作带宽,也可以使得实测信号经过补偿系统后的信号Y′(n)可以消弭动态误差[17]。因此,只需要求取最优的系统H(z)的传递函数使得经过补偿后的Y′(n)尽量接近原始信号X(n),并且动态性能最佳。以实测信号Y(n)作为输入数据,X(n)作为输出数据构成差分方程:

A(z)X(n)=B(z)Y(n)

(13)

(14)

式(13)中:a0,a1,…,an,b0,b1,…,bn为补偿系统所需系数;n为补偿系统的阶数。为了获得最佳的补偿系统的传递函数,采用DFOA算法寻优获得最佳的参数组合。以n阶补偿系统为例,其所需参数为2n+2个,即2n+2维变量寻优,每个果蝇个体的位置信息为2n+2维X(,2n+2),每个果蝇个体都表示一个可行的传递函数。

在动态补偿系统中常用的适应度函数如下:

(15)

式中:y′(n)为补偿后数据;x(n)为原始数据,二者的最小二乘误差越小,则代表寻优个体的适应度值越好,经过此个体所代表的补偿系统后,补偿数据更加接近原始输入信号。基于DFOA的压阻传感器动态补偿原理如图5所示。

图5 基于DFOA的压阻传感器动态补偿原理框图

3.2 DFOA对激波管数据补偿

激波管是在压阻传感器的动态校准中常用的设备,它通过高低压室的压差使得其分隔薄膜破裂,产生激波快速传播并在低压室末端产生标准阶跃压力信号作为传感器的输入信号。由于前文所述的传感器诸多缺陷带来的动态误差,标准阶跃压力信号经过传感器系统后所得的实测信号如图6虚线部分所示。

图6 激波管压力测试信号及补偿信号

绘制激波管校准实测数据的频谱如图7虚线所示,可见传感器在其频率谐振点74.33 kHz附近对输入信号进行了异常放大,引入了动态误差,所测得信号严重失真。

图7 激波管实测信号及补偿信号频谱

本研究采用10阶线性系统作为动态补偿系统,以传感器系统的激波管实测信号作为输入,使用前文所提出的改进后果蝇优化算法(DFOA)对传递函数的参数组合进行寻优,果蝇种群设为300,经过500次迭代寻优后最终确定的补偿系统的传递函数为:

(16)

所得补偿系统对实测数据进行动态补偿后的效果如图6实线所示。经过动态补偿后,其上生时间提升至11 μs,超调量下降到3%,通过图7补偿后信号的频谱可见,谐振频率点74.33 kHz处的高倍异常放大被有效抑制,使得补偿后信号更加接近原始阶跃信号。

3.3 实测冲击波信号补偿

在实际的冲击波测试系统中,先在实验室内用压阻传感器测试激波管信号并依此求解出其动态补偿系统传递函数,再将传感器所实测到的炮口冲击波信号通过传感器的补偿系统,最终便能够得到动态误差较小的信号数据。

在某次火炮炮口冲击波的测试中,某型号压阻传感器所测得的冲击波信号和补偿后的数据如图8所示。

图8 冲击波实测信号补偿前后

冲击波信号到达之后,由于传感器的谐振频率较低,测试结果中叠加了幅度较高的振荡波形,信号严重失真。所需的冲击波超压峰值和正压作用时间等测试指标无法得到。然而经过DFOA寻优所得动态补偿系统后,谐振频率处的高倍异常放大被明显抑制,超调量降低,补偿后的信号更加接近于真实冲击波信号。

4 结论

在冲击波测试系统中,为了提高传感器的动态特性,引入了基于DFOA算法的压阻式压力传感器动态补偿系统。DFOA在候选解生成和搜索步长两方面对FOA进行改进,在搜索精度和搜索效率上优于FOA和PSO。通过DFOA算法求解出补偿器参数,构建的补偿系统使激波管校准数据超调量降低到3%,扩展了传感器频谱,降低了谐振频率的影响。对实测冲击波信号的实验表明,基于DFOA的传感器动态补偿系统能够有效提高传感器系统的动态性能。

猜你喜欢

果蝇冲击波味道
果蝇也会“触景伤身”
小果蝇大贡献
中秋的味道
果蝇遇到危险时会心跳加速
快乐的味道
小果蝇助力治疗孤独症
武汉冲击波
能源物联网冲击波
夏天的味道
医生集团冲击波