ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

二阶系统带宽与阻尼比:从谐振峰到工程调参的完整指南

二阶系统带宽与阻尼比:从谐振峰到工程调参的完整指南 1. 带宽的定义没搞清后面全是白调1.1 先从一条“大家都在念、但经常念歪”的结论说起做控制的人应该都被这句话灌输过很多次“系统带宽越大响应越快。”这句话本身没什么错怕的是只记住了前半句。我早年间调伺服电流环一心想着把带宽往上顶电流波形确实“响应快”了但电机啸叫、噪声放大、甚至限幅震荡全跟着来了。后来才明白带宽不是一个用来炫耀的数字它刻画的是闭环系统对频率的“选择性通过”能力——频率低于带宽的输入信号系统跟得上频率高于带宽的输入信号系统自然衰减掉。先说定义。对一个线性时不变闭环系统它的幅频特性记为 M(ω)表示输入为不同频率正弦信号时输出幅值与输入幅值的比值。带宽就是幅值从直流增益处下降 3dB 所对应的那个频率记作 ωb。工程里大多数单位负反馈控制系统在低频段 M(0)≈1所以大家习惯直接用 0dB 找 −3dB 点那个频率就是带宽。3dB 在功率意义上正好是半功率点也就是输出功率掉到原来一半的位置在幅值意义上则是下降到 0.707 倍。选这个点不是因为什么高深理论纯粹是因为它作为“还能勉强跟得上”的边界在滤波器、通信、控制各个领域都通用你拿一台频谱仪测任何系统的频响第一件事都是找 −3dB。但很多人把带宽和稳定裕度混为一谈。带宽是闭环特性相角裕度、增益裕度是开环特性两者能互相推算物理含义完全不同。一个带宽很大但相角裕度只有 20° 的系统阶跃响应可能冒一个很大的超调甚至在谐振峰附近对干扰产生明显放大一个带宽很窄但相角裕度 75° 的系统响应慢吞吞但特别稳。你在设计系统时真正要回答的是三个问题能不能跟上给定信号的变化频率能不能把高于某个频率的噪声衰减掉在这两条满足的前提下稳定裕度还剩多少带宽恰好是前两条的交汇点。1.2 为什么偏偏是二阶系统研究二阶系统不是只为了应付考试。工程里绝大多数可稳定的闭环系统在主导极点附近都表现为二阶行为。高阶系统只要极点离虚轴足够远它的贡献在高频段才逐渐显现而在我们最关心的带宽附近往往就剩一对主导共轭极点说了算。甚至在很多辨识结果里明明系统有几十阶你用二阶模型去拟合幅频曲线照样能在带宽附近拟合得很好。所以二阶系统的带宽分析不是“特殊情形”而是所有频域分析的基本功后面遇到的什么高阶校正、延迟环节、滤波器都是在二阶骨架上做加减法。2. 二阶系统频率响应从传递函数到谐振峰2.1 标准二阶闭环传递函数和幅频特性教科书里二阶系统标准形式写成[ \Phi(s)\frac{\omega_n^2}{s^22\zeta\omega_n s\omega_n^2} ]其中 ωn 是自然频率ζ 是阻尼比。很多实际闭环系统经过增益调整、极点配置之后闭环传函都会化成这个样子。把 sjω 代入分母是一个复多项式整理一下[ \Phi(j\omega)\frac{\omega_n^2}{(\omega_n^2-\omega^2)j(2\zeta\omega_n\omega)} ]幅频特性就是复数的模[ M(\omega)\frac{1}{\sqrt{\left(1-\left(\frac{\omega}{\omega_n}\right)^2\right)^2\left(2\zeta\frac{\omega}{\omega_n}\right)^2}} ]这个式子看着吓人其实信息量巨大。第一当 ω0 时M(0)1也就是直流增益为 1这是单位负反馈闭环应该有的样子。第二当 ω 趋向无穷大时分母中的第一项占优M(ω) 按 ω² 衰减在对数坐标里就是 −40dB/dec 的斜率。这是二阶系统区别于一阶系统最直观的地方——一阶是 −20dB/dec二阶的高频滚降更猛滤噪能力也更强。第三中间那段曲线到底是平滑下降还是先鼓包再下降完全由 ζ 决定。这就是接下来要推的谐振峰。2.2 谐振峰是怎么推出来的很多教材直接给结论当 ζ0.707 时幅频特性存在一个峰值峰值频率和谐振峰值为[ \omega_r\omega_n\sqrt{1-2\zeta^2} ][ M_r\frac{1}{2\zeta\sqrt{1-\zeta^2}} ]但推导路径值得走一遍因为你能从中看到阻尼比在频域里的真正角色。幅频特性的分母是[ D(\omega)\left(1-\left(\frac{\omega}{\omega_n}\right)^2\right)^2\left(2\zeta\frac{\omega}{\omega_n}\right)^2 ]M(ω) 要最大等效于 D(ω) 最小。令 uω/ωnD(u)(1−u²)²4ζ²u²展开成 u 的多项式[ D(u)u^4(4\zeta^2-2)u^21 ]对 u 求导令导数等于零得到极值点满足[ u^21-2\zeta^2 ]注意这个式子只有在 1−2ζ²0 时才有物理意义也就是 ζ0.707。这个临界阻尼比在频域里的地位其实和时域里“最大超调量开始出现”是同一件事的两面。ζ≥0.707 时幅频曲线单调下降无所谓谐振峰ζ0.707 时曲线先抬起来再掉下去那个抬起来的部位会把特定频段的输入信号放大。把 u² 代回 M 的表达式化简之后就是上面那个 Mr 公式。这里有一个工程上很值得记住的数字ζ0.4 时Mr≈1.36也就是谐振峰能把信号放大 2.7dBζ0.2 时Mr≈2.55放大了约 8dB。如果系统工作环境里有这个频段的扰动源即便带宽设计得不高谐振峰也会造成不小的麻烦。2.3 阻尼比小于 0.707 时“谐振”到底意味着什么欠阻尼系统的幅频曲线不是单调的这意味着闭环系统对不同频率输入的选择性变差了。理想情况下我们希望低于带宽的频率全都无损通过高于带宽的全都快速衰减像一堵砖墙但实际系统做不到能逼近砖墙形状的办法是提高系统阶数、加滤波器。二阶系统只有两个参数可调形状就被 ζ 绑死了。ζ 越小谐振峰越高带宽附近的过渡带越陡峭但代价是峰值放大。我自己调试时的经验是不要一看到谐振峰就觉得“完了系统要震荡”。谐振峰是幅值层面的频率响应特性振荡与否还要看相角裕度和闭环极点位置。ζ0.4 的系统谐振峰 2.7dB 不算大阶跃超调大约 25%在很多运动控制场景是完全可以接受的但ζ0.2 的系统2.55 倍的高频放大就很危险了任何一点测量噪声落在谐振频率附近都会被放大成实际的力矩波动。所以在设计阶段我会先在 Bode 图上把谐振峰画出来再对照实际环境中干扰的频谱分布决定要不要在控制器里额外加陷波器。3. 带宽公式的完整推导与数值规律3.1 从 M(ωb)1/√2 解出带宽带宽的定义就是 M(ωb)1/√2。把条件代入幅频特性公式[ \frac{1}{\sqrt{\left(1-\left(\frac{\omega_b}{\omega_n}\right)^2\right)^2\left(2\zeta\frac{\omega_b}{\omega_n}\right)^2}}\frac{1}{\sqrt{2}} ]两边平方后分母等于 2令 uωb/ωn整理成[ u^4(4\zeta^2-2)u^2-10 ]这是 u² 的一元二次方程取正根[ u\sqrt{1-2\zeta^2\sqrt{(1-2\zeta^2)^21}} ]所以[ \omega_b\omega_n\sqrt{1-2\zeta^2\sqrt{(1-2\zeta^2)^21}} ]这个公式值得经常用。它告诉我们两件事第一带宽与自然频率 ωn 成正比比例系数只和 ζ 有关第二这个比例系数不是简单的 1它随阻尼比变化而且不是单调的。最常见的错误之一就是拿 ωn 直接当带宽用实际上只有 ζ0.707 时 ωb 才恰好等于 ωn其他阻尼比下差别很大。3.2 边界验证阻尼比趋向 0 和趋向 1 时把 ζ0 代入公式得到[ \omega_b\omega_n\sqrt{1\sqrt{2}}\approx1.554\omega_n ]也就是说一个无阻尼二阶系统的带宽大约是自然频率的 1.55 倍。虽然无阻尼系统本身不稳定但这个极限值说明在欠阻尼区域带宽总是比自然频率大因为谐振峰把高频段抬起来了−3dB 点跟着往右移。把 ζ1 代入得到[ \omega_b\omega_n\sqrt{-1\sqrt{2}}\approx0.644\omega_n ]临界阻尼时带宽反而小于自然频率。原因也很直观阻尼大幅频曲线平缓地下降没有谐振峰帮忙“撑”高频段−3dB 点自然更靠左。这就引出一个不太直观的结论阻尼比从 0 到 1 变化时带宽并不是单调下降的而是在某个中间阻尼比附近有一个先升后降的过程。具体的单调性转折点不是本文重点但你可以从表格里看到大致趋势。3.3 一组归一化数值表直接抄作业我把不同阻尼比下的谐振频率、谐振峰值、带宽归一化值列成一张表方便平时设计时快速估算。ζωr/ωnMr(dB)ωb/ωn0.10.99014.01.5420.20.9608.131.5100.30.9104.791.4580.40.8252.661.3740.50.7071.251.2720.60.5300.391.1480.707001.0000.8—00.8711.0—00.644看表格能发现几个规律ζ 在 0.3~0.7 之间时ωb 大约是 ωn 的 1~1.5 倍ζ 越小谐振峰越显著带宽越被“撑大”ζ 超过 0.707 后没有谐振峰带宽随阻尼增大而快速下降。这也是为什么很多控制器设计都把闭环阻尼目标定在 0.5~0.8 之间——既能让带宽保持在自然频率附近又不至于让谐振峰放大噪声。实际调参时你如果给定 ζ0.707闭环传函分母正好满足“最平响应”条件这时候带宽就是 ωn 本身估算起来特别省事。4. 带宽与时域指标、稳定裕度的换算关系4.1 上升时间与带宽一个可以拍脑袋用的包络关系频域和时域经常被当成两套语言但指标之间其实有很稳的经验换算关系。标准二阶系统 10%~90% 上升时间可以写成[ t_r\frac{\pi-\beta}{\omega_d} ]其中 βarccosζωdωn√(1−ζ²)。把不同 ζ 下的 tr 和上一节表格里的 ωb 乘起来得到的乘积落在 2.5~3.5 之间。工程上常用的说法是[ t_r \cdot f_b \approx 0.4\sim0.5 ]这里的 f_bωb/(2π) 是赫兹带宽。换算一下如果带宽是 100Hz上升时间大约在 4~5ms 量级这是一个非常好用的估算公式。需要注意的是这个关系只对“标准二阶加上单位负反馈”成立如果闭环传函带零点上升时间会更短带宽也更大乘积会偏离一些但量级不会差太多。我在估算运动控制系统的定位时间时经常先用这个方法粗算一遍再上仿真精算基本能省掉大半试错时间。4.2 带宽和相角裕度之间的桥梁剪切频率别搞混闭环带宽 ωb 和开环剪切频率 ωc 是两个不同的频率但很多人搞混。对标准二阶系统开环传函通常写为[ G(s)\frac{\omega_n^2}{s(s2\zeta\omega_n)} ]闭环后才是前面的标准二阶形式。开环剪切频率满足 |G(jωc)|1解出来[ \frac{\omega_c}{\omega_n}\sqrt{\sqrt{14\zeta^4}-2\zeta^2} ]同一阻尼比下闭环带宽和开环剪切频率的比值大概在 1.3~1.6 之间典型估算取 1.5。也就是说如果你在 Bode 图上看到开环剪切频率是 50Hz那闭环带宽八九不离十在 75Hz 上下。反过来如果你用带宽要求反推控制器设计目标可以把闭环带宽除以 1.5 当作开环穿越频率的粗略目标。相角裕度也可以用这个剪切频率算出来。标准二阶系统在 ωc 处的相角裕度为[ \gamma\arctan\left(\frac{2\zeta}{\sqrt{\sqrt{14\zeta^4}-2\zeta^2}}\right) ]算几个常用值ζ0.4 时 γ≈43°ζ0.5 时 γ≈52°ζ0.707 时 γ≈65°。很多教材上“阻尼比约等于相角裕度除以 100”的速算公式实际只在中高阻尼比附近比较准。你自己设计时最好按上面的精确式标定一次心里有个准确对应表再决定要不要用速算。4.3 带宽与噪声抑制的权衡为什么不是越高越好回到文章开头那个问题。闭环幅频特性在高频段以 −40dB/dec 滚降这意味着带宽越宽“泄漏”到输出端的噪声频带就越宽。假设测量噪声是白噪声或者在高频段能量很大那么带宽每扩大一倍输出端的噪声功率都会显著增加因为积分带宽变宽了。更麻烦的是如果系统阻尼比小谐振峰附近还有一段增益大于 1 的区域这一段不但不衰减输入反而把输入放大。所以带宽设计不是在“快”和“慢”之间做单选而是在“有用信号的最高频率”和“无用的噪声最低频率”之间找空档。我自己的经验是先画出实际环境中关键噪声源的频谱再看系统闭环 Bode 图的谐振峰位置和滚降斜率最后才确定目标带宽而不是一上来就拍脑袋定个“越高越好”。5. 工程实战Bode 图诊断与带宽设计的几个坑5.1 坑一忘了闭环直流增益不是 1单位负反馈、开环增益足够大时闭环低频增益才是 1。如果系统里有前置放大、比例控制器的增益 Kp 没被归一化或者反馈通道不是纯单位反馈那么 M(0) 可能不是 0dB。测试时直接拿 0dB 当基线往下找 3dB找到的“带宽”就不准。正确做法是先把低频段的平台增益读出来比如 3.2dB然后从 3.2dB 往下数 3dB也就是在 0.2dB 处找频率点。这种细节在仿真里无所谓一旦到了实验室用网络分析仪或者扫频激励测 Bode 图基线错了整个数据就废了。5.2 坑二数字控制器的采样频率和延迟没留够相位余量所有数字控制器都有至少一拍或半拍的采样延迟换算到频率域就是一段随频率线性增加的相位滞后。假设总延迟是 Td在带宽 ωb 处造成的相位滞后大约是 ωb×Td。Td100μs、ωb2000rad/s约 318Hz时这个滞后已经到 0.2rad也就是 11.5°对目标相角裕度 45° 的系统来说是个不小的消耗。工程经验是采样频率至少要取期望闭环带宽的 10 倍以上给延迟、滤波、PWM 更新这些环节留足相位余量。做电机电流环时如果 PWM 开关频率是 10kHz通常电流环带宽只设计到 1kHz 左右不是电流环“性能不够”而是再往上提采样延迟和调制延迟吃掉的相位裕度会让系统变得极其敏感。5.3 坑三执行机构饱和才是带宽上界的隐形天花板Bode 图是线性系统的分析工具一旦执行机构进入饱和系统就变成了非线性系统线性带宽的概念不再适用。带宽设计得再高执行机构输出摆幅不够系统照样跟不上指令。一个实用的估算法假设执行机构能提供的最大加速度是 a_max如果要跟踪幅值为 A、频率为 f 的正弦指令所需加速度峰值约为 A×(2πf)²。让这个值小于 a_max就能估算出系统物理上能跟上的最大频率。这一步往往比任何频域设计都先卡住实际带宽。我曾见过有人把速度环带宽设计得比执行机构响应能力还高结果阶跃指令一下来输出直接顶到饱和系统出现明显的极限环震荡这不是带宽不够而是带宽高到物理上撑不住。5.4 坑四闭环传函带零点时标准公式全部要打折扣教科书里的标准二阶系统是“纯”的但工程里加了 PI 控制器、阻尼前馈、微分反馈之后闭环传函经常变成带一个零点的形式[ \Phi(s)\frac{2\zeta\omega_n s\omega_n^2}{s^22\zeta\omega_n s\omega_n^2} ]零点的位置在 z−ωn/(2ζ)。你别小看这个零点它的存在会让闭环幅频特性在高频侧“翘”起来同样阻尼比下带宽变大同时阶跃响应超调也变大。带零点的幅频特性需要重新写[ M_z(\omega)\frac{\sqrt{1\left(\frac{\omega}{z}\right)^2}}{\sqrt{\left(1-\left(\frac{\omega}{\omega_n}\right)^2\right)^2\left(2\zeta\frac{\omega}{\omega_n}\right)^2}} ]分子不是 1 了。这带来的直接后果是你按标准二阶公式估算带宽实际系统因为有个零点−3dB 点明显往右偏你可能以为自己“还有余量”其实噪声已经被放大了。调 PID 时微分项加大系统“变吵”本质就是零点把高频段抬高了。遇到带零点的系统别直接用标准公式老老实实把完整传函代进 MATLAB 或者手算一下。5.5 坑五实测幅频曲线和二阶模型对不上先查机械谐振这一点做伺服、机器人、精密运动控制的朋友应该都有共鸣。仿真里系统没有摩擦、没有背隙、没有传动弹性Bode 图干净得像教科书。一上实测幅频曲线上全是毛刺甚至在某几个频率点出现明显的反谐振峰和谐振峰。这通常是结构谐振、丝杠扭转、联轴器弹性造成的不是控制器参数的问题。遇到这种情况先别急着调 PID先把机械部分的 Bode 图测出来看看。我的做法是先用扫描激励测出系统的实际频响拟合出主要谐振点根据情况加陷波滤波器notch filter把机械谐振压下去之后再回头做带宽设计。如果你硬要在机械谐振频率附近把带宽顶上去结果大概率是某个特定频率下剧烈的抖动或者啸叫。另外实测 Bode 图时激励信号的幅值也要注意。输入幅值太小信噪比不够曲线全是噪声输入幅值太大系统进入非线性区幅频曲线发生畸变谐振峰被“削平”测出来的带宽和真实的小信号带宽对不上。我一般先用小信号扫一遍确认线性工作区再选择合适的激励幅值开始正式测量。5.6 设计带宽时我建议按这个顺序走一遍说了这么多坑最后给一个我自己常用的带宽设计流程不算什么标准答案但踩了几次坑之后发现按这个顺序走返工率低很多。第一步明确输入信号的频率范围。位置环、速度环、电流环对带宽的要求完全不同电流环最快位置环反而不能太高否则会把机械噪声引进来。第二步测量或估算系统里的总延迟包括采样延迟、PWM更新延迟、传感器响应延迟、滤波延迟。先算清楚预算里还有多少相位余量留给控制器。第三步画出闭环传函的幅频曲线含零点、滤波器的完整模型确认谐振峰位置和高频滚降斜率。第四步把实际噪声频谱和有用信号频谱对照确定目标带宽的可行区间。第五步用执行机构最大能力校核一遍看你设定的带宽会不会把执行机构逼到饱和。第六步实测 Bode 图验证重点看谐振峰、−3dB 点和相角裕度是否和设计一致。这套流程最核心的思想是带宽不是单独设计的它是“信号频率、噪声频率、物理限制、相位预算”四个因素共同挤压出来的结果。你把这四样都摸清楚了带宽自然就出来了而且设计完一般不需要来回返工。我调过很多套伺服系统凡是早期就按这个顺序走的基本都是一次过凡是先拍脑袋定带宽再往回补理由的最后都在实验室里熬了几个通宵。
返回列表