自抗扰控制技术简述

2017年1月23日
#跟踪微分器(Tracking Differentiator)
    时延不同的两个惯性环节的信号相减,再除以时延之差,可以获得不错的微分效果。而惯性环节本质上是对信号的滤波与跟踪。当两个惯性环节相差很小的时候,这样的微分器可以近似表示为:
                $$W(s) = \frac{ r^{2} s } { s^{2} + 2rs + r^{2} }$$
    上式中的跟踪环节实际上是二阶线性系统,相当于二阶滤波器。一般的,跟踪微分器有如下形式:
                $$W(s) = \frac{ r^{m} s } { (s + r)^{ m } }$$
    为什么采取这种结构呢?因为需要快速地追踪输入信号,所以实际上这种结构是零阻尼结构,能够在快速性与超调之间取得平衡。
    非线性跟踪微分器又是什么呢?考虑二阶积分器串联型系统:
            $$
               \left\{
                    \begin{aligned}
                        \dot{ x_{1} } &= x_{2} \\
                        \dot{ x_{2} } &= u,  |u| \leq r 
                    \end{aligned}
                \right.
            $$
    以原点为终点的快速最优控制综合函数(此处存疑)为:
            $$
                u(x_{1}, x_{2}) = -r \text{ sign } ( x_{1} + \frac{ x_{2} | x_{2} | } {2 r } )
            $$
    将上式中的$x_{1}$改为$x_{1} - v_{0}(t)$,其中$v_{0}(t)$表示为需要追踪的信号,则有:
            $$
               \left\{
                    \begin{aligned}
                        \dot{ x_{1} } &= x_{2} \\
                        \dot{ x_{2} } &=    -r \text{ sign } ( x_{1}  -  v_{0}(t)  + \frac{ x_{2} | x_{2} | } {2 r } )
                    \end{aligned}
                \right.
            $$
    这个系统的加速度绝对值限制在r之下,将最快地跟踪输入信号$v_{0}(t)$。r越大,跟踪速度越快。取解分量之一$x_{2}$作为输入信号的近似微分,就可以构成一种非线性跟踪微分器。非线性跟踪微分器的参数效率要比线性的高,相似的滤波效果,非线性跟踪微分器的参数值较小。
    菲利波夫意义:存疑
    关于跟踪微分器的定理:
    设有二阶微分方程
            $$
                \left\{
                    \begin{aligned}
                        \dot{ z_{1} } &= z_{2} \\
                        \dot{ z_{2} } &= f(z_{1}, z_{2})
                    \end{aligned}
                \right.
                $$
    那么,对于任意有界可测信号$v(t),t \in [0, +\infty]$, 以及任意的$T$,如下微分方程:
            $$
                \left\{
                    \begin{aligned}
                        \dot{ x_{1} } &= x_{2} \\
                        \dot{ x_{2} } &= r^{2}f(x_{1} - v(t), \frac { x_{2} } {r} )
                    \end{aligned}
                \right.
                $$
    的解的第一分量$x_{1}(r,t)$将满足$\mathop{\lim}_{ r \to +\infty } { \int_{0}^{T}| x_{1}(r,t) - v(t) | \text{d} t}  = 0 $。即当$r \to +\infty$时,该方程的解分量$x_{1}$将会收敛于给定$v(t)$。
##快速跟踪微分器的离散形式
    最速跟踪微分器直接离散得到形式为:
                $$
                \left\{
                    \begin{aligned}
                        f &= - r \text{sign} ( x_{1}(k) - v(k) + \frac{ x_{2}(k) |x_{2}(k)| }{ 2r } ) \\
                        x_{1}(k+1) &= x_{1}(k) + h x_{2}(k) \\
                        x_{2}(k+1) &= x_{2}(k) + hf
                    \end{aligned}
                \right.
            $$
   最速 跟踪微分器直接离散进行数值计算,在系统进入稳态之后,会产生高频震颤。即使将符号函数换成线性饱和函数,也只能减小而不能避免高频震颤,速度输出依然很难保持为零。因为连续系统的最速控制综合函数离散化后,并不是离散化后的系统的最优控制函数。
    假设有如下离散系统:
                $$
                \left\{
                    \begin{aligned}
                        x_{1}(k+1) &= x_{1}(k) + h x_{2}(k) \\
                        x_{2}(k+1) &= x_{2}(k) + h u , |u| \leq  r
                    \end{aligned}
                \right.
                $$
    该离散系统的最速控制综合函数记作$u = fhan(x_{1}, x_{2}, r, h)$,其公式如下:
            $$
                \begin{equation}
                \left\{
                    \begin{aligned}
                        d &= rh \\
                        d_{0} &= hd \\
                        y &= x_{1} + h x_{2} \\
                        a_{0} &= \sqrt{ d^{2} + 8 r | y | } \\
                        a &= 
                            \left\{
                                \begin{aligned}
                                    &x_{2} + \frac{ (a_{0} - d ) } { 2 } \text{sign}(y), &|y| > d_{0} \\
                                    &x_{2} + \frac{y}{h}, &|y| \leq d_{0}
                                \end{aligned}
                            \right.\\
                        fhan &= - 
                                       \left\{
                                  \begin{aligned}
                                        &r \text{sign}(a), &|a| > d \\ 
                                        &r \frac{a}{d}, &|a| \leq d
                                  \end{aligned}
                                       \right.  
                    \end{aligned}
                \right.
                \label{fhan_equation}
                \end{equation}
            $$
#存疑
    P128,线性反馈闭环系统抑制未知扰动的能力的论述。
   2.7 离散系统快速最优控制综合函数的推导过程为什么需要用到G(2)的等时曲线,因为二阶系统最少需要用到2步才能达到最优状态吗?





转载于:https://www.cnblogs.com/NJdonghao/p/f211471d218dccf10bd2d94366bf2c7d.html

自抗扰控制(ADRC, Active Disturbance Rejection Control)是一种先进的控制策略,尤其适用于存在不确定性和外部扰动的系统。该算法由韩京清教授在1990年代提出,具有较强的鲁棒性和适应性。ADRC的核心思想是通过观测器估计并补偿系统中的总扰动,从而实现对系统的精确控制。 在实际工程中,ADRC常用于工业自动化、伺服控制、机器人系统等领域。以下将介绍ADRC的基本结构,并给出基于PLC(如博途TIA Portal)的SCL语言实现示例。 ### ADRC基本结构 ADRC通常由以下三个主要部分组成: 1. **跟踪微分器(TD, Tracking Differentiator)**:用于生成平滑的设定值轨迹,并提取设定值的微分信号。 2. **扩张状态观测器(ESO, Extended State Observer)**:用于估计系统的总扰动(包括模型不确定性、外部扰动等),并实时补偿。 3. **非线性状态误差反馈控制律(NLSEF, Nonlinear State Error Feedback)**:根据状态误差和扰动估计值生成控制信号。 --- ### ADRC控制算法实现(基于SCL语言) 以下是一个简化的ADRC控制算法实现,适用于博途PLC(TIA Portal)中的SCL语言编程环境: ```scl FUNCTION_BLOCK "ADRC" VAR_INPUT r: REAL; // 设定值 y: REAL; // 实际输出 T: REAL; // 控制周期 END_VAR VAR_OUTPUT u: REAL; // 控制输出 END_VAR VAR // TD 参数 h0: REAL := 0.01; r0: REAL := 1.0; d: REAL := 0.1; v1: REAL := 0.0; a1: REAL := 0.0; // ESO 参数 beta1: REAL := 10.0; beta2: REAL := 10.0; beta3: REAL := 10.0; z1: REAL := 0.0; z2: REAL := 0.0; z3: REAL := 0.0; b0: REAL := 1.0; // NLSEF 参数 alpha: REAL := 0.5; delta: REAL := 0.01; w: REAL := 1.0; e: REAL := 0.0; fe: REAL := 0.0; END_VAR // TD - 跟踪微分器 a1 := (r - v1) / T; v1 := v1 + T * a1; a1 := a1 + T * (-r0 * SIGN(a1) * (ABS(a1) > d) + (a1 <= d) * (-d)); // ESO - 扩张状态观测器 e := z1 - y; z1 := z1 + T * (z2 - beta1 * e); z2 := z2 + T * (z3 - beta2 * e + b0 * u); z3 := z3 + T * (-beta3 * e); // NLSEF - 非线性反馈控制律 e := v1 - z1; fe := w * (e / (ABS(e) + delta) ) * (ABS(e) > delta) + w * e * (ABS(e) <= delta); u := (fe - z3) / (b0 * T); END_FUNCTION_BLOCK ``` --- ### 线性ADRC(LADRC)实现简述 由于非线性ADRC参数较多且稳定性分析困难,高志强在2003年提出了线性ADRC(LADRC)[^4]。LADRC简化了观测器和控制器的设计,通常采用线性观测器和线性反馈控制律,便于工程实现和稳定性分析。 LADRC控制律可表示为: $$ u = K_p (r - z_1) - \frac{z_3}{b_0} $$ 其中 $ z_1 $、$ z_2 $、$ z_3 $ 是ESO的估计状态,$ b_0 $ 是系统增益,$ K_p $ 是比例增益。 --- ### 应用建议 - 在PLC中实现ADRC时,建议使用SCL语言编写函数块,便于模块化和复用。 - 可根据系统特性调整TD、ESO和NLSEF的参数,以获得最佳控制性能。 - 在实际应用中,应结合系统辨识技术获取系统模型参数,如增益 $ b_0 $ 和控制周期 $ T $。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值