状态外插方程

我想首先讲解状态外插方程

使用状态外插方程,我们能够基于当前系统状态预测下一个系统状态。它把当前(n 时刻)的状态向量外插至未来(n+1 时刻)。

状态外插方程描述系统的动态模型。其他文献中也叫:

  • 预测器方程
  • 转移方程
  • 预测方程
  • 动态模型
  • 状态方程模型

使用矩阵描述的状态外插方程的一般形式为:

x^n+1,n=Fx^n,n+Gun+wn
式中:
x^n+1,n n 时刻对 n+1 时刻系统状态的预测
x^n,n n 时刻系统状态向量的估计
un 控制向量输入向量 - 该系统的一个 可测量的(确定性的)输入
wn 过程噪声 或 扰动 - 能够影响系统状态的 不可测量的 输入
F 状态转移矩阵
G 控制矩阵输入转移矩阵 (将控制量映射到状态变量上)
注:本文中,状态转移矩阵 F 有时也用希腊字母 Φ 来表示。

下图给出了状态外插方程的原理描述。

Kalman Filter Extrapolation

状态变量可以表征我们所感兴趣的系统属性。

例如,运动中的车辆具有三个属性:位置、速度和加速度。

你也许会问,哪些属性是状态变量,哪些属性又是系统的输入呢?

  • 运动中的机械系统具有诸如位置、速度、加速度和阻力等属性。
  • 作用在系统上的力应该被视为外部输入,因为它会改变系统的状态(考虑前文匀加速示例中的位置和速度)。
  • 牛顿第二定律表明 F=ma,因此我们认为加速度是系统的输入。
  • 位置和速度则是我们主要关心的状态变量。

对于一个弹簧,施加在弹簧上的力 F(t) 是输入 u(t),弹簧形变 x(t) 是系统状态。

Spring System

对于一个自由落体中的物体,输入是重力 Fg 和阻力 Fdrag(t),物体高度 h(t) 和速度 v(t) 则是系统状态。

Falling Object
注:过程噪声不直接出现在上述方程中。他们的作用主要是用来描述协方差外插方程中的不确定性,而非用来计算状态转移。

来看看几个状态外插方程的例子:

示例 - 飞机 - 没有控制输入

本例中我们来定义一架匀加速运动的飞机的状态外插方程。

这个例子里没有输入,在下一个例子里会加入输入:

un=0

考虑一架在三维空间匀加速运动的飞机。用于在笛卡尔空间 (x,y,z) 描述飞机位置、速度和加速度的状态向量 x^n 为:

x^n=[x^ny^nz^nx˙^ny˙^nz˙^nx¨^ny¨^nz¨^n]

注:请不要混淆了状态向量的估计 x^n (粗体)和飞机位置 x 的估计 x^n (非粗体)。本教程中两个符号的字母都是x,仅是字体不同。

状态转移矩阵 F 为:

F=[100Δt000.5Δt2000100Δt000.5Δt2000100Δt000.5Δt2000100Δt000000100Δt000000100Δt000000100000000010000000001]

状态外插方程为:

x^n+1,n=Fx^n

[x^n+1,ny^n+1,nz^n+1,nx˙^n+1,ny˙^n+1,nz˙^n+1,nx¨^n+1,ny¨^n+1,nz¨^n+1,n]=[100Δt000.5Δt2000100Δt000.5Δt2000100Δt000.5Δt2000100Δt000000100Δt000000100Δt000000100000000010000000001][x^n,ny^n,nz^n,nx˙^n,ny˙^n,nz˙^n,nx¨^n,ny¨^n,nz¨^n,n]

矩阵乘法结果:

