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 图展示了参数辨识的完整流程,以及三种激励信号在其中的位置。

参数辨识知识体系与激励信号选择流程 参数辨识知识体系与激励信号选择流程 参数辨识:反向求解系统参数 离线辨识(停机体检) 在线辨识(实时监测) 阶跃信号 扫频信号 伪随机序列 低频能量集中 实现简单 频率覆盖可控 适合精细辨识 能量均匀分布 抗干扰能力强 辨识结果:惯量、阻尼、电感、谐振频率...

这张图把本章的知识体系串起来了。从辨识的定义出发,分两条路(离线/在线),然后落到三种激励信号的选择上。每种信号都有它的脾气,选对了,事半功倍;选错了,事倍功半。