ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

奈氏图完全解析:从传递函数到闭环稳定性判据

奈氏图完全解析:从传递函数到闭环稳定性判据 1. 从传递函数到奈氏图为什么频域分析绕不开这一张图如果你正在学自动控制原理或者工作中需要分析一个闭环系统的稳定性那你大概率已经听过“奈氏图”这个名字。全称叫幅相频率特性曲线英文是 Nyquist Plot国内教材习惯叫它奈氏图或者极坐标图。它做的事情说起来很简单把一个系统的开环传递函数 G(s)H(s) 中的 s 替换成 jω然后让 ω 从 0 变到无穷大把每个频率点对应的幅值和相角画在一张极坐标图上。但这张图背后承载的信息量远比“画一条曲线”要深得多。我刚开始接触这一章的时候最大的困惑不是怎么画而是“为什么要画这个”。Bode图不是已经能看幅频和相频了吗后来在做实际项目——比如 buck 功率级传递函数的环路设计、加热电炉闭环控制系统的稳定性校核——才真正体会到奈氏图的独特价值在于它能把开环频率特性和闭环系统的绝对稳定性直接挂钩。你不需要求出闭环极点只需要看开环曲线是否包围临界点 (-1, j0)就能判断闭环系统稳不稳。这个逻辑在工程上极其好用因为开环传递函数通常比闭环传递函数容易获得得多。这篇文章面向的是正在学自动控制原理的学生、需要做频域分析的工程师以及想从“会算题”进阶到“会分析实际系统”的人。我会从核心思路、绘制方法、典型环节处理、实操步骤到常见踩坑把奈氏图这一章彻底讲透。不管你是为了应付考试还是为了在 Simulink 里验证一个电机控制系统的稳定性这些内容都能直接拿来用。2. 奈氏图到底在画什么核心逻辑与方案选型2.1 从 s 域到频域的映射关系要理解奈氏图得先回到传递函数本身。一个线性定常系统的开环传递函数写成 G(s)H(s)其中 s 是复变量。当我们令 s jω也就是把 s 限制在虚轴上传递函数就变成了 G(jω)H(jω)。这是一个复数每个 ω 对应一个复数这个复数有模有相角。模就是幅频特性 A(ω) |G(jω)H(jω)|相角就是相频特性 φ(ω) ∠G(jω)H(jω)。奈氏图做的事情就是把 ω 从 0 到 ∞ 变化时这些复数对应的点全部画在复平面上然后用一条光滑曲线连起来。曲线的起点通常在 ω0 处终点在 ω→∞ 处。这里有个关键点很多人一开始会忽略奈氏图分正频率部分和负频率部分。实际物理系统的频率是正的但数学上 ω 可以取负值。由于 G(-jω) 和 G(jω) 是共轭关系负频率部分的曲线就是正频率部分关于实轴的镜像。所以完整的奈氏图是一条关于实轴对称的闭合曲线或者趋于闭合。教材上通常只画正频率部分但判断包围圈数的时候必须把镜像部分补上否则结论会出错。注意很多考试题只要求画 ω 从 0 到 ∞ 的曲线但稳定性判据用的是完整曲线。做题时如果题目说“绘制奈氏图”一般画正频率部分即可如果说“用奈氏判据判断稳定性”必须考虑镜像。2.2 为什么选极坐标而不是直角坐标你可能会问Bode图用直角坐标把幅值和相角分开画不是更清楚吗为什么还要搞一个极坐标图这个问题我在第一次学的时候也纠结过。核心原因在于临界点 (-1, j0) 的几何意义。在极坐标图上(-1, j0) 就是一个固定的点曲线是否包围它一目了然。而在 Bode 图上(-1, j0) 对应的是幅值为 10 dB、相角为 -180° 这个条件你需要同时在两张图上找这两个值再对照频率非常不直观。另外奈氏图在处理条件稳定系统时有独特优势。有些系统开环增益增大反而稳定减小反而不稳定这种系统在 Bode 图上分析起来很别扭但在奈氏图上曲线和 (-1, j0) 的相对位置变化很直观。还有一个实际原因奈氏判据的数学基础是辐角原理它天然就是在复平面上讨论的。用极坐标图来配合这个判据逻辑上最自洽。2.3 奈氏判据的核心公式奈氏判据的标准表述是Z P - 2N其中 Z 是闭环系统在右半平面的极点数P 是开环系统在右半平面的极点数N 是奈氏曲线包围 (-1, j0) 点的圈数逆时针为正顺时针为负。系统稳定的条件是 Z 0也就是 2N P。这个公式看起来简单但实际用的时候有几个坑。第一N 的计算要区分正频率和负频率完整曲线的包围圈数是正频率部分的两倍。第二如果曲线正好穿过 (-1, j0)说明系统处于临界稳定状态。第三P 的确定需要先检查开环传递函数的极点这一步很多人会漏掉。我个人的习惯是拿到一个系统先做三件事写出开环传递函数、找出开环右半平面极点数 P、然后画奈氏图数包围圈数 N。这三步做完稳定性结论基本就出来了。3. 典型环节的奈氏曲线拆解与组合3.1 比例环节和积分环节比例环节 G(jω) K它的奈氏图就是实轴上的一个固定点 (K, j0)。不管频率怎么变幅值和相角都不变。这个最简单但它是理解其他环节的基础。积分环节 G(jω) 1/(jω) -j/ω它的幅值是 1/ω相角恒为 -90°。当 ω 从 0 变到 ∞幅值从无穷大降到 0相角始终是 -90°。所以它的奈氏图是沿着负虚轴从无穷远处指向原点的一条直线。这条线在 ω→0 时趋于无穷这是积分环节的典型特征。实际系统里纯积分环节很少单独出现但它是构成其他环节的基础。比如一个电机控制系统的开环传递函数里通常会有一个 1/s 项这就是积分环节它让低频增益趋于无穷从而消除稳态误差。3.2 惯性环节惯性环节 G(jω) 1/(1 jωT)其中 T 是时间常数。这个环节的奈氏图是一个半圆。推导过程如下令 G(jω) 1/(1 jωT)分子分母同乘 (1 - jωT)得到 G(jω) (1 - jωT)/(1 ω²T²)。实部 Re 1/(1 ω²T²)虚部 Im -ωT/(1 ω²T²)。把实部和虚部的关系找出来Re² Im² Re整理得 (Re - 1/2)² Im² (1/2)²。这是一个圆心在 (1/2, 0)、半径为 1/2 的圆。当 ω 从 0 到 ∞曲线从 (1, j0) 出发经过 (1/2, -j1/2)最终趋于原点。这个半圆的性质在工程上很有用。比如你在分析一个加热电炉的闭环控制系统时电炉的热惯性就可以用一个惯性环节来近似它的奈氏图就是这样一个半圆。3.3 振荡环节振荡环节 G(jω) 1/(1 - ω²T² j2ζωT)其中 ζ 是阻尼比T 是时间常数。这个环节的奈氏图比较复杂形状取决于 ζ 的大小。当 ζ 1 时系统可以分解成两个惯性环节的串联奈氏图是两个半圆的组合。当 0 ζ 1 时系统存在谐振峰奈氏图在谐振频率附近会出现一个“鼓包”幅值可能超过 1。当 ζ 0 时系统无阻尼在谐振频率处幅值趋于无穷奈氏图会穿过无穷远。这里有个关键参数谐振频率 ωr ωn√(1 - 2ζ²)谐振峰值 Mr 1/(2ζ√(1 - ζ²))。这两个值在奈氏图上表现为曲线离原点最远的那个点。实际工程中我们通常希望 ζ 在 0.4 到 0.8 之间这样超调量不会太大响应速度也够快。3.4 微分环节和延迟环节微分环节 G(jω) jω它的奈氏图是沿着正虚轴从原点指向无穷远的一条直线。相角恒为 90°幅值随频率线性增大。理想微分环节在物理上不可实现因为高频增益无穷大会放大噪声。实际用的是近似微分比如 G(jω) jωT/(1 jωT)它在低频时像微分高频时像比例。延迟环节 G(jω) e^(-jωτ)它的幅值恒为 1相角为 -ωτ随频率线性减小。在奈氏图上它是一个单位圆随着频率增大不断绕原点旋转。延迟环节对系统稳定性的影响很大因为它引入了额外的相位滞后而且这个滞后随频率无限增大。实际系统中管道传输、信号采样等都会引入延迟。实操心得遇到含延迟环节的系统奈氏图会是一条螺旋线包围圈数的判断需要特别小心。我一般会先用 Padé 近似把延迟环节有理化再用常规方法分析最后用原始延迟验证。4. 手把手绘制开环奈氏图完整流程与实操4.1 第一步写出开环传递函数并标准化拿到一个系统首先要写出开环传递函数 G(s)H(s)。这一步看似简单但很多错误都出在这里。比如一个 buck 功率级传递函数它的开环形式可能包含 PWM 调制器的增益、功率级的传递函数、反馈分压网络等。你需要把这些环节正确串联起来。标准化是指把传递函数写成时间常数形式也就是每个环节都写成 (1 jωT) 或者 (1 - ω²T² j2ζωT) 的形式。这样做的好处是你可以直接读出每个环节的转折频率方便后续分析。举个例子假设开环传递函数是 G(s)H(s) 100/(s(s10)(s50))。标准化后写成 G(jω)H(jω) 100/(jω · 10(1 jω/10) · 50(1 jω/50)) 0.2/(jω(1 jω/10)(1 jω/50))。这样你就知道转折频率分别是 10 rad/s 和 50 rad/s。4.2 第二步确定起点和终点起点是 ω→0 时的行为。如果系统有 ν 个积分环节那么 G(jω)H(jω) 在 ω→0 时趋于无穷相角为 -ν×90°。具体来说ν1 时起点在负虚轴无穷远处ν2 时起点在负实轴无穷远处ν3 时起点在正虚轴无穷远处。终点是 ω→∞ 时的行为。如果分子阶数 m 小于分母阶数 n那么 G(jω)H(jω) 在 ω→∞ 时趋于 0相角为 -(n-m)×90°。如果 mn终点是一个有限值。如果 mn终点趋于无穷但实际物理系统不会出现这种情况。确定起点和终点后你就能大致知道曲线从哪来、到哪去这对后续画图很有帮助。4.3 第三步找与实轴和虚轴的交点与实轴的交点是最重要的因为 (-1, j0) 就在实轴上。求法很简单令虚部 Im[G(jω)H(jω)] 0解出 ω再代入实部得到交点坐标。与虚轴的交点也有用可以帮你判断曲线的走向。令实部 Re[G(jω)H(jω)] 0解出 ω再代入虚部。以 G(jω)H(jω) 0.2/(jω(1 jω/10)(1 jω/50)) 为例。先展开分母(jω)(1 jω/10)(1 jω/50) jω(1 jω/10 jω/50 (jω)²/500) jω(1 j0.12ω - ω²/500) jω - 0.12ω² - jω³/500。所以 G(jω)H(jω) 0.2/(-0.12ω² j(ω - ω³/500))。令虚部为 0ω - ω³/500 0解得 ω 0 或 ω √500 ≈ 22.36 rad/s。ω0 是起点ω22.36 是与实轴的交点。代入实部Re 0.2/(-0.12 × 500) 0.2/(-60) -0.00333。所以交点是 (-0.00333, j0)。这个交点离 (-1, j0) 很远说明系统稳定裕度很大。4.4 第四步判断曲线走向和包围圈数有了起点、终点和交点还需要判断曲线的走向。方法是取几个中间频率点计算对应的幅值和相角描点连线。对于上面的例子取 ω1, 5, 10, 22.36, 50, 100 几个点计算 G(jω)H(jω) 的值然后在复平面上描出来。你会发现曲线从负虚轴无穷远处出发随着频率增大逐渐向右下方移动穿过实轴后继续向右上方移动最终趋于原点。包围圈数的判断如果曲线不包围 (-1, j0)N0。如果包围需要数圈数。对于这个例子交点实部是 -0.00333远大于 -1所以曲线不包围 (-1, j0)N0。开环极点在右半平面的个数 P0因为开环传递函数的极点是 0, -10, -50都在左半平面或原点所以 Z P - 2N 0闭环系统稳定。4.5 第五步用 MATLAB 或 Python 验证手画完之后最好用工具验证一下。MATLAB 里可以用nyquist函数Python 里可以用control库。import control import matplotlib.pyplot as plt s control.TransferFunction.s G 0.2 / (s * (s/10 1) * (s/50 1)) control.nyquist(G) plt.show()运行后会得到一张奈氏图你可以对照自己手画的结果看看起点、终点、交点是否一致。如果差异很大说明手画过程中有错误需要回头检查。注意MATLAB 的nyquist函数默认画的是完整曲线包括负频率部分而教材上通常只画正频率部分。对比时要注意这一点。5. 常见问题与排查技巧实录5.1 起点判断错误导致全盘皆输这是最常见的问题。很多人看到传递函数里有 1/s就以为起点一定在负虚轴无穷远。但如果同时有多个积分环节起点位置会不同。ν1 时相角 -90°ν2 时相角 -180°ν3 时相角 -270°等价于 90°。排查方法数清楚开环传递函数中积分环节的个数。注意这里的积分环节是指标准形式中的 1/s 项不包括 (1 jωT) 这种。5.2 忘记补镜像曲线导致包围圈数算错奈氏判据用的是完整曲线但很多人只画了正频率部分数包围圈数时也只数了一半结果 Z P - 2N 算出来不对。排查方法画完正频率部分后关于实轴做镜像得到完整曲线。然后数完整曲线包围 (-1, j0) 的圈数。如果正频率部分包围了半圈完整曲线就是一圈。5.3 与实轴交点计算中的代数错误求与实轴交点时需要令虚部为 0解出 ω再代入实部。这一步涉及复数运算很容易出错。常见的错误包括忘记共轭相乘、符号搞错、解方程时漏根。排查方法用 Python 或 MATLAB 符号计算验证。比如用 sympy 库import sympy as sp w sp.Symbol(w, realTrue) G 0.2 / (sp.I*w * (1 sp.I*w/10) * (1 sp.I*w/50)) G_expanded sp.simplify(sp.expand(G)) Im_part sp.im(sp.nsimplify(G_expanded)) solutions sp.solve(sp.Eq(Im_part, 0), w) print(solutions)5.4 含延迟环节时的特殊处理延迟环节 e^(-jωτ) 的相角是 -ωτ随频率线性减小不趋于一个有限值。这导致奈氏图是一条螺旋线包围圈数可能无穷多。实际分析时通常用 Padé 近似把延迟环节有理化。一阶 Padé 近似e^(-jωτ) ≈ (1 - jωτ/2)/(1 jωτ/2)。二阶 Padé 近似精度更高但计算更复杂。我一般先用一阶近似快速判断如果结果在临界附近再用二阶或原始延迟验证。5.5 常见问题速查表问题现象可能原因排查方法起点位置不对积分环节个数数错检查标准形式中 1/s 的幂次包围圈数算错忘记补镜像曲线画完整曲线后重新数与实轴交点算不出代数运算错误用符号计算工具验证曲线形状异常转折频率顺序搞错按从小到大排列转折频率稳定性结论与仿真不符开环右半平面极点数 P 算错检查开环传递函数的所有极点实操心得我习惯在画奈氏图之前先用 Bode 图快速判断一下系统的稳定裕度。如果 Bode 图上相位裕度很大比如大于 60°那奈氏图大概率不包围 (-1, j0)手画时重点检查起点和终点即可。如果相位裕度很小那就要仔细画因为曲线可能刚好擦过 (-1, j0)。6. 从奈氏图到实际系统几个工程案例的思考6.1 buck 功率级传递函数的奈氏分析buck 变换器的功率级传递函数通常包含一个 LC 滤波器表现为一个振荡环节。在环路设计中我们需要保证开环传递函数在穿越频率处的相位裕度足够大。用奈氏图来看就是曲线在穿越频率附近不能太靠近 (-1, j0)。实际调试时我会先测量功率级的频率响应得到实际的传递函数然后画奈氏图。如果发现曲线离 (-1, j0) 太近就调整补偿网络的零极点把曲线“推”离临界点。这个过程在 Simulink 里可以快速迭代比实际焊接电路调试快得多。6.2 加热电炉闭环控制系统的稳定性校核加热电炉的温度控制系统通常是一个大惯性系统传递函数可以近似为一阶惯性加延迟。延迟来自温度传感器的响应时间和热传导过程。这种系统的奈氏图是一条螺旋线随着延迟增大曲线会越来越靠近 (-1, j0)。我在做这类系统时会先用阶跃响应估计时间常数和延迟时间然后画奈氏图判断稳定性。如果延迟太大导致系统不稳定就需要降低控制器增益或者采用 Smith 预估器补偿延迟。6.3 Simulink 电机传递函数的频域验证电机控制系统的传递函数通常包含电气时间常数和机械时间常数表现为两个惯性环节的串联。在 Simulink 里搭建模型后可以用linmod函数提取线性化模型然后画奈氏图。我一般会对比理论计算的奈氏图和 Simulink 提取的奈氏图如果两者一致说明模型搭建正确。如果不一致通常是某个环节的参数设置有问题比如电机的转动惯量、摩擦系数等。注意Simulink 提取的传递函数是数值形式的可能包含一些高频动态导致奈氏图在高频段与理论曲线有差异。分析时主要关注低频和中频段即可。6.4 条件稳定系统的奈氏图特征条件稳定系统是指开环增益在一定范围内系统稳定增益过大或过小都不稳定。这种系统的奈氏图会多次穿越负实轴且穿越点分布在 (-1, j0) 两侧。分析这类系统时需要仔细数包围圈数。我通常会把不同增益下的奈氏图画在一起观察曲线随增益变化的趋势。如果增益增大时曲线向左扩展包围 (-1, j0) 的圈数增加说明系统可能变得不稳定。7. 写在最后一些个人体会奈氏图这一章我前前后后学了三遍。第一遍是为了考试记住了公式和画法但没理解为什么要这么做。第二遍是在做 buck 环路设计时发现 Bode 图不够用回头重新看奈氏判据才明白它的几何直觉有多强。第三遍是在带新人时被问到“为什么临界点是 (-1, j0) 而不是别的点”逼着自己从辐角原理重新推导了一遍才算真正通透。如果你现在正处于第一遍的阶段我的建议是不要只记画法多问几个为什么。为什么积分环节的起点在无穷远为什么惯性环节的奈氏图是半圆为什么包围圈数要乘以 2这些问题想清楚了后面做题和做项目都会轻松很多。如果你已经工作了需要用奈氏图分析实际系统我的建议是手画和工具验证结合。手画帮你建立直觉工具帮你确认细节。两者都不可偏废。另外遇到含延迟的系统不要怕麻烦老老实实用 Padé 近似或者数值方法处理比凭感觉猜要靠谱得多。最后分享一个小技巧画奈氏图时先用铅笔轻轻画出起点、终点和与实轴的交点这三个点定下来曲线的骨架就出来了。然后再取几个中间频率点把曲线补完整。这样画出来的图既快又准考试和项目都够用。
返回列表