news 2026/4/16 15:01:16

探索二阶非线性自抗扰控制器(ADRC)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
探索二阶非线性自抗扰控制器(ADRC)

二阶非线性自抗扰控制器(ADRC),用的模块搭建的,控制简单二阶传递函数,可以联合粒子群在线优化自抗扰参数(但粒子群不包含在这里面)。

在控制领域,二阶非线性自抗扰控制器(ADRC)以其独特的优势逐渐崭露头角。今天咱们就来聊聊基于模块搭建,用于控制简单二阶传递函数的 ADRC。

二阶传递函数

首先,我们得了解一下要控制的对象 - 简单二阶传递函数。一般形式为:

\[ G(s) = \frac{\omegan^2}{s^2 + 2\zeta\omegan s + \omega_n^2} \]

这里,\(\omega_n\) 是自然频率,\(\zeta\) 是阻尼比。这两个参数决定了系统的动态特性。比如在 Python 中,我们可以简单模拟这个传递函数的响应:

import control import matplotlib.pyplot as plt # 定义二阶系统参数 wn = 1.0 # 自然频率 zeta = 0.707 # 阻尼比 num = [wn**2] den = [1, 2*zeta*wn, wn**2] sys = control.TransferFunction(num, den) # 计算阶跃响应 t, y = control.step_response(sys) # 绘制响应曲线 plt.plot(t, y) plt.xlabel('Time (seconds)') plt.ylabel('Response') plt.title('Step Response of Second - Order System') plt.grid(True) plt.show()

这段代码使用了control库,先定义了二阶系统的分子分母多项式系数,然后通过TransferFunction创建系统对象,接着用step_response计算阶跃响应,最后绘制出响应曲线。从曲线我们能直观看到系统的动态变化。

二阶非线性自抗扰控制器(ADRC)模块搭建

ADRC 主要由跟踪微分器(TD)、扩张状态观测器(ESO)和非线性状态误差反馈控制律(NLSEF)组成。

跟踪微分器(TD)

TD 的作用是安排过渡过程,并提取输入信号的微分。其离散形式可以表示为:

\[ \begin{cases}

x{1}(k + 1) = x{1}(k) + hx_{2}(k) \\

x{2}(k + 1) = x{2}(k) + hfst(x{1}(k) - v(k), x{2}(k), r, h_{0})

\end{cases} \]

这里v(k)是输入信号,r是速度因子,h是采样周期,h0是滤波因子,fst是非线性函数。

def fst(x1, x2, r, h0): d = r * h0 d0 = h0 * d y = x1 + h0 * x2 a0 = (d**2 + 8 * r * abs(y))**0.5 if abs(y) <= d0: a = x2 + 0.5 * (a0 - d) * (y / abs(y)) else: a = x2 + (y / abs(y)) * (y - d0) / h0 fval = -r * (a / d) if abs(a) <= d else -r * (a / abs(a)) return fval # TD 实现 def TD(v, r, h, h0, x1_prev, x2_prev): x1 = x1_prev + h * x2_prev x2 = x2_prev + h * fst(x1 - v, x2_prev, r, h0) return x1, x2

在这段代码中,我们先定义了fst函数,根据公式计算其值,然后在TD函数中实现了跟踪微分器的离散迭代过程。

扩张状态观测器(ESO)

ESO 用于估计系统的状态和总扰动。离散形式如下:

\[ \begin{cases}

z{1}(k + 1) = z{1}(k) + h(z{2}(k) - \beta{01}e(k)) \\

z{2}(k + 1) = z{2}(k) + h(z{3}(k) - \beta{02}\text{fal}(e(k), \alpha{1}, \delta) + b{0}u(k)) \\

z{3}(k + 1) = z{3}(k) - h\beta{03}\text{fal}(e(k), \alpha{2}, \delta)

\end{cases} \]

其中,e(k) = y(k) - z1(k)fal是非线性函数。

def fal(e, alpha, delta): if abs(e) <= delta: return e / (delta**(1 - alpha)) else: return abs(e)**alpha * (e / abs(e)) # ESO 实现 def ESO(y, u, b0, beta01, beta02, beta03, alpha1, alpha2, delta, h, z1_prev, z2_prev, z3_prev): e = y - z1_prev z1 = z1_prev + h * (z2_prev - beta01 * e) z2 = z2_prev + h * (z3_prev - beta02 * fal(e, alpha1, delta) + b0 * u) z3 = z3_prev - h * beta03 * fal(e, alpha2, delta) return z1, z2, z3

