罗配明:基于LQR的四轴飞行器控制算法设计
产业经济
基于LQR的四轴飞行器控制算法设计
罗配明
(广东工业大学 自动化学院,广东 广州 510000)
[摘 要]为有效解决四轴飞行器的稳定性控制响应慢、精度不高的问题,提出一种基于LQR的反馈控制算法;重点描述了四轴飞行器的控制模型、LQR的算法设计原理及稳定性判据、LQR在四轴飞行器控制中的设计步骤,并通过Matlab仿真验证了算法的可行性。
[关键词]LQR算法;四轴飞行器模型;Matlab仿真[DOI]1013939/jcnkizgsc201709069
LQR(LinearQuadraticRegulator)即线性二次型调节器,是现代控制理论中较为经典的控制算法,其设计的目标是寻找状态反馈控制器K使得二次型目标函数J
取得最小值。[1~2]四轴飞行器又称四旋翼飞行器,是一个能够在6个
活动自由度自由运行,但是控制自由度却只有4个的系统,因此也被称为欠驱动系统。研究四轴飞行器的控制算法,就是针对四轴欠驱动的本质,设计控制算法,使得飞行器能够很好地响应控制指令,并保持性能稳定。
[3]
基于以上原因,论文基于LQR算法设计了四轴飞行器的控制回路,通过Matlab仿真验证算法的可行性。
1 四轴飞行器模型
四轴飞行器由十字交叉排列的4个电机提供升力,分别
为F1
、F2
、F3
和F4
,通过控制四个升力的大小并进行配合
控制,可分别实现四轴飞行器的上升、下降、前进、后退、左移和右移。其力学模型如图1所示。其中,y1正向表示飞行器前进方向,φ为机体俯仰角,θ为滚动角,Ψ为横摆角,p,q,r分别为φ,θ,Ψ的角速度。飞行器机体坐标系
为(x[41,y1,z1),地面坐标系为(x2,y]
2,z2
)。图1 四轴飞行器力学模型
根据图1可得,由机体坐标系到地面坐标系的变换公式为
Rx=[100
0c
osφ-sinφ0sinφ
cosφ
]cosθ0sinθRy=
[0
1
0
-sinθ0cosθ
]cosψ-sinψ0
Rz=[s
inψcosψ00
0
1
]组合变换为
[cosψcosθ
abR=RxRyRz=s
inψcosθc
d
-sinθ
sinθcosφcosθcosφ
]式中:a
=cosφsinθsin-cossinφb=cosφsinθcos+sinφsinc=sinφsinθsin+cosφcosd=sinφsinθcos-sincosφ
四轴飞行器通常使用电机作为驱动力,结合驱动力矩的方程,使用雅克比行列式表示四轴飞行器的状态方程为
00
0
00000
0000
A=
000000
100000
osφ-sinφ000
0c
0sinφcosφ
000
参考张忠民[2]
提出的模型,令状态矩阵A为
0
00
000
0
00000
A=
000000
100000
00
995-00998000
0009980995
000
0560560-56056
560560-560560B=-2802828028-2802828028
0000
由于系
00000000统输入输出之间不存在直接联系,D=0,输入矩阵C可设为
.com.cn. All Rights Reserved.产业经济
100000010000
C=
0010000001000000100
0000
1
2 LQR算法设计
LQR算法的核心就是设计状态反馈系数K,假设四轴飞行器控制系统能用状态向量的形式表示成:
x=Ax+Bu
pq
y=Cx+Du=r
θφ
其中x(t)∈Rn,u(t)∈Rm
,初始条件为x(0),且系
统所有的状态变量都是可以测量到的。
设计LQR控制器,即设计一个能量函数,最优的控制轨迹应该使得能量函数最小,通常取能量函数为
∞
J=
1∫
TT
2xQx+uRudt0
其中,Q为设定的半正定矩阵,R为正定矩阵。根据反馈控制系统的结构,u=-Kx,代入得到J=1∞
2∫
xT(Q+KT
RK)xdt0
选择系数Q和R,解方程
ATP+PA+Q-PBR-1BT
P=0
求出P,计算K=R-1BT
P
3 Matlab仿真
Matlab中带有计算K的函数,按如下方式输入矩阵:A=[000000;000000;000000;100000;00995-00998000;0009980995000];B=[0560560-56056;560560-560560;-2802828028-2802828028;0000;0000;0000];C=[100000;010000;001000;000100;000010;000001];D=[0];
Q=[100000;010000;001000;000100;000010;000001];R=[1000;0100;0010;0001];
[
k,p,e]=lqr(A,B,Q,R);Ac=[(A-Bk)];Bc=[B];Cc=[C];Dc=[D];
[
y,x,t]=step(Ac,Bc,Cc,Dc);y1=y(:,4);y2=y(:,5);y3=y(:,6);plot(t,y1,'r:',t,y2,t,y3),gridxlabel('Time/s','FontSize',14)
中国市场 2017年第9期(总第928期)
legend('y1','y2','y3
')通过plot函数可绘制出y1,y2,y3的曲线,也就是φ
,θ
,Ψ的值,通过图2可知,这三个变量最终稳定。图2 输出值
最终可得到K值为0
071605088007535
-04269k=
0
71600508807071-0049904975
0-0716-050880
-06527-05681
-0716005088
-07071-0049904975
反馈控制中,通过设置K值,即可得到稳定的控制
系统。
4 结 论
LQR是现代控制领域的经典算法,通过选择合适的Q和R,就可以使用Matlab来求解状态反馈系数K的值,使用Matlab还可以很好地观察系统的性能曲线,从而可以可以判断系统能否达到稳定的状态。
后续的工作可以继续研究的Q和R的值的取值规律,以便得到性能更好的曲线,还可以研究离散控制情况下,如何使用LQR算法,以便适应飞行器离散控制的特点。
参考文献:
[1]刘丽丽,左继红四旋翼飞行器的力学建模及LQR控制算法研究[J].机械管理开发,2016(10):1-2,23
[2]张忠民,丛梦苑基于线性二次调节器的四旋翼飞行器控制[J].应用科技,2011(5):38-42,60
[3]宋西蒙倒立摆系统LQR—模糊控制算法研究[D].西安:西安电子科技大学,2006
[4]王晓侃,冯冬青基于MATLAB的LQR控制器设计方法研究[J].微计算机信息,2008(10):37-39
檶檶檶檶檶檶檶檶檶[作者简介]罗配明(1987—),女,瑶族,广西贵港人,硕士,实验员。研究方向:无线传感器网络。
.com.cn. All Rights Reserved.