【无人机】四旋翼飞行器PD控制(Matlab实现)

简介: 【无人机】四旋翼飞行器PD控制(Matlab实现)

 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

💥1 概述

四旋翼飞行器是一种受到广泛应用的无人飞行器,其飞行稳定性和控制是实现各种任务的关键。PD(比例-微分)控制是一种常用的控制算法,用于稳定四旋翼飞行器的姿态(姿态角和角速度)。PD控制器由两部分组成:比例(P)和微分(D)部分。比例部分负责根据当前误差(期望值与实际值之间的差异)产生控制输出,其大小与误差成正比。微分部分则根据误差的变化率来调整控制输出,用于抑制系统的震荡和提高响应速度。综合考虑比例和微分部分的影响,PD控制器能够实现快速而稳定的系统响应。在四旋翼飞行器中,PD控制器通常用于控制姿态,即飞行器的倾斜角度和角速度,以实现期望的飞行姿态。通过测量飞行器的姿态和角速度,并与期望值进行比较,PD控制器可以生成适当的控制指令,通过调节电机的转速来稳定飞行器并实现期望的飞行动作。四旋翼飞行器PD控制通过比例和微分控制器的组合,能够实现稳定而高效的飞行姿态控制,为各种应用场景提供了可靠的飞行控制方案。

四旋翼飞行器PD控制研究

摘要

本文研究了四旋翼飞行器的PD(比例-微分)控制策略,通过建立四旋翼无人机的动力学模型,设计了位置与姿态解耦的PD控制器,并利用MATLAB仿真平台对其性能进行了建模、实现与验证。仿真结果表明,PD控制器能够有效实现对四旋翼无人机位置和姿态的稳定控制,为更高级的控制策略研究奠定了基础。

1. 引言

四旋翼无人机作为一种具有垂直起降、悬停以及高机动性特点的微小型飞行器,在军事、民用以及科研领域展现出巨大的应用潜力。然而,四旋翼无人机本质上是一个非线性、强耦合、欠驱动的多输入多输出(MIMO)系统,其在飞行过程中容易受到外部扰动(如风)的影响,这对控制系统的设计提出了极高的要求。为了实现四旋翼无人机的稳定悬停、精确跟踪预设轨迹以及抗扰动能力,需要设计高效可靠的飞行控制算法。PD控制作为一种经典的控制策略,因其结构简单、易于实现且鲁棒性较好,被广泛应用于四旋翼无人机的控制中。

2. 四旋翼无人机动力学模型

2.1 坐标系定义

  • 惯性坐标系:原点固定在地面,Z轴垂直向上。
  • 机体坐标系:原点位于无人机的重心,轴与机体的对称轴对齐。

2.2 动力学方程

根据牛顿-欧拉方程,四旋翼无人机的动力学模型可分解为平移运动和旋转运动两部分:

  • 平移运动:在惯性坐标系下描述,考虑无人机的质量、重力以及螺旋桨产生的升力。
  • 旋转运动:在机体坐标系下描述,考虑无人机的转动惯量以及螺旋桨产生的力矩。

2.3 模型简化假设

  • 无人机是一个刚体。
  • 螺旋桨产生的拉力与电机转速的平方成正比。
  • 机体质量均匀分布。

3. PD控制器设计

3.1 控制策略

采用分层控制或解耦控制的思想设计控制器,将姿态控制作为内环,位置控制作为外环。PD控制器在控制误差和误差变化率的基础上产生控制量,适用于对快速响应和抑制超调有一定要求的系统。

3.2 PD控制器原理

PD控制器由比例(P)和微分(D)两部分组成:

  • 比例部分:根据当前误差(期望值与实际值之间的差异)产生控制输出,其大小与误差成正比。
  • 微分部分:根据误差的变化率来调整控制输出,用于抑制系统的震荡和提高响应速度。

3.3 控制器实现

在MATLAB/Simulink中搭建四旋翼无人机的动力学模型,并设计PD控制器。控制器接收期望位置和当前位置作为输入,输出期望的姿态角和总升力;同时接收期望姿态角和当前姿态角作为输入,输出三个控制力矩。

4. MATLAB仿真验证

4.1 仿真参数设置

  • 设置无人机的物理参数(质量、惯性矩阵、拉力系数、反扭矩系数等)。
  • 设置控制器的初始增益。
  • 设置仿真时间和步长。
  • 给定期望的轨迹或目标点。

4.2 仿真场景

  • 悬停控制:观察无人机从初始状态逐渐趋近并稳定在期望悬停点。
  • 轨迹跟踪:设置期望轨迹(如直线、圆周或螺旋线),观察无人机是否能够准确地跟踪期望轨迹。
  • 抗扰动能力:在仿真模型中加入外部扰动(如模拟风力),观察无人机在受到扰动时PD控制器的性能。

