根轨迹分析:从原理到实践,掌握线性系统动态性能的图形化工具

1. 项目概述:根轨迹,从抽象方程到直观图形的桥梁

如果你正在学习自动控制原理,或者准备相关考试,那么“根轨迹”这个概念一定是你绕不开的重点和难点。我第一次接触根轨迹时,感觉它就像一本天书:一堆关于增益K的方程,画出来的却是一张张看似有规律、又难以捉摸的曲线图。它到底在说什么?为什么我们要花这么大精力去研究它?直到后来在实际的控制器调试中,我才真正体会到它的威力——它不是一个纯粹的数学玩具,而是连接系统抽象数学模型(传递函数)和其直观动态性能(稳定性、响应速度、超调量)之间最有力的图形化工具。

简单来说,根轨迹分析研究的是:当系统某个参数(通常是开环增益K)从零变化到无穷大时,闭环系统特征根(即极点)在复平面上的运动轨迹。这“特征根”是什么?它就是决定系统响应模式(是振荡衰减还是发散,是快是慢)的命根子。所以,画出了根轨迹,就等于把系统性能随参数变化的“全家福”给拍出来了。你一眼就能看出:增益调到多大系统会开始振荡?在哪个增益下响应最快?系统在什么情况下会彻底失控(不稳定)?这对于我们设计控制器、整定PID参数、预估系统性能边界,具有不可替代的指导意义。无论你是备考的学生,还是初入行的工程师,掌握根轨迹,就等于掌握了一把分析线性系统动态特性的“金钥匙”。

2. 核心原理与绘制法则拆解

根轨迹的整套理论建立在闭环特征方程的基础上。假设我们有一个单位负反馈系统,其开环传递函数为 ( G(s)H(s) ),那么闭环特征方程就是 ( 1 + G(s)H(s) = 0 )。这个方程可以进一步写成幅值条件和相角条件:

  • 相角条件:( \angle G(s)H(s) = \pm180^\circ(2k+1), \quad k=0,1,2,... )
  • 幅值条件:( |G(s)H(s)| = 1 )

相角条件是根轨迹的充要条件。一个复平面上的点 ( s ) 如果位于根轨迹上,那么它必须满足相角条件。而幅值条件则用来确定该点所对应的具体增益 ( K ) 值。埃文斯(W. R. Evans)基于这两个条件,总结出了一套系统的徒手绘制法则,让我们无需逐个点计算,就能快速勾勒出根轨迹的大致形状。理解这些法则背后的“为什么”,比死记硬背条文重要得多。

2.1 起点、终点与分支数:故事的开始与结束

绘制根轨迹,首先要明确故事的主角从哪里来,到哪里去。

  • 起点(K=0):当增益 ( K = 0 ) 时,幅值条件要求 ( |G(s)H(s)| \to \infty ),这意味着 ( s ) 必须趋近于使 ( G(s)H(s) ) 分母为零的点,也就是开环极点。所以,根轨迹起始于开环极点。这很好理解,当控制器增益为零时,相当于系统开环运行,闭环极点自然就是开环极点。
  • 终点(K→∞):当增益 ( K \to \infty ) 时,幅值条件要求 ( |G(s)H(s)| \to 0 ),这意味着 ( s ) 必须趋近于使 ( G(s)H(s) ) 分子为零的点,也就是开环零点。如果开环零点数量 ( m ) 少于开环极点数量 ( n ),那么将有 ( n-m ) 条轨迹趋向于无穷远处。这些轨迹的走向,由渐近线决定。
  • 分支数:根轨迹的分支数等于闭环特征方程的阶数,也就是开环极点数 ( n )。因为每个极点都会随着K变化而移动,形成一条轨迹。

实操心得:在分析或手绘时,第一步永远是标出所有开环极点和零点(用‘×’和‘○’)。这是整个根轨迹的“骨架”,后续所有法则都围绕它们展开。极点和零点的位置直接决定了系统的“先天性格”。

2.2 实轴上的根轨迹与分离/汇合点:轨迹的“交通规则”

根轨迹在实轴上的分布遵循一个简单的规则:实轴上某一段右侧,实轴上的开环零、极点数目之和为奇数,则该段实轴是根轨迹的一部分。这个规则直接从相角条件推导出来。因为对于实轴上的测试点,其与实轴上零极点的连线角度要么是0°(点在零极点左侧),要么是180°(点在零极点右侧)。只有右侧奇数个零极点,才能贡献总的180°(或540°等)相角,满足条件。

