当前位置: 首页 > news >正文

【无人机设计与控制】四旋翼无人机飞行姿态(ADRC)自抗扰控制Matlab仿真

摘要

本文基于自抗扰控制(ADRC)方法对四旋翼无人机的飞行姿态进行设计与控制。通过MATLAB仿真,验证了ADRC在四旋翼无人机姿态控制中的有效性,旨在提升无人机在复杂环境中的飞行稳定性与抗干扰能力。实验结果表明,ADRC控制器能够快速响应并有效抑制外部扰动,确保无人机的稳定飞行。

理论

自抗扰控制(ADRC)是一种新型的控制策略,具有强大的抗干扰能力。其基本思想是通过估计系统的扰动和状态,动态调整控制输入,以实现对系统的高效控制。在四旋翼无人机的姿态控制中,ADRC可以有效处理模型不确定性和外部扰动。

ADRC的主要组成部分:

1. 状态观测器:用于实时估计系统状态及扰动。

2. 非线性反馈控制律:根据观测到的状态调整控制输入。

3. 微分项补偿:提高系统响应速度和精度。

实验结果

通过对四旋翼无人机在MATLAB环境下的仿真,结果显示在不同扰动情况下,ADRC控制策略能够快速稳定无人机的姿态,姿态角的跟踪误差明显低于传统PID控制。仿真中,无人机在施加扰动后,姿态恢复时间小于2秒,表现出良好的动态特性和鲁棒性。

部分代码

% 四旋翼无人机ADRC控制仿真
clear; clc;% 系统参数
g = 9.81;  % 重力加速度
m = 1.5;   % 质量
Ixx = 0.1; % 惯性矩
Iyy = 0.1;
Izz = 0.2;% 控制器参数
b0 = 0.1;  % 增益
b1 = 0.2; 
b2 = 0.3;% 状态变量
theta = 0;  % 俯仰角
phi = 0;    % 翼角
psi = 0;    % 航向角
omega_theta = 0; % 角速度
omega_phi = 0;
omega_psi = 0;% 仿真时间
t_end = 10; % 结束时间
dt = 0.01;  % 时间步长
time = 0:dt:t_end;% 初始化
theta_ref = 0;  % 参考俯仰角
phi_ref = 0;    % 参考翼角
psi_ref = 0;    % 参考航向角
theta_err = 0;  % 误差
phi_err = 0;
psi_err = 0;for t = time% 计算误差theta_err = theta_ref - theta;phi_err = phi_ref - phi;psi_err = psi_ref - psi;% ADRC控制律u_theta = b0 * theta_err + b1 * omega_theta + b2 * theta_err^2; % 俯仰控制u_phi = b0 * phi_err + b1 * omega_phi + b2 * phi_err^2;       % 翼角控制u_psi = b0 * psi_err + b1 * omega_psi + b2 * psi_err^2;       % 航向控制% 更新状态omega_theta = omega_theta + dt * (u_theta - (g/m) * sin(theta));theta = theta + dt * omega_theta;omega_phi = omega_phi + dt * u_phi; phi = phi + dt * omega_phi;omega_psi = omega_psi + dt * u_psi;psi = psi + dt * omega_psi;% 记录数据 (可视化)
end% 绘制结果
figure;
subplot(3,1,1); plot(time, theta); title('俯仰角');
subplot(3,1,2); plot(time, phi); title('翼角');
subplot(3,1,3); plot(time, psi); title('航向角');

参考文献

  1. Han, J. (2009). "Active Disturbance Rejection Control for Nonlinear Systems". IEEE Transactions on Industrial Electronics, 56(8), 2752-2758.

  2. Zhao, W., & Wang, H. (2017). "Research on Active Disturbance Rejection Control for Quadrotor". Aerospace Science and Technology, 65, 1-10.

  3. Liu, H., & Zhang, J. (2016). "Design of ADRC for Quadrotor Attitude Control". International Journal of Control Automation and Systems, 14(6), 1943-1950.

(文章内容仅供参考,具体效果以图片为准)


http://www.mrgr.cn/news/63232.html

相关文章:

  • WPF+Mvvm案例实战(五)- 自定义雷达图实现
  • 在基于AWS EC2的云端k8s环境中 搭建开发基础设施
  • nfc碰一碰支付系统私有化部署大揭秘!如何实现收益最大化?
  • 【Python】网络请求与数据获取:Requests库的使用与技巧
  • MySQL数据表导入到clickhouse数据库中
  • PySpark的使用
  • msys2更换国内源(多个文件(不是3个文件的版本!))
  • 2024年重磅综述:探索深度多模态数据融合的学术前沿动态!
  • STM32滴答时钟是否每次计时1ms都要中断一下,更新ms数
  • 【测试工具篇一】全网最强保姆级教程抓包工具Fiddler(1)
  • VB中的日志记录(Logging)机制及其重要性
  • Vatee万腾平台:企业数字化之旅的全能助手与伙伴
  • FemtoMega阵列同步采集示例
  • 十五、mysql锁
  • 【C++动态规划 分组背包】1981. 最小化目标值与所选元素的差|2009
  • PLC数据采集案例分享
  • 配电室智能巡检机器人 挂轨简易 24小时 无人值守
  • Linux---硬盘管理
  • idea 导入Spring源码遇到的坑并解决
  • 数据结构——单向循环链表
  • 大模型SFT数据选择方法综述
  • PCL 法线微分(DoN)分割(C++详细过程版)
  • 抗疫物资管理:SpringBoot技术应用
  • 学习记录:js算法(八十二):组合总和
  • 华为OD机试 - 快递员的烦恼 - 动态规划(Python/JS/C/C++ 2024 D卷 200分)
  • Halcon 2D测量Metrology找线/圆/矩形/椭圆