在上一篇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=xd−x(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˙d−x˙=x˙d−ax2−u(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˙d−ax2−u)(4)
令: u = x ˙ d − a x 2 + k e (5) u=\dot{x}_d-ax^2+ke\tag{5} u=x˙d−ax2+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~=a−a^,得到: 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˙d−a^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˙d−ax2−u)−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(−(a−a^)x2−ke)−a~a^˙=−ea~x2−ke2−a~a^˙=−ke2−a~(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
e→0和
a
~
→
0
\tilde{a}\rightarrow0
a~→0,只能确定二者稳定,需要引入Lyapunov-like lemma:
1
)
V
≥
0
1)V\ge 0
1)V≥0
2
)
V
˙
≤
−
g
(
t
)
,
w
h
e
r
e
g
(
t
)
≥
0
2)\dot{V}\le-g(t),where\space g(t)\ge0
2)V˙≤−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
3)g˙(t)∈L,if 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 t→∞limg(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)=ke2≥0,满足
(
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
t→∞limke2=0,即在
t
→
∞
t\to\infty
t→∞时
e
→
0
e\to0
e→0,令:
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+x2∫0tex2dt+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