当两条根轨迹分支在实轴上相遇然后离开实轴进入复平面时,这个相遇点称为分离点;反之,从复平面进入实轴的点称为汇合点。分离/汇合点可以通过求解方程 ( \frac{dK}{ds} = 0 ) 得到,其中 ( K = -\frac{1}{G(s)H(s)} )。一个更实用的技巧是,它们通常是方程 ( \sum \frac{1}{s-p_i} = \sum \frac{1}{s-z_i} ) 的解,并且位于实轴上两相邻极点或两相邻零点之间。

2.3 渐近线与出射角/入射角:无穷远处的指南针

对于趋向无穷远的根轨迹分支,其最终的方向由渐近线决定。渐近线与实轴的交点 ( \sigma_a ) 和夹角 ( \phi_a ) 由以下公式给出:

  • 交点:( \sigma_a = \frac{\sum_{i=1}^{n} p_i - \sum_{j=1}^{m} z_j}{n-m} )
  • 夹角:( \phi_a = \frac{(2k+1)\pi}{n-m}, \quad k=0,1,...,n-m-1 )

这里的 ( p_i ) 和 ( z_j ) 是开环极点和零点的坐标。这个公式的本质是,当 ( s \to \infty ) 时,所有有限的零极点可以近似看作聚集在 ( \sigma_a ) 这一点上,轨迹以等分角的方式辐射出去。

对于从复极点出发或到达复零点的轨迹,其初始方向(出射角)和最终方向(入射角)至关重要,它们决定了轨迹是向上走还是向下走。计算方法是:该点的出射角 = 180° - (该点到其他所有极点所成角度的和) + (该点到所有零点所成角度的和)。入射角的计算类似,公式为:该点的入射角 = 180° + (该点到其他所有极点所成角度的和) - (该点到所有零点所成角度的和)。这里的角度均以水平向右为0°,逆时针为正。

2.4 与虚轴的交点:稳定性的边界线

根轨迹穿越虚轴,意味着系统处于临界稳定状态(等幅振荡)。这是系统稳定性的边界。求取交点有两种常用方法:

  1. 劳斯判据法:将 ( s = j\omega ) 代入闭环特征方程,令实部和虚部分别为零,解出增益 ( K ) 和频率 ( \omega )。
  2. 特征方程法:在闭环特征方程 ( 1+KG(s)H(s)=0 ) 中,令 ( s = j\omega ),然后分别令实部和虚部为零,联立求解。

求出的 ( K ) 值就是使系统临界稳定的增益,( \omega ) 就是对应的振荡频率。这个点在控制器参数整定中是一个重要的参考红线。

3. 手绘根轨迹的完整流程与实战案例

理论法则需要结合实战才能真正掌握。下面我们以一个典型的三阶系统为例,完整走一遍手绘根轨迹的流程。设开环传递函数为: [ G(s)H(s) = \frac{K}{s(s+2)(s+3)} ]

3.1 第一步:标定零极点与确定分支

系统有三个开环极点:( p_1=0, p_2=-2, p_3=-3 )。没有有限开环零点(( m=0 ))。因此,根轨迹有3个分支,分别起始于 ( s=0, -2, -3 )。由于 ( n=3, m=0 ),所以3条分支都将趋向于无穷远处。

3.2 第二步:绘制实轴上的根轨迹

在实轴上选择测试点。根据“右侧奇零极点”规则:

  • 区间 ( (-\infty, -3] ):右侧有3个极点(0,-2,-3),奇数,是根轨迹。
  • 区间 ( [-3, -2] ):右侧有2个极点(0,-2),偶数,不是根轨迹。
  • 区间 ( [-2, 0] ):右侧有1个极点(0),奇数,是根轨迹。
  • 区间 ( [0, +\infty) ):右侧有0个极点,偶数,不是根轨迹。 所以,实轴上的根轨迹位于 ( (-\infty, -3] ) 和 ( [-2, 0] ) 这两个区间。

3.3 第三步:计算渐近线

  • 渐近线交点:( \sigma_a = \frac{(0) + (-2) + (-3)}{3-0} = -\frac{5}{3} \approx -1.667 )
  • 渐近线夹角:( \phi_a = \frac{(2k+1)\pi}{3}, \quad k=0,1,2 )
    • ( k=0: \phi_a = 60^\circ )
    • ( k=1: \phi_a = 180^\circ )
    • ( k=2: \phi_a = 300^\circ ) (或 -60°)

3.4 第四步:求分离点

