控制李亚普诺夫函数(control-Lyapunov function)[1]是在控制理论中,针对动态系统及控制输入的李亚普诺夫函数。
原始的李亚普诺夫函数是要判断动力系统是否稳定(更严格的要求是渐近稳定),也就是说,系统若启始条件是在某一区域D中的状态
,最后是否可以持续的维持在区域D内。若要判断渐近稳定,则要判断系统最后是否会回到
。
控制李亚普诺夫函数是判断系统是否可以回授稳定(feedback stabilizable),也就是针对每一个状态x,是否存在一控制输入
可以将系统带回到原点。
考虑以下的独立控制系统
![{\displaystyle {\dot {x}}=f(x,u)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1334f227078346e61d77a3388035f55f75c8e000)
其中
为状态向量,
为控制向量
目标是可以在区域
内将其回授稳定到
。
控制李亚普诺夫函数是指函数
具有连续可微、正定(也就是
在
位置为0,其馀位置都是正值)的特性,而且使下式成立
![{\displaystyle \forall x\neq 0,\exists u\qquad {\dot {V}}(x,u)=\nabla V(x)\cdot f(x,u)<0.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/46f649be1b032db7259e326ad62e8b5b7a51987d)
最后一个条件是关键:对于每一个状态x,可以找到可以降低能量V的控制项u。直觉上,若对于每一个状态都可以找到方法降低能量,就可以将能量降到零,因此可以让系统停止。这是透过Artstein定理证明的。
Artstein定理:动态系统有可微分控制李亚普诺夫函数的充份必要条件是存在一个可以稳定系统的回授u(x)。
特定系统的控制李亚普诺夫函数不一定好找,不过若是找到了这种函数,回授稳定化问题可以作相当的精简,可以简化为静态的非线性最优化问题
![{\displaystyle u^{*}(x)=\operatorname {*} {argmin}_{u}\nabla V(x)\cdot f(x,u)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bb95bcd0572a8f8e9e21be46c81f59ecf72e907a)
对于每一个状态x都成立。
有关控制李亚普诺夫函数是由Z. Artstein和Eduardo D. Sontag在1980年代及1990年代所提出的。
以下是一个将李亚普诺夫候选函数应用在控制问题中的例子。
考虑一个非线性的质量-弹簧-阻尼系统,其弹簧是硬化弹簧,而质量和位置有关,方程式为
![{\displaystyle m(1+q^{2}){\ddot {q}}+b{\dot {q}}+K_{0}q+K_{1}q^{3}=u}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4a7bb806e59ec69f503981fcc713bd73fcde80ad)
现在假定想要的状态
、实际状态
、误差
,定义函数
为
![{\displaystyle r={\dot {e}}+\alpha e}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2442ca3c40e36bddd2cf37a813cd77416a36b685)
以下是一个候选的控制李亚普诺夫函数
![{\displaystyle V={\frac {1}{2}}r^{2}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/121a2406d62a49d52b44f04e8f84afb50605e6f8)
若
,
,上述函数皆为正定。
再计算
的时间导数
![{\displaystyle {\dot {V}}=r{\dot {r}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3d367d362351f1a13c2768d8536602fd2edd1e79)
![{\displaystyle {\dot {V}}=({\dot {e}}+\alpha e)({\ddot {e}}+\alpha {\dot {e}})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/43509c6073aedc54ef39ea837aa11ebda9e53bf6)
其目的是使时间导数满足下式
![{\displaystyle {\dot {V}}=-\kappa V}](https://wikimedia.org/api/rest_v1/media/math/render/svg/17a07b127186c5da7ed0ac6d3a52d80049ab63e6)
若
是全域的正定,上式则为全域的指数稳定。
因此会希望
最右边的括弧
![{\displaystyle ({\ddot {e}}+\alpha {\dot {e}})=({\ddot {q}}_{d}-{\ddot {q}}+\alpha {\dot {e}})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/132befabd60adf1fc35eccae788500f7fc4fe436)
满足以下条件
![{\displaystyle ({\ddot {q}}_{d}-{\ddot {q}}+\alpha {\dot {e}})=-{\frac {\kappa }{2}}({\dot {e}}+\alpha e)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/36d1f7a2b839bcbf2f34a4b27b161c15ec03da47)
用动力系统中的
取代,可以得到
![{\displaystyle ({\ddot {q}}_{d}-{\frac {u-K_{0}q-K_{1}q^{3}-b{\dot {q}}}{m(1+q^{2})}}+\alpha {\dot {e}})=-{\frac {\kappa }{2}}({\dot {e}}+\alpha e)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/63467bba886ab78dddb8f3bd2a5d04cbc868c8c6)
求解
可以得到控制律
![{\displaystyle u=m(1+q^{2})({\ddot {q}}_{d}+\alpha {\dot {e}}+{\frac {\kappa }{2}}r)+K_{0}q+K_{1}q^{3}+b{\dot {q}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/dc9cef38a3f031b892c2612374e7a35d7a4639f9)
其中
和
都远大于0,为可调整性能的参数。
控制律会确保全域的指数稳定性,因为透过时间导数的替换,可以如预期的,使下式成立
![{\displaystyle {\dot {V}}=-\kappa V}](https://wikimedia.org/api/rest_v1/media/math/render/svg/17a07b127186c5da7ed0ac6d3a52d80049ab63e6)
是线性一阶微分方程,其解为
![{\displaystyle V=V(0)e^{-\kappa t}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6e1eeae3f70bc2813f9507c3d2f2ad404d137723)
因此误差及误差率(记得
)都会指数衰减到零。
若希望由上式调整出特定的响应,需要将响应替换
中的内容,然后求解
,头几步为
![{\displaystyle r{\dot {r}}=-{\frac {\kappa }{2}}r^{2}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ce0fdf16860af642a55e5bb0683f45b5192ab7b2)
![{\displaystyle {\dot {r}}=-{\frac {\kappa }{2}}r}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c1a6ec3d170c2578e8da938fddf4c4dd2bee274a)
![{\displaystyle r=r(0)e^{-{\frac {\kappa }{2}}t}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/845dcb0f0db1e717ad033b9d40463b0032329cc5)
![{\displaystyle {\dot {e}}+\alpha e=({\dot {e}}(0)+\alpha e(0))e^{-{\frac {\kappa }{2}}t}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/9a8f01a2a058c3f74535c7f6052a3142838321ca)
可以由任何求解线性微分方程式的方式来求解。