APP下载

改进人工蜂群算法的四旋翼自抗扰控制参数优化

2022-06-14顾明琨钟小勇

科学技术与工程 2022年14期
关键词:蜜源旋翼适应度

顾明琨, 钟小勇

(江西理工大学理学院, 赣州 341000)

四旋翼飞行器是一种具有6个自由度可垂直起降的旋翼无人机,因其机动灵活、操作简单、能自由悬停等优点被广泛应用于工业、农业、军事等各个领域[1-2]。四旋翼飞行器具有高度非线性、欠驱动以及强耦合的特性,容易受到各种因素干扰,至今四旋翼控制器的研究设计依然面临许多问题。

中外众多研究机构和大学对无人机进行了深入研究,设计出了很多控制方法。其中,最为经典的方法是基于牛顿-欧拉定律建立四旋翼六自由度刚体运动模型,使用比例积分微分(proportion integral differential,PID)控制器来进行控制。由于PID控制器结构简单,在无扰动情况下可以实现无静差的特性,在控制精度要求不高的场合得到了广泛应用。如文献[3]设计了级联双闭环PID控制器,在小速度、小角度的变化下 实现了较为精准的定点悬停和轨迹跟踪,但在有外部干扰或需要更高控制精度的场合时,PID控制器的适应性较差,此时采用自抗扰(active disturbance rejection control,ADRC)控制器能取得更好的效果。如文献[4]利用自抗扰控制器的解耦特性和抗干扰能力,通过延迟补偿扩张观测器和改进非线性状态误差反馈,提高了系统的抗干扰性能,但同时也导致了控制参数过多,不便于实际工程应用。文献[5]虽然在ADRC控制原理及设计方法的基础上,通过线性简化的方式减少了控制器参数,并通过人工整定,获得了较好的控制性能,但由于在内外回路控制中,参数之间并不是相互独立的关系,调节其中一个参数也会影响其他参数的控制作用,也就造成了人工整定参数精确度低、效率差的缺点。因此许多学者选择运用智能算法,如粒子群算法(particle swarm optimization,PSO)[6]、人工蜂群算法(artificial bee colony,ABC)[7]等进行控制器的参数整定。文献[8]采用人工蜂群算法优化控制器参数,提高了参数整定的效率和精度。文献[9]将人工整定与算法整定相结合,根据控制精度确定部分参数,对于与受控对象有关的参数使用人工蜂群整定,减小了参数整定难度,但其采用的标准的人工蜂群算法也存在着易陷入局部最优,后期收敛速度慢的缺陷。

为进一步提高控制器性能,克服算法收敛速度慢以及局部收敛的问题,现利用改进人工蜂群算法(adaptive artificial bee colony,AABC)对ADRC控制器进行参数整定,将一种固定的搜索策略拓展为多种,并比较每种策略产生更优解的能力。当某种策略产生的更优解越多,该策略被选中的概率就会增加。这种方法使得原算法中的随机开发具有了一定的方向性,更容易快速地找到更优解,避免因算法随机性而导致的精度下降问题,并在四旋翼无人机悬停仿真实验中加入风干扰测试算法的整定性能,验证设计的可行性和工程应用价值。

1 四旋翼飞行器建模及风干扰模型

1.1 四旋翼无人机动力模型

四旋翼飞行器的动力模型是飞行控制系统设计的基础。假设四旋翼飞行器所在的地理坐标为ζ=[x,y,z],欧拉角为Θ=[φ,θ,ψ],角速度为ω=[p,q,r],四旋翼飞行器动力学模型[10]为

(1)

式(1)中:x、y、z为地面坐标系中无人机的坐标位置;φ、θ、ψ分别为横滚角、俯仰角和偏航角;p、q、r为三轴的角速度;JTP为旋翼的转动惯量;Ii(i=x,y,z)分别为三个轴上的转动惯量;m为飞行器的质量;g为重力加速度;Ω为机体转速;U1为垂直运动力矩;U2、U3、U4分别代表横滚、俯仰和偏航力矩,它与4个电机的转速关系如下:

(2)

式(2)中:Fi(i=1,2,3,4)为对应旋翼的升力;Ωi(i=1,2,3,4)为4个电机的转速;b为升力系数;d为阻力矩系数;l为旋翼中心到机体坐标系原点的距离。

1.2 干扰风场模型

为了更加贴近无人机在各种干扰下的实际飞行情况,在四旋翼仿真模型中加入干扰风场。假设风从侧下方吹来,无人机的受力情况如图1所示。

