反步法的核心思想是使用李雅普诺夫稳定性以及李雅普诺夫方程来设计控制率。在开始反步法的推导之前,可以先熟悉一下李雅普诺夫稳定。
李雅普诺夫函数
李雅普诺夫稳定简要介绍的话,就是状态x能够一直维持在某一个范围内不发散,便满足李雅普诺夫稳定,如果随着时间t增大,最终状态x能够收敛到0,便是渐进稳定:
那么这个控制器的设计,如果要利用李雅普诺夫稳定性的话,就需要自己找到一个控制率,能够使得状态x(或状态误差e),满足李雅普诺夫稳定,找到的这个控制率,就是李雅普诺夫函数。这里,我们常见的李雅普诺夫函数是如下形式:
反步法推导
之后,我们便可以开始反步法的推导,假设一个系统状态方程为:
x1_dot = x2;
x2_dot = u;
接下来就是反步法中比较难理解的部分了,此时我们求出来的x1_dot实际上是一个期望值,根据x1_dot = x2 便可以写作是x2的期望值x2d:
上述对x1的操作完成之后,便是对x2建立李雅普诺夫函数,使得x2满足稳定性条件
之后,便可以联合方程求解出控制器u的方程:
之后我们可以建立模型测试一下实际的效果:
从调试的过程看,如果是这种系统比较简单的,反步法的参数是比较好调试的,我随便写了个参数,可以看效果:
我们可以把系统上加入一些噪声看看:
可以看到加入一些噪声之后,跟随效果还好。