分离点应位于实轴上的根轨迹区间内,即 ([-2, 0]) 上。由方程 ( \frac{1}{d} + \frac{1}{d+2} + \frac{1}{d+3} = 0 )(因为无零点,右边为0)。通分整理后得到 ( 3d^2 + 10d + 6 = 0 )。解得 ( d_1 \approx -0.784, d_2 \approx -2.549 )。其中 ( d_2 \approx -2.549 ) 不在 ([-2, 0]) 区间内,舍去。因此分离点为 ( d \approx -0.784 )。

3.5 第五步:求与虚轴交点

闭环特征方程为:( s(s+2)(s+3) + K = s^3 + 5s^2 + 6s + K = 0 )。 令 ( s = j\omega ),代入方程:( (j\omega)^3 + 5(j\omega)^2 + 6(j\omega) + K = -j\omega^3 -5\omega^2 + 6j\omega + K = 0 )。 令实部和虚部分别为零:

  • 实部:( -5\omega^2 + K = 0 )
  • 虚部:( -\omega^3 + 6\omega = \omega(6 - \omega^2) = 0 ) 由虚部方程解得 ( \omega = 0 ) 或 ( \omega = \pm\sqrt{6} \approx \pm2.449 )。
  • 当 ( \omega = 0 ) 时,代入实部得 ( K=0 ),对应起点。
  • 当 ( \omega = \pm\sqrt{6} ) 时,代入实部得 ( K = 5 * 6 = 30 )。 所以,根轨迹在 ( K=30 ) 时与虚轴相交于 ( s = \pm j2.449 )。

3.6 第六步:合成草图

现在我们可以合成草图了:

  1. 在实轴上标出极点0, -2, -3, 画出 ( (-\infty, -3] ) 和 ( [-2, 0] ) 的轨迹。
  2. 从极点-2和极点0出发的轨迹,在区间 ([-2, 0]) 上相向而行,于 ( d \approx -0.784 ) 处分离,进入复平面。
  3. 由于有3条渐近线,方向分别为60°, 180°, 300°。从分离点出发的两条复轨迹将分别趋向于60°和300°的渐近线。
  4. 从极点-3出发的轨迹,沿负实轴向左趋向于180°方向的渐近线(即负实轴本身)。
  5. 复平面上的轨迹在 ( K=30 ) 时穿过虚轴 ( \pm j2.449 )。

通过这六步,即使不用任何软件,我们也能准确地画出根轨迹的大致形状,并对系统性能变化有定性了解:当 ( K ) 从0增大时,起始于0和-2的两个极点先相互靠近,然后分离进入复平面,系统开始出现振荡分量;当 ( K ) 继续增大到30时,轨迹穿越虚轴,系统变得不稳定。

注意事项:手绘时,分离点和虚轴交点的计算往往是难点和易错点。分离点方程可能有多解,必须根据其物理意义(位于实轴轨迹段上)进行筛选。虚轴交点计算时,( \omega = 0 ) 的解通常对应轨迹的起点或终点,需要根据上下文判断是否采纳。

4. 根轨迹与系统性能的深度关联分析

画出根轨迹不是最终目的,我们的目标是通过它来分析和设计系统。闭环极点(即根轨迹上的点)的位置直接决定了系统的瞬态响应性能。

4.1 稳定性判断

这是根轨迹最直接的应用。所有位于s平面左半平面的闭环极点,都对应系统的稳定模态。只要有一个闭环极点位于右半平面,系统就不稳定。因此,根轨迹在虚轴以右的部分,对应的K值范围就是系统的不稳定区。在上面的例子中,当 ( K > 30 ) 时,有两条根轨迹分支进入右半平面,系统不稳定。( K=30 ) 就是临界稳定增益。

4.2 动态性能预估

对于主导极点对(一对离虚轴最近且附近没有零点的共轭复极点),我们可以根据其在复平面上的位置估算系统的动态指标:

  • 超调量 ( \sigma% ):主要由阻尼比 ( \zeta ) 决定。( \zeta = \cos\theta ),其中 ( \theta ) 是极点到原点连线与负实轴的夹角。阻尼比越小(夹角越接近90°),超调量越大。根轨迹上,越靠近虚轴的极点,通常阻尼比越小。
  • 调节时间 ( t_s ):主要由实部 ( \sigma )(极点的负实部)决定。( t_s \approx \frac{3.5}{\zeta\omega_n} ) 或 ( \frac{4}{\sigma} )。实部的绝对值越大(极点越向左),调节时间越短,响应越快。
  • 峰值时间 ( t_p ):主要由虚部 ( \omega_d )(极点的虚部)决定。( t_p = \frac{\pi}{\omega_d} )。虚部越大,振荡频率越高,峰值时间越短。

