弹簧阻尼振荡器是一个相对简单的例子,它默认给定一个初始位置后,不再施加外力。 拉到一个点,然后弹啊弹啊弹…… 但是实际上有可能系统会被施加持续的外力,因此需要考虑更复杂的情形。 先来定义三个变量: 控制量ui,这个是已知且可控的变量。 状态量xi,通常情况下它无法被直接测量,或者说需要最优估计解的正是它。 输出量zi,也被称为观察量,从传感器得来,通常是对某些xi的观测值。 拿弹簧阻尼振荡器来说,ui是施加到负载质心上的外力,xi是我们需要最优估计的负载质心位置。 如果我们拿传感器测量负载质心的位置,那么zi就是这里的观测值。 引入这三个变量之后,我们可以将状态空间表达式扩展: x(t)是n*1矩阵,F(t)是n*n矩阵,C(t)是n*r矩阵,u(t)是r*1矩阵。 C(t)u(t)被称为微分方程的非齐次部分,因为它和xi无关。 在实际的物理过程中,这三个变量足够了么? 实际上我们可以再引入一个变量w,表示随机扰动。 比如在一个安装有温度控制器的房间,有如下热力学方程: kc取决于房间的热绝缘系数,To指室外温度,kh指温度控制器的功率系数。 u表示控制量,这里可以简化成0为关掉,1为开启。 To可以观测且不可预知,可以把它当作一个随机过程,使用w表示。 上面的热力学方程可以写成如下形式: 方法很简单,过程略。 我们现在知道了xi、ui和zi表示的含义,也知道了怎么使用物理规律建立一阶微分方程组。 除了此F(t)表示的一阶微分方程组外,我们还需要另外一个方程组: 此处: 其中,z(t)被称为测量矩阵或输出矩阵。 H(t)表征传感器的灵敏度,称为测量灵敏度矩阵。 D(t)是输入输出耦合矩阵。 结论: 两个方程组,一个包含F(t)、C(t)、W(t),由实际物理规律得来;一个包含H(t)、D(t),表征传感器测量方式。 如果这两个方程组建立不起来,卡尔曼滤波的实现也就无从谈起。