APP下载

基于多种群蜻蜓算法的四旋翼自抗扰姿态优化控制

2023-01-31李茂林王勇杰

计算机应用与软件 2022年12期
关键词:旋翼蜻蜓适应度

李茂林 王勇杰 介 丹

(运城职业技术大学电子信息工程系 山西 运城 044000)

0 引 言

四旋翼飞行器是一类多输入多输出的非线性飞行器,具有强耦合性且难以建立精确的数学模型[1],传统的PID控制[2]、鲁棒控制[3]和神经网络控制[4]等控制策略的控制效果均依赖被控对象的数学模型,因此针对具有难以建立精确数学模型特点的被控对象,传统的控制策略难以得到最优控制效果。此外,四旋翼飞行器在飞行过程中,易受到外界扰动,偏离预定飞行高度或飞行航线,导致飞行器在飞行过程中对于控制器的抗扰动能力要求极高。因此,针对上述特点,四旋翼飞行器的控制设计成为了国内外研究学者的研究重点。

古训等[5]提出一种自适应滑模控制策略,实现了飞行器的姿态控制和高度控制,提高了控制精度和响应速度。胡文华等[6]提出一种基于改进粒子群算法的自抗扰四旋翼控制策略,该策略针对传统粒子群算法求解精度不高的问题进行改进,并用于自抗扰参数整定,提高了控制精度。陈林奇等[7]提出一种双空间粒子群算法的自抗扰四旋翼控制策略,该策略实现了飞行器到达指令高度的快速无超调,但该策略中粒子群算法难以针对扰动计算出当前有效的控制参数,使得控制器的抗扰动能力不强。Wang等[8]提出一种基于干扰观测器的四旋翼自适应容错控制,针对外负载扰动具有较强的观测能力,但该策略的缺点在于系统受到扰动后,再次达到稳态的时间较长。卢凯文等[9]提出一种具有LQR的四旋翼控制策略,该策略较传统PID控制的控制精度更高,但抗扰动能力较差。

为提高四旋翼飞行器的控制精度和抗扰动能力,本文首先选取非线性自抗扰作为四旋翼飞行器的控制器。其次针对非线性自抗扰控制器参数难以整定的问题,通过动态混沌权重、位置遗弃和多种群策略对蜻蜓算法进行改进,将改进后的蜻蜓算法用于自抗扰控制器参数的在线整定。最后将优化后的自抗扰控制器对四旋翼飞行器进行姿态控制和高度控制。

1 数学模型建立

1.1 四旋翼飞行器数学模型

设四旋翼飞行器在地面坐标系下的坐标为OL=(x,y,z),飞行器的俯仰角、滚动角和航向角分别记为α、β和γ。因此定义四旋翼飞行器的动力学方程的数学模型为:

(1)

式中:Ix、Iy和Iz分别为飞行器绕x、y、z三轴的惯性张量;m为飞行器质量;U1、U2、U3和U4分别为飞行器高度、俯仰角、滚动角和航向角的系统控制量;g为重力加速度;l表示四旋翼飞机质心与机翼中心点的距离。定义飞行器四个旋翼的转速分别为Ω1、Ω2、Ω3和Ω4。因此系统控制量和四个旋翼转速之间关系的数学表达式如下:

(2)

式中:b为升力系数;d为反扭矩系数。

由式(1)和式(2)可知,飞行器中,航向角、俯仰角和滚动角之间相互耦合,自抗扰控制器可将三通道之间的耦合量作为控制系统中的内部扰动,并与外部与扰动一起作为观测器观测的总扰动,对总扰动进行观测和补偿。因此可将式(1)和式(2)改写成与自抗扰控制数学模型的相对形式:

(3)

式中:ωi=(ω1,ω2,ω3,ω4)为系统四通道所受外负载扰动;fi为系统内部扰动;b1≈m-1,b2≈Ix-1,b3≈Iy-1,b4≈Iz-1。

1.2 自抗扰控制器数学模型

自抗扰控制器是一类不基于精确数学模型且抗扰动能力强的非线性控制器[10]。控制器由微分跟踪器、扩张状态观测器和非线性反馈控制率三部分构成。以航向角为例,设计航向角自抗扰控制器如下。被控对象可表示为:

(4)

1) 微分跟踪器的数学表达式如下:

(5)

