4. 激励轨迹设计:傅里叶级数轨迹、优化准则、持续激励条件
好,咱们进入辨识实操中最关键的一环——激励轨迹设计。
说实话,很多刚入行的工程师觉得动力学参数辨识嘛,不就是让机器人随便动一动,然后采集数据、最小二乘拟合就完事了?大错特错。 我见过太多这样的案例:数据采了一大堆,辨识出来的参数却完全没法用,补偿上去反而抖得更厉害。
问题出在哪?激励不够。 你的轨迹没有把机器人的动力学特性“激活”出来。
打个比方:你想测一个人的百米冲刺能力,结果你让他慢悠悠散步。你采集到的数据里,加速度项、科里奥利项几乎为零,你怎么可能辨识出准确的惯性参数?
所以,激励轨迹设计是辨识工作的前置条件,也是决定成败的关键一步。
4.1 傅里叶级数轨迹:为什么选它?
激励轨迹的形式有很多种:阶跃信号、正弦扫频、多项式轨迹……但我在实际项目中用得最多的,还是傅里叶级数轨迹。
为什么?三个原因:
- 频率成分可控:你可以精确指定轨迹包含哪些频率分量,从而避开机器人的结构共振频率。
- 周期性:傅里叶级数是周期函数,便于数据截断和平均处理,能有效抑制噪声。
- 连续可导:速度和加速度都有解析表达式,不会出现数值微分带来的噪声放大。
傅里叶级数轨迹的通用形式是这样的:
q_i(t) = q_i0 + Σ [a_i,k * sin(k*ω_f*t) + b_i,k * cos(k*ω_f*t)]
其中:
q_i(t)是第 i 个关节的位置ω_f是基频,决定了轨迹的周期 T = 2π/ω_fk是谐波次数,一般取 1 到 Na_i,k和b_i,k是待优化的系数q_i0是位置偏移量
我个人习惯把基频设得低一些,比如 0.1 Hz 左右。这样每个周期有足够的时间让机器人充分运动,数据量也够用。
4.2 优化准则:怎么才算“好”的轨迹?
有了轨迹的数学形式,接下来就是优化。你不能随便给一组系数就完事了——你得让轨迹“好”。
那什么叫“好”?
说白了,就是让观测矩阵 Y 的条件数尽可能小。条件数越小,说明各参数之间的耦合越弱,辨识结果对噪声越不敏感。
我常用的优化准则有这几个:
| 准则 | 数学表达 | 特点 |
|---|---|---|
| 条件数最小化 | min cond(Y) | 最常用,直接反映矩阵病态程度 |
| D-最优 | max det(Y^T Y) | 最大化信息矩阵的行列式 |
| A-最优 | min trace((Y^T Y)^{-1}) | 最小化参数估计的方差和 |
| E-最优 | max λ_min(Y^T Y) | 最大化最小特征值 |
我在项目里最常用的是条件数最小化。为什么?因为它直观。条件数小于 10,我就觉得心里有底了。如果条件数超过 100,那这个轨迹基本不能用,辨识出来的参数肯定有问题。
4.3 持续激励条件:理论上的“金标准”
好,现在你有了优化好的傅里叶轨迹,条件数也很漂亮。但这就够了吗?
还不够。你还需要检查一个更根本的条件——持续激励条件(Persistent Excitation, PE)。
持续激励条件说的是:在整个运动过程中,观测矩阵 Y 的列向量要能张满整个参数空间。换句话说,机器人的运动要足够“丰富”,不能只在一个子空间里晃悠。
数学上,持续激励条件可以表述为:存在正数 α、β 和 T₀,使得对于任意 t₀,有:
α * I ≤ ∫(t₀ to t₀+T₀) Y^T(τ)Y(τ) dτ ≤ β * I
嗯,这个式子看着有点吓人。但实际中你不需要严格去验证这个积分不等式——太麻烦了。
我一般用两个工程手段来保证持续激励:
- 多轨迹组合:不要只跑一条轨迹。跑 3~5 条不同频率、不同幅值的轨迹,然后把数据拼起来辨识。
- 检查参数可辨识性:在辨识之前,先做一次可辨识性分析。把 Y 矩阵做 SVD 分解,看看哪些参数对应的奇异值接近零——那些参数就是不可辨识的,需要合并或剔除。
4.4 实战流程:我是怎么做的
好了,理论讲完了。我分享一下我在实际项目中的操作流程:
- 确定基频和谐波次数:基频 0.1 Hz,N=6,每个关节独立设计傅里叶系数。
- 设置约束:关节位置 ±170°,速度 ≤ 额定值的 80%,加速度 ≤ 额定值的 70%。
- 初始化系数:用随机数初始化 a_i,k 和 b_i,k,保证轨迹在约束范围内。
- 优化:用 fmincon 或类似优化器,目标函数是条件数最小化。
- 验证:优化完成后,仿真跑一遍轨迹,检查是否超限。同时计算 Y 矩阵的秩,确认满秩。
- 实机测试:让机器人跑优化好的轨迹,采集力矩和位置数据。
- 检查数据质量:看一眼力矩曲线——如果力矩变化幅度很小,说明激励不够,回去重新优化。
这个流程我用了好多年,基本没出过大问题。
4.5 知识体系总览
下面这张图总结了激励轨迹设计的核心逻辑:
你看,这三个模块是环环相扣的。傅里叶级数提供了轨迹的数学形式,优化准则帮你找到最优系数,持续激励条件则从理论上保证了辨识的可行性。缺一个,你的辨识结果都可能翻车。
好了,关于激励轨迹设计,核心内容就这些。记住:轨迹设计花的时间,会在辨识精度上十倍地回报你。别省这一步。