本博客需要一些现代控制理论中Lyapunov稳定性的一些理论知识。
您需要对滑模控制有一个初步的了解,可以参考:
[滑模控制器浅述] (1) 二阶系统的简单滑模控制器设计
滑模控制这么好,大家都爱用它,就是因为其自身有不错的抗干扰和抗参数不确定能力。本文将从数学和理论的角度,叙述为什么滑模控制能够抗系统参数不定。
[滑模控制器浅述] (2) 滑模控制抗干扰原理
考虑任意带干扰的二阶系统:
{ x ˙ 1 = x 2 x ˙ 2 = f ( x 1 , x 2 , t ) + g ( x 1 , x 2 ) u \left\{ \begin{aligned} & {{{\dot{x}}}_{1}}={{x}_{2}} \\ & {{{\dot{x}}}_{2}}=f\left( {{x}_{1}},{{x}_{2},{t}} \right)+g\left( {{x}_{1}},{{x}_{2}} \right)u \\ \end{aligned} \right. {x˙1=x2x˙2=f(x1,x2,t)+g(x1,x2)u其中 f ( x 1 , x 2 , t ) f\left( {{x}_{1}},{{x}_{2},{t}} \right) f(x1,x2,t)是未知,但其上界满足 ∣ f ( x 1 , x 2 , t ) ∣ < ∣ h ( x 1 , x 2 ) ∣ < σ \left| f\left( {{x}_{1}},{{x}_{2},{t}} \right) \right| <\left| h\left( {{x}_{1}},{{x}_{2}} \right) \right| <\sigma ∣f(x1,x2,t)∣<∣h(x1,x2)∣<σ,首先按照前文方法设计滑模控制器。
([滑模控制器浅述] (1) 二阶系统的简单滑模控制器设计)
定义误差:
e 1 = x 1 d − x 1 {{e}_{1}}=x_{1}^{d}-{{x}_{1}} e1=x1d−x1考虑滑模面, c > 0 c>0 c>0:
s = e ˙ 1 + c e 1 s={{\dot{e}}_{1}}+c{{e}_{1}} s=e˙1+ce1求导:
s ˙ = e ¨ 1 + c e ˙ 1 = x ¨ 1 d − x ˙ 2 + c e ˙ 1 \dot{s}={{\ddot{e}}_{1}}+c{{\dot{e}}_{1}}=\ddot{x}_{1}^{d}-{{\dot{x}}_{2}}+c{{\dot{e}}_{1}} s˙=e¨1+ce˙1=x¨1d−x˙2+ce˙1
ε > 0 \varepsilon >0 ε>0, r > 0 r>0 r>0,设计:
s ˙ = − ε s g n ( s ) − r s − f ( x 1 , x 2 , t ) \dot{s}=-\varepsilon sgn \left( s \right)-rs-f\left( {{x}_{1}},{{x}_{2},{t}} \right) s˙=−εsgn(s)−rs−f(x1,x2,t)求解输入:
x ¨ 1 d − x ˙ 2 + c e ˙ 1 = − ε s g n ( s ) − r s − f ( x 1 , x 2 , t ) x ¨ 1 d − g ( x 1 , x 2 ) u − f ( x 1 , x 2 , t ) + c e ˙ 1 = − ε s g n ( s ) − r s − f ( x 1 , x 2 , t ) u = x ¨ 1 d + ε s g n ( s ) + r s + c e ˙ 1 g ( x 1 , x 2 ) \begin{aligned} & \ddot{x}_{1}^{d}-{{{\dot{x}}}_{2}}+c{{{\dot{e}}}_{1}}=-\varepsilon sgn \left( s \right)-rs-f\left( {{x}_{1}},{{x}_{2},{t}} \right) \\ & \ddot{x}_{1}^{d}-g\left( {{x}_{1}},{{x}_{2}} \right)u-f\left( {{x}_{1}},{{x}_{2},{t}} \right)+c{{{\dot{e}}}_{1}}=-\varepsilon sgn \left( s \right)-rs-f\left( {{x}_{1}},{{x}_{2},{t}} \right) \\ & u=\frac{\ddot{x}_{1}^{d}+\varepsilon sgn \left( s \right)+rs+c{{{\dot{e}}}_{1}}}{g\left( {{x}_{1}},{{x}_{2}} \right)} \end{aligned} x¨1d−x˙2+ce˙1=−εsgn(s)−rs−f(x1,x2,t)x¨1d−g(x1,x2)u−f(x1,x2,t)+ce˙1=−εsgn(s)−rs−f(x1,x2,t)u=g(x1,x2)x¨1d+εsgn(s)+rs+ce˙1考虑如下Lyapunov函数:
V = 1 2 s 2 V=\frac{1}{2}{{s}^{2}} V=21s2求导:
V ˙ = s s ˙ = − ε s s g n ( s ) − r s 2 − s f ( x 1 , x 2 , t ) ≤ − ∣ s ∣ ( ε − ∣ f ( x 1 , x 2 , t ) ∣ ) − r s 2 ≤ − ∣ s ∣ ( ε − σ ) − r s 2 \begin{aligned} & \dot{V}=s\dot{s} \\ & =-\varepsilon ssgn \left( s \right)-r{{s}^{2}}-sf\left( {{x}_{1}},{{x}_{2},{t}} \right) \\ & \le -\left| s \right|\left( \varepsilon -\left| f\left( {{x}_{1}},{{x}_{2},{t}} \right) \right| \right)-r{{s}^{2}} \\ & \le -\left| s \right|\left( \varepsilon -\sigma \right)-r{{s}^{2}} \end{aligned} V˙=ss˙=−εssgn(s)−rs2−sf(x1,x2,t)≤−∣s∣(ε−∣f(x1,x2,t)∣)−rs2≤−∣s∣(ε−σ)−rs2这说明如果有 ε > σ \varepsilon >\sigma ε>σ,即 ε \varepsilon ε大于不确定部分上界 σ \sigma σ,那么有 V ˙ ≤ 0 \dot{V}\le 0 V˙≤0,稳定,有 s → 0 s\to 0 s→0,即有 e → 0 e\to 0 e→0, e ˙ → 0 \dot{e}\to 0 e˙→0。系统稳定。
从Lyapunov证明过程来看,其实输入 u u u中的 s g n ( s ) sgn \left( s \right) sgn(s)项有抗系统不确定的能力,然而, ∣ f ( x 1 , x 2 , t ) ∣ < ∣ h ( x 1 , x 2 ) ∣ < σ \left| f\left( {{x}_{1}},{{x}_{2},{t}} \right) \right| <\left| h\left( {{x}_{1}},{{x}_{2}} \right) \right| <\sigma ∣f(x1,x2,t)∣<∣h(x1,x2)∣<σ中上界是很难确定的,因为其与状态量 x 1 {{x}_{1}} x1和 x 2 {{x}_{2}} x2也有关,因此,实际中,一般是应用于部分系统模型不确定,如下更具体的系统:
{ x ˙ 1 = x 2 x ˙ 2 = a ( t ) x 1 + g ( x 1 , x 2 ) u \left\{ \begin{aligned} & {{{\dot{x}}}_{1}}={{x}_{2}} \\ & {{{\dot{x}}}_{2}}=a\left( {t} \right){{x}_{1}}+g\left( {{x}_{1}},{{x}_{2}} \right)u \\ \end{aligned} \right. {x˙1=x2x˙2=a(t)x1+g(x1,x2)u对于它不确定部分只有参数 ( t ) \left( {t} \right) (t),其上界较为容易确定, ( t ) < σ \left( {t} \right)<\sigma (t)<σ。
和 s g n ( s ) sgn \left( s \right) sgn(s)项抗干扰一样,这种方法也是很暴力的,可能对要求执行器快速地切换输入 u {u} u的符号,对执行器很不友好,其系数 ε \varepsilon ε越大,理论上系统不确定能力越强,对执行器要求越大。
因此,实际使用中 s g n ( s ) sgn \left( s \right) sgn(s)项的系数不应过大,其应对的应当还只是小幅度的时变系统参数和高阶未建模的有界不确定项,对于大范围的参数变化,应当使用更专业的在线参数辨识。