图1 风干扰时无人机的受力分析Fig.1 Force analysis of unmanned aerial vehicle under wind disturbance

无人机由于受到风的推力,旋翼2产生的升力F2变成了F′2,造成了四旋翼无人机控制的振荡。为了准确描述风的随机性和间歇性,建立以下4种风构成的风速模型[11]:基本风vb、阵风vg、随机风vr和渐进风vn。对上面4种风进行组合就可以得到风速模型V:

V=vb+vg+vr+vn

(3)

基本风可看作是不随时间变化的常量:

vb=k

(4)

式(4)中:k为常数。

阵风模型体现了风的间歇性,可表示为

(5)

式(5)中:Vgmax为阵风风速的最大值;t为当前时间;T1为阵风开始时间;T2为阵风结束时间;Tg为阵风周期。

随机风模型反映了风的随机性,可表示为

vr=VrmaxRam(-1,1)cos(ω+φr)

(6)

式(6)中:Vrmax为随机风的最大值;Ram(-1,1)为-1~1的随机数;ω取值为[0.5π,2π];φr为[0,2π]的随机量。

渐变风反映风的渐变性,可表示为

(7)

式(7)中:Vnmax为渐进风风速最大值;T′1为渐变风开始时间;T′2渐变风结束时间;T为渐变风持续时间。

根据贝茨理论[12],当空气作用在旋翼上时,可以将旋翼看作是一个圆盘,圆盘受到的力为

Ff=2ρAdV2a(1-a)

(8)

式(8)中:ρ为空气密度;Ad为圆盘的截面积;V为干扰风的风速;α为轴流诱导因数,取值为[0,0.5]。

2 线性自抗扰控制器

线性自抗扰控制器的结构是由ADRC自抗扰控制器演变而来的。线性自抗扰控制器将原有的扩张状态观测器和非线性状态误差反馈两部分线性化,利用带宽来确定线性扩张观测器(linear extended state observer, LESO)和线性状态误差反馈(linear state error feedback, LSEF),并去掉微分跟踪器(tracking differentiator, TD),使ADRC的结构变得更加简单,减少了需要整定的参数[13]。因此二阶线性ADRC的控制器结构原理图如图2所示。

图2 二阶线性自抗扰控制器结构Fig.2 The structure of second-order linear ADRC

其中,LESO实现形式为

(9)

式(9)中:β1、β2和β3为线性扩张观测器LESO的增益。

假设ω0为观测器带宽,β与ω0的数学关系为

sn+1+β1sn+…+βn+1=(s+ω0)n+1

(10)

LSEF实现形式为

u0=kp(ν0-z1)-kdz2

(11)

式(11)中:kp与kd为待定系数。

同样设ωc为控制器带宽,它们与控制器宽度ωc的数学关系为

sn+1+k1sn+…+kn+1=(s+ωc)n+1

(12)

(13)

与非线性环节相比,线性环节需要整定的参数明显减少,只有ω0、ωc和b0这3个分量,且ω0≈ 3ωc~5ωc,降低了整定难度。

3 改进人工蜂群算法

3.1 人工蜂群算法的基本原理

人工蜂群算法[14]是一种模拟蜜蜂采蜜行为的算法,利用不同角色蜜蜂之间相互协作,使蜜蜂不断趋向于蜂蜜丰富的蜜源。人工蜂群算法主要包含以下5个阶段:种群初始化、雇佣蜂阶段、跟随蜂阶段、侦查蜂阶段和判断终止条件[15]。

(1)种群初始化。设初始种群规模为2SN,变量总维数为D,其中雇佣蜂数量和观察蜂数量都为种群规模的1/2,即SN。然后随机初始化SN个蜜源(初始解):

xi,j=xmin,j+rand(0,1)(xmax,j-xmin,j)

(14)

式(14)中:i∈{1,2,…,SN};j∈{1,2,…,D};rand(0,1)为[0,1]范围内的随机数;xi,j为第xi个蜜源的第j个分量位置;xmax,j、xmin,j为搜索范围的上、下限。

(2)雇佣蜂阶段。在此阶段,雇佣蜂会根据式(15)对蜜源xi,j进行搜索更新,产生一个不同于原蜜源xi,j的新蜜源vi,j作为候选解,计算新蜜源vi,j的适应度,并在两者进行贪婪选择。