式中:γd为航向角期望输入;h0为滤波因子;h为步长;r为速度因子,调节微分跟踪器对输入信号的跟踪速度;fst()为最速综合函数,安排系统的过渡过程。

2) 扩张状态观测器的数学表达式如下:

(6)

式中:β1、β2和β3为反馈增益参数,决定扩张状态观测器对扰动的观测和补偿效果;z1和z2为被动对象输入值和其微分信号的观测值;z3为系统总扰动观测值;α1通常取0.5;α2通常取0.25;δ通常取0.1。fal()函数的定义如下:

(7)

式中:e表示系统反馈误差。

3) 非线性误差反馈控制率根据输入输出反馈所得误差和扰动观测量z3,计算被控对象的最终控制量U4。其数学表达式如下所示:

(8)

式中:β11和β12为控制器增益参数,β11越大响应速度越快,但会引起系统震荡,β12越大,系统不易出现超调,但会导致系统调节时间过长;α1一般取0.5;α2一般取1.5;b为补偿系数。因此,非线性自抗扰控制器中,待整定参数为β1、β2、β3、β11、β12和b。

本文将改进的蜻蜓算法在线整定自抗扰控制坐骑参数,并将优化的自抗扰控制器对四旋翼飞行器进行姿态控制和高度控制,进行实验。系统分为四个独立回路通道,分别控制高度、航向角、俯仰角和滚动角。设系统高度的期望输入为zd、航向角期望输入为γd、俯仰角期望输入为αd、滚动角期望输入为βd。则基于改进蜻蜓算法的自抗扰四旋翼控制系统的控制结构如图1所示。

图1 控制结构

2 算法设计

2.1 基本蜻蜓优化算法

蜻蜓优化算法[11]在寻优过程中会分为静态和动态两个群体,其中静态群体在食物源附近进行小规模的范围性搜索,不断寻找其他猎物,直到找到最优食物源,这类行为被称为捕食行为。动态群体不断向最优食物源靠近,并沿当前寻优路径进行位置更新,寻找全局最优解,这类行为被称为迁徙行为。按照捕食和迁徙行为,蜻蜓算法主要通过以下五个方面进行迭代寻优。

1) 蜻蜓算法在寻优过程中,种群中的蜻蜓个体会不断与相邻个体进行分离,其数学表达式如下:

(9)

式中:Si为第i个个体与其相邻个体的分离度;N为相邻个体的数量;i=1,2,…,NP,NP为种群规模;xi为蜻蜓个体的位置;xj为相邻个体的位置,j=1,2,…,N。

2) 蜻蜓个体在寻优过程中,位置会不断发生改变,并与相近个体进行速度匹配,防止蜻蜓个体脱离群体,其数学表达式如下:

(10)

式中:Ai为第i个个体与相邻个体的速度对齐度;vj为相邻个体的速度。

3) 蜻蜓种群在寻优过程中,会形成一个小集体在寻优路径上进行小范围寻优,寻优完成后,小集体中的全部个体会向种群聚拢,其数学表达式如下:

(11)

式中:Ci为第i个个体与其相邻个体的聚拢度。

4) 蜻蜓个体会朝最优解方向不断靠近,并在路径中寻找更优质的解,其数学表达式如下:

Fi=xbest-xi

(12)

式中:xbest为食物源,即当前迭代产生的最优解;Fi为食物源对第i个个体的吸引力。

5) 蜻蜓个体在捕猎过程中,会不断躲避天敌,这种行为的数学表达式如下:

Ei=xworst-xi

(13)

式中:xworst为蜻蜓个体的天敌,即当前迭代中的最差解;Ei为第i个个体对天敌的排斥力。

综合以上五种蜻蜓在捕猎时的行为,定义在蜻蜓算法中,蜻蜓个体的位置更新公式如下:

X(t+1)=X(t)+ΔX(t+1)

(14)

式中:t=1,2,…,Tmax为当前迭代次数,Tmax为最大迭代次数;X(t)为蜻蜓种群中个体的位置;ΔX表示蜻蜓个体的更新步长。ΔX更新公式如下:

ΔX(t+1)=αsSi+αAAi+αCCi+αFFi+

αEEi+ωΔX(t)

(15)

式中:αs为个体的分离权重;αA为速度匹配权重;αC为聚拢权重;αF为食物因子;αE为天敌因子;ω为步长更新权重。

2.2 动态混沌权重

