CN105759609B - 一种基于显式非线性模型预测控制的舰载机自主着舰方法 - Google Patents

一种基于显式非线性模型预测控制的舰载机自主着舰方法 Download PDF

Info

Publication number
CN105759609B
CN105759609B CN201610110119.3A CN201610110119A CN105759609B CN 105759609 B CN105759609 B CN 105759609B CN 201610110119 A CN201610110119 A CN 201610110119A CN 105759609 B CN105759609 B CN 105759609B
Authority
CN
China
Prior art keywords
mrow
msub
mtd
msup
mfrac
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610110119.3A
Other languages
English (en)
Other versions
CN105759609A (zh
Inventor
段海滨
杨之元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201610110119.3A priority Critical patent/CN105759609B/zh
Publication of CN105759609A publication Critical patent/CN105759609A/zh
Application granted granted Critical
Publication of CN105759609B publication Critical patent/CN105759609B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/08Control of attitude, i.e. control of roll, pitch, or yaw
    • G05D1/0808Control of attitude, i.e. control of roll, pitch, or yaw specially adapted for aircraft
    • G05D1/0816Control of attitude, i.e. control of roll, pitch, or yaw specially adapted for aircraft to ensure stability
    • G05D1/0825Control of attitude, i.e. control of roll, pitch, or yaw specially adapted for aircraft to ensure stability using mathematical models

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Remote Sensing (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Other Investigation Or Analysis Of Materials By Electrical Means (AREA)
  • Feedback Control In General (AREA)

Abstract

一种基于显式非线性模型预测控制的舰载机自主着舰方法,包括如下几个步骤:步骤一:由飞机所处的飞行情况简化纵向运动非线性方程;步骤二:确定控制量和被控量;步骤三:确定每个输出量的相对阶数;步骤四:K是由Ki组成的对角阵,由矩阵的第一行求得Ki的值。步骤五:对指令信号yDi进行泰勒展开,得到指令信号的各阶导函数;步骤六:进行积分即可得到控制量。步骤七:得到了一种基于显式非线性模型预测控制的舰载机自主着舰纵向控制律。本发明可实现舰载机自主对于指令信号的快速跟踪,并且避免在线优化过程,节约了大量时间,节省了硬件资源。显式非线性模型预测控制也可以广泛应用于机器人、航空、航天、工业生产等涉及非线性控制的领域。

Description

一种基于显式非线性模型预测控制的舰载机自主着舰方法
【技术领域】
本发明是一种基于显式非线性模型预测控制的舰载机自主着舰方法,属于航空航天控制领域。
【背景技术】
舰载机着舰引导技术是舰载机在较差的海况、甲板运动、大气紊流、舰尾流、夜间或者低能见度下能安全、精准着陆的保障,是航母舰面***关键技术之一。由于驾驶员对于飞机的熟练度、飞行时间不同引起的差异,着舰时天气、云层、海况、能见度的不同,人工着舰会受到很多因素的影响,为了解决这些问题,产生了自动着舰***(Automatic CarrierLanding System,ACLS),一种基于显式非线性模型预测控制的舰载机自主着舰方法能较好的解决着舰时ACLS中指令输入问题,能在干扰下实现较高的着舰精度和在着舰过程中满足较高的指标要求。
模型预测控制可以实现对被控对象的精确控制,但有些模型预测控制依赖在线的优化过程,比较耗时。对于有些线性模型预测控制问题来说,可以求取其最优控制的显式解,但对于非线性问题,求取显式解比较困难。显示非线性模型预测控制(ExplicitNonlinear Model Predictive Control,ENMPC)应用泰勒展开原理,可以求取非线性模型预测控制的显式解,避免在线优化过程。本发明将ENMPC应用在舰载机自主着舰的控制问题中,在控制过程中,求出指令信号的导函数信息,即可实现舰载机自主对姿态和速度指令的快速准确跟踪。
ENMPC方法应用在舰载机自主着舰过程的控制中。推导ENMPC控制律时需要大量的计算,而舰载机六自由度运动方程比较复杂,给控制律的推导带来很***烦。由于舰载机着舰时的主要运动为纵向的运动,横侧向运动幅度相对较小,因此相对纵向状态量而言,横侧向状态量的变化不太大。针对这一特点,本发明将舰载机纵向控制器和横侧向控制器分开来设计,在设计纵向控制器时,将横侧向状态量近似为零,在设计横侧向控制器时,将纵向状态量当做已知量,这样就简化了控制器的设计,降低了设计难度。由于横侧向运动滚转和偏航是耦合的,运动方程比纵向运动方程复杂得多,为了叙述简单,本发明只叙述纵向控制律的设计过程,显示非线性模型预测控制方法可以通过同样的方法应用于舰载机的横侧向控制律设计。
显式非线性模型预测控制方法对***定义了相对阶数和控制阶数。
考虑下面的一般非线性***,***输入为N维,***输出为P维。
其中,u为***输入,x为***状态变量,y为***输出
在一个非线性***中,假设输入和输出量的各阶导数都存在,对于每个***输出都可以定义一个相对阶数ρ,和一个控制阶数r。其中相对阶数是指,对一个非线性***的某一输出量求ρ阶导数之后,控制量就会首次出现在该输出的ρ阶导数之中,那么ρ就成为该输出量的相对阶数。当控制量出现之后,如果继续对其求r阶导数,在得到的结果中就会出现控制量r阶导数,这时定义r为该输出量的控制阶数。选择控制阶数时,还需要与相对阶数结合起来考虑,对于某一特定的相对阶数,其对应的控制阶数必须大于一定的值才能使得控制***是稳定的,这一点在理论上可以被证明,国外学者给出了保证***稳定的相对阶数与控制阶数的对应表格,如表1所示。
表1相对阶数、控制阶数与稳定性的关系
针对公式(1)中的非线性***,设yi为***的第i个输出,ui为***的第i个输入,ρi是第i个输出的相对阶数,yi的各阶导数如下式所示:
其中,j为自然数,x为***状态变量,u1~N为***第1~N个输入量,为***第1~N个输入量的一阶导数,0≤j<ρi时,只是***状态的函数;j=ρi时,是***状态和输入的函数;j>ρi时,是***状态、输入以及输入的1~(j-ρi-1)阶导数的函数;βi1~βiN都是***状态的函数。
假设***输出有足够阶的导数,那么就可以通过泰勒展开对输出量进行近似。所有的输出量的控制阶数都设置为r,输出量yi利用(ρi+r)阶泰勒展开近似,输入量ui利用r阶泰勒展开近似:
其中,τ为任意自然数,但满足(3)式近似相等关系,为τ的(ρi+r)次方,(ρi+r)!为(ρi+r)的阶乘。
对公式(3)中ui(t+τ)等式两边先对τ求导再积分可以得到:
从上式可以看出,τ时间段内的连续输入量ui(t+τ)可以用当前输入量的1到r阶导数表示,这就把模型预测控制中的连续优化问题转化为了离散的优化问题。由于在模型需要控制中,需要求解的只是当前τ=0时刻的控制量,因此τ=0时公式(4)可以简化为:
由此可以看出,在优化问题中只要求解出ui的一阶导数即可,控制量ui可以通过其导数的积分得到。
为书写方便起见,将yi(t+τ)改写成下面的形式:
yi(t+τ)≈TiYi (6)
其中Ti为行向量,Yi为列向量,Ti和Yi如下所示:
针对多输出的情况,可以将Yi写在一个列向量里,公式(6)和公式(7)就可以被扩充成:
为了计算误差函数,需要把指令信号yD(t+τ)写成跟输出信号y(t+τ)一致的形式:
将非线性***输入、输出以及指令信号用泰勒展开近似后,可以定义指令跟踪误差e(t+τ)如下式所示:
在模型预测控制中,代价函数J定义为T1~T2时间区间上跟踪误差e(t+τ)平方的积分,其中Q是权重矩阵,选择不同的权值可以使得某个输出量在代价函数中占有的比重发生变化。
在代价函数J的积分计算中,都是与τ无关的变量,因此可以提到积分号外面,进而代价函数中的积分项只由权重矩阵、控制阶数、相对阶数以及积分时间区间(T1,T2)决定,而与***的状态无关。令(ρi+r)=Si如下式所示:
前面已经阐述过,将输入量ui(t+τ)用r阶泰勒展开近似后,ui(t+τ)就可以用当前τ=0时刻输入量的1至r阶导数来描述,因此优化问题需要优化的输入量U可以写成如下形式:
模型预测控制中,需要解决的优化问题可以表述为:选取一个向量使得在T1~T2时间区间上的代价函数J达到最小值。最优解需要满足的条件为:代价函数J对的偏导数为零。
通过推导证明可以得到多输入多输出非线性***ENMPC控制量的显示解的形式为:
其中,K是由Ki组成的对角阵,Ki矩阵的第一行,YU是***实际的输出,为指令信号yDi的(ρi+1)阶导数。
其中,
【发明内容】
1、发明目的:
本发明提出了一种基于显式非线性模型预测控制的舰载机自主着舰方法,其目的是提供一种在舰载机着舰时具有较高可靠性的纵向控制方法,也可以应用于横侧向的控制。
该方法采用基于显式非线性模型预测控制的方法。显式非线性模型预测控制应用泰勒展开原理,可以通过求取非线性模型预测控制的显式解,来解决非线性问题,并且避免在线优化过程,节约了大量时间,节省了硬件资源。
2、技术方案:
基于显式非线性模型预测控制的舰载机着舰纵向控制律设计如下:
步骤一:由飞机所处的飞行情况简化纵向运动非线性方程。
由于着舰过程中航迹角μ较小,所以其正弦值可以用弧度值近似;着舰过程中迎角α也比较小,因此这里将推力的方向近似为与速度轴平行;由于升降舵产生的升力很小,因此在升力中忽略升降舵的作用。纵向控制律设计中考虑的***方程如下:
其中,m为飞机质量,g为重力加速度,T为飞机发动机推力,为飞机所在高度的一阶微分,V为飞机速度,为飞机速度的一阶微分,α为飞机攻角,为飞机攻角的一阶导数,q为飞机俯仰角的角速度,为飞机俯仰角的角加速度,δe为飞机的升降舵偏角,为动压,S为飞机机翼的参考面积,c为飞机机翼的平均几何弦长,为飞机航迹倾斜角的一阶导数,CD0和C为飞机阻力系数,CL0和C为飞机升力系数,Cm0,C,Cmq为飞机的俯仰力矩系数,Iy为飞机以y轴为转轴的转动惯量,μ为舰载机航迹倾斜角。
步骤二:确定控制量和被控量。
纵向控制中的控制量为油门和升降舵,被控量为舰载机速度和高度,横侧向控制中控制量是副翼和方向舵,被控量是滚转角和偏航角。
步骤三:确定每个输出量的相对阶数,并由表1中的数据确定所需的控制阶数,求取被控量yi的(ρi+1)阶对t的导数(也可求ρi阶导数,最后通过式(17)直接求得输入量),并使用纵向运动方程(18)进行变量替换,使yi只由输入量及其导数和确定的参数表示。
步骤四:K是由Ki组成的对角阵,由矩阵的第一行求得Ki的值。
对于每一个输出量,由相对阶数,控制阶数及预测时间T1,T2可以求得:
(若在步骤三中对被控量yi求ρi阶导数,则 会发生变化,需根据之前对Πi的分块求得)因此可以求得Ki
步骤五:对指令信号yDi进行泰勒展开,得到指令信号的各阶导函数。
当***存在多输出的情况时,公式(10)中的为:
其中i=1,2,...,p。
步骤六:将技术方案中步骤三、四、五所计算得到的被控量yi的表达式,K的值和指令信号的各阶导函数带入公式(17),即可解出控制量的一阶导数,进行积分即可得到控制量(若在步骤三中对被控量yi求ρi阶导数,则直接可得到控制量)。
步骤七:至此,得到了一种基于显式非线性模型预测控制的舰载机自主着舰纵向控制律,将该控制律加入飞机的非线性模型进行仿真验证,通过给出着舰时舰载机的下滑高度指令信号,观察在着舰过程中舰载机对于高度指令信号的跟踪情况,进而验证该控制律的效果及稳定性。
3、优点及效果:
本发明提出了一种基于显式非线性模型预测控制的舰载机自主着舰方法,其中显式非线性模型预测控制应用泰勒展开原理,在控制过程中,求出指令信号的导函数信息,可以通过求取非线性模型预测控制的显式解,来解决非线性问题,即可实现舰载机自主对于指令信号的快速跟踪,并且避免在线优化过程,节约了大量时间,节省了硬件资源。显式非线性模型预测控制也可以广泛应用于机器人、航空、航天、工业生产等涉及非线性控制的领域。
【附图说明】
图1为纵向ENMPC算法控制框图。
图2a和图2b为考虑发动机模型时的速度响应曲线和油门推力。
图3a和图3b为斜坡信号下高度响应和升降舵舵偏。
图4为基于显式非线性模型预测控制的舰载机自主着舰方法流程图。
图中序号、符号及代号说明如下:
h——舰载机高度;V——舰载机速度;μ——舰载机航迹倾斜角;
α——舰载机攻角;q——舰载机俯仰角速度;δe——舰载机升降舵偏角;
T——舰载机发动机推力;
【具体实施方式】
下面通过一种舰载机F/A-18A为例,利用显式非线性模型预测控制和F/A-18A线性方程来设计其纵向着舰控制律。之后搭建simulink模型,利用F/A-18A模型进行仿真,MATLAB R2014a版本。
基于显式非线性模型预测控制的舰载机自主着舰纵向控制律设计如下:
由于油门对速度的控制较为简单,在此不做叙述,只叙述用升降舵对于高度的控制,在设计对高度的控制过程中假设速度由油门控制且已经为恒定,在接下来推导利用升降舵δe控制高度h的控制算法时,假设V为常值,即
步骤一:由飞机所处的飞行情况简化纵向运动非线性方程。
如前所述,利用着舰时特点将方程简化为(18)。
步骤二:确定控制量和被控量。
由于油门响应延迟较大,因此使用油门控制速度,使用升降舵控制高度。设第一个控制量为y1=V,由推力T控制,***的第二个输出y2=h,由δe控制。
步骤三:对于***的第二个输出y2=h,控制量δe出现在y2的四阶导数中,因此定义输出量y2的相对阶数ρ2=4,并由表1中的数据确定所需的控制阶数为r2=7,根据公式(18)中的***状态方程可以得到下式:
其中,控制量δe存在于中,控制量的导数存在于中。
航迹角μ的高阶导数可以按照下面的公式计算。
步骤四:由矩阵的第一行求得Ki的值。
确定相对阶数,控制阶数及预测时间T1,T2可以由公式(19)(20)可以求得Ki,i=1,2,3,4,5,参数及Ki如下表所示:
步骤五:对指令信号yDi进行泰勒展开,得到指令信号的各阶导函数。
着舰过程中的高度指令yD2是一条随时间匀速下降的直线,其一阶导函数为常值,其二阶及以上导函数均为零。
步骤六:将步骤三、四、五所计算得到的公式或参数带入公式(17),可得:
求解公式(24)中的方程可以求得升降舵的导数如下式所示:
对(25)的结果加入积分环节,即可得到δe
对推力T的设计过程和上述步骤相同,而且更加简单。
步骤七:将得到的控制律加入未化简的模型进行仿真验证。
Simulink模型框图如图1所示。
由于设计控制算法时使用了简化方法,因此之前存在建模误差,希望证明在存在简化计算的情况下,ENMPC控制方法依然能够满足控制需求。首先对速度控制进行验证,在加入发动机模型的情况下进行仿真。由于设计控制律时没有考虑发动机动态模型,而且发动机存在较大的延迟,因此加入该模型会对速度响应造成一定的影响,但从图2a和图2b的仿真结果中可以看出,加入发动机模型的速度响应依然可以满足控制需求。
对于无人机高度控制进行仿真时,由于在推导高度控制的控制律时,假设速度为常值,因此在应用ENMPC控制器对无人机高度进行控制时,需要应用上面介绍的速度控制器将速度保持为常值。在本仿真中,无人机空速被设定为69.96m/s,为了验证高度控制算法的有效性,本仿真对控制器输入高度斜坡信号,控制器采用了之前表中的控制阶数、预测时间以及控制增益,仿真结果如图3a和图3b所示。
由图3a和图3b可知,利用ENMPC方法设计的无人机着舰高度控制器对阶跃指令和斜坡指令都有很好的控制效果,而且升降舵偏转的幅值和速率也在就可以接受的范围内。上述仿真中考虑的升降舵的动态特性、饱和以及速率限制,同时也考虑了发动机模型的动态特性和饱和限制,仿真结果满足设计要求。

Claims (2)

1.一种基于显式非线性模型预测控制的舰载机自主着舰方法,其中,显式非线性模型预测控制方法对非线性***定义了相对阶数和控制阶数;
非线性***输入为N维,非线性***输出为P维;
<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mover> <mi>x</mi> <mo>&amp;CenterDot;</mo> </mover> <mo>=</mo> <mi>f</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>u</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>y</mi> <mo>=</mo> <mi>h</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>
其中,u为非线性***输入,x为非线性***状态变量,y为非线性***输出;
在一个非线性***中,假设输入和输出量的各阶导数都存在,对于每个非线性***输出都定义一个相对阶数ρ,和一个控制阶数r;其中相对阶数是指,对一个非线性***的某一输出量求ρ阶导数之后,控制量就会首次出现在该输出的ρ阶导数之中,那么ρ就成为该输出量的相对阶数;当控制量出现之后,如果继续对其求r阶导数,在得到的结果中就会出现控制量r阶导数,定义r为该输出量的控制阶数;选择控制阶数时,还需要与相对阶数结合起来考虑,对于某一特定的相对阶数,其对应的控制阶数必须大于一定的值才能使得控制非线性***是稳定的;保证非线性***稳定的相对阶数与控制阶数的对应表格,如表1所示;表1为相对阶数、控制阶数与稳定性的关系;
针对公式(1)中的非线性***,设yi为非线性***的第i个输出,ui为非线性***的第i个输入,ρi是第i个输出的相对阶数,yi的各阶导数如下式所示:
<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mfrac> <mrow> <msup> <mi>d</mi> <mi>j</mi> </msup> <msub> <mi>y</mi> <mi>i</mi> </msub> </mrow> <mrow> <msup> <mi>dt</mi> <mi>j</mi> </msup> </mrow> </mfrac> <mo>=</mo> <msubsup> <mi>&amp;alpha;</mi> <mi>j</mi> <mi>i</mi> </msubsup> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>,</mo> <mn>0</mn> <mo>&amp;le;</mo> <mi>j</mi> <mo>&lt;</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mfrac> <mrow> <msup> <mi>d</mi> <mi>j</mi> </msup> <msub> <mi>y</mi> <mi>i</mi> </msub> </mrow> <mrow> <msup> <mi>dt</mi> <mi>j</mi> </msup> </mrow> </mfrac> <mo>=</mo> <msubsup> <mi>&amp;alpha;</mi> <mi>j</mi> <mi>i</mi> </msubsup> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <msub> <mi>u</mi> <mrow> <mn>1</mn> <mo>~</mo> <mi>N</mi> </mrow> </msub> <mo>)</mo> </mrow> <mo>,</mo> <mi>j</mi> <mo>=</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mfrac> <mrow> <msup> <mi>d</mi> <mrow> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>1</mn> </mrow> </msup> <msub> <mi>y</mi> <mi>i</mi> </msub> </mrow> <mrow> <msup> <mi>dt</mi> <mrow> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>1</mn> </mrow> </msup> </mrow> </mfrac> <mo>=</mo> <msubsup> <mi>&amp;alpha;</mi> <mi>j</mi> <mi>i</mi> </msubsup> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <msub> <mi>u</mi> <mrow> <mn>1</mn> <mo>~</mo> <mi>N</mi> </mrow> </msub> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>&amp;beta;</mi> <mrow> <mi>i</mi> <mn>1</mn> </mrow> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <msub> <mover> <mi>u</mi> <mo>&amp;CenterDot;</mo> </mover> <mn>1</mn> </msub> <mo>+</mo> <mn>...</mn> <mo>+</mo> <msub> <mi>&amp;beta;</mi> <mrow> <mi>i</mi> <mi>N</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <msub> <mover> <mi>u</mi> <mo>&amp;CenterDot;</mo> </mover> <mi>N</mi> </msub> <mo>,</mo> <mi>j</mi> <mo>=</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>1</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mfrac> <mrow> <msup> <mi>d</mi> <mrow> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>1</mn> </mrow> </msup> <msub> <mi>y</mi> <mi>i</mi> </msub> </mrow> <mrow> <msup> <mi>dt</mi> <mrow> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>1</mn> </mrow> </msup> </mrow> </mfrac> <mo>=</mo> <msubsup> <mi>&amp;alpha;</mi> <mi>j</mi> <mi>i</mi> </msubsup> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <msub> <mi>u</mi> <mrow> <mn>1</mn> <mo>~</mo> <mi>N</mi> </mrow> </msub> <mo>,</mo> <mfrac> <mrow> <msub> <mi>du</mi> <mrow> <mn>1</mn> <mo>~</mo> <mi>N</mi> </mrow> </msub> </mrow> <mrow> <mi>d</mi> <mi>t</mi> </mrow> </mfrac> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mfrac> <mrow> <msup> <mi>d</mi> <mrow> <mi>j</mi> <mo>-</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>-</mo> <mn>1</mn> </mrow> </msup> <msub> <mi>u</mi> <mrow> <mn>1</mn> <mo>~</mo> <mi>N</mi> </mrow> </msub> </mrow> <mrow> <msup> <mi>dt</mi> <mrow> <mi>j</mi> <mo>-</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>-</mo> <mn>1</mn> </mrow> </msup> </mrow> </mfrac> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>&amp;beta;</mi> <mrow> <mi>i</mi> <mn>1</mn> </mrow> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mfrac> <mrow> <msup> <mi>d</mi> <mrow> <mi>j</mi> <mo>-</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> </mrow> </msup> <msub> <mi>u</mi> <mn>1</mn> </msub> </mrow> <mrow> <msup> <mi>dt</mi> <mrow> <mi>j</mi> <mo>-</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> </mrow> </msup> </mrow> </mfrac> <mo>+</mo> <mn>...</mn> <mo>+</mo> <msub> <mi>&amp;beta;</mi> <mrow> <mi>i</mi> <mi>N</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mfrac> <mrow> <msup> <mi>d</mi> <mrow> <mi>j</mi> <mo>-</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> </mrow> </msup> <msub> <mi>u</mi> <mi>N</mi> </msub> </mrow> <mrow> <msup> <mi>dt</mi> <mrow> <mi>j</mi> <mo>-</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> </mrow> </msup> </mrow> </mfrac> <mo>,</mo> <mi>j</mi> <mo>&gt;</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>1</mn> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>
其中,j为自然数,x为非线性***状态变量,u1~N为非线性***第1~N个输入量,为非线性***第1~N个输入量的一阶导数,0≤j<ρi时,只是非线性***状态的函数;j=ρi时,是非线性***状态和输入的函数;j>ρi时,是非线性***状态、输入以及输入的1~(j-ρi-1)阶导数的函数;βi1~βiN都是非线性***状态的函数;
假设非线性***输出有足够阶的导数,那么就通过泰勒展开对输出量进行近似;所有的输出量的控制阶数都设置为r,输出量yi利用(ρi+r)阶泰勒展开近似,输入量ui利用r阶泰勒展开近似:
<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>y</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>+</mo> <mi>&amp;tau;</mi> <mo>)</mo> </mrow> <mo>&amp;ap;</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <mi>&amp;tau;</mi> <mfrac> <mrow> <msub> <mi>dy</mi> <mi>i</mi> </msub> </mrow> <mrow> <mi>d</mi> <mi>t</mi> </mrow> </mfrac> <mo>+</mo> <mn>...</mn> <mo>+</mo> <mfrac> <msup> <mi>&amp;tau;</mi> <mrow> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mi>r</mi> </mrow> </msup> <mrow> <mo>(</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mi>r</mi> <mo>)</mo> <mo>!</mo> </mrow> </mfrac> <mfrac> <mrow> <msup> <mi>d</mi> <mrow> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mi>r</mi> </mrow> </msup> <msub> <mi>y</mi> <mi>i</mi> </msub> </mrow> <mrow> <msup> <mi>dt</mi> <mrow> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mi>r</mi> </mrow> </msup> </mrow> </mfrac> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>u</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>+</mo> <mi>&amp;tau;</mi> <mo>)</mo> </mrow> <mo>&amp;ap;</mo> <msub> <mi>u</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <mi>&amp;tau;</mi> <mfrac> <mrow> <msub> <mi>du</mi> <mi>i</mi> </msub> </mrow> <mrow> <mi>d</mi> <mi>t</mi> </mrow> </mfrac> <mo>+</mo> <mn>...</mn> <mo>+</mo> <mfrac> <msup> <mi>&amp;tau;</mi> <mi>r</mi> </msup> <mrow> <mi>r</mi> <mo>!</mo> </mrow> </mfrac> <mfrac> <mrow> <msup> <mi>d</mi> <mi>r</mi> </msup> <msub> <mi>u</mi> <mi>i</mi> </msub> </mrow> <mrow> <msup> <mi>dt</mi> <mi>r</mi> </msup> </mrow> </mfrac> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>
其中,τ为任意自然数,但满足(3)式近似相等关系,为τ的(ρi+r)次方,(ρi+r)!为(ρi+r)的阶乘;
对公式(3)中ui(t+τ)等式两边先对τ求导再积分得到:
<mrow> <msub> <mi>u</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>+</mo> <mi>&amp;tau;</mi> <mo>)</mo> </mrow> <mo>&amp;ap;</mo> <mo>&amp;Integral;</mo> <mrow> <mo>(</mo> <mfrac> <mrow> <msub> <mi>du</mi> <mi>i</mi> </msub> </mrow> <mrow> <mi>d</mi> <mi>t</mi> </mrow> </mfrac> <mo>+</mo> <mi>&amp;tau;</mi> <mfrac> <mrow> <msup> <mi>d</mi> <mn>2</mn> </msup> <msub> <mi>u</mi> <mi>i</mi> </msub> </mrow> <mrow> <msup> <mi>dt</mi> <mn>2</mn> </msup> </mrow> </mfrac> <mo>+</mo> <mo>...</mo> <mo>+</mo> <mfrac> <msup> <mi>&amp;tau;</mi> <mrow> <mi>r</mi> <mo>-</mo> <mn>1</mn> </mrow> </msup> <mrow> <mi>r</mi> <mo>!</mo> </mrow> </mfrac> <mfrac> <mrow> <msup> <mi>d</mi> <mi>r</mi> </msup> <msub> <mi>u</mi> <mi>i</mi> </msub> </mrow> <mrow> <msup> <mi>dt</mi> <mi>r</mi> </msup> </mrow> </mfrac> <mo>)</mo> </mrow> <mi>d</mi> <mi>&amp;tau;</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>
从上式看出,τ时间段内的连续输入量ui(t+τ)用当前输入量的1到r阶导数表示,这就把模型预测控制中的连续优化问题转化为了离散的优化问题;由于在模型需要控制中,需要求解的只是当前τ=0时刻的控制量,因此τ=0时公式(4)简化为:
<mrow> <msub> <mi>u</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>&amp;ap;</mo> <mo>&amp;Integral;</mo> <mrow> <mo>(</mo> <mfrac> <mrow> <msub> <mi>du</mi> <mi>i</mi> </msub> </mrow> <mrow> <mi>d</mi> <mi>t</mi> </mrow> </mfrac> <mo>)</mo> </mrow> <mi>d</mi> <mi>&amp;tau;</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>
在优化问题中只要求解出ui的一阶导数即可,控制量ui通过其导数的积分得到;
为了简便,将yi(t+τ)改写成下面的形式:
yi(t+τ)≈TiYi (6)
其中Ti为行向量,Yi为列向量,Ti和Yi如下所示:
<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>T</mi> <mi>i</mi> </msub> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mfrac> <mi>&amp;tau;</mi> <mrow> <mn>1</mn> <mo>!</mo> </mrow> </mfrac> </mtd> <mtd> <mfrac> <msup> <mi>&amp;tau;</mi> <mn>2</mn> </msup> <mrow> <mn>2</mn> <mo>!</mo> </mrow> </mfrac> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <mfrac> <msup> <mi>&amp;tau;</mi> <mrow> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mi>r</mi> </mrow> </msup> <mrow> <mo>(</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mi>r</mi> <mo>)</mo> <mo>!</mo> </mrow> </mfrac> </mtd> </mtr> </mtable> </mfenced> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>Y</mi> <mi>i</mi> </msub> <mo>=</mo> <msup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>y</mi> <mi>i</mi> </msub> </mtd> <mtd> <mfrac> <mrow> <msub> <mi>dy</mi> <mi>i</mi> </msub> </mrow> <mrow> <mi>d</mi> <mi>t</mi> </mrow> </mfrac> </mtd> <mtd> <mfrac> <mrow> <msubsup> <mi>dy</mi> <mi>i</mi> <mn>2</mn> </msubsup> </mrow> <mrow> <msup> <mi>dt</mi> <mn>2</mn> </msup> </mrow> </mfrac> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <mfrac> <mrow> <msubsup> <mi>dy</mi> <mi>i</mi> <mrow> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mi>r</mi> </mrow> </msubsup> </mrow> <mrow> <msup> <mi>dt</mi> <mrow> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mi>r</mi> </mrow> </msup> </mrow> </mfrac> </mtd> </mtr> </mtable> </mfenced> <mi>T</mi> </msup> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>7</mn> <mo>)</mo> </mrow> </mrow>
针对多输出的情况,将Yi写在一个列向量里,公式(6)和公式(7)就能被扩充成:
<mrow> <mi>y</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>+</mo> <mi>&amp;tau;</mi> <mo>)</mo> </mrow> <mo>&amp;ap;</mo> <mover> <mi>T</mi> <mo>&amp;OverBar;</mo> </mover> <mover> <mi>Y</mi> <mo>&amp;OverBar;</mo> </mover> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>8</mn> <mo>)</mo> </mrow> </mrow>
为了计算误差函数,需要把指令信号yD(t+τ)写成跟输出信号y(t+τ)一致的形式:
<mrow> <msub> <mi>y</mi> <mi>D</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>+</mo> <mi>&amp;tau;</mi> <mo>)</mo> </mrow> <mo>&amp;ap;</mo> <mover> <mi>T</mi> <mo>&amp;OverBar;</mo> </mover> <msub> <mover> <mi>Y</mi> <mo>&amp;OverBar;</mo> </mover> <mi>D</mi> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>10</mn> <mo>)</mo> </mrow> </mrow>
将非线性***输入、输出以及指令信号用泰勒展开近似后,定义指令跟踪误差e(t+τ)如下式所示:
<mrow> <mi>e</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>+</mo> <mi>&amp;tau;</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>y</mi> <mi>D</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>+</mo> <mi>&amp;tau;</mi> <mo>)</mo> </mrow> <mo>-</mo> <mi>y</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>+</mo> <mi>&amp;tau;</mi> <mo>)</mo> </mrow> <mo>=</mo> <mover> <mi>T</mi> <mo>&amp;OverBar;</mo> </mover> <mrow> <mo>(</mo> <msub> <mover> <mi>Y</mi> <mo>&amp;OverBar;</mo> </mover> <mi>D</mi> </msub> <mo>-</mo> <mover> <mi>Y</mi> <mo>&amp;OverBar;</mo> </mover> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>11</mn> <mo>)</mo> </mrow> </mrow>
在模型预测控制中,代价函数J定义为T1~T2时间区间上跟踪误差e(t+τ)平方的积分,其中Q是权重矩阵,选择不同的权值使得某个输出量在代价函数中占有的比重发生变化;
<mrow> <mi>J</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <msup> <mrow> <mo>(</mo> <msub> <mover> <mi>Y</mi> <mo>&amp;OverBar;</mo> </mover> <mi>D</mi> </msub> <mo>-</mo> <mover> <mi>Y</mi> <mo>&amp;OverBar;</mo> </mover> <mo>)</mo> </mrow> <mi>T</mi> </msup> <mrow> <mo>(</mo> <msubsup> <mo>&amp;Integral;</mo> <msub> <mi>T</mi> <mn>1</mn> </msub> <msub> <mi>T</mi> <mn>2</mn> </msub> </msubsup> <mrow> <mo>&amp;lsqb;</mo> <msup> <mover> <mi>T</mi> <mo>&amp;OverBar;</mo> </mover> <mi>T</mi> </msup> <mi>Q</mi> <mover> <mi>T</mi> <mo>&amp;OverBar;</mo> </mover> <mo>&amp;rsqb;</mo> <mi>d</mi> <mi>&amp;tau;</mi> </mrow> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <msub> <mover> <mi>Y</mi> <mo>&amp;OverBar;</mo> </mover> <mi>D</mi> </msub> <mo>-</mo> <mover> <mi>Y</mi> <mo>&amp;OverBar;</mo> </mover> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>12</mn> <mo>)</mo> </mrow> </mrow>
在代价函数J的积分计算中,都是与τ无关的变量,因此提到积分号外面,进而代价函数中的积分项只由权重矩阵、控制阶数、相对阶数以及积分时间区间(T1,T2)决定,而与非线性***的状态无关;令(ρi+r)=Si如下式所示:
将输入量ui(t+τ)用r阶泰勒展开近似后,ui(t+τ)用当前τ=0时刻输入量的1至r阶导数来描述,因此优化问题需要优化的输入量写成如下形式:
<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>U</mi> <mi>i</mi> </msub> <mo>=</mo> <msup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mfrac> <mrow> <msub> <mi>du</mi> <mi>i</mi> </msub> </mrow> <mrow> <mi>d</mi> <mi>t</mi> </mrow> </mfrac> </mtd> <mtd> <mfrac> <mrow> <msup> <mi>d</mi> <mn>2</mn> </msup> <msub> <mi>u</mi> <mi>i</mi> </msub> </mrow> <mrow> <msup> <mi>dt</mi> <mn>2</mn> </msup> </mrow> </mfrac> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <mfrac> <mrow> <msup> <mi>d</mi> <mi>r</mi> </msup> <msub> <mi>u</mi> <mi>i</mi> </msub> </mrow> <mrow> <msup> <mi>dt</mi> <mi>r</mi> </msup> </mrow> </mfrac> </mtd> </mtr> </mtable> </mfenced> <mi>T</mi> </msup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mover> <mi>U</mi> <mo>&amp;OverBar;</mo> </mover> <mo>=</mo> <msup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>U</mi> <mn>1</mn> </msub> </mtd> <mtd> <msub> <mi>U</mi> <mn>2</mn> </msub> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <msub> <mi>U</mi> <mi>N</mi> </msub> </mtd> </mtr> </mtable> </mfenced> <mi>T</mi> </msup> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>15</mn> <mo>)</mo> </mrow> </mrow>
模型预测控制中,需要解决的优化问题表述为:选取一个向量使得在T1~T2时间区间上的代价函数J达到最小值;最优解需要满足的条件为:代价函数J对的偏导数为零;
<mrow> <mfrac> <mrow> <mo>&amp;part;</mo> <mi>J</mi> </mrow> <mrow> <mo>&amp;part;</mo> <mover> <mi>U</mi> <mo>&amp;OverBar;</mo> </mover> </mrow> </mfrac> <mo>=</mo> <mo>-</mo> <msup> <mrow> <mo>(</mo> <msub> <mover> <mi>Y</mi> <mo>&amp;OverBar;</mo> </mover> <mi>D</mi> </msub> <mo>-</mo> <mover> <mi>Y</mi> <mo>&amp;OverBar;</mo> </mover> <mo>)</mo> </mrow> <mi>T</mi> </msup> <mo>&amp;Pi;</mo> <mfrac> <mrow> <mo>&amp;part;</mo> <mover> <mi>Y</mi> <mo>&amp;OverBar;</mo> </mover> </mrow> <mrow> <mo>&amp;part;</mo> <mover> <mi>U</mi> <mo>&amp;OverBar;</mo> </mover> </mrow> </mfrac> <mo>=</mo> <mn>0</mn> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>16</mn> <mo>)</mo> </mrow> </mrow>
通过推导证明得到多输入多输出非线性***ENMPC控制量的显示解的形式为:
<mrow> <msub> <mover> <mi>U</mi> <mo>&amp;CenterDot;</mo> </mover> <mi>c</mi> </msub> <mo>=</mo> <msup> <mi>B</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msup> <mo>&amp;lsqb;</mo> <mi>K</mi> <mrow> <mo>(</mo> <msubsup> <mi>Y</mi> <mi>D</mi> <mi>U</mi> </msubsup> <mo>-</mo> <msup> <mi>Y</mi> <mi>U</mi> </msup> <mo>)</mo> </mrow> <mo>+</mo> <msubsup> <mi>Y</mi> <mi>D</mi> <mrow> <mi>L</mi> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <mi>A</mi> <mo>&amp;rsqb;</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>17</mn> <mo>)</mo> </mrow> </mrow>
其中,K是由Ki组成的对角阵,Ki矩阵的第一行,YU是非线性***实际的输出,为指令信号yDi的(ρi+1)阶导数;
其中,
其特征在于,具体步骤如下:
步骤一:由飞机所处的飞行情况简化纵向运动非线性方程;
由于着舰过程中航迹角μ很小,所以其正弦值用弧度值近似;着舰过程中迎角α也很小,因此将推力的方向近似为与速度轴平行;由于升降舵产生的升力很小,因此在升力中忽略升降舵的作用;纵向控制律非线性***方程如下:
<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mover> <mi>h</mi> <mo>&amp;CenterDot;</mo> </mover> <mo>=</mo> <mi>V</mi> <mi>&amp;mu;</mi> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mover> <mi>V</mi> <mo>&amp;CenterDot;</mo> </mover> <mo>=</mo> <mo>&amp;lsqb;</mo> <mi>T</mi> <mo>-</mo> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mrow> <mi>D</mi> <mn>0</mn> </mrow> </msub> <mo>+</mo> <msub> <mi>C</mi> <mrow> <mi>D</mi> <mi>&amp;alpha;</mi> </mrow> </msub> <mi>&amp;alpha;</mi> <mo>)</mo> </mrow> <mover> <mi>q</mi> <mo>&amp;OverBar;</mo> </mover> <mi>S</mi> <mo>-</mo> <mi>m</mi> <mi>g</mi> <mi> </mi> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mi>&amp;mu;</mi> <mo>&amp;rsqb;</mo> <mo>/</mo> <mi>m</mi> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mover> <mi>&amp;mu;</mi> <mo>&amp;CenterDot;</mo> </mover> <mo>=</mo> <mo>&amp;lsqb;</mo> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mrow> <mi>L</mi> <mn>0</mn> </mrow> </msub> <mo>+</mo> <msub> <mi>C</mi> <mrow> <mi>L</mi> <mi>&amp;alpha;</mi> </mrow> </msub> <mi>&amp;alpha;</mi> <mo>)</mo> </mrow> <mover> <mi>q</mi> <mo>&amp;OverBar;</mo> </mover> <mi>S</mi> <mo>-</mo> <mi>m</mi> <mi>g</mi> <mi> </mi> <mi>cos</mi> <mi>&amp;mu;</mi> <mo>&amp;rsqb;</mo> <mo>/</mo> <mrow> <mo>(</mo> <mi>m</mi> <mi>V</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mover> <mi>&amp;alpha;</mi> <mo>&amp;CenterDot;</mo> </mover> <mo>=</mo> <mi>q</mi> <mo>-</mo> <mover> <mi>&amp;mu;</mi> <mo>&amp;CenterDot;</mo> </mover> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mover> <mi>q</mi> <mo>&amp;CenterDot;</mo> </mover> <mo>=</mo> <mo>&amp;lsqb;</mo> <msub> <mi>C</mi> <mrow> <mi>m</mi> <mn>0</mn> </mrow> </msub> <mo>+</mo> <msub> <mi>C</mi> <mrow> <mi>m</mi> <mi>&amp;alpha;</mi> </mrow> </msub> <mi>&amp;alpha;</mi> <mo>+</mo> <msub> <mi>C</mi> <mrow> <mi>m</mi> <mi>q</mi> </mrow> </msub> <mo>&amp;CenterDot;</mo> <mi>c</mi> <mo>/</mo> <mrow> <mo>(</mo> <mn>2</mn> <mi>V</mi> <mo>)</mo> </mrow> <mo>&amp;CenterDot;</mo> <mi>q</mi> <mo>+</mo> <msub> <mi>C</mi> <mrow> <msub> <mi>m&amp;delta;</mi> <mi>e</mi> </msub> </mrow> </msub> <msub> <mi>&amp;delta;</mi> <mi>e</mi> </msub> <mo>&amp;rsqb;</mo> <mo>/</mo> <msub> <mi>I</mi> <mi>y</mi> </msub> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>18</mn> <mo>)</mo> </mrow> </mrow>
其中,m为飞机质量,g为重力加速度,T为飞机发动机推力,为飞机所在高度的一阶微分,V为飞机速度,为飞机速度的一阶微分,α为飞机攻角,为飞机攻角的一阶导数,q为飞机俯仰角的角速度,为飞机俯仰角的角加速度,δe为飞机的升降舵偏角,为动压,S为飞机机翼的参考面积,c为飞机机翼的平均几何弦长,为飞机航迹倾斜角的一阶导数,CD0和C为飞机阻力系数,CL0和C为飞机升力系数,Cm0,C,Cmq为飞机的俯仰力矩系数,Iy为飞机以y轴为转轴的转动惯量;μ为舰载机航迹倾斜角;
步骤二:确定控制量和被控量;
纵向控制中的控制量为油门和升降舵,被控量为舰载机速度和高度,横侧向控制中控制量是副翼和方向舵,被控量是滚转角和偏航角;
步骤三:确定每个输出量的相对阶数,并由表1中的数据确定所需的控制阶数,求取被控量yi的(ρi+1)阶对t的导数,并使用纵向运动方程(18)进行变量替换,使yi只由输入量及其导数和确定的参数表示;
步骤四:K是由Ki组成的对角阵,由矩阵的第一行求得Ki的值;
对于每一个输出量,由相对阶数,控制阶数及预测时间T1,T2求得:
<mrow> <msubsup> <mi>&amp;Pi;</mi> <mi>i</mi> <mn>12</mn> </msubsup> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mfrac> <mrow> <msubsup> <mi>T</mi> <mn>2</mn> <mrow> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>2</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>T</mi> <mn>1</mn> <mrow> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>2</mn> </mrow> </msubsup> </mrow> <mrow> <mo>(</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>1</mn> <mo>)</mo> <mo>!</mo> <mo>(</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>2</mn> <mo>)</mo> </mrow> </mfrac> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <mfrac> <mrow> <msubsup> <mi>T</mi> <mn>2</mn> <mrow> <msub> <mi>S</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>2</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>T</mi> <mn>1</mn> <mrow> <msub> <mi>S</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>2</mn> </mrow> </msubsup> </mrow> <mrow> <mo>(</mo> <msub> <mi>S</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>1</mn> <mo>)</mo> <mo>!</mo> </mrow> </mfrac> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mfrac> <mrow> <msubsup> <mi>T</mi> <mn>2</mn> <mrow> <mn>2</mn> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>2</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>T</mi> <mn>1</mn> <mrow> <mn>2</mn> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>2</mn> </mrow> </msubsup> </mrow> <mrow> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>!</mo> <mrow> <mo>(</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>!</mo> <mrow> <mo>(</mo> <mn>2</mn> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow> </mfrac> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <mfrac> <mrow> <msubsup> <mi>T</mi> <mn>2</mn> <mrow> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <msub> <mi>S</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>T</mi> <mn>1</mn> <mrow> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <msub> <mi>S</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>1</mn> </mrow> </msubsup> </mrow> <mrow> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>!</mo> <msub> <mi>S</mi> <mi>i</mi> </msub> <mo>!</mo> <mrow> <mo>(</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <msub> <mi>S</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> </mfrac> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>19</mn> <mo>)</mo> </mrow> </mrow>
<mrow> <msubsup> <mi>&amp;Pi;</mi> <mi>i</mi> <mn>22</mn> </msubsup> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mfrac> <mrow> <msubsup> <mi>T</mi> <mn>2</mn> <mrow> <mn>2</mn> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>3</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>T</mi> <mn>1</mn> <mrow> <mn>2</mn> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>3</mn> </mrow> </msubsup> </mrow> <mrow> <mo>(</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>1</mn> <mo>)</mo> <mo>!</mo> <mo>(</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>1</mn> <mo>)</mo> <mo>!</mo> <mo>(</mo> <mn>2</mn> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>3</mn> <mo>)</mo> </mrow> </mfrac> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <mfrac> <mrow> <msubsup> <mi>T</mi> <mn>2</mn> <mrow> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <msub> <mi>S</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>2</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>T</mi> <mn>1</mn> <mrow> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <msub> <mi>S</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>2</mn> </mrow> </msubsup> </mrow> <mrow> <mo>(</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>1</mn> <mo>)</mo> <mo>!</mo> <msub> <mi>S</mi> <mi>i</mi> </msub> <mo>!</mo> <mo>(</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <msub> <mi>S</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>2</mn> <mo>)</mo> </mrow> </mfrac> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mfrac> <mrow> <msubsup> <mi>T</mi> <mn>2</mn> <mrow> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <msub> <mi>S</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>2</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>T</mi> <mn>1</mn> <mrow> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <msub> <mi>S</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>2</mn> </mrow> </msubsup> </mrow> <mrow> <mo>(</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>1</mn> <mo>)</mo> <mo>!</mo> <msub> <mi>S</mi> <mi>i</mi> </msub> <mo>!</mo> <mo>(</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <msub> <mi>S</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>2</mn> <mo>)</mo> </mrow> </mfrac> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <mfrac> <mrow> <msubsup> <mi>T</mi> <mn>2</mn> <mrow> <mn>2</mn> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>1</mn> </mrow> </msubsup> <mo>-</mo> <msubsup> <mi>T</mi> <mn>1</mn> <mrow> <mn>2</mn> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>1</mn> </mrow> </msubsup> </mrow> <mrow> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>!</mo> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>!</mo> <mrow> <mo>(</mo> <mn>2</mn> <msub> <mi>&amp;rho;</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> </mfrac> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>20</mn> <mo>)</mo> </mrow> </mrow>
步骤五:对指令信号yDi进行泰勒展开,得到指令信号的各阶导函数;
当非线性***存在多输出的情况时,公式(10)中的为:
<mrow> <msub> <mover> <mi>Y</mi> <mo>&amp;OverBar;</mo> </mover> <mi>D</mi> </msub> <mo>=</mo> <msup> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>Y</mi> <mrow> <mi>D</mi> <mn>1</mn> </mrow> </msub> </mtd> <mtd> <msub> <mi>Y</mi> <mrow> <mi>D</mi> <mn>2</mn> </mrow> </msub> </mtd> <mtd> <mo>...</mo> </mtd> <mtd> <msub> <mi>Y</mi> <mrow> <mi>D</mi> <mi>p</mi> </mrow> </msub> </mtd> </mtr> </mtable> </mfenced> <mi>T</mi> </msup> </mrow>
其中i=1,2,...,p;
步骤六:将技术方案中步骤三、步骤四、步骤五所计算得到的被控量yi的表达式,K的值和指令信号的各阶导函数带入公式(17),即解出控制量的一阶导数,进行积分即得到控制量;
步骤七:由此,得到了一种基于显式非线性模型预测控制的舰载机自主着舰纵向控制律,将该控制律加入飞机的非线性模型进行仿真验证,通过给出着舰时舰载机的下滑高度指令信号,观察在着舰过程中舰载机对于高度指令信号的跟踪情况,进而验证该控制律的效果及稳定性。
2.根据权利要求1所述的一种基于显式非线性模型预测控制的舰载机自主着舰方法,其特征在于:在步骤三中,确定每个输出量的相对阶数,由表1中的数据确定所需的控制阶数,求ρi阶导数,最后通过式(17)直接求得输入量,使yi只由输入量及其导数和确定的参数表示。
CN201610110119.3A 2016-02-29 2016-02-29 一种基于显式非线性模型预测控制的舰载机自主着舰方法 Active CN105759609B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610110119.3A CN105759609B (zh) 2016-02-29 2016-02-29 一种基于显式非线性模型预测控制的舰载机自主着舰方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610110119.3A CN105759609B (zh) 2016-02-29 2016-02-29 一种基于显式非线性模型预测控制的舰载机自主着舰方法

Publications (2)

Publication Number Publication Date
CN105759609A CN105759609A (zh) 2016-07-13
CN105759609B true CN105759609B (zh) 2018-05-11

Family

ID=56331398

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610110119.3A Active CN105759609B (zh) 2016-02-29 2016-02-29 一种基于显式非线性模型预测控制的舰载机自主着舰方法

Country Status (1)

Country Link
CN (1) CN105759609B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106054903B (zh) * 2016-07-27 2019-11-08 中南大学 一种多旋翼无人机自适应降落方法及***
CN108762089B (zh) * 2018-06-15 2021-02-19 大连理工大学 一种基于模型预测的航空发动机在线优化及多变量控制设计方法
CN110703799B (zh) * 2019-10-28 2021-09-24 大连理工大学 基于集中式最优控制的多舰载机协同甲板面滑行轨迹规划方法
CN112180728B (zh) * 2020-09-30 2022-06-14 北京石油化工学院 一种舰载机着舰纵向运动线性模型的构建方法
CN112327669B (zh) * 2020-11-14 2022-02-18 大连理工大学 一种航空发动机显式预测控制器的设计方法
CN114280926A (zh) * 2021-09-18 2022-04-05 中国人民解放军92728部队 一种舰载机着舰横侧向鲁棒解耦控制方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100557540C (zh) * 2007-12-25 2009-11-04 北京航空航天大学 一种基于磁航向传感器的无人机航向自动修正方法
CN102360216B (zh) * 2011-05-20 2013-06-19 南京航空航天大学 双发舰载飞机单发停车的安全着舰控制方法
CN102390543B (zh) * 2011-08-23 2013-07-24 北京航空航天大学 一种无人机的纵向着陆轨迹的设计方法
US8457891B1 (en) * 2012-06-19 2013-06-04 Honeywell International Inc. Systems and methods for compensating nonlinearities in a navigational model
CN103218607B (zh) * 2013-04-11 2016-08-24 北京航空航天大学 一种用于无人机自主着舰的合作目标设计与定位方法
CN103942085B (zh) * 2013-12-31 2017-06-23 中国人民解放军空军航空大学军事仿真技术研究所 一种舰载直升机飞行模拟器的着舰仿真方法
CN105022881B (zh) * 2015-07-22 2018-02-02 北京航空航天大学 一种基于鸽群优化的舰载机自主着舰导引律设计方法
CN105259908B (zh) * 2015-11-05 2018-10-16 南京航空航天大学 一种雷达引导无人机自动着舰制导与控制***及其控制方法

Also Published As

Publication number Publication date
CN105759609A (zh) 2016-07-13

Similar Documents

Publication Publication Date Title
CN105759609B (zh) 一种基于显式非线性模型预测控制的舰载机自主着舰方法
CN103488814B (zh) 一种适用于再入飞行器姿态控制的闭环仿真***
Zhen et al. Adaptive super-twisting control for automatic carrier landing of aircraft
CN108873929B (zh) 一种固定翼飞机自主着舰方法及***
CN106774361B (zh) 一种基于前馈和反馈复合控制的航母舰载机着舰的舰艉流抑制方法
Wang et al. Nonlinear hierarchy-structured predictive control design for a generic hypersonic vehicle
Ambati et al. Robust auto-landing of fixed-wing UAVs using neuro-adaptive design
Wang et al. Nonlinear aeroelastic control of very flexible aircraft using model updating
CN109703768B (zh) 一种基于姿态/轨迹复合控制的软式空中加油对接方法
CN111290278B (zh) 一种基于预测滑模的高超声速飞行器鲁棒姿态控制方法
CN109703769B (zh) 一种基于预瞄策略的空中加油对接控制方法
CN116300992A (zh) 一种基于l1自适应动态逆的变体飞行器控制方法
CN104536448A (zh) 一种基于Backstepping法的无人机姿态***控制方法
Park Control and guidance for precision deep stall landing
Wang et al. A neural network based MRAC scheme with application to an autonomous nonlinear rotorcraft in the presence of input saturation
Smith et al. Application of the concept of dynamic trim control to automatic landing of carrier aircraft
Noll Aeroservoelasticity
Cheng et al. A corridor-based flight mode transition strategy for agile ducted-fan tail-sitter UAV: Altitude-hold transition
Lone et al. Framework for flight loads analysis of trajectory-based manoeuvres with pilot models
Kaden et al. Maneuvers during automatic formation flight of transport aircraft for fuel savings
van Overeem et al. Modelling and Handling Quality Assessment of the Flying-V Aircraft
Hamissi et al. A new nonlinear control design strategy for fixed wing aircrafts piloting
CN110426955B (zh) 一种基于利用耦合的高超声速舵面操纵效能预测方法
Xin et al. Adaptive robust control based on TS fuzzy-neural systems for a hypersonic vehicle
Espinoza-Fraire et al. Design of Control Laws and State Observers for Fixed-Wing UAVs: Simulation and Experimental Approaches

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant