最近在学习b站上DR_CAN的Advanced控制理论课程,打算将自己感觉重要的部分以BLOG的方式记笔记。本节课链接为:https://www.bilibili.com/video/BV1BW411M7v4
假设一模型图如下,
其中
α
\alpha
α为弹性系数,物块质量为
m
m
m,物块水平位移记为
x
x
x,在物块右端施加一外力使得物块以期望轨迹运动。其动态方程可写为:
m
x
¨
+
α
x
3
=
F
m\ddot{x}+\alpha x^{3}=F
mx¨+αx3=F
令:
F
=
u
—
—
(
I
n
p
u
t
)
F=u——(Input)
F=u——(Input)
x
1
=
x
—
—
(
D
i
s
p
l
a
c
e
m
e
n
t
)
x_{1}=x——(Displacement)
x1=x——(Displacement)
x
2
=
x
˙
—
—
(
V
e
l
o
c
i
t
y
)
x_{2}=\dot{x}——(Velocity)
x2=x˙——(Velocity)
可得:
x
1
˙
=
x
˙
=
x
2
(1)
\dot{x_{1}}=\dot{x}=x_{2} \tag{1}
x1˙=x˙=x2(1)
x
2
˙
=
x
¨
=
−
α
m
x
1
3
+
1
m
u
(2)
\dot{x_{2}}=\ddot{x}=-\frac{\alpha}{m}x_{1}^{3}+\frac{1}{m}u \tag{2}
x2˙=x¨=−mαx13+m1u(2)
求出
u
u
u即可求得
x
2
˙
\dot{x_{2}}
x2˙,即可求得
x
1
˙
\dot{x_{1}}
x1˙,这种方式称为Chain of Integrator。
引入
e
(
e
r
r
o
r
)
e(error)
e(error),其中
x
1
d
x_{1d}
x1d为期望的
x
1
x_{1}
x1值,
e
=
x
1
d
−
x
1
(3)
e=x_{1d}-x_{1}\tag{3}
e=x1d−x1(3)
e
˙
=
x
1
d
˙
−
x
1
˙
=
x
1
d
˙
−
x
2
(4)
\dot{e}=\dot{x_{1d}}-\dot{x_{1}}=\dot{x_{1d}}-x_{2}\tag{4}
e˙=x1d˙−x1˙=x1d˙−x2(4)
我们的目标是 e → 0 e\rightarrow0 e→0,即需要找到Lyapunov函数 V ( e ) V(e) V(e),使得 V ( e ) V(e) V(e)为 P D PD PD, V ˙ ( e ) \dot{V}(e) V˙(e)为 N D ND ND,即可得到 e → 0 e\rightarrow0 e→0。设 V 1 = 1 2 e 2 (5) V_{1}=\frac{1}{2}e^{2}\tag{5} V1=21e2(5)
这样 V 1 ( 0 ) = 0 且 V 1 ( e ≠ 0 ) > 0 V_{1(0)}=0且V_{1(e\neq0)}>0 V1(0)=0且V1(e=0)>0,即 V 1 V_{1} V1为 P D PD PD, V 1 ˙ = ∂ V 1 ∂ e ⋅ d e d t = e e ˙ = e ( x 1 d ˙ − x 2 ) (6) \dot{V_{1}}=\frac{\partial V_{1}}{\partial e}·\frac{de}{dt}=e\dot{e}=e(\dot{x_{1d}}-x_{2})\tag{6} V1˙=∂e∂V1⋅dtde=ee˙=e(x1d˙−x2)(6)
我们希望 V ˙ 1 \dot{V}_{1} V˙1为 N D ND ND,设: x 2 d = x ˙ 1 d + k 1 e (7) x_{2d}=\dot{x}_{1d}+k_{1}e\tag{7} x2d=x˙1d+k1e(7)
其中 k 1 > 0 k_{1}>0 k1>0为系统增益(GAIN), x 2 d x_{2d} x2d为期望的 x 2 x_{2} x2值,这样代入 ( 6 ) (6) (6)式可得 V ˙ 1 = − k 1 e 2 \dot{V}_{1}=-k_{1}e^{2} V˙1=−k1e2为 N D ND ND,所以我们的新目标为 δ → 0 \delta\rightarrow0 δ→0,其中: δ = x 2 d − x 2 (8) \delta=x_{2d}-x_{2}\tag{8} δ=x2d−x2(8) δ ˙ = x 2 d ˙ − x 2 ˙ (8.5) \dot{\delta}=\dot{x_{2d}}-\dot{x_{2}}\tag{8.5} δ˙=x2d˙−x2˙(8.5)
将 ( 8 ) (8) (8)式代入 ( 6 ) (6) (6)式和 ( 7 ) (7) (7)式可得: V 1 ˙ = e ( x 1 d ˙ − ( x 2 d − δ ) ) = − k 1 e 2 + e δ (9) \dot{V_{1}}=e(\dot{x_{1d}}-(x_{2d}-\delta))=-k_{1}e^{2}+e\delta\tag{9} V1˙=e(x1d˙−(x2d−δ))=−k1e2+eδ(9)
我们期望 e δ → 0 e\delta\rightarrow0 eδ→0,即有这样一个系统 V ( e , δ ) V_{(e,\delta)} V(e,δ)为 P D PD PD, V ˙ ( e , δ ) \dot{V}_{(e,\delta)} V˙(e,δ)为 N D ND ND。将 ( 8.5 ) (8.5) (8.5)式代入 ( 2 ) (2) (2)式和 ( 7 ) (7) (7)式可得: δ ˙ = x ¨ 1 d + k 1 e ˙ − ( − α m x 1 3 + 1 m u ) \dot{\delta}=\ddot{x}_{1d}+k_{1}\dot{e}-(-\frac{\alpha}{m}x_{1}^{3}+\frac{1}{m}u) δ˙=x¨1d+k1e˙−(−mαx13+m1u)
再代入 ( 4 ) (4) (4)式可得: δ ˙ = x ¨ 1 d + k 1 ( x 1 d ˙ − x 2 ) + α m x 1 3 − 1 m u (10) \dot{\delta}=\ddot{x}_{1d}+k_{1}(\dot{x_{1d}}-x_{2})+\frac{\alpha}{m}x_{1}^{3}-\frac{1}{m}u\tag{10} δ˙=x¨1d+k1(x1d˙−x2)+mαx13−m1u(10)
设 V 2 = V 1 + 1 2 δ 2 ( P D ) V_{2}=V_{1}+\frac{1}{2}\delta^{2}(PD) V2=V1+21δ2(PD) V ˙ 2 = V ˙ 1 + δ δ ˙ \dot{V}_{2}=\dot{V}_{1}+\delta\dot{\delta} V˙2=V˙1+δδ˙
代入 ( 9 ) (9) (9)式得: V ˙ 2 = − k 1 e 2 + e δ + δ δ ˙ = − k 1 e 2 + δ ( e + δ ˙ ) \dot{V}_{2}=-k_{1}e^{2}+e\delta+\delta\dot{\delta}=-k_{1}e^{2}+\delta(e+\dot{\delta}) V˙2=−k1e2+eδ+δδ˙=−k1e2+δ(e+δ˙)
我们期望 V ˙ 2 \dot{V}_{2} V˙2为 ( N D ) (ND) (ND),则假设 e + δ ˙ = − k 2 δ e+\dot{\delta}=-k_{2}\delta e+δ˙=−k2δ
其中 k 2 > 0 k_{2}>0 k2>0为系统增益(GAIN),将上式代入 ( 10 ) (10) (10)可得: e + x ¨ 1 d + k 1 ( x 1 d ˙ − x 2 ) + α m x 1 3 − 1 m u = − k 2 δ e+\ddot{x}_{1d}+k_{1}(\dot{x_{1d}}-x_{2})+\frac{\alpha}{m}x_{1}^{3}-\frac{1}{m}u=-k_{2}\delta e+x¨1d+k1(x1d˙−x2)+mαx13−m1u=−k2δ
整理得: u = m e + m x ¨ 1 d + m k 1 ( x ˙ 1 d − x 2 ) + α x 1 3 + m k 2 δ (11) u= me+m\ddot{x}_{1d}+mk_{1}(\dot{x}_{1d}-x_{2})+\alpha x_{1}^{3}+mk_{2}\delta\tag{11} u=me+mx¨1d+mk1(x˙1d−x2)+αx13+mk2δ(11)
检验:将 ( 8 ) (8) (8)式代入 ( 4 ) (4) (4)式和 ( 7 ) (7) (7)式可得: e ˙ = x 1 d ˙ − x 2 d + δ = x 1 d ˙ − ( x ˙ 1 d + k 1 e ) + δ = − k 1 e + δ \dot{e}=\dot{x_{1d}}-x_{2d}+\delta=\dot{x_{1d}}-(\dot{x}_{1d}+k_{1}e)+\delta=-k_{1}e+\delta e˙=x1d˙−x2d+δ=x1d˙−(x˙1d+k1e)+δ=−k1e+δ
将 ( 11 ) (11) (11)式代入 ( 10 ) (10) (10)式可得: δ ˙ = − e − k 2 δ \dot{\delta}=-e-k_{2}\delta δ˙=−e−k2δ
将结果写成矩阵的形式为: [ e ˙ δ ˙ ] = [ − k 1 1 − 1 − k 2 ] [ e δ ] \begin{bmatrix}\dot{e}\\\dot{\delta}\end{bmatrix}=\begin{bmatrix}-k_{1}&1\\-1&-k_{2}\end{bmatrix}\begin{bmatrix} e\\\ \delta\end{bmatrix} [e˙δ˙]=[−k1−11−k2][e δ]
可以看到他们之间为线性关系,整个过程称为Feedback Linearization,设: λ 1 + λ 2 = Λ = − k 1 − k 2 < 0 \lambda_{1}+\lambda_{2}=\Lambda=-k_{1}-k_{2}<0 λ1+λ2=Λ=−k1−k2<0 λ 1 ⋅ λ 2 = ∣ A ∣ = k 1 k 2 + 1 > 0 \lambda_{1}·\lambda_{2}=|A|=k_{1}k_{2}+1>0 λ1⋅λ2=∣A∣=k1k2+1>0
得出: λ 1 < 0 , λ 2 < 0 \lambda_{1}<0,\lambda_{2}<0 λ1<0,λ2<0
关于系统的平衡点,可以看到 当 [ e ˙ δ ˙ ] = 0 时 [ e δ ] = 0 当\begin{bmatrix}\dot{e}\\\dot{\delta}\end{bmatrix}=0时\begin{bmatrix} e\\\ \delta\end{bmatrix}=0 当[e˙δ˙]=0时[e δ]=0
系统为Asympototically Stable。
============================================================================
接下来进行Matlab Simulink仿真如下:
Desired系统如下图:
当输入为正弦曲线时,系统进行仿真得到结果如图,其中黄线为期望轨迹,蓝线为控制器实现的轨迹,可以看到5s后的曲线轨迹追踪基本一致。
此时我们也可以得到输入u的曲线图,即输入F的曲线如下:
Simulink程序源文件:
链接:https://pan.baidu.com/s/17UZsi_GtJT-a0_cGKPqNAw
提取码:tvvo