苏茂宇,胡剑波,王应洋,贺子厚,丛继平,韩霖骁
(空军工程大学 装备管理与无人机工程学院, 西安 710051)
为在未来战场上获得制空优势,当前世界各航空大国纷纷加快了下一代战机的研究步伐,提出了一系列概念方案。在飞行平台方面,无尾布局因其在隐身性、长航时等方面的优异性能而备受青睐[1]。
垂直尾翼的取消使无尾飞行器的隐身性能大幅提高,但也使其水平控制效率、横向稳定性有所下降。为此通常在常规操纵面的基础上增加全动翼尖、嵌入面等新型操纵面,保证飞行器拥有足够的控制效率,但操纵面的冗余配置导致了控制分配问题[2]。由于新型操纵面控制效率的非线性特性及操纵面间的耦合作用,加之操纵面偏转的位置和速率限制,无尾飞行器的控制分配是一个复杂的非线性优化问题。
解决非线性控制分配问题的方法可分为非智能方法与智能方法两类。关于第一类方法,Matamoros等[3]提出了增量非线性控制分配方法,对非线性控制分配问题进行线性化处理;徐明兴[4]通过三阶多项式对非线性舵效进行拟合,并利用序列二次规划进行求解,但该方法的分配精度受制于拟合多项式的阶数;文献[5]针对操纵面耦合作用,将其作为不确定项提出一种鲁棒控制分配方法,但牺牲了一部分操纵面的控制潜能。
伴随人工智能的蓬勃发展,一些现代智能方法被应用到非线性控制分配问题上。Zheng等[6]针对复合式旋翼飞行器过渡过程的非线性控制分配问题,利用一种改进粒子群算法进行求解;赵昕辉[7]采用遗传-粒子群混合优化算法处理非线性控制分配问题,与单一优化算法相比,收敛速度更快、精度更高但运算量较大;de Vries等[8]提出了基于Q-Learning的控制分配强化学习方法,并应用到ICE无尾飞行器的纵向控制分配上。智能方法在控制分配上的应用还存在一定弊端,以元启发式算法为例,其运算量往往较大,在现有计算条件下难以满足控制分配的实时性要求,且运行结果具有不确定性。
为此,针对无尾飞行器操纵面配置冗余及其气动特性复杂导致的非线性控制分配问题,以及智能算法在解决控制分配问题中实时性差、随机性强的不足,首先将非线性控制分配问题转化为智能算法可以处理的优化问题;然后在标准遗传算法的基础上,通过增强算法记忆性以及时保留优质解,通过优化初始种群生成机制以加速搜索过程,通过改进交叉/变异概率的动态调整方式以提高全局搜索能力,进而形成一种基于改进自适应遗传算法的智能控制分配方法,在充分利用智能算法强大的非线性处理能力的同时,有效克服当前制约其应用的困难;并将该方法应用到ICE无尾飞行器模型上,与基于标准遗传算法[9]、粒子群优化算法[10]的传统智能控制分配方法在分配精度、迭代次数等方面进行综合对比分析,充分验证该方法在性能上的提升。
对于多操纵面飞行器而言,其飞行控制系统常采用模块化设计方式,分为飞行控制律与控制分配律两部分单独进行设计[11],其结构如图1所示。飞行控制律根据飞行器动力学表达式
(1)
及一定的控制算法解算出力矩指令τc∈R3,其中,x∈Rn为迎角、速度等状态,n为状态数量;τ∈Rm为气动输入,通常为力或力矩,m为输入数量。而后控制分配模块根据舵效模型
τ=h(x,δ)
(2)
以及操纵面的位置与速率限制
(3)
确定合适的舵偏量δ∈Rl,使其生成的控制输入τ与力矩指令τc间的误差最小,其中l为操纵面数量。对于多操纵面飞行器有l>m=3,这表明可能存在多组满足控制分配要求的舵偏组合。为保证解的唯一性,通常将控制分配的目标设置为分配误差和总舵偏量均最小的混合优化形式:
(4)
图1 多操纵面飞行器模块化结构框图
为便于求解,通常将式(2)进行式(5)所示的线性化处理:
τ=h(x,δ)≈B(x)δ
(5)
其中B(x)∈Rm×l称为控制效率矩阵。同时,由于飞控计算机的离散运算方式,操纵面的位置、速率限制可合并为
(6)
(7)
Δt为计算机运算步长,δ0为上一步结束时的舵面偏转量。在此基础上,即可通过直接分配法、再分配广义逆法等常规控制分配方法求解舵偏量。然而对于无尾飞行器而言,基于线性舵效假设的控制分配方法却无法适用。
现有的无尾布局飞行器大多将进气道配置在机体上方,一定程度上限制了飞行器的大迎角和航向机动性[12]。针对该问题,洛克希德·马丁公司于上世纪90年代提出了新型操纵面(innovative control effectors,ICE)飞行器的概念[13],该飞行器采用一种超声速无尾布局,进气道位于机体下方,经过改进后配置有多轴推力矢量及11个气动操纵面,其结构如图2所示;各操纵面的性能参数如表1所示。本文中以ICE无尾飞行器为模型进行非线性控制分配问题分析与智能控制分配方法验证。
图2 ICE飞行器操纵面结构示意图
表1 ICE舵面性能参数
ICE无尾飞行器的控制分配难点主要体现在两方面,一是各操纵面偏转与产生的力矩之间并非呈线性关系,往往为单调非线性甚至非单调非线性关系;二是由于各操纵面的排列较为紧密,部分操纵面之间的气动耦合严重,操纵面控制效率会受到其他操纵面偏转的影响。
以图3所示的ICE无尾飞行器左全动翼尖的滚转力矩产生效率与左升降副翼的偏航力矩产生效率为例:
图3 ICE飞行器部分操纵面控制效率曲面
在飞行高度h=15 000ft=4 572 m,马赫数Ma=1.2的条件下,飞行器处于不同迎角α时,左全动翼尖偏转角度δlamt与其产生的力矩系数Cl之间呈现复杂的非线性关系;当左嵌入面处于不同偏转角度时,左升降副翼的偏航力矩产生效率差异巨大,尤其是当左嵌入面偏转δlssd>20°时,位于其气流下游的左升降副翼无论如何偏转均几乎不产生偏航力矩。
以上特点导致在ICE无尾飞行器的控制分配问题中,式(2)无法近似为式(5)形式,否则会产生巨大的分配误差。为此,可以利用遗传算法等元启发式算法解决ICE无尾飞行器非线性控制分配问题,其优势在于智能优化算法拥有处理非线性优化问题的强大能力,无需考虑复杂的气动关系。然而将此方法应用到该问题上时必须解决智能算法运算量大、优化速度慢,以及解的品质随机性较强的问题,因此计划从控制分配的流程特点出发,在保证解的品质的前提下以减少迭代次数、降低算法随机性为目的,提出了一种基于改进自适应遗传算法的无尾飞行器智能控制分配方法。
遗传算法(genetic algorithm,GA)通过在数学上模拟自然界中的适者生存、染色体交叉、基因突变等现象,使得被称为种群的一组可行解经过多次选择、交叉、变异操作后逐步进化到全局最优解附近。标准遗传算法(standard genetic algorithm,SGA)的算法流程与具体操作可详见文献[14],在此不作赘述。
SGA的并行处理机制使其具有全局最优解的搜索能力,但存在求解时间长、对初始种群依赖性较强、对不同问题要单独设置交叉和变异概率等缺陷[15],严重制约了SGA在非线性控制分配上的应用。为此,通过保存历史最优个体、改进初始种群生成方式、构造新型自适应交叉/变异概率等三个方面的改进,提出了一种适用于无尾飞行器非线性控制分配的改进自适应遗传算法(improved adaptive genetic algorithm,IAGA),具体如下:
改进1:保存历史最优个体
由于缺少对历史迭代步的记忆,SGA所需收敛时间往往过长。为弥补此缺陷,采用历史最优保存策略,具体操作步骤为:找出当前种群中适应度最佳与最差个体,若最佳个体的适应度比此前各迭代步中的最佳适应度更优,则以当前种群的最佳个体作为新的历史最优个体并进行保存,以便在下一次迭代中进行比较,同时用历史最优个体替换当前种群的最差个体。该方法的目的在于防止优质基因在选择、交叉、变异操作中发生丢失,加速算法的寻优速度。
改进2:优化初始种群生成方式
合理的初始种群可以大大加快算法寻优速度。如上文所述,鉴于飞控计算机的离散运行方式,控制分配问题中的虚拟控制指令实际由多个单步指令构成,相邻两步的控制指令变化幅度在多数时间较小,当上一步控制指令的分配精度符合控制要求时,可以摒弃随机产生初始种群的方式,按照如下方式生成:
(8)
(9)
并以上一步优质解为中心,根据相邻两步指令的变化大小确定初始种群分布范围半径,充分利用已知信息,使初始种群的生成机制更为合理,利于快速收敛。
改进3:构造新型自适应交叉、变异概率
表2 AGA及其主要改进型
可见,各种形式的AGA均存在一定弊端,为此基于双曲正切函数和余弦函数的复合函数对自适应遗传算子进行了非线性化处理,形成了一种改进的自适应遗传算法。双曲正切函数由双曲正弦函数和双曲余弦函数推导而来,数学表达式为
(10)
双曲正切函数具有两大优势,一是底部、顶部更为平滑,更加符合交叉、变异概率要求;二是其值域限定在[-1,1]区间内,便于构造自适应交叉、变异概率公式。
针对最小优化问题,将IAGA自适应遗传概率表达式构造为
(11)
(12)
式中,C为一较大的正实数,使x≥C时,tanhx接近1,x≤-C时,tanhx接近-1。本文中设定C=10。
图4 各种AGA交叉(变异)概率变化曲线
根据上文在算法记忆性、初始种群生成方式及自适应交叉/变异函数构建这三方面的改进,可将IAGA在无尾飞行器非线性控制分配问题上应用的完整步骤总结如下,并将方法流程归纳为图5。
图5 面向控制分配的IAGA流程框图
步骤1设定算法参数n、imax、Pcmax、Pcmin、Pmmax、Pmmin;
步骤2输入当前计算周期待分配的单步力矩指令τc(k);
步骤3若上一步的适应度达到要求,则按照式(8)进行种群初始化,否则在舵面偏转的位置与速率限制范围内对种群进行随机初始化;
步骤4计算种群适应度并进行保存历史最优个体、替换最差个体操作;
步骤5判断种群适应度是否符合要求,若符合则跳出循环,否则进行选择及自适应交叉/变异操作,直至种群适应度符合要求或达到最大迭代次数imax,输出适应度最优的个体作为舵偏量,实现对τc(k)的分配;
步骤6重复步骤2~步骤5,直至对全部力矩指令完成分配。
为验证IAGA处理无尾飞行器非线性控制分配问题的有效性与适用性,以ICE飞行器为模型,在Ma=1.2,h=15 000 ft=4 572 m的超声速飞行条件下与基于SGA、基于粒子群优化(particle swarm optimization,PSO)算法的2种传统智能控制分配方法进行对比分析。由于ICE飞行器的前缘襟翼一般不发挥产生力矩的作用[21],多轴推力矢量多用于大机动飞行及舵面故障后的重构飞行条件下,本文中使用除前缘襟翼与多轴推力矢量外的7个操纵面产生滚转、俯仰、偏航力矩。出于控制分配实时性的考虑,需在保证求解精度的前提下尽可能降低种群规模与最大迭代次数;为防止搜索阻滞同时避免算法沦为随机搜索,文献[14]建议将Pc取在0.6~1.0、Pm取为0.001~0.1。综合考虑以上因素,将SGA与IAGA的参数设置如表3。
表3 SGA与IAGA主要参数设置
在对指令τc(k-1)=[9.8×10-3;1.98×10-2;4.8×10-3]进行精准分配的前提下,分别使用SGA与IAGA对期望力矩指令τc(k)=[Cld;Cmd;Cnd]=[0.01;0.02;0.005]进行分配。由于智能优化算法均存在一定程度的随机性,每次运算结果均有差异,为消除偶然因素影响,在保持表3参数设置不变的情况下使用2种方法各进行10次独立重复实验,每次实验的适应度变化情况如图6。
图6 SGA与IAGA适应度变化曲线
其中,10条蓝色点划线、10条红色实线分别表示SGA、IAGA在各次单步指令分配实验中的适应度变化情况。通过多次实验结果可见,初始种群的优化使IAGA开始迭代时的适应度处于较低水平,而历史最优个体的保留使优良个体免于被交叉、变异操作破坏,不会出现SGA中适应度随迭代次数增加反而变差的情况,且到达最大迭代次数时IAGA适应度普遍优于SGA适应度。
在飞行迎角α=2°、侧滑角β=0°、总时长为2 s的条件下进行仿真,当适应度满足
(13)
时认定符合要求,可结束迭代进行下一指令的分配。对2组连续力矩指令进行分配,指令一参照文献[7]设置为
(14)
(15)
为充分验证基于IAGA的智能控制分配方法的优异性能,引入基于PSO的传统智能控制分配方法进行对比,同样将其种群规模设置为15、最大迭代次数设置为40。图7、图8给出了SGA、PSO与IAGA的力矩指令分配结果及平均分配误差,其中黑色长虚线表示力矩指令,蓝色点划线、绿色短虚线、红色实线分别表示基于SGA、PSO、IAGA得到的力矩分配结果,表4所示为指令分配平均误差。可见SGA与IAGA在相同的适应度要求下均可以对力矩指令进行较为准确的分配,而基于PSO的控制分配方法分配误差为另外2种分配方法的3~4倍,无法满足控制分配的准确性要求,故不再对PSO进行进一步的对比验证;除指令一中的俯仰力矩外,IAGA的分配误差均明显小于SGA。
图7 指令一分配曲线
图8 指令二分配曲线
表4 指令分配平均误差
图9为2种分配方式分配指令二的舵面偏转曲线,蓝色点划线、红色实线分别表示基于SGA、IAGA的舵面位置变化情况。由于SGA初始种群的随机生成方式,其舵面位置变化较为剧烈;由于IAGA中对初始种群生成方式的优化,算法的不确定性得到一定程度遏制,舵面位置变化相对平缓。
图9 操纵面偏转曲线
此外,对SGA与IAGA在指令分配过程中所需的迭代次数进行统计,结果如图10所示。
图10 迭代次数曲线
图10中,蓝色点划线、红色实线分别表示SGA、IAGA的迭代次数。经计算,SGA和IAGA分配指令一、指令二的单步指令平均所需迭代次数如表5所示。可见,后者较前者在求解质量更高的情况下减少了约3次迭代,更加符合控制分配的准确性、快速性要求。
表5 平均迭代次数
针对无尾飞行器的非线性控制分配问题,提出了一种改进自适应遗传算法,较标准遗传算法进行了3方面改进:
1) 保存历史最优个体,防止优质个体丢失;
2) 利用已知信息优化初始种群生成方式,加速算法寻优过程,削弱分配结果的不确定性;
3) 基于双曲正切函数与余弦函数的复合函数构建新型自适应交叉、变异算子,提高算法求取全局最优解的能力。
在考虑操纵面偏转位置和速率限制的前提下,利用ICE飞行器模型进行了分配效果验证,表明该方法较标准遗传算法可以更少的迭代次数实现力矩指令更为准确的分配,更加满足非线性控制分配的准确性、实时性,避免智能算法处理非线性控制分配问题的弊端。