vi,j=xi,j+φi,j(xi,j-xr1,j)

(15)

式(15)中:φi,j为[0,1]之间的随机数;r1为随机选择的一个蜜源,且r1≠i。如果新蜜源vi,j的适应度值好于旧蜜源xi,j,则用新蜜源vi,j的位置取代旧蜜源xi,j的位置,否则xi,j不变,仍为当前蜜源位置。

(3)跟随蜂阶段。当所有雇佣蜂完成对蜜源的更新操作后,雇佣蜂会把掌握的信息传递给观察蜂,观察蜂会根据雇佣蜂获取的蜜源信息按照式(16)采用轮盘选择法再次更新蜜源,蜜源被选中的概率由适应度值来决定。

(16)

式(16)中:fiti为蜜源xi的适应度值的大小;其计算公式为

(17)

式(17)中:abs为取绝对值;fi为目标函数值,越小的目标函数值越易被选中。当蜜源被观察蜂选中后,就会根据式(15)进行搜索,同时产生新的邻域解。根据贪婪选择,适应度值更优一方将会被保留。

(4)侦查蜂阶段。当蜜源xi的采集次数达到了最大次数Limit后,适应度值依然没有得到改善,就认为该蜜源已经陷入了局部最优解。则相关的雇佣蜂就会变为侦查蜂,根据式(14),产生一个新的食物源代替xi。

(5)判断终止条件。判断是否达到停止条件,是则输出最优蜜源位置,适应度值和其他参数,否则转至雇佣蜂阶段继续运行。

3.2 自适应搜索策略

从对标准ABC算法的分析中可知,雇佣蜂负责探索未访问点,跟随蜂负责开发访问过的位置邻域,寻找最优点。对于进化算法来说,探索和开发能力的平衡十分重要,而ABC算法擅长探索,开发能力较差。在ABC算法中,候选方案是通过式(15)产生的,这种生成方式不能保证生成的结果朝向更好方向,但如果能采用不同搜索策略,对表现好的搜索策略增加被选中概率,那么ABC算法的性能就可以得到显著提高[16]。

故设计思路是在式(15)的基础上,将一种搜索策略扩展为5种,采用轮盘选择方法,根据每种搜索策略的先验性能来更新被选中的概率。用s表示搜索策略的个数,SRs记录每种搜索策略的成功率为

(18)

式(18)中:SAs为每种策略得出更优解的次数;TA为所有策略得出更优解的总次数。由此可以通过SRs算出每种策略被选中的概率Ps为

(19)

同时引入一个存储长度ML,当某个策略的选中次数达到存储长度最大值之后,重置选择概率。选用的5种搜索策略如表1所示。对于所有的搜索规则SRules,i为蜜源,j为变量维度的索引,i∈{1,2,…,SN},j∈{1,2,…,D}。r1和r2是随机选择的蜜源,r1,r2∈{1,2,…,SN}且r1≠r2≠i。gbest为全局最优解,lbest为当前种群中的最优解,φ和ψ分别为[-1,1]和[0,1]的随机数。

表1 搜索策略

4 改进人工蜂群算法整定ADRC参数过程

ADRC的参数寻优,实质上就是寻找一条超调量最小,达到稳态时间最短,误差积分最小的反馈曲线[17]。选取时间绝对偏差积分(integral time absolute error,ITAE)作为适应度函数,定义为

(20)

式(20)中:e(t)为控制系统稳态误差。

利用改进人工蜂群算法整定ADRC控制器参数的流程图如图3所示。算法与四旋翼模型之间通过种群(ADRC控制器参数)和种群对应的适应度值(控制系统的性能指标)相连接,将种群依次赋值给控制器参数b0、ω0和ωc,运行四旋翼模型获得仿真数据,利用该组参数得到的数据计算出对应的性能指标,并将该指标作为算法中的适应度值依次迭代,获取适应度最优的控制器参数。

图3 AABC优化LADRC流程图Fig.3 The flow chart for optimizing LADRC with AABC

改进人工蜂群算法整定ADRC参数的步骤如下。

(1)初始化,设定算法的种群规模NP、维度参数D,最大迭代次数MAX_FES,最大采集次数Limit和概率重置次数ML。设置需要优化的ADRC参数的上限Xmax和下限Xmin,随机选择搜索规则产生初始蜜源Xi。

(2)将蜜源Xi代入四旋翼模型输出仿真数据,计算出反馈曲线的适应度值。

