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

“在代码的海洋里,有无尽的知识等待你去发现。我就是那艘领航的船,带你乘风破浪,驶向代码的彼岸。

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

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

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

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现

💥1 概述

四旋翼无人机的PD(Proportional-Derivative)控制是一种常用的控制策略,用于稳定和控制无人机的姿态和位置。PD控制器是比例-微分控制器的简称,它是PID控制器(比例-积分-微分控制器)的一个子集,主要用于需要快速响应和抑制高频噪声的应用场景。

PD控制器原理:

PD控制器通过计算误差的比例项(P)和误差变化率的微分项(D)来调整控制输出。比例项直接与当前误差成正比,帮助系统快速响应偏差;而微分项则基于误差的变化率,有助于减少超调并改善系统的动态性能,使系统对干扰更加鲁棒。

四旋翼无人机的PD控制:

在四旋翼无人机的控制中,PD控制器通常用于内环控制,即姿态控制,包括横滚(Roll)、俯仰(Pitch)和偏航(Yaw)角度的控制。外环通常是位置控制,它会给出姿态控制的目标值。PD控制器的输出直接影响到四旋翼无人机的电机转速,进而调整旋翼的升力,实现对无人机飞行姿态的控制。

📚2 运行结果

主函数部分代码:

clc
clear
close all
% Time---------------------------------------------------------------------
tf=10;
N=999*tf;
Nt=tf/N;
t=0:tf/N:tf;
% Final condition----------------------------------------------------------
xi_1_des=[-2;3;5];
dxi_1_des=[0;0;0];
dxi_2_des=[0;0;0];
psi_des=0;
% Control parameters-------------------------------------------------------
KpT=eye(3);
KdT=2*eye(3);
KpO=eye(3);
KdO=0.5*eye(3);
% Parameters---------------------------------------------------------------
L=0.2098;                           % distance between motor and CoM of quadrotor (m)
R=0.239/2;                          % radius of propeller (m)
thickness=0.03;                     % thickness of rotating propeller (m)
Ixx=0.036;                          % kgm^2
Iyy=0.036;                          % kgm^2
Izz=0.061;                          % kgm^2
m_body=1.298;                       % kg
m_battery=0.3165;                   % kg
m=m_body+m_battery;                 % kg
g0=9.81;                            % m/s^2
D=diag([0.25,0.25,0.5]);            % drag matrix kg/s
k=2.98*10^-6;                       % lift constant - thrust factor (Ns^2/rad^2)
d=1.14*10^-7;                       % drag constant (Nms^2/rad^2)
omega_0=sqrt(m*g0/k/4);
omega_max=1.1*omega_0;              % rad/s
omega_min=0.9*omega_0;              % rad/s
% Initial condition--------------------------------------------------------
xc_0=0;
yc_0=0;
zc_0=0;
phi_0=0;
theta_0=0;
psi_0=0;
u_0=0;
v_0=0;
w_0=0;
p_0=0;
q_0=0;
r_0=0;
q0=[xc_0;yc_0;zc_0;phi_0;theta_0;psi_0];
dq0=[u_0;v_0;w_0;p_0;q_0;r_0];
x0=[q0;dq0];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:length(t)

🎉3 参考文献

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

[1]孙悦,盖玉林,陈明,等.带虚拟控制律饱和的四旋翼无人机姿态跟踪控制[J/OL].控制工程:1-9[2024-07-12].https://doi.org/10.14107/j.cnki.kzgc.20240139.

[2]白晓晖,赵林.四旋翼无人机的有限时间输出反馈姿态跟踪控制[J].自动化与仪表,2024,39(06):49-56+61.DOI:10.19557/j.cnki.1001-9944.2024.06.011.

🌈4 Matlab代码实现

图片

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值