介绍

扰动观测器作为一种用于估计施加到受控对象的扰动的方法而广为人知。扰动观测器的应用实例很多,活跃在各种场合,特别是在电机、机器人等机电一体化控制中。

另一方面,有一个未知的输入观察者作为类似命名的估计技术。这种方法的文献比扰动观察者少,而且我没有看到太多比较两者的内容,所以我创建了这篇文章。在描述了特别强调未知输入观察器的基本思想之后,我们将通过使用 MATLAB/Simulink 的仿真来检查行为。
干扰观察器通常用于抑制估计的干扰,但在本文中,我们将只关注估计的状态,因为它们在抑制(取消)时都做同样的事情。

未知输入观察者以下简称UIO(Unknown Input Observer)。
UIO 旨在估计受控对象的状态变量,而不受施加到输入端子的未知信号的影响。通过估计状态变量,我们可以间接估计到输入端的未知信号。扰动观测器也可以根据思维方式来估计输出端扰动,不过好像没那么常用。

本文将输入端的所有未知信号称为扰动,比较输入端扰动的估计状态。
点击此处查看 UIO 文献1,关于扰动观察者的文献在这里2是。由于略过详细讨论,具体内容请参考原文档。

受控对象

受控对象由以下线性连续时间状态方程表示
(这篇文章并没有去控制它,所以称它为观察目标可能会更好。)

egin{align}
 dot{x}(t) &= A_c x(t)+ B_c u(t) + E_c d(t) \
y(t) &= C x(t) 
end{align}

两种方法都可以认为是作为一个连续时间系统来应用,但是为了放宽后面描述的应用条件,UIO似乎基本上是在离散时间系统中构建的。
假设对于上述连续时间系统(所谓的零阶保持),输入$u$和扰动$d$在采样周期$T$内都是常数,则得到以下离散时间系统。

egin{align}
 x_{k+1} &= A x_k + B u_k + E d_k \
y_k &= C x_k
end{align}

其中状态 $x_k 在 mathbb{R}^n$,输入 $u_k 在 mathbb{R}^p$,扰动 $d_k 在 mathbb{R}^r$,输出 $y_k 在 mathbb{R}^m$ 是。导出系数矩阵$A$、$B$和$E$的方法被省略,但是矩阵被设置为匹配每个变量的大小。

配置未知输入观察者

先说结论,UIO旨在通过在时间轴上取两个观测值来彻底消除干扰的影响。由于去除了干扰的影响,干扰也可以恢复。我们将在下面更详细地讨论这一点。

考虑构建以下同维观察者。
尽管该术语是作者创造的,但为了方便将其与后面描述的略有不同的 UIO 区分开来,我们将其称为单速率 UIO。

egin{align}
 hat{x}_{k+1} &= (A- L_1 CA - L_2 C) hat{x}_k + (B-L_1 C B) u_k + L_1 y_{k+1} + L_2 y_k \
end{align}

其中 mathbb{R}^n$ 中的 $hat{x}_k 是估计状态,$L_1$, $L_2$ 是适当大小的观察者增益矩阵。

右边的下标与正常状态观察者不同,出现$y_{k+1}$。突然出现的 $L_1 CA$ 和 $L_1 CB$ 术语的含义现阶段很难理解,但如果你认为它与 $y_{k+1}$ 的存在相匹配的话应该是有道理的。
一个普通的观察者在步骤 $k$ 处有一个步骤 $k+1$ 的预测公式,但在这种情况下,步骤 $k+1$ 估计步骤 $k+1$ 处的 $x$。换句话说,普通的观察者是一个提前一步的预测公式,而未知的输入观察者是估计当前情况的形式。但是)。
实现时,所有$k$都是-1,$hat{x}_k = hat{A} ​​hat{x}_{k-1} + hat{B} u_{k-1}+ L_1 y_{k } + L_2 y_{k-1}$。

将这个观察者的估计误差$e_{k+1} = x_{k+1} - hat{x}_{k+1}$,估计误差动态表示如下。

egin{align}
 e_{k+1}  = (A- L_1 CA - L_2 C) e_k + (E - L_1 C E) d_k 
end{align}

