本发明涉及飞行器控制领域,具体涉及一种基于核递归最小二乘算法的自适应飞行器鲁棒控制方法,通过参考模型来表征期望的飞行特性,改善控制精度,并降低运算负担。
背景技术:
现代飞行器的气动布局往往不能满足稳定性能要求,而且伴随着复杂的空情干扰和系统参数的改变,为了获得理想的飞行品质,需要设计飞行器自适应鲁棒控制系统。为了解决这个问题,模型参考自适应(modelreferenceadaptivecontrol,mrac)方案设计飞行器自适应鲁棒控制系统,以参考模型表征期望飞行特性(蕴含良好的稳定性和操纵性),并使实际输出渐近跟踪参考输出。近年来,应用该理论设计的自动驾驶仪已经成功应用到飞行器上。
在mrac控制系统设计中,高品质的模型辨识和精确的在线控制是获得良好控制性能的关键。递归最小二乘算法(recursiveleastsquares,rls)是一种最小化平方误差代价函数,递归式寻找抽头权系数的线性算法。递归最小二乘算法利用已知的时刻抽头权系数向量,通过简单的迭代更新,从而求出时刻抽头权系数向量。
在i-1时刻,已知训练样本集
可见,当新样本对{xi,yi}出现时,需要计算出新抽头权系数向量wi,其代价函数为:
然而,rls算法中不需要重新计算wi的值,而是能够由wi-1递归式计算得到,从而减少了其计算量,提高了计算效率。图1给出了rls算法的结构框图。
表1rls算法更新流程
由于pi矩阵的维数等于输出向量维数l且保持不变,递归最小二乘算法每次更新的时间和空间复杂度均为o(l2)。递归最小二乘算法将计算负荷均匀地分布到每个循环中,从而在样本序列连续获得的在线时间序列预测应用中具有显著优势。
核递归最小二乘算法(kernelrecursiveleastsquares,krls)扩展了rls算法对非线性数据的处理能力,它将非线性数据通过mercer核函数映射到高维特征空间转化为线性问题,再利用rls算法在特征空间线性拟合。这种mercer核函数的映射过程经常称为“核技巧”,它不需要显式知道输入样本在特征空间内映射的形式,只需将映射的内积通过mercer核函数计算出来即可。该技巧利用较为简单的核函数计算,替代了高维特征空间内映射的复杂计算。
假定输入样本为xp,输入样本在特种空间内映射为
其中,xp,xq为输入样本,
将输入样本
给定特征矩阵
由式(4)得到krls算法新代价函数:
针对离线辨识,参考极限学习机(extremelearningmachine,elm)训练方法可以取消迭代过程,代价函数(5)可改写为:
minimize:
subjectto:hjαi=yj-ξj
式中,hj为第j组样本与i组总样本在特征空间映射的内积,hj=[k(xj,x1),...,k(xj,xi)],ξj是对应于样本xj的训练误差,yj是目标输出值,c为常数。
基于kkt(karush-kuhn-tucker)理论,训练问题等价于如下的二重优化问题:
式中,λj是对应于样本xj的拉格朗日算子。由此,得到式(6)的kkt优化条件:
式中,λ=[λ1,...,λi]t。把式(7)和(8)代入式(9)得到:
式中,y=[y1,...,yi]t。
考虑在线控制系统,与rls算法相对应,krls算法的目的是寻找满足代价函数(5)值最小的系数向量αi,且不需要随着每次新样本而重新计算,而是由αi-1递归式计算出αi的值。为避免在每次更新中进行矩阵求逆运算,定义核逆矩阵
表2krls算法更新流程
由表2可见,核逆矩阵qi的维数等于输入样本数量i。因此,krls算法一次更新的时间和空间复杂度均为o(i2),即其复杂度会随着训练样本量而不断增加。
由于krls算法计算复杂度会随着在线运算迭代次数而不断增加,而计算机物理处理能力有限,因此需要限制样本核函数维数增长,降低计算复杂度。应用特征值提取的降低核函数维度的方法,在迭代过程中可以去除核函数一些不相关的冗余数据信息,压缩样本核函数维数,更有利于在实时控制系统中实现改善控制精度并降低运算负担的效果。
技术实现要素:
本发明的目的在于针对上述现有技术中的问题,提供一种基于核递归最小二乘算法的自适应飞行器鲁棒控制方法,使得控制系统具有较好的控制精度以及较低的运算负担。
为了实现上述目的,本发明基于核递归最小二乘算法的自适应飞行器鲁棒控制方法包括:通过离线辨识器与在线控制器两部分组成反馈调节系统进行自适应调节;离线辨识器:在飞行器实际模型输入和输出数据的基础上,利用核递归最小二乘算法离线辨识一个与所测系统等价的模型;在线控制器:在精确辨识飞行器实际模型的基础上,根据系统输入和输出数据,利用改进核递归最小二乘算法在线调整控制器的输出量,实现自适应鲁棒控制;所述的改进核递归最小二乘算法基于特征值提取,分别根据主成分分析以及奇异值分解进行核矩阵的正交分解,从而实现样本核函数的压缩与降维,去除核函数中一些不相关的冗余数据信息。
离线辨识器的计算模型按照以下步骤搭建:
1.1)辨识模型定义;
基于并联辨识模型的飞行器系统描述为:
y(t)=f(u(t),u(t-t),...,u(t-pt),y(t-t),...,y(t-nt))(11)
式中,u(t)表示系统输入信号,y(t)表示系统输出信号,f(·)表示未知非线性函数,由过去n时刻的输出信号和p时刻的所有输入信号构成,t是采样时间;
选择{u(t),u(t-t),...,u(t-pt),y(t-t),...,y(t-nt)}和y(t)作为辨识器的输入xt和输出yt,式(11)表示为:
yt=f(xt)(12)
1.2)辨识器设计;
基于核递归最小二乘算法,根据:
辨识器的输出为:
式中,ht=[k(xt,x1),...,k(xt,xn)],{x1,...xn,y1,...,yn}表示训练样本,n表示样本个数,辨识目标是使辨识系统的输出与实际系统的输出误差
根据式
式中,k是mercer核矩阵,[k]i,j=k(xi,xj),i=1,...,n,j=1,...,n,y=[y1,...,yn]t。
所述在线控制器的设计目的是获得控制系统输入u,使得飞行器系统输出y(t)准确跟踪由参考模型rm产生的任何期望输出轨迹y*(t)。
在线控制器的计算模型按照以下步骤进行搭建:
2.1)控制模型定义;
参考模型由飞行器的飞行品质标准产生,参考模型输出y*(t)表示为过去l时刻的输入信号和过去m时刻输出信号的函数:
y*(t)=p[y*(t-t),...,y*(t-mt),r(t),r(t-t),...,r(t-lt)](15)
式中,p[·]是光滑的连续函数,控制器系统描述为:
u(t)=g[y*(t),y(t-t),...,y(t-nt),u(t-t),...,u(t-pt)](16)
式中,映射函数g[·]存在且唯一,控制器的目标是逼近未知的映射函数g[·];
将式(15)代入式(16)得到:
u(t)=g[p[y*(t-t),...,y*(t-mt),r(t),r(t-t),...,r(t-lt)],y(t-t),...,y(t
-nt),u(t-t),...,u(t-pt)](17)
在上述公式中用y来代替y*:
u(t)=r[y(t-t),...,y(t-mt),r(t),r(t-t),...,r(t-lt)](18)
式中,r[·]是光滑的连续函数;选择[y(t-t),...,y(t-mt),r(t),r(t-t),...,r(t-lt)]和u(t)作为控制器在t时刻的输入xt和输出ut:
ut=r(xt)(19);
2.2)控制器设计;
映射函数r[·]是未知的,采用改进核递归最小二乘算法逼近未知的r[·],构造控制器计算控制量u(t);控制器的输入是当前和过去的参考信号以及过去的飞行器系统输出;
控制器的输出等于:
式中,
在改进核递归最小二乘算法控制器中,假设辨识误差忽略不计,由:
得到:
式中,
飞行器控制系统输出为是类pid控制器和改进核递归最小二乘算法控制器输出量总和:
改进核递归最小二乘算法设计:
2.3.1)对一个给定的矩阵a∈rm×m,计算矩阵a的karhunen-loève变换矩阵
a)矩阵a进行归一化处理,得到矩阵b,使得:
b)计算矩阵b的协方差矩阵:
c=cov(b)(25)
c)计算矩阵c的特征向量v和特征值m:
v-1cv=m(26)
式中,m是特征值的对角矩阵;
4)对特征值m进行降序排序,同时相应对特征向量进行排序,得到排序后的特征矩阵
5)根据特征值,选择前n’个主成分,n’≤n,得到:
2.3.2)对于矩阵a∈rm×n,存在一个正交矩阵u=[u1,...,um]∈rm×m和一个正交矩阵v=[v1,...,vn]∈rn×n,使utav=diag(σ1,...,σp}∈rm×n,p=min{m,n},
σ1≥σ2≥…≥σp≥0,σi是矩阵a的特征值,向量ui和vi分别是第i个左奇异向量和右奇异向量;根据golub-reinsch算法,运算复杂度为o(m2n+mn2+n3);
假设m>n,对于u(:,1:n)=[u1,...,un],运算复杂度变为o(mn2+n3);
如果r<rank(a),令:
那么:
a*=u(:,1:r)sv(:,1:r)t,其中s=diag(σ1,...,σr),u(:,1:r)=[u1,...,ur],v(:,1:r)=[v1,...,vr];定义x=[x1,...,xn]是一个所有元素相互独立的向量,那么ax≈bz,此时,b=u(:,1:r)s,z=v(:,1:r)tx是一个r×1的向量,利用bz实现对ax的逼近。
计算出特征向量v和特征值m,选择超过最高特征值10%的特征值作为保留成分,l为保留成分的数量,保留下来的特征向量表示为
t个核函数被替换为新的l个核函数,降维后的核函数变成:
h′(xt)=h(xt)v1(32)
选择线性核函数:
h’(xt)表示为[k(xt,x1′),...,k(xt,xl′)],其中xi′={[x1,...,xt]v1}(:,i);
qt′=us(34)
同时,目标输出量yt变为:
yt′=v2(:,1:l)tyt(35)
最终逼近结果为:
f=k′(xt)qt′yt′(36)。
在线控制器测量核函数相似度时给定两个核函数:hold=[k(xt-1,x1),...,k(xt-1,xn)]表示上一时刻的信息,hnew=[k(xt,x1),...,k(xt,xn)]代表当前时刻的信息,比对值定义为:
式中,<hold,hnew>f表示hold和hnew的frobenius范数,ka(hold,hnew)用来测量hold和hnew两个核函数相似度;ka(hold,hnew)越大,相似度越高,反之亦然。
由于在mrac控制系统设计中,高品质的模型辨识和精确地在线控制是获得良好控制性能的关键。与现有技术相比,本发明所采纳的核递归最小二乘算法,建立的辨识模型能够精确地匹配飞行器非线性模型,实现辨识模型和被控对象的最小结构差别。本发明在此基础上,采用基于特征提取降低核函数维度的改进核递归最小二乘算法,解决了样本核函数维数随迭代次数增长的固有缺陷,压缩样本核函数维数并自适应在线调整控制器输出量,在实时控制系统中实现了改善控制精度以及降低运算负担的效果。本发明设计模型参考自适应的飞行器鲁棒控制系统时,考虑该算法运算复杂度实时增长的缺陷,利用特征值提取进行核函数降维,从而达到降低运算负担以改善控制效果。本发明构建了一个模型参考自适应空值鲁棒控制系统,并对其进行仿真验证,结果表明该控制系统具有较好的控制效果和很强的实时性。
附图说明
图1递归最小二乘算法rls结构框图;
图2本发明模型参考自适应鲁棒控制系统结构框图;
图3核递归最小二乘算法辨识器结构框图;
图4本发明改进核递归最小二乘算法控制器结构框图;
图5飞行器期望相应图;
图6控制系统跟踪效果图。
具体实施方式
下面结合附图对本发明做进一步的详细说明。
基于核递归最小二乘算法的模型参考自适应飞行器鲁棒控制系统按以下方法搭建:
1.krls离线辨识器;
1.1辨识模型定义;
并联辨识模型是一种经典的建立非线性动态系统模型的方法,即外输入非线性自回归滑动平均模型(nonlinearauto-regressivemovingaveragewithexogenousinputsmodel,narmax)。该模型对于辨识过程中所用的全部输入序列,系统都是有界输入有界输出(bibo)稳定的。飞行器系统的可以描述为:
y(t)=f(u(t),u(t-t),...,u(t-pt),y(t-t),…,y(t-nt))(11)
式中,u(t)表示系统输入信号,y(t)表示系统输出信号,f(·)表示未知非线性函数,它由过去n时刻的输出信号和p时刻的所有输入信号构成,t是采样时间。如图4所示,选择{u(t),u(t-t),...,u(t-pt),y(t-t),...,y(t-nt)}和y(t)作为辨识器的输入xt和输出yt,
式(11)可以表示为:
yt=f(xt)(12)
1.2辨识器设计;
设计辨识器的目的就是逼近未知非线性函数f(·)。
基于krls算法,根据式(5),辨识器输出为:
式中,ht=[k(xt,x1),...,k(xt,xn)],{x1,...xn,y1,...,yn}表示训练样本,n表示样本个数。辨识目标就是使辨识系统的输出与实际系统的输出误差
根据式(10),权值αt取:
式中,k是mercer核矩阵,[k]i,j=k(xi,xj),i=1,...,n,j=1,...,n,y=[y1,...,yn]t。
2.m-krls在线控制器;
2.1控制模型定义;
控制器设计的目的是获得控制系统输入u,使得飞行器系统输出y(t)可以准确跟踪由参考模型rm产生的任何期望输出轨迹y*(t)。参考模型由飞行器飞行品质标准产生。
因为参考模型本身是一个动态系统,参考模型输出y*(t)可以表示为过去l时刻的输入信号和过去m时刻输出信号的函数:
y*(t)=p[y*(t-t],...,y*(t-mt),r(t),r(t-t),...,r(t-lt)](15)
式中,p[·]是光滑的连续函数。控制器系统可以描述为:
u(t)=g[y*(t),y(t-t),...,y(t-nt),u(t-t),...,u(t-pt)](16)
式中,映射函数g[·]存在且唯一。因此,控制器的目标是逼近未知的映射函数g[·]。
将式(15)代入式(16)得到,
u(t)=g[p[y*(t-t),...,y*(t-mt),r(t),r(t-t),...,r(t-lt)],y(t
-t),...,y(t-nt),u(t-t),...,u(t
-pt)](17)
显然,控制输入u是关于飞行器控制响应y和参考信号y*,y的函数。如果飞行器可以精确跟踪任意轨迹,那么y*=y。因此,我们可以在上述公式中用y来代替y*,
u(t)=r[y(t-t),...,y(t-mt),r(t),r(t-t),...,r(t-lt)](18)
式中,r[·]是光滑的连续函数。
如图5所示,选择[y(t-t),...,y(t-mt),r(t),r(t-t),...,r(t-lt)]和u(t)作为控制器在t时刻的输入xt和输出ut:
ut=r(xt)(19)
2.2控制器设计:
映射函数r[·]是未知的,采用m-krls逼近未知的r[·],构造控制器计算控制量u(t)。控制器的输入是当前和过去的参考信号以及过去的飞行器系统输出。控制器的输出等于:
式中,
控制器设计的难点在于期望的控制量ut是未知的,不能直接获得逼近误差δut,对应于表2中的et。在m-krls控制器中,假设辨识误差忽略不计,跟踪误差δu由辨识器计算得到。
可知,
可以轻易得到,
式中,
线性的类pid控制器在一定的确定的工作范围内,用来控制系统的线性动态。那么,飞行器控制系统输出可以看成是类pid控制器和m-krls控制器输出量的总和:
2.3m-krls算法;
2.3.1pca方法;
pca是一种在无监督降维中常用的非线性特征提取方法。pca通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。对一个给定的矩阵a∈rm×m,pca的目标是计算矩阵a的karhunen-loève变换矩阵
1)矩阵a进行归一化处理,得到矩阵b,使得:
2)计算矩阵b的协方差矩阵:
c=cov(b)(25)
3)计算矩阵c的特征向量v和特征值m:
v-1cv=m(26)
式中,m是特征值的对角矩阵。
4)对特征值m进行降序排序,同时相应对特征向量进行排序,得到排序后的特征矩阵
5)根据特征值,选择前n’个主成分,n’≤n。因此可以得到:
2.3.2svd方法;
矩阵a∈rm×n,存在一个正交矩阵u=[u1,...,um]∈rm×m和一个正交矩阵v=[v1,...,vn]∈rn×n,使得utav=diag(σ1,...,σp)∈rm×n,p=min{m,n},σ1≥σ2≥…≥σp≥0。σi是矩阵a的特征值,向量ui和vi分别是第i个做左奇异向量和右奇异向量。寻找矩阵u和v的过程即就是奇异值分解(svd)。
根据golub-reinsch算法,运算复杂度为o(m2n+mn2+n3)。假设m>n,对于u(:,1:n)=[u1,...,un],运算复杂度变为o(mn2+n3)。
如果r<rank(a),令:
那么,
换句话说,a*是矩阵a的最佳2范数逼近。a*=u(:,1:r)sv(:,1:r)t,其中s=diag(σ1,...,σr),u(:,1:r)=[u1,...,ur],v(:,1:r)=[v1,...,vr]。定义x=[x1,...,xn]是一个所有元素相互独立的向量,那么ax≈bz,此时,b=u(:,1:r)s,z=v(:,1:r)tx是一个r×1的向量。可见,矩阵b的维度远低于原矩阵a,利用bz可以实现对ax的逼近。
2.3.3核函数相似度准则;
测量核函数相似度是判断数据冗余的关键技术。常用的基于信息和基于距离的方法容易丢失核函数的位置信息。本发明提出核比对方法(kernelalignmentmethod,ka)。给定两个核函数,hold=[k(xt-1,x1),...,k(xt-1,xn)]表示上一时刻的信息,hnew=[k(xt,x1),...,k(xt,xn)]代表当前时刻的信息,比对值定义为:
式中,<hold,hnew>f表示hold和hnew的frobenius范数。ka(hold,hnew)用来测量hold和hnew两个核函数相似度。ka(hold,hnew)越大,相似度越高,反之亦然。ka(hold,hnew)表明了hnew的鉴别能力,同时评估了核函数的冗余度。
2.3.4m-krls算法流程;krls随着迭代步长的增长带来了巨大的计算负担,最终呈现出了一个“肥胖”的核最小二乘算法。同时,核矩阵kt以及它的变型qt包含了越来越多不相关的信息反而减弱核最小二乘算法的泛化能力。以往的算法中,核函数维度越高,逼近精度越高,显然越多的输入数据流产生的核将带来更好的逼近效果。但是,由于计算机物理存储的限制,难以靠过多的核来获取最佳的控制性能。在本发明中,我们引入了一种无监督的特征值提取降维方法,删除数据冗余信息并降低运算复杂度。当“肥胖”的核最小二乘算法经过pca处理成为“苗条”的核最小二乘算法,降维后的qt可以进行下一步迭代而不损失原有核矩阵信息。同时,krls方法可以自主进行核函数的删减与更新。
pca处理针对qt∈rt×t代表了核函数ht和输出f之间的联系的成分权重。我们可以利用这些权重里的线性相关性和存在的偏差来减少核函数的数量。指定一个值l,使qt的维度从t减小到l。在进行pca降维处理过程中,根据2.3.1,可以计算出特征向量v和特征值m。选择超过最高特征值10%的特征值作为我们即将保留的成分,l即为保留成分的数量。保留下来的特征向量表示为
于是,原来的t个核函数被替换为新的l个核函数,降维后的核函数变成:
h′(xt)=h(xt)v1(32)
在我们的工作中,选择线性核函数:
“核技巧”在线性条件下只需要直接计算不同样本数据的内积。因此,h′(xt)可以表示为[k(xt,x1′),...,k(xt,xl′)],其中xi′={[x1,...,xt]v1}(:,i)。
svd处理针对
qt′=us(34)
同时,目标输出量yt变为:
yt′=v2(:,1:l)tyt(35)
最终的逼近结果为:
f=k′(xt)qt′yt′(36);
表3m-krls算法更新流程
仿真例
考虑一个高性能战斗机的纵轴控制问题。当战斗机以150ft/s和攻角15deg在2000ft高空飞行,飞行器的局部非线性摄动方程可以描述为:
式中,
仿真根据一级飞行品质要求,俯仰角速度指令相应的传递函数为