【无人机设计与技术】自抗扰控制(ADRC)的建模与仿真研究

摘要

本文针对四旋翼无人机姿态控制系统进行了基于自抗扰控制(ADRC)的建模与仿真研究。通过MATLAB/Simulink仿真平台,实现了无人机的姿态控制模型,并采用自抗扰控制器(ADRC)对无人机的姿态进行控制。本文详细介绍了自抗扰控制器的设计方法和应用,通过对无人机的俯仰角、滚转角和偏航角的控制,验证了ADRC控制器在四旋翼无人机系统中的高效性和鲁棒性。仿真结果表明,ADRC控制器能够在不同扰动条件下保持系统的稳定性和快速响应。

理论

四旋翼无人机的动力学与运动学模型

四旋翼无人机的动力学模型基于牛顿-欧拉方程,其描述了旋翼产生的推力和力矩作用下无人机的运动特性。动力学方程如下:

[ m \ddot{r} = R F - mg ]

[ I \dot{\omega} = \tau - \omega \times I \omega ]

其中,(m) 为无人机质量,(R) 为旋转矩阵,(F) 为总推力,(\omega) 为角速度,(I) 为惯性矩阵,(\tau) 为力矩。

自抗扰控制器(ADRC)

ADRC 是一种非线性控制方法,通过扩张状态观测器(ESO)实时估计系统状态及外部扰动,并通过非线性误差反馈控制(NLSEF)来补偿系统中的不确定性。自抗扰控制的核心部分包括:

  1. 扩张状态观测器(ESO):用于实时观测系统状态和外部扰动,更新后的状态用于补偿未知扰动。

  2. 非线性误差反馈(NLSEF):通过对误差的非线性函数计算输出,增强系统的动态性能。

ADRC 控制器设计可以分为三个环节:

  1. 跟踪微分器(TD):对期望轨迹进行平滑处理。

  2. 扩张状态观测器(ESO):估计系统状态及外界扰动。

  3. 非线性状态误差反馈(NLSEF):基于ESO估计的状态进行非线性反馈控制。

实验结果

通过MATLAB/Simulink仿真平台,对无人机姿态控制进行了测试,分别验证了系统在俯仰、滚转和偏航角控制中的表现。

  1. 连续型ADRC控制仿真:系统响应曲线表明,ADRC控制器在俯仰角、滚转角和偏航角控制中的表现快速、平稳,具有较好的动态特性和稳态性能。

  2. 离散型ADRC控制仿真:与连续型相比,离散型ADRC控制器在数字化控制中的响应同样迅速,能够有效应对突加扰动,保持系统的稳定性。

仿真结果显示,无论在连续控制还是离散控制中,ADRC控制器都能够在较短时间内使系统稳定,且具有较强的抗扰动能力。

部分代码

以下为ADRC姿态控制的部分MATLAB代码:

% 初始化参数
m = 1.5;  % 无人机质量
g = 9.81; % 重力加速度% ADRC控制器参数
beta1_yaw = 30; beta2_yaw = 300; beta3_yaw = 1000;
beta1_pitch = 150; beta2_pitch = 300; beta3_pitch = 1000;
beta1_roll = 180; beta2_roll = 120; beta3_roll = 1000;% 控制器设计
sim_time = 20;  % 仿真时间
yaw_ref = 5;    % 偏航角参考值
pitch_ref = 3;  % 俯仰角参考值
roll_ref = 2;   % 滚转角参考值% 调用Simulink仿真模型
sim('quadcopter_ADRC_model');% 绘制结果
figure;
subplot(3,1,1);
plot(tout, yaw_response, 'r', 'LineWidth', 2);
title('偏航角控制响应');
xlabel('时间(s)');
ylabel('角度(°)');subplot(3,1,2);
plot(tout, pitch_response, 'b', 'LineWidth', 2);
title('俯仰角控制响应');
xlabel('时间(s)');
ylabel('角度(°)');subplot(3,1,3);
plot(tout, roll_response, 'g', 'LineWidth', 2);
title('滚转角控制响应');
xlabel('时间(s)');
ylabel('角度(°)');

参考文献

  1. Han, J. (2009). Auto-Disturbance-Rejection Control Technique. Control Theory and Applications, 30(12), 1553-1564.

  2. Gao, Z. (2006). Scaling and Bandwidth-Parameterization Based Controller Tuning. Proceedings of the American Control Conference, 4989-4996.

  3. Bouabdallah, S., Murrieri, P., & Siegwart, R. (2004). Design and Control of an Indoor Micro Quadrotor. Proceedings of the IEEE International Conference on Robotics and Automation.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1552414.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

力扣题解 983

大家好,欢迎来到无限大的判断,祝大家国庆假期愉快 题目描述(中等) 最低票价 在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出…

餐饮重点企业在AI领域的布局,看方大的AI实践

大家好,我是Shelly,一个专注于输出AI工具和科技前沿内容的AI应用教练,体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具,拥抱AI时代的到来。 AI已经被应用在餐饮餐厨行业的哪些方面&am…

叶绿素透射反射率与波长

本文在分析巢湖水体反射光谱特征的基础上,通过对光谱反射率与叶绿素a 的浓度之间的关系进行分析研究,结果表明,单波段光谱反射率与叶绿素a浓度的相关系数较小,不宜用于估算叶绿素a浓度.光谱反射率比值RFo5.m/Rss.nm.和 690nm反射率的一阶微分均与叶绿素a浓度有较好的…

Chromium 用户数据目录User Data 初始化过程c++

一、先说结论 User Data 路径优先级如下: 1、注册表中策略配置的路径。 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Chromium UserDataDir"xx_path" 2、命令行中的路径。 --user-data-dir"xx_path" 3、默认用户路径 %LOCALAPPDATA%/Chrom…

