模型辨识基础:系统辨识、角色与三大要素

各位工程师朋友,欢迎来到模型辨识的实战第一课。说实话,很多人一听到“辨识”两个字就觉得是纯数学推导,离工程很远。但在我做机器人这些年里,恰恰是辨识这个环节,决定了你的控制器到底能不能跑起来。

今天我们就来聊聊:系统辨识到底是什么?它在人形机器人里扮演什么角色?以及辨识的三大核心要素——数据、模型、准则。

什么是系统辨识?

系统辨识,说白了就是“通过实验数据给系统建模”。你不需要知道系统内部的所有物理参数,只需要给它输入信号,观察输出,然后找一个数学模型去拟合这个输入-输出关系。

举个例子。你给机器人关节一个力矩指令,它实际转了多少角度?如果你能记录下这个对应关系,就能反推出关节的惯量、阻尼、刚度。这就是辨识。

我刚开始做项目时,总觉得辨识不如直接查手册来得快。直到有一次,我按电机手册给的参数搭了控制器,结果机器人一启动就抖得像筛糠。后来实测辨识才发现,手册上的惯量值跟实际差了将近30%。嗯,从那以后我再也不敢跳过辨识了。

核心定义:系统辨识 = 实验设计 + 数据采集 + 模型结构选择 + 参数估计 + 模型验证

模型辨识在人形机器人中的角色

人形机器人跟工业机械臂最大的区别是什么?它要走路、要平衡、要跟环境交互。这些动作对模型的精度要求极高。

我把它总结为三个关键角色:

  • 控制器设计的基础——没有准确的模型,你设计的MPC、LQR全是空中楼阁。模型越准,控制器越敢“用力”。
  • 仿真与迁移的桥梁——你在仿真里训练的策略,能不能迁移到真机上?取决于仿真模型跟真实系统的差距。辨识就是缩小这个差距。
  • 故障诊断的依据——当机器人某个关节响应异常,你可以通过辨识结果的变化,判断是磨损了还是传感器漂移了。

我记得有一次调试双足行走,仿真里走得稳稳当当,一上真机就摔。折腾了两周,最后发现是髋关节的阻尼参数在仿真里设得太理想。重新辨识后,把阻尼值调大了一倍,机器人才站稳。你想想看,一个参数就能决定成败。

辨识的三大要素:数据、模型、准则

这三个要素缺一不可。我习惯用一个三角形来理解它们的关系:

系统辨识三大要素 数据 Data 模型 Model 准则 Criterion 三者相互制约:数据质量决定模型上限,准则选择影响参数估计方向

1. 数据——辨识的“原材料”

数据质量直接决定辨识结果的好坏。我见过太多人随便录一段数据就开始辨识,结果模型一塌糊涂。

好的数据需要满足几个条件:

  • 充分激励——输入信号要能激发系统的所有动态模式。正弦扫频、PRBS(伪随机二进制序列)是常用选择。
  • 足够长度——数据量太少,参数估计的方差会很大。一般建议至少采集系统主导时间常数的10倍以上时长。
  • 信噪比高——噪声太大会淹没系统本身的响应。我习惯在采集前先做一次静态测试,看看传感器的底噪水平。

实战技巧:采集数据时,先让机器人跑一段“热身”运动,让关节温度稳定下来。温度变化会影响摩擦参数,这个坑我踩过不止一次。

2. 模型——辨识的“骨架”

模型结构的选择,决定了你要辨识什么参数。人形机器人常用的模型有两类:

模型类型 典型结构 适用场景 参数数量
物理模型 刚体动力学、柔性关节模型 控制器设计、仿真迁移 少(10~50个)
黑箱模型 ARX、状态空间、神经网络 故障诊断、非线性补偿 多(50~1000+个)
灰箱模型 已知结构+未知参数 兼顾物理意义与精度 中等(20~100个)

我个人更倾向于灰箱模型。为什么?因为纯物理模型太理想化,忽略了很多非线性因素;而纯黑箱模型又缺乏可解释性,出了问题很难排查。灰箱模型正好取了个折中。

举个例子,辨识一个关节的摩擦特性。纯物理模型可能只考虑库仑摩擦+粘性摩擦,但实际还有Stribeck效应、滞回等。我会在物理模型基础上,加一个简单的神经网络补偿项。这样既有物理意义,又能覆盖非线性。

3. 准则——辨识的“标尺”

准则就是“什么样的模型算好”。最常用的是预测误差准则:让模型输出跟实际输出的误差平方和最小。

但这里有个坑:准则选不好,模型会过拟合。我曾经用最小二乘法辨识一个关节模型,训练集误差小到0.1%,但换一组数据验证,误差直接飙到15%。

避坑指南:千万不要只盯着训练集误差。一定要留出一部分数据做交叉验证。我习惯按7:3的比例划分训练集和验证集,并且保证验证集覆盖了不同的运动模式。

常用的准则函数有几种:

  • 最小二乘(LS)——最简单,但对噪声敏感
  • 加权最小二乘(WLS)——给不同数据点不同权重,适合处理异方差噪声
  • 最大似然估计(MLE)——考虑噪声的统计特性,精度更高
  • 正则化准则——在误差项后面加一个参数惩罚项,防止过拟合

我个人的经验是:如果数据质量好、噪声小,最小二乘就够用。但如果传感器噪声大,或者数据里有异常值,一定要用带正则化的方法。

三者如何协同工作?

数据、模型、准则不是独立的。它们之间互相影响:

  1. 数据决定模型复杂度上限——数据量少,就别用太复杂的模型。否则参数估计的方差会爆炸。
  2. 模型结构影响数据需求——非线性模型需要更丰富的激励信号才能充分激发。
  3. 准则选择影响参数估计的偏向——不同的准则会得到不同的参数值,要结合物理意义判断。

我记得有一次做腿部关节的辨识,用了很复杂的神经网络模型,但数据只采集了慢速运动。结果模型在慢速段拟合得很好,一到快速行走就完全失效。后来我重新设计了激励信号,加入了快速扫频和冲击响应,才把模型调好。

核心原则:用最简单的模型,配最充分的数据,选最合适的准则。不要为了炫技而堆复杂度。

小结

系统辨识不是一门纯理论课,它是连接仿真与现实的桥梁。在人形机器人这个领域,模型精度直接决定了你能不能让它走稳、跑快、跳起来。

数据、模型、准则,这三者就像三脚架,缺一个就站不稳。后面的章节,我们会逐一深入每个要素的实战细节。今天先把框架搭好,后面才好发力。