基于改进fal 函数ADRC 算法的直升机姿态控制研究
2024-04-20廖兴勇李智
廖兴勇,李智
(四川大学 电子信息学院,四川成都,610065)
0 引言
传统无人直升机凭借其可悬停、可低空低速、可机头方向不动的机动飞行、能垂直起降等优点使其一直具有广阔发展前景,并广泛用于军事、农业等方面。目前国内外军事竞备激烈,更需要性能更强大、低噪声、抗干扰、高稳定性的无人直升机。传统无人直升机的姿态控制方法主要有比例积分微分控制、反步控制、模糊控制、滑模控制、线性二次型调节器、反馈线性化等方法。但上述方法往往具有一定的局限性和缺陷,例如:依赖数学模型、收敛速度过低、控制复杂度过高、设计缺乏系统性。无人直升机的姿态控制是一个高阶、非线性、强耦合的控制系统,在这方面,自抗扰控制算法(ADRC)本身具有天然的解耦性,且自抗扰控制算法中的扩张状态观测器(ESO)能应对不同高阶系统进行扩张,并且自抗扰控制算法中的跟踪微分器(TD)具有天然的滤波特性,可以有效提高系统的抗干扰能力和鲁棒性。
ADRC 算法的核心在于扩张状态观测器,其思想在于将系统的内部扰动和外部干扰都归结为总扰动,将此总扰动作为新的状态量加入原系统中,并将系统的输入和输出作为观测器的输入值,结合系统的状态量对该总扰动进行估计,在系统最终输出前对估计的扰动值进行修正从而抵消干扰,达到抗干扰的能力,观测器藉由对扰动的估计准确性能决定ADRC 算法的抗干扰能力。目前为应对不同的系统和环境,ADRC 也衍生出了许多改进思路,其中最主要的改进方向分为自身算法改进和融合算法改进。自身算法方改进方面,又细分为ADRC 结构改进和算法改进[1]。ADRC 算法分为跟踪微分器,非线性反馈律与扩张状态观测器三个部分,结构改进体现在其中某个模块的构成或者结合上的改进;算法方面的改进主要体现在fal 函数的改进,fal 函数作为扩张状态观测器的核心函数,其主要作用在于对非线性系统的近似替换,fal 函数的设计直接影响了ESO 的观测效果,本文便是基于对fal 函数的改进提出一种新的ADRC 算法,并通过理论和实验证明新的ADRC 算法在直升机姿态控制上有着更好的抗干扰能力。
1 传统无人直升机数学模型
以传统直升机为研究对象,直升机的动力学方程如下:
其中,θ为俯仰角,ψ为偏航角,φ为滚转角;p为滚转角速度、q为俯仰角速度、r为偏航角速度;u、v、w为三轴轴向速度;L、M、N为三轴力矩;X、Y、Z为三轴的力;m为机体质量;Ix、Iy、Iz为三轴转动惯量;Ixz为直升机对Ox和Oz轴的惯性积。
得到直升机的非线性动力学方程后,需要对非线性模型进行线性化。根据小扰动法,利用泰勒级数在平衡点处展开,解析地得到悬停条件下的矩阵A 和B,可得到线性状态空间模型的表达:
在线性状态空间模型中,u为输入量,x为状态量,形式如下:
设无扰动情况下的无人直升机运动状态为:
小扰动为:
其中:
忽略高阶量,对上式中增量进行泰勒展开便可得到状态空间模型矩阵A 和B。
2 ESO 中fal 函数的改进
2.1 ADRC 控制器组成结构
目前普遍的ADRC 控制器通常由3个部分组成(不排除有其他改进后融合了其他算法的ADRC 控制器可能不只是3 部分):分别是TD 跟踪微分器、ESO 扩张状态观测器、NLSEF 非线性反馈律,组成结构如图1 所示。
图1 ADRC 控制器
ADRC 算法是由解决传统PID 算法的缺点并保留其优点而设计的算法[2],主要优化的部分在于:
(1)以跟踪微分器替代PID 由误差提取微分的方法,解决线性微分器的缺陷。
(2)以非线性反馈替代加权和策略,解决加权和的缺陷。
(3)以扩张状态观测器替代积分反馈,解决传统积分消除误差带来的系统延后的缺陷。
本文重点关注ESO 扩张状态观测器的设计与优化,ESO 把系统中的不确定项和干扰项视为系统的状态之一,并建立新的状态空间,对这个新的状态空间中的状态进行观测,即可得到不确定项的估计值。考虑如下非线性系统:
对非线性系统中的不确定项f(x1,x2)定义为x3 ,并定义x3′=w(t),可将原非线性系统扩张为增广系统,不确定项f(x1,x2)作为状态之一参与到状态空间中。
对新的增广状态空间建立ESO 扩张状态观测器形式如下,其中β0i是可调参数。
其中αi,σ为fal函数的可调参数。fal函数的设计思想是符合“大误差,小增益;小误差,大增益;光滑连续,处处可导,关于原点对称,原点增益有限”的原则,虽然fal函数基本满足这个设计原则,但是仍然存在诸多缺点。
2.2 lnfal 函数的设计
ADRC 算法的核心是ESO,而决定ESO 观测性能的是非线性函数。考虑到原始fal函数的缺点,设计新的lnfal函数的形式如下:
lnfal与原fal函数对比图如图2~3 所示。
图2 fal 与lnfal 原点波形对比
图3 fal 与lnfal 增益波形对比
图4 阶跃信号波形
图5 阶跃信号局部波形
图6 含输入噪声阶跃信号波形
图7 含输入噪声阶跃信号局部波形
图8 正弦信号波形
图9 正弦信号局部波形
图10 含反馈噪声阶跃信号波形
图11 含反馈噪声阶跃信号局部波形
图12 含输入/反馈噪声阶跃信号波形
图13 含输入/反馈噪声阶跃信号局部波形
对比两者的波形可以看出,fal函数在切换区间处的增益过大,容易引起系统抖振;在小误差区间内的增益虽然较大,但是并不连续;在大误差区间内的增益也大于lnfal函数,这在抑制过冲上效果不如lnfal函数。
2.3 改进ESO 的收敛性判断
基于lnfal函数设计的ESO 扩张观测器形式如下:
以新的ESO 计算新的误差方程为:
误差方程表示了原系统与观测系统状态变量之间的观测误差,要满足e' 趋近于e,也就是观测准确,这需要观测矩阵稳定,其中:
引理1[3]若存在矩阵:
矩阵D 的主对角线的值均为正,并且矩阵DA(e)为正定对称阵,则系统的零解是Lyapunov 渐近稳定的,从而观测器的状态 1z,z2 ,z3 可以很好地跟踪 1x,x2 ,x3 。
计算矩阵DA(e)可知:
这里的lnfal(e,k)/e代表的是函数lnfal(e,k)在x=e处的切线斜率,从lnfal(e,k)的函数波形可以看出,该函数在全区间内的切线斜率的范围是:0
其中,β=β01β02-β03;f=lnfal(e,k)/e;ε1,ε2,ε3 都是趋近于无穷小的正数。
综上所述,可知当f=lnfal(e,k)/e为(0,k)中的有界值,β=β01β02-β03 > 0,A矩阵是渐近稳定的。
3 改进fal 函数的直升机姿态ADRC 算法仿真验证
3.1 仿真实验数据
为验证本文所提出改进ESO 方案的可行性,在matlab上设计多组对比实验,与直升机三轴通道的一致性,本文只对直升机俯仰通道进行仿真实验。ADRC 参数如表1 所示。
表 1 ADRC参数
3.2 直升机姿态控制仿真对比实验
为进一步验证改进fal 函数的ADRC 算法在直升机姿态控制中有更好的抗干扰性能,在matlab 的simulink 进行仿真实验,与原始fal 函数、文献[4]提出的faln 函数、文献[5]提出的xfal 函数进行对比实验,本文以俯仰通道为例进行以下几组仿真验证:
(1)幅值为10 的方波信号输入,模拟直升机遇到突发干扰;
(2)幅值为10 且含噪声的方波信号输入,模拟含噪声的突发干扰;
(3)幅值为27 的正弦波信号输入,模拟直升机遇到持续且平滑变化的干扰;
(4)包含反馈角度噪声的幅值为10 的方波信号输入,模拟直升机实际情况下传感器数据有噪声的突发干扰;
(5)包含反馈角度噪声且包含输入噪声的幅值为10的方波信号输入,模拟直升机实际情况下传感器数据有噪声且输入信号也有噪声的突发干扰。
对比上图中的不同fal 函数构造的ADRC 算法的角度跟踪效果,可以看出在阶跃信号发生时,不同ADRC 算法均能迅速做出跟踪,且跟踪性能相差不大,但是在超调量和收敛速度对比上,lnfal 函数的ADRC 算法比其他fal 函数的ADRC 算法效果更好,其收敛速度更快,超调量也更小,并且相比其他算法,lnfal 在阶跃信号的跟踪上并未出现振荡现象;无论是包含噪声的阶跃信号,还是在实际角度的反馈过程中加入噪声,各ADRC 算法在阶跃信号的跟踪性能上都相似,主要的区别在于超调量和收敛速度;在正弦波信号的跟踪上,各ADRC 算法体现了几乎一致的性能。结合上述现象可以得出结论,改进后的lnfal 函数构成的ADRC 算法在直升机姿态控制中,会比其他ADRC 算法起到更好地抑制过冲和超调的效果,且有着更快的收敛速度,说明改进的ADRC 算法具有更强的抗干扰能力。
4 结论
本文基于对ADRC 算法中ESO 模块的fal 函数的改进,针对原ADRC 算法的fal 函数不光滑、切换区间与大误差区间增益过大的问题,遵循fal 函数的设计原则提出了lnfal函数。首先在原理上验证了lnfal 相较于fal 的优越性以及证明了A 矩阵的稳定性,其次通过设计几组仿真实验,在matlab 上对比目前已提出的不同改进fal 函数的ADRC 算法分别作用于直升机的姿态控制,最后分析不同fal 函数的控制效果波形可以得出基于lnfal 函数的ADRC 算法在直升机姿态控制上有着更好抑制过冲效果以及更快的收敛速度。