第3章:参数辨识概述
各位同学,大家好。今天我们来聊聊参数辨识。说实话,我刚入行那会儿,觉得电机控制嘛,调好PI参数就完事了。直到有一次,我在做一个高速主轴项目,电机跑着跑着就开始抖,怎么调都调不好。后来才发现,是电机的电阻和电感随着温度变了,而我用的还是常温下的参数。嗯,从那以后,我就开始认真研究参数辨识了。
什么是参数辨识?
说白了,参数辨识就是通过测量电机的输入输出数据,反向推算出电机内部参数的过程。你想想看,我们做FOC控制,需要知道电机的电阻R、电感L、磁链ψf这些参数。但实际工作中,这些参数会随着温度、电流、频率变化。怎么办?那就得靠辨识。
我个人的理解是:参数辨识就像医生看病。你给电机施加一个激励(比如电压脉冲),然后观察它的响应(比如电流波形),最后根据这些数据推断出电机的“身体状况”——也就是它的参数值。
参数辨识的分类
参数辨识主要分两类:离线辨识和在线辨识。这两者差别很大,我分别说说。
离线辨识
离线辨识,就是在电机运行之前,或者停机状态下,专门做一次参数测量。我在项目中遇到过很多次,比如新电机第一次上电,必须先做离线辨识,把初始参数测出来。
离线辨识的优点是精度高,因为你可以控制激励信号,排除干扰。但缺点也很明显——它不能反映电机运行时的真实参数变化。
离线辨识的典型场景:
- 电机初次上电时的参数初始化
- 维修后重新标定参数
- 实验室环境下的精确测量
在线辨识
在线辨识就厉害了。它是在电机正常运行的同时,实时更新参数。我做过一个电动汽车的项目,电机温度从25℃升到80℃,电阻变化了将近20%。如果没有在线辨识,控制性能会急剧下降。
在线辨识的难点在于:你不能随便给电机加激励信号,因为会影响正常运行。所以需要设计巧妙的算法,从正常的运行数据中提取参数信息。
我的建议:实际项目中,我通常采用“离线+在线”的组合策略。先离线辨识得到初始值,再用在线辨识做实时修正。这样既保证了启动时的准确性,又能应对参数变化。
持续激励条件
这里有个非常重要的概念——持续激励。为什么重要?我曾经踩过这个坑。
有一次,我让电机恒速运行,然后做在线辨识。结果发现辨识出来的参数一直在跳,根本收敛不了。后来才明白,电机恒速运行时,电流基本不变,你拿到的数据信息量太少,不足以唯一确定参数。
持续激励,说白了就是你的输入信号要足够“丰富”,能激发出系统的各种动态特性。对于永磁同步电机来说,通常需要电流或电压信号包含足够的频率成分。
避坑指南:我曾经在项目里直接用方波做激励,结果高频分量太多,导致辨识结果受噪声影响很大。后来改用伪随机二进制序列(PRBS),效果就好多了。记住:激励信号的设计,直接决定了辨识的成败。
持续激励的数学定义比较抽象,我简单说一下:如果输入信号的频谱在足够宽的频带内都不为零,那么它就满足持续激励条件。实际应用中,我们通常用以下方法产生持续激励:
- 叠加小幅值的白噪声或PRBS信号
- 改变电机的工作点(比如加减速)
- 注入特定频率的正弦波
辨识精度评价指标
参数辨识做完了,怎么评价它好不好?我一般用以下几个指标:
| 指标名称 | 定义 | 我的经验值 |
|---|---|---|
| 均方根误差(RMSE) | 辨识值与真实值偏差的平方根 | 小于5%算合格 |
| 收敛时间 | 从开始辨识到参数稳定的时间 | 在线辨识一般要求<1s |
| 参数波动范围 | 稳态时参数的波动幅度 | 波动<±2%算优秀 |
| 鲁棒性 | 对噪声和干扰的抵抗能力 | 信噪比>20dB时仍能工作 |
你可能会问:真实值怎么得到?嗯,这是个好问题。实际项目中,我们通常用高精度离线测量值作为参考,或者用仿真数据来验证。
一个实用的评价方法:我个人的习惯是,先做一次离线辨识,把结果作为基准。然后对比在线辨识的结果,看偏差是否在可接受范围内。如果偏差太大,就要检查激励信号是否合适,或者算法是否有问题。
辨识算法的选择
说到算法,常用的有最小二乘法、卡尔曼滤波、模型参考自适应等。我简单说说我的使用感受:
- 最小二乘法:简单粗暴,适合离线辨识。但抗噪声能力一般。
- 卡尔曼滤波:在线辨识的利器,能处理噪声。但调参比较麻烦。
- 模型参考自适应:适合参数变化较慢的场景,收敛速度适中。
我个人比较喜欢用卡尔曼滤波做在线辨识。虽然计算量大一点,但现在的MCU性能都够用。记得有一次,我用STM32F4跑卡尔曼滤波,采样频率10kHz,CPU占用率才30%左右,完全没问题。
小技巧:如果你刚开始做参数辨识,我建议先从最小二乘法入手。它原理简单,容易实现。等把流程跑通了,再换成更高级的算法。这样不容易被复杂的数学公式吓到。
总结
好了,这一章的内容就这些。参数辨识是电机控制中非常实用的一环,它能让你的控制系统更智能、更鲁棒。记住三个要点:
- 离线辨识做初始化,在线辨识做修正
- 激励信号要满足持续激励条件
- 用多个指标综合评价辨识效果
下一章,我们会具体讲最小二乘法的实现。到时候我会带大家手写代码,把理论变成实际可用的程序。咱们下章见。
公众号:蓝海资料掘金营,微信deep3321