4.3 仿真结果分析

  • 悬停控制:合适的PD增益能够使无人机在较短时间内达到稳定状态,且具有较小的超调和稳态误差。微分项的存在有助于抑制因比例项引起的振荡。
  • 轨迹跟踪:PD控制器在轨迹跟踪方面的性能取决于其对误差和误差变化率的响应速度。对于快速变化的轨迹,单纯的PD控制可能存在一定的滞后。
  • 抗扰动能力:PD控制器的抗扰动能力主要取决于其对误差变化率的响应。微分增益越大,对扰动的抑制能力越强,但也可能对噪声更敏感。

5. PD控制器参数调节

5.1 参数调节方法

PD控制器的性能严重依赖于比例增益(Kp)和微分增益(Kd)的选取。参数调节是一个迭代优化的过程,可以通过试凑法、Ziegler-Nichols法或其他优化算法进行。

5.2 参数调节策略

  • 先调内环(姿态控制):单独调节姿态控制器的增益,使其能够快速稳定地跟踪期望姿态。
  • 再调外环(位置控制):在姿态控制器稳定的基础上调节位置控制器的增益,使其能够快速准确地跟踪期望位置。

5.3 参数影响分析

  • 比例增益(Kp):增加Kp可以提高系统的响应速度,减小稳态误差,但也可能导致超调和振荡。
  • 微分增益(Kd):增加Kd可以抑制振荡,提高系统的稳定性,但可能降低响应速度。

6. 结论与展望

6.1 研究结论

通过MATLAB仿真验证,PD控制器能够有效实现对四旋翼无人机位置和姿态的稳定控制。合适的PD增益能够使无人机在较短时间内达到稳定状态,且具有较小的超调和稳态误差。微分项的存在有助于抑制振荡,提高系统的稳定性。

6.2 研究展望

  • 结合机器学习:利用机器学习(如强化学习)在线优化PD参数,适应复杂动态场景(如高速飞行、负载变化)。
  • 与非线性控制方法结合:在大角度机动时保持PD控制的简洁性与非线性控制的全局稳定性。
  • 轻量化PD控制算法:针对微型四旋翼(如200g以下)开发轻量化PD控制算法,在算力受限的情况下平衡控制精度与能耗。

📚2 运行结果

image.gif 编辑

image.gif 编辑

image.gif 编辑

image.gif 编辑

image.gif 编辑 image.gif 编辑

主函数部分代码:

clc
clear all
close all
global Jtp Ixx Iyy Izz b d l m g Kpz Kdz Kpp Kdp Kpt Kdt Kpps Kdps ZdF PhidF ThetadF PsidF ztime phitime thetatime psitime Zinit Phiinit Thetainit Psiinit Uone Utwo Uthree Ufour Ez Ep Et Eps
% Read the gain values
GainsK = importdata('Gains.mat');
Kpz = GainsK(1,1);  % Height P controller
Kdz = GainsK(1,2);  % Height D controller
Kpp = GainsK(1,3);  % Roll P controller
Kdp = GainsK(1,4);  % Roll D controller
Kpt = GainsK(1,5);  % Pitch P controller
Kdt = GainsK(1,6);  % Pitch D controller
Kpps = GainsK(1,7);  % Yaw P controller
Kdps = GainsK(1,8);  % Yaw D controller
% 
% % % Best Gains of the controllers
% 
% Kpp = 30
% Kdp = 5
% 
% Kpt = 30
% Kdt = 5
% 
% Kpps = 30
% Kdps = 5
% 
% Kpz = 40
% Kdz = 12
% % save gains data
% Gains = [Kpz Kdz Kpp Kdp Kpt Kdt Kpps Kdps];
% save('Gains.mat','Gains') % Write the optimal gains in a .mat file
% Quadrotor constants
Ixx = 8.1*10^(-3);  % Quadrotor moment of inertia around X axis
Iyy = 8.1*10^(-3);  % Quadrotor moment of inertia around Y axis
Izz = 14.2*10^(-3);  % Quadrotor moment of inertia around Z axis
Jtp = 104*10^(-6);  % Total rotational moment of inertia around the propeller axis
b = 54.2*10^(5-6);  % Thrust factor
d = 1.1*10^(-6);  % Drag factor
l = 0.24;  % Distance to the center of the Quadrotor
m = 1;  % Mass of the Quadrotor in Kg
g = 9.81;   % Gravitational acceleration
stepsize = 0.01;
t = 0.00000000000000:stepsize:5.00000000000000; % simulation time
% Initial conditions for the Quadrotor
x0 = [];
for i = 1:12,
    x0 = [x0;0];    % Initial position is the origin O(0,0,0), linear and angular velocities/accelerations = 0