这里先定义了fal函数,再在ESO函数中按照公式进行 ESO 的迭代计算。

非线性状态误差反馈控制律(NLSEF)

NLSEF 根据跟踪微分器的输出和扩张状态观测器的估计值生成控制量。

\[ u0(k) = \text{fal}(v1(k) - z1(k), \alpha{3}, \delta{1}) + \text{fal}(v2(k) - z2(k), \alpha{4}, \delta_{2}) \]

\[ u(k) = \frac{u0(k) - z3(k)}{b_{0}} \]

# NLSEF 实现 def NLSEF(v1, v2, z1, z2, z3, b0, alpha3, alpha4, delta1, delta2): u0 = fal(v1 - z1, alpha3, delta1) + fal(v2 - z2, alpha4, delta2) u = (u0 - z3) / b0 return u

这段代码依据公式计算出控制量u

通过将这些模块组合起来,我们就搭建好了用于控制简单二阶传递函数的二阶非线性自抗扰控制器。虽然粒子群在线优化自抗扰参数不在本次讨论范围内,但 ADRC 本身已经展现出强大的控制能力。通过合理调整各个模块的参数,能让系统达到良好的控制效果。

希望通过这篇博文,大家对二阶非线性自抗扰控制器基于模块搭建控制简单二阶传递函数有更清晰的认识。在实际应用中,根据不同的需求和系统特性,还可以进一步优化和调整这些模块。

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

zTasker v2.3.4:Windows 自动化任务工具

zTasker v2.3.4 是一款专为Windows系统设计的免费自动化任务工具&#xff0c;支持从Win7到Win11等多个版本。这款工具体积轻巧&#xff0c;仅8MB左右&#xff0c;却能够通过热键、定时或系统条件触发上百种任务&#xff0c;帮助用户有效提升操作效率。无论是个人日常使用还是企…

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

昇思MindSpore打造HyperParallel架构,引领AI框架迈入“超节点时代”

[中国&#xff0c;杭州&#xff0c;2025年12月25日] 今日&#xff0c;昇思人工智能框架峰会在杭州国际博览中心召开&#xff0c;本次大会以“昇思MindSpore为超节点而生的AI框架 ”为主题&#xff0c;由昇思MindSpore开源社区、全球计算联盟GCC主办&#xff0c;华为技术有限公司…

作者头像 李华
网站建设 2026/4/16 10:18:34

哪些字段适合加索引,哪些不适合加?

索引是数据库中用于加快数据查询的重要结构&#xff0c;类似于书的目录&#xff0c;可以让数据库迅速定位到所需的数据&#xff0c;而不必每次都全表扫描。一、常见索引类型B树索引&#xff1a;大多数关系型数据库的默认索引类型&#xff0c;支持范围查询、模糊查询等。哈希索引…

作者头像 李华
网站建设 2026/4/16 10:20:45

政企用户搭建办公系统,哪个厂商的信创云桌面产品做得比较好?

随着数字化转型的深入&#xff0c;政企用户对办公系统的需求日益提升&#xff0c;不仅要求高效便捷&#xff0c;更注重安全可控。在这一背景下&#xff0c;信创云桌面作为基于国产化技术的虚拟化解决方案&#xff0c;逐渐成为搭建办公系统的重要选择。然而&#xff0c;面对市场…

作者头像 李华
网站建设 2026/4/16 13:40:30

Agent AI与Agentic AI:概念辨析、技术落地与发展瓶颈

TL;DR&#xff1a;AI Agent 和 Agentic AI 代表了两种不同的智能范式。AI Agent 是由 LLM 驱动的、用于自动化特定任务的任务执行者&#xff08;如自动化客服&#xff09;&#xff1b;而 Agentic AI 则是一个由多个专业代理通过协作来完成复杂目标的协同系统&#xff08;如一个…

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

2025最新!自考党必看!8大AI论文平台深度测评与推荐

2025最新&#xff01;自考党必看&#xff01;8大AI论文平台深度测评与推荐 2025年自考论文写作工具测评&#xff1a;为何需要一份权威榜单&#xff1f; 随着人工智能技术在学术领域的深入应用&#xff0c;越来越多的自考学生开始借助AI论文平台提升写作效率与质量。然而&#…

作者头像 李华