【无人机设计与控制】四旋翼飞行无人机姿态控制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.
相关推荐
会员源码网4 小时前
使用`mysql_*`废弃函数(PHP7+完全移除,导致代码无法运行)
后端·算法
木心月转码ing5 小时前
Hot100-Day10-T438T438找到字符串中所有字母异位词
算法
HelloReader5 小时前
Wi-Fi CSI 感知技术用无线信号“看见“室内的人
算法
颜酱8 小时前
二叉树分解问题思路解题模式
javascript·后端·算法
qianpeng8979 小时前
水声匹配场定位原理及实验
算法
董董灿是个攻城狮21 小时前
AI视觉连载8:传统 CV 之边缘检测
算法
AI软著研究员1 天前
程序员必看:软著不是“面子工程”,是代码的“法律保险”
算法
FunnySaltyFish1 天前
什么?Compose 把 GapBuffer 换成了 LinkBuffer?
算法·kotlin·android jetpack
颜酱1 天前
理解二叉树最近公共祖先(LCA):从基础到变种解析
javascript·后端·算法
地平线开发者2 天前
SparseDrive 模型导出与性能优化实战
算法·自动驾驶