
1. 从系统会不会振说起为什么需要奈奎斯特和裕度做控制的人迟早会撞上同一个问题我设计好的闭环系统到底稳不稳稳的话离不稳定还有多远这两个问题前者靠奈奎斯特稳定判据回答后者靠相角裕度和幅值裕度回答。而把这两件事串起来、让工程师能在图纸上直接读出答案的工具就是对数频率特性也就是大家天天挂在嘴边的Bode图。我刚开始学第五章的时候最大的困惑不是公式推不出来而是不知道这些东西到底在工程里干嘛用。教材上讲奈奎斯特判据画一堆包围原点的曲线讲裕度给两个公式讲Bode图让你描点画折线。学完之后脑子里全是散的直到真正上手调一个实际系统才发现这三块内容其实是一条线开环频率特性决定闭环稳定性裕度告诉你稳定余量有多少Bode图是把这一切可视化的载体。这一章的核心价值在于它把稳定性这个抽象概念变成了可以在频域里量化、可以画出来、可以读出数字的东西。你不需要去解闭环特征方程的根只要看开环的幅频和相频曲线就能判断闭环稳不稳、稳到什么程度。这对高阶系统尤其重要因为四阶以上的特征方程求根基本不现实而频域法绕开了这个障碍。这篇文章适合正在学自动控制原理的学生也适合工作中需要快速判断系统稳定性的工程师。我会把奈奎斯特判据的判稳逻辑、相角裕度和幅值裕度的物理含义、对数频率特性的绘制方法以及三者之间的内在联系讲清楚并且补充一些教材上不会写、但实操中一定会遇到的细节。看完之后你应该能拿到一个开环传递函数独立画出Bode图算出裕度并判断闭环系统的稳定性。2. 奈奎斯特稳定判据绕开求根用开环曲线判闭环2.1 判据到底在判什么奈奎斯特判据的出发点很朴素闭环系统的稳定性由闭环特征方程的根决定而闭环特征方程和开环传递函数之间存在一个简单关系。设开环传递函数为 $G(s)H(s)$则闭环特征方程为$$1 G(s)H(s) 0$$定义辅助函数$$F(s) 1 G(s)H(s)$$这个 $F(s)$ 的零点就是闭环极点$F(s)$ 的极点就是开环极点。奈奎斯特判据的本质是用辐角原理把$F(s)$ 在右半平面的零点数转化成$G(s)H(s)$ 曲线绕 $(-1, j0)$ 点的圈数。辐角原理说的是如果一条闭合曲线包围了 $F(s)$ 的 $Z$ 个零点和 $P$ 个极点那么 $F(s)$ 的相角变化量是 $2\pi(Z-P)$。把这个原理套到右半平面这条围线上就得到奈奎斯特判据的标准形式$$Z P - N$$其中 $Z$ 是闭环在右半平面的极点数系统稳定要求 $Z0$$P$ 是开环在右半平面的极点数$N$ 是开环频率特性曲线绕 $(-1, j0)$ 点逆时针包围的圈数。判稳的逻辑就一句话闭环稳定的充要条件是 $Z P - N 0$也就是 $N P$。2.2 为什么是绕 $(-1, j0)$ 而不是原点这是很多人第一次学的时候会卡住的地方。为什么判据盯的是 $(-1, j0)$ 这个点而不是原点原因在于辅助函数 $F(s) 1 G(s)H(s)$ 的零点对应的是 $G(s)H(s) -1$。也就是说闭环极点就是让开环传递函数等于 $-1$ 的那些 $s$。在复平面上$-1$ 对应的点就是 $(-1, j0)$。所以 $F(s)$ 的零点问题等价于 $G(s)H(s)$ 曲线是否经过或包围 $(-1, j0)$ 的问题。换个角度理解$(-1, j0)$ 是临界点。如果开环曲线正好穿过这个点说明存在某个频率使 $G(j\omega)H(j\omega) -1$此时闭环特征方程 $1 G H 0$ 成立系统处于临界稳定。曲线离这个点越远稳定余量越大。这个距离的概念后面就演化成了相角裕度和幅值裕度。2.3 开环右半平面极点数 $P$ 怎么数$P$ 是开环传递函数在右半平面的极点数。对于大多数实际系统开环是稳定的$P 0$此时判据简化为曲线不包围 $(-1, j0)$ 点闭环就稳定。但有些系统开环本身就不稳定比如含有右半平面极点的系统这时候 $P \neq 0$判据就必须老老实实按 $N P$ 来算。我见过不少人一上来就默认 $P0$结果遇到开环不稳定系统直接判错。数 $P$ 的方法很直接把开环传递函数的分母因式分解看有没有实部为正的根。比如$$G(s)H(s) \frac{K}{s(s-1)(s2)}$$分母有一个根 $s1$ 在右半平面所以 $P1$。这种情况下闭环稳定要求曲线逆时针包围 $(-1, j0)$ 点一圈即 $N1$。2.4 穿越次数的正确数法实际画曲线的时候很少真的去数包围圈数而是数穿越次数。这里有个容易出错的细节穿越分正穿越和负穿越。正穿越曲线从上往下穿过负实轴 $(-\infty, -1)$ 段记为 $N_$负穿越曲线从下往上穿过负实轴 $(-\infty, -1)$ 段记为 $N_-$则 $N N_ - N_-$。注意穿越必须发生在 $(-1, j0)$ 点左侧的负实轴上也就是实部小于 $-1$ 的那一段。如果曲线在 $-1$ 到 $0$ 之间穿过负实轴那不算穿越因为它没有越过临界点。还有一个坑如果曲线起点或终点恰好在负实轴上要按半次穿越处理。这种情况在含有积分环节或等幅振荡环节的系统里很常见。教材上一般会给出具体规则实操中我的建议是遇到起点在负实轴的情况把曲线稍微扰动一下看趋势判断是正穿还是负穿比死记规则靠谱。2.5 一个完整的判稳例子拿一个三阶系统练手$$G(s)H(s) \frac{K}{s(s1)(s2)}$$开环极点为 $0, -1, -2$全部不在右半平面所以 $P 0$。闭环稳定要求 $N 0$即曲线不包围 $(-1, j0)$。求曲线与负实轴的交点。令 $s j\omega$$$G(j\omega)H(j\omega) \frac{K}{j\omega(j\omega1)(j\omega2)}$$分母展开$j\omega(j\omega1)(j\omega2) j\omega(-\omega^2 j3\omega 2) -j\omega^3 - 3\omega^2 j2\omega$整理实部和虚部实部 $-3\omega^2$虚部 $\omega(2 - \omega^2)$。令虚部为零$\omega(2-\omega^2) 0$得 $\omega \sqrt{2}$$\omega0$ 是起点。此时实部为 $-3 \times 2 -6$所以交点坐标为 $(-K/6, j0)$。要让这个交点不越过 $(-1, j0)$需要 $-K/6 -1$即 $K 6$。所以临界增益 $K 6$当 $K 6$ 时闭环稳定。这个例子说明奈奎斯特判据不仅能判稳还能给出临界增益这对实际调参非常有用。3. 相角裕度和幅值裕度把稳不稳变成稳多少3.1 两个裕度的定义与物理意义判据只告诉你稳不稳但工程上更关心稳多少。一个系统即使稳定如果离临界点只有一丝距离稍微有点参数漂移或建模误差就会失稳这种系统不能用。相角裕度和幅值裕度就是量化这个距离的指标。相角裕度$\gamma$ 的定义在幅频特性穿越 $0\text{ dB}$ 的频率处称为截止频率或穿越频率$\omega_c$相频特性与 $-180°$ 之间的差值。$$\gamma 180° \angle G(j\omega_c)H(j\omega_c)$$其中 $\omega_c$ 满足 $|G(j\omega_c)H(j\omega_c)| 1$。幅值裕度$K_g$ 的定义在相频特性穿越 $-180°$ 的频率处称为相角穿越频率$\omega_g$幅频特性的倒数。$$K_g \frac{1}{|G(j\omega_g)H(j\omega_g)|}$$其中 $\omega_g$ 满足 $\angle G(j\omega_g)H(j\omega_g) -180°$。用分贝表示就是 $K_g(\text{dB}) -20\lg|G(j\omega_g)H(j\omega_g)|$。物理意义很直观相角裕度告诉你在截止频率处系统还能承受多少额外的相位滞后才会失稳幅值裕度告诉你在相角穿越频率处系统增益还能放大多少倍才会失稳。两者都是安全余量。3.2 为什么工程上更看重相角裕度理论上两个裕度都重要但实际调参时相角裕度是更常用的指标。原因有几个。第一大多数系统的失稳是由相位滞后引起的而不是增益过大。增益问题可以通过调整放大器解决但相位滞后往往来自系统本身的动态特性改起来更麻烦。第二相角裕度和系统的动态性能直接相关。经验上相角裕度在 $30°$ 到 $60°$ 之间时系统的超调量和调节时间比较合理。$\gamma$ 太小超调大、振荡厉害$\gamma$ 太大响应慢、不够灵敏。工程上常取 $\gamma 45°$ 左右作为设计目标。第三很多系统在相角穿越频率处幅值已经衰减得很厉害幅值裕度天然就很大不太会成为瓶颈。而截止频率附近的相位特性才是决定性的。我个人的经验是先看相角裕度定性能再用幅值裕度做校验。如果相角裕度合适但幅值裕度偏小说明系统在高频段有隐患需要额外注意。3.3 裕度与稳定性的对应关系这里要澄清一个常见误解裕度为正不代表一定稳定裕度为负也不代表一定不稳定这取决于开环右半平面极点数 $P$。对于 $P0$ 的系统开环稳定裕度为正等价于闭环稳定。这是最常见的情况也是教材默认的场景。对于 $P \neq 0$ 的系统裕度和稳定性的关系就复杂了。一个开环不稳定的系统即使裕度看起来是正的闭环也可能不稳定。这时候必须回到奈奎斯特判据去判断。所以正确的顺序是先用奈奎斯特判据确认闭环稳定再用裕度衡量稳定程度。不要跳过第一步直接看裕度。3.4 裕度计算实操从Bode图读数实际算裕度最方便的是在Bode图上读。步骤是画出开环的幅频特性和相频特性曲线在幅频曲线上找到穿越 $0\text{ dB}$ 的频率 $\omega_c$在相频曲线上读出 $\omega_c$ 处的相角用 $180°$ 减去这个相角的绝对值就是相角裕度在相频曲线上找到穿越 $-180°$ 的频率 $\omega_g$在幅频曲线上读出 $\omega_g$ 处的幅值dB取负值就是幅值裕度举个具体数字某系统在 $\omega_c 5\text{ rad/s}$ 处相角为 $-135°$则相角裕度 $\gamma 180° - 135° 45°$。在 $\omega_g 12\text{ rad/s}$ 处幅值为 $-8\text{ dB}$则幅值裕度 $K_g 8\text{ dB}$。这两个数字说明系统有 $45°$ 的相位余量和 $8\text{ dB}$ 的增益余量属于比较健康的设计。3.5 裕度不达标时怎么调如果算出来裕度不够常见的调整手段有降低增益直接减小 $K$截止频率左移相角裕度增大。这是最简单的方法但会牺牲响应速度。增加超前校正在截止频率附近引入相位超前直接抬高相角裕度。这是最常用的手段。降低系统阶数如果高频段有多个小时间常数环节它们的相位滞后叠加起来很可观可以考虑简化或补偿。我踩过的一个坑是为了追求大相角裕度把增益降得太低结果系统响应慢得像蜗牛。后来才明白裕度不是越大越好而是要匹配实际需求。一般来说$\gamma$ 在 $45°$ 到 $60°$ 之间是比较平衡的选择。4. 对数频率特性让频域分析变得可画可读4.1 为什么用对数坐标频率特性的横轴跨度往往很大从 $0.01\text{ rad/s}$ 到 $1000\text{ rad/s}$ 很常见跨越五个数量级。如果用线性坐标低频段挤成一团高频段拉得很开根本没法看。用对数坐标每个十倍频程等宽整个频段都能均匀展开。纵轴用分贝表示幅值也是同样的道理。幅值从 $0.001$ 到 $1000$ 跨度极大取对数后变成 $-60\text{ dB}$ 到 $60\text{ dB}$压缩到合理范围。而且分贝的加法对应幅值的乘法串联环节的幅频特性可以直接叠加这是Bode图最大的便利。相频特性纵轴一般用线性刻度单位是度。因为相角的范围有限通常 $-270°$ 到 $0°$不需要对数压缩。4.2 典型环节的Bode图长什么样画复杂系统的Bode图本质是把典型环节的曲线叠加起来。所以必须先把几个基本环节的曲线刻在脑子里。比例环节$K$幅频是一条水平线高度为 $20\lg K$相频是 $0°$ 的水平线。积分环节$1/s$幅频是斜率为 $-20\text{ dB/dec}$ 的直线穿过 $\omega1$ 时幅值为 $0\text{ dB}$相频是 $-90°$ 的水平线。惯性环节$1/(Ts1)$低频段幅值为 $0\text{ dB}$高频段以 $-20\text{ dB/dec}$ 下降转折频率在 $\omega 1/T$。相频从 $0°$ 逐渐过渡到 $-90°$在转折频率处为 $-45°$。一阶微分环节$Ts1$和惯性环节镜像幅频高频段以 $20\text{ dB/dec}$ 上升相频从 $0°$ 到 $90°$。振荡环节低频 $0\text{ dB}$高频 $-40\text{ dB/dec}$转折频率处有谐振峰峰值大小取决于阻尼比 $\zeta$。相频从 $0°$ 到 $-180°$转折频率处为 $-90°$。延迟环节$e^{-\tau s}$幅频恒为 $0\text{ dB}$相频为 $-\omega\tau$随频率线性下降。这个环节很特殊它不改变幅值只贡献相位滞后是很多系统相位裕度不足的元凶。4.3 渐近线画法与误差修正手工画Bode图标准做法是画渐近线也就是用折线近似曲线。规则是每个转折频率处斜率变化 $\pm 20\text{ dB/dec}$一阶环节或 $\pm 40\text{ dB/dec}$二阶环节低频段由积分环节和比例环节决定从低频往高频逐个转折频率改变斜率渐近线和实际曲线之间有误差。对于一阶环节最大误差出现在转折频率处约为 $-3\text{ dB}$。对于二阶振荡环节误差取决于阻尼比$\zeta$ 越小误差越大谐振峰可能高出渐近线十几分贝。实操中如果只是判断稳定性、算裕度渐近线精度通常够用。但如果要精确算谐振峰或做定量分析就需要修正。我的习惯是转折频率附近用实际值修正远离转折频率的地方直接用渐近线这样既快又准。4.4 用MATLAB快速验证手绘结果手画完之后一定要用工具验证。MATLAB的bode函数是最常用的s tf(s); G 10/(s*(s1)*(s2)); bode(G); grid on; margin(G);margin函数会直接标出相角裕度、幅值裕度和对应的频率非常方便。我一般会先手画一遍建立直觉再用MATLAB核对数字两者对照着看理解会深很多。Python的话可以用control库import control as ct import matplotlib.pyplot as plt s ct.tf(s) G 10 / (s * (s 1) * (s 2)) ct.bode_plot(G, dBTrue, HzFalse) gm, pm, wg, wc ct.margin(G) print(f幅值裕度: {gm}, 相角裕度: {pm})这两个工具算出来的结果应该一致如果对不上多半是单位或频率范围设置的问题。4.5 从Bode图反推系统特性Bode图不只是分析工具也是设计工具。有经验的人看一眼Bode图就能大致判断系统的性能。低频段斜率决定系统型别。斜率为 $-20\text{ dB/dec}$ 说明有一个积分环节是I型系统对阶跃输入无静差。截止频率反映响应速度。$\omega_c$ 越大响应越快但高频抗扰能力越差。相角裕度反映超调量。$\gamma$ 小则超调大。高频段斜率反映抗噪声能力。高频衰减越快对高频噪声抑制越好。我调参的时候习惯先看低频段确认型别再看截止频率和相角裕度定性能最后看高频段确认噪声抑制。这套流程走下来系统的基本特性就清楚了。5. 三个工具的联动从判据到裕度再到Bode图5.1 一条完整的分析链路把前面三块内容串起来实际分析一个系统的完整流程是这样的写出开环传递函数 $G(s)H(s)$确定开环右半平面极点数 $P$画出Bode图手绘渐近线或用工具从Bode图读出截止频率 $\omega_c$ 和相角穿越频率 $\omega_g$计算相角裕度 $\gamma$ 和幅值裕度 $K_g$用奈奎斯特判据确认闭环稳定性根据裕度判断稳定程度决定是否需要校正这个流程里Bode图是载体裕度是量化指标奈奎斯特判据是最终裁决。三者缺一不可。5.2 一个综合案例设开环传递函数为$$G(s)H(s) \frac{100}{s(s1)(0.1s1)}$$第一步确定 $P$开环极点为 $0, -1, -10$全部不在右半平面$P0$。第二步画Bode图低频段由 $100/s$ 决定在 $\omega1$ 处幅值为 $40\text{ dB}$斜率 $-20\text{ dB/dec}$。转折频率在 $\omega1$ 和 $\omega10$各增加 $-20\text{ dB/dec}$ 斜率。所以 $\omega1$ 时斜率 $-20$$1\omega10$ 时斜率 $-40$$\omega10$ 时斜率 $-60$。第三步找截止频率从 $\omega1$ 处 $40\text{ dB}$ 开始以 $-40\text{ dB/dec}$ 下降到 $0\text{ dB}$ 需要下降 $40\text{ dB}$即一个十倍频程所以 $\omega_c \approx 10\text{ rad/s}$。但 $\omega10$ 是转折点实际 $\omega_c$ 略小于 $10$。第四步算相角裕度在 $\omega_c \approx 10$ 处各环节相角为积分环节 $-90°$惯性环节 $1/(s1)$ 在 $\omega10$ 处约 $-84°$惯性环节 $1/(0.1s1)$ 在 $\omega10$ 处约 $-45°$。总相角约 $-219°$。相角裕度 $\gamma 180° - 219° -39°$为负值。第五步判断相角裕度为负说明系统不稳定。用奈奎斯特判据验证曲线在 $\omega_c$ 处已经越过 $-180°$且幅值仍大于 $0\text{ dB}$说明曲线包围了 $(-1, j0)$ 点$N \neq 0$闭环不稳定。第六步校正需要降低增益或增加超前校正。如果把增益从 $100$ 降到 $10$截止频率左移相角裕度会改善。重新计算后 $\omega_c$ 约在 $3\text{ rad/s}$相角裕度约 $30°$系统稳定但裕度偏小还需要进一步校正。这个案例说明增益过大是导致不稳定的常见原因而Bode图能直观地展示这一点。5.3 常见误区与避坑误区一只看幅频不看相频。有些人画完幅频觉得没问题就下结论忽略了相频。实际上相位滞后才是失稳的主因相频必须看。误区二把渐近线当精确曲线。渐近线在转折频率附近误差较大如果截止频率恰好在转折频率附近用渐近线算裕度会不准。误区三忽略延迟环节。延迟环节的相位滞后随频率线性增长在高频段可能贡献很大的滞后但幅频上完全看不出来。含有延迟的系统相位裕度往往比预期小很多。误区四裕度越大越好。前面说过裕度太大会导致响应慢。要根据实际需求平衡。误区五忘记检查 $P$。开环不稳定系统的判据和稳定系统不同不能默认 $P0$。5.4 手算与工具的分工我的建议是手算建立直觉工具做精确计算。手算的价值在于你能感受到每个环节对整体特性的贡献知道改哪个参数会影响哪段曲线。这种直觉是工具给不了的。但手算精度有限最终的数字要用工具核对。具体分工任务手算工具判断系统型别适合也可以画渐近线适合不必要精确截止频率不适合适合精确裕度不适合适合理解参数影响适合不直观批量对比不适合适合这张表是我自己总结的用久了会发现手算和工具各有各的用处不能偏废。6. 一些教材不写但实操必知的细节6.1 截止频率附近的相位变化率相角裕度是在截止频率处算的但截止频率附近的相位变化率同样重要。如果相位在截止频率附近变化很剧烈那么即使当前裕度够参数稍微漂移就可能失稳。这种情况在含有多个相近转折频率的系统中很常见。判断方法是看相频曲线在 $\omega_c$ 附近的斜率。斜率越陡系统越脆弱。理想情况下希望相位在 $\omega_c$ 附近变化平缓。6.2 条件稳定系统有些系统在增益增大时先失稳继续增大又稳定再增大又失稳这叫条件稳定系统。这种系统的奈奎斯特曲线会多次穿越负实轴裕度可能有多个值。条件稳定系统在实际中要慎用因为增益的微小变化可能导致稳定性突变。如果非用不可必须保证工作点远离所有临界增益。6.3 谐振峰与阻尼比的关系二阶振荡环节的谐振峰高度 $M_r$ 和阻尼比 $\zeta$ 的关系是$$M_r \frac{1}{2\zeta\sqrt{1-\zeta^2}}$$当 $\zeta$ 很小时$M_r$ 很大Bode图上会出现明显的尖峰。这个尖峰在闭环响应中对应超调所以从开环Bode图的谐振峰可以大致估计闭环超调量。经验公式$\zeta \approx 0.01 \times \gamma$$\gamma$ 为相角裕度单位度。比如 $\gamma 45°$则 $\zeta \approx 0.45$对应超调约 $25%$。这个估算在工程上够用。6.4 积分环节对低频段的影响积分环节的个数决定系统型别。0型系统低频段幅值为常数I型系统低频段斜率 $-20\text{ dB/dec}$II型系统 $-40\text{ dB/dec}$。型别越高稳态精度越好但稳定性越难保证。因为积分环节贡献 $-90°$ 相位滞后型别越高低频段相位越负相角裕度越难做。实际中I型系统最常见II型系统要谨慎设计III型及以上基本不用。6.5 频率轴范围的选取画Bode图时频率范围要覆盖关键频段。一般从最低转折频率的十分之一到最高转折频率的十倍。如果系统有延迟环节还要考虑延迟相位在哪个频率达到 $-180°$确保这个频率在范围内。范围选窄了看不到完整特性选宽了关键频段被压缩。我的习惯是先粗算关键频率再定范围保证截止频率和相角穿越频率都在图中央区域。7. 我踩过的几个坑和总结的经验刚学这一章的时候我犯过一个典型错误把奈奎斯特判据和裕度当成两套独立的东西判据判完就不管裕度了。后来做实际项目才发现判据只给是或否裕度才给好或坏。一个系统判据说稳定但裕度只有 $5°$这种系统根本不能用。判据是及格线裕度是质量分两者要一起看。另一个坑是过度依赖MATLAB。有段时间我所有分析都用margin函数结果有一次遇到一个含有延迟环节的系统MATLAB算出来的裕度和手算对不上查了半天才发现是延迟环节的相位计算方式和我预期不同。从那以后我养成了工具算完必须手算核对关键点的习惯。还有一个经验是关于相角裕度的取值。教材上常说 $30°$ 到 $60°$ 合适但实际项目里如果系统对超调敏感$\gamma$ 要取到 $60°$ 以上如果对响应速度要求高$\gamma$ 可以放宽到 $40°$ 左右。没有万能的最优值只有匹配需求的值。最后说一个画Bode图的技巧画之前先把所有转折频率标在频率轴上按从小到大排列然后从低频段开始逐段确定斜率。这样画出来的渐近线不会乱而且能快速看出哪段是主导。我见过不少人一上来就从左画到右画到后面忘了前面结果斜率算错。先标点再连线这个顺序很重要。这一章的内容说到底就是把稳定性从解方程变成看曲线。奈奎斯特判据给了判断依据裕度给了量化指标Bode图给了可视化工具。三者配合就能在不求闭环根的情况下把系统的稳定性分析清楚。这套方法在高阶系统和含延迟系统中尤其有用是控制工程师必须掌握的基本功。