从上一节 系统稳定性的介绍中可以得知,分析系统内部稳定(Lyapunov意义下稳定)时可不考虑系统的输出情况,可直接通过系统的状态方程分析系统的稳定性。系统的状态方程根据构建形式的不同,可分为线性系统与非线性系统。如下基于由简入繁的原则,首先整理线性系统的稳定性分析过程。
本文内容主要基于Antsaklis, P. J., & Michel, A. N. (1997). Linear systems (Vol. 8). New York: McGraw-Hill. 一书。
线性系统稳定性分析
~~~~
线性系统根据状态方程中是否显含
时间变量
t
t
t(状态变量本身为时间
t
t
t的函数,因此状态方程一定与时间
t
t
t有关。若状态方程中显示的包含时间
t
t
t的表达式,则表示状态方程显含时间变量
t
t
t。否则,状态方程不显含时间变量
t
t
t),可将线性系统划分为线性自治系统(或线性时不变系统)
x
˙
=
f
(
x
(
t
)
)
,
(1)
\dot{\pmb{x}}=f(\pmb{x}(t)),\tag{1}
x˙=f(x(t)),(1)与线性非自治系统(线性时变系统)
x
˙
=
f
(
t
,
x
(
t
)
)
,
(2)
\dot{\pmb{x}}=f(t,\pmb{x}(t)),\tag{2}
x˙=f(t,x(t)),(2)通常为表述简单,系统 (1) 与 (2) 可直接省略括号内的时间变量
t
t
t,表示为
x
˙
=
f
(
x
)
\dot{\pmb{x}}=f(\pmb{x})
x˙=f(x) 与
x
˙
=
f
(
t
,
x
)
\dot{\pmb{x}}=f(t,\pmb{x})
x˙=f(t,x)。
~~~~
如下首先分析线性自治系统的稳定性。
线性定常系统(线性时不变/自治系统)稳定性分析
~~~~ 考虑如下线性时不变系统 x ˙ = A x . (3) \dot{\pmb{x}}=A\pmb{x}.\tag{3} x˙=Ax.(3)定义 x e \pmb{x}_e xe 为系统(3)平衡点,则系统(3)李雅普诺夫意义下的稳定性可通过如下定理进行判定:
定理1. 系统(3)的平衡点 x e \pmb{x}_e xe 是稳定的,当且仅当其系数矩阵 A A A (或者系统(3)的雅可比矩阵) 的所有特征值的实部
小于等于0
,且每个实部为零的特征值都有一个相关的 1 阶 Jordan 块。系统(3)的平衡点 x e \pmb{x}_e xe 是渐近稳定的,当且仅当其系数矩阵 A A A (或者系统(3)的雅可比矩阵) 的所有特征值的实部小于0
。
相反地,系统(3)的平衡点 x e \pmb{x}_e xe 是不稳定的,当且仅当其系数矩阵 A A A (或者其雅可比矩阵) 至少存在一个实部大于0的特征值,或者其实部为零的特征值所对应的Jordan块的阶数大于1阶。
补充: 有关特征值,Jordan块的介绍可参见矩阵分析:特征值,相似度对角化,Jordan标准形。
注: 通常我们所说的一个系统的收敛是与系统平衡点的渐近稳定有关,关于两者有如下定义:
定义1. 系统(3)的平衡点 x e \pmb{x}_e xe 是渐近稳定的当且仅当其(1) 是稳定的,(2) 当 t → ∞ t\to \infty t→∞ 时,系统(3)的解趋近于平衡点 x e \pmb{x}_e xe。
线性定常系统内部稳定性示例
【示例一】分析如下系统在李雅普诺夫意义下的稳定性:
[
x
˙
1
x
˙
2
]
=
[
0
1
−
1
0
]
[
x
1
x
2
]
.
(4)
\begin{bmatrix} \dot x_1\\ \dot x_2 \end{bmatrix}=\begin{bmatrix} 0&1\\ -1&0 \end{bmatrix}\begin{bmatrix} x_1\\ x_2\end{bmatrix}.\tag{4}
[x˙1x˙2]=[0−110][x1x2].(4)通过计算可以得知系统(4)的平衡点
x
e
=
[
x
1
e
,
x
2
e
]
T
=
[
0
,
0
]
T
\pmb{x}_e=[x_{1e}, x_{2e}]^T=[0, 0]^T
xe=[x1e,x2e]T=[0,0]T,其特征值为
λ
1
,
2
=
±
i
\lambda_{1,2} = \pm i
λ1,2=±i,其Jordan块为
[
i
0
0
−
i
]
\begin{bmatrix} i&0\\ 0&-i \end{bmatrix}
[i00−i]。根据定理1,系统(4)的平衡点
x
e
=
[
x
1
e
,
x
2
e
]
T
=
[
0
,
0
]
T
\pmb{x}_e=[x_{1e}, x_{2e}]^T=[0, 0]^T
xe=[x1e,x2e]T=[0,0]T是稳定的。系统(4)在初值为(0,0)条件下的运行轨迹如下所示:
系统(4)在初值为(0,1)条件下的运行轨迹如下所示:
结合以上两图可知,系统(4)的平衡点是稳定的,整体运行轨迹在平衡点的一定范围内波动。
【示例二】分析如下系统在李雅普诺夫意义下的稳定性:
[
x
˙
1
x
˙
2
]
=
[
0
1
0
0
]
[
x
1
x
2
]
.
(5)
\begin{bmatrix} \dot x_1\\ \dot x_2 \end{bmatrix}=\begin{bmatrix} 0&1\\ 0&0 \end{bmatrix}\begin{bmatrix} x_1\\ x_2\end{bmatrix}.\tag{5}
[x˙1x˙2]=[0010][x1x2].(5)通过计算可以得知系统(5)的平衡点
x
e
=
[
x
1
e
,
x
2
e
]
T
=
[
0
,
0
]
T
\pmb{x}_e=[x_{1e}, x_{2e}]^T=[0, 0]^T
xe=[x1e,x2e]T=[0,0]T,其特征值为
λ
1
,
2
=
0
\lambda_{1,2} = 0
λ1,2=0,其Jordan块为
[
0
1
0
0
]
\begin{bmatrix} 0&1\\ 0&0 \end{bmatrix}
[0010],特征值0所对应的Jordan块的阶数为2。根据定理1,系统(5)的平衡点
x
e
=
[
x
1
e
,
x
2
e
]
T
=
[
0
,
0
]
T
\pmb{x}_e=[x_{1e}, x_{2e}]^T=[0, 0]^T
xe=[x1e,x2e]T=[0,0]T是不稳定的。系统(5)在初值为(0,1)条件下的运行轨迹如下所示:
【示例三】分析如下系统在李雅普诺夫意义下的稳定性:
[
x
˙
1
x
˙
2
]
=
[
2.8
9.6
9.6
−
2.8
]
[
x
1
x
2
]
.
(6)
\begin{bmatrix} \dot x_1\\ \dot x_2 \end{bmatrix}=\begin{bmatrix} 2.8&9.6\\ 9.6&-2.8 \end{bmatrix}\begin{bmatrix} x_1\\ x_2\end{bmatrix}.\tag{6}
[x˙1x˙2]=[2.89.69.6−2.8][x1x2].(6)通过计算可以得知系统(6)的平衡点
x
e
=
[
x
1
e
,
x
2
e
]
T
=
[
0
,
0
]
T
\pmb{x}_e=[x_{1e}, x_{2e}]^T=[0, 0]^T
xe=[x1e,x2e]T=[0,0]T,其特征值为
λ
1
,
2
=
±
10
\lambda_{1,2} = \pm10
λ1,2=±10,其Jordan块为
[
10
0
0
−
10
]
\begin{bmatrix} 10&0\\ 0&-10 \end{bmatrix}
[1000−10],存在一个实部大于0的特征值。根据定理1,系统(6)的平衡点
x
e
=
[
x
1
e
,
x
2
e
]
T
=
[
0
,
0
]
T
\pmb{x}_e=[x_{1e}, x_{2e}]^T=[0, 0]^T
xe=[x1e,x2e]T=[0,0]T是不稳定的。系统(6)在初值为(0,1)条件下的运行轨迹如下所示:
【示例四】分析如下系统在李雅普诺夫意义下的稳定性:
[
x
˙
1
x
˙
2
]
=
[
−
1
0
−
1
−
2
]
[
x
1
x
2
]
.
(7)
\begin{bmatrix} \dot x_1\\ \dot x_2 \end{bmatrix}=\begin{bmatrix} -1&0\\ -1&-2 \end{bmatrix}\begin{bmatrix} x_1\\ x_2\end{bmatrix}.\tag{7}
[x˙1x˙2]=[−1−10−2][x1x2].(7)通过计算可以得知系统(7)的平衡点
x
e
=
[
x
1
e
,
x
2
e
]
T
=
[
0
,
0
]
T
\pmb{x}_e=[x_{1e}, x_{2e}]^T=[0, 0]^T
xe=[x1e,x2e]T=[0,0]T,其特征值为
λ
1
=
−
1
\lambda_1= -1
λ1=−1,
λ
2
=
−
2
\lambda_2= -2
λ2=−2其Jordan块为
[
−
1
0
0
−
2
]
\begin{bmatrix} -1&0\\ 0&-2 \end{bmatrix}
[−100−2],存在一个实部大于0的特征值。根据定理1,系统(7)的平衡点
x
e
=
[
x
1
e
,
x
2
e
]
T
=
[
0
,
0
]
T
\pmb{x}_e=[x_{1e}, x_{2e}]^T=[0, 0]^T
xe=[x1e,x2e]T=[0,0]T是渐近稳定的。系统(7)在初值为(0,1)条件下的运行轨迹如下所示:
注: 上述四个示例的代码如下,需适当修改函数中的状态方程表达式,以及主函数中的时间变量的区间范围。
function dxdt = vdp1(t,x)
%dxdt = [x(2);0];
% dxdt = [x(2);-x(1)];
% dxdt = [-x(1);-x(1)-2*x(2)];
%dxdt = [x(2);-2*sin(x(1))];
dxdt = [2.8*x(1)+9.6*x(2);9.6*x(1)-2.8*x(2)];
end
%[t,y] = ode45(odefun,tspan,y0)
[t,x] = ode45(@vdp1,[0 20],[0,1]);
plot(t,x)
xlabel('Time t');
ylabel('Solution x');
legend('x_1','x_2')
参考文献
[1] Antsaklis, P. J., & Michel, A. N. (1997). Linear systems (Vol. 8). New York: McGraw-Hill.
[2] 线性系统稳定性一般定理、齐次线性系统稳定性
[3] 矩阵分析:特征值,相似度对角化,Jordan标准形