2. 电机参数辨识概述:离线辨识 vs 在线辨识
说到电机参数辨识,很多刚入行的朋友第一反应就是:「拿个万用表量量电阻不就行了?」
嗯,要是真这么简单,我就不用专门开这一章了。电机参数辨识,说白了就是搞清楚你的电机到底是个什么「脾气」——它的电阻多大、电感多少、反电动势系数是多少。这些参数搞不准,你的FOC算法就像蒙着眼睛开车,能跑,但绝对跑不好。
我个人习惯把参数辨识分成两大类:离线辨识和在线辨识。这两者各有各的玩法,也各有各的坑。今天我就结合自己踩过的坑,跟你好好聊聊。
2.1 什么是离线辨识?
离线辨识,顾名思义,就是电机在不转或者不参与实际控制的时候,我们主动给它施加一些测试信号,然后根据响应来推算参数。
你可以把它想象成给电机做「体检」。电机乖乖停在那里,你给它打一针(注入电压/电流信号),然后看它的反应(电流变化/位置变化),最后算出它的身体指标。
核心思路:已知输入 → 测量输出 → 反推模型参数
离线辨识的常用方法
- 直流伏安法:给电机通直流电,测电压电流,算电阻。简单粗暴,但只能测静态电阻。
- 高频注入法:注入高频电压信号,通过电流响应算电感。我在做表贴式电机时常用这个方法。
- 自由减速法:让电机转起来,然后断电,看它自由减速的曲线,推算反电动势系数和摩擦系数。
- 堵转测试:把电机轴卡死,施加电压测电流。嗯,这个方法我建议你慎用,容易烧东西。
我的经验:离线辨识最怕的就是「测不准」。我记得有一次给一个客户做伺服电机标定,用直流伏安法测出来的电阻是2.3Ω,结果上电跑起来电流一直不对。后来发现是接触电阻没扣除,实际只有1.8Ω。从那以后,我每次做离线辨识都会先做一次「短路校准」——把电机线短接,测出线缆和接触电阻,再减去它。
2.2 什么是在线辨识?
在线辨识,就是电机正在运行的时候,我们一边控制它,一边实时估算它的参数。
这就像你一边开车,一边感受发动机的状态——油门踩下去反应慢了,可能是电池电压低了;方向盘变重了,可能是负载变了。在线辨识就是让控制器自己「感觉」到这些变化。
在线辨识的常用方法
- 模型参考自适应(MRAS):建立一个参考模型,把实际输出和模型输出做对比,误差用来修正参数。
- 扩展卡尔曼滤波(EKF):把参数当作状态变量,用卡尔曼滤波去估计。精度高,但计算量大。
- 递推最小二乘法(RLS):实时采集电压电流数据,用最小二乘法不断更新参数。我项目中用得最多的就是它。
- 神经网络/机器学习:嗯,这个我目前只在论文里见过,工业界用得还不多。
注意:在线辨识有一个致命问题——可观测性。说白了就是,有些参数在电机运行的时候根本「看不出来」。比如电机静止时,你永远无法通过在线辨识得到反电动势系数,因为根本没有反电动势。我曾经在这个问题上栽过跟头,花了两周调试一个在线辨识算法,结果发现低速时参数全在飘,最后老老实实加了个离线预标定。
2.3 离线 vs 在线:优缺点对比
为了让你看得更清楚,我直接列个表:
| 对比项 | 离线辨识 | 在线辨识 |
|---|---|---|
| 精度 | 高(可控环境) | 中等(受工况影响) |
| 实时性 | 无(只在标定阶段做) | 高(持续更新) |
| 抗干扰能力 | 强(可多次测量取平均) | 弱(噪声影响大) |
| 实现复杂度 | 低(简单算法即可) | 高(需要滤波、收敛判断) |
| 适用场景 | 出厂标定、初次上电 | 运行中参数漂移补偿 |
| 对电机状态要求 | 静止或特定状态 | 正常运行即可 |
2.4 各自的适用场景
你可能会问:「那我到底该用哪种?」
我的回答是:小孩子才做选择,成年人两个都要。
什么时候必须用离线辨识?
- 初次上电标定:电机第一次接入驱动器,你连它是什么参数都不知道,这时候必须离线测一遍。
- 高精度控制场景:比如机器人关节、数控机床,这些场合参数必须准,离线辨识是基础。
- 参数变化不大的场景:比如风机、水泵,电机温度变化不大,离线标定一次能用很久。
什么时候必须用在线辨识?
- 温度变化大的场景:电机发热后,电阻可能变化20%-30%,这时候离线测的就不准了,必须在线补偿。
- 负载频繁变化的场景:比如电动汽车,爬坡和下坡的负载完全不同,在线辨识能实时调整。
- 无法停机维护的场景:比如生产线上的电机,不能为了标定参数就停机,只能在线做。
避坑指南:我曾经做过一个项目,客户要求「全自动在线辨识,不需要离线标定」。结果呢?电机在低速启动时,在线辨识出来的电阻值一直在0.5Ω到5Ω之间跳变,控制器直接炸了。后来我加了一个「离线预标定 + 在线微调」的混合方案,才稳定下来。所以我的建议是:离线辨识做粗调,在线辨识做细调,两者互补才是王道。
2.5 知识体系框架图
下面这张图,是我自己总结的电机参数辨识知识体系。你可以把它当作一个「导航图」,后面几章的内容都会围绕它展开。
2.6 我的建议
说了这么多,最后给你一个实际工程中的建议:
- 产品开发阶段:先做离线辨识,把电机的基本参数摸清楚。这一步省不了,省了后面全是坑。
- 量产阶段:如果成本允许,保留离线标定流程。如果成本敏感,可以用「离线模板 + 在线微调」——就是同一批次的电机只标定一台,其他用它的参数做初始值,运行中再微调。
- 维护阶段:如果电机出现异常(比如过热、异响),优先用在线辨识看看参数有没有漂移。我遇到过好几次,电机电阻突然变大,一查是接线端子氧化了。
一句话总结:离线辨识是「打地基」,在线辨识是「精装修」。地基打不牢,装修再好也白搭。
公众号:蓝海资料掘金营,微信deep3321