手绘波特图全解析:从传递函数到相位裕度与稳定性判断

发布时间:2026/9/18 17:25:26
手绘波特图全解析:从传递函数到相位裕度与稳定性判断 1. 先从被振荡电路折磨的下午说起波特图到底帮我们解决了什么那年我在调一块电源的环路补偿输出端接上电子负载示波器上波形就开始抖频率大概几百赫兹幅度不大但就是消不掉。我试过改电容、改电阻、甚至在反馈回路里串了一堆网上查来的经验值全都没用。后来一位老工程师走过来看了眼电路图说了句“把你的环路增益画出来”然后丢给我一张Bode图的手绘草图。顺着他的思路把补偿网络调了三个元件振荡当场消失。那天下午给我的冲击很大。过去我一直把传递函数当成一门“考试课”解个微分方程、算个极点零点就完事从没想过它能直接指导调试。后来我才真正理解波特图本质上就是传递函数在频域上的一张“照片”——横轴是频率纵轴是增益和相位。它把系统在不同频率下的“回应强度”和“反应延迟”用两条曲线画出来让你不用解微分方程也能一眼看出系统稳不稳、快不快、会不会振荡。这篇文章我会把手画Bode图的过程完整拆开从拆传递函数、画渐近线、修正曲线到用波特图判断稳定裕度、带宽再到用Python和实测设备验证手绘结果。适合正在学自动控制原理的学生、刚接触环路补偿的电源工程师以及任何想真正“看懂”而不是“背会”波特图的人。我默认你已经知道传递函数是什么G(s) 输出/输入 的拉普拉斯变换比。但你不需要会解微分方程只需要会用初中数学做加减乘除和算斜率。因为波特图最大的价值就在这里它把复杂的系统行为简化成了可以手算、可以目测的直线和角度。2. 手绘波特图的五个标准动作拆、判、算、画、修2.1 第一步把传递函数拆成标准环节的乘积任何有理分式传递函数都能因式分解成下面这些“积木块”的乘积增益常数 K积分环节或微分环节 (s^n)一阶惯性环节 (\frac{1}{\tau s 1}) 或一阶微分环节 (\tau s 1)二阶振荡环节 (\frac{1}{(s/\omega_n)^2 2\zeta(s/\omega_n) 1})二阶微分环节的倒数形式为什么一定要拆因为波特图有一个让工程师省下大量时间的性质对数坐标下乘法变成加法。也就是说整个系统的幅频曲线等于每个环节幅频曲线直接相加相频曲线也直接相加。举个例子。假设拿到这样一个传递函数[ G(s) \frac{200(s2)}{s(s10)(s^22s100)} ]先别慌着画把它写成标准形式[ G(s) \frac{200 \cdot 2 \cdot (\frac{s}{2}1)}{s \cdot 10 \cdot (\frac{s}{10}1) \cdot 100 \cdot [(\frac{s}{10})^2 0.2(\frac{s}{10}) 1]} ]整理一下系数[ G(s) \frac{0.4 \cdot (\frac{s}{2}1)}{s \cdot (\frac{s}{10}1) \cdot [(\frac{s}{10})^2 0.2(\frac{s}{10}) 1]} ]这里的技巧是每个括号里的常数项都化为1把多余的系数全部集中到前面的K里。这个K就是系统的低频增益它决定整条幅频曲线是往上抬还是往下压。拆完之后你手上就有了一张“物料清单”一个常数0.4、一个积分环节1/s、一个零点(1s/2)、一个惯性环节1/(1s/10)、一个二阶振荡环节自然频率ωn10阻尼比ζ0.1。2.2 第二步记住三张“脸孔”其他都是排列组合手绘波特图不需要背很多曲线真正要记的只有三张基础脸孔。第一张脸常数K。幅频曲线是一条水平直线高度是 (20\lg K) dB相频曲线是一条0度水平线。K为负数时相位额外加-180度这个细节初学者特别容易漏。第二张脸积分和微分环节。积分环节 1/s 的幅频曲线是一条经过(1, 0)点、斜率为-20dB/dec的直线相频恒定-90度。微分环节 s 则完全对称斜率20dB/dec相位90度。如果是s的n次方斜率就是n倍的±20dB/dec相位就是n倍的±90度。第三张脸一阶惯性环节和它的一对“双胞胎”。惯性环节 (1/(1s\tau)) 的转折频率是 (\omega 1/\tau)。转折频率左边是0dB的水平线右边是-20dB/dec的斜线转折点正好是两条线的交点。相位曲线从0度开始在转折频率处正好-45度往下逐渐逼近-90度。微分环节 (1s\tau) 就是沿0dB线向右上走斜率20dB/dec相位从0到90度。这三张脸记住之后二阶环节只是“进阶版”它的高频斜率是-40dB/dec相位最终到-180度。但在阻尼比小的时候会多出一个谐振峰这个我放到后面单独讲。2.3 第三步算转折频率按频率从小到大“排轴”接下来要做的是把所有环节的转折频率找出来在频率轴上从小到大排好。上面那个例子里转折频率分别是零点在ω2惯性环节在ω10二阶环节在ω10。两个转折频率重合了这意味着在这个频率附近斜率变化要叠加。这里有一条我的经验法则先画低频段再一个转折一个转折往后推。低频段怎么定看积分环节的阶数和K。如果系统没有积分环节低频段就是20lgK的水平线。如果有一个积分环节低频段就是从(1, 20lgK)出发、斜率-20dB/dec的直线。有两个积分环节就是-40dB/dec以此类推。上例中K0.420lg0.4 ≈ -8dB所以低频段从(1Hz, -8dB)出发以-20dB/dec向下走。接着在每个转折频率处改变斜率遇到惯性环节斜率减20dB/dec遇到微分环节/零点斜率加20dB/dec遇到二阶振荡环节斜率减40dB/dec遇到二阶微分环节斜率加40dB/dec上例中从ω2开始遇到零点(1s/2)斜率从-20变成0dB/dec。到ω10时惯性环节和二阶环节同时生效斜率从0变成0-20-40 -60dB/dec。整条幅频渐近线就出来了。2.4 第四步画相频曲线的快捷方式相频曲线不需要逐点计算同样是“叠加”的思路。常数给0度负常数给-180度积分环节给-90度零点给一条从0度到90度的S形曲线在转折频率处45度惯性环节给一条从0度到-90度的S形曲线在转折频率处-45度二阶振荡环节给一条从0度到-180度的S形曲线在自然频率处-90度然后把所有角度在同一频率处加起来得到总相频曲线。需要注意的是一阶环节的相位变化大约跨越两个十倍频程从转折频率的0.1倍开始变到10倍结束。阻尼比越小的二阶环节相位在自然频率附近变化越剧烈。2.5 第五步渐近线修正手绘图也能逼近真实曲线渐近线是直线但真实曲线在转折处是平滑过渡的。想让手绘图更接近真实记住三个修正量一阶惯性环节在转折频率处实际幅值是-3dB而不是0dB一阶微分环节在转折频率处是3dB二阶振荡环节在谐振频率处的峰值是 (M_r \frac{1}{2\zeta\sqrt{1-\zeta^2}})当ζ0.707时成立用上面的例子算ζ0.1时Mr 1/(2×0.1×√(1-0.01)) ≈ 5.03也就是约14dB。这个峰很高画图时如果直接按渐近线画会严重低估该频率附近的增益。我见过有同行在仿真时发现实测增益比Bode图渐近线估计值高出十来dB还以为环路有问题其实就是忘了修正谐振峰。修正方法很简单在转折频率附近把曲线画成圆弧状朝对应方向偏移3dB遇到二阶环节则按阻尼比把峰顶拉起来峰的位置大约在 (\omega_r \omega_n\sqrt{1-2\zeta^2})。3. 从相位裕度到穿越频率读图才是Bode图的核心战场3.1 穿越频率、相位裕度、增益裕度这三个数直接决定稳不稳手绘Bode图的最大目的不是“画得好看”而是读出三个工程参数穿越频率ωc、相位裕度PM、增益裕度GM。穿越频率ωc是幅频曲线第一次穿过0dB线也就是增益等于1的频率。在这个频率上系统开环增益恰好为单位1如果此时相位再滞后一点负反馈就可能变成正反馈。相位裕度PM定义是180° ∠G(jωc)。说人话就是在幅值已经降到1的那个频率点上相位距离-180°还差多少度。它代表“系统离振荡还有多少余量”。增益裕度GM的定义是在相位达到-180°的那个频率ωπ上看增益距离0dB还有多少分贝。相位都转了一圈正好反相了如果增益还大于1那这个系统必振无疑。手绘图上怎么读把幅频曲线和0dB线的交点找到向下在相频曲线上找对应相位180°减去这个相位的绝对值就是PM。这三个数的量级参考如下工程经验值不是绝对标准参数经验值含义相位裕度30°~60°低于30°动态响应差接近0°容易振荡增益裕度6dB低于6dB对参数漂移过于敏感穿越频率约为闭环带宽的0.8~1倍越高响应越快但噪声也越容易进来3.2 为什么开环波特图能决定闭环系统稳定性很多初学者会困惑我们明明用的是闭环系统为什么画开环传递函数的波特图却说能判断闭环稳定性关键在于负反馈本身。闭环特征方程是1G(s)H(s)0如果某个频率sjω使得G(jω)H(jω) -1也就是幅值等于1、相位等于-180°那么1G(jω)H(jω)0闭环系统就有极点在虚轴上系统处于临界振荡状态。所以稳定性判据本质上就是看G(jω)H(jω)有没有穿过(-1, j0)这个点。幅值降到1时相位还没到-180°就说明没穿过去系统稳定穿过去了就是不稳定。这就是为什么开环波特图如此重要它把复平面上的“绕着(-1,0)点转圈”这个问题转化成了两条曲线上两个点的位置关系。人脑对曲线的直觉判断远远好过对复数轨迹的空间想象。3.3 从开环穿越频率估算闭环带宽工程里经常需要快速知道闭环带宽但直接画闭环幅频曲线又比较麻烦。一个很好用的近似对单位负反馈系统闭环带宽大约等于开环穿越频率的0.8~1.2倍具体取决于相位裕度。相位裕度在60°左右时闭环带宽接近穿越频率相位裕度越小时闭环会在穿越频率附近出现谐振峰使得实际带宽看起来比穿越频率还高一些。反过来如果相位裕度太大比如超过75°系统会变得迟钝带宽明显低于穿越频率。我以前调过一个伺服系统仿真时相位裕度做到接近90°觉得“裕度越大越安全”结果实测阶跃响应慢吞吞的上升时间比预期长了将近一倍。后来才意识到过大的相位裕度意味着系统被过度阻尼穿越频率形同虚设。相位裕度不是越大越好45°到60°是一般工程系统最舒服的区间。4. 让工具替你干活仿真验证和实测波特图的正确姿势4.1 Python和MATLAB里十秒钟画出Bode图手绘是基本功但实际工程中没人会天天手画。这里给两个最常用的工具。MATLAB里最简单s tf(s); G 0.4 * (1 s/2) / (s * (1 s/10) * (1 0.2*s/10 (s/10)^2)); bode(G); grid on;一行bode命令幅频相频都出来了。想同时看裕度margin(G);Python用scipy.signal也同样方便import numpy as np import matplotlib.pyplot as plt from scipy import signal # 分子分母多项式系数0.4*(1s/2) 0.2*s 0.4 num [0.002, 0.2, 0.4] # 注意归一化后展开 # 分母s*(1s/10)*((s/10)^20.2*(s/10)1) den [0.001, 0.012, 0.11, 1.0, 0] # 自行展开验证 sys signal.TransferFunction(num, den) w, mag, phase signal.bode(sys, np.logspace(-1, 3, 1000)) fig, ax plt.subplots(2, 1, figsize(8, 6)) ax[0].semilogx(w, mag) ax[0].set_ylabel(Magnitude (dB)) ax[0].grid(True, whichboth) ax[1].semilogx(w, phase) ax[1].set_ylabel(Phase (deg)) ax[1].set_xlabel(Frequency (rad/s)) ax[1].grid(True, whichboth) plt.show()注意Python里传递函数的系数要自己展开成多项式形式这个环节最容易出错。我的习惯是先用signal.zpk2tf从零极点形式转成多项式系数让代码自己算展开避免手算失误。4.2 手绘渐近线和真实曲线的差距在哪把渐近线手绘结果和电脑仿真叠在一起看你会发现几个规律性的偏差每个一阶转折处真实曲线都比渐近线低/高3dB左右二阶环节在ζ小的时候有谐振峰渐近线完全体现不出来相频曲线在渐近线画法里是一条“S形”的直线段逼近真实曲线是平滑连续的在转折频率附近差别最大所以手绘的价值不是替代仿真而是在没有工具的场合快速建立直觉。我在现场调试时经常在纸上画几条线估算穿越频率和相位裕度心里有数后再回电脑细算。这个习惯帮我过滤掉了很多明显离谱的仿真结果。4.3 实测波特图你测出来的不是传递函数是“当前工作点下的响应”如果系统已经做出来了想实测波特图一般用频率响应分析仪FRA或者信号发生器示波器手动扫频。手动扫频的做法是给系统输入端加一个固定幅值的正弦波改变频率在输出端测幅值和相位差逐个频率点记录。这里有三个实测时容易翻车的地方激励幅值不能太大。系统在很多情况下是非线性的小信号和大信号下的传递函数不一样。扫频时幅值太大会进入饱和区测出来的增益会偏低相位也会扭曲。一定要测稳态响应。正弦激励给下去系统需要一段时间进入稳态特别是低频点几赫兹以下可能要等好几个周期再读数否则瞬态分量会污染测量结果。注意共地干扰和噪声。高频段相位测量的误差主要来自探头地线形成的环路。用示波器测相位差时两个通道要用同一根地线参考点否则相位读数能偏出十几度。我见过一个很典型的例子有同事实测出来的相位裕度比仿真低了20多度查了很久发现是示波器探头的地线夹子不一样长引入了额外的电感高频相位被拉低了。换成了两个等长地线的探头之后实测和仿真就对上了。5. 画了三年Bode图才想明白的几个坑5.1 非最小相位系统幅值曲线正常相位却和你唱反调如果你拿到这样一个传递函数[ G_1(s) \frac{1sT}{1sT/10}, \quad G_2(s) \frac{1-sT}{1sT/10} ]你会发现G1和G2的幅频曲线一模一样因为|1-jωT|和|1jωT|的大小相等。但相位一个朝正走一个朝负走。这类分子零点落在右半平面的系统叫非最小相位系统它的典型特征是幅值看起来稳定相位却有额外滞后。非最小相位系统在工程里真不少见比如运放反馈中的右半平面零点、Boost变换器在连续导电模式下的传递函数都带有RHP零点。如果只盯着幅频曲线看很容易误判稳定性。RHP零点对相位的影响是滞后的它会让相位裕度“虚胖”表面上看PM有50°实际动态响应一塌糊涂。我的经验是画Bode图之前先看一眼零极点的实部符号有正实部的零点或极点时心里要立刻拉响警报相频曲线不能按“常规S形”想当然地画。5.2 穿越频率附近的斜率决定了相位裕度的“含金量”两条系统的穿越频率相同、相位裕度也相同但动态性能可能差很多。区别在于穿越频率附近的幅频斜率。如果穿越频率附近斜率是-20dB/dec相位曲线比较平缓相位裕度对参数变化不敏感如果斜率是-40dB/dec甚至更陡说明系统在穿越频率附近有多个惯性环节在起作用相位正在快速下滑相位裕度可能只是“侥幸”为正温度一变、负载一变就翻车判断一个相位裕度是否可靠我有个土办法把穿越频率附近±一个十倍频程的相位变化量算出来如果变化超过60°这个裕度就要打问号。因为真实的元件参数是有容差的电容随温度变化可以漂20%这个漂移反映在转折频率上会让相位裕度剧烈变化。5.3 谐振峰被阻尼比坑过的一次经历有次调一个二阶系统仿真Bode图显示一切正常幅频曲线在自然频率处有一点微微隆起我压根没在意觉得1~2dB不算什么。结果实测阶跃响应振荡得很厉害超调量远超设计指标。回头细看才发现阻尼比ζ只有0.15谐振峰实际是 (M_r \frac{1}{2\times0.15\times\sqrt{1-0.0225}} \approx 3.37)也就是约10.5dB。渐近线画法下二阶环节的幅频曲线在ωn处仍然画成0dB所以“微微隆起”在视觉上被我严重低估了。阻尼比这个参数在Bode图上的表现非常微妙。ζ大于0.707时二阶环节根本没有谐振峰ζ在0.4左右时只有约1.3dB的隆起还行ζ一旦低于0.3峰值就蹭蹭往上涨相位也在ωn附近剧烈翻转系统对频率附近的扰动特别敏感。所以现在我看二阶系统的Bode图第一件事就是看ωn处有没有“鼓包”有鼓包必查ζζ小于0.3直接在设计阶段就改参数绝不留到实测再去抓瞎。5.4 开环图闭环图要分开看别把两者混为一谈Bode图可以画开环G(jω)也可以画闭环T(jω)G/(1G)这两者的形状差别很大。开环幅频在穿越频率处为0dB但闭环幅频在低频段差不多是0dB高频段才掉下去。如果把开环图当成闭环图来读会得出“带宽很低”的错误结论。我见过不少初学者拿着开环Bode图问“为什么系统带宽只有这么点”其实他只是看到了开环增益降到0dB的穿越频率。对单位负反馈系统闭环带宽指的是闭环幅值降到-3dB的点这个频率通常情况下会比开环穿越频率高一些而不是低一截。我在看别人给的仿真报告时也习惯先确认图里到底画的是开环还是闭环因为两者的纵坐标含义、判断标准完全不一样。设计补偿网络时看开环评估最终系统的响应速度和超调量时看闭环。6. 最后分享一个判断相位裕度的土办法如果你手头没有FRA、没有仿真模型只有一台示波器怎么粗略判断当前系统的相位裕度够不够给系统输入端加一个小的阶跃信号看输出响应的超调量。对典型二阶占主导的系统超调量和阻尼比的关系是[ \sigma e^{-\frac{\pi\zeta}{\sqrt{1-\zeta^2}}} ]而相位裕度和阻尼比之间有个工程近似关系PM ≈ 100ζ单位度。这两个公式可以串起来用——超调40%对应ζ约0.28PM约28°系统很危险超调15%对应ζ约0.52PM约52°相当舒服超调接近0ζ接近0.8甚至更大PM超过70°系统稳定但反应偏慢。我当时调那个电源环路就是用这个方法测出超调量约30%估算PM在35°左右然后根据Bode图在穿越频率处的元件参数做补偿把相位往上抬了20多度。改完再测阶跃响应超调降到10%左右振荡肉眼可见地消失了。这个方法只对主导极点近似为二阶的系统有效系统有多个极点靠得很近时误差会大一些。但它胜在快现场几秒钟就能测完用来判断“要不要回办公室细调”已经绰绰有余。回到那天下午的经历我现在已经完全认同那位老工程师的做法拿到一个系统先画幅频和相频看穿越点看裕度再决定动哪个元件。Bode图不是考试题它是你在频域里的眼睛。把这张图看懂了很多玄学一样的振荡问题本质上都是相位裕度不够仅此而已。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询