动态系统相图及MATLAB绘制方法

自治系统

许多动态系统的物理规律可以用常微分方程描述。对于一般的(非线性时变)系统,微分方程为如下形式:

\[ \dot{\mathbf{x}} = \mathbf{f}(t,\mathbf{x}, \mathbf{u}) \tag{1} \]

其中\(\mathbf{x}\)是系统状态,\(\mathbf{u}\)是外部输入信号,\(t\)表示系统运行规律随时间变化。如果没有外部输入信号,而且\(\mathbf{f}\)与时间\(t\)无关,则\((1)\)变成如下形式: \[ \dot{\mathbf{x}} = \mathbf{f}(\mathbf{x}) \tag{2} \]

这样的系统称为自治系统(autonomous system)或时不变系统(time-invariant system)。

相图及绘制原理

二阶自治系统在系统分析中有重要的地位,因为方程的解可以表示为平面上的曲线,也就是相图(phase portrait),相图是控制理论中分析非线性系统的重要工具。将\((2)\)写成如下形式: \[ \begin{cases} \dot{x}_1(t) = f_1(x_1, x_2) \\ \dot{x}_2(t) = f_2(x_1, x_2) \end{cases} \tag{3} \]

\(\mathbf{x}(t) = \left[x_1(t), x_2(t) \right]^{\mathsf{T}}, t\ge 0\)是方程\((3)\)的解,初值条件为\(\mathbf{x}(0) = \left[x_{10}, x_{20} \right]^{\mathsf{T}}\)。解\(\mathbf{x}(t)\)\(x_1 - x_2\)平面上的轨迹就是一条经过点\(\mathbf{x}(0)\)的曲线,这有点类似于参数方程的图像。

方程\((3)\)的右边正好是\(\mathbf{x}(t)\)梯度\(\left[\dot{x}_1(t), \dot{x}_2(t) \right]^{\mathsf{T}}\),由此可以得到\(\mathbf{x}(t)\)曲线上某点的切线方向,因此,\(\mathbf{f} = \left[f_1, f_2 \right]^{\mathsf{T}}\)是平面的向量场(vector field)。先画出向量场,从某初值点出发,选择合适的步长沿着梯度方向绘制一条轨迹,即对应方程在该初值条件下的解。选择多个初始点,绘制多条轨迹以足够展示系统的特征,即得到相图。

MATLAB绘制方法

有了上面的方法,可以用熟悉的软件绘制相图,但想画得美观并不容易。本文以MATLAB为例,绘制一个简单线性系统的相图,系统微分方程为: \[ \begin{cases} \dot{x}_1 = -x_1 + x_2 \\ \dot{x}_2 = -x_2 \end{cases} \tag{4} \]

绝大多数非线性微分方程难以求出解析解,实际中一般计算其数值解,系统\((4)\)的解析解虽然容易得到,但为了保持一般性,我们还是求它的数值解。首先要创建一个函数表示该系统,供后续ode45函数调用:

1
2
3
function dxdt = simple(t, x)
dxdt = [-x(1) + x(2); -x(2)]; % 将(4)式表示为向量形式
end

通过如下代码画出系统的向量场:

1
2
3
4
5
6
7
% 合理选择坐标轴范围,让图形直观美观
[X1, X2] = meshgrid(-2:0.2:2, -2:0.2:2);
% 根据(3)式右边的f(x)计算梯度
X1dot = -X1 - X2;
X2dot = -X2;
% 用quiver函数画向量场,会自动调节箭头大小
quiver(X1, X2, X1dot, X2dot)

箭头表示梯度的方向和大小,所以从向量场就能大致看出该系统相图的特征,然后选取合适的初值点,绘制多条相轨迹。本例中,很容易看出,从任何点出发的轨迹最终都会汇聚到坐标原点,原点的梯度为零,是平衡点(equilibrium point)。选取左上角的点为初值点,如下代码求出微分方程的数值解,并将轨迹绘制到向量场上:

1
2
3
4
x0 = [-2, 2];
tspan = [0:0.1:10]; % 时间范围要稍微选大点,不然离极限值太远
[~, x] = ode45(@simple, tspan, x0);
hold on; plot(x(:, 1), x(:, 2))
系统的向量场和一条轨迹

本例中,可以在图像的边缘等间隔取一些初值点,绘制多条轨迹得到相图,如下图所示:

系统的相图

很容易从相图看出,系统是渐进稳定的(asymptotically stable)。上面的图相当漂亮,这样的话,课件中的图形质量就有保障了。

参考资料

  1. Autonomous system
  2. Nonlinear Systems - Khalil
  3. Phase portrait - Wikipedia
  4. AN INTRODUCTION TO PHASE PORTRAITS