github仓库

对于一个系统

x˙=f(x)+uxxd\dot{x}=f(x)+u\\\\ x\rightarrow x_d

其中不清楚 f(x)f(x) 的具体表达形式,但是 f(x)f(x) 是有界的,并且 f(x)<ρ(x)|f(x)|<\rho(x)

引入误差 e=xdxe=x_d-xe˙=x˙df(x)u\dot{e}=\dot{x}_d-f(x)-u,定义李雅普诺夫函数 V(e)=12e2V(e)=\frac{1}{2}e^2

不妨令

u=ke+x˙d+uauxu=ke+\dot{x}_d+u_{aux}

其中 uauxu_{aux} 是一个辅助的控制器

滑膜控制器: uaux=ρ(x)eeu_{aux}=\rho(x) \frac{|e|}{e},而这个会导致系统不断抖动

High Gain: uaux=1ερ2eu_{aux}=\frac{1}{\varepsilon}\rho^2e 用足够大的输入抵消不确定性

带入 V˙\dot{V},得

V˙=ee˙=e(x˙df(x)kex˙d1ερ2e)=ef(x)ke21ερ2e2V˙ke2+ρe(11ερe)\dot{V}=e\dot{e}=e(\dot{x}_d-f(x)-ke-\dot{x}_d-\frac{1}{\varepsilon}\rho^2e)=-ef(x)-ke^2-\frac{1}{\varepsilon}\rho^2e^2\\\\ \Downarrow\\\\ \dot{V}\leq -ke^2+\rho|e|(1-\frac{1}{\varepsilon}\rho |e|)

此时出现两种情况

case 1:

ρe>ε11ερe<0ρe(11ερe)<0V˙ke2\rho |e| > \varepsilon \\\\ \Downarrow\\\\ 1-\frac{1}{\varepsilon}\rho |e|<0 \\\\ \Downarrow \\\\ \rho|e|(1-\frac{1}{\varepsilon}\rho |e|)<0 \\\\ \Downarrow \\\\ \dot{V} \leq -ke^2

case 2:

ρeε011ερe1ρe(11ερe)ρeεV˙ke2+ε=2kV+εIntroduce  s(t)>0V˙+2kV=εs(t)解微分方程V=12e2=12e(0)2exp(2kt)exp(2kt)0texp(2kτ)s(τ)dτ+ε2k(1exp(2kt))由于第二项总是大于0的12e212e(0)2exp(2kt)+ε2k(1exp(2kt))两边同时乘2开平方e(t)e0exp(2kt)+εkεkexp(2kt)te(t)εk\rho |e| \leq \varepsilon \\\\ \Downarrow \\\\ 0\leq 1-\frac{1}{\varepsilon}\rho |e|\leq 1\\\\ \Downarrow \\\\ \rho|e|(1-\frac{1}{\varepsilon}\rho |e|)\leq \rho|e|\leq \varepsilon \\\\ \Downarrow\\\\ \dot{V}\leq -ke^2+\varepsilon=-2kV+\varepsilon \\\\ Introduce ~~s(t)>0\\\\ \Downarrow\\\\ \dot{V}+2kV=\varepsilon -s(t)\\\\ \text{解微分方程}\\\\ \Downarrow\\\\ V=\frac{1}{2}e^2=\frac{1}{2}e^2_{(0)}exp(-2kt)-exp(-2kt)\int_0^texp(2k\tau)s(\tau)d\tau + \frac{\varepsilon}{2k} (1-exp(-2kt))\\\\ \text{由于第二项总是大于0的}\\\\ \Downarrow\\\\ \frac{1}{2}e^2\leq\frac{1}{2}e^2_{(0)}exp(-2kt)+ \frac{\varepsilon}{2k} (1-exp(-2kt))\\\\ \text{两边同时乘2开平方}\\\\ \Downarrow\\\\ |e_{(t)}|\leq\sqrt{|e_0|exp(-2kt)+\frac{\varepsilon}{k}-\frac{\varepsilon}{k}exp(-2kt)}\\\\ t\rightarrow \infty\\\\ \Downarrow\\\\ |e_{(t)}|\leq\sqrt{\frac{\varepsilon}{k}}