所以,

  1. $E - L_1 C 选择 $L_1$ 其中 E=0$
  2. $(A- L_1 CA - L_2 C)$ 可以放置在稳定的杆上

    ,估计误差系统是稳定的,对扰动$d_k$不敏感。换言之,估计误差随着时间的推移趋向于0,而不受任何干扰的影响。

    前一个条件1是${ 它被证明等价于 m rank}(CE)=r$。重申一下符号的含义,条件是输出系数矩阵$C$和扰动系数矩阵$E$的乘积的阶数与扰动阶数$r$相同。
    后一个条件 2 被证明等同于可检测到的对 $(C, A-E(CE)^{+}CA)$。注意 $(CE)^{+}=[(CE)^T(CE)]^{-1} (CE)^T$ 是 Moore-Penrose 伪逆矩阵。感觉和前1有重叠,但是如果$(CE)^T(CE)$是不规则的,这个条件也不满足。

    单速率 UIO 的扰动估计公式

    扰动估计公式使用状态估计值$hat{x}_k$通过以下公式获得。
    (可以通过将原始离散时间动力学的两边乘以 $C$ 并使用 $C x_{k+1}=y_{k+1}$ 得出)

    egin{align}
     hat{d}_{k} &= (CE)^{+} (y_{k+1} - CAhat{x}_k - CBu_k) 
    end{align}
    

    在原始文档中,左侧是$d_{k+1}$,但我敢于使用上面的表达式。从 $y_{k+1}$ 估计过去的干扰似乎是正确的。
    有资料说加上$L_3 (C hat{x}_k - y_k)$这个词可以改善瞬态特性,但是我通过模拟不明白效果的程度,所以决定在这篇文章中不使用它. 增加。

    综上,满足条件1和条件2
    (或等效条件 1. ${ 条件 2.$(C, A-E(CE)^{+}CA)$ 的单速率 UIO 设计过程,其中 m rank}(CE)=r$ 是可检测的,如下所示。

    1. 用 $L_1 = E(CE)^{+}$ 得到 $L_1$。
    2. 从前面得到的$L_1$,用极点法求$L_2$,使$(A-L_1 CA - L_2 C)$稳定。
    3. 对 $hat{x}_{k+1}$ 和 $hat{d}_{k}$ 实现上述估计公式。

      单速率 UIO 的可配置条件

      我把条件写得很轻松,但令人惊讶的是这两个条件很麻烦。

      条件一是关于离散时间系统的$E$矩阵的判断,而不是连续时间系统的判断。我想回到原来的$E=(int^T_0 e^{A au} d au) E_c$,只用$E_c$和$C$来判断。想想。

      此外,即使满足条件 1,也可能不满足条件 2。特别是当观测阶数$m$和扰动阶数$r$相同时,条件2总是不满足。这一点可能很长,所以我将省略细节,只描述结果。

      如果我们将观察顺序$m$和扰动顺序$r$除以大小关系,我们可以总结出构造UIO的条件如下:
      如果 $m<r$ → 显然 UIO 不可配置
      如果 $m>r$ → 满足以上条件 1 和 2,则可以配置单速率 UIO
      如果$m=r$ → 以上单速率UIO不能配置

      这是另一方面,UIO 已被提议将应用范围扩展到$m=r$。我将在下一节中介绍它。

      构建一个范围更广的未知输入观察者

      我们将考虑上述$m=r$条件下的应用。下面的讨论假设$m=r$(因为如果$m>r$,就使用前面提到的UIO)。

      现在,让我们回到原来的被控对象的连续时间系统,考虑在采样周期$T$内获得另一个点观测数据$z_k$的情况。
      如果 $0<i<1$ 且 $i=1/2$,则传感器的输出以两倍的频率进行采样。

      外乱オブザーバと未知入力オブザーバの違いについて

      然后我们可以创建以下离散时间系统,并将辅助输出 $z_k$ 添加到原始离散时间方程。
      它是所谓的多采样率2延迟输出离散时间系统。

      egin{align}
       x_{k+1} &= A x_k + B u_k + E d_k \
      left[
      egin{array}{cc}
      y_k \
      z_k
      end{array}
      
      ight] &= left[
      egin{array}{cc}
      C \
      C 	ilde{A}
      end{array}
      
      ight] x_k +
      left[
      egin{array}{cc}
      0 \
      C 	ilde{B}
      end{array}
      
      ight] u_k + 
      left[
      egin{array}{cc}
      0 \
      C 	ilde{E}
      end{array}
      
      ight] d_k 
      end{align}
      

      其中 $ ilde{A}=e^{A_c i T}$, $ ilde{B}=(int^{iT}_0 e^{A_c au} d au) B_c$, $ ilde{E}=(int^ {iT}_0 e^{A_c au} d au) E_c$。

      让我们考虑在这个系统中应用一个结构与前一个类似的观察者。
      这也是作者自创的一个名词,但我将其称为双倍率UIO。

      egin{align}
       hat{x}_{k+1} &= (A- L_1 C 	ilde{A} - L_2 C) hat{x}_k + (B-L_1 C 	ilde{B}) u_k + L_1 z_k + L_2 y_k \
      end{align}
      

      对于这个观察者,再次将估计误差 $e_{k+1} = x_{k+1} - hat{x}_{k+1}$,估计误差动态表示如下。

      egin{align}
       e_{k+1}  &= x_{k+1} - hat{x}_{k+1} \
       &= (A x_k + B u_k + E d_k) - ((A- L_1 C 	ilde{A} - L_2 C) hat{x}_k + (B-L_1 C 	ilde{B}) u_k + L_1 z_k + L_2 y_k)\
       &= (A x_k + B u_k + E d_k) - ((A- L_1 C 	ilde{A} - L_2 C) hat{x}_k + (B-L_1 C 	ilde{B}) u_k + L_1 (C 	ilde{A} 
       x_k + C 	ilde{B} u_k +  C 	ilde{E} d_k) + L_2 C x_k )
      end{align}
      

      通过这样安排,与$u_k$相关的项很快就消失了,得到下面的等式,和上一个非常相似。

      egin{align}
       e_{k+1}  &= (A- L_1 C 	ilde{A} - L_2 C) e_k  + (E-L_1 C 	ilde{E})  d_k
      end{align}
      

      所以,

      1. $E - L_1 C ilde{E}=0$ 选择 $L_1$
      2. $(A- L_1 C ilde{A} - L_2 C)$ 可以放置在稳定的杆上

        在这种情况下,可以构造一个对干扰 $d_k$ 不敏感的观察者。
        与上一个不同的是假设了$m=r$,所以不需要提出伪逆矩阵。
        因此,上述条件1等价于$C ilde{E}$是否正则,如果是正则则选择$L_1 = E(C ilde{E})^{-1}$。
        对于条件 2,代入 $L_1 = E(C ilde{E})^{-1}$, $(C, A- E(C ilde{E})^{-1}C ilde{A} )$对应该是可检测的。

        它仍然不适合的原因是每个条件都包含符号〜,即$i$。如果条件改成不包含$i$的条件,就可以判断是否可以配置UIO,而不用担心在原始周期$T$中采样到哪个位置。

        也不用担心这个,因为每个条件都对应

        1. 对于几乎所有的$i$,如果$CE$ 是正则的,那么$C ilde{E}$ 也是正则的
        2. 当原始连续时间系统中 $(C,A_c,E_c)$ 的组合不存在原点零时(即在从 $d$ 到 $y$ 的路径上),几乎在每个 $i$ $(C, A- E(C ilde{E})^{-1}C ilde{A})$ 是可检测的

          显示。同样,条件 2 有点难以理解,但我们稍后将通过数值示例来确认这一点。

          双倍率UIO的扰动估计公式

          与$m=r$时类似,扰动估计公式如下。同样,它是一个估计位于 $z_k$ 过去的 $d_k$ 的公式。

          egin{align}
           hat{d}_{k} &= (C	ilde{E})^{-1} (z_k - C 	ilde{A} hat{x}_k - C 	ilde{B} u_k) 
          end{align}
          

          综上所述,即使$m=r$,只要满足条件1和条件2,就可以配置双倍速率UIO,设计过程如下。

          1. 设置$i$,即在采样周期$T$ 内进行另一次测量的时间。
          2. 用 $L_1 = E(C ilde{E})^{-1}$ 得到 $L_1$。
          3. 从前面得到的$L_1$,通过极点放置法找到$L_2$,使得$(A- L_1 C ilde{A} - L_2 C)$ 是稳定的。
          4. 对 $hat{x}_{k+1}$ 和 $hat{d}_{k}$ 实现上述估计公式。

            扰动观察器的配置

            由于对扰动观测器的解释很多,所以只给出结果。请注意,状态变量等符号与未知输入观察者重叠。

            假设阶跃扰动$d_{k+1}=d_k$,通过构造扩展系统,通过下式得到离散时间系统的扰动观测器。

            egin{align}
             left(
            egin{array}{c}
            hat{x}_{k+1} \
            hat{d}_{k+1}
            end{array}
            
            ight) &= left(
            egin{array}{cc}
            A & E \
            0 & 1
            end{array}
            
            ight)  left(
            egin{array}{c}
            hat{x}_k \
            hat{d}_k
            end{array}
            
            ight) + left(
            egin{array}{cc}
            B \
            0
            end{array}
            
            ight) u_k + Lleft(C left(
            egin{array}{c}
            hat{x}_k \
            hat{d}_k
            end{array}
            
            ight)  - y_k 
            ight)
            end{align}
            

            请注意,此状态方程比原始状态方程高 1 阶,并且观察者增益 $L$ 也是相应大小的矩阵。

            模拟比较

            将 MATLAB/Simulink 代码放在下面。
            我正在使用控制系统工具箱。

            DOB_vs_UIO.m
            %% 物理パラメータの設定
            J = 1;
            c_th = 0.1;
            k = 1;
            
            %% 連続時間&離散時間の状態空間モデルの設定
            Ac = [0 1;-c_th/J -k/J ];
            Bc = [0;1/J];
            Ec = [0;1/J]; % 外乱の係数行列は入力と同じ。マッチング条件を満たす。
            C = [1 0];
            % C = [0 1]; %% 速度観測ではこのUIOは構成できない
            Dc = 0;
            T = 0.001;
            [A, B, ~, D] = c2dm(Ac,Bc, C, Dc, T);
            [~, E, ~, ~] = c2dm(Ac,Ec, C, Dc, T);
            
            %% シングルレートのUIO構成条件のチェック
            rank([eye(2); eye(2)*(A-E*inv((eye(2)*E)'*(eye(2)*E))*(eye(2)*E)'*eye(2)*A)]) %ランク2なのでOK
            rank([[0 1]; [0 1]*(A-E*inv(([0 1]*E)'*([0 1]*E))*([0 1]*E)'* [0 1]*A)]) %ランク1なのでNG
            rank([[1 0]; [1 0]*(A-E*inv(([1 0]*E)'*([1 0]*E))*([1 0]*E)'* [1 0]*A)]) %ランク1なのでNG
            
            %% 未知入力オブザーバの設計
            i = 0.5; %(0<i<1)の範囲で設定する
            [A_til, B_til, C_til, D_til] = c2dm(Ac,Bc, C, Dc, T*i);
            [~, E_til, ~, ~] = c2dm(Ac,Ec, C, Dc, T*i);
            
            invCE_til = inv(C*E_til);
            
            L1 = E * invCE_til;
            pole_uio = [0.9 0.8];
            L2 = place((A - L1*C*A_til)', C', pole_uio)';
            %L3 = invCE_til * (C*A_til*C') * inv(C*C');
            A_hat = A - L1*C*A_til - L2*C;
            B_hat = B - L1*C*B_til;
            
            %% ダブルレートのUIO構成条件のチェック
            rank([[0 1]; [0 1]*(A-E*inv([0 1]*E_til)*[0 1]*A_til)]) %ランク1なのでNG
            rank([[1 0]; [1 0]*(A-E*inv([1 0]*E_til)*[1 0]*A_til)]) %ランク2なのでOK
            
            %% 外乱オブザーバ 
            A_dob = [A E;0 0 1]; B_dob = [B;0]; C_dob = [C 0]; D_dob=0; % 離散時間の拡大系
            pole_dob = [0.9 0.8 0.7];
            L_dob = place(A_dob', C_dob', pole_dob)';
            
            %% シミュレーション実行
            out = sim('sim_DOB_vs_UIO');
            

            作为一个简单的模拟,考虑以下连续时间系统的应用。 $x$是由位置和速度组成的二维状态向量,例如是假设弹簧质量阻尼器系统的状态方程。
            输入$u$,对外输出$d$,但是这次不会有输入值了(以后就这样了)。
            我们稍后会回到观察输出。让我们考虑 1) 可以观察到位置和速度的地方,2) 只能观察到速度的地方,以及 3) 只能观察到位置的地方。 (1) 是 $m>r$ 的示例,(2) 和 (3) 是 $m=r=1$,并且应用了双倍利率 UIO。在本文中,我们将省略单速率 UIO,仅验证双速率 UIO 的行为。

            egin{align}
            dot{x}(t) &= left(
            egin{array}{cc}
            0 & 1 \
            -0.1 & -1
            end{array}
            
            ight) x(t) + left(
            egin{array}{cc}
            0 \
            1
            end{array}
            
            ight) u(t) + left(
            egin{array}{cc}
            0 \
            1
            end{array}
            
            ight) d(t) 
            end{align}
            

            这个连续时间系统是零阶保持离散的,采样周期为 $T=0.001$[s]。
            其实是用 MATLAB 的 c2dm 函数完成的,所以请检查代码。

            同理,辅助输出$z_k$的观察时序为$i=0.5$,得到与辅助输出相关的各个矩阵。
            我还使用了 MATLAB 的 c2dm 函数。
            只有 $E$ 和 $ilde{E}$ 与条件检查相关,因此列出了数字。获得了以下结果。

            egin{align}
            	ilde{E}= left(
            egin{array}{cc}
               0.0005
            m{e}-03 \
               0.9995
            m{e}-03
            end{array}
            
            ight),  	ilde{E}= left(
            egin{array}{cc}
               1.2498
            m{e}-07 \
               4.9988
            m{e}-04
            end{array}
            
            ight)
            end{align}
            

            观察位置和速度时

            如果位置和速度都可以观察到,$C$ 就变成了一个二维单位矩阵。
            条件 1. 对于单速率 UIO 是

            egin{align}
            {
            m rank } (CE) = {
            m rank } left(
            left(
            egin{array}{cc}
             1 & 0 \
             0 & 1 
            end{array}
            
            ight)
            left(
            egin{array}{cc}
               0.0005
            m{e}-03 \
               0.9995
            m{e}-03
            end{array}
            
            ight)
            
            ight) = 1
            end{align}
            

            比 ${ 满足,因为 m rank} (CE) = r$。

            单速率 UIO 条件 2. $(C, A-E(CE)^{+}CA)$ 是可检测的。如果您有兴趣,请检查代码。毕竟可观察性矩阵是rank 2,所以这个条件也满足。

            因此,如果可以同时观察位置和速度,则可以配置单速率 UIO。

            仅用于速度观察

            对于速度观察,$C=[0 1]$。

            单费率 UIO 的条件 1 是 $CE$ 是一个非零常数,所以 ${ m 秩} (CE) = 1$。
            单速率 UIO 的条件 2 不能满足,因为 $(C, A-E(CE)^{+}CA)$ 的可观察性矩阵导致排名为 1。应该看到但省略)。同样,在 $m=r$ 条件下似乎无法配置单速率 UIO。

            接下来,我们来看看双倍率UIO的条件。
            条件 1 得到满足,因为 $C ilde{E}$ 是一个非零常数并且显然是正则的。

            我们将检查条件 2。
            从 $d$ 到 $y$ 的传递函数是

            egin{align}
            G(s) &= C(sI-A_c)^{-1} E_c \
            &= C  rac{{
            m adj}(sI-A_c)}{{
            m det}(sI-A_c)}  E_c
            end{align}
            

            由获得当您实际输入数字时

            egin{align}
            G(s) &= (0  1)  rac{{
            m adj}
            left(
            egin{array}{cc}
            s & -1\
            0.1 & s+1
            end{array}
            
            ight)
            }{{
            m det} 
            left(
            egin{array}{cc}
            s & -1\
            0.1 & s+1
            end{array}
            
            ight)
            }  left(
            egin{array}{cc}
            0 \
            1
            end{array}
            
            ight) \
            &= (0  1)  rac{
            left(
            egin{array}{cc}
            s+1 & 1\
            -0.1 & s
            end{array}
            
            ight)
            }{
            s^2 + s + 0.1
            }  left(
            egin{array}{cc}
            0 \
            1
            end{array}
            
            ight) \
            &= rac{s}{
            s^2 + s + 0.1
            } 
            end{align}
            

            在最后一行 $C$ 和 $E_c$ 提取了辅因子矩阵的右下角。
            因此,我们可以看到原点零包含在从$d$到$y$的特征中,仅观察速度时不满足条件2。
            当我尝试制作 $(C, A- E(C ilde{E})^{-1} C ilde{A})$ 的可观察性矩阵时,它仍然是 1 级。

            毕竟,事实证明,当只能观察速度时,无法配置 UIO。

            仅用于位置观察

            对于位置观察,$C=[1 0]$。

            单费率 UIO 的条件 1 是 $CE$ 是一个非零常数,所以 ${ m 秩} (CE) = 1$。
            单速率 UIO 的条件 2 不能满足,因为 $(C, A-E(CE)^{+}CA)$ 的可观察性矩阵导致排名为 1。(以下省略))。同样,在 $m=r$ 条件下似乎无法配置单速率 UIO。

            接下来,我们来看看双倍率UIO的条件。
            条件 1. 得到满足,因为 $C ilde{E}$ 是一个非零常数并且显然是非奇异的。

            条件2是在速度观测的情况下使用计算过程得到的如下结果。

            egin{align}
            G(s) 
            &= (1  0)  rac{
            left(
            egin{array}{cc}
            s+1 & 1\
            -0.1 & s
            end{array}
            
            ight)
            }{
            s^2 + s + 0.1
            }  left(
            egin{array}{cc}
            0 \
            1
            end{array}
            
            ight) \
            &= rac{1}{
            s^2 + s + 0.1
            } 
            end{align}
            

            已提取辅因子矩阵的右上角。
            这不包含零并满足条件 2。

            因此,对于位置观察,我们看到可以配置双倍速率的 UIO。
            为什么我们不能只观察速度?这个我想再深入一点,但是作者实力不足,如果能补充一点,以后再补充。

            未知输入观察者和干扰观察者的配置比较

            既然我们知道可以为位置观测配置双倍速率 UIO,让我们实际将其与扰动观测器进行比较。
            (可以说扰动观测器也可以通过位置观测来观测扩展系统,但我就省略了。)

            Simulink 中的连接配置如下所示。没有输入,只有干扰。
            UIO 和扰动观测器都配置为仅从样本值 $y(t)$ 估计扰动。

            扰动观测器没有任何特殊的补充点,形式为每步$T=0.001$[s]更新离散时间状态方程。
            UIO也大致按照上面列出的公式连接。如果将它们并排放置,我认为您是在强调 UIO 是对两个输出进行采样的观察者。

            请注意,扰动观察器和 UIO 的处理周期相同,并且运行在 $T=0.001$。
            红圈部分是我有点上瘾的地方。
            在这部分中,$y_k$ 在 $T$ 秒延迟后采样,$z_k$ 在 $(1-i)T$ 秒延迟后采样。

            外乱オブザーバと未知入力オブザーバの違いについて

            有点难理解,下面我再补充一点。

            未知输入观察者操作的时序

            计算时间如下所示。我们可以从获得 $z_k$ 的那一刻起估计 $d_k$,但是这个模型在 $k+1$ 时估计 $d_k$ 和 $hat{x}_k$。

            外乱オブザーバと未知入力オブザーバの違いについて

            用微型计算机等实现时,似乎将在标有“计算时间”的箭头部分内进行计算。因此,从概念上看,$i=0.5$ 是最容易理解的,但较小的$i$ 在计算时间方面更有优势。但是,$i$ 越小,$(C ilde{E})^{-1}$ 就越大。换言之,整体增益变高,容易受到噪声等因素的影响。
            从$i$越小,你越需要认真看待$d$在一分钟间隔内出现在$z$中的情况,你可以直观地理解这一点。

            模拟结果

            已经很久了,但我们终于看到了结果。
            UIO 增益 $L_2$ 是通过将极点放置到 $[0.9 0.8]$ 和扰动观测器增益到 $[0.9 0.8 0.7]$ 获得的。

            估计阶跃扰动

            下面显示了如何通过两种方法应用和估计阶梯状干扰。
            左上为位置,右上为速度,左下为扰动估计状态。虽然扰动观测器具有估计的延迟,但 UIO 与 $T=0.001$ 之后的扰动值完全相同。

            UIO 的位置​​和速度估计看起来很糟糕,但这是因为估计值延迟了一步。因此,原始信号的变化量越大,误差越大。

            如果您假设它落后一步,那么与干扰观测器相比,误差非常小。本来可以改变时间比较的,但我认为只知道落后一步的值是不利的,所以我就这样进行了比较。这同样适用于随后的模拟结果。

            外乱オブザーバと未知入力オブザーバの違いについて

            随机干扰的估计

            我们还比较了给出一个在 -1 到 1 范围内波动的均匀随机数作为干扰的结果。
            扰动观测器由于估计的延迟并没有捕捉到扰动的特征,但是UIO在一步之后与扰动具有相同的值。

            在这里,UIO波形也没有因为落后一步而被校正,所以在信号变化量很大的地方似乎存在很大的误差。
            如果整个信号移动一步,与干扰观测器相比,任何波形都会有非常小的误差。
            外乱オブザーバと未知入力オブザーバの違いについて

            估计阶跃干扰(带有传感器噪声)

            在前面所示的阶梯状干扰估计中,传感器输出中添加了一个介于 -0.00001 和 0.00001 之间的均匀随机数。
            结果可以看出,即使有噪声,扰动观测器的估计误差也在一定范围内,而 UIO 估计不正确。右下图是左下角的放大图。

            模拟中的位置变化最多在 0.1 以内,确认了即使噪声约为其 1/10000,UIO 也无法进行估计。

            外乱オブザーバと未知入力オブザーバの違いについて

            结果解释

            从上面的模拟结果可以看出,UIO确实在下一步估计了扰动的准确值(在$iT$之后的最短时间),并且结果不依赖于扰动的性质。

            扰动观测器具有将扰动模型纳入状态方程的特点,假设它是阶跃扰动。扰动观测器不仅可以估计阶梯形扰动,还可以估计斜坡形和正弦扰动。这可能需要时间。
            与此相比,UIO 可以用完全相同的观察者估计各种扰动。

            但是,我觉得UIO有很多实际的弱点。如果观测值中即使存在少量噪声,就模拟而言似乎无法获得估计值。虽然这次没有尝试过,但我的印象是它很可能会受到建模错误的影响,因为它是建立逆模型并反向计算$d$的形式。

            综上所述

            在本文中,我们介绍了未知输入观测器 (UIO),并比较了扰动观测器的行为和扰动估计。

            UIO 可以准确估计同一观察者的任何干扰的行为非常有吸引力。然而,我觉得干扰观测器将继续在工业世界中发挥积极作用,用于估计干扰的应用,因为需要实现一个稍微复杂的多速率估计规则,并且它们容易受到噪声和其他因素的影响。 .

            另外,这是作者的个人观点,但总的来说,AD转换获取传感器值比DA转换输出模拟值需要更多时间。我认为毫不夸张地说,控制系统的周期是由获取传感器值的周期决定的。考虑到这些,甚至还有增加控制输入(模拟输出)速率的多速率控制,所以我觉得UIO有点难以实现。

            如果您有任何克服这些问题并实际应用于这些领域的UIO示例,请介绍一下。另外,如果有任何错误,请在评论中告诉我。

            感谢您的观看。

            1. “具有未知输入的线性系统的一般结构化观察器的设计”,Shao-Kung Chang,Wen-Tong You,Pau-Lo Hsu,富兰克林研究所学报,1997,https://www.sciencedirect.com/science/article/abs/pii/S0016003296000774

            2. 《扰动观察者》,岛田明,Corona Publishing,2021,https://www.coronasha.co.jp/np/isbn/9784339033823/


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308633059.html

相关文章:

  • 2021-07-24
  • 2021-12-25
猜你喜欢
  • 2021-06-04
  • 2021-11-14
  • 2021-10-29
  • 2022-12-23
  • 2021-07-28
  • 2021-08-10
  • 2021-07-04
相关资源
相似解决方案