4. 实验设计与激励轨迹
参数辨识的精度上限,在数据采集之前就已经被轨迹决定了。如果一条轨迹从未让某个关节产生足够大的加速度,那么与该关节惯量相关的回归列就几乎恒为零,无论后续用最小二乘还是更复杂的优化算法,都无法从数据中"无中生有"地恢复这个参数。因此,激励轨迹设计的核心任务不是"让机器人动起来",而是让待辨识参数在回归矩阵中呈现出足够强、彼此可区分的作用。
一、从辨识方程看"激励"到底意味着什么
多体系统动力学可线性化为关于惯性参数的回归形式:
τ = Y(q, q̇, q̈) · θ + ε
其中 τ 为关节力矩向量,Y 为回归矩阵(由关节位置、速度、加速度构成),θ 为待辨识的惯性参数向量(质量、质心一阶矩、惯性张量等),ε 为噪声与未建模项。辨识问题本质上是求解 θ 使得 Yθ 尽可能逼近 τ。若把 Y 的每一列看作一个"基函数",那么第 i 个参数能否被辨识,取决于它对应的列是否在采样数据中产生了足够的变化,以及它是否与其他列高度相关。
由此可以引出两个关键概念:可辨识性与条件数。可辨识性关注的是某个参数是否在 Y 的列空间中留下独立痕迹;条件数则衡量 Y 的列之间是否"过于相似",导致求解对噪声极度敏感。一个参数即使理论上可辨识,如果其对应列与其他列几乎线性相关,实际辨识结果也会因噪声放大而不可信。
二、激励轨迹的构造方式
工程上最常用的激励轨迹是有限项傅里叶级数。对第 j 个关节,令其位置为:
q_j(t) = q_j0 + Σ_{k=1}^{N} [ a_{j,k} sin(kω_f t) + b_{j,k} cos(kω_f t) ]
其中 q_j0 为偏置,ω_f 为基频,N 为谐波数,a、b 为待优化系数。傅里叶级数的优势在于:它天然是周期性的,便于重复采集;其速度与加速度可通过解析求导直接得到,无需数值微分;同时通过调整各次谐波的幅值和相位,可以灵活地"注入"不同频率成分,从而激发系统的多阶动态特性。
轨迹优化的目标函数通常取回归矩阵条件数的某种度量,例如最小化 cond(Y) 或其对数,也可采用最小化 Y 的奇异值分布的不均衡程度。约束条件包括:关节位置不超出机械限位、速度与加速度不超过驱动器能力、避免与自身或环境发生碰撞、轨迹首尾连续以便循环执行。
三、避免病态:从"能算"到"算得准"
即使轨迹经过优化,回归矩阵仍可能存在病态。常见原因有三类:一是某些参数本身在动力学中只以组合形式出现(例如某些连杆的惯量与相邻连杆质量耦合),导致列之间天然相关;二是轨迹运动幅度太小,某些列的信噪比过低;三是采样频率与轨迹频率不匹配,造成信息混叠。
应对策略包括:对参数进行可辨识性分析,通过 QR 分解或奇异值分解找出哪些参数组合是可辨识的,将不可辨识的参数合并或固定;对回归矩阵进行列归一化,使各参数的量级差异不主导条件数;采用正则化最小二乘(如岭回归)抑制噪声放大;以及在轨迹优化中直接加入对最小奇异值的约束,避免出现接近零的奇异值。
下面这张图展示了一条激励轨迹从参数化、约束、优化到可辨识性检验的完整信号链,以及条件数在其中的反馈作用。
四、一个可操作的示例流程
假设一台 2 自由度平面机械臂,待辨识参数包括两连杆的质量、质心位置和转动惯量,共 6 个参数。设计步骤如下:
- 确定基频与谐波数:根据关节带宽和采样频率,取基频 ω_f = 0.5 Hz,谐波数 N = 4,则轨迹最高频率为 2 Hz,采样频率取 200 Hz 可满足奈奎斯特条件并留足余量。
- 设定约束:关节 1 位置范围 [-90°, 90°],关节 2 范围 [-120°, 120°];速度上限 60°/s,加速度上限 200°/s²。
- 初始化系数:各谐波幅值取约束上限的 30%~50%,相位随机分布,保证初始轨迹不触碰边界。
- 优化:以 cond(Y) 为目标,采用序列二次规划或粒子群算法迭代。每轮迭代中,用当前系数生成 q(t),解析求导得 q̇、q̈,代入动力学模型构造 Y,计算条件数。
- 检验:优化后若 cond(Y) 从初始的 10⁴ 量级降至 10² 量级,且最小奇异值大于设定阈值(例如归一化后的 0.05),则认为轨迹合格。
- 采集与验证:执行轨迹并记录 τ、q、q̇、q̈,用最小二乘求解 θ,再用另一条未参与辨识的验证轨迹比较预测力矩与实测力矩的残差。若残差均方根小于额定力矩的 5%,说明辨识结果可用。
五、常见陷阱与判断依据
实践中,激励轨迹设计最容易出现的问题不是"算不出来",而是"算出来但不可信"。以下判断依据可以帮助快速定位问题:
| 现象 | 可能原因 | 处理方向 |
|---|---|---|
| 某些参数辨识值接近零或符号异常 | 对应回归列信噪比过低,或与其他列高度相关 | 增大该关节运动幅度,或将该参数与相关参数合并 |
| 条件数很大但残差很小 | 过拟合,噪声被拟合进参数 | 引入正则化,或减少谐波数,或增加采样时长 |
| 验证轨迹残差远大于辨识轨迹残差 | 激励频率覆盖不足,参数外推能力差 | 在轨迹中增加不同频段成分,重新优化 |
| 优化后条件数改善不明显 | 约束过紧,轨迹无法充分激励 | 适当放宽速度/加速度约束,或增加谐波数 |
归根结底,激励轨迹设计是一个"在物理约束下最大化信息量"的问题。傅里叶级数提供了灵活的参数化手段,条件数提供了可量化的优化目标,而可辨识性分析则确保我们不会在不可辨识的方向上浪费数据。三者配合,才能让后续的参数估计建立在可靠的数据基础之上。