三自由度直升机快速模型预测控制方法与流程

文档序号:11581226阅读:587来源:国知局
三自由度直升机快速模型预测控制方法与流程
本发明应用于三自由度直升机自动控制领域,为三自由度直升机提供一种快速求解并适用于三自由度直升机的姿态调节及跟踪控制方法。
背景技术
:及意义如今飞行器快速的发展,各种飞行器层出不穷,良好性能与安全性能就尤为关键了。在各类飞行器中,直升机较为特殊,它能够快速起飞、降落,能够适应较困难的环境。直升机在现代化的各领域中凭借着它突出的优点,都起到了不小的作用。本发明使用加拿大quanser公司开发的三自由度直升机系统作为研究对象,其形态类似于鱼鹰战机,拥有2个旋翼,具有高度轴,俯仰轴和旋转轴3个自由度。它是典型的多输入多输出(mimo)、强耦合的非线性系统,它是模拟飞行器实地飞行的绝佳的参考,是模拟不同算法理想的科研模型。但是传统的控制器设计会使飞行器全局性能不平衡,三自由度直升机飞行中系统参数会不断变化且本身模型具有不确定性影响系统的精确。此外,三自由度直升机系统复杂程度高,求解时间随着问题规模的增大而增加。技术实现要素:本发明针对以上问题提出了一种三自由度直升机快速模型预测控制方法,根据系统约束和性能指标函数对一段时域内的行为快速做出相应预测,克服了控制问题中带约束控制求解时间太长和仅限于处理小规模问题的局限,由此提出了三自由度直升机快速模型预测控制方法。发明中利用凸优化工具cvxgen描绘了三自由度直升机状态模型并生成求解器,用该工具结合算法生成一种解决此类问题的求解工具,发明了提供一种性能高、求解速度快的三自由度直升机快速模型预测控制方法,同时也继承了传统模型预测控制问题的系统处于最优状态这一特点,最后通过仿真验证了方法的可行性与优化的效果。本发明提供了一种快速模型预测控制方法,分析了算法可处理的问题规模范围及控制性能,权衡了求解器的复杂度、求解速度以及实时性三个方面的性能。相较于传统模型控制方法与显示模型控制方法,本发明主要解决了随着控制问题规模增大需要更大存储空间和求解时间的问题。为使本发明的目的、技术方案和优点更加清晰,下面就对本发明的技术方案作进一步描述。三自由度直升机快速模型预测控制方法,包括如下步骤:步骤1)三自由度直升机建模;选取状态输入u=[vfvb]t,输出y=[εpr]t;将高度轴微分运动方程中的-glacosε作为扰动项,整理上述运动方程后可得系统的运动方程为:代入具体的相应参数后得到最终状态方程系数为:其中ε、p、λ分别为三自由度直升机状态变量的高度角、俯仰角、旋转角,以及它们的微分状态变量,vf、vb是输入状态电压,扰动项la为直升机本体到高度轴之间的距离,g为重力加速度,f、h、c为最终状态方程系数;步骤2)转化qp问题,内点法求解;f(x)是该问题中的性能指标函数,如何优化该函数称为二次规划问题,对于二次规划问题(quadraticprogramming,qp),其标准形式可表示为:其中q∈rn,a∈rm×n,b∈rm,g∈rp×n,h∈rp;对于该问题,最优解的求解即是在多面体上极小化一个凸二次函数,它可利用其几何解释来说明该问题的多面体可行域、性能指标函数的等位线和最优点;将式(2)进行转化,求导后得到最优化条件可表示为:其中s∈rp表示松弛变量,双变量y∈rm,z∈rp,zisi=0表示互补松弛条件。利用内点法求解该问题,首先进行初始化;式(4)由(3)等式变换得到,求解式(4)确定4个原始对偶变量分别为x(0)=x,y(0)=y,其中αp=inf{α|-z+α1≥0},αd=inf{α|z+α1≥0};其次进行迭代求解过程;迭代算法对初始点进行优化,进过迭代后得到最优解,它分为以下几个步骤:s1:当残余变量和对偶间隙足够小时则停止迭代,否则到s2;s2:通过求解(5)可得仿射变换方向,其中s=diag(s),z=diag(z);s3:通过求解(6)计算中心点校正方向;其中μ=stz/p,α=sup{α∈[0,1]|s+αδsaff≥0,z+αδzaff≥0};s4:根据下式(7)更新原始对偶变量的搜索方向;s5:根据α=min{1,0.99sup{α≥0|s+αδs≥0,z+αδz≥0}}确定近似步长,再更新原始对偶变量;s6:返回到s1,直到求解出符合约束条件的全局最优解;上述步骤中x、s、y、z分别为4个进过优化后的对偶变量,s=diag(s)、z=diag(z),而对应于预测控制问题中a∈rn×n表示状态矩阵,q∈rn×n代表状态权重矩阵;步骤3)求解器的生成;利用凸优化工具cvxgen生成高速求解器,首先在cvxxgen中编写代码,代码描述了该系统的问题和系统的基本参数,其中编写部分包括维数(dimensions)部分、参数(parameters)部分、变量(variables)、目标函数(minimize)和约束(subjectto),用指定的语言描述出上述几个部分并经过编译即得到求解器。该求解器根据代码描述的基本参数和系统问题计算出最优解,生成输入量u*应用到系统之中,同时系统产生输出量y与反馈量x。该求解器可在matlab或linux环境下使用;编译完成后生成了若干文件,文件名为makefile、csolve.c、csolve.m、cvxsolve.m、description.cvxgen、ldl.c、make_csolve.m、solver.c、testsolver.c、util.c、solver.h,其中makefile是linux环境下需调用的基本makefile文件;csolve.c是运行cvxgen求解器的可编译文件,用于生成mex文件;csolve.m是csolve.c文件在m语言下的转换;cvxsolve.m是cvx方法的求解文件,可直接调用;description.cvxgen是在cvxgen代码编写页面所描述问题的源代码;ldl.c是solver.c文件的基本测试代码;make_csolve.m是通过调用mex命令可以生成csolve的mex文件;solver.c是求解qp问题的核心文件;util.c是cvxgen算法中所有有效代码。本发明具有以下优点:1.本发明保留了三自由度直升机非线性模型,保障系统了稳定性能。2.本发明采用内点法迭代步数精确求解全局最优解,优化了全局并提高了系统性能。3.本发明利用了凸优化理论,并应用于三自由度直升机模型之中,求解所需时间提到了大幅的改善。4.本发明步骤明确结构简单,拥有完善的理论支持。附图说明图1是三自由度直升机实物图图2是三自由度直升机模型图图3是模型预测控制的基本框图图4是本发明的快速模型预测控制原始对偶内点法求解qp问题的流程图图5是本发明的基于凸优化工具使用框图图6是本发明的基于凸优化工具的代码编写界面图7是本发明的基于凸优化工具的代码编译界面图8是三自由度直升机高度角仿真曲线对比图图9是三自由度直升机俯仰角仿真曲线对比图图10是三自由度直升机旋转角仿真曲线对比图具体实施方式以下结合附图对本发明做进一步说明:本发明的三自由度直升机快速模型预测控制方法,包括以下步骤:步骤1)三自由度直升机建模;选取状态输入u=[vfvb]t,输出y=[εpr]t;将高度轴微分运动方程中的-glacosε作为扰动项,整理上述运动方程后可得系统的运动方程为:代入具体的相应参数后得到最终状态方程系数为:其中ε、p、λ分别为三自由度直升机状态变量的高度角、俯仰角、旋转角,以及它们的微分状态变量,vf、vb是输入状态电压,扰动项la为直升机本体到高度轴之间的距离,g为重力加速度,f、h、c为最终状态方程系数;图2为三自由度直升机模型图;步骤2)转化qp问题,内点法求解;f(x)是该问题中的性能指标函数,如何优化该函数称为二次规划问题,对于二次规划问题(quadraticprogramming,qp),其标准形式可表示为:其中q∈rn,a∈rm×n,b∈rm,g∈rp×n,h∈rp;对于该问题,最优解的求解即是在多面体上极小化一个凸二次函数,它可利用其几何解释来说明该问题的多面体可行域、性能指标函数的等位线和最优点;将式(2)进行转化,求导后得到最优化条件可表示为:其中s∈rp表示松弛变量,双变量y∈rm,z∈rp,zisi=0表示互补松弛条件。图4是原始对偶内点法求解qp问题原理图,它的详细过程如下所示:利用内点法求解该问题,首先进行初始化;式(4)由(3)等式变换得到,求解式(4)确定4个原始对偶变量分别为x(0)=x,y(0)=y,其中αp=inf{α|-z+α1≥0},αd=inf{α|z+α1≥0};(22)进行迭代求解过程;迭代算法对初始点进行优化,进过迭代后得到最优解,它分为以下几个步骤:s1:当残余变量和对偶间隙足够小时则停止迭代,否则到s2;s2:通过求解(5)可得仿射变换方向,其中s=diag(s),z=diag(z);s3:通过求解(6)计算中心点校正方向;其中μ=stz/p,α=sup{α∈[0,1]|s+αδsaff≥0,z+αδzaff≥0};s4:根据下式(7)更新原始对偶变量的搜索方向;s5:根据α=min{1,0.99sup{α≥0|s+αδs≥0,z+αδz≥0}}确定近似步长,再更新原始对偶变量;s6:返回到s1,直到求解出符合约束条件的全局最优解;上述步骤中x、s、y、z分别为4个进过优化后的对偶变量,s=diag(s)、z=diag(z)对应于预测控制问题中a∈rn×n表示状态矩阵,q∈rn×n代表状态权重矩阵;步骤3)求解器的生成;图5展示了凸优化工具快速预测控制使用框图;利用凸优化工具cvxgen生成高速求解器,首先在cvxxgen中编写代码,代码描述了该系统的问题和系统的基本参数,其中编写部分包括维数(dimensions)部分、参数(parameters)部分、变量(variables)、目标函数(minimize)和约束(subjectto),用指定的语言描述出上述几个部分并经过编译即得到求解器。该求解器根据代码描述的基本参数和系统问题计算出最优解,生成输入量u*应用到系统之中,同时系统产生输出量y与反馈量x。该求解器可在matlab或linux环境下使用;图6为代码编写界面、图7为代码编译界面;编译完成后生成了若干文件,文件名为makefile、csolve.c、csolve.m、cvxsolve.m、description.cvxgen、ldl.c、make_csolve.m、solver.c、testsolver.c、util.c、solver.h,其中makefile是linux环境下需调用的基本makefile文件;csolve.c是运行cvxgen求解器的可编译文件,用于生成mex文件;csolve.m是csolve.c文件在m语言下的转换;cvxsolve.m是cvx方法的求解文件,可直接调用;description.cvxgen是在cvxgen代码编写页面所描述问题的源代码;ldl.c是solver.c文件的基本测试代码;make_csolve.m是通过调用mex命令可以生成csolve的mex文件;solver.c是求解qp问题的核心文件;util.c是cvxgen算法中所有有效代码。案例分析本发明通过以具体的三自由度直升机为对象,展现了快速模型预测控制在三自由度直升机建模、转化为qp问题与内点法迭代求解、cvxgen求解器生成三个方面中的表现,同时通过与经典的方法对比展现了本发明的优越性能。本发明在通过半实物仿真平台进行实验,图8给出的是三自由度直升机高度角仿真曲线,图9给出的是三自由度直升机俯仰角仿真曲线,图10给出的三自由度直升机旋转仿真曲线,横坐标为时间,纵坐标为角度。实验对象为基于凸优化的快速模型预测控制(cvxgen),比较对象分别为快速在线模型预测控制(fastmpc)、显式模型预测控制(empc)和传统的pid控制方法对,图8中在同一初始状态下,cvxgen调节至稳定状态的时间为1.8s左右,超调量为4.27%,稳态误差值达到-1.796e-008;图9中同一初始状态下,cvxgen至稳定状态的时间为2.4s左右,超调量为49.05%,稳态误差值达到-9.264e-007,;图10中同一初始状态下,cvxgen至稳定状态的时间为2s左右,超调量为4.18%,稳态误差值达到-2.539e-006;总结三张图可得cvxgen控制效果优于传统pid、empc算法,调节时间小于其它算法,超调量也小于其它算法。表1中可看出,在高度角、俯仰角、旋转角三个状态参数中cvxgen算法的稳态误值小于empc和pid算法,表中可以看出cvxgen算法最优即稳态误差最小,但与empc算法较为接近,但相比与pid,稳态误差远远小于pid算法。表2中用不同预测步长来测试个算法的在线计算时间,可从表中看到,cvxgen算法随着步长t的增大,计算时间仍然保持很快,而传统mpc算法与empc随着步长t的增大,在线计算时间显著增大。从表1与表2中不难发现cvxgen在保持稳态误差即保持系统稳定的情况下,大大提高了算法计算时间,提高了效率。表1不同算法三个角度的稳态误差值算法高度角俯仰角旋转角cvxgen-1.796e-008-9.264e-007-2.539e-006empc-1.869e-0073.541e-007-4.597e-008pid-0.019170.02165-0.06275表2不同预测步长下各算法在线计算时间比较(单位:秒)算法预测步长t=2t=3t=5t=10t=15cvxgen0.02890.03130.04950.0942/mpc0.26830.27780.30110.33970.3875empc19.181685.2733274.1230//当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1