系统相图及MATLAB绘制方法
自治系统
许多动态系统的物理规律可以用常微分方程描述。对于一般的(非线性时变)系统,微分方程为如下形式:
其中
这样的系统称为自治系统(autonomous system)或时不变系统(time-invariant system)。
相图及绘制原理
二阶自治系统在系统分析中有重要的地位,因为方程的解可以表示为平面上的曲线,也就是相图(phase
portrait),相图是控制理论中分析非线性系统的重要工具。将
令
方程
MATLAB绘制方法
有了上面的方法,可以用熟悉的软件绘制相图,但想画得美观并不容易。本文以MATLAB为例,绘制一个简单线性系统的相图,系统微分方程为:
绝大多数非线性微分方程难以求出解析解,实际中一般计算其数值解,系统ode45函数调用:
1 | function dxdt = simple(t, x) |
通过如下代码画出系统的向量场:
1 | % 合理选择坐标轴范围,让图形直观美观 |
箭头表示梯度的方向和大小,所以从向量场就能大致看出该系统相图的特征,然后选取合适的初值点,绘制多条相轨迹。本例中,很容易看出,从任何点出发的轨迹最终都会汇聚到坐标原点,原点的梯度为零,是平衡点(equilibrium point)。选取左上角的点为初值点,如下代码求出微分方程的数值解,并将轨迹绘制到向量场上:
1 | x0 = [-2, 2]; |
本例中,可以在图像的边缘等间隔取一些初值点,绘制多条轨迹得到相图,如下图所示:
很容易从相图看出,系统是渐进稳定的(asymptotically stable)。上面的图相当漂亮,这样的话,课件中的图形质量就有保障了。