【无人机控制】鲁棒反馈线性化控制器无人机 (UAV) 姿态控制【含Matlab源码 2814期】

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、鲁棒反馈线性化控制器无人机 (UAV) 姿态控制简介

鲁棒反馈线性化控制器(Robust Feedback Linearization Controller)在无人机(UAV)姿态控制中被广泛应用,它可以实现对无人机的姿态进行精确控制,并具有一定的鲁棒性能。

下面是鲁棒反馈线性化控制器在无人机姿态控制中的基本原理和步骤:

系统建模:首先,需要建立无人机姿态控制的动力学模型。这可以通过欧拉角、四元数等方式来描述无人机的姿态,并根据物理原理和运动方程建立数学模型。

线性化:对系统模型进行线性化处理,以便将非线性系统转化为线性系统。可以使用泰勒级数展开或其他线性化方法来获取线性化模型。

反馈线性化:应用反馈线性化技术,将线性化后的模型引入到控制器设计中。反馈线性化可以通过状态反馈或输出反馈来实现,目的是使得系统输入与输出之间的关系满足线性条件。

控制器设计:根据线性化后的模型设计控制器。常用的方法包括经典控制理论(如PID控制器)或现代控制理论(如状态反馈控制器、最优控制器等)。在设计控制器时,可以考虑系统的鲁棒性能,以提高控制器对参数变化、外部干扰等的抗干扰能力。

参数整定:对控制器的参数进行调整和优化,以满足系统的性能要求。可以使用系统辨识方法、优化算法等进行参数整定。

实施与仿真:将设计好的鲁棒反馈线性化控制器应用于无人机姿态控制中,并通过实际实验或仿真验证其控制性能和鲁棒性。

鲁棒反馈线性化控制器能够实现对无人机的姿态进行精确控制,并对系统的不确定性和干扰具有一定的鲁棒性能。这使得它在无人机姿态控制中得到广泛应用,能够提高无人机的稳定性和控制性能。

⛄二、部分源代码

function xdot = controller2( x )
alfa1=0.9; alfa2=0.3;
delta=0.1;
kd1=6.4;kd2=6.4;kd3=6.4;
kp1=16;kp2=16;kp3=16;
beta1=100; beta2=3000; beta3=5000;

phi_c=10;teta_c=-10;psi_c=10;
%--------------------------------------------------------------------------
% Ix=12874.8;
% Iy=75673.6;
% Iz=85552.1;
% Ixz=1331.4;
Ix=22682;
Iy=77095;
Iz=95561;
Ixz=1125;
SOM=IxIz-Ixz^2;
c1=((Iy-Iz)Iz-Ixz^2)/SOM;
c2=((Ix-Iy+Iz)Ixz)/SOM;
c3=Iz/SOM;
c4=Ixz/SOM;
c5=(Iz-Ix)/Iy;
c6=Ixz/Iy;
c7=1/Iy;
c8=(Ix
(Ix-Iy)+Ixz^2)/SOM;
c9=Ix/SOM;
%--------------------------------------------------------------------------
phi=x(1);
teta=x(4);
p=x(19);
r=x(20);
q=x(21);
%--------------------------------------------------------------------------
B=[c3+c4
cosd(phi)tand(teta),c7sind(phi)tand(teta),c4+c9cosd(phi)tand(teta);
-c4
sind(phi),c7
cosd(phi),-c9sind(phi);
c4
cosd(phi)(1/cosd(teta)),c7sind(phi)(1/cosd(teta)),c9cosd(phi)(1/cosd(teta))];
phidot=p+tand(teta)
(qsind(phi)+rcosd(phi));
tetadot=qcosd(phi)-rsind(phi);
A1=((c1r+c2p)q)+(tetadot/cosd(teta)2)*(q*sind(phi)+r*cosd(phi))+tand(teta)*((c5*p*r-c6*(p2-r^2))sind(phi)+q(phidotcosd(phi))+((c8p-c2r)q)cosd(phi)-rphidotsind(phi));
A2=(c5pr-c6*(p2-r2))cosd(phi)-phidotsind(phi)q-(((c8p-c2r)q)sind(phi)+phidotcosd(phi)r);
A3=((c5
p
r-c6
(p2-r2))sind(phi)+phidotcosd(phi)q+((c8p-c2r)q)cosd(phi)-phidotsind(phi)r)cosd(teta)/cosd(teta)2+(tetadot*sind(teta)*(q*sind(phi)+r*cosd(phi)))/cosd(teta)2;
A=[A1;A2;A3];
%--------------------------------------------------------------------------
Bdot=[c4
cosd(phi)
(tand(teta)^2 + 1)tetadot - c4sind(phi)tand(teta)phidot,c7cosd(phi)tand(teta)phidot + c7sind(phi)(tand(teta)^2 + 1)tetadot,c9cosd(phi)(tand(teta)^2 + 1)tetadot - c9sind(phi)tand(teta)phidot;
-c4
cosd(phi)phidot,-c7sind(phi)phidot,-c9cosd(phi)phidot;
(c4
cosd(phi)sind(teta)tetadot)/cosd(teta)^2 - (c4sind(phi)phidot)/cosd(teta), (c7cosd(phi)phidot)/cosd(teta) + (c7sind(phi)sind(teta)tetadot)/cosd(teta)^2, (c9cosd(phi)sind(teta)tetadot)/cosd(teta)^2 - (c9sind(phi)phidot)/cosd(teta)];
%--------------------------------------------------------------------------
pp=inv(B);
L=pp(1,:)
[(kp1
phi_c-x(12))-A1;(kp2
teta_c-x(15))-A2;(kp3
psi_c-x(18))-A3];
M=pp(2,:)
[(kp1
phi_c-x(12))-A1;(kp2
teta_c-x(15))-A2;(kp3psi_c-x(18))-A3];
N=pp(3,:)
[(kp1phi_c-x(12))-A1;(kp2teta_c-x(15))-A2;(kp3psi_c-x(18))-A3];
pdot=(c1
r+c2p)q+c3L+c4N;
rdot=(c8p-c2r)q+c4L+c9N;
qdot=c5
pr-c6(p2-r2)+c7*M;

