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 生成的观测进行了拟合。但这只是一个还需要留出数据检验的假设,本身并不构成证明。