news 2026/4/23 12:25:49

自抗扰控制(ADRC)这玩意儿玩起来挺有意思的。今天咱们就拆开它的内核看看,特别是怎么从传递函数推导到PID等效。先来段MATLAB代码热热身

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
自抗扰控制(ADRC)这玩意儿玩起来挺有意思的。今天咱们就拆开它的内核看看,特别是怎么从传递函数推导到PID等效。先来段MATLAB代码热热身

自抗扰控制,幅频特性曲线,传函推导,pid等效,跟踪曲线,抗扰曲线。

s = tf('s'); G = 1/(s^2 + 2*0.6*5*s + 5^2); % 二阶振荡环节 bode(G), grid on

这代码画出来的幅频特性曲线能直观展示系统谐振峰的位置。注意看相位曲线在谐振频率处的跳水,这个特性直接影响控制器的参数整定。

ADRC的核心在于扰动观测器,咱们来看个简化版的传递函数推导。设被控对象为G(s)=b/(s²+a1s+a0),扩张状态观测器(ESO)的传递函数可以写成:

LESO = (β1s + β0)/(s² + β1s + β0)

这结构是不是很眼熟?没错,就是个典型二阶滤波器。当β1=2ω0,β0=ω0²时,就构成了带宽ω0的观测器。实际操作时建议把观测器带宽设为控制器带宽的3-5倍。

接下来搞点刺激的——把ADRC等效成PID形式。拿二阶系统举例,经过等效变换后可以得到:

Kp = (ωc² + 2ξωcωo)/b

Ki = ωc³/b

Kd = (2ξωc + ωo)/b

这里ωc是控制器带宽,ωo是观测器带宽。实战中参数整定可以先用这个公式算个初值,再微调。注意b是被控对象增益,辨识不准的话后面会翻车。

看段跟踪效果验证的Python代码:

from scipy import signal import matplotlib.pyplot as plt sys = signal.TransferFunction([1], [1, 2, 3]) t = np.linspace(0, 5, 500) t_out, y = signal.step_response(sys, t) plt.plot(t, y, label='实际输出') plt.plot(t, t*0 + 1, '--', label='目标值') plt.legend()

典型的跟踪曲线会出现超调和振荡,这时候就得调ESO的带宽。当观测器足够快时,你会发现曲线像被磁铁吸住目标值一样,这就是ADRC的跟踪微分器在发力。

抗扰性能是重头戏,看这个Simulink模型截图(假装有图):在3秒时突加阶跃扰动,传统PID的输出会像过山车一样波动,而ADRC的输出只是微微颤抖就恢复稳定。秘密在于ESO实时估计并补偿了扰动,相当于给系统装了减震器。

最后说个坑:调试时别盲目追求带宽,曾经有个项目把观测器带宽调到10kHz,结果传感器噪声被放大得连亲妈都不认识。记住,带宽和噪声永远是死对头,找到平衡点才是真功夫。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 12:21:55

单片机 433MHz 超再生模块发送接收 Proteus 仿真探秘

单片机433MHz超再生模块发送接收Proteus仿真源程序 使用Proteus7.8,实现超再生模块接收发送程序的仿真。 附有原理说明和单片机程序下载。 就是这种433M超再生收发模块:在电子制作的世界里,433MHz 超再生模块因其成本低、易实现等特点&#x…

作者头像 李华
网站建设 2026/4/16 17:02:42

基于改进A*算法的机器人路径规划MATLAB仿真:探索优化之路

6.基于改进A*算法的机器人路径规划MATLAB仿真程序(含注释) 改进方法: 1、8个搜索方向变5个 2、冗余节点的删除 3、对评价函数f(n)进行改进 代码拿来可以直接用。在机器人路径规划领域,A算法一直是经典且应用广泛的方法。不过,为了让算法更加高…

作者头像 李华
网站建设 2026/4/23 1:54:01

单电阻采集FOC在STM32 F1/F3芯片上的实现

提供单电阻采集Foc,stm32 f1/f3芯片由于是源码不换在电机控制领域,磁场定向控制(FOC)技术因其能够实现高精度、高性能的电机控制而备受青睐。而单电阻采集方案则以其成本低、硬件设计简单的优势,在实际应用中有着广泛的…

作者头像 李华
网站建设 2026/4/18 6:30:06

探索四旋翼无人机的ADRC轨迹跟踪算法

四旋翼无人机自抗扰控制算法研究 ADRC 轨迹跟踪 附带说明文在无人机的控制领域,实现精准的轨迹跟踪一直是个热门话题。今天咱们就唠唠四旋翼无人机的自抗扰控制算法(ADRC)在轨迹跟踪方面的神奇之处。 什么是自抗扰控制算法(ADRC&a…

作者头像 李华
网站建设 2026/4/16 23:39:21

Langchain-Chatchat与Zotero文献管理工具联动:科研人员福音

Langchain-Chatchat与Zotero联动:打造科研人员的AI知识助理 在今天,一位博士生可能需要阅读上百篇PDF论文才能完成一个研究方向的文献综述;一位研究人员深夜翻找三个月前读过的某篇论文中的实验参数;更有人因为担心数据泄露而不敢…

作者头像 李华
网站建设 2026/4/23 11:27:50

RabbitMQ 延迟队列实现:死信 + TTL vs 插件,深度对比与性能分析

在分布式系统中,延迟队列是处理异步任务延迟执行的核心组件,比如订单超时取消、定时消息推送、任务失败重试等场景都离不开它。RabbitMQ 作为主流的消息中间件,本身并未直接提供延迟队列功能,但我们可以通过死信队列 TTL&#xf…

作者头像 李华