蜻蜓算法在位置更新过程中,步长更新权重ω会随机更改搜索步长,其优点在于搜索过程中不会丧失种群多样性,但缺点在于随机搜索极大概率会破坏算法全局收敛和局部搜索的平衡性。根据大量的实验研究表明,算法在迭代前期,应具有较大的搜索步长,扩大种群的搜索范围,保证全局最优解可以包含在解空间范围内,提高算法的全局搜索能力。同时大范围的搜索会使得算法的收敛精度降低,因此算法在迭代后期,应缩短搜索步长,减小搜索范围,使得算法可以在当前最优解附近进行精确搜索,提高算法的局部收敛精度。因此本文通过提出一种动态混沌步长更新权重对蜻蜓算法的位置更新方式进行改进。改进后的步长更新权重如下:

(16)

ΔX(t+1)=(αsSi+αAAi+αCCi+αFFi+

αEEi)+ωcΔX(t)

(17)

2.3 最差粒子位置遗弃

在蜻蜓个体寻优过程中,由于局部极值对其附近个体具有较强的吸引力,动态群体中的全部个体会向局部极值点不断靠近,使得个体无法跳出当前位置,导致算法早熟收敛,陷入局部最优,降低算法的收敛精度。传统的变异策略,通过使陷入局部最优的个体获得一个较大的扰动力,帮助个体跳出局部最优,但并不能保证跳出局部最优的个体不会再次受到局部极值的吸引,重新陷入局部最优。因此本文引入一种新的最差个体位置遗弃策略,对算法中适应度值较差的群体进行改进。最差个体位置遗弃是指,若当前个体在同一个位置被搜索Lmax次,且适应度值并没有得到有效的改善,则认为该个体在当前位置陷入局部最优,算法在之后的若干次迭代过程中,不会对当前位置进行搜索,此位置被标记为遗弃位置,并被生成的新位置所代替,新位置生成的数学表达式如下:

Xnew=(1-η(t))Xbest(t)+λ(Xbest(t)-X(t))

(18)

式中:Xnew为遗弃位置后产生的新位置;λ=2-(rand-0.5)×e-0.35t为位置因子,是一个随机数;Xbest(t)为当前迭代计算所得最优个体的位置;η(t)表示第t次迭代时位置更新权重。η(t)计算公式如下:

η(t)=ηmin+(ηmax-ηmin)×e-0.35t

(19)

式中:ηmax和ηmin为位置更新权重的最大值和最小值。

2.4 多种群寻优

本文通过引入最差粒子位置遗弃策略的基本蜻蜓算法进行改进,可以有效避免个体陷入局部最优,早熟收敛。但新位置生成的条件,是指个体在一个位置被多次搜索到,但适应度值并没有被改善。该策略的优点在于,若被搜索到的个体适应度值较差,帮助该个体跳出局部最优,避免算法早熟收敛陷入局部最优。缺点在于,若被搜索到的个体适应度值较优,但该位置同样被搜索多次,且未改变该个体的适应度函数值,说明该个体很有可能为全局最优解,若此时将该个体的位置进行遗弃,则会导致算法跳出极值点,难以找到全局最优解。因此本文通过多种群策略对算法进行改进,双种群寻优过程如下:

Step1种群初始化后,计算全部种群的适应度函数值,并进行排序。选择前10%的个体作为一个子种群,记为S1。其余个体作为另一个子种群,记为S2。

Step2在每次迭代过程中,通过动态混沌惯性权重对子种群S1中的个体进行位置更新,通过最差粒子位置遗弃策略对子种群S2中的个体进行位置更新。

Step3计算子种群S1和S2中的全部个体的适应度函数值。将种群S2中的个体按照适应度函数值进行排序,并比较子种群S2中前10%的个体与子种群S1中个体的适应度函数值,若优于S1中的个体,则进行替换。

2.5 改进蜻蜓算法的寻优步骤

Step1蜻蜓种群初始化,包括种群规模NP、维数为D、ηmax、ηmin、Lmax、Tmax、种群中全部个体的位置Xi和初始步长ΔX。

Step2计算蜻蜓种群中全部个体的适应度函数值并进行排序,选取前10%的个体作为一个子种群,记为S1。其余个体作为另一个子种群,记为S2。

Step3通过式(9)-式(13)计算Si、Ai、Ci、Fi和Ei。

Step4通过式(10)、式(11)和式(12)对子种群S1中个体的位置和补偿进行更新。

