Robot SysID Lab

返回 L0 完整课程

L0 · 入门:到底在辨识什么?

系统辨识(SysID)通过实验学习一个有用的系统模型。本课的系统只有一个旋转自由度,模型边界明确为:

已知的实际力矩 u  →  旋转系统  →  观测到的位置 q 和速度 qd

系统满足:

$$ J\ddot{q} + b\dot{q} = u $$

其中,$q$ 是角位置,单位 rad;$\dot{q}$ 是角速度,单位 rad/s;$\ddot{q}$ 是角加速度;$u$ 是实际力矩,单位 N m;$J$ 是惯量,单位 kg m²;$b$ 是黏性阻尼,单位 N m s/rad。未知量只有 $J$ 和 $b$。代码将这些运动信号记作 q、qd 和 qdd。

实验用已知参数的模拟器生成观测。拟合程序得到时间、力矩、位置和速度,以及事先选定的参数范围与初始猜测。真实参数留到最后核对结果时使用。

每张图都使用三个名称:

名称 角色
真实系统(True system / Oracle) 产生观测的系统
初始模型(Initial model) 辨识前可用、看似合理但故意设错的模型
辨识后模型(Identified model) 拟合 J 和 b 后的模型

比较初始模型和辨识后模型,可以看到拟合怎样改变了预测。接下来还要用未参与拟合的运动检查,这种改善是否也适用于新数据。

想一想

看图前先预测:拟合后,哪个模型应当最接近 Oracle?然后打开报告,检查参数表是否符合你的预测。

参考答案: 辨识后模型应当更接近,因为它使用 Oracle 生成的观测进行了拟合。但这只是一个还需要留出数据检验的假设,本身并不构成证明。