通过根轨迹,我们可以直观地看到,当增益K变化时,主导极点的阻尼比和自然频率如何变化,从而预判系统响应是变得更振荡还是更迟缓。

4.3 稳态性能分析

根轨迹本身主要反映动态性能,但结合开环传递函数的形式,也能推断稳态误差。例如,系统型别(积分环节的个数)决定了根轨迹在原点处的起点情况。对于I型及以上系统,根轨迹至少有一条分支起始于原点,这意味着在有限的K值下,系统对阶跃输入的稳态误差为零。但增益K的大小会影响稳态误差系数,进而影响对斜坡或抛物线输入的跟踪精度。

4.4 基于根轨迹的控制器设计思想

根轨迹法是控制器参数整定的强大工具,尤其是对于PID控制器或超前滞后校正。

  • 比例控制(P):单纯调节增益K,就是沿着已有的根轨迹移动闭环极点。我们需要在根轨迹上寻找一个能满足动态性能要求的“满意区域”,并找出对应的K值。
  • 比例微分控制(PD)或超前校正:相当于在开环传递函数中增加一个零点。这个零点可以“吸引”根轨迹向左半平面弯曲,从而提高系统的阻尼和响应速度。设计时,我们需要将零点和极点(如果需要)放置在合适的位置,以“塑造”出经过期望性能区域的根轨迹。
  • 比例积分控制(PI)或滞后校正:相当于增加一个极点(在原点或靠近原点)和一个零点(靠近该极点)。这对零极点主要用来提高系统型别以改善稳态性能,同时由于它们非常接近,对原根轨迹的形状影响很小,基本不改变动态性能。

实操心得:在实际工程中,纯粹的根轨迹手绘设计可能被计算机辅助工具(如MATLAB的rlocusrltool)取代。但手绘和理解法则的价值在于,它能让你在脑子里形成一个“性能变化地图”。当你用软件调整一个零点时,你能立刻预判到根轨迹会如何被“吸引”过去,从而做出更合理的设计决策,而不是盲目地试错。

5. 利用MATLAB进行根轨迹分析与设计

虽然手绘是理解的基础,但在实际工程和深入学习中,MATLAB的Control System Toolbox是不可或缺的利器。它能瞬间绘制精确的根轨迹,并允许我们进行交互式设计。

5.1 基础绘制与关键信息获取

对于传递函数 ( G(s) = \frac{K}{s(s+2)(s+3)} ),MATLAB操作非常简单:

% 定义开环传递函数 num = [1]; % 分子系数,K会被自动作为变量 den = conv([1 0], conv([1 2], [1 3])); % 分母(s)(s+2)(s+3) G = tf(num, den); % 绘制根轨迹 figure; rlocus(G); grid on; title('根轨迹图: G(s)=K/[s(s+2)(s+3)]');

运行后,你会得到一张精确的根轨迹图。你可以用鼠标点击轨迹上的任意一点,MATLAB会显示该点的坐标、增益K、阻尼比、超调量、自然频率等信息,这极大方便了性能分析。

5.2 交互式根轨迹设计工具:rltool

rltool是一个更强大的图形化交互工具。

% 打开根轨迹设计器 rltool(G)

在打开的界面中,你可以:

  1. 在根轨迹图上直接拖拽闭环极点(粉色方块),实时观察K值、阶跃响应、伯德图等的变化。
  2. 动态添加/删除开环零极点(用于模拟控制器),并实时观察根轨迹形状如何随之改变。
  3. 设置设计约束,如期望的阻尼比范围、自然频率范围等。

5.3 案例:为系统增加一个PD控制器

假设我们对之前的系统性能不满意,希望提高响应速度并减小超调。我们可以尝试增加一个PD控制器 ( C(s) = K_p + K_d s = K_d(s + z_c) ),这相当于增加一个开环零点。

  1. rltool中打开原系统G
  2. 尝试在实轴上增加一个零点,比如z_c = -4(位于两个极点-2和-3之间)。
  3. 观察根轨迹形状的变化。你会发现,原本从极点-2和-3出发的轨迹被新零点强烈地吸引向左,整个系统的根轨迹更偏向左边,意味着在相同K值下,闭环极点具有更大的负实部(更快的调节时间)和更大的阻尼角(可能更小的超调)。
  4. 通过拖拽闭环极点,找到一个性能满意的位置,并读取对应的总增益K。

这个过程将抽象的控制器设计,变成了直观的图形拖拽和性能预览,极大地提升了设计效率。

