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

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

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

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

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

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

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

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

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

定义Lyapunov function V ( e , a ~ ) = 1 2 e 2 + 1 2 a ~ 2 (PD) V_{(e,\tilde{a})}=\frac{1}{2}e^2+\frac{1}{2}\tilde{a}^2\tag{PD} V(e,a~)=21e2+21a~2(PD) V ˙ = e e ˙ + a ~ a ~ ˙ = e ( x ˙ d − a x 2 − u ) − 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} V˙=ee˙+a~a~˙=e(x˙dax2u)a~a^˙(8)

( 7 ) (7) (7)代入 ( 8 ) (8) (8)式得: V ˙ = e ( − ( a − a ^ ) x 2 − k e ) − a ~ a ^ ˙ = − e a ~ x 2 − k e 2 − a ~ a ^ ˙ = − k e 2 − a ~ ( e x 2 + 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} V˙=e((aa^)x2ke)a~a^˙=ea~x2ke2a~a^˙=ke2a~(ex2+a^˙)(9)

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

此时无法判定 e → 0 e\rightarrow0 e0 a ~ → 0 \tilde{a}\rightarrow0 a~0,只能确定二者稳定,需要引入Lyapunov-like lemma
1 ) V ≥ 0 1)V\ge 0 1V0
2 ) V ˙ ≤ − g ( t ) , w h e r e   g ( t ) ≥ 0 2)\dot{V}\le-g(t),where\space g(t)\ge0 2V˙g(t)where g(t)0
3 ) g ˙ ( t ) ∈ L , i f   g ˙ ( t )   i s   b o u n d e d   t h e   g ( t )   i s   u n i f o r m l y   c o n t i n u o u s 3)\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 3g˙(t)Lif g˙(t) is bounded the g(t) is uniformly continuous
t h e n   lim ⁡ t → ∞ g ( t ) = 0 then\space \lim\limits_{t\to\infty}g(t)=0 then tlimg(t)=0

在本模型中, V V V P D PD PD自然满足 P S D PSD PSD,满足 ( 1 ) (1) (1)
V ˙ = − k e 2 \dot{V}=-ke^2 V˙=ke2,令 g ( t ) = k e 2 ≥ 0 g(t)=ke^2\ge0 g(t)=ke20,满足 ( 2 ) (2) (2)
g ˙ ( t ) = 2 k e e ˙ \dot{g}(t)=2ke\dot{e} g˙(t)=2kee˙是收敛的且 g ( t ) g(t) g(t)为一致连续的,满足 ( 3 ) (3) (3)
即可得出结论 lim ⁡ t → ∞ k e 2 = 0 \lim\limits_{t\to\infty}ke^2=0 tlimke2=0,即在 t → ∞ t\to\infty t e → 0 e\to0 e0,令: a ^ ˙ = − e x 2 = − ∫ 0 t e x 2 d t (10) \dot{\hat{a}}=-ex^2=-\int_{0}^{t}ex^2dt\tag{10} a^˙=ex2=0tex2dt(10)

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

即我们要求的最终结果。

============================================================================
以下为Matlab Simulink程序仿真:
在这里插入图片描述
当期望值 x d x_d xd设为常数 2 2 2 a a a设为 [ 2   4 ] [2\space4] [2 4] R e p e a t i n g   S e q u e n c e   S t a i r Repeating\space Sequence\space Stair Repeating Sequence Stair时,仿真结果如下:
在这里插入图片描述
其中黄线为期望值,蓝线为实际值,追踪结果良好。系统输入 u u u曲线如图:在这里插入图片描述
可以看到初始时输入很大,后期输入基本为 0 0 0

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

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值