【Advanced控制理论】Nonlinear Adaptive Controller非线性自适应控制器(附Simulink程序)

在上一篇BLOG中谈到了非线性反馈控制器,其中系统的所有参数均为已知,这样的系统称为Exactly Known System。若系统中的参数未知该如何求解,由此引出Nonlinear Adaptive Controller。DR_CAN的相关视频链接:https://www.bilibili.com/video/BV1yW411u7qv

在之前的Tracking Problem中,系统的状态方程为:x˙=ax2+u(1)\dot{x}=ax^2+u\tag{1}

设:e=xdx(2)e=x_{d}-x\tag{2}e˙=x˙dx˙=x˙dax2u(3)\dot{e}=\dot{x}_{d}-\dot{x}=\dot{x}_{d}-ax^2-u\tag{3}

定义:V(e)=12e2(PD)V_{(e)}=\frac{1}{2}{e}^2\tag{PD}V˙(e)=ee˙=e(x˙dax2u)(4)\dot{V}_{(e)}=e\dot{e}=e(\dot{x}_{d}-ax^2-u)\tag{4}

令:u=x˙dax2+ke(5)u=\dot{x}_d-ax^2+ke\tag{5}

这样V˙(e)=ke2\dot{V}_{(e)}=-ke^2NDND,将(5)(5)式代入(3)(3)式得到:e˙=ke\dot{e}=-ke,整个过程为Feedback Linearization

以上是在aa为已知的情况下,假设有这样一个模型:给一小车施加一个力FF,使得小车以期望速度x˙\dot{x}运动,其中车上载有一个人的质量为mm,我们期望不论人的质量为多少,小车均能按照稳定速度运动,即Adapt the unkonwn parameter。假设aa是一个缓慢变化的常数,即a˙=0\dot{a}=0。引入Estimatea^\hat{a}Estimate errora~=aa^\tilde{a}=a-\hat{a},得到:a~˙=a˙a^˙=a^˙(6)\dot{\tilde{a}}=\dot{a}-\dot{\hat{a}}=-\dot{\hat{a}}\tag{6}

此时u=x˙da^x2+ke(7)u=\dot{x}_d-\hat{a}x^2+ke\tag{7}

定义Lyapunov functionV(e,a~)=12e2+12a~2(PD)V_{(e,\tilde{a})}=\frac{1}{2}e^2+\frac{1}{2}\tilde{a}^2\tag{PD}V˙=ee˙+a~a~˙=e(x˙dax2u)a~a^˙(8)\dot{V}=e\dot{e}+\tilde{a}\dot{\tilde{a}}=e(\dot{x}_{d}-ax^2-u)-\tilde{a}\dot{\hat{a}}\tag{8}

(7)(7)代入(8)(8)式得:V˙=e((aa^)x2ke)a~a^˙=ea~x2ke2a~a^˙=ke2a~(ex2+a^˙)(9)\dot{V}=e(-(a-\hat{a})x^2-ke)-\tilde{a}\dot{\hat{a}}=-e\tilde{a}x^2-ke^2-\tilde{a}\dot{\hat{a}}=-ke^2-\tilde{a}(ex^2+\dot{\hat{a}})\tag{9}

其中ke2-ke^2NDND,令a^˙=ex2\dot{\hat{a}}=-ex^2,这样(9)(9)式后半部分为00,即:V˙(e,a~)=ke2(NSD)\dot{V}_{(e,\tilde{a})}=-ke^2\tag{NSD}

此时无法判定e0e\rightarrow0a~0\tilde{a}\rightarrow0,只能确定二者稳定,需要引入Lyapunov-like lemma
1V01)V\ge 0
2V˙g(t)where g(t)02)\dot{V}\le-g(t),where\space g(t)\ge0
3g˙(t)Lif g˙(t) is bounded the g(t) is uniformly continuous3)\dot{g}(t)\in L,if\space \dot{g}(t)\space is\space bounded\space the\space {g}(t)\space is\space uniformly\space continuous
then limtg(t)=0then\space \lim\limits_{t\to\infty}g(t)=0

在本模型中,VVPDPD自然满足PSDPSD,满足(1)(1)
V˙=ke2\dot{V}=-ke^2,令g(t)=ke20g(t)=ke^2\ge0,满足(2)(2)
g˙(t)=2kee˙\dot{g}(t)=2ke\dot{e}是收敛的且g(t)g(t)为一致连续的,满足(3)(3)
即可得出结论limtke2=0\lim\limits_{t\to\infty}ke^2=0,即在tt\to\inftye0e\to0,令:a^˙=ex2=0tex2dt(10)\dot{\hat{a}}=-ex^2=-\int_{0}^{t}ex^2dt\tag{10}

(10)(10)式代入(7)(7)式得出:u=x˙d+x20tex2dt+keu=\dot{x}_d+x^2\int_{0}^{t}ex^2dt+ke

即我们要求的最终结果。

============================================================================
以下为Matlab Simulink程序仿真:
【Advanced控制理论】Nonlinear Adaptive Controller非线性自适应控制器(附Simulink程序)
当期望值xdx_d设为常数22aa设为[2 4][2\space4]Repeating Sequence StairRepeating\space Sequence\space Stair时,仿真结果如下:
【Advanced控制理论】Nonlinear Adaptive Controller非线性自适应控制器(附Simulink程序)
其中黄线为期望值,蓝线为实际值,追踪结果良好。系统输入uu曲线如图:【Advanced控制理论】Nonlinear Adaptive Controller非线性自适应控制器(附Simulink程序)
可以看到初始时输入很大,后期输入基本为00

Simulink程序链接:
链接:https://pan.baidu.com/s/1IUelPowOM9osWAK-Za3G9Q
提取码:ehxq