[滑模控制器浅述] (3) 滑模控制抗系统参数不定原理

[滑模控制器浅述] (3) 滑模控制抗系统参数不定原理

本博客需要一些现代控制理论中Lyapunov稳定性的一些理论知识。
您需要对滑模控制有一个初步的了解,可以参考:
[滑模控制器浅述] (1) 二阶系统的简单滑模控制器设计

1 前言

“滑模控制的好处都有啥?谁说对了就给他。”
滑模控制这么好,大家都爱用它,就是因为其自身有不错的抗干扰和抗参数不确定能力。本文将从数学和理论的角度,叙述为什么滑模控制能够抗系统参数不定。
[滑模控制器浅述] (2) 滑模控制抗干扰原理

2 滑模控制器的抗系统参数不定原理

考虑任意带干扰的二阶系统:
{x˙1=x2x˙2=f(x1,x2,t)+g(x1,x2)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.
其中f(x1,x2,t)f\left( {{x}_{1}},{{x}_{2},{t}} \right)是未知,但其上界满足f(x1,x2,t)<h(x1,x2)<σ\left| f\left( {{x}_{1}},{{x}_{2},{t}} \right) \right| <\left| h\left( {{x}_{1}},{{x}_{2}} \right) \right| <\sigma,首先按照前文方法设计滑模控制器。
([滑模控制器浅述] (1) 二阶系统的简单滑模控制器设计)
定义误差:
e1=x1dx1{{e}_{1}}=x_{1}^{d}-{{x}_{1}}
考虑滑模面,c>0c>0
s=e˙1+ce1s={{\dot{e}}_{1}}+c{{e}_{1}}
求导:
s˙=e¨1+ce˙1=x¨1dx˙2+ce˙1\dot{s}={{\ddot{e}}_{1}}+c{{\dot{e}}_{1}}=\ddot{x}_{1}^{d}-{{\dot{x}}_{2}}+c{{\dot{e}}_{1}}
ε>0\varepsilon >0r>0r>0,设计:
s˙=εsgn(s)rsf(x1,x2,t)\dot{s}=-\varepsilon sgn \left( s \right)-rs-f\left( {{x}_{1}},{{x}_{2},{t}} \right)
求解输入:
x¨1dx˙2+ce˙1=εsgn(s)rsf(x1,x2,t)x¨1dg(x1,x2)uf(x1,x2,t)+ce˙1=εsgn(s)rsf(x1,x2,t)u=x¨1d+εsgn(s)+rs+ce˙1g(x1,x2)\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}
如果不看g(x1,x2)g\left( {{x}_{1}},{{x}_{2}} \right),这样计算出来 的几乎不含有系统模型部分,方法凭空造诣出来的一样,是不是更像是PID控制器设计的理念了,因此PID天下第一。
[滑模控制器浅述] (3) 滑模控制抗系统参数不定原理
考虑如下Lyapunov函数:
V=12s2V=\frac{1}{2}{{s}^{2}}
求导:
V˙=ss˙=εssgn(s)rs2sf(x1,x2,t)s(εf(x1,x2,t))rs2s(εσ)rs2\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}
这说明如果有ε>σ\varepsilon >\sigma,即ε\varepsilon大于不确定部分上界σ\sigma,那么有V˙0\dot{V}\le 0,稳定,有s0s\to 0,即有e0e\to 0e˙0\dot{e}\to 0。系统稳定。
从Lyapunov证明过程来看,其实输入uu中的sgn(s)sgn \left( s \right)项有抗系统不确定的能力,然而,f(x1,x2,t)<h(x1,x2)<σ\left| f\left( {{x}_{1}},{{x}_{2},{t}} \right) \right| <\left| h\left( {{x}_{1}},{{x}_{2}} \right) \right| <\sigma中上界是很难确定的,因为其与状态量x1{{x}_{1}}x2{{x}_{2}}也有关,因此,实际中,一般是应用于部分系统模型不确定,如下更具体的系统:
{x˙1=x2x˙2=a(t)x1+g(x1,x2)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.
对于它不确定部分只有参数(t)\left( {t} \right),其上界较为容易确定,(t)<σ\left( {t} \right)<\sigma
sgn(s)sgn \left( s \right)项抗干扰一样,这种方法也是很暴力的,可能对要求执行器快速地切换输入u{u}的符号,对执行器很不友好,其系数ε\varepsilon越大,理论上系统不确定能力越强,对执行器要求越大。
因此,实际使用中sgn(s)sgn \left( s \right)项的系数不应过大,其应对的应当还只是小幅度的时变系统参数和高阶未建模的有界不确定项,对于大范围的参数变化,应当使用更专业的在线参数辨识。