{x^n+1,n=x^n,n+x˙^n,nΔt+12x¨^n,nΔt2y^n+1,n=y^n,n+y˙^n,nΔt+12y¨^n,nΔt2z^n+1,n=z^n,n+z˙^n,nΔt+12z¨^n,nΔt2x˙^n+1,n=x˙^n,n+x¨^n,nΔty˙^n+1,n=y˙^n,n+y¨^n,nΔtz˙^n+1,n=z˙^n,n+z¨^n,nΔtx¨^n+1,n=x¨^n,ny¨^n+1,n=y¨^n,nz¨^n+1,n=z¨^n,n

示例 - 飞机 - 有控制输入

本例和上个示例类似,但现在飞行员的操纵杆上有一个传感器,可以通过它读取飞行员的加速度操纵指令。

用于在笛卡尔坐标系 (x,y,z) 里描述飞机位置和速度估计值的状态向量 x^n 为:

x^n=[x^ny^nz^nx˙^ny˙^nz˙^n]

在笛卡尔坐标系 (x,y,z) 里描述测量到的飞机加速度的控制向量 un 为:

un=[x¨ny¨nz¨n]

状态转移矩阵 F 为:

F=[100Δt000100Δt000100Δt000100000010000001]

控制矩阵 G 为:

G=[0.5Δt20000.5Δt20000.5Δt2Δt000Δt000Δt]

状态外插方程为:

x^n+1,n=Fx^n,n+Gun,n

[x^n+1,ny^n+1,nz^n+1,nx˙^n+1,ny˙^n+1,nz˙^n+1,n]=[100Δt000100Δt000100Δt000100000010000001][x^n,ny^n,nz^n,nx˙^n,ny˙^n,nz˙^n,n]+[0.5Δt20000.5Δt20000.5Δt2Δt000Δt000Δt][x¨ny¨nz¨n]

示例 – 自由落体

考虑一个自由落体中的物体,状态向量包括高度 h 和物体速度 h˙:

x^n=[h^nh˙^n]

状态转移矩阵 F 为:

F=[1Δt01]

控制矩阵 G 为:

G=[0.5Δt2Δt]

输入向量 un 为:

un=[g]

式中 g 是重力加速度。

我们并没有感知加速度的传感器,但我们根据定律知道对于自由落体的物体,其加速度等于 ( g \).

状态外插方程是下面这样:

[h^n+1,nh˙^n+1,n]=[1Δt01][h^n,nh˙^n,n]+[0.5Δt2Δt][g]

矩阵乘法结果是:

{h^n+1,n=h^n,n+h˙^n,nΔt+0.5Δt2gh˙^n+1,n=h˙^n,n+Δtg

状态外插方程的维度

下表明确了状态外插方程中各个量的维度:

描述 维度
x 状态向量 nx×1
F 状态转移矩阵 nx×nx
u 输入向量 nu×1
G 控制矩阵 nx×nu
w 过程噪声向量 nx×1

线性时不变系统

线性卡尔曼滤波假设系统模型是 LTI(线性时不变) 的。

那么什么是“线性”,什么又是“时不变”呢?

线性系统 的所有系统方程中,变量永远不会互相乘在一起,它们只会和常量相乘,然后加在一起。线性系统用来描述变量之间的静态和动态关系。

所谓线性系统,就是一个输出函数 F 满足下述方程的系统:

F(a×g(t)+b×h(t))=a×F(g(t))+b×F(h(t))

式中:

ab 是常值实数

gh 是任何具有独立变量 t 的函数

线性系统具有两个基本性质:

  1. 你可以把函数里变量前的常量系数(上面的 ab)“提”到函数外面来(齐次性)。
  2. 系统对一系列输入的和的响应等于系统对各自输入响应的和(叠加性)。

一个 时不变 系统的 系统函数 不直接包含(显含)时间。

考虑一个增益为 G=10 的放大器。

Amplifier

这个系统是时不变的,尽管系统的输出会随着时间改变,但是系统函数本身并不是随时间改变的。

一个时不变系统的输入如果发生了时延(或时移),它的输出也会发生同样的时延或时移。

上一章 下一章