news 2026/6/16 0:56:37

自抗扰控制(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/6/14 9:32:10

场分布下的光子晶体色散研究:机理探索与性能分析

通过场分布得到光子晶体的色散光子晶体那彩虹般的色散特性总让人着迷,但真正上手计算时总有种「知道原理却不知怎么操作」的尴尬。今天咱们来点硬核实操,直接通过电磁场分布数据倒推色散关系——这个思路在缺陷态分析里尤其好用。先看核心逻辑&#xff1…

作者头像 李华
网站建设 2026/6/16 7:15:25

Langchain-Chatchat支持语音输入预处理:打通多模态交互链路

Langchain-Chatchat支持语音输入预处理:打通多模态交互链路 在企业知识库系统仍普遍依赖键盘输入和网页表单的今天,一个新员工想查“年假如何调休”还得翻三四个PDF文档——这种低效体验正被悄然改写。当用户只需轻声说一句“帮我查下报销流程”&#xf…

作者头像 李华
网站建设 2026/6/15 11:43:49

Langchain-Chatchat与RAG架构融合:构建下一代智能客服系统

Langchain-Chatchat与RAG架构融合:构建下一代智能客服系统 在企业服务数字化转型的浪潮中,一个老生常谈却又始终未被彻底解决的问题浮出水面:员工每天要花多少时间翻找公司制度文档?客户又要重复多少次“你们的退换货政策是什么”…

作者头像 李华
网站建设 2026/6/15 17:42:00

Langchain-Chatchat支持批量导入知识库:快速完成企业知识初始化

Langchain-Chatchat支持批量导入知识库:快速完成企业知识初始化 在企业数字化转型的浪潮中,一个老生常谈却又始终棘手的问题浮出水面:如何让堆积如山的内部文档真正“活”起来? HR部门刚更新了《员工手册》,但新员工依…

作者头像 李华
网站建设 2026/6/15 12:29:36

Langchain-Chatchat如何实现文档切片与向量化存储?技术细节曝光

Langchain-Chatchat 如何实现文档切片与向量化存储?技术细节深度解析 在企业智能化浪潮中,一个日益突出的矛盾正被越来越多开发者关注:通用大语言模型(LLM)虽然“见多识广”,却对企业的私有知识束手无策。你…

作者头像 李华
网站建设 2026/6/15 5:27:29

RocketMQ 介绍及适用场景

一、RocketMQ 简介RocketMQ 是阿里巴巴开源的分布式消息中间件,属于 Apache 顶级项目。它最初诞生于阿里巴巴集团,旨在解决大规模、高并发、低延迟下的消息传递需求。RocketMQ 使用 Java 语言开发,具有高可用、高性能、可扩展、强一致性等特点…

作者头像 李华