4. 加减速法惯量辨识:从原理到实战
各位工程师朋友,今天我们来聊聊加减速法惯量辨识。这个方法,说白了就是让电机按照我们设定的速度曲线跑,然后通过采集转矩和加速度数据,反推出负载惯量。我在现场调试时,这招用得最多——因为它不需要额外的传感器,算法也不复杂。
4.1 恒加速度法的原理与实现
恒加速度法的核心思想,就是让电机以恒定的加速度加速或减速。这时候,转矩方程就变得特别简单:
T = J * α + T_load
其中 T 是电机输出转矩,J 是总惯量(电机转子+负载),α 是角加速度,T_load 是负载转矩。
如果我们让电机先以加速度 α₁ 加速,再以加速度 α₂ 加速(或者减速),分别记录对应的转矩 T₁ 和 T₂,那么:
T₁ = J * α₁ + T_load
T₂ = J * α₂ + T_load
两式相减,负载转矩 T_load 就被消掉了:
J = (T₁ - T₂) / (α₁ - α₂)
嗯,这里要注意:两个加速度不能相等,否则分母为零就没法算了。我个人习惯让 α₂ = -α₁,也就是一个加速一个减速,这样辨识效果最好。
关键点:恒加速度法要求加速度严格恒定。如果加速度波动大,辨识结果就会不准。我在项目中遇到过,有些伺服驱动器速度环响应慢,导致实际加速度跟不上指令,这时候辨识出来的惯量偏差能达到 20% 以上。
下面是一个简单的实现流程:
- 设定加速度 α₁,让电机加速运行,采集稳定段的转矩平均值 T₁
- 设定加速度 α₂(通常取 -α₁),让电机减速运行,采集稳定段的转矩平均值 T₂
- 计算 J = (T₁ - T₂) / (α₁ - α₂)
- 对多次辨识结果取平均,提高精度
4.2 恒加速度法的误差分析
你可能会问:这个方法看起来很简单,为什么实际用起来总感觉不准?
我总结了几大误差来源:
| 误差来源 | 影响程度 | 应对措施 |
|---|---|---|
| 摩擦力矩变化 | 中等 | 正反向运行取平均,抵消摩擦力矩 |
| 加速度波动 | 较大 | 提高速度环带宽,或使用滤波后的加速度 |
| 转矩采样噪声 | 较小 | 增加采样点数,使用滑动平均滤波 |
| 负载转矩突变 | 严重 | 选择负载稳定的时间段进行辨识 |
我曾经在一个印刷机械项目上吃过亏。当时负载惯量很大,但摩擦力矩也大,而且正反向摩擦力还不一样。我用了最简单的恒加速度法,结果辨识出来的惯量比实际值大了将近 40%。后来我改成正反向各跑一次,取平均值,才把误差降到了 5% 以内。
我的经验:如果系统摩擦力矩比较大,建议在辨识前先做一次摩擦力补偿。具体做法是让电机匀速运行,采集此时的转矩作为摩擦力矩的近似值,然后在辨识时把这个值减掉。
4.3 梯形速度曲线的惯量辨识
梯形速度曲线,就是加速段、匀速段、减速段三段组成的曲线。你想想看,这种曲线在实际应用中很常见——比如电梯、传送带、点对点定位系统。
梯形曲线的惯量辨识,其实就是在恒加速度法的基础上,利用加速段和减速段的数据。具体做法是:
- 在加速段,取中间稳定段的转矩数据,计算平均转矩 T_acc
- 在减速段,取中间稳定段的转矩数据,计算平均转矩 T_dec
- 利用公式 J = (T_acc - T_dec) / (α_acc - α_dec) 计算惯量
这里有个细节:加速段和减速段的加速度绝对值通常相等,但方向相反。所以 α_dec = -α_acc,公式简化为:
J = (T_acc - T_dec) / (2 * α_acc)
为什么取中间稳定段?因为加速刚开始和快结束的时候,加速度会有波动,转矩数据不稳定。我一般会去掉前后各 10% 的数据,只取中间 80% 来做平均。
注意:梯形速度曲线的匀速段不能太短。如果匀速段太短,加速段和减速段会相互影响,导致转矩数据不纯。我建议匀速段至少持续 0.5 秒以上。
4.4 S形速度曲线的惯量辨识
S形速度曲线,说白了就是让加速度也平滑变化,而不是突变。这种曲线对机械冲击小,适合精密定位和重载场合。
S形曲线的惯量辨识比梯形曲线复杂一些。因为加速度不是恒定的,而是随时间变化的。这时候,我们不能直接用恒加速度法的公式。
我的做法是这样的:
- 在S形曲线的加速段,找到加速度最大的时刻(通常是加速段的中点附近)
- 记录该时刻的转矩 T_peak 和加速度 α_peak
- 在减速段,同样找到加速度最大的时刻,记录 T_peak' 和 α_peak'
- 利用 J = (T_peak - T_peak') / (α_peak - α_peak') 计算
你可能会问:为什么不取平均值?因为S形曲线的加速度变化太快,取平均值反而会引入误差。取峰值点,信噪比最高。
实战建议:S形曲线的加加速度(Jerk)设置要合理。加加速度太小,加速度峰值低,转矩信号弱;加加速度太大,又失去了S形曲线的优势。我一般把加加速度设为加速度的 10-20 倍。
下面我画了一张图,帮你理清这几种方法的关系:
最后说一句,不管用哪种方法,辨识完成后一定要做验证。我的习惯是:用辨识出来的惯量值重新计算速度环参数,然后跑一遍完整的加减速,看看实际响应和预期是否一致。如果偏差大,就重新辨识一次。
小技巧:如果你用的是梯形曲线,可以在一次运行中同时完成加速段和减速段的辨识。这样效率高,而且两次辨识的工况一致,误差更小。
公众号:蓝海资料掘金营,微信deep3321