02 · 进阶|系统辨识:让参数从运动中出现
为什么要辨识
控制器依赖的不是壳体称重值本身,而是包含附加质量、阻尼和推进器动态的输入—输出关系。辨识就是设计运动,让不同参数对输出产生可区分的影响,再从数据中估计它们。激励不足时,即使拟合曲线很漂亮,参数也可能互相补偿。
对单轴线性模型,零阶保持输入下的精确离散形式为:
先用最小二乘估计 a、b,再由 d=(1−a)/b、m=−dT/ln(a) 还原参数。这里 u 是物理推力;若只有归一化命令,得到的是含推力增益的等效模型,不能同时独立确定所有物理参数。
算例:稳态和瞬态提供不同信息
4 N 阶跃最终达到 0.5 m/s,得 d=8 N·s/m;约 2.5 s 达到最终变化的 63.2%,得 m=20 kg。若只记录稳态段,v̇≈0,质量项几乎消失,任何质量都能解释这一段。若只做一个速度,线性与二次阻尼也容易混淆;使用多个正反向速度,拟合 u=d₁v+d₂|v|v,才能区分两类阻力。
实现步骤
先用合成数据确认估计器能找回已知参数;再加入测量噪声、执行器一阶滞后和时间偏移。输入应既有慢变化又有适度动态变化,可采用小幅阶跃序列或受限扫频。把数据分成拟合段与另一条运动的预测段:重点看模型能否预测尚未用于拟合的瞬态,而不是只降低训练残差。
直接对含噪速度求导会放大噪声;离散回归能避开一部分求导问题,但有噪回归量会造成估计偏差。进一步可学工具变量、预测误差法和递推最小二乘。闭环数据中输入与噪声相关,尤其要小心把控制器的纠偏行为当成对象本身的动力学。
学习实验
用 m=20、d=8 生成三组数据:恒力稳态、单次阶跃、不同频率的受限输入。分别拟合模型,比较参数散布。随后把推进器滞后加到 0.3 s,观察不含执行器状态的模型是否错误地把延迟解释成更大的质量。这个实验说明:先增加解释力不足的物理环节,再考虑让算法更复杂。