在上一篇BLOG中谈到了非线性反馈控制器,其中系统的所有参数均为已知,这样的系统称为Exactly Known System。若系统中的参数未知该如何求解,由此引出Nonlinear Adaptive Controller。DR_CAN的相关视频链接:https://www.bilibili.com/video/BV1yW411u7qv
在之前的Tracking Problem中,系统的状态方程为:x˙=ax2+u(1)
设:e=xd−x(2)e˙=x˙d−x˙=x˙d−ax2−u(3)
定义:V(e)=21e2(PD)V˙(e)=ee˙=e(x˙d−ax2−u)(4)
令:u=x˙d−ax2+ke(5)
这样V˙(e)=−ke2为ND,将(5)式代入(3)式得到:e˙=−ke,整个过程为Feedback Linearization。
以上是在a为已知的情况下,假设有这样一个模型:给一小车施加一个力F,使得小车以期望速度x˙运动,其中车上载有一个人的质量为m,我们期望不论人的质量为多少,小车均能按照稳定速度运动,即Adapt the unkonwn parameter。假设a是一个缓慢变化的常数,即a˙=0。引入Estimate:a^和Estimate error:a~=a−a^,得到:a~˙=a˙−a^˙=−a^˙(6)
此时u=x˙d−a^x2+ke(7)
定义Lyapunov functionV(e,a~)=21e2+21a~2(PD)V˙=ee˙+a~a~˙=e(x˙d−ax2−u)−a~a^˙(8)
将(7)代入(8)式得:V˙=e(−(a−a^)x2−ke)−a~a^˙=−ea~x2−ke2−a~a^˙=−ke2−a~(ex2+a^˙)(9)
其中−ke2为ND,令a^˙=−ex2,这样(9)式后半部分为0,即:V˙(e,a~)=−ke2(NSD)
此时无法判定e→0和a~→0,只能确定二者稳定,需要引入Lyapunov-like lemma:
1)V≥0
2)V˙≤−g(t),where g(t)≥0
3)g˙(t)∈L,if g˙(t) is bounded the g(t) is uniformly continuous
then t→∞limg(t)=0
在本模型中,V为PD自然满足PSD,满足(1);
V˙=−ke2,令g(t)=ke2≥0,满足(2);
g˙(t)=2kee˙是收敛的且g(t)为一致连续的,满足(3)。
即可得出结论t→∞limke2=0,即在t→∞时e→0,令:a^˙=−ex2=−∫0tex2dt(10)
将(10)式代入(7)式得出:u=x˙d+x2∫0tex2dt+ke
即我们要求的最终结果。
============================================================================
以下为Matlab Simulink程序仿真:
当期望值xd设为常数2,a设为[2 4]的Repeating Sequence Stair时,仿真结果如下:
其中黄线为期望值,蓝线为实际值,追踪结果良好。系统输入u曲线如图:
可以看到初始时输入很大,后期输入基本为0。
Simulink程序链接:
链接:https://pan.baidu.com/s/1IUelPowOM9osWAK-Za3G9Q
提取码:ehxq