news 2026/6/3 12:10:06

自抗扰控制(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/5/30 20:03:37

基于FPGA的LDPC译码算法:从理论到实现

基于FPGA的LDPC译码算法(提供ISE和Qii两个版本),包括MATLAB仿真,verilog程序,支持定制算法程序 从LDPC码的基础理论出发,在研究前人成果的基础上,针对CMMB标准,采取理论阐述、算法仿直等方式进行了LDPC码的…

作者头像 李华
网站建设 2026/6/2 19:51:20

通达信金叉顶背加仓、减仓、顶背

{}RSV:(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100; K:SMA(RSV,3,1),COLORWHITE; D:SMA(K,3,1),COLORYELLOW; J:3*K-2*D,COLORYELLOW; 金叉:IF(SUM(CROSS(K,D)AND D<23,15)>2 AND CROSS(K,D)AND C>O,10,0),COLORFFFF00; 加仓:IF(J>D,J,DRAWNULL),COLORRED,LI…

作者头像 李华
网站建设 2026/6/1 19:39:55

Langchain-Chatchat问答系统异常检测机制:及时发现错误回答

Langchain-Chatchat问答系统异常检测机制&#xff1a;及时发现错误回答 在企业智能客服、内部知识库查询等场景中&#xff0c;一个看似流畅的回答背后可能隐藏着致命的“语言陷阱”——模型自信满满地给出了一条完全错误的信息。这种现象并非偶然&#xff0c;而是大语言模型&am…

作者头像 李华
网站建设 2026/6/2 13:31:51

死信队列(DLQ)深度解析:过期消息、拒绝消息的优雅处理方案

在分布式系统中&#xff0c;消息队列作为解耦服务、削峰填谷的核心组件&#xff0c;其稳定性直接决定了整个系统的可靠性。但实际业务场景中&#xff0c;消息“失效”往往难以避免——消息超时未消费、消费端主动拒绝、消费次数超限等问题时有发生。如果这些“问题消息”得不到…

作者头像 李华
网站建设 2026/6/3 3:56:15

RabbitMQ 限流与积压处理:QoS 配置与消费端流量控制实战

在分布式系统中&#xff0c;RabbitMQ 作为主流的消息中间件&#xff0c;承担着流量削峰、解耦服务的核心作用。但在高并发场景下&#xff0c;若消费端处理能力不足&#xff0c;大量消息会积压在队列中&#xff0c;甚至引发消费端过载崩溃&#xff1b;反之&#xff0c;若消费端资…

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

Langchain-Chatchat知识库权限控制策略:按部门/角色分配访问权限

Langchain-Chatchat 知识库权限控制&#xff1a;按部门/角色实现安全访问 在企业知识管理日益智能化的今天&#xff0c;越来越多组织开始尝试将大语言模型&#xff08;LLM&#xff09;与本地文档结合&#xff0c;构建专属的智能问答系统。Langchain-Chatchat 作为基于 LangCha…

作者头像 李华