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

四旋翼的ADRC姿态控制总给人一种“玄学调参“的错觉,其实从模型到代码落地,整个过程比想象中有意思得多。咱先甩出核心公式——滚转通道的角加速度方程

四旋翼无人机ADRC姿态控制器仿真,已调好,附带相关参考文献~ 无人机姿态模型,力矩方程,角运动方程 包含三个姿态角的数学模型,以及三个adrc控制器。 简洁易懂,也可自行替换其他控制器。

\dot{p} = (I_y - I_z)qr/I_x + (J_r q \omega + l u_2)/I_x + d_p

这里Ix是转动惯量,l是力臂长度,dp代表内外扰动。看到没?耦合项qr和陀螺力矩项的存在让姿态控制天然带干扰,这就是ADRC大显身手的地方。

ADRC的精髓在于把模型误差和外界扰动打包成总扰动,用ESO实时怼回去。来看扩张状态观测器的代码实现:

class ESO: def __init__(self, beta1, beta2, beta3, dt): self.z = np.zeros(3) self.beta = [beta1, beta2, beta3] self.dt = dt def update(self, y, u): e = y - self.z[0] self.z[0] += self.dt*(self.z[1] + self.beta[0]*e) self.z[1] += self.dt*(self.z[2] + self.beta[1]*e + u) self.z[2] += self.dt*self.beta[2]*e return self.z

三个beta参数对应不同带宽,z[2]就是估计出的总扰动。调试时重点看beta参数组——太小时观测滞后,太大会震荡,个人经验是从系统带宽的3~5倍开始试。

控制器部分更带劲,TD(跟踪微分器)给参考信号加惯性,避免setpoint跳变引发的超调:

def TD(v, v_last, h, r): fh = r * (v - v_last) + r**2 * (v - v_last)**3 / (2*h) return v_last + h*fh

这个非线性函数里的r控制跟踪速度,h是步长。实测当参考角速度超过50deg/s时,立方项能有效抑制微分爆破。

整套控制器在Gazebo中的表现相当顶。给个横滚角阶跃响应测试结果:

!stepresponse

上升时间0.8秒,超调3%以内,外加突加风扰后的恢复时间不到1秒。代码里最关键的是扰动补偿项的处理时机:

// 在控制循环中 eso_z3 = eso.update(y, u_prev); u = kp*(ref - z1) - kd*z2 - z3/b0;

别把z3补偿到前馈通道,必须在反馈之后叠加。曾经在这里栽过跟头,补偿位置不对会导致静态误差。

替换PID?简单,把ESO和TD模块摘了,保留误差计算部分就行。不过实测ADRC在突风扰动下的恢复速度比PID快40%以上,参数还少两个(PID要整定三个参数,ADRC每个通道只需调beta组和kp/kd)。

参考文献建议啃韩京清原版的《自抗扰控制技术》,或者直接看Madonski的ADRC无人机应用论文(2017年那篇TIE)。仿真代码已传Github,搜索"ADRCQuadSIM"就能白嫖。下期打算拆解ADRC的串级速度控制,比姿态环更有挑战性。

http://www.cnnetsun.cn/news/38114.html

相关文章:

  • 18. 有理函数和渐近线
  • 树莓派家庭服务器搭建指南从零到实用
  • 黑客大神都会玩这 10 个 Linux 命令,我不允许你还不知道!
  • Wi-Fi CERTIFIED Data Elements™ 技术概述
  • CTF — 压缩包密码爆破(非常详细),零基础入门到精通,看这一篇就够了
  • 基于YOLO的小目标检测增强:一种提升精度与效率的新框架
  • stm32编码总结
  • 轻量级AI模型高并发应用实战:5大核心技巧深度解析
  • 2025土壤墒情监测设备选型全攻略:金叶智能应用分享
  • 掌握波利亚解题法:提升问题解决能力的终极指南
  • 2025校园气象站建设干货曝光:金叶智能科教应用实例
  • SQL Server终极学习指南:7天从零到实战精通
  • 揭秘IOCCC获奖代码库:隐藏在混乱中的编程艺术殿堂
  • Java开发被裁员,以后能干点啥不。
  • 9种常见的前端跨域解决方案(详解)零基础入门到精通,收藏这篇就够了
  • 2025前端vscode必备插件(持续更新)零基础入门到精通,收藏这篇就够了
  • OVITO终极指南:5步掌握分子动力学可视化分析
  • Reddit短视频自动化创作技术解析与实战应用
  • 基于SpringBoot+Vue技术的医疗器械管理系统设计与实现(毕业设计项目源码+文档)
  • 1、Red Hat Linux 性能调优与安全保障指南
  • 基于Python+Django的社区服务管理系统源码设计与文档
  • 电子信息毕设 stm32 RFID员工打卡门禁系统(源码+硬件+论文)
  • Go后端工程师
  • Rust二进制大小优化终极指南:从新手到专家的完整解决方案
  • F2批量重命名的7个安全技巧:从新手到高手的防护指南
  • xmlbuilder-js:Node.js XML构建的完整解决方案
  • FANUC机器人KAREL编程实战指南:高效数据交互解决方案深度解析
  • 直播中:OpenVINO™ 上海技术研讨会—英特尔OpenVINO™助力具身智能生态成长
  • Captura音频录制优化:告别噪音困扰的完整解决方案
  • 技术考古:去IOE