非线性系统控制算法学习1_单摆建模和反馈线性化
请使用pc端浏览此页面,其他平台可能会出现格式问题
文章目录
1 引言
在现实世界中,真正普遍存在的是非线性系统,而并非线性系统。但非线性系统往往是复杂多变的,到目前为止并未有一个有效的统一的分析方法,对非线性系统的直接分析往往涉及到复杂高深的数学理论。因此在工程上,往往希望通过某种方法将非线性系统转化为线性系统,或寻找到非线性系统的一些特定点并进行近似线性化处理,然后再利用成熟的线性系统理论完成对非线性系统的分析与综合。
在本系列文章中,将以经典的单摆系统作为分析对象,分析讨论常见的非线性控制器的特点,并通过MATLAB/Simulink完成仿真验证。
控制器的设计目标,使得单摆的运动轨迹可控。
在本系列文章中所讨论的单摆,并非传统物理学中认为的可以近似为简谐运动的小角度单摆,而是可以在铅垂面内做大幅度运动的非线性系统。
2 单摆非线性动力学建模与分析
2.1 单摆模型建立
考虑上图所示的单摆模型,
L
L
L表示摆杆的长度,
m
m
m表示摆末端摆锤的质量,
θ
\theta
θ表示摆杆与通过转动中心点的铅垂线之间的角度。并假设摆的质量完全集中在摆锤上,整个系统为刚体,并存在一个阻尼系数
k
k
k。综上可以得到有阻尼的自由单摆在切线方向上的动力学方程:
m
L
θ
¨
=
−
m
g
sin
(
θ
)
−
k
L
θ
˙
(2-1)
mL\ddot{\theta}=-mg\mathrm{\sin}\left(\theta\right)-kL\dot{\theta} \tag{2-1}
mLθ¨=−mgsin(θ)−kLθ˙(2-1)
假设单摆受到一个外力矩
T
T
T,则受控单摆在切线方向上的动力学方程为:
m
L
θ
¨
=
−
m
g
sin
(
θ
)
−
k
l
θ
˙
+
1
L
T
(2-2)
mL\ddot{\theta}=-mg\mathrm{\sin}\left(\theta\right)-kl\dot{\theta} +\frac{1}{L}T \tag{2-2}
mLθ¨=−mgsin(θ)−klθ˙+L1T(2-2)
为方便后续设计与分析,所有单位采用国际单位制。
规定:
g = 9.8 , L = 1 , k = 0.1 , m = 0.2 a = g L ; b = k m ; c = 1 m L 2 g=9.8,L=1,k=0.1,m=0.2\\a=\frac{g}{L};b=\frac{k}{m};c=\frac{1}{mL^2} g=9.8,L=1,k=0.1,m=0.2a=Lg;b=mk;c=mL21
则式(2-2)可以简化表示为:
θ
¨
=
−
a
sin
(
θ
)
−
b
θ
˙
+
c
T
(2-3)
\ddot{\theta}=-a\mathrm{\sin}\left(\theta\right)-b\dot{\theta} +cT \tag{2-3}
θ¨=−asin(θ)−bθ˙+cT(2-3)
定义状态变量:
x
1
=
θ
;
x
2
=
θ
˙
x_1 = \theta;x_2=\dot{\theta}
x1=θ;x2=θ˙ 输出变量:
u
=
T
u=T
u=T 则式(2-3)可以写成标准状态方程形式:
原始状态方程
x
1
˙
=
x
2
x
2
˙
=
−
a
sin
(
x
1
)
−
b
x
2
+
c
u
(2-4)
\dot{x_1}=x_2\\\dot{x_2}=-a\mathrm{\sin}\left(x_1\right)-bx_2+cu \tag{2-4}
x1˙=x2x2˙=−asin(x1)−bx2+cu(2-4)
2.2 单摆系统特性分析
从物理角度分析,给定一个单摆的初始状态,最终系统会稳定停留在 θ = 0 \theta=0 θ=0的状态。为了从数学的角度严谨分析此非线性系统的特点,需要使用相轨迹对系统进行严谨的定性分析。
相空间(Phase Space)
相空间是用于表示一个系统所有可能状态的空间。系统的每个可能的状态都对应相空间中的一个点。相空间通常具有高维度,其中每个维度代表系统的一状态变量。
相轨迹 (Phase Trajectory)
相轨迹(轨线)是相空间中的一条曲线,表示系统状态随时间变化的路径。相轨迹展示了系统从一个初始状态开始,随着时间推移如何演化。每条相轨迹对应于系统在不同初始条件下的运动轨迹。相轨迹可以帮助分析系统的特性。
利用MATLAB可以绘制出有阻尼的自由单摆系统的二维相图:
%定义矢量空间网格
[X1, X2] = meshgrid(-3*pi:0.5*pi:3*pi, -10:0.5:10);
% 定义非线性函数
d_X1 = X2;
d_X2 = -9.8*sin(X1) -0.5*X2;
% 绘制相轨迹
figure(1)
streamslice(X1, X2, d_X1, d_X2);
%作图设计
axis([-3*pi 3*pi -10 10]);
xlabel('X1');
ylabel('X2');
xticks(-2*pi:pi:2*pi);
xticklabels({ '-2\pi','-\pi','0','\pi','2\pi'});
xline([-2*pi,-pi,0,pi,2*pi], '-.r');
yline(0, '-.r');
title('有阻尼的自由单摆的相轨迹图');
分析此相轨迹图,可以发现系统有两个平衡点
(
0
,
0
)
,
(
π
,
0
)
(0,0),(\pi,0)
(0,0),(π,0),其他的平衡点都可以对应到这两个平衡点上。
对于
(
0
,
0
)
(0,0)
(0,0)这个平衡点,其附近的相轨迹是一个指向
(
0
,
0
)
(0,0)
(0,0)的焦点,系统是渐进稳定的。但对于
(
π
,
0
)
(\pi,0)
(π,0)这个平衡点,其附近的相轨迹构成一个鞍点,系统在这一点是临界稳定的。在现实世界中,这样的临界稳定并不存在,因为任何一点噪声干扰都会让系统从这一点开始向外发散。
利用Simulink搭建的有阻尼的自由单摆模型如下图所示:
以初始状态:角度 θ = 4 5 ∘ \theta = 45^{\circ} θ=45∘,角速度 θ ˙ = 0 \dot{\theta} =0 θ˙=0开始仿真,仿真时间为 t = 30 s t=30s t=30s。仿真结果如下图所示:
可以发现系统处于一个振荡衰减状态,并且系统的状态变量最终会趋于平衡点 ( 0 , 0 ) (0,0) (0,0),其仿真结果和理论分析结果相同。
3 控制器设计-反馈线性化
3.1 反馈线性化控制器设计
对于一个非线性系统,如果能够通过设计特定的输入信号来消除非线性部分,让整个系统线性化,则就可以使用成熟的线性系统分析设计的工具来控制系统,这就是反馈线性化的核心思想。
引言中的控制目标在这里可以表示为:寻找一个控制变量
u
u
u,当
t
→
∞
t\rightarrow\infty
t→∞时,希望
θ
→
β
\theta\rightarrow\beta
θ→β,
β
\beta
β为希望的单摆角度,在这里认为
β
\beta
β是一个常数,或者是在较长时间内保持不变的量。
根据以上信息,重新定义状态变量:
x
1
=
θ
−
β
;
x
2
=
x
1
˙
=
θ
˙
x_1 = \theta-\beta;x_2=\dot{x_1}=\dot{\theta}
x1=θ−β;x2=x1˙=θ˙ 输出变量:
u
=
T
u=T
u=T
方程(2-4)改写为:
根据控制要求修改后的状态方程
x
1
˙
=
x
2
x
2
˙
=
−
a
sin
(
x
1
+
β
)
−
b
x
2
+
c
u
(3-1)
\dot{x_1}=x_2\\\dot{x_2}=-a\mathrm{\sin}\left(x_1+\beta\right)-bx_2+cu \tag{3-1}
x1˙=x2x2˙=−asin(x1+β)−bx2+cu(3-1)
为了消除非线性因素,可以令输入变量为:
u
=
1
c
[
a
sin
(
x
1
+
β
)
b
x
2
−
K
x
1
]
(3-2)
u=\frac{1}{c}[a\mathrm{\sin}\left(x_1+\beta\right)bx_2-Kx_1] \tag{3-2}
u=c1[asin(x1+β)bx2−Kx1](3-2)
在(3-2)所规定的输入变量下,整个系统就可以变成一个线性系统,其状态方程可以表示为:
反馈线性化后的状态方程
[
x
1
˙
x
2
˙
]
=
[
0
1
−
K
−
b
]
⋅
[
x
1
x
2
]
(3-3)
\begin{bmatrix}\dot{x_1}\\ \dot{x_2}\end{bmatrix}=\begin{bmatrix}0 & 1\\-K & -b\end{bmatrix}\cdot\begin{bmatrix}x_1\\ x_2\end{bmatrix} \tag{3-3}
[x1˙x2˙]=[0−K1−b]⋅[x1x2](3-3)
分析式(3-3)可以发现,系统存在唯一的平衡点
[
x
1
x
2
]
=
[
x
1
˙
x
2
˙
]
=
[
0
0
]
\begin{bmatrix}x_1\\ x_2\end{bmatrix}=\begin{bmatrix}\dot{x_1}\\ \dot{x_2}\end{bmatrix}=\begin{bmatrix}0\\ 0\end{bmatrix}
[x1x2]=[x1˙x2˙]=[00]。
3.2 Laypunov稳定性分析
3.2.1 Laypunov第一法(直接法)
Laypunov第一法(直接法)是利用状态方程的解来分析系统稳定性的方法,其基本理论与传统线性系统稳定性分析相同。
分析矩阵
[
0
1
−
K
−
b
]
\begin{bmatrix}0 & 1\\-K & -b\end{bmatrix}
[0−K1−b]的特征值发现:
λ
1
λ
2
=
−
b
λ
1
⋅
λ
2
=
K
(3-4)
\lambda_1\lambda_2 = -b \\\lambda_1\cdot\lambda_2 =K \tag{3-4}
λ1λ2=−bλ1⋅λ2=K(3-4)
当
K
>
0
K>0
K>0时,特征值的实部小于0,系统是渐进稳定的。
3.2.2 Laypunov第二法(间接法)
Laypunov第二法(间接法)是通过寻找合适的Laypunov函数间接判定系统稳定性的方法。Laypunov函数是一种用于分析系统稳定性的重要工具。简单来说,Laypunov函数 V ( x ) V(x) V(x) 是一个标量函数,它由系统状态 x x x 进行定义,并且满足以下条件:
- 函数正定性: V ( x ) > 0 V(x) > 0 V(x)>0 对于所有的 x ≠ 0 x \neq 0 x=0成立,且 V ( 0 ) = 0 V(0) = 0 V(0)=0。
- 导数负定数:沿着系统轨迹,Laypunov函数的导数 V ˙ ( x ) \dot{V}(x) V˙(x) 满足 V ˙ ( x ) < 0 \dot{V}(x) < 0 V˙(x)<0 对于所有 x ≠ 0 x \neq 0 x=0成立,且 V ˙ ( 0 ) = 0 \dot{V}(0)=0 V˙(0)=0。
如果一个系统存在这样的Laypunov函数,那么可以证明该系统是渐近稳定的。这意味着系统在平衡点(x = 0)附近的状态变量会随着时间趋向于平衡点 (x = 0)。如果这个系统是一个线性系统,则可以说是大范围渐进稳定的。但需要注意:如果选择的Laypunov不满足上述两点,不能说明系统是非稳定的。
根据状态方程(3-3),选择Laypunov函数:
V
(
x
1
,
x
2
)
=
1
2
x
1
2
+
1
2
x
2
2
(3-5)
V(x_1,x_2)=\frac{1}{2}x_1^2+\frac{1}{2}x_2^2 \tag{3-5}
V(x1,x2)=21x12+21x22(3-5)
V
(
x
1
,
x
2
)
V(x_1,x_2)
V(x1,x2)为正定函数
V
˙
(
x
1
,
x
2
)
=
x
1
x
1
˙
+
x
2
x
2
˙
(3-6)
\dot{V}(x_1,x_2)=x_1\dot{x_1}+x_2\dot{x_2} \tag{3-6}
V˙(x1,x2)=x1x1˙+x2x2˙(3-6)
带入式(3-3),可以将
V
˙
(
x
1
,
x
2
)
\dot{V}(x_1,x_2)
V˙(x1,x2)化简为:
V
˙
(
x
1
,
x
2
)
=
−
b
x
2
2
+
(
1
−
K
)
x
1
x
2
(3-7)
\dot{V}(x_1,x_2)=-bx_2^2+(1-K)x_1x_2 \tag{3-7}
V˙(x1,x2)=−bx22+(1−K)x1x2(3-7)
当
K
=
1
K=1
K=1时
V
˙
(
x
1
,
x
2
)
=
−
b
x
2
2
(3-8)
\dot{V}(x_1,x_2)=-bx_2^2 \tag{3-8}
V˙(x1,x2)=−bx22(3-8)
V
˙
(
x
1
,
x
2
)
\dot{V}(x_1,x_2)
V˙(x1,x2)为半负定函数,根据式(3-5)选择的Laypunov函数,只能说明系统是Laypunov稳定,而不是渐进稳定的。为了证明系统是渐进稳定的,需要引入不变性原理。
分析式(3-8)可以发现,使得
V
˙
(
x
1
,
x
2
)
≡
0
\dot{V}(x_1,x_2) \equiv0
V˙(x1,x2)≡0的状态变量的集合为
{
(
x
1
,
x
2
)
∣
x
1
∈
R
,
x
2
=
0
}
\{(x_1,x_2)|x_1\in R,x_2=0\}
{(x1,x2)∣x1∈R,x2=0},那么系统一定存在一条直线轨线
x
2
=
0
x_2=0
x2=0。但根据反馈线性化后的状态方程式(3-3)可以推出:
x
2
(
t
)
≡
0
⇒
x
2
˙
(
t
)
≡
0
⇒
x
1
≡
0
x_2(t)\equiv 0 \Rightarrow \dot{x_2}(t)\equiv 0\Rightarrow x_1 \equiv 0
x2(t)≡0⇒x2˙(t)≡0⇒x1≡0
也就是在Lyapunov函数的基础上,结合状态方程本身的信息证明了
V
˙
(
x
1
,
x
2
)
\dot{V}(x_1,x_2)
V˙(x1,x2)为严格的负定函数。从而证明了系统是渐进稳定的。这与3.2.1小节中分析系统特征值得出的稳定性结果相同。
4 仿真分析
根据第3小节给出的设计方案,建立反馈线性化的Simulink模型如下图所示:
给定一个幅值随时间变化的方波型号,作为单摆的希望角度 β \beta β,可以得到控制器的运行效果如下图所示:
可以发现,控制器虽然可以无误差的跟踪输入信号,但超调量和调节时间都比较大,需要利用其他方法进一步优化控制器。
5 总结
本文以单摆系统为例,探讨了非线性系统控制中的一个经典控制方案——反馈线性化。首先,建立了单摆的非线性动力学模型,考虑了摆杆长度、摆锤质量、角度和阻尼系数等因素。并通过相轨迹图分析了系统的平衡点和稳定性。接着,设计了反馈线性化控制器,通过引入控制变量 u u u,消除非线性部分,使系统线性化,并利用Laypunov方法分析了系统的稳定性,证明了系统在反馈线性化控制下是渐进稳定的。最后,通过Simulink仿真验证了控制器的效果,虽然控制器可以无误差跟踪输入信号,但存在超调量和调节时间较大的问题,任需要进一步优化。