Step5通过式(10)、式(11)和式(13)对子种群S2中个体的位置和补偿进行更新,判断是否进行位置遗弃并产生新位置。

Step6计算子种群S1和S2中的全部个体的适应度函数值,并比较子种群S2中前10%的个体与子种群S1中个体的适应度函数值,若优于S1中的个体,则进行替换。

Step7判断是否达到最大迭代次数Tmax,是则输出最优解,否则返回Step 3。

3 算法仿真实验

为了验证本文所提多种群蜻蜓算法的性能,选取10个国际通用的标准测试函数进行实验验证。其中F1-F5为单峰测试函数,主要验证算法的收敛速度和全局搜索能力。F6-F10为多峰测试函数,主要验证算法的局部收敛能力和收敛精度。其中测试函数的具体信息如表1所示。为了可以更加直观地表现出多种群蜻蜓算法的寻优性能,本文将多种群蜻蜓算法的实验结果与双空间粒子群算法[7]、改进樽海鞘群算法[12]、交叉保优粒子群算法[6]的实验结果进行对比,为了保证实验的公平性,四种算法独立运行50次并对全部实验结果去平均值(Ave)、最小值(Min)、标准差(Std)、寻优成功率(SR),种群规模均为100,迭代次数均为100。具体实验结果如表2所示,其中最优解用加粗字体表示。四种算法的参数设置如下:其中本文所提多种群蜻蜓算法的位置更新权重的最大值ηmax、最小值ηmin和最大搜索次数Lmax通过多次数值仿真实验所得最优取值。

1) 多种群蜻蜓算法:ηmin=0.25,ηmax=0.9,Lmax=5。

2) 双空间粒子群算法:加速度因子c1=c2=2,惯性权重ω=0.6,搜索范围因子r1=0.75,搜索范围因子r2=0.25。

3) 交叉保优粒子群算法:加速度因子c1=2,加速度因子c2=2,惯性权重最小值ωmin=0.4,惯性权重最大值ωmax=0.9。

表1 测试函数

续表1

表2 测试结果

续表2

从表2中可知,对于单峰测试函数而言,本文所提多种群蜻蜓优化算法求解的平均值和最小值最小,说明多种群蜻蜓优化算法的全局收敛精度和寻优能力要优于其他三种算法。同时对于单峰测试函数F2和F5而言,交叉保优粒子群算法和改进樽海鞘群算法均早熟收敛,无法找到全局最优解,但多种群蜻蜓算法仍可找到全局最优解,说明动态混沌权重在寻优初期给予算法较大的搜索步长,扩大算法的寻优范围并成功覆盖了全局极值点。此外随求解维数增加,算法求解难度也急剧增加,双空间粒子群算法、交叉保优粒子群算法和改进樽海鞘群算法均很大程度地降低了算法的须有精度,寻优成功率也不同程度地降低,但多种群蜻蜓算法的寻优成功率均为100%且收敛精度变化不大,说明动态混沌权重在迭代后期有效缩短搜索步长,使得算法可以小范围精确搜索,提高了算法的收敛精度。

对于多峰测试函数F6-F9而言,本文所提多种群蜻蜓算法求解的平均值和最小值相较其他三种算法而言,同样最小,仅在测试函数F10上,双空间粒子群算法的求解精度要略优于本文算法,说明本文所提多种群蜻蜓算法的局部寻优能力要优于其他三种算法。同样,随求解维数的增加,四种算法的局部搜索能力均有所下降,但本文算法的局部寻优精度变化不大,且成功率为100%。值得注意的是,对于测试函数F7而言,本文算法可以求解到理论最优值,说明本文算法在迭代后期通过在极值点附近进行小范围搜索可以有效提高算法的寻优精度。

同时,对于全部测试函数而言,本文所提多种群蜻蜓算法求解的标准差较其他三种算法而言同样最小,说明本文算法的寻优稳定性要强于其他三种算法。随求解维数的增加,双空间粒子群算法、交叉保优粒子群算法和改进樽海鞘群算法在求解稳定性上表现的能力较差,但本文所提多种群蜻蜓算法求解的标准差变化不大,说明多种群蜻蜓算法对于求解具有复杂非线性数学模型的问题上,具有较强的寻优精度和寻优稳定性。

4 自抗扰四旋翼控制实验

本文通过多种群蜻蜓算法优化后的自抗扰控制器对飞行器进行姿态控制和高度控制实验,其中飞行器参数如表3所示。优化后的自抗扰控制器参数如表4所示。

