一.简单反步控制器
简单反步控制器的设计思想是将复杂的非线性系统分解成不超过系统最高阶数的子系统,然后为每个子系统分别设计Lyapunov函数和中间虚拟控制量,一直“后退” 到整个系统,直到完成整个控制律的设计。
以二阶反步控制器为例,该控制器的设计步骤一般是
1.先定义角度误差,其中表示指令信号,表示角度误差;
2.通过构造Lyapunov函数(这里还见过这样的形式),该函数需满足Lyapunov稳定性的必要条件,即该函数的一阶导数半负定(所构造的Lyapunov函数本身一定是正定的);
3.该二阶非线性系统此时已经被降为一 阶,根据控制需求定义虚拟控制量重复上一 步骤,即构造一个新的正定Lyapunov函数,且使其一阶导数满足半负定即可完成二阶反步控制器设计。
二.反步滑模控制器
简单反步控制器是只采用反步控制理论设计的控制器,该控制器无法克服扰动,因此将反步控制理论与滑模控制理论相结合设计反步滑模控制器。
反步滑模控制器的设计方法与简单反步控制器相似,其主要区别在于第二步,即在构造新的Lyapu-
-nov函数之前需要结合滑模变结构控制理论,定义滑模面,此时新定义的Lyapunov函数为 ;
三.鲁棒反步滑模控制器
鲁棒反步滑模控制器的设计步骤与反步滑模控制器类似,主要区别在于鲁棒反步滑模控制器不再定义滑模面,而是直接定义了一个切换函数,其中c1>0,我的理解是切换函数就是简单反步的中间状态x2的误差定义的那一步,再将状态x1的误差一起拉进来和x2的误差再考虑,而x1的误差和x2的误差是形成滑模面的,切换函数的引入就相当于没有去求x2的误差?或者说不是直接求出的误差不准确?还有一个疑惑是反步滑模和鲁棒反步滑模应该是一样的?应该都统一叫切换函数就行?如果我要做滑模的话,那就是默认第二步直接从切换函数开始了【个人理解不一定正确,有误的话希望大佬纠正】
(前半部分推导基本一致)
说实话后面这个替换真不懂,但是我看别人都是这样替换的,后面的证明也差不多
四.自适应反步滑模控制器
在仿真过程中,F可以根据不同的需求来 设计不同的数值,然而在实际情况下, 由于环境的不确定性导致干扰过于复杂,F很难确定下来,此时可以采用自适应控制理论对总的不确定性F进行估计,然后将估计值代入鲁棒反步滑模控制器,这就是自适应反步滑模控制器。
自适应反步滑模控制器的设计方法与鲁棒反步滑模控制器基本一致,主要区别在于自适应反步滑模控制器需要在鲁棒反步滑模控制器的基础上,定义第3个Lyapunov函数
,其中(表示F的估计误差),是常数,再假设系统的外加干扰变化是缓慢的,即=0,则自适应率,将其与控制器一并代入到的表达式中,然后就是后续的证明。