[笔记]非线性自适应控制器设计,对应对应DR_CAN老师的【Advanced控制理论】16
简单的自适应控制器设计,使用李雅普诺夫函数证明系统稳定性后解出对应的控制输入u,对应DR_CAN老师的【Advanced控制理论】16
其中是系统状态,为参数,为系统输入。
设置期望状态,状态误差为,控制目标为
一、假设参数为已知量
对(2)式求导后为:
设计Lyapunov函数为(易知式(4)为PD(正定)):
对(4)求导并把(3)带入得:
为了满足为ND(负定),设,
此时,,显然此时L导数为负定,即满足系统稳定性的条件。
由此可以得出控制输入为:
仿真参考[Advance控制理论]简单的反步控制器设计
二、假设参数为未知量
如一中假设参数为已知量,但一般参数都是未知量即一个缓慢变化的常数(例如一个机械臂需要抓取不同质量的物体,那么这个质量就是一个短时间不会变化的常数,此时)。
此时同样设状态误差,
因为参数为未知量,此时需要系统估计该值,设估计值为
估计误差的导数为:,其中
此时设计Lyapunov函数(PD)为:
对(8)求导并带入(3)与(7)得:
为了满足(9)为负定,设
将(10)带入(9)得:
易知,为ND,若令,此时为NSD(半负定)。
引入引理1:假设
①
②且
那么有界,即
由引理1知,式(11)在设情况下满足李雅普诺夫稳定条件。
最终得控制输入为:
Matlab/Simulink仿真为:
在不知道参数的情况下,可以很好的估计参数值。
在目标状态不变的情况下,未知参数的改变会使控制输入经历一段时间的调整后。