传统控制算法是基于误差来计算给定输入控制量;而现代控制理论是基于状态方程,改变状态导数与状态得关系,即
x
˙
=
f
(
x
)
+
u
→
x
˙
=
g
(
x
)
\dot x = f(x)+u \rightarrow \dot x = g(x)
x˙=f(x)+u→x˙=g(x),从而调节系统性能。
思考:
x
˙
=
A
x
+
u
\dot x=Ax+u
x˙=Ax+u 其实,假设以上为单变量方程,A的特征值为-K, 则当
x
˙
=
−
K
x
\dot x=-Kx
x˙=−Kx时,
x
x
x就会以指数速率趋近稳态,以上为子稳定系统,稳态点为0。因为
x
=
e
−
k
t
x=e^{-kt}
x=e−kt。 令,
u
=
−
K
1
x
u=-K_1x
u=−K1x会非常有效。则状态方程变为
x
˙
=
−
(
K
+
K
1
)
x
\dot x=-(K+K_1)x
x˙=−(K+K1)x,因此可以调节系统的稳态相应速度。 当
u
=
b
u=b
u=b时,系统稳态点由0迁移到
x
˙
=
−
K
x
+
b
=
0
→
x
=
b
/
K
\dot x=-Kx+b=0 \rightarrow x=b/K
x˙=−Kx+b=0→x=b/K。因此,
u
=
−
K
x
+
b
u=-Kx+b
u=−Kx+b,可以在调节响应速率得同时,改变稳态点。b可以是PID值,
b
=
K
p
e
+
K
i
∫
e
+
K
d
e
˙
b=K_pe+K_i \int e + K_d\dot e
b=Kpe+Ki∫e+Kde˙,也可以是你自己设计的其他关于e的函数,从而将系统约束到指定值。
滑模算法利用超平面令
s
=
e
=
x
−
x
d
s = e = x - x_d
s=e=x−xd,来将系统稳态迁移到
x
d
x_d
xd。 LQR更适合用来改变系统相应速率(系统特征值),而滑模可以改变系统的稳态点。
自适应控制
当系统的参数未知时,如何使系统根据不同情况达到理想状态,就是自适应控制算法的应用场景。 https://www.bilibili.com/video/BV1yW411u7qv 设系统为:a未知
x
˙
=
a
x
2
+
u
\dot{x}=ax^2+\ u
x˙=ax2+u
e
=
x
d
−
x
e=x_d-x
e=xd−x
李雅普诺夫方程:
a
~
=
a
−
a
^
\widetilde{a}=a-\hat a
a=a−a^
V
(
e
,
a
~
)
=
1
2
e
2
+
1
2
a
~
2
V_{(e,\widetilde{\ a})}=\frac{1}{2}e^2+\frac{1}{2}{\widetilde{a}}^2
V(e,a)=21e2+21a2
控制器设计:
u
=
x
d
˙
+
x
2
∫
0
t
e
x
2
d
t
+
K
e
u=\dot{x_d}+x^2{\int_{0}^{t}ex^2}dt+Ke
u=xd˙+x2∫0tex2dt+Ke
滑模控制
原理及设计步骤分为两步:
设计滑模超平面
s
=
Σ
c
x
s=\Sigma cx
s=Σcx 根据系统所期望的动态特性来设计系统的切换超平面
s
=
Σ
c
x
s=\Sigma cx
s=Σcx,系统状态一旦到达滑模面,将以指数趋近方式达到稳定状态。 如:
s
=
c
1
x
+
c
2
s=c_1x+c_2
s=c1x+c2
可以看出滑模面上的状态量最终都会趋于零,而且是以指数速度趋近。
设计趋近律 设计律用来将系统状态向滑模平面上滑动,其实就是,如果状态不在滑模平面,就把它牵引到滑模平面上,从而能够保证稳定性。即如何令
s
=
0
s=0
s=0的问题。 趋近律的设计一般有: 1)等速趋近律
2)幂次趋近律
3)一般趋近律
4)指数趋近律
其中
s
g
n
(
s
)
sgn(s)
sgn(s)是符号方程,
s
g
n
(
s
)
sgn(s)
sgn(s)是方程是用于规范s的稳态在0点,如:
s
s
s的状态变化,跟普通的状态方程那样,使用相平面分析,
s
˙
\dot s
s˙与
s
s
s偏离0状态时,会被拉回到零点,
s
˙
\dot s
s˙与s偏离0的方向相反。最终使
s
s
s逐步趋近于0。
通过滑动模态控制器
s
˙
=
g
(
s
)
\dot{s}=g(s)
s˙=g(s),如
s
˙
=
ε
s
g
n
(
s
)
\dot{s}=\varepsilon\ sgn(s)
s˙=εsgn(s)使系统状态从超平面之外向切换超平面收束。系统一旦到达切换超平面,控制作用将保证系统沿切换超平面到达系统原点,这一沿切换超平面向原点滑动的过程称为滑模控制。
根据设计的滑模面和趋近律计算出控制参数。 例子:
x
˙
=
f
(
x
)
+
u
\dot{x}=f(x)+u
x˙=f(x)+u 令:
s
=
x
→
0
s=x \rightarrow 0
s=x→0 要使x最后趋近于0,则
s
˙
=
x
˙
=
f
(
x
)
+
u
=
−
ε
s
g
n
(
x
)
\dot{s}=\dot{x}=f\left(x\right)+u=-\varepsilon\ sgn\left(x\right)
s˙=x˙=f(x)+u=−εsgn(x) 得:
u
=
−
f
(
x
)
−
ε
s
g
n
(
x
)
u=-f\left(x\right)-\varepsilon\ sgn\left(x\right)
u=−f(x)−εsgn(x)
ε
\varepsilon
ε一般也会选择随动非负参数,当状态量x接近稳态时,
ε
→
0
\varepsilon \rightarrow 0
ε→0,减少震荡。
注:一般在实际中,通常是使
s
=
e
→
0
s=e \rightarrow 0
s=e→0,以约束误差为0来设计趋近律。 如:
https://www.bilibili.com/video/BV1KW411j7VS/?spm_id_from=333.788.videocard.0 以下为将
s
=
e
s=e
s=e来设计控制律例子:即要使
e
e
e接近0。
x
˙
=
f
(
x
)
+
u
\dot{x}=f(x)+\ u
x˙=f(x)+u,其中
f
(
x
)
<
=
ρ
(
x
)
f(x)<=\rho\left(x\right)
f(x)<=ρ(x)
e
=
x
d
−
x
e=x_d-x
e=xd−x 控制器设计:
u
=
K
e
+
x
d
˙
+
ρ
(
x
)
e
∣
e
∣
u=Ke+\dot{x_d}+\rho\left(x\right)\frac{e}{\left|e\right|}
u=Ke+xd˙+ρ(x)∣e∣e,
x
d
˙
=
0
?
\dot{x_d}=0?
xd˙=0? 此时:
e
˙
=
−
K
e
−
f
(
x
)
−
ρ
(
x
)
e
∣
e
∣
\dot{e}=-Ke-f(x)-\rho\left(x\right)\frac{e}{\left|e\right|}
e˙=−Ke−f(x)−ρ(x)∣e∣e
e
˙
=
−
K
e
\dot{e}=-Ke
e˙=−Ke构成滑模面,对应其他
s
(
x
)
=
a
x
+
b
=
0
s(x)=ax+b=0
s(x)=ax+b=0的滑模面。
f
(
x
)
−
ρ
(
x
)
e
∣
e
∣
f(x)-\rho\left(x\right)\frac{e}{\left|e\right|}
f(x)−ρ(x)∣e∣e约束其他点回归到
e
˙
=
−
K
e
\dot{e}=-Ke
e˙=−Ke构成滑模面上。(没懂)
滑模变结构控制的 超平面
s
=
Σ
c
x
s=\Sigma cx
s=Σcx也称滑模面,滑模面上的状态x,会以指数速度逼近稳态值。调节时间短,滑模控制就是找到了一个可以快速趋近稳态的路径。