end
% Initial values
Zinit = 0;
Phiinit = pi/3;
Thetainit = pi/2;
Psiinit = -pi/5;
x0(1) = 3; % Xinit
x0(3) = 4; % Yinit
x0(5) = Zinit; % Zinit
x0(7) = Phiinit; % Phiinit
x0(9) = Thetainit; % Thetainit
x0(11) = Psiinit; % Psiinit

image.gif

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]杨瑞,李国洪,李智,等.基于改进蜣螂优化算法的四旋翼自切换控制[J/OL].天津理工大学学报:1-8[2024-06-09].http://kns.cnki.net/kcms/detail/12.1374.n.20240430.0926.014.html.

[2]黄捷,李泽毅.四旋翼无人机编队变换能耗优化仿真教学[J].实验技术与管理,2024,41(04资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取【请看主页然后私信】

相关文章
|
15天前
|
机器学习/深度学习 算法 安全
【无人机三维路径规划】基于非支配排序的鲸鱼优化算法NSWOA与多目标螳螂搜索算法MOMSA求解无人机三维路径规划研究(Matlab代码实现)
【无人机三维路径规划】基于非支配排序的鲸鱼优化算法NSWOA与多目标螳螂搜索算法MOMSA求解无人机三维路径规划研究(Matlab代码实现)
|
18天前
|
传感器 算法 安全
具有飞行约束的无人机MPC模型预测控制研究(Matlab代码实现)
具有飞行约束的无人机MPC模型预测控制研究(Matlab代码实现)
|
11天前
|
传感器 机器学习/深度学习 算法
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
|
17天前
|
机器学习/深度学习 算法 安全
【无人机三维路径规划】多目标螳螂搜索算法MOMSA与非支配排序的鲸鱼优化算法NSWOA求解无人机三维路径规划研究(Matlab代码实现)
【无人机三维路径规划】多目标螳螂搜索算法MOMSA与非支配排序的鲸鱼优化算法NSWOA求解无人机三维路径规划研究(Matlab代码实现)
|
24天前
|
传感器 算法 安全
【四旋翼飞行器】【模拟悬链机器人的动态】设计和控制由两个四旋翼飞行器推动的缆绳研究(Matlab代码实现)
【四旋翼飞行器】【模拟悬链机器人的动态】设计和控制由两个四旋翼飞行器推动的缆绳研究(Matlab代码实现)
|
18天前
|
算法 安全 定位技术
【创新未发表】【无人机路径巡检】三维地图路径规划无人机路径巡检GWO孙发、IGWO、GA、PSO、NRBO五种智能算法对比版灰狼算法遗传研究(Matlab代码实现)
【创新未发表】【无人机路径巡检】三维地图路径规划无人机路径巡检GWO孙发、IGWO、GA、PSO、NRBO五种智能算法对比版灰狼算法遗传研究(Matlab代码实现)
100 40
|
13天前
|
算法 安全 定位技术
基于改进拥挤距离的多模态多目标优化差分进化(MMODE-ICD)求解无人机三维路径规划研究(Matlab代码实现)
基于改进拥挤距离的多模态多目标优化差分进化(MMODE-ICD)求解无人机三维路径规划研究(Matlab代码实现)
|
13天前
|
传感器 资源调度 算法
基于无迹卡尔曼滤波(UKF)与模型预测控制(MPC)的多无人机避撞研究(Matlab代码实现)
基于无迹卡尔曼滤波(UKF)与模型预测控制(MPC)的多无人机避撞研究(Matlab代码实现)
|
17天前
|
机器学习/深度学习 并行计算 算法
【无人机避障三维航迹规划】基于人工原生动物优化器APO的复杂城市地形下无人机避障三维航迹规划研究(可以修改障碍物及起始点)(Matlab代码实现)
【无人机避障三维航迹规划】基于人工原生动物优化器APO的复杂城市地形下无人机避障三维航迹规划研究(可以修改障碍物及起始点)(Matlab代码实现)
111 3
|
18天前
|
传感器 算法 安全
【无人机集群路径规划】基于红嘴蓝鹊优化器(RBMO)求解无人机集群路径规划研究(Matlab代码实现)
【无人机集群路径规划】基于红嘴蓝鹊优化器(RBMO)求解无人机集群路径规划研究(Matlab代码实现)

热门文章

最新文章