m基于内外环PD控制算法的四旋翼无人机飞行控制simulink仿真

简介: m基于内外环PD控制算法的四旋翼无人机飞行控制simulink仿真

1.算法仿真效果
matlab2022a仿真结果如下:

0da7370d93358f16d02f5713ae34e0d2_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
a9d7590ec60360c45e207ff883b981c6_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
8e82e04f434b41bddbf45e01dc9ca5a9_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
be1123b9cf981552332700f1544cc5e7_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

2.算法涉及理论知识概要
随着无人飞行器技术的不断发展,其在各个领域有着越来越多的应用,如商业领域通过无人机进行物件派送,在农业领域通过无人机进行农作物的监控,在军事领域通过无人机进行敌情监控等。无人机相对于载人飞机而言,最大的区别是其无人驾驶和自动飞行功能,由于飞行器省去了飞行员的质量,因此其质量较轻,可以充分利用空气动力来抵消大部分自身重量。

   四旋翼飞行器由于其飞行动力来自四个相互独立的电机,因此四旋翼飞行器也被称为四轴飞行器。通过四个电机可以快速实现四旋翼飞行器的起降,任意高度的控制悬停,翻滚飞行以及小曲率转弯等飞行功能。图给出了四旋翼飞行器的实物图和数学模型简化图。

918b8b5234d5fa6c4f758084f060bb1e_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

    四旋翼飞行器的四个电机为十字型等间隔分布。其中第一个电机和第三个电机选择方向为顺时针旋转,第二个电机和第四个电机选择方向为逆时针旋转。通过这四个电机可以给四旋翼飞行器产生四个上升动力,此外也可以通过改变四个电机的旋转速度,是的无人机产生各种不同的飞行动作。如果要保证四旋翼飞行器的飞行状态为悬停状态,那么只要保证四个电机的选择速度相同,且保证四个电机产生的动力和飞行器自身的重力相同就可以实现;如果四个电机产生的动力大于飞行器自身的重量,那么飞行器将上升;如果四个电机产生的动力小于飞行器自身的重量,那么飞行器将下降。如果其中2个电机产生的动力较大,2个电机产生的动力较小,那么飞行器将出现角度切斜的飞行状态。

b089df0e0059702852d1fd633ab9a71a_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
bb9a20de727027c7287a8b57e0256dbe_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

   一种基于内外环的四旋翼飞行器的PD控制系统,将四旋翼飞行器的位置控制系统作为外环控制环节,将四旋翼飞行器的姿态控制系统作为内环控制环节。下面对该控制系统的基本原理和实现方式进行介绍,基于内外环的四旋翼飞行器的PD控制的基本结构如下图所示: 

555cce4c3179ac3891cecb46a8980b94_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

  四旋翼飞行器是无人机中较为常用的一个机种,其具有垂直起飞和降落的功能,其可以在各种复杂地形中进行飞行和起降,随着无人飞行器技术的不断发展,四旋翼飞行器有着越来越多的应用,如农业,商业,军事等多个领域。相对于传统的固定翼飞行器,四旋翼飞行器具有诸多优势,其可靠性较高,机动性较高,使用成本较低。四旋翼飞行器是一种非线性极强的系统。其涉及了多个学科的新的研究领域,包括物理、机械、数学、电力电子、控制算法、传感器、无线通信、数字图像采集等多个领域。

    PID控制器是一种应用及其广发的控制系统,其包括比例控制器,微分控制器以及积分控制三个部分构成,然后通过MATLAB仿真分析了PID控制器中比例参数,微分参数以及积分参数对控制器的影响。当控制反馈误差较大的时候,可以逐渐增加比例参数,适度的减少微分控制参数,并将积分控制可以设置一个较小值甚至为零。当控制反馈误差适中的时候,设置较小的比例参数,同时适当的增加积分参数。当控制反馈误差较小的时候,此时需要设置较大的比例系数和积分系数,并且根据系统的稳定性情况,合理设置微分控制参数。最后介绍了一种基于内外环PD控制器的的四旋翼飞行器控制系统,该控制系统包括位置控制模块,姿态位置转换模块,姿态控制模块,升力反解计算模块以及四旋翼飞行器模块。

3.MATLAB核心程序

c1e94fe8643841212abd3d06d513cd2f_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

```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
```

