1. 项目背景与核心问题
双惯量伺服系统在工业自动化领域应用广泛,从数控机床到机器人关节都能见到它的身影。这类系统本质上由电机(驱动惯量)通过弹性联轴器或传动轴(表现为扭转弹簧)连接负载(负载惯量)构成。在实际调试中,工程师们最头疼的就是机械谐振问题——当系统运行到特定频率时,会出现剧烈振动,轻则影响加工精度,重则损坏机械设备。
去年我在调试一套包装机械时,就遇到过典型的双惯量谐振案例:每当传送带加速到1.2m/s时,整个传动机构就会发出刺耳的共振声,伺服电机电流剧烈波动。通过频谱分析仪捕捉到的振动频率正好是87Hz,这就是典型的机械谐振频率。传统PI控制对这种谐振束手无策,而陷波滤波器正是解决这类问题的利器。
2. 陷波滤波器原理深度解析
2.1 数学本质与频率特性
陷波滤波器的传递函数可以表示为:
code复制G(s) = (s² + ωₙ²) / (s² + 2ζωₙs + ωₙ²)
其中ωₙ就是需要抑制的谐振频率(rad/s),ζ控制滤波器的带宽。在Matlab中可以用tf([1 0 ωₙ^2],[1 2*ζ*ωₙ ωₙ^2])直接创建。
这个看似简单的二阶系统有着精妙的频率响应特性:
- 在ω=ωₙ处产生急剧的幅值衰减
- 相位在ωₙ附近呈现非线性变化
- 带宽由ζ决定,ζ越小"陷波"越尖锐
2.2 参数整定实战技巧
确定谐振频率ωₙ有三种实用方法:
- 扫频测试法:给系统施加0.1~100Hz正弦扫频信号,通过FFT分析响应峰值
- 阶跃响应法:观察阶跃响应中的振荡周期T,ωₙ=2π/T
- 模型辨识法:通过最小二乘法拟合系统传递函数
带宽参数ζ的选取尤为关键:
- 一般初始值设为0.1~0.3
- 值过小会导致相位突变剧烈,影响稳定性
- 值过大会削弱滤波效果
- 建议先用Bode图验证相位裕度>45°
3. Simulink建模完整实现
3.1 双惯量系统建模
建立包含以下关键模块的仿真模型:
code复制J_m = 0.01; % 电机惯量kg·m²
J_l = 0.05; % 负载惯量
K_s = 1000; % 轴刚度N·m/rad
B_m = 0.1; % 电机阻尼
B_l = 0.2; % 负载阻尼
使用Simscape Multibody搭建机械部分,或者直接用传递函数表示:
code复制P_motor = tf(1,[J_m 0]); % 电机模型
P_spring = tf(K_s,[1 0]); % 弹性轴
P_load = tf(1,[J_l B_l]); % 负载模型
3.2 陷波滤波器集成
将设计好的陷波滤波器插入速度环前向通道:
code复制omega_n = 2*pi*87; % 87Hz转换rad/s
zeta = 0.15;
notch = tf([1 0 omega_n^2],[1 2*zeta*omega_n omega_n^2]);
关键连接技巧:
- 滤波器应放在速度环PI控制器之后
- 需要并联直通通道保证直流增益为1
- 建议添加开关便于对比效果
4. 仿真分析与参数优化
4.1 典型工况测试
设置三种测试场景:
- 阶跃速度指令(0→100rpm)
- 正弦扫频(1-100Hz)
- 带负载扰动(20%额定转矩)
重点关注以下指标:
- 速度跟踪误差
- 电机电流THD
- 负载端振动幅值
4.2 参数敏感度分析
通过参数扫描观察影响规律:
- ζ从0.05到0.5变化时的稳定裕度
- ωₙ偏移±10%时的抑制效果
- 不同惯量比(J_l/J_m)下的适应性
实测数据表明:
当惯量比>5时,需要串联两个陷波器分别抑制电机侧和负载侧谐振
5. 工程实践中的进阶技巧
5.1 在线频率辨识
对于时变谐振频率的系统,可以嵌入自适应算法:
matlab复制function updateNotch()
[pxx,f] = pwelch(velocity);
[~,idx] = max(pxx);
omega_n_new = 2*pi*f(idx);
notch.Numerator = [1 0 omega_n_new^2];
notch.Denominator = [1 2*zeta*omega_n_new omega_n_new^2];
end
5.2 多谐振点处理
当存在多个谐振峰时(如齿轮箱系统),可采用:
- 多个陷波器串联
- 梳状滤波器设计
- 零相位误差跟踪控制
5.3 与其它抑制策略对比
| 对比方案 | 优点 | 缺点 |
|---|---|---|
| 陷波滤波 | 精准抑制特定频率 | 需准确知道谐振点 |
| 加速度反馈 | 不依赖模型精度 | 增加噪声敏感度 |
| 共振比控制 | 宽频带抑制 | 参数整定复杂 |
6. 常见问题排查指南
问题1:添加滤波器后系统不稳定
- 检查相位裕度(margin(notch*loop_tf))
- 尝试减小ζ值或降低截止频率
- 确认滤波器位置是否正确
问题2:抑制效果不明显
- 用bode(notch)验证陷波深度
- 检查实际谐振频率是否偏移
- 确认信号采样率足够高(>10倍ωₙ)
问题3:产生新的振动
- 可能是滤波器引入的相位滞后导致
- 尝试在陷波器后增加相位超前补偿
- 考虑改用加速度反馈方案
在实际项目中,我总结出一个调试口诀:"先测频,再调宽,相位裕度保平安"。意思是先准确测量谐振频率,然后谨慎调整带宽参数,最后一定要验证相位裕度大于45度。曾经有个项目因为ζ设得过小(0.05),虽然谐振抑制了,却引发了次生振荡,这个教训让我记忆深刻。