注意事项:使用MATLAB时,要理解它绘制的是“180°根轨迹”,即满足相角条件为180°+360°k的轨迹。对于正反馈等需要绘制“0°根轨迹”的情况,可以使用rlocus(-G)或专门的工具。另外,rltool中显示的“Gain”是根轨迹增益,可能与控制器传递函数中的比例系数有倍数关系,需要根据模型进行换算。

6. 常见问题、典型误区与排查技巧

在学习与应用根轨迹的过程中,有一些坑几乎每个人都会踩一遍。这里我总结了一份“避坑指南”。

6.1 分离点计算与判断误区

  • 问题:解分离点方程得到多个解,不知道如何取舍。
  • 排查:牢记分离点/汇合点一定位于实轴的根轨迹段上。首先根据实轴轨迹法则确定哪些实轴区间属于根轨迹,然后只保留落在这些区间内的解。例如,之前案例中解出的-2.549就不在实轴轨迹段[-2,0]上,故舍去。此外,分离点一定是两条轨迹的相遇点,如果计算出的点只对应一条轨迹,那很可能不是分离点。

6.2 渐近线交点与角度的混淆

  • 问题:计算渐近线夹角 ( \phi_a = \frac{(2k+1)\pi}{n-m} ) 时,k的取值范围搞错。
  • 排查:k的取值是从0开始,连续取 ( n-m ) 个整数。例如 ( n-m=4 ),则 ( k=0,1,2,3 ),对应夹角为45°,135°,225°,315°。如果取到 ( k=4 ),得到405°,这与45°是等价的,就重复了。一个简单的记忆方法是:这 ( n-m ) 条渐近线,其夹角是均匀分布在360°范围内的。

6.3 出射角/入射角计算符号错误

  • 问题:计算复极点出射角时,角度加减混乱。
  • 排查:记住一个矢量口诀:“目标点指向其他点的矢量角度”。计算极点 ( p_i ) 的出射角公式:( \theta_{departure} = 180^\circ - \sum \angle(p_i - p_j) + \sum \angle(p_i - z_j) )。这里 ( \angle(p_i - p_j) ) 是指从当前极点 ( p_i ) 指向其他极点 ( p_j ) 的矢量角度。所有角度均以水平向右为0°,逆时针测量为正。画一个简单的矢量图能有效避免错误。

6.4 根轨迹绘图不完整或形状怪异

  • 问题:手绘的根轨迹与MATLAB结果相差甚远,特别是复平面部分走向怪异。
  • 排查
    1. 检查渐近线:确保渐近线条数 ( n-m ) 正确,交点 ( \sigma_a ) 计算无误。渐近线是复轨迹在无穷远处的“骨架”。
    2. 检查出射角/入射角:对于复极点/零点,出射角和入射角决定了轨迹离开/靠近时的切线方向,这对轨迹弯曲形状影响极大。一个错误的出射角会导致整个复轨迹画偏。
    3. 检查对称性:根轨迹必然关于实轴对称。如果你画的图不对称,那肯定有错误。
    4. 利用分离点:分离点附近,轨迹通常以近似垂直的方向离开实轴。分离点处的分离角为 ( \pm90^\circ )(对于两条轨迹分离的情况)。

6.5 MATLAB工具使用中的困惑

  • 问题:在rltool中增加了零极点,但系统性能变化不符合预期。
  • 排查
    1. 确认零极点位置:增加的零极点是否真的在预期的位置?有时拖动不够精确。
    2. 理解主导极点:系统性能主要由最靠近虚轴的1-2对闭环极点(主导极点)决定。增加零极点可能会改变主导极点的组成。确保你观察的是主导极点的移动。
    3. 检查其他指标:根轨迹只反映极点位置。增加零点虽然能改善动态响应,但也可能放大高频噪声(因为微分作用),或者影响稳态误差。需要结合伯德图、阶跃响应等多方面评估。
    4. 控制器实现性:用rltool设计出的理想零极点,在物理上是否可实现?例如,纯微分环节(只有一个零点)是不可实现的,通常需要附加一个高频极点使其成为实际的可实现传递函数(如 ( \frac{s+z}{s+p} ),其中 ( p \gg z ))。

掌握根轨迹,本质上是掌握了一种系统化的图形化思维。它把抽象的代数方程(特征方程)和抽象的控制器参数(如增益K),映射到了直观的复平面图形上,让系统性能的变化一目了然。从手绘理解法则,到用软件高效设计,这条路径走通了,你对线性系统动态特性的理解和驾驭能力就会上升一个坚实的台阶。在调试一个真实的控制器时,我常常会先在脑子里快速过一下根轨迹的大致形状,这能帮助我预判参数调整的方向,避免盲目的“玄学调参”。