卡尔曼滤波器:如何定义模型的输入和输出

信息处理 卡尔曼滤波器 控制系统
2022-01-12 02:13:21

我是一名软件工程师,拥有 CS 学位,从事机器学习工作。我正在尝试了解卡尔曼滤波器。

在这个来自 Mathworks 的简短 YouTube 视频中,讨论了关于火箭的卡尔曼滤波器:

  • 我们想测量火箭发动机的内部温度Tin
  • 我们不能将温度传感器直接放在排气口内,因为它太热了。
  • 取而代之的是,我们在发动机排气管外部放置了一个外部温度传感器来测量Text
  • 我们知道我们使用了多少燃料:Wfuel

卡尔曼滤波器和火箭

视频说我们想要减少测量的外部温度和外部温度的估计值之间的误差。反过来,这将减少未观察到的温度与其估计值之间的误差。TextT^extTinT^in

我从事机器学习工作,所以我对这个系统的输入和输出感到困惑。我的具体问题是:

  1. Text是使用外部传感器对系统的输入。为什么它显示为该系统的输出?

  2. 我们试图预测推测它是的函数;如果测量了真实的外部温度 ,为什么这个系统甚至试图预测外部温度T^inWfuelTextT^in=f(Wfuel,Text)T^extText

  3. 如果我要使用机器学习来解决这个问题,我会实现一个回归模型来准确预测作为线性回归或神经网络模型的输入特征。为什么我们需要建立这个卡尔曼滤波器系统呢?T^in=f(Wfuel,Text)WfuelText

谢谢你的帮助。

1个回答

卡尔曼滤波器基本上是一个融合两件事的框架:

  1. 测量。
  2. 动态模型(在我们可以从当前值预测下一个值的意义上说是动态的)。

在您的情况下,模型由两部分组成:

  1. 连接到模型。TextWfuelTin
  2. 的测量Text

现在,您估计的原因是因为没有传感器是完美的。传感器的模型是也就是说,我们得到了一个增加了噪声的测量值。TextText[k]=Textgt[k]+v[k]

视频模型中缺少的是实际模型。我在传热领域没有经验,但我们假设模型类似于:

Tin[k]=Tin[k1]+αw[k1]

和:

Text[k]=βTin[k]

然后你可以建立卡尔曼滤波器的模型,它将融合关于Tin从涉及到的模型Tout以及给出的模型Tin上一次迭代的下一次应该如何。

关于您在机器学习方面的经验。
卡尔曼滤波器假设贝叶斯模型。因此它不是参数化的。
你可以估计Tin从测量TextW但是你会错过你得到的先验:动态模型。