【自抗扰控制ADRC】控制算法推导及simulink仿真


ADRC控制算法框架

ADRC控制算法主要包含了三个部分,对输入信号进行跟踪微分的跟踪微分器、对跟踪信号和微分信号的误差进行补偿的误差补偿控制器、对跟踪信号、微分信号和扰动信号进行观测的扩张状态观测器。其组成部分如下图:
在这里插入图片描述
跟踪微分器的内容可以参考我之前的博客 跟踪微分器博客
扩张状态观测器的内容可以参考我之前的博客 扩张状态观测器

第一步 - 对输入信号的滤波和微分

由于系统的输入信号经常会存在高频噪声以及阶跃信号,对系统造成严重扰动,同时一些也会对常规的控制算法带来较大的麻烦(例如 PID)。因此经过跟踪微分器之后,输入控制器的信号就变得更加平滑,其微分信号不至于出现类似于冲激信号的尖峰,可以更好的利用这组微分信号进行前馈控制等控制手段。
跟踪微分器的框架图(NTD)
在这里插入图片描述

第二步 - 估计状态

估计的状态变量包括了被控对象状态、对应的微分信号以及系统的扰动信号。
扩张状态观测器的框架图(ESO)
在这里插入图片描述

第三步 - 计算控制律

控制律的计算主要包含了两个部分,一部分是对于跟踪信号误差和微分信号误差的补偿,类似于PD控制器,另一部分是对于扰动的抵消补偿。这也是扩张状态观测器的主要意义所在,即观测扰动,补偿扰动
其中误差补偿控制器的框架图(线性控制器)
在这里插入图片描述
其数学描述内容如下
u 0 = k 1 e 1 + k 2 e 2 u = u 0 − z 3 b = u 0 − f ( x ⃗ , w , t ) b u_0=k_1 e_1+k_2e_2\\ u = \frac{u_0-z_3}{b}=\frac{u_0-f(\vec{x},w,t)}{b} u0=k1e1+k2e2u=bu0z3=bu0f(x ,w,t)
假设被控对象的状态空间如下:
x 1 ′ = x 2 x 2 ′ = f ( x ⃗ , w , t ) + b u x_1'=x_2\\ x_2'=f(\vec{x},w,t)+bu x1=x2x2=f(x ,w,t)+bu
则将控制律代入后可以得到
x 1 ′ = x 2 x 2 ′ = u 0 = k 1 e 1 + k 2 e 2 = k 1 ( v − x 1 ) + k 2 ( v ′ − x 2 ) = − k 1 x 1 − k 2 x 2 + k 2 v ′ + k 1 v x_1'=x_2 \\ x_2'=u_0 = k_1e_1+k_2e_2=k_1(v-x_1)+k_2(v'-x_2)=-k_1x_1-k_2x_2+k_2v'+k_1v x1=x2x2=u0=k1e1+k2e2=k1(vx1)+k2(vx2)=k1x1k2x2+k2v+k1v
则其传递函数为
Y U = G ( s ) = k 2 s + k 1 s 2 + k 2 s + k 1 \frac{Y}{U} = G(s)=\frac{k_2s+k_1}{s^2+k_2s+k_1} UY=G(s)=s2+k2s+k1k2s+k1
可以通过调节 k 1 k 2 k_1 k_2 k1k2的值来配置系统的零极点,使系统响应性能达到预期。
可以看出,ADRC是一种状态误差反馈的控制算法,不需要精确的系统模型,对外部扰动以及噪声有很强的抑制作用。

仿真案例

以二阶系统为例,其传递函数为
G ( s ) = s + 4 s 2 + 4 s + 6 G(s)=\frac{s+4}{s^2+4s+6} G(s)=s2+4s+6s+4

其中,误差补偿系数 k 1 = 10 , k 2 = 10 k_1 = 10,k_2 = 10 k1=10,k2=10(随便给的两个数值,可以自行调试对比控制性能)
在这里插入图片描述
响应结果
在这里插入图片描述

大家有兴趣的话可以自行修改被控对象,以及添加噪声扰动等因素到系统中,观察ADRC控制器的抗扰动能力以及鲁棒性。文件我会打包发上来。
文件链接

  • 15
    点赞
  • 160
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

争取35岁退休

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值