锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

Python卡尔曼数字滤波(线性二次估计)一维和多维传感器测量

时间:2022-09-20 22:00:00 各种常见的离散传感器

卡尔曼数字滤波器

对于统计和控制理论,卡尔曼滤波,也称为线性二次估计 (LQE),它使用一系列随时间观察到的测量值,包括统计噪声,包括统计噪声和其他不准确性,以及对未知变量的估计,通常通过估计每个时间范围内变量的联合概率分布结果更准确。

应用领域

卡尔曼滤波器有许多技术应用。 引导、导航和控制车辆,特别是动态定位的飞机、航天器和船舶,是一种常见的应用。此外,卡尔曼滤波器是信号处理和计量经济学等主题,广泛应用于时间序列分析的概念。 卡尔曼滤波器也是机器人运动规划和控制的主要课题之一,可用于轨迹优化。 卡尔曼滤波器也适用于模拟中枢神经系统对运动的控制。 卡尔曼滤波机命令和接收感官反馈之间的延迟,卡尔曼滤波器的使用为估计电机系统的当前状态和发出更新命令提供了现实模型。

算法特点

该算法在两个阶段工作。 对于预测阶段,卡尔曼滤波器产生当前状态变量的估计及其不确定性。 一旦观察到下一个测量结果(不可避免地会因一些错误而损坏,包括随机噪声),这些估计将使用加权平均值进行更新,并给予更大的权重,具有更大的确定性。 只需使用当前输入测量值、先前计算状态及其不确定性矩阵即可实时运行。

卡尔曼滤波传感器集成

一维测量

卡尔曼滤波器是一个离散系统,它允许我们通过自变量定义因变量,我们将解决自变量,以便在给定测量值(因变量)时,我们可以推断自变量的估计,假设噪声存在于我们的输入测量中,噪声也存在于世界建模的数学方程中,因为在非无菌世界中不可避免地存在无法解释的因素。为了确定这些值之间的关系,输入变量在,或矩阵,以确定这些值之间的关系。 每个维度中的每个变量都包含噪声,因此相关输入的引入将允许根据下一步的预测差、系统中未考虑的噪声和传感器输入的噪声进行加权平均值。

import numpy as np import pandas as pd import matplotlib.pyplot as plt import matplotlib.mlab as mlab import seaborn as sb from scipy import stats import time 

在此范围内绘制分布图

plt.figure(figsize=(fw,5)) plt.plot(x,mlab.normpdf(x, mean0, var0), label='Normal Distribution') plt.ylim(0, 0.1); plt.legend(loc='best'); plt.xlabel('Position'); 

预测移动距离

通过速度,平均值为米*dt 计算或计步器或车轮编码器。VarMove 通过静态测量估计或确定

plt.figure(figsize=(fw,5)) plt.plot(x,mlab.normpdf(x, meanMove, varMove), label='Normal Distribution') plt.ylim(0, 0.1;
plt.legend(loc='best');
plt.xlabel('Distance moved');

多维测量

状态矢量

Matplotlib绘制协方差矩阵

测量噪声协方差

算法预测步骤

源代码

详情参阅 - 亚图跨际

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章