表3 飞行器参数

表4 优化后的自抗扰控制器参数

本文选择ITAE评价指标作为多种群蜻蜓算法的适应度函数,该函数可较好地抑制长时间存在的误差,是一类具有很好工程实用性和选择性的控制系统性能评价指标。该指标的输入为系统期望值和系统输出值之间的误差。本文将基于多种群蜻蜓算法求解所得的ITAE评价函数指标值与双空间粒子群算法、改进樽海鞘群算法、交叉保优粒子群算法求解取得的ITAE评价函数指标值进行对比实验,实验结果如图2所示。

(a) 高度评价函数值

(b) 航向角评价函数值

(c) 俯仰角评价函数值

(d) 滚动角评价函数值图2 评价函数对比

可以看出,在迭代初期,本文所提多种群蜻蜓算法求解的评价函数值下降趋势最快且范围最大,说明本文算法相较其他三种算法在迭代前期具有较大的搜索范围,全局搜索能力更强。评价函数值下降速度最快说明本文算法的搜索速度最快。此外,在高度ITAE值、航向ITAE值、俯仰ITAE值和滚动ITAE值的求解上,多种群蜻蜓算法分别在23代、34代、33代和33代完成收敛,且ITAE值相较其他三种算法均为最小,到达稳态时间最短。说明本文算法在线整定自抗扰参数所需时间最短且精度最高。

本文通过优化后的自抗扰控制器对飞行器进行姿态控制和高度控制,实验结果如图3所示。其中高度输入为5 m,即幅值为5的阶跃信号。航线角期望输入为方波增益为15度的周期性方波,滚动角和俯仰角的期望输入为方波增益为40度的周期性方波。在实验过程中,为了对比验证本文所提改进策略的抗扰动能力,在控制过程中加入白噪声信号模拟外界扰动。

(a) 高度控制

(b) 航向角控制

(c) 俯仰角控制

(d) 滚动角控制图3 系统控制对比

可以看出,首先,本文所提改进策略在高度控制和欧拉角控制上,取得的控制精度最高,最大相对误差分别为0.2%、0.8%、0.93%和0.84%,且可以实现快速无超调。虽然基于改进樽海鞘群算法的优化控制策略在高度控制上,到达指定高度的时间略快于本文所提多种群蜻蜓算法的优化控制策略,但存在较大超调,且再次到达稳态的时间要慢于本文所提优化策略。此外,在航向角、俯仰角和滚动角的控制上,本文所提优化策略很好地对期望输入信号进行了跟踪,三个角之间的误差相差不大,说明优化后的自抗扰控制器很好地对三个欧拉角之间的耦合关系进行了解耦,较大程度地提高了控制精度,减小了飞行器的姿态控制误差。其次,加入白噪声后,本文所提多种群蜻蜓算法的自抗扰优化控制策略受扰动影响最小,三个欧拉角受扰动后,最大相对误差为0.93%、1.1%和0.96%,远优于其他三种优化控制策略受到扰动后的控制误差,说明多种群蜻蜓算法优化后的自抗扰控制器相较其他三种优化控制策略,具有较高的抗扰动能力。

5 结 语

本文针对四旋翼飞行器姿态角难以控制的问题,提出一种多种群蜻蜓算法自抗扰控制策略。对控制器参数难以整定问题,首先通过动态混沌权重、最差粒子遗弃和多种群策略对基本蜻蜓算法进行改进,提高算法的寻优精度,平衡算法全局局部收敛能力。其次将改进后的蜻蜓算法在线优化自抗扰控制器参数。最后将优化后的自抗扰控制器对四旋翼飞行器进行高度控制和姿态控制,在控制过程中加入白噪声扰动。实验结果表明,多种群蜻蜓算法优化后的自抗扰控制策略有效提高了飞行器的控制精度和抗扰动能力。

猜你喜欢

旋翼蜻蜓适应度
改进的自适应复制、交叉和突变遗传算法
改进型自抗扰四旋翼无人机控制系统设计与实现
大载重长航时油动多旋翼无人机
基于STM32的四旋翼飞行器的设计
一种基于改进适应度的多机器人协作策略
蜻蜓
蜻蜓点水
四旋翼无人机动态面控制
蜻蜓
基于空调导风板成型工艺的Kriging模型适应度研究