资讯详情

伺服系统响应带宽:从低通滤波到电流环与速度环设计

📅 2026/10/29 3:52:09 | 华诺云谱 👁 阅读
伺服系统响应带宽:从低通滤波到电流环与速度环设计
简介围绕电机控制中的响应带宽计算这份文档面向从事运动控制、伺服系统调试与电机控制算法的工程师及学习者帮助理解带宽如何决定系统跟踪输入参考信号的能力并厘清典型二阶系统与PMSM双闭环系统的带宽推导思路。内容从闭环频率特性、-3dB带宽定义展开涉及二阶系统自然频率与阻尼比关系、电流环PI与SVPWM延迟建模、速度环简化以及伺服带宽测试方法和主流产品数据对比。压缩包仅含1个docx文件大小约189KB篇幅集中、便于按主题查阅。已有4694人学习可作为伺服带宽估算、参数整定和产品指标对照的参考笔记。1. 带宽不是“响应快”一次扫频让我推翻了自己的判断调伺服的人常有个直觉阶跃响应上升快、超调小就觉得这套电机控制调得不错。但换成一串正弦指令扫过去同样的参数会在某个频点上开始掉幅值、拖相位再往上就彻底跟不上。这个“跟不动的边界”就是响应带宽——它不描述系统有多快而描述系统能忠实复现多高频率的输入。把机电系统当成低通滤波器看带宽就是那条截止线搞懂它怎么算、怎么测、被什么卡住才看得懂电流环为什么敢跑几千赫兹、速度环却常年停在几百赫兹也才知道手册上那句“速度环带宽”到底承诺了什么。2. 把机电系统当滤波器-3dB 和 90° 相移在测什么2.1 为什么机电系统天然是低通伺服系统里到处是储能元件电机的相电感 L 阻碍电流突变转子惯量 J 阻碍转速突变功率器件从采样到出波还有一个固定延迟。这三样东西在频域里的共同表现就是频率越高、系统越“懒得跟”。严格讲任何用真有理分式描述的物理系统当 ω→∞ 时分子阶次低于分母幅值必然趋于零所以低通不是设计选择而是物理约束的结果。这一点很关键因为它决定了带宽的定性含义带宽之内系统对输入的增益大致是平的输入什么样、输出大致什么样带宽之外增益按固定斜率往下掉输入的高频成分被削掉。一个 200Hz 带宽的速度环给 500Hz 的正弦速度指令输出不是“慢一点”而是幅值衰减、相位滞后波形已经变形。所以讨论伺服性能本质是讨论这条曲线在哪里弯下去而不是讨论某个单一时刻的响应速度。2.2 两个判据的物理来源一份伺服系统通用技术条件的行业标准里“频带宽度”给了两个并列判据测试方法写得很具体驱动器工作在速度模式输入幅值为额定转速指令 0.01 倍的正弦转速指令频率从 1Hz 起步慢慢往上加同步记录电机实际转速曲线。随着频率升高实测转速对指令的相位滞后逐渐增大、幅值逐渐减小。相位滞后到 90° 的那个频率叫 90° 相移带宽幅值降到低频段幅值的 1/√2也就是 -3dB的那个频率叫 -3dB 带宽。为什么要定两个判据因为它们衡量的不是同一件事。幅值判据看的是“还剩多少能量传过去”相位判据看的是“落后了多少节拍”。在一个阻尼比较低的系统里幅频曲线在截止点附近会因为谐振而上翘单看 -3dB 穿越点容易读偏而相频曲线是单调下降的90° 那一点相对好定位。反过来在过阻尼系统里相位滞后到 90° 时幅值可能早就掉到 0.7 以下了这时候 -3dB 判据更保守。标准把两个都列出来是让测试者根据系统阻尼特性选择一个能稳定复现的口径而不是让你随便挑个好看的数。注意这两个判据在阻尼比正好 0.707 时重合其余情况不重合。厂商手册里的带宽如果不注明用的是哪个判据跨机型比较基本没有意义。2.3 二阶系统的带宽公式是怎么解出来的单位负反馈系统的闭环传递函数是 Φ(s) G(s)/(1G(s))其中 G(s) 是开环传递函数。带宽的定义落在闭环幅频特性上找到那个让 |Φ(jω)| 降到 |Φ(j0)| 的 0.707 倍的频率记作 ωb区间 (0, ωb) 就是这个系统的带宽。写成对数形式就是 ω ωb 时20lg|Φ(jω)| 20lg|Φ(j0)| - 3。标准二阶系统的闭环传递函数是Φ(s) ωn² / (s² 2ξωn·s ωn²)把 s 换成 jω幅频特性是|Φ(jω)| 1 / √[(1 - ω²/ωn²)² 4ξ²ω²/ωn²]因为 |Φ(j0)| 1令上式等于 1/√2两边平方整理得到一个关于 (ω/ωn)² 的二次方程。解出来取正根ωb ωn · [(1 - 2ξ²) √((1 - 2ξ²)² 1)]^(1/2)这个式子值得盯着看几秒。带宽不是自然频率 ωn而是 ωn 乘上一个只跟阻尼比 ξ 有关的系数。换句话说闭环系统的“固有速度”由 ωn 决定但真正能用的频宽还要被阻尼打折或者加成。2.4 阻尼比把两个判据撕开把不同 ξ 代进去算那个系数结果很能说明问题阻尼比 ξ带宽系数 ωb/ωn特性0.3约 1.45带宽看着大但谐振峰高实际波形很差0.5约 1.27有可见超调工程上偶尔用0.7071.00两个判据重合无谐振峰1.0约 0.64过阻尼带宽明显缩水ξ 0.707 时带宽系数大于 1看起来“带宽更宽”代价是闭环幅频在 ωn 附近拱起一个峰时域上就是超调和振铃。很多初次调参的人被这个假象骗过把增益往上推测出来 -3dB 点确实右移了但实际跟指令的波形反而更抖。原因就是带宽被谐振峰“撑”大了而有效通带并没有变宽。顺便解释一个常见困惑对标准二阶系统相位滞后 90° 恰好发生在 ω ωn 处因为此时分母实部 ωn² - ω² 为零。而 -3dB 点只在 ξ 0.707 时才等于 ωn。所以两个判据的差值本质就是阻尼比偏离 0.707 的程度。这也解释了为什么 ξ 小的系统实测 90° 相移带宽会明显小于 -3dB 带宽——一个卡在 ωn另一个被推到了 1.27ωn。3. 电流环PI 怎么把一阶对象校正成标准二阶3.1 从 q 轴电压方程到一阶 RL 模型永磁同步电机在 dq 坐标系下交轴电压方程是uq R·iq Lq·diq/dt ωr(Ld·id ψf)最后一项是旋转反电动势和交叉耦合项它随转速变化但对电流环的动态来说属于慢变量。分析电流环带宽时把它忽略剩下的就是一个电阻串电感的方程uq R·iq Lq·diq/dt拉普拉斯变换后得到电机在电流环视角下的传递函数Gm(s) iq(s)/uq(s) 1/(Lq·s R)一个标准的一阶惯性环节极点落在 -R/Lq。到这里都还是教科书内容真正让电流环变复杂的是它前面挂的两个环节。3.2 一个载波周期的滞后从哪来电流环的前向通道有三段PI 调节器、SVPWM 调制、电机。PI 那段是 (Kcp·s Kci)/s电机那段刚推完中间那段常被忽略但它恰恰是限制电流环带宽的元凶。流程是这样的单片机定时器产生 PWM软件在当前周期采到电流、算完占空比把比较值写进定时器寄存器这个值要到下一个载波周期才真正生效。中间隔着一个载波周期 Tpwm这段时间里输出电压维持旧值。这个效应在控制框图上表现为一个纯延迟环节 e^(-Tpwm·s)。纯延迟在频域里很讨厌相位随频率线性下降没有上限。工程上通常用泰勒一阶展开把它近似成一阶惯性e^(-Tpwm·s) ≈ 1/(Tpwm·s 1)这个近似在频率远低于 1/Tpwm 时足够准一旦设计目标逼近这个量级就会明显低估相位滞后——这正是后面要讲的坑之一。式子里还有个 Kpwm 系数它是 PI 输出变量到逆变器实际输出电压的比例。这个值的具体数值取决于 Park 变换矩阵的定义、标幺值基准的选取、调制方式换个项目就完全不一样但它本身不需要“标准答案”只要能说清 PI 输出这个数对应多少伏就行。3.3 零极点对消PI 参数是可以算的把三段串起来电流环开环传递函数是G_Acr(s) (Kcp·s Kci)/s · Kpwm/(Tpwm·s 1) · 1/(Lq·s R)这里有个漂亮的设计动作令 Kci/Kcp R/Lq也就是让 PI 的零点正好抵消电机的极点。代进去之后分子 (Kcp·s Kci) 可以提出 Kcp/Lq乘以 (Lq·s R)与分母的电机极点约掉剩下G_Acr(s) Kcp·Kpwm / [Lq·s·(Tpwm·s 1)]一个积分加一个延迟极点。闭环之后得到Φ_Acr(s) (Kcp·Kpwm/(Lq·Tpwm)) / [s² s/Tpwm Kcp·Kpwm/(Lq·Tpwm)]对照标准二阶形式立刻能读出两个参数ωn √(Kcp·Kpwm / (Lq·Tpwm)) ξ 1/(2·Tpwm·ωn) (1/2)·√(Lq / (Kcp·Kpwm·Tpwm))反解一下如果想让阻尼比落在 0.707Kcp Lq / (4ξ²·Kpwm·Tpwm) Kci Kcp·R/Lq R / (4ξ²·Kpwm·Tpwm)用 Python 把这套关系跑一遍顺便看看量级import math # 电机与调制参数典型小功率伺服量级 Lq 2e-3 # q 轴电感H R 0.5 # 定子电阻欧姆 Kpwm 10.0 # PI 输出到逆变器电压的比例系数与标幺基准有关 Tpwm 100e-6 # 载波周期对应 10kHz 开关频率 xi 0.707 # 目标阻尼比 # 按目标阻尼比反解 PI 参数 Kcp Lq / (4 * xi**2 * Kpwm * Tpwm) Kci R / (4 * xi**2 * Kpwm * Tpwm) wn math.sqrt(Kcp * Kpwm / (Lq * Tpwm)) xi_check 1 / (2 * Tpwm * wn) # xi0.707 时 -3dB 带宽恰好等于自然频率 wb wn print(fKcp {Kcp:.4f}, Kci {Kci:.2f}) print(fwn {wn:.1f} rad/s, xi {xi_check:.3f}) print(f带宽约 {wb/(2*math.pi):.0f} Hz)跑出来的结果是 Kcp ≈ 1.0、Kci ≈ 250自然频率约 7071 rad/s对应带宽约 1125Hz。这里 Kcp 的数值恰好是 1 不用在意它依赖 Kpwm 的定义口径换成别的标幺方式Kcp 会变但带宽结论不变。3.4 电流环带宽几乎只由载波周期决定上面那段代码藏着一个反直觉的结论当零极点对消成立、阻尼比定在 0.707 时ωn 1/(2ξ·Tpwm) ≈ 0.707/Tpwm带宽只跟载波周期有关跟 Lq、R、Kpwm 都无关。Lq 和 Kpwm 只是决定了要配多大的 Kcp 才能达到这个带宽它们本身不设上限。这就解释了为什么主流伺服产品的电流环带宽普遍落在 2000Hz 到 5000Hz 这个区间而开关频率通常在 8kHz 到 16kHz。取 16kHz 载波、Tpwm 62.5μs理论 ωn 约 11314 rad/s约 1800Hz再考虑采样延迟实际滞后常按 1.5 个载波周期估、电流采样滤波、死区补偿误差实测落到 1kHz 出头很正常。宣称 5kHz 电流环带宽的产品背后一定是更高的开关频率、更短的采样链路延迟或者干脆用了某种预测/前馈补偿。带宽这个数字从来不是调出来的是硬件链路延迟决定的。4. 速度环把电流环压成一阶之后4.1 电流环降阶的成立条件设计速度环时不会把电流环的二阶闭环整个搬进来那样方程会复杂到没法手算。常用做法是把电流环近似成一阶惯性环节。依据是电流环闭环传递函数分母的 s² 项系数是 Tpwm比起 s 项小得多在速度环关心的低频段几十到几百赫兹可以忽略。忽略 s² 项之后电流环闭环近似为Gc(s) 1 / [(Lq/(Kcp·Kpwm))·s 1]直流增益为 1时间常数 τi Lq/(Kcp·Kpwm)。用上一节的参数算τi 2e-3/(1×10) 200μs对应一个约 800Hz 的极点正好和电流环带宽同量级。这个近似的成立条件是速度环带宽明显低于电流环带宽工程上一般要求差 5 到 10 倍。如果硬把速度环带宽推到接近电流环这个一阶近似就失效了闭环会出现两个靠得很近的极点相位掉得比预期快得多调参怎么调都别扭。4.2 转矩方程串运动方程得到 II 型系统id 0 控制下电磁转矩简化为 Te 1.5·pn·ψf·iq其中 pn 是极对数ψf 是永磁磁链。转子运动方程忽略负载和摩擦是 Te J·dω/dtω 是机械角速度。转速以 rpm 表示时 n 30ω/π。把这三段拼起来速度误差进 PI 得到电流指令电流指令乘上电流环的一阶近似得到实际 iq再乘 1.5·pn·ψf 变成转矩除以 J·s 变成角速度最后乘 30/π 变成 rpm。整条链路的开环传递函数是G_Asr(s) (Ksp·s Ksi)/s · 1/(τi·s 1) · (90·pn·ψf)/(2π·J·s)整理成标准形式G_Asr(s) (90·pn·ψf·Ksi)/(2π·J) · ((Ksp/Ksi)·s 1) / [s²·(τi·s 1)]注意分母有两个积分环节这是个 II 型系统。II 型系统对阶跃输入和斜坡输入都是无静差的这对速度环来说是刚需——机床进给轴匀速走的时候速度不能有稳态误差。代价是相位天生比 I 型系统少 180°稳定性完全靠 PI 零点 (Ksp/Ksi) 在穿越频率附近把相位抬回来。工程上的经验取值是把零点放在穿越频率的 1/5 到 1/3 处让它在穿越点贡献足够的相位超前穿越频率本身受限于电流环带宽和机械谐振频率通常取电流环带宽的 1/5 到 1/10。这正好解释了产品数据里的量级差电流环 2000 到 5000Hz速度环 250 到 800Hz中间差不多就是 5 到 10 倍的关系。近几年有产品宣称速度环带宽做到 3kHz那基本意味着电流环已经跑到十几千赫兹且机械结构刚性极高、谐振点被推到很远。4.3 用 MATLAB 把带宽读出来开环传递函数已知之后求带宽最省事的办法是让工具直接画闭环频响。以 G 5850/(s(s20)(s25)) 为例这个开环有三个极点0、-20、-25没有零点闭环之后是一个三阶系统手算带宽很麻烦。% 定义开环传递函数无零点极点 0 / -25 / -20增益 5850 G zpk([], [0 -25 -20], 5850); % 单位负反馈闭环 sys feedback(G, 1); % 画闭环 Bode 图幅频曲线上 -3dB 处对应的频率就是带宽 figure(1); bode(sys); grid on; % 直接取带宽数值注意bandwidth 返回的是 rad/s wb bandwidth(sys); fprintf(带宽 %.2f rad/s %.2f Hz\n, wb, wb/(2*pi));feedback(G,1) 把开环变成闭环bode 画出闭环的幅频和相频曲线幅频曲线从低频平坦段往下掉 3dB 那个点的横坐标就是带宽。bandwidth 函数直接返回数值省去在图上目测。这里有个必须强调的细节bandwidth 返回的单位是 rad/s转成赫兹要除以 2π。这条开环算出来的带宽约为 17.2 rad/s换算成赫兹是 17.2/(2π) ≈ 2.74Hz不是 108Hz。乘 2π 和除 2π 搞反数字会差 39 倍这个错误在工程笔记里出现的频率高得惊人。4.4 手工估算和仿真读数差在哪用一阶近似手算时很多人会把电流环直接当成 1 处理得到速度环穿越频率约等于 Ksp·Kt/J。这个估算在穿越频率远低于电流环带宽时够用误差在 10% 以内一旦两者接近手算结果会偏乐观 20% 到 30%因为忽略了电流环那个极点带来的额外相位滞后。更靠谱的手算方式是先按二阶系统算一遍把电流环极点当成一个固定的相位罚项减掉看剩下的相位裕度够不够。另一个偏差来源是机械谐振。真实传动链有弹性柔性模态会在频响曲线上拱出一个谐振峰如果这个峰落在穿越频率附近闭环带宽会被它拉偏甚至直接不稳定。仿真里如果只建了刚体模型读出来的带宽会明显高于实测值。5. 避坑与排查算出来的带宽和测出来的对不上5.1 测试侧的三个典型翻车现象一扫频幅值给大之后测出的带宽比小信号时低一截。原因标准里规定正弦指令幅值是额定转速的 0.01 倍就是为了把系统限制在线性区。幅值一大摩擦、齿槽、电流限幅这些非线性因素全被激发输出波形削顶等效增益下降带宽自然缩水。 解决严格按小信号扫频多个幅值点各扫一遍做对比只有在小幅值下趋于一致的读数才能作为带宽指标。如果小幅值下信噪比不够靠多次平均提升信噪而不是加大幅值。现象二把 rad/s 当成 Hz带宽报大了六倍多。原因角频率和频率差一个 2π 因子。仿真工具默认输出 rad/s示波器扫频出来的横轴却是 Hz两边一对就发现对不上。 解决全流程统一单位。仿真侧用 bandwidth 拿到 rad/s 后立刻除以 2π 存成 Hz测试侧确认频谱仪的横轴标签。写报告时两个单位都标注别只写数字。现象三频响曲线上有谐振峰-3dB 穿越点读到两个不知道取哪个。原因柔性模态在幅频曲线上拱起一个超过 0dB 的峰之后又掉下去-3dB 线被穿越多次。 解决优先看相频曲线90° 相移点通常是单调的或者规定取第一次穿越点作为带宽并在报告里注明判据。更彻底的做法是先做陷波把谐振峰压下去再测这样得到的才是“可用带宽”。现象四电流环理论算出 1kHz 以上实测只有几百赫兹。原因建模时只算了一个载波周期的延迟实际链路里还有电流采样 RC 滤波、ADC 转换时间、编码器接口的更新延迟、死区补偿误差加起来可能等效 1.5 到 2 个载波周期。另外 Kpwm 的标幺基准如果和理论推导时不一致实际 Kcp 等效值就偏小。 解决按 1.5 个载波周期重新估延迟把 1/(1.5·Tpwm·s 1) 代进去重算带宽同时用阶跃响应反推实际闭环时间常数和理论值互相校验。5.2 计算侧的自查现象五换了电机同样的 PI 参数带宽掉了一半。原因零极点对消条件是 Kci/Kcp R/Lq。换电机之后 R 和 Lq 都变了原来的对消关系失效闭环多出一个没被抵消的极点阶次从二阶变成三阶相位裕度下降带宽跟着掉。 解决PI 参数必须跟着电机参数走。把 R、Lq 的辨识值写进配置流程上电时自动算 Kcp、Kci别把参数固化在代码里当常量。现象六泰勒一阶近似在高带宽设计时失真。原因e^(-Ts) 近似成 1/(Ts1) 只在 ωT ≪ 1 时准。当设计带宽对应的 ω 接近 1/Tpwm 时这个近似会低估延迟带来的相位滞后算出来的带宽偏乐观。 解决设计值逼近载波频率的 1/10 以上时改用精确延迟环节或二阶 Padé 近似重新校核仿真时直接放 e^(-Ts) 而不是惯性环节。6. 带宽的取舍往上推的代价和验证方法带宽不是越大越好这句话在纸面上人人都懂实际调的时候很少有人真的算过代价。从抑制扰动的角度看带宽高意味着系统对负载突变、电网波动响应更快跟随误差更小从抑制噪声的角度看带宽高意味着编码器量化噪声、电流采样噪声、PWM 开关纹波这些高频成分会被原样放大直接表现为电机啸叫、温升增加、甚至功率器件额外损耗。有一组硬约束是绕不过去的采样频率和载波周期。电流环带宽的天花板大致在载波频率的 1/10 到 1/20 这个量级想把带宽翻倍要么把开关频率翻倍要么把控制链路的延迟砍一半两者都直接对应成本。机械侧还有一条软约束传动链的柔性模态。带宽一旦逼近第一阶谐振频率闭环就会在谐振点上放大噪声和振动同时出现这时候唯一的办法是加陷波器或者降低带宽没有第三条路。验证带宽是否真的达到了设计值我一般会走三步。第一步是仿真频响把闭环系统的 Bode 图跑出来读 -3dB 和 90° 两个点和设计目标对一遍。第二步是小信号扫频实测按标准的 0.01 倍额定幅值从低频扫到高频记录每个频点的幅值比和相位差画成散点图叠在仿真曲线上看两条线在哪个频段开始分叉——分叉的位置通常就是模型失配最严重的地方往往是延迟或者谐振。第三步是阶跃响应反推用一阶或二阶拟合实测的超调和上升时间反算等效带宽和频域结果交叉验证。三步对不上问题一定在模型里不在测试里。血泪教训是我曾经盯着一个算出来 900Hz、实测只有 400Hz 的电流环折腾了一整天把 PI 参数从头推了三遍最后发现是电流采样滤波的截止频率设在了 800Hz硬生生把闭环带宽压掉了一半。从那以后我每次做带宽估算都强制把采样链路里每一个滤波器的截止频率列成一张表走一遍任何一项低于目标带宽的三倍就先改滤波器再谈调参。这套从定义到推导、从电流环到速度环、从仿真到实测的方法在这份资料里串成了一条完整的线公式、MATLAB 脚本、测试方法和产品数据都在适合对着自己手上的项目验算一遍。希望帮到你。本文还有配套的精品资源点击获取
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