【无人机设计与控制】四旋翼飞行无人机姿态控制ADRC非线性自抗扰控制Simulink仿真

摘要

本研究针对四旋翼飞行无人机姿态控制,提出了一种基于非线性自抗扰控制(ADRC)的控制策略。通过Simulink对系统进行了建模和仿真,验证了所设计控制器在不同工况下的有效性和鲁棒性。仿真结果表明,所设计的控制器能够有效抑制外界扰动,提高系统的动态响应性能和稳态精度。

理论

ADRC(Active Disturbance Rejection Control)是一种新型的控制策略,通过估计和补偿外界扰动,提高系统的抗干扰能力。主要包括三个核心模块:跟踪微分器(TD),扩张状态观测器(ESO),以及非线性状态误差反馈(NLSEF)。

  1. 跟踪微分器(TD):用于生成理想的过渡过程和跟踪信号。

  2. 扩张状态观测器(ESO):用于在线估计系统的状态和外界扰动。

  3. 非线性状态误差反馈(NLSEF):实现对系统的非线性补偿和控制。

实验结果

通过仿真分析,可以看到控制器对各姿态角(偏航角、俯仰角、滚转角)的响应曲线紧跟期望值。仿真结果表明,该控制策略能够显著减少系统的超调量,并有效抑制干扰,快速达到稳态。

  • 偏航角随时间变化曲线:偏航角能够快速响应期望值,过渡过程平滑,系统稳定。

  • 俯仰角随时间变化曲线:控制效果良好,快速响应,无明显的超调现象。

  • 滚转角随时间变化曲线:表现出良好的动态特性和鲁棒性,系统抗扰动能力强。

部分代码

复制代码
% 定义控制参数
b0 = 0.5; % 非线性控制增益
TD_params = [1, 0.01]; % 跟踪微分器参数
ESO_params = [1, 0.1, 0.01]; % 扩张状态观测器参数

% ADRC控制器设计
NLSEF = @(e, de) -b0 * (e + de); % 非线性状态误差反馈
TD = @(v, TD_params) v / (TD_params(1) + TD_params(2)); % 跟踪微分器
ESO = @(u, ESO_params) ESO_params(1) * u - ESO_params(2) * u + ESO_params(3); % 扩张状态观测器

% 仿真主程序
sim_time = 10; % 仿真时间
step_input = 5; % 阶跃输入
response = NLSEF(step_input, ESO(step_input, ESO_params)); % 系统响应
plot(response);
xlabel('时间(s)');
ylabel('角度(°)');
title('系统响应曲线');

参考文献

❝

  1. 刘强, 张涛. 无人机姿态控制系统设计与仿真J. 控制工程, 2021, 28(5): 123-129.
相关推荐
zhenaibo5213 小时前
如何与导师有效沟通选题?
算法
熊猫钓鱼>_>3 小时前
大学图论第 6 讲:网络流与二分图匹配——对偶性让瓶颈自己现形
开发语言·算法·面试·职场和发展·图论·校招·面经
没有钱的钱仔3 小时前
最大似然估计(MLE)通俗理解
算法·机器学习·概率论
yi0113 小时前
LeetCode 424. 替换后的最长重复字符|不定长滑动窗口:如何判断窗口是否合法?
笔记·python·算法·leetcode·双指针·滑动窗口
Nebula_g4 小时前
JavaSE高级:动态代理
java·开发语言·算法·javase
垆边人似月.4 小时前
华为题:盛最多水的容器
数据结构·算法
怦然丶心动4 小时前
用 Java 把干支历法算清楚:从节气切年到可读摘要
java·算法·vue·独立开发·spring boot / spring
Zachery Pole4 小时前
具身智能强化学习(1)引言
算法·机器学习
All for pursuit.4 小时前
【动态规划-11】279.完全平方数
数据结构·c++·算法·leetcode·动态规划
淡海水4 小时前
02-06-原理篇-增量式GC与并发GC
算法·unity·c#·并发·gc·增量