我一直觉得滑模和ADRC有着很有意思的关系。可惜一般ESO(ADRC的核心)和SMC的设计及分析都是独立的,而这篇文章让我眼前一亮,启发颇深。
我们通过一个典型的积分串联型二阶系统来做详细说明
y ¨ = f ( y ˙ , y , d ( t ) ) + b u \ddot{y}=f(\dot{y},y,d(t))+bu y¨=f(y˙,y,d(t))+bu
{ e o = y − z 1 z ˙ 1 = z 2 + k 1 fal ( e o , θ 1 , δ ) z ˙ 2 = z 3 + b u + k 2 fal ( e o , θ 2 , δ ) z ˙ 3 = k 3 fal ( e o , θ 3 , δ ) \left\{\begin{array}{l}e_{\mathrm{o}}=y-z_{1} \\ \dot{z}_{1}=z_{2}+k_{1} \operatorname{fal}\left(e_{\mathrm{o}}, \theta_{1}, \delta\right) \\ \dot{z}_{2}=z_{3}+bu+k_{2} \operatorname{fal}\left(e_{\mathrm{o}}, \theta_{2}, \delta\right) \\ \dot{z}_{3}=k_{3} \operatorname{fal}\left(e_{\mathrm{o}}, \theta_{3}, \delta\right)\end{array}\right. ⎩⎪⎪⎨⎪⎪⎧eo=y−z1z˙1=z2+k1fal(eo,θ1,δ)z˙2=z3+bu+k2fal(eo,θ2,δ)z˙3=k3fal(eo,θ3,δ)
其中 z 1 , z 2 , z 3 z_1,z_2,z_3 z1,z2,z3分别为 y , y ˙ , f y,\dot{y},f y,y˙,f的估计值。
这是传统的eso。
下面我们注意一件事,上式很容易可以得到其微分方程形式
z ¨ 1 = k 1 dfal ( e o , θ 1 , δ ) d t + k 2 fal ( e o , θ 2 , δ ) + k 3 ∫ fal ( e o , θ 3 , δ ) + b u \begin{aligned} \ddot{z}_{1}=& k_{1} \frac{\operatorname{dfal}\left(e_{\mathrm{o}}, \theta_{1}, \delta\right)}{\mathrm{d} t}+k_{2} \operatorname{fal}\left(e_{\mathrm{o}}, \theta_{2}, \delta\right)+k_{3} \int \operatorname{fal}\left(e_{\mathrm{o}}, \theta_{3}, \delta\right)+bu \end{aligned} z¨1=k1dtdfal(eo,θ1,δ)+k2fal(eo,θ2,δ)+k3∫fal(eo,θ3,δ)+bu
注意到 z 1 = y ^ z_1=\hat{y} z1=y^,那么很容易的联想到
k 1 dfal ( e o , θ 1 , δ ) d t + k 2 fal ( e o , θ 2 , δ ) + k 3 ∫ fal ( e o , θ 3 , δ ) \begin{aligned}& k_{1} \frac{\operatorname{dfal}\left(e_{\mathrm{o}}, \theta_{1}, \delta\right)}{\mathrm{d} t}+k_{2} \operatorname{fal}\left(e_{\mathrm{o}}, \theta_{2}, \delta\right)+k_{3} \int \operatorname{fal}\left(e_{\mathrm{o}}, \theta_{3}, \delta\right)\end{aligned} k1dtdfal(eo,θ1,δ)+k2fal(eo,θ2,δ)+k3∫fal(eo,θ3,δ)
是不是为 f f f的估计值?
f ^ = k 1 dfal ( e o , θ 1 , δ ) d t + k 2 fal ( e o , θ 2 , δ ) + k 3 ∫ fal ( e o , θ 3 , δ ) \begin{aligned}&\hat{f}= k_{1} \frac{\operatorname{dfal}\left(e_{\mathrm{o}}, \theta_{1}, \delta\right)}{\mathrm{d} t}+k_{2} \operatorname{fal}\left(e_{\mathrm{o}}, \theta_{2}, \delta\right)+k_{3} \int \operatorname{fal}\left(e_{\mathrm{o}}, \theta_{3}, \delta\right)\end{aligned} f^=k1dtdfal(eo,θ1,δ)+k2fal(eo,θ2,δ)+k3∫fal(eo,θ3,δ)
在原系统的基础上引入扰动估计误差,可重写系统
y ¨ = ( f − f ^ ) + ( f ^ + b u ) \ddot{y}=(f-\hat{f})+(\hat{f}+bu) y¨=(f−f^)+(f^+bu),
其中 f ~ = f − f ^ , v = ( f ^ + b u ) \tilde{f}=f-\hat{f},v=(\hat{f}+bu) f~=f−f^,v=(f^+bu)
选取滑模面 s = y ˙ + k s y s=\dot{y}+k_sy s=y˙+ksy,趋近率选取等速控制率 s ˙ = − η s g n ( s ) \dot{s}=-\eta sgn(s) s˙=−ηsgn(s)
则可得滑模控制率 v = − k s y ˙ − η s g n ( s ) v=-k_s\dot{y}-\eta sgn(s) v=−ksy˙−ηsgn(s)
结合 v = ( f ^ + b u ) v=(\hat{f}+bu) v=(f^+bu)可得最终的控制率
u = ( 1 / b ) ( − k s y ˙ − η s g n ( s ) − f ^ ) u=(1/b)(-k_s\dot{y}-\eta sgn(s)-\hat{f}) u=(1/b)(−ksy˙−ηsgn(s)−f^)
将控制率带入原系统,结合滑模面和趋近率,则有如下关系式
f ~ = s ˙ + η s g n ( s ) \tilde{f}=\dot{s}+\eta sgn(s) f~=s˙+ηsgn(s)
下面我们讨论eso观测误差 e 0 e_0 e0和 f ~ \tilde{f} f~的关系
e ¨ 0 = y ¨ − z ¨ 1 = y ¨ − ( k 1 dfal ( e o , θ 1 , δ ) d t + k 2 fal ( e o , θ 2 , δ ) + k 3 ∫ fal ( e o , θ 3 , δ ) ) − b u \ddot{e}_0=\ddot{y}-\ddot{z}_1\\=\ddot{y}-(\begin{aligned}& k_{1} \frac{\operatorname{dfal}\left(e_{\mathrm{o}}, \theta_{1}, \delta\right)}{\mathrm{d} t}+k_{2} \operatorname{fal}\left(e_{\mathrm{o}}, \theta_{2}, \delta\right)+k_{3} \int \operatorname{fal}\left(e_{\mathrm{o}}, \theta_{3}, \delta\right)\end{aligned})-bu e¨0=y¨−z¨1=y¨−(k1dtdfal(eo,θ1,δ)+k2fal(eo,θ2,δ)+k3∫fal(eo,θ3,δ))−bu
而 y ¨ = f ~ + v , b u = v − f ^ \ddot{y}=\tilde{f}+v,bu=v-\hat{f} y¨=f~+v,bu=v−f^
带入相消,最后可得 e ¨ 0 = f ~ \ddot{e}_0=\tilde{f} e¨0=f~
显然的
e ¨ 0 = s ˙ + η s g n ( s ) \ddot{e}_0=\dot{s}+\eta sgn(s) e¨0=s˙+ηsgn(s)
将 f ~ = s ˙ + η s g n ( s ) \tilde{f}=\dot{s}+\eta sgn(s) f~=s˙+ηsgn(s)重写成 f = s ˙ + η s g n ( s ) + f ^ f=\dot{s}+\eta sgn(s)+\hat{f} f=s˙+ηsgn(s)+f^并结合上式,可以得到 e 0 e_0 e0的微分方程
e ¨ 0 + k 1 dfal ( e o , θ 1 , δ ) d t + k 2 fal ( e o , θ 2 , δ ) + k 3 ∫ fal ( e o , θ 3 , δ ) = f \begin{aligned} \ddot{e}_{0}+& k_{1} \frac{\operatorname{dfal}\left(e_{\mathrm{o}}, \theta_{1}, \delta\right)}{\mathrm{d} t}+k_{2} \operatorname{fal}\left(e_{\mathrm{o}}, \theta_{2}, \delta\right)+k_{3} \int \operatorname{fal}\left(e_{\mathrm{o}}, \theta_{3}, \delta\right)=f \end{aligned} e¨0+k1dtdfal(eo,θ1,δ)+k2fal(eo,θ2,δ)+k3∫fal(eo,θ3,δ)=f
S ¨ + k 1 dfal ( S , θ 1 , δ ) d t + k 2 fal ( S , θ 2 , δ ) + k 3 ∫ fal ( S , θ 3 , δ ) = f \begin{aligned} \ddot{S}+& k_{1} \frac{\operatorname{dfal}\left(S, \theta_{1}, \delta\right)}{\mathrm{d} t}+k_{2} \operatorname{fal}\left(S, \theta_{2}, \delta\right)+k_{3} \int \operatorname{fal}\left(S, \theta_{3}, \delta\right)=f \end{aligned} S¨+k1dtdfal(S,θ1,δ)+k2fal(S,θ2,δ)+k3∫fal(S,θ3,δ)=f
化成以下等效形式
{ S ¨ = − u + f u = k 1 dfal ( S , θ 1 , δ ) d t + k 2 fal ( S , θ 2 , δ ) + k 3 ∫ fal ( S , θ 3 , δ ) \left\{\begin{array}{c}\ddot{S}=-u+f \\ u=k_{1} \frac{\operatorname{dfal}\left(S, \theta_{1}, \delta\right)}{\mathrm{d} t}+k_{2} \operatorname{fal}\left(S, \theta_{2}, \delta\right)+ k_{3} \int \operatorname{fal}\left(S, \theta_{3}, \delta\right)\end{array}\right. {S¨=−u+fu=k1dtdfal(S,θ1,δ)+k2fal(S,θ2,δ)+k3∫fal(S,θ3,δ)
在这个式子中,我们将 f f f看成输入,而 − u -u −u看成总扰动
建立如下的"eso"
{ x ^ ˙ 1 = x ^ 2 + k 1 fal ( S − x ^ 1 , θ 1 , δ ) x ^ ˙ 2 = f + x ^ 3 + k 2 fal ( S − x ^ 1 , θ 2 , δ ) x ^ ˙ 3 = k 3 fal ( S − x ^ 1 , θ 3 , δ ) \left\{\begin{array}{l}\dot{\hat{x}}_{1}=\hat{x}_{2}+k_{1} \operatorname{fal}\left(S-\hat{x}_{1}, \theta_{1}, \delta\right) \\ \dot{\hat{x}}_{2}=f+\hat{x}_{3}+k_{2} \operatorname{fal}\left(S-\hat{x}_{1}, \theta_{2}, \delta\right) \\ \dot{\hat{x}}_{3}=k_{3} \operatorname{fal}\left(S-\hat{x}_{1}, \theta_{3}, \delta\right)\end{array}\right. ⎩⎨⎧x^˙1=x^2+k1fal(S−x^1,θ1,δ)x^˙2=f+x^3+k2fal(S−x^1,θ2,δ)x^˙3=k3fal(S−x^1,θ3,δ)
同样的,我们可以得到其微分方程形式
x ^ ¨ 1 = f + k 1 dfal ( S − x ^ 1 , θ 1 , δ ) ) d t + k 2 fal ( S − x ^ 1 , θ 2 , δ ) + k 3 ∫ f a l ( S − x ^ 1 , θ 3 , δ ) \begin{aligned} \ddot{\hat{x}}_{1}=& f+k_{1} \frac{\left.\operatorname{dfal}\left(S-\hat{x}_{1}, \theta_{1}, \delta\right)\right)}{\mathrm{d} t}+\\ & k_{2} \operatorname{fal}\left(S-\hat{x}_{1}, \theta_{2}, \delta\right)+k_{3} \int \mathrm{fal}\left(S-\hat{x}_{1}, \theta_{3}, \delta\right) \end{aligned} x^¨1=f+k1dtdfal(S−x^1,θ1,δ))+k2fal(S−x^1,θ2,δ)+k3∫fal(S−x^1,θ3,δ)
当 S = 0 S=0 S=0时,
x ^ ¨ 1 = f − k 1 dfal ( x ^ 1 , θ 1 , δ ) ) d t − k 2 fal ( x ^ 1 , θ 2 , δ ) − k 3 ∫ f a l ( x ^ 1 , θ 3 , δ ) \begin{aligned} \ddot{\hat{x}}_{1}=& f-k_{1} \frac{\left.\operatorname{dfal}\left(\hat{x}_{1}, \theta_{1}, \delta\right)\right)}{\mathrm{d} t}- k_{2} \operatorname{fal}\left(\hat{x}_{1}, \theta_{2}, \delta\right)-k_{3} \int \mathrm{fal}\left(\hat{x}_{1}, \theta_{3}, \delta\right) \end{aligned} x^¨1=f−k1dtdfal(x^1,θ1,δ))−k2fal(x^1,θ2,δ)−k3∫fal(x^1,θ3,δ)
且 x 1 → S = 0 x_1\rightarrow{S}=0 x1→S=0
与虚拟变量 S S S的微分方程对比
S = ∬ ( s ˙ + η sgn s ) = x ^ 1 → 0 S=\iint(\dot{s}+\eta \operatorname{sgn} s)=\hat{x}_1\rightarrow{0} S=∬(s˙+ηsgns)=x^1→0
当 η > 0 \eta>0 η>0时, s ˙ = − η s g n s \dot{s}=-\eta{sgns} s˙=−ηsgns是一个典型的等速趋近率,说明 s → 0 s\rightarrow{0} s→0,
则 S S S可推导至 ∫ s = ∫ ( y ˙ + k s y ) → 0 \int{s}=\int({\dot{y}+k_sy})\rightarrow{0} ∫s=∫(y˙+ksy)→0
由于 k s > 0 k_s>0 ks>0,则 y + k s ∫ y y+k_s\int{y} y+ks∫y其实是一个积分滑模面的形式,其是指数收敛的
所以 y → 0 y\rightarrow{0} y→0
参数的选取这里不多做分析,只贴出结论:在线性化范围内,控制器带宽由 k 1 , k 2 , k 3 , k s k_1,k_2,k_3,k_s k1,k2,k3,ks决定,具体来说,带宽方程为 ( w + w c ) ( w + w 0 ) 3 (w+w_c)(w+w_0)^3 (w+wc)(w+w0)3
其中 { k s = ω c k 1 = 3 ω o , k 2 = 3 ω o 2 , k 3 = ω o 3 \left\{\begin{array}{l}k_{\mathrm{s}}=\omega_{\mathrm{c}} \\ k_{1}=3 \omega_{\mathrm{o}}, k_{2}=3 \omega_{\mathrm{o}}^{2}, k_{3}=\omega_{\mathrm{o}}^{3}\end{array}\right. {ks=ωck1=3ωo,k2=3ωo2,k3=ωo3
1、eso观测器本质上可以看成是一个微分方程
2、结合滑模的改进eso本质上是跟踪了 S = ∬ ( s ˙ + η sgn s ) S=\iint(\dot{s}+\eta \operatorname{sgn} s) S=∬(s˙+ηsgns),并使其趋向于0,可以看出,通过两次积分提高了其平滑性,缓解了滑模的抖振问题
3、滑模面参数 k s k_s ks不仅仅影响系统的稳定性,更重要的是其直接决定了控制器的带宽
4、与其他结合了扰动观测器的滑模一样,切换增益 η \eta η不再要求不小于未知扰动上限,而是不小于扰动估计误差,降低了抖振
本人初入控制,有问题的地方望指出,如果侵权请私聊我立刻删除。