2. 相平面与相轨迹:相平面的定义、相轨迹的概念、相轨迹的绘制方法
2.1 相平面——系统状态的“地图”
各位工程师,咱们先聊聊相平面。说白了,相平面就是一个二维的坐标系。横轴是系统的状态变量 x,纵轴是它的导数 ẋ(也就是速度)。
我刚开始接触这个概念时,也觉得有点抽象。后来我把它想象成一张地图——地图上每个点代表一个位置,而相平面上的每个点代表系统的一个“状态”。
举个例子。一个弹簧-质量-阻尼系统,它的状态可以用位移 x 和速度 v 来描述。那么相平面上的点 (x, v) 就唯一确定了系统在某一时刻的“处境”。
相平面的定义:
由系统状态变量 x 及其导数 ẋ 构成的二维平面。平面上的每一点 (x, ẋ) 对应系统的一个瞬时状态。
你想想看,有了这张“地图”,我们就能直观地看到系统从任意初始状态出发,会怎么演变。是不是比看一堆微分方程舒服多了?
2.2 相轨迹——系统运动的“足迹”
相轨迹是什么?就是系统状态点在相平面上留下的运动轨迹。
我记得有一次调试一个伺服系统,系统老是振荡。我盯着示波器看波形,看了半天没头绪。后来我把位置和速度画到相平面上,一条清晰的螺旋线出现了——系统在慢慢收敛,但阻尼不够。嗯,问题一下就找到了。
相轨迹有几个重要性质,我列出来:
- 唯一性:除奇点外,相轨迹不会相交。因为系统状态是确定的,一个点只能有一个运动方向。
- 方向性:相轨迹有方向,通常用箭头表示。上半平面(ẋ > 0)表示 x 在增大,下半平面(ẋ < 0)表示 x 在减小。
- 奇点:ẋ = 0 且 ẍ = 0 的点,系统处于平衡状态。奇点类型决定了系统稳定性。
个人经验: 我在做电机位置控制时,经常用相轨迹来判断系统是否进入极限环。如果相轨迹闭合且稳定,那就是极限环振荡——说白了就是系统在“自嗨”,需要加阻尼或调整控制器参数。
2.3 相轨迹的绘制方法
绘制相轨迹,我常用的方法有三种。每种都有它的适用场景。
2.3.1 解析法
对于简单的二阶系统,可以直接从微分方程推导出相轨迹方程。
比如一个无阻尼弹簧系统:
ẍ + ω²x = 0
两边乘以 ẋ 再积分,得到:
ẋ² + ω²x² = C
这是个椭圆方程。相轨迹就是一圈圈的椭圆,代表系统在做等幅振荡。
我曾经用这个方法给学生演示过,他们一开始觉得数学推导很枯燥。但当我画出相轨迹图,看到椭圆一圈圈转时,大家都“哦”了一声——原来这就是无阻尼振荡啊。
2.3.2 等倾线法
这个方法更通用,适合非线性系统。核心思想是:相轨迹的斜率等于 ẍ/ẋ。
具体步骤:
- 写出系统微分方程 ẍ = f(x, ẋ)
- 计算斜率 k = ẍ/ẋ = f(x, ẋ)/ẋ
- 令 k 为常数,得到等倾线方程
- 在相平面上画出多条等倾线,每条线上标出对应斜率方向
- 从初始点出发,沿着等倾线指示的方向画曲线
避坑指南: 我曾经用等倾线法画一个强非线性系统,等倾线间距取得太大,结果画出来的相轨迹严重失真。后来我学乖了——等倾线要画密一些,尤其在斜率变化剧烈的区域。建议至少画 10-15 条等倾线。
2.3.3 数值法
现在谁还手画啊?用 MATLAB 或 Python 几行代码就搞定了。
我常用的 Python 代码:
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint
def system(state, t):
x, v = state
dxdt = v
dvdt = -x - 0.5*v # 阻尼振荡
return [dxdt, dvdt]
t = np.linspace(0, 20, 1000)
initial_states = [[1, 0], [2, 1], [-1, -2]]
for init in initial_states:
sol = odeint(system, init, t)
plt.plot(sol[:, 0], sol[:, 1], label=f'初始点 ({init[0]}, {init[1]})')
plt.xlabel('x')
plt.ylabel('ẋ')
plt.grid(True)
plt.legend()
plt.show()
这段代码能画出多条相轨迹,方便观察不同初始条件下的系统行为。
2.4 相平面分析的核心逻辑
为了让大家更直观地理解相平面分析的整体框架,我画了一张图:
这张图把整个流程串起来了:从微分方程出发,建立相平面,绘制相轨迹,最后分析系统行为。每一步都有它的意义。
2.5 实际应用中的注意事项
| 方法 | 适用场景 | 注意事项 |
|---|---|---|
| 解析法 | 线性系统、简单非线性系统 | 推导过程容易出错,建议用数值法验证 |
| 等倾线法 | 任意二阶系统 | 等倾线数量要足够,斜率变化剧烈区域加密 |
| 数值法 | 复杂系统、高阶系统降阶后 | 注意数值积分步长,步长太大会丢失细节 |
核心要点:
- 相平面是分析二阶系统的利器,尤其适合非线性系统
- 相轨迹的形态直接反映系统稳定性、振荡特性
- 三种绘制方法各有优劣,实际中我常用数值法快速验证,再用等倾线法深入理解
好了,这一章就到这里。相平面和相轨迹是后续分析的基础,大家一定要亲手画几条相轨迹感受一下。光看是学不会的,得动手。
公众号:蓝海资料掘金营,微信deep3321