美文网首页
Python学习-卡尔曼滤波

Python学习-卡尔曼滤波

作者: 火羽白panda | 来源:发表于2018-06-09 11:25 被阅读0次

        依旧是Python课程 _(:з」∠)_  期末需要完成小组作业,选题内容主要是用卡尔曼滤波来实现交通参数的预测。已有数据包括:历时7天的上下匝道线圈数据,匝道口上下游的数据。数据采集点及数据结构如下图所示。

数据结构 数据采集点

        预想通过上游NX39、匝道入口ZP=NI=01/02的历史和当前数据,以及NX40的历史时间序列数据,来预测下一时刻NX40处的交通参数:流量、密度、占有率。


卡尔曼滤波器算法(The Kalman Filter Algorithm)

        卡尔曼滤波的原版论文:《A New Approach to Linear Filtering andPrediction Problems》(线性滤波与预测问题的新方法)http://www.cs.unc.edu/~welch/kalman/media/pdf/Kalman1960.pdf

离散控制系统

X(k)=A X(k-1)+B U(k)+W(k)

X(k)是k时刻的系统状态,U(k)是k时刻对系统的控制量。A和B是系统参数,对于多模型系统,他们为矩阵。W(k)表示过程的噪声,假设成高斯白噪声(White Gaussian Noise),covariance 是Q(这里我们假设不随系统状态变化而变化)。

Z(k)=H X(k)+V(k)

Z(k)是k时刻的测量值,H是测量系统的参数,对于多测量系统,H为矩阵。V(k)表示测量的噪声,被假设成高斯白噪声(White Gaussian Noise),covariance是R(这里我们假设不随系统状态变化而变化)。

因此,对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。

公式概述

(1)X(k|k-1)=A X(k-1|k-1)+B U(k)

X(k|k-1)是利用上一状态预测的结果,X(k-1|k-1)是上一状态最优的结果,U(k)为现在状态的控制量,如果没有控制量,它可以为0。

(2)P(k|k-1)=A P(k-1|k-1) A’+Q

P(k|k-1)是X(k|k-1)对应的covariance,P(k-1|k-1)是X(k-1|k-1)对应的covariance,A’表示A的转置矩阵,Q是系统过程的covariance。

上述两个公式是对系统的预测。


(3)Kg(k)= P(k|k-1) H’ / (H P(k|k-1) H’ + R)

Kg为卡尔曼增益(Kalman Gain)

(4)X(k|k)= X(k|k-1)+Kg(k) (Z(k)-H X(k|k-1)) 

结合预测值和测量值,我们可以得到现在状态(k)的最优化估算值X(k|k)。

更新k状态下X(k|k)的covariance:

(5)P(k|k)=(I-Kg(k) H)P(k|k-1)

其中I为1的矩阵,对于单模型单测量,I=1。当系统进入k+1状态时,P(k|k)就是式子(2)的P(k-1|k-1)。


建立模型

根据项目背景,研究范围是上下匝道口之间的路段,我们知道交通流参数满足一定的函数关系:例速度和流量满足二次曲线关系。因此这个路段的V、S、O的当前值跟前一时刻的V、S、O不同,所以要设置系统参数A。这里的系统参数由回归模型的系数决定。

KFT 代码:https://github.com/xUhEngwAng/trafficPredict/tree/trafficPredict

相关文章

  • Python学习-卡尔曼滤波

    依旧是Python课程 _(:з」∠)_ 期末需要完成小组作业,选题内容主要是用卡尔曼滤波来实现交通参数的...

  • 卡尔曼滤波及其无人驾驶应用

    无人驾驶汽车系统感知模块的重要技术——卡尔曼滤波,应用包括:卡尔曼滤波与行人状态估计扩展卡尔曼滤波(EKF)与传感...

  • 轻松理解卡尔曼滤波

    此前学习和实现卡尔曼滤波花费了很多时间,其实想要理解其原理并不算很复杂。只是简单套用卡尔曼滤波的公式,而没有系统理...

  • 图文并茂,卡曼滤波

    ​卡尔曼滤波是如何工作? 看图说话! 我务必向大家介绍卡尔曼滤波器(Kalman Filter),因为它之所能, ...

  • 天赋与学习方法 - 笔记(三)

    在学习与编写过程中的一些体会。卡尔曼滤波 - 笔记(一)补充卡尔曼滤波 - 笔记(二) 多视角与刷题 在上面两篇笔...

  • 2019-01-06

    卡尔曼滤波视频学习记录 资源来源:Michel van Biezen SPECIAL TOPICS THE KAL...

  • iOS-卡尔曼滤波算法

    一:前言 滤波算法 用于过滤掉连续的数据中出现偏差较大的数据 二:卡尔曼滤波算法 <0>卡尔曼滤波的原理请自行百度...

  • 卡尔曼滤波

    把卡尔曼滤波写一下吧,思想很简单,不详细写了,就是根据方差实现的一种最优估计方法。 卡尔曼滤波五个基本的公式 1....

  • 卡尔曼滤波

    卡尔曼公式 先以状态协方差随时间的传播性,得到先验估计(时间更新),再利用测量值和最小二乘估计,得到后验估计(状态...

  • 卡尔曼滤波

    话不多说,我这里先给出我们的系统的模型方程,状态转移方程: 测量方程: 需要说明的是,这里的也可以是随变化的,但是...

网友评论

      本文标题:Python学习-卡尔曼滤波

      本文链接:https://www.haomeiwen.com/subject/egfteftx.html