主要内容

dsp.KalmanFilter

(删除)使用卡尔曼滤波器估计系统测量和状态

dsp.KalmanFilter被移除。使用卡尔曼滤波器功能的传感器融合和跟踪工具箱™。

描述

dsp.KalmanFilter系统对象™是一个估计量用于递归线性最优滤波获得一个解决方案。这个估计不精确知识的动态系统。卡尔曼滤波器实现了线性离散时间过程与状态后,x,在kth时间步长: x ( k ) = 一个 x ( k 1 ) + B u ( k 1 ) + w ( k 1 ) (状态方程)。这个测量,z给药: z ( k ) = H x ( k ) + v ( k ) (测量方程)。

卡尔曼滤波算法递归计算以下两个步骤:

  • 预测:工艺参数x(状态)和P(状态误差协方差)估计使用之前的状态。

  • 更正:国家和使用目前的测量误差协方差修正。

过滤输入的每个通道:

  1. 创建dsp.KalmanFilter对象并设置其属性。

  2. 调用对象的参数,就好像它是一个函数。

了解更多关于系统对象是如何工作的,看到的系统对象是什么?

创建

描述

卡尔曼= dsp.KalmanFilter返回卡尔曼滤波器的系统对象,卡尔曼参数的默认值。

例子

卡尔曼= dsp.KalmanFilter (STMatrix,MMatrix,PNCovariance,MNCovariance,CIMatrix)返回一个卡尔曼滤波器系统对象,卡尔曼。的StateTransitionMatrix属性设置为STMatrix,MeasurementMatrix属性设置为MMatrix,ProcessNoiseCovariance属性设置为PNCovariance,MeasurementNoiseCovariance属性设置为MNCovariance,ControlInputMatrix属性设置为CIMatrix

卡尔曼= dsp.KalmanFilter (名称,值)返回一个卡尔曼滤波器系统对象,卡尔曼,每个属性设置为指定的值。在单引号附上每个属性的名字。未指定的属性有默认值。

属性

全部展开

属性,除非另有注明nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,释放函数打开它们。

如果一个属性可调在任何时候,你可以改变它的值。

改变属性值的更多信息,请参阅系统设计在MATLAB使用系统对象

指定一个在状态方程与状态之前的时间步的状态在当前时间步。一个是一个方阵,每个维度的状态数。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

指定B状态方程的控制输入状态有关。B是一个列向量的行数等于国家的数量。

依赖关系

此属性时,才激活ControlInputPort属性值是真正的

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

指定H测量方程,涉及美国的测量。H是一个行向量与列数相等数量的测量。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

指定一个方阵,每个维度的状态数。协方差的高斯白噪声过程,w状态方程。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

指定R一个方阵,每个维度的状态数。R协方差的高斯白噪声过程,v在测量方程。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

指定一个初始模型的状态估计与长度等于一个列向量的状态数。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

指定一个初始状态误差协方差的估计,一个方阵,每个维度的状态数。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

指定作为一个标量的逻辑值,禁用系统对象过滤器执行后的校正步骤一步预测卡尔曼滤波算法。

指定如果存在控制输入,使用标量的逻辑值。默认值是真正的

使用

描述

例子

(热情,x,MSE_Est,zPred,xPred,MSE_Pred)=卡尔曼(z,u)进行迭代卡尔曼滤波算法在测量z和控制输入u。列在zu被视为独立的并行输入过滤器,其校正(或更新)的步骤可以被禁用的吗DisableCorrection财产。返回的值估计测量热情状态估计,x均方误差的估计状态MSE_Est预测,测量zPred预测,国家xPred,MSE预测状态MSE_Pred

输入参数

全部展开

测量输入,指定为一个向量或矩阵。

的行数的比值的测量输入的行数MeasurementMatrix属性必须等于的行数的比率的控制输入的列数ControlInputMatrix财产。

可以适应输入测量信号。一旦对象被锁,你可以改变每个输入通道的大小,但是渠道的数量不能改变。

数据类型:|

控制输入,指定为一个向量或矩阵。

的行数的比率的控制输入的列数ControlInputMatrix属性必须等于的行数的比值的测量输入的行数MeasurementMatrix财产。

可以适应输入的控制信号。一旦对象被锁,你可以改变每个输入通道的大小,但是渠道的数量不能改变。

数据类型:|

输出参数

全部展开

估计测量,作为一个向量或矩阵返回。

数据类型:|

估计状态,作为一个向量或矩阵返回。

数据类型:|

均方误差估计,作为一个标量返回或列向量。如果输入是一个行向量,估计的均方误差是一个标量。

数据类型:|

预测测量值,返回向量或矩阵。

数据类型:|

预测,作为一个向量或矩阵返回。

数据类型:|

均方误差预测,作为一个标量或返回一个列向量。如果输入是一个行向量,估计的均方误差是一个标量。

数据类型:|

对象的功能

使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj使用这个语法:

发行版(obj)

全部展开

一步 运行系统对象算法
释放 释放资源,并允许修改系统对象属性值和输入特征
重置 重置的内部状态系统对象

例子

全部折叠

创建的系统对象改变标量输入、卡尔曼滤波器和范围(策划)。

numSamples = 4000;R = 0.02;src = dsp.SignalSource;src。的信号= [(numSamples / 4,1); 3 * 1 (numSamples / 4,1);4 * 1 (numSamples / 4,1);-0.5 * 1 (numSamples / 4,1)];tScope = timescope (“NumInputPorts”3,“TimeSpanSource”,“属性”,“时间间隔”numSamples,“TimeUnits”,“秒”,“YLimits”,5 [5],“ShowLegend”,真正的);%创建时间范围卡尔曼= dsp.KalmanFilter (“ProcessNoiseCovariance”,0.0001,“MeasurementNoiseCovariance”R“InitialStateEstimate”5,“InitialErrorCovarianceEstimate”,1“ControlInputPort”、假);%建立卡尔曼滤波器

标量添加噪声,并将结果传递给卡尔曼滤波器。流数据,并画出过滤信号。

(~结束(src)) trueVal = src ();noisyVal = trueVal + sqrt (R) * randn;estVal =卡尔曼(noisyVal);tScope (noisyVal trueVal estVal);结束

算法

这个对象实现算法、输入和输出的描述卡尔曼滤波器块引用页面。对象属性对应块的参数。

引用

格雷格•韦尔奇和加里主教[1]介绍了卡尔曼滤波、技术报告TR95 041。北卡罗莱纳大学教堂山分校:教堂山,数控。,1995年。

扩展功能

版本历史

介绍了R2013b

全部展开

另请参阅