1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZJmVmJly
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
四旋翼飞行器由于其飞行动力来自四个相互独立的电机,因此四旋翼飞行器也被称为四轴飞行器。通过四个电机可以快速实现四旋翼飞行器的起降,任意高度的控制悬停,翻滚飞行以及小曲率转弯等飞行功能。
4.部分源码
........................................................
SEL = 3;
if SEL == 1
load data.mat
time11 = A.time;
Roll_des1 = A.signals(1).values;
Pitch_des1 = A.signals(2).values;
Yaw_des1 = A.signals(3).values;
load data0.mat
time10 = A.time;
Roll_des0 = A.signals(1).values;
Pitch_des0 = A.signals(2).values;
Yaw_des0 = A.signals(3).values;
figure;
plot(time10(1:10:end),Roll_des0(1:10:end),'b','linewidth',2);
hold on
plot(time11,Roll_des1,'r','linewidth',2);
xlabel('times');
ylabel('Roll');
legend('PID控制器','内外环PD控制器');
grid on
figure;
plot(time10(1:10:end),Pitch_des0(1:10:end),'b','linewidth',2);
hold on
plot(time11,Pitch_des1,'r','linewidth',2);
xlabel('times');
ylabel('Pitch');
legend('PID控制器','内外环PD控制器');
grid on
end
if SEL == 3
load data.mat
time1 = E.time;
x1 = E.signals(1).values;
y1 = E.signals(2).values;
z1 = E.signals(3).values;
load data0.mat
time0 = E.time;
x0 = E.signals(1).values;
y0 = E.signals(2).values;
z0 = E.signals(3).values;
figure;
plot(time0(1:10:end),x0(1:10:end),'b','linewidth',2);
hold on
plot(time1,x1,'r','linewidth',2);
xlabel('times');
ylabel('x');
legend('PID控制器','内外环PD控制器');
grid on
figure;
plot(time0(1:10:end),y0(1:10:end),'b','linewidth',2);
hold on
plot(time1,y1,'r','linewidth',2);
xlabel('times');
ylabel('y');
legend('PID控制器','内外环PD控制器');
grid on
figure;
plot(time0(1:10:end),z0(1:10:end),'b','linewidth',2);
hold on
plot(time1,z1,'r','linewidth',2);
xlabel('times');
ylabel('z');
legend('PID控制器','内外环PD控制器');
grid on
figure;
plot3(x0,y0,z0,'b','linewidth',2);
hold on
plot3(x1,y1,z1,'r','linewidth',2);
legend('PID控制器','内外环PD控制器');
xlabel('x');
ylabel('y');
zlabel('z');
grid on
end
if SEL ==2
load data0.mat
time0 = F.time;
fai0 = F.signals(1).values;
theta0 = F.signals(2).values;
psi0 = F.signals(3).values;
load data.mat
time1 = F.time;
fai1 = F.signals(1).values;
theta1 = F.signals(2).values;
psi1 = F.signals(3).values;
figure;
plot(time0(1:10:end),fai0(1:10:end),'b','linewidth',2);
hold on
plot(time1,fai1,'r','linewidth',2);
xlabel('times');
ylabel('横滚角');
legend('PID控制器','内外环PD控制器');
grid on
figure;
plot(time0(1:10:end),theta0(1:10:end),'b','linewidth',2);
hold on
plot(time1,theta1,'r','linewidth',2);
xlabel('times');
ylabel('俯仰角');
legend('PID控制器','内外环PD控制器');
grid on
figure;
plot(time0(1:10:end),psi0(1:10:end),'b','linewidth',2);
hold on
plot(time1,psi1,'r','linewidth',2);
legend('PID控制器','内外环PD控制器');
xlabel('times');
ylabel('偏航角');
grid on
end
08_081_m