【无人机设计与控制】四旋翼飞行无人机姿态控制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.
相关推荐
查理零世2 分钟前
【蓝桥杯集训·每日一题2025】 AcWing 6134. 哞叫时间II python
python·算法·蓝桥杯
仟濹3 分钟前
【二分搜索 C/C++】洛谷 P1873 EKO / 砍树
c语言·c++·算法
紫雾凌寒12 分钟前
解锁机器学习核心算法|神经网络:AI 领域的 “超级引擎”
人工智能·python·神经网络·算法·机器学习·卷积神经网络
【云轩】28 分钟前
【零基础实战】用STM32玩转DRV8313电机驱动:从原理到无人机/机器人控制
stm32·机器人·无人机
MiyamiKK572 小时前
leetcode_位运算 190.颠倒二进制位
python·算法·leetcode
C137的本贾尼2 小时前
解决 LeetCode 串联所有单词的子串问题
算法·leetcode·c#
没有不重的名么2 小时前
MATLAB基础学习相关知识
数据结构·学习·matlab
青橘MATLAB学习2 小时前
时间序列预测实战:指数平滑法详解与MATLAB实现
人工智能·算法·机器学习·matlab
lingllllove2 小时前
matlab二维艾里光束,阵列艾里光束,可改变光束直径以及距离
开发语言·算法·matlab
Matlab仿真实验室2 小时前
基于Matlab实现MAC协议-ALOHA协议仿真程序(源码+数据)
开发语言·网络·matlab·mac协议-aloha协议仿真