这就是系统最终会保持一个误差,但是当 ε\varepsilon 足够小,误差就很小,但是这也导致输入 uaux=1ερ2eu_{aux}=\frac{1}{\varepsilon}\rho^2e 会非常大,需要做一个权衡

High Frequency: uaux=ρ2eρe+εu_{aux}=\frac{\rho^2e}{\rho |e|+\varepsilon} 相当于把滑模控制的抖动幅度减小了

带入 V˙\dot{V}

V˙=ef(x)ke2eρ2eρe+εef(x)ke2ρ2e2ρe+εV˙ke2+eρ(1ρeρe+ε)=ke2+ερeρe+ε0ρeρe+ε1V˙ke2+ε=2kV+εIntroduce  s(t)>0V˙+2kV=εs(t)解微分方程V=12e2=12e(0)2exp(2kt)exp(2kt)0texp(2kτ)s(τ)dτ+ε2k(1exp(2kt))由于第二项总是大于0的12e212e(0)2exp(2kt)+ε2k(1exp(2kt))两边同时乘2开平方e(t)e0exp(2kt)+εkεkexp(2kt)te(t)εk\dot{V}=-ef(x)-ke^2-e\frac{\rho^2e}{\rho |e|+\varepsilon}\leq |e||f(x)|-ke^2-\frac{\rho^2e^2}{\rho |e|+\varepsilon}\\\\ \Downarrow\\\\ \dot{V}\leq-ke^2+|e|\rho(1-\frac{\rho |e|}{\rho |e|+\varepsilon})=-ke^2+\varepsilon\frac{\rho |e|}{\rho |e|+\varepsilon}\\0\leq\frac{\rho |e|}{\rho |e|+\varepsilon}\leq 1\\\\ \Downarrow\\\\ \dot{V}\leq -ke^2+\varepsilon=-2kV+\varepsilon \\\\ Introduce ~~s(t)>0\\\\ \Downarrow\\\\ \dot{V}+2kV=\varepsilon -s(t)\\\\ \text{解微分方程}\\\\ \Downarrow\\\\ V=\frac{1}{2}e^2=\frac{1}{2}e^2_{(0)}exp(-2kt)-exp(-2kt)\int_0^texp(2k\tau)s(\tau)d\tau + \frac{\varepsilon}{2k} (1-exp(-2kt))\\\\ \text{由于第二项总是大于0的}\\\\ \Downarrow\\\\ \frac{1}{2}e^2\leq\frac{1}{2}e^2_{(0)}exp(-2kt)+ \frac{\varepsilon}{2k} (1-exp(-2kt))\\\\ \text{两边同时乘2开平方}\\\\ \Downarrow\\\\ |e_{(t)}|\leq\sqrt{|e_0|exp(-2kt)+\frac{\varepsilon}{k}-\frac{\varepsilon}{k}exp(-2kt)}\\\\ t\rightarrow \infty\\\\ \Downarrow\\\\ |e_{(t)}|\leq\sqrt{\frac{\varepsilon}{k}}

但是这个 ε\varepsilon 过小时,并不会导致系统的输入过大

例子

对于一个系统

x˙=ax2+u=f(x)+uxxd\dot{x}=ax^2+u=f(x)+u\\\\ x\rightarrow x_d

在先前是设定 aa 是一个常数,但在此控制系统中,认为 aa 是一个有界( aa|a|\leq |\overline{a}|,其中 a\overline{a} 已知 )的数,并非是一个常数, aa 是一个 [1,1][-1,1] 之间的一个随机数

系统的目标依旧是 xxdx→x_d,设定 e=xdxe=x_d-x,得到 e˙=x˙dx˙=x˙df(x)u\dot{e}=\dot{x}_d-\dot{x}=\dot{x}_d-f(x)-u

引入一个函数 ρ(x)\rho(x)(实际上可以是函数,也可以是一个固定的上界)使得 f(x)ρ(x)|f(x)|\leq\rho (x),设定

  • high gain

    u=ke+x˙d+1ερ2eu=ke+\dot{x}_d+\frac{1}{\varepsilon}\rho^2e

  • high frequency

    u=ke+x˙d+ρ2eρe+εu=ke+\dot{x}_d+\frac{\rho^2e}{\rho |e|+\varepsilon}