2. 惯量辨识原理:手动惯量辨识与在线惯量辨识的工程方法,以及辨识不准时的典型表现
做伺服调参这么多年,我见过太多工程师一上来就调增益、调带宽,结果越调越乱。其实有个关键步骤经常被跳过——惯量辨识。
说白了,伺服驱动器并不知道你带的负载有多重。它只能按内部模型算电流。你告诉它负载是轻的,它就用轻负载的算法;你告诉它是重的,它就用重负载的算法。如果这个值错了,后面所有参数都是白调。
这一章,我就把惯量辨识的底牌翻给你看。
2.1 什么是惯量比?为什么它这么重要?
先明确一个概念:惯量比 = 负载惯量 / 转子惯量。
大多数伺服驱动器出厂默认惯量比是 1 倍,也就是负载惯量和电机转子一样重。但实际现场呢?我遇到过带大转盘的设备,惯量比能到 30 倍以上。也遇到过带轻载小滑台的,只有 0.5 倍。
惯量比直接影响三个东西:
- 响应速度:惯量比越大,系统越“迟钝”,同样的增益下响应变慢
- 稳定性:惯量比偏差大时,系统容易震荡甚至啸叫
- 轨迹精度:加减速阶段的跟随误差会明显增大
核心结论:惯量比是伺服调参的“地基”。地基歪了,上面盖的楼(增益、带宽、滤波器)全是危房。
2.2 手动惯量辨识:最可靠的老办法
手动辨识,说白了就是让电机自己“掂量”一下负载有多重。原理很简单:给一个已知的转矩,测加速度,然后反推惯量。
2.2.1 加减速法
这是最经典的方法。操作步骤:
- 让电机在空载下匀速运行(比如 500 rpm)
- 记录此时的转矩电流 Iq1
- 让电机带负载重复同样的速度,记录 Iq2
- 惯量比 ≈ (Iq2 - Iq1) / (加速度 × 转子惯量)
嗯,这里要注意:加速度必须保持一致。我见过有人用手动加减速,每次按按钮的力度不一样,结果算出来的值差好几倍。
2.2.2 转矩注入法
很多高端驱动器支持这个功能。驱动器会注入一个正弦波转矩信号,然后分析速度响应。
// 伪代码示意:转矩注入法核心逻辑
注入频率 f = 10 Hz
注入幅值 T_inj = 5% 额定转矩
测量速度响应幅值 V_amp 和相位差 φ
惯量 J = T_inj / (2π × f × V_amp × sin(φ))
这个方法的好处是不需要电机跑起来,静止状态就能做。我调试一个大型龙门铣时就用过这招,电机锁轴状态下直接注入,避免了机械冲击。
我的习惯:手动辨识至少做 3 次,取中间值。如果 3 次结果偏差超过 10%,说明机械有异常(比如导轨卡滞、皮带打滑),先排查机械再继续调参。
2.3 在线惯量辨识:自动化的双刃剑
在线辨识,就是驱动器在正常运行过程中,实时估算惯量比。听起来很美好,但实际用起来有不少坑。
2.3.1 工作原理
在线辨识通常基于模型参考自适应系统(MRAS)。核心思路:
- 建立一个参考模型(理想电机模型)
- 一个可调模型(带未知惯量参数)
- 比较两个模型的输出误差,用自适应律调整惯量参数
说白了,就是让驱动器自己猜,猜错了就修正,直到猜对为止。
2.3.2 在线辨识的触发条件
不是任何时候都能做在线辨识。大多数驱动器要求:
| 条件 | 要求 | 原因 |
|---|---|---|
| 速度变化 | 必须有明显的加减速过程 | 匀速段没有加速度信息,无法辨识 |
| 负载转矩稳定 | 外部负载不能剧烈波动 | 负载变化会被误认为是惯量变化 |
| 速度环增益 | 不能太低(建议 > 10 Hz) | 增益太低时速度响应慢,辨识收敛慢 |
| 辨识时间 | 至少 2~3 个加减速周期 | 需要足够的数据窗口 |
我曾经在一个包装机上吃过亏。那个设备每分钟启停 60 次,按理说在线辨识条件很好。但结果辨识出来的惯量比忽大忽小。查了半天才发现——切刀机构在每次动作时负载会突变,在线辨识把负载变化当成了惯量变化。
避坑指南:在线辨识结果不要直接写入参数。我建议先让它跑 10 个周期,取平均值,再手动写入。直接自动写入的话,万一遇到一次异常扰动,参数就乱了。
2.4 辨识不准时的典型表现
惯量辨识不准,系统会有一系列“症状”。我总结了一个快速诊断表:
| 症状 | 可能原因 | 现场判断方法 |
|---|---|---|
| 低速运行时抖动 | 惯量比设置偏小 | 用手摸电机外壳,感觉高频微振 |
| 高速运行时啸叫 | 惯量比设置偏大 | 听声音,通常在 1~2 kHz 频段 |
| 加减速过冲大 | 惯量比偏小 | 用示波器看速度阶跃响应,超调量 > 20% |
| 定位时间变长 | 惯量比偏大 | 从启动到到位的时间比正常值长 30% 以上 |
| 跟随误差波动 | 惯量比与实际偏差 > 50% | 看位置误差曲线,呈周期性波动 |
你想想看,如果惯量比设成 1 倍,实际是 10 倍,会怎样?驱动器以为负载很轻,给的增益很高。结果就是系统震荡,电机嗡嗡响,严重时直接报过载。
反过来,如果惯量比设得太大,驱动器会以为负载很重,给的增益很低。系统变得“肉肉的”,响应慢,定位拖泥带水。
我的经验法则:惯量比偏差在 ±30% 以内,系统通常还能稳定运行,只是性能打折扣。超过 ±50%,基本必出问题。超过 ±100%,别想了,直接报故障。
2.5 惯量辨识的完整流程
下面这张图是我自己总结的惯量辨识决策流程,你可以直接贴在调试间墙上:
这个流程我用了快十年。核心原则就一条:先确认机械,再选方法,最后验证。
2.6 几个实战技巧
- 手动辨识时,速度环增益要临时降低。增益太高时,速度响应太快,辨识结果会被噪声淹没。我一般降到 5~10 Hz 再做。
- 在线辨识时,滤波时间常数要适当加大。特别是速度反馈滤波,设到 2~5 ms 比较稳妥。太小了辨识结果跳动大。
- 辨识完成后,做一次阶跃响应测试。给一个 100 rpm 的阶跃,看超调量和稳定时间。如果超调 < 10%,稳定时间 < 50 ms,说明惯量比基本对了。
- 对于垂直轴(带重力负载),要特别注意。重力转矩会干扰辨识结果。我建议在垂直轴上先做静态转矩补偿,再做惯量辨识。
一个小技巧:如果你不确定辨识结果准不准,可以手动把惯量比调大 50% 和调小 50%,分别跑一次同样的轨迹。如果两次结果差异很大,说明辨识是准的。如果差异很小,说明你的系统对惯量不敏感,那就不用纠结精确值了。
嗯,惯量辨识这块就讲这么多。记住一句话:惯量比是伺服调参的起点,不是终点。起点对了,后面的路就好走了。