相关文章
|
3天前
|
机器学习/深度学习 算法
基于遗传优化的双BP神经网络金融序列预测算法matlab仿真
本项目基于遗传优化的双BP神经网络实现金融序列预测,使用MATLAB2022A进行仿真。算法通过两个初始学习率不同的BP神经网络(e1, e2)协同工作,结合遗传算法优化,提高预测精度。实验展示了三个算法的误差对比结果,验证了该方法的有效性。
|
5天前
|
机器学习/深度学习 数据采集 算法
基于PSO粒子群优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目展示了基于PSO优化的CNN-GRU-SAM网络在时间序列预测中的应用。算法通过卷积层、GRU层、自注意力机制层提取特征,结合粒子群优化提升预测准确性。完整程序运行效果无水印,提供Matlab2022a版本代码,含详细中文注释和操作视频。适用于金融市场、气象预报等领域,有效处理非线性数据,提高预测稳定性和效率。
|
2天前
|
算法
基于梯度流的扩散映射卡尔曼滤波算法的信号预处理matlab仿真
本项目基于梯度流的扩散映射卡尔曼滤波算法(GFDMKF),用于信号预处理的MATLAB仿真。通过设置不同噪声大小,测试滤波效果。核心代码实现数据加载、含噪信号生成、扩散映射构建及DMK滤波器应用,并展示含噪与无噪信号及滤波结果的对比图。GFDMKF结合非线性流形学习与经典卡尔曼滤波,提高对非线性高维信号的滤波和跟踪性能。 **主要步骤:** 1. 加载数据并生成含噪测量值。 2. 使用扩散映射捕捉低维流形结构。 3. 应用DMK滤波器进行状态估计。 4. 绘制不同SNR下的轨迹示例。
|
6天前
|
机器学习/深度学习 算法 索引
单目标问题的烟花优化算法求解matlab仿真,对比PSO和GA
本项目使用FW烟花优化算法求解单目标问题,并在MATLAB2022A中实现仿真,对比PSO和GA的性能。核心代码展示了适应度计算、火花生成及位置约束等关键步骤。最终通过收敛曲线对比三种算法的优化效果。烟花优化算法模拟烟花爆炸过程,探索搜索空间,寻找全局最优解,适用于复杂非线性问题。PSO和GA则分别适合快速收敛和大解空间的问题。参数调整和算法特性分析显示了各自的优势与局限。
|
8天前
|
算法
基于EO平衡优化器算法的目标函数最优值求解matlab仿真
本程序基于进化优化(EO)中的平衡优化器算法,在MATLAB2022A上实现九个测试函数的最优值求解及优化收敛曲线仿真。平衡优化器通过模拟生态系统平衡机制,动态调整搜索参数,确保种群多样性与收敛性的平衡,高效搜索全局或近全局最优解。程序核心为平衡优化算法,结合粒子群优化思想,引入动态调整策略,促进快速探索与有效利用解空间。
|
9天前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
140 80
|
28天前
|
算法
基于WOA算法的SVDD参数寻优matlab仿真
该程序利用鲸鱼优化算法(WOA)对支持向量数据描述(SVDD)模型的参数进行优化,以提高数据分类的准确性。通过MATLAB2022A实现,展示了不同信噪比(SNR)下模型的分类误差。WOA通过模拟鲸鱼捕食行为,动态调整SVDD参数,如惩罚因子C和核函数参数γ,以寻找最优参数组合,增强模型的鲁棒性和泛化能力。
|
2月前
|
机器学习/深度学习 算法 Serverless
基于WOA-SVM的乳腺癌数据分类识别算法matlab仿真,对比BP神经网络和SVM
本项目利用鲸鱼优化算法(WOA)优化支持向量机(SVM)参数,针对乳腺癌早期诊断问题,通过MATLAB 2022a实现。核心代码包括参数初始化、目标函数计算、位置更新等步骤,并附有详细中文注释及操作视频。实验结果显示,WOA-SVM在提高分类精度和泛化能力方面表现出色,为乳腺癌的早期诊断提供了有效的技术支持。
|
14天前
|
供应链 算法 调度
排队算法的matlab仿真,带GUI界面
该程序使用MATLAB 2022A版本实现排队算法的仿真,并带有GUI界面。程序支持单队列单服务台、单队列多服务台和多队列多服务台三种排队方式。核心函数`func_mms2`通过模拟到达时间和服务时间,计算阻塞率和利用率。排队论研究系统中顾客和服务台的交互行为,广泛应用于通信网络、生产调度和服务行业等领域,旨在优化系统性能,减少等待时间,提高资源利用率。
|
22天前
|
存储 算法
基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真
本项目基于HMM模型实现金融数据预测,包括模型训练与预测两部分。在MATLAB2022A上运行,通过计算状态转移和观测概率预测未来值,并绘制了预测值、真实值及预测误差的对比图。HMM模型适用于金融市场的时间序列分析,能够有效捕捉隐藏状态及其转换规律,为金融预测提供有力工具。

热门文章

最新文章