buuctf---->[WUSTCTF2020]level3

做题笔记。 无语。 下载 查壳。 64ida打开。 先运行一下程序: 用它这个程序 加密romantic >>> cm9tYW50aWH 我们去正常加密看看: 仔细对比你会发现点毛病。 看看ida: 这表看起来,很正常,默认的为什么会加密不…

Python批量下载PPT模块并实现自动解压

日常工作中,我们总是找不到合适的PPT模板而烦恼。即使有免费的网站可以下载,但是一个一个地去下载,然后再批量解压进行查看也非常的麻烦,有没有更好方法呢? 今天,我们利用Python来爬取一个网站上的PPT&…

Java学习-网络编程

目录 1. 网络通信基本概念 1.1 通信 1.2 网络 1.3 协议 1.4 网络通信 1.5 网络通信协议 1.6 TCP/IP协议 1.7 互联网 1.8 计算机网络 2. TCP与UDP协议 2.1 TCP 2.2 UDP 2.3 TCP的三次握手 2.4 为什么要三次握手 2.5 TCP四次挥手 2.6 为什么要四次挥手 3. HTTP1…

代码随想录算法训练营Day18 | 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

目录 530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先 530.二叉搜索树的最小绝对差 题目 530. 二叉搜索树的最小绝对差 - 力扣(LeetCode) 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值…

python16_引号使用

引号使用 A "Im a teacher!" B I\m a teacher! C """Im a teacher!, I am a teacher!, "I am a teacher!" """def single_quote(s):return sdef double_quote(s):return sdef triple_quote(s):return sif __name__ &qu…

【Linux】进程+权限管理+软硬链接+其他命令

目录 1. man手册 2. find按文件名称 3. find按文件类型 4. date显示时间 5. cal显示日历 6. du文件大小 7. ln链接 8. 软连接,硬链接区别 9. 文本查找 10. wc统计文本(计算文件的Bytes数、字数或列数) 11. 查看文本内容: 1…

单调队列与单调栈<2>——单调栈

单调栈的定义 单调递增栈 栈中元素从栈底到栈顶是递增的。 单调递减栈 栈中元素从栈底到栈顶是递减的。 单调栈的核心内容 我们从左到右遍历元素,构造单调栈(从栈顶到栈底递增或减):在 i 从左往右遍历的过程中,我…

C语言、Eazy_x——井字棋

#include<graphics.h>char board_data[3][3] { { -,-,-},{ -,-,-},{ -,-,-}, };char current_piece o;//检测指定棋子玩家是否获胜 bool CheckWin(char c) {if (board_data[0][0] c && board_data[0][1] c && board_data[0][2] c)return true;if (…

数据结构-链表笔记

移除节点 203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListN…

常见的VPS或者独立服务器的控制面板推荐

随着越来越多的企业和个人转向VPS和独立服务器以获得更高的性能和灵活性&#xff0c;选择合适的控制面板变得尤为重要。一个好的控制面板可以大大简化服务器管理&#xff0c;提高工作效率。本篇文章将介绍2024年最值得推荐的VPS控制面板&#xff0c;帮助您做出明智的选择。 1.…

python调用opencv报错“module ‘cv2‘ has no attribute ‘namedWindow‘”

之前电脑上使用pip install安装过opencv相关的python模块&#xff0c;不过后续学习opencv时主要使用OpenCVSharp在VS2022中创建项目测试。今天学习过程中突然想用python试试&#xff0c;不过运行下面代码时报错“module ‘cv2’ has no attribute namedWindow”。 import cv2c…

TVS管工作原理:【图文讲解】

TVS(Transient Voltage Suppressor)二极管&#xff0c;又称为瞬态抑制二极管&#xff0c;是普遍使用的一种新型高效电路保护器件&#xff0c;它具有极快的响应时间&#xff08;亚纳秒级&#xff09;和相当高的浪涌吸收能力。当它的两端经受瞬间的高能量冲击时&#xff0c;TVS能…

每日OJ题_牛客_DP2跳台阶_动态规划_C++_Java

目录 牛客_DP2跳台阶_动态规划 题目解析 C代码 Java代码 牛客_DP2跳台阶_动态规划 跳台阶_牛客题霸_牛客网 题目解析 当前值只和数组的前两个值有关&#xff0c;在往前面的就无关了&#xff0c;所以没必要申请一个数组&#xff0c;直接使用两个变量即可&#xff0c;这样空…

【数据结构与算法】时间复杂度和空间复杂度例题

文章目录 时间复杂度常数阶时间O(1)对数阶时间O(logN)线性阶时间O(n)线性对数阶时间O(nlogN)平方阶时间O(n*n) 空间复杂度常量空间O(1)线性空间O(n)二维空间O(n*n)递归空间 时间复杂度 常数阶时间O(1) 代码在执行的时候&#xff0c;它消耗的时间并不随着某个变量的增长而增长…

pytorch之梯度累加

1.什么是梯度&#xff1f; 梯度可以理解为一个多变量函数的变化率&#xff0c;它告诉我们在某一点上&#xff0c;函数的输出如何随输入的变化而变化。更直观地说&#xff0c;梯度指示了最优化方向。 在机器学习中的作用&#xff1a;在训练模型时&#xff0c;我们的目标是最小…

LeetCode[中等] 279.完全平方

给你一个整数 n &#xff0c;返回 和为 n 的完全平方数的最少数量 。 完全平方数 是一个整数&#xff0c;其值等于另一个整数的平方&#xff1b;换句话说&#xff0c;其值等于一个整数自乘的积。例如&#xff0c;1、4、9 和 16 都是完全平方数&#xff0c;而 3 和 11 不是。 1…