phidotdot=pdot+(tetadot/cosd(teta)^2)(qsind(phi)+rcosd(phi))+tand(teta)(qdotsind(phi)+q(phidotcosd(phi))+rdotcosd(phi)-rphidotsind(phi));
tetadotdot=qdotcosd(phi)-phidotsind(phi)q-(rdotsind(phi)+phidot*cosd(phi)*r);

A1dot=(c1rdot+c2pdot)q+qdot(c1r+c2p)+(tetadotdotcosd(teta)2+2*tetadot2sind(teta)cosd(teta))/cosd(teta)4*(q*sind(phi)+r*cosd(phi))+(qdot*sind(phi)+phidot*cosd(phi)*q+rdot*cosd(phi)-phidot*sind(phi)*r)*(tetadot/cosd(teta)2)+(tetadot/cosd(teta)2)*((c5*p*r-c6*(p2-r2))*sind(phi)+q*(phidot*cosd(phi))+((c8*p-c2*r)*q)*cosd(phi)-r*phidot*sind(phi))+((c5*p*r-c6*(p2-r^2))phidotcosd(phi)+(c5(pdotr+rdotp)-c6*(2ppdot-2rrdot))sind(phi)+(qdotphidot+phidotdotq)cosd(phi)-phidotsind(phi)qphidot+(c8pdot-c2rdot)qcosd(phi)+(qdotcosd(phi)-phidotsind(phi)q)(c8p-c2r)-((rdotphidot+phidotdotr)sind(phi)+phidotcosd(phi)rphidot))tand(teta);
A2dot=(c5
(pdot
r+rdotp)-c6(2ppdot-2rrdot))cosd(phi)-phidotsind(phi)(c5pr-c6(p2-r2))-((phidotdotq+qdotphidot)sind(phi)+phidotcosd(phi)phidotq)-(((c8pdot-c2rdot)q+qdot(c8p-c2r))sind(phi)+phidotcosd(phi)((c8p-c2r)q)+(phidotdotr+rdotphidot)cosd(phi)-phidotsind(phi)phidotr);
A3dot=((((c5*(pdotr+rdotp)-c6*(2ppdot-2rrdot))sind(phi)+phidotcosd(phi)(c5pr-c6(p2-r2))+(phidotdotcosd(phi)-phidotsind(phi)phidot)q+qdotphidotcosd(phi)+((c8pdot-c2rdot)q+qdot(c8p-c2r))cosd(phi)-phidotsind(phi)((c8p-c2r)q)-((phidotdotsind(phi)+phidotcosd(phi)phidot)r+rdotphidotsind(phi)))cosd(teta)-tetadotsind(teta)((c5pr-c6(p2-r2))sind(phi)+phidotcosd(phi)q+(c5pr-c6(p2-r2))cosd(phi)-phidotsind(phi)r))cosd(teta)2+2*tetadot*cosd(teta)*sind(teta)*((c5*p*r-c6*(p2-r2))*sind(phi)+phidot*cosd(phi)*q+((c8*p-c2*r)*q)*cosd(phi)-phidot*sind(phi)*r)*cosd(teta))/cosd(teta)4+(((tetadotdotsind(teta)+tetadotcosd(teta)tetadot)(qsind(phi)+rcosd(phi))+(qdotsind(phi)+phidotcosd(phi)q+rdotcosd(phi)-phidotsind(phi)r)tetadotsind(teta))cosd(teta)2+2*tetadot*cosd(teta)*sind(teta)*(tetadot*sind(teta)*(q*sind(phi)+r*cosd(phi))))/cosd(teta)4;
Adot=[A1dot;A2dot;A3dot];
%--------------------------------------------------------------------------
u=[L;M;N];
ppdot=[ 0, -(c4
cosd(phi)phidot)/(c42*cosd(phi)2 + c42*sind(phi)2 - c3c9
cosd(phi)^2 - c3
c9sind(phi)^2), (cosd(teta)(c9cosd(phi)2*(tand(teta)2 + 1)tetadot - c4sind(phi)phidot + c9sind(phi)2*(tand(teta)2 + 1)tetadot))/(c42*cosd(phi)2 + c42*sind(phi)2 - c3c9cosd(phi)^2 - c3c9sind(phi)^2) - (sind(teta)tetadot(c9tand(teta)cosd(phi)^2 + c4cosd(phi) + c9tand(teta)sind(phi)2))/(c42cosd(phi)^2 + c42*sind(phi)2 - c3c9cosd(phi)^2 - c3c9sind(phi)^2);
0, -(sind(phi)phidot)/(c7cosd(phi)^2 + c7sind(phi)^2), (cosd(phi)cosd(teta)phidot)/(c7cosd(phi)^2 + c7sind(phi)^2) - (sind(phi)sind(teta)tetadot)/(c7cosd(phi)^2 + c7sind(phi)^2);
0, (c3
cosd(phi)phidot)/(c42*cosd(phi)2 + c42*sind(phi)2 - c3c9cosd(phi)^2 - c3c9sind(phi)^2), (sind(teta)tetadot(c4tand(teta)cosd(phi)^2 + c3cosd(phi) + c4tand(teta)sind(phi)2))/(c42cosd(phi)^2 + c42*sind(phi)2 - c3c9cosd(phi)^2 - c3c9sind(phi)^2) - (cosd(teta)(c4cosd(phi)2*(tand(teta)2 + 1)tetadot - c3sind(phi)phidot + c4sind(phi)2*(tand(teta)2 + 1)tetadot))/(c42*cosd(phi)2 + c42*sind(phi)2 - c3c9cosd(phi)^2 - c3c9sind(phi)^2)];
v=[(kp1phi_c-x(12));(kp2teta_c-x(15));(kp3psi_c-x(18))];
%
---------------------------------
e=x(10)-x(1); %y(1)=phi y(10)=Z1_phi
e2=x(13)-x(4); %y(4)=teta y(14)=Z1_teta
e3=x(16)-x(7); %y(7)=psi y(16)=Z1_PSI
%
------
----------***-----------------
vdot=[beta3fal(e,alfa2,delta);beta3fal(e2,alfa2,delta);beta3fal(e3,alfa2,delta)];
udot=ppdot
(v-A)+pp*(vdot-Adot);
%--------------------------------------------------------------------------
xdot(1)=x(2);
%ydot(2)=A1+B(1,:)[L;M;N];
xdot(2)=x(3)+kp1
phi_c;
%ydot(3)=A1dot+Bdot(1,:)u+B(1,:)udot;
Delta_u1=x(12)+kp1
x(1)+kd1
x(2);
xdot(3)=-kp1x(2)-kd1(x(3)+kp1phi_c)-Delta_u1;
%—ESO1 Z_PHI—
xdot(10)=x(11)-beta1
e; %y(11)=Z2_phi
xdot(11)=x(12)-beta2fal(e,alfa1,delta)+kp1phi_c;%y(12)=Z3_phi
xdot(12)=-beta3*fal(e,alfa2,delta);

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]程杰, 胡琳, 黄煜. 鲁棒反馈线性化控制器的设计与应用[J]. 电力系统自动化, 2002, 26(9): 19-23.
[2]李玉峰, 张炜, 刘洪涛. 基于鲁棒反馈线性化控制器的无人机自主着陆[J]. 电子技术与软件工程, 2019, 8(09): 10-12.
[3]王晓慧, 李小军. 鲁棒反馈线性化控制器在无人机姿态控制中的应用[J]. 控制工程, 2015, 22(03): 347-350.
[4]陈慧敏, 杨晓东. 基于鲁棒反馈线性化控制器的四旋翼飞行器姿态控制[J]. 控制工程与应用, 2013, 30(02): 19

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值