(3)随机选择表1中的搜索策略,产生新的蜜源Vi,将蜜源Vi代入四旋翼模型输出仿真数据,计算反馈曲线适应度值。

(4)在Xi和Vi中进行贪婪选择,组成整体适应度值更优的蜜源Xi。并记录被选中的Vi是来自哪个搜索策略和该策略被选中的次数和概率。

(5)根据式(16)和式(17)随机选择蜜源。并将选出的蜜源按照搜索策略的选择概率进行随机更新。

(6)将更新后蜜源Ui,j与对应位置Xi,j按照步骤(4)中的方式重新组合成下一代种群Xi,更新每种策略被选中的次数和概率,若次数大于ML,则将每种策略设置为相同概率,重新记录。

(7)若有蜜源在Limit时间内没有更新,则根据式(14)重新生成。

(8)判断是否达到最大迭代次数。若达到最大迭代次数,则停止寻参,输出最优解。否则跳转到步骤(2)。

5 实验仿真与结果分析

为验证对本文所提算法的控制精度及实时性,以横滚角为例,期望角度设定为30°,运用MATLAB和Simulink进行仿真。四旋翼仿真模型的具体参数如表2所示。

风干扰参数模型如表3所示,并将此风干扰模型应用到四旋翼的旋翼2 (参见图1中的升力F2)。

设置PSO粒子群规模为PS=40、维度参数D=3、位置区间为Xmin=[0 0 0]到Xmax=[4 100 30],速度区间V为位置区间的0.2倍,学习因子c1=c2=2,惯性权重ω从0.9线性递减至0.4。

设置ABC算法和AABC算法的种群规模NP=40,维度参数D=3,位置区间为Xmin=[0 0 0]到Xmax=[4 100 30],最大采集次数Limit=10。同时设置AABC算法中的概率重置次数ML=10。

3种算法各自评价1 000次,即MAX_FES=1 000,循环迭代次数maxG=25,得到的优化的ADRC 参数值如表4所示。

3种算法下适应度随迭代次数变化曲线如图4所示。计算得出风扰下的ADRC控制曲线,如图5所示。由图5可以看出,AABC算法计算出的参数调节时间最短,ABC算法其次,PSO算法的参数调节时间最长。在达到稳态后,3种算法整定的参数抗干扰性能如图6所示。

表2 四旋翼模型参数

表3 干扰风模型参数

表4 横滚通道LADRC参数

图4 3种算法下适应度随迭代次数变化曲线Fig.4 Fitness curve with the iterations based on three algorithms

从图6中可知,当受到风干扰导致当前值小于或大于期望值30°时,都是AABC算法得到的反馈曲线响应速度最快,能更迅速的恢复到稳态。

分析以上仿真结果,从图4的适应度迭代曲线来看,AABC算法的开发与探索能力强,在迭代20次后依然可以跳出局部最优解,防止了过早收敛,得到了最优的适应度值。结合图5和图6可以看出,系统在阶跃响应和风干扰的输入下,AABC算法的最优解可以使控制器以最快的速度达到稳定状态,并且对干扰有较强的抑制能力和反馈速度。

图5 风干扰下的ADRC控制曲线Fig.5 ADRC control curve under wind disturbance

6 结论

将线性自抗扰控制器应用在四旋翼控制系统中,并用Simulink对四旋翼飞行器进行建模仿真。为了得到最优的控制效果和解决人工整定参数困难的问题,提出改进人工蜂群算法,并加入自适应搜索策略,提高种群的多样性和寻优能力,有效克服了人工蜂群算法会陷入局部最优解的缺点。通过对四旋翼飞行器姿态的控制仿真,证明了改进人工蜂群算法的寻优能力更强,得到的控制参数具有更好的动态特性和稳态特性,对应用于复杂的飞行环境有一定的参考价值。

图6 风干扰下的ADRC控制曲线放大图Fig.6 Enlarged view of ADRC control curve under wind disturbance

猜你喜欢

蜜源旋翼适应度
改进的自适应复制、交叉和突变遗传算法
林下拓蜜源 蜂业上台阶
改进型自抗扰四旋翼无人机控制系统设计与实现
大载重长航时油动多旋翼无人机
基于STM32的四旋翼飞行器的设计
指示蜜源的导蜜鸟
一种基于改进适应度的多机器人协作策略
四旋翼无人机动态面控制
蜜蜂采花蜜
自适应遗传算法的改进与应用*