基于双曲正切函数的滑模控制
采用双曲正切函数替换原来的切换函数(即符号函数),对比二者的性能。
理论推导
考虑如下被控对象:
J
θ
¨
(
t
)
=
u
(
t
)
+
d
(
t
)
J\ddot{\theta}(t)=u(t)+d(t)
Jθ¨(t)=u(t)+d(t) (1)
其中,
J
J
J 为转动惯量;
θ
(
t
)
\theta(t)
θ(t) 为角度;
u
(
t
)
u(t)
u(t) 为控制输入;
d
(
t
)
d(t)
d(t) 为外加干扰;
∣
d
t
∣
≤
D
|dt|\leq D
∣dt∣≤D。
设计滑模函数为
s
(
t
)
=
c
e
(
t
)
+
e
˙
(
t
)
s(t) = ce(t) + \dot{e}(t)
s(t)=ce(t)+e˙(t)
其中,
c
c
c 必须满足 Hurwitz 条件,即
c
>
0
c > 0
c>0。
跟踪误差及其导数为
e
(
t
)
=
θ
(
t
)
−
θ
d
(
t
)
,
e
˙
(
t
)
=
θ
˙
(
t
)
−
θ
˙
d
(
t
)
e(t) = \theta(t) - \theta_d(t), \quad \dot{e}(t) = \dot{\theta}(t) - \dot{\theta}_d(t)
e(t)=θ(t)−θd(t),e˙(t)=θ˙(t)−θ˙d(t)
其中, θ d ( t ) \theta_d(t) θd(t) 为理想的角度信号。
定义 Lyapunov 函数为
V
=
1
2
s
2
V = \frac{1}{2}s^2
V=21s2
则
s
˙
(
t
)
=
c
e
˙
(
t
)
+
e
¨
(
t
)
=
c
e
˙
(
t
)
+
θ
¨
(
t
)
−
θ
¨
d
(
t
)
=
c
e
˙
(
t
)
+
1
J
(
u
+
d
(
t
)
)
−
θ
¨
d
(
t
)
\dot{s}(t) = c\dot{e}(t) + \ddot{e}(t) = c\dot{e}(t) + \ddot{\theta}(t) - \ddot{\theta}_d(t) = c\dot{e}(t) + \frac{1}{J}(u + d(t)) - \ddot{\theta}_d(t)
s˙(t)=ce˙(t)+e¨(t)=ce˙(t)+θ¨(t)−θ¨d(t)=ce˙(t)+J1(u+d(t))−θ¨d(t)
且
s s ˙ = s ( c e ˙ + 1 J ( u + d ( t ) ) − θ ¨ d ) s\dot{s} = s\left(c\dot{e} + \frac{1}{J}(u + d(t)) - \ddot{\theta}_d\right) ss˙=s(ce˙+J1(u+d(t))−θ¨d)
为了保证 s s ˙ < 0 s\dot{s}<0 ss˙<0,考虑如下两种情况设计滑模控制律。
(1)基于切换函数的滑模控制
u ( t ) = J ( − c e ˙ + θ ¨ d − η s ) − D s g n ( s ) u(t) = J(-c\dot{e} + \ddot{\theta}_d - \eta s) - D\mathrm{sgn}(s) u(t)=J(−ce˙+θ¨d−ηs)−Dsgn(s) (2)
则
采用第 1 章附录中的引理 1,不等式 V ˙ ≤ − 2 η V \dot{V}\leq - 2\eta V V˙≤−2ηV 的解为
V ( t ) ≤ e − 2 η ( t − t 0 ) V ( t 0 ) V(t) \leq \mathrm{e}^{-2\eta(t - t_0)}V(t_0) V(t)≤e−2η(t−t0)V(t0)
即 V ( t ) V(t) V(t) 指数收敛,收敛精度取决于 η \eta η。
(2)基于双曲正切函数的滑模控制
u ( t ) = J ( − c e ˙ + θ ¨ d − η s ) − D tanh ( s ε ) u(t) = J(-c\dot{e} + \ddot{\theta}_d - \eta s) - D\tanh\left(\frac{s}{\varepsilon}\right) u(t)=J(−ce˙+θ¨d−ηs)−Dtanh(εs) (3)
根据引理 2,有
∣
s
∣
−
tanh
(
s
ε
)
≤
μ
ε
|s| - \tanh\left(\frac{s}{\varepsilon}\right) \leq \mu\varepsilon
∣s∣−tanh(εs)≤με
则 D ∣ s ∣ − D tanh ( s ε ) ≤ D μ ε D|s| - D\tanh\left(\frac{s}{\varepsilon}\right) \leq D\mu\varepsilon D∣s∣−Dtanh(εs)≤Dμε,即 D tanh ( s ε ) ≤ − D ∣ s ∣ + D μ ε D\tanh\left(\frac{s}{\varepsilon}\right) \leq - D|s| + D\mu\varepsilon Dtanh(εs)≤−D∣s∣+Dμε
进一步可知
其中, b = 1 J D μ ε b = \frac{1}{J}D\mu\varepsilon b=J1Dμε。
采用第 1 章附录中的引理 1,不等式
V
˙
≤
−
2
η
V
+
b
\dot{V}\leq - 2\eta V + b
V˙≤−2ηV+b 的解为
且V(t)渐进收敛,收敛精度取决于D、
η
\eta
η 和
ϵ
\epsilon
ϵ,即D越小、
η
\eta
η 越大、
ϵ
\epsilon
ϵ越小,收敛精度越小。
仿真实例
被控对象:
J
θ
¨
(
t
)
=
u
(
t
)
+
d
(
t
)
J\ddot{\theta}(t)=u(t)+d(t)
Jθ¨(t)=u(t)+d(t) (1)
基于切换函数的滑模控制:
u
(
t
)
=
J
(
−
c
e
˙
+
θ
¨
d
−
η
s
)
−
D
s
g
n
(
s
)
u(t) = J(-c\dot{e} + \ddot{\theta}_d - \eta s) - D\mathrm{sgn}(s)
u(t)=J(−ce˙+θ¨d−ηs)−Dsgn(s) (2)
基于双曲正切函数的滑模控制:
u
(
t
)
=
J
(
−
c
e
˙
+
θ
¨
d
−
η
s
)
−
D
tanh
(
s
ε
)
u(t) = J(-c\dot{e} + \ddot{\theta}_d - \eta s) - D\tanh\left(\frac{s}{\varepsilon}\right)
u(t)=J(−ce˙+θ¨d−ηs)−Dtanh(εs) (3)
把这两个式子写在一起,就可以非常明显的看出它们的异同点了。
现在给出具体的参数:
J
=
10
J=10
J=10、理想轨迹
θ
d
(
t
)
=
s
i
n
t
\theta_d(t)=sint
θd(t)=sint、干扰
d
(
t
)
=
50
s
i
n
t
d(t)=50sint
d(t)=50sint,被控对象的初始状态为[0.5, 1.0]。
取
c
=
0.5
c=0.5
c=0.5、
η
=
0.5
\eta=0.5
η=0.5 、
D
=
50
D=50
D=50、
ϵ
=
0.02
\epsilon=0.02
ϵ=0.02
分别采用上面两种控制器进行仿真。
- simulink模块搭建
- 第一种控制器下的仿真结果
2. 第二种控制器下的仿真结果
从控制输入u的曲线中可以看到两种控制器表现的差异还是非常大的。明显采用双曲正切的要好的多。
至于怎么个好法,目前也没有掌握合适的词汇来描述。
下图为绘制的相轨迹图。
目前我还不知道怎么解释。
横坐标为误差,纵坐标为误差的导数,可以看到始终是不为0,也就是误差一直存在的,其他的就分析不出来了。