4、参数辨识基础:辨识的定义、离线辨识与在线辨识的区别、激励信号设计
各位工程师朋友,欢迎来到参数辨识的实战环节。说实话,很多做伺服驱动的同行,一听到“辨识”两个字就觉得头大,觉得那是搞理论的人干的事。其实不然。我做了十几年驱动,最深的体会就是:不懂辨识,调参就是瞎蒙。你想想看,连电机的基本参数都不清楚,PID 调得再好也是空中楼阁。
这一章,我们就来把参数辨识这层窗户纸捅破。我会用最直白的方式,讲清楚辨识的本质、两种辨识模式的取舍,以及怎么设计激励信号才能把参数“逼”出来。
4.1 辨识到底是个啥?
先问个问题:你拿到一台陌生的电机,怎么知道它的转动惯量是多少?电阻电感是多少?
你当然可以翻 datasheet,但实际工况下,参数会变。负载变了,惯量就变了;温度变了,电阻就变了。这时候,就需要辨识。
辨识,说白了就是“反向求解”。我们给系统一个已知的输入(比如一个电压信号),然后测量它的输出(比如转速响应)。根据输入和输出的关系,反推出系统内部的参数。
核心公式(思想):
系统模型 + 输入信号 → 理论输出
实际系统 + 输入信号 → 实际输出
调整模型参数,让理论输出 ≈ 实际输出
我在项目中遇到过一种情况:一台老旧的伺服电机,铭牌都磨没了。靠什么调参?全靠辨识。给它一个阶跃电压,测转速曲线,用最小二乘法把惯量和阻尼系数算出来。嗯,这就是辨识的实战价值。
4.2 离线辨识 vs 在线辨识
这两种模式,我习惯用一个比喻来解释:
- 离线辨识:就像给病人做一次全面的体检。病人得停下来,配合各种检查。结果很准,但不能边跑边查。
- 在线辨识:就像给运动员戴个心率手环。边跑边测,实时调整。精度可能差一点,但胜在不停机。
具体到伺服驱动,它们的区别是这样的:
| 对比维度 | 离线辨识 | 在线辨识 |
|---|---|---|
| 执行时机 | 系统停机或初始化阶段 | 系统正常运行过程中 |
| 信号强度 | 可以注入大幅值信号,信噪比高 | 信号幅值受限,不能影响正常运行 |
| 计算资源 | 可以跑复杂算法(如递推最小二乘的批量版) | 只能用轻量级算法,实时性要求高 |
| 精度 | 高,通常能达到 1%~5% 误差 | 中等,受噪声和工况变化影响大 |
| 典型应用 | 出厂前参数标定、更换电机后的自整定 | 负载变化时的惯量补偿、摩擦补偿 |
我的建议: 实际项目中,我通常把两者结合。上电时先做一次离线辨识,拿到基准参数。运行过程中再用在线辨识做微调。这样既保证了初始精度,又能适应工况变化。
4.3 激励信号设计——辨识的灵魂
辨识好不好,一半看算法,一半看信号。你给系统的信号如果“激”不出它的动态特性,再牛的算法也白搭。
我见过不少工程师,随便给个阶跃就开始辨识,结果算出来的参数偏差 30% 以上。为什么会这样?因为信号的能量分布不对。
下面我介绍三种最常用的激励信号,以及它们的适用场景。
4.3.1 阶跃信号
阶跃信号是最简单、最直观的激励。给系统一个突然的指令变化,看它怎么响应。
- 优点:实现简单,物理意义清晰。从阶跃响应曲线可以直接看出上升时间、超调量、稳态误差。
- 缺点:能量集中在低频段,对高频动态(如谐振、摩擦突变)不敏感。
- 适用:辨识低阶系统参数,比如一阶惯性环节的时间常数、增益。
避坑指南: 我曾经在辨识一个高速主轴电机时,只用阶跃信号,结果算出来的电感值偏大 20%。后来发现,阶跃信号的高频分量太少,无法充分激励绕组的寄生电容效应。换用扫频信号后,问题就解决了。
4.3.2 扫频信号(Chirp)
扫频信号,就是频率随时间线性或对数变化的信号。从低频扫到高频,相当于把系统在各个频率点上的响应都测一遍。
我个人习惯用对数扫频,因为低频段多花点时间,能更准确地辨识出系统的低频增益和转折频率。
// 对数扫频信号生成示例(伪代码)
float chirp_signal(float t, float f_start, float f_end, float T) {
float k = pow(f_end / f_start, 1.0 / T);
float f_inst = f_start * pow(k, t);
return A * sin(2 * PI * f_start * (pow(k, t) - 1) / log(k));
}
- 优点:频率覆盖范围广,能完整揭示系统的幅频和相频特性。
- 缺点:需要较长的激励时间,且对系统线性度有要求(非线性系统会引入谐波失真)。
- 适用:辨识系统的传递函数模型,尤其是需要知道谐振频率和反谐振频率时。
4.3.3 伪随机序列(PRBS)
PRBS 是一种二进制序列,看起来像随机噪声,但实际上是确定性的、可重复的。它的频谱接近白噪声,能量分布均匀。
你想想看,为什么有时候扫频信号不好用?因为扫频是“慢悠悠”地变频率,如果系统有非线性,或者负载在变化,扫频结果就会失真。PRBS 不一样,它瞬间注入所有频率的能量,辨识速度快,抗干扰能力强。
- 优点:能量分布均匀,辨识速度快,对非线性系统有一定鲁棒性。
- 缺点:实现稍复杂,需要移位寄存器或查表法生成;幅值需要仔细选择,太大影响系统运行,太小信噪比不够。
- 适用:在线辨识、快速参数更新、系统存在非线性或时变特性时。
实战技巧: 我在做在线惯量辨识时,最喜欢用 PRBS 叠加在速度指令上。幅值控制在额定转速的 1%~2%,既不影响正常运行,又能把惯量信息“逼”出来。配合递推最小二乘法,效果非常好。
4.4 三种信号的对比与选择
为了让你一目了然,我把三种信号的核心特性整理成了一张表:
| 特性 | 阶跃信号 | 扫频信号 | 伪随机序列 |
|---|---|---|---|
| 频率覆盖 | 窄(低频为主) | 宽(可控) | 宽(均匀) |
| 激励时间 | 短(一个阶跃) | 长(需要扫完整个频段) | 中等(几个周期即可) |
| 实现难度 | 极低 | 中等 | 较高 |
| 抗噪声能力 | 弱 | 中等(可多次平均) | 强(相关检测) |
| 对系统影响 | 大(幅值突变) | 中等 | 小(可控制幅值) |
| 最佳场景 | 离线粗辨识 | 离线精细辨识 | 在线辨识 |
4.5 知识体系总览
说了这么多,我们来一张图把本章的核心逻辑串起来。这张 SVG 图展示了参数辨识的完整流程,以及三种激励信号在其中的位置。
这张图把本章的知识体系串起来了。从辨识的定义出发,分两条路(离线/在线),然后落到三种激励信号的选择上。每种信号都有它的脾气,选对了,事半功倍;选错了,事倍功半。