主要内容

卡尔曼滤波器

估计状态的离散或连续时间线性系统

描述

使用卡尔曼滤波器块来估计状态的非整数植物模型给定的过程和测量噪声协方差数据。可以时变状态空间模型。如果使用稳态卡尔曼滤波器实现和噪声协方差矩阵都是定常状态空间模型。否则使用时变卡尔曼滤波器。

卡尔曼滤波器提供了以下连续或离散估计问题的最优解:

连续时间估计

离散时间估计

卡尔曼滤波器块不同于卡尔曼命令在以下方面:

  • 当调用卡尔曼(sys,…),sys包括GH矩阵。具体地说,sys.B(B G)sys.D[D H]。当你提供一个LTI变量卡尔曼滤波器块,它不认为LTI变量包含提供GH。他们是可选的,独立的。

  • 卡尔曼命令输出[yhat; xhat]默认情况下。块只输出xhat默认情况下。

  • 卡尔曼滤波块

参数

下表总结了卡尔曼滤波块参数,通过块参数对话框。

任务 参数
指定过滤设置
指定系统模型

源模型模型参数选项卡

指定初始状态估计

模型参数选项卡

指定噪声特征

模型参数标签:

指定附加的港口

选项标签:

指定附加外港

选项标签:

时间域

指定是否要估计连续时间和离散时间状态:

  • 离散时间(默认的)- - -块估计离散时间状态

  • 连续时间——块估计连续时间状态

    卡尔曼滤波器块模型同步状态控制(参见国家控制(高密度脂蛋白编码器)块),你不能选择连续时间

使用当前测量y [n]改善xhat [n]

使用当前的离散卡尔曼滤波器估计变体。当不选择,延迟估计量(变种)。

只有当该选项可用时间域离散时间

源模型

指定如何A, B, C, D矩阵提供的块。必须是下列之一:

  • 对话框:LTI状态变量——使用LTI状态变量中指定的值。您还必须指定的变量名变量。模型的样本时间必须匹配的设置时间域选项,即模型必须离散时间时间域是离散的。

  • 对话框:个人的A, B, C, D矩阵——在接下来的块参数指定值:

    • 一个——指定一个矩阵。它必须是真实和广场。

    • B——指定B矩阵。必须是真实和尽可能多的行了一个矩阵。只有当该选项可用添加输入端口u被选中的选项选项卡。

    • C——指定C矩阵。必须真实,尽可能多的列矩阵。

    • D——指定D矩阵。它必须是真实的。它必须尽可能多的行C B矩阵和尽可能多的列矩阵。只有当该选项可用添加输入端口u被选中的选项选项卡。

  • 外部——指定A, B, C, D矩阵作为卡尔曼滤波器输入信号。如果您选择此选项,块包括额外的输入端口A, B, C和d .您还必须在块中指定以下参数:

    • 许多州——数量的状态估计,指定为一个正整数。默认值是2。

    • 输入数量已知的输入模型中,指定为一个正整数。默认值是2。这个选项只有当添加输入端口u被选中。

    • 数量的输出——测量输出的数量模型,指定为一个正整数。默认值是2。

样品时间

块样品时间,指定为1或积极的标量。

只有当该选项可用时间域离散时间源模型对话框:个人的A, B, C, D矩阵外部。样品时间从LTI获得状态变量如果模型源对话框:LTI状态变量

默认值为1,这意味着块继承采样时间内的基于块的背景下模型。所有块的输入端口必须具有相同的样本。

指定如何进入初始状态估计和初始状态估计误差协方差:

  • 对话框——直接在对话框中指定值。您还必须指定以下参数:

    • 初始状态x [0]——指定初始状态估计作为一个真正的标量或矢量。如果你指定一个标量,所有初始状态估计将这个标量。如果您指定一个向量,向量的长度必须匹配模型的状态数。

    • 状态估计误差协方差P [0](只有当时变使用卡尔曼滤波器)——指定初始状态估计误差协方差P[0]离散卡尔曼滤波器或P(0)连续时间卡尔曼滤波器。必须指定为以下之一:

      • 真正的负的标量。P是一个Ns-by-Ns对角矩阵对角线上的标量。Ns模型的状态数。

      • 向量的非负标量。P是一个Ns-by-Ns对角矩阵与向量的对角线上的元素P。

      • Ns-by-Ns半正定矩阵。

  • 外部——继承的值从输入端口。块包含一个额外的输入端口X0。另一个额外的输入端口P0时变卡尔曼滤波器使用时补充道。X0, P0必须满足相同条件下前面描述当你在对话框中指定它们。

使用卡尔曼增益K从模型变量

指定是否使用突变卡尔曼增益状态方程中包含植物模型。该选项只有当:

  • 源模型对话框:LTI状态变量变量是一个识别(状态空间模型中的难点(系统辨识工具箱)0 K矩阵)。

  • 时不变问,时不变R时不变N选项被选中。

如果使用G和H矩阵(默认G =我和H = 0)选项被选中时,时不变G时不变H必须选择的选项。

使用G和H矩阵(默认G =我和H = 0)

指定是否使用非默认值G和H矩阵。如果您选择此选项,您必须指定:

  • G——指定G矩阵。它必须是一个真正的矩阵与尽可能多的行一个矩阵。默认值是1。

  • 定常G——指定如果G矩阵是时不变。如果你取消选择该选项,G块包含一个额外的输入端口。

  • H——指定H矩阵。它必须是一个真正的矩阵和尽可能多的行C矩阵和尽可能多的列G矩阵。默认值是0。

  • 定常H——指定如果H矩阵是时不变。如果你取消选择该选项,G块包含一个额外的输入端口。

  • 过程噪声的输入——指定数量的过程噪声输入模型中。默认值是1。

    只有当该选项可用定常G定常H被清除。否则,这些信息推断出从G和H矩阵。

过程噪声协方差矩阵,指定为以下之一:

  • 真正的负的标量。问是一个Nw-by-Nw对角矩阵对角线上的标量。西北是过程噪声的数量输入模型中。

  • 向量的非负标量。问是一个Nw-by-Nw对角矩阵与向量的对角线上的元素。

  • Nw-by-Nw半正定矩阵。

时不变问

指定如果Q矩阵是时不变。如果你取消选择该选项,块包含一个额外的输入端口问。

R

测量噪声协方差矩阵,指定为以下之一:

  • 真正积极的标量。R是一个Ny-by-Ny对角矩阵对角线上的标量。纽约是测量输出的数量模型。

  • 向量的积极的标量。R是一个Ny-by-Ny对角矩阵与向量的对角线上的元素。

  • Ny-by-Ny正定矩阵。

时不变R

指定如果R矩阵时不变。如果你取消选择该选项,块包含一个额外的输入端口。

N

过程和测量噪声cross-covariance矩阵。指定它作为Nw-by-Ny矩阵。矩阵[问N;NTR]必须正定。

时不变N

指定如果N矩阵时不变。如果你取消选择该选项,块包含一个额外的输入端口N。

添加输入端口u

选择这个选项如果你的模型包含已知的输入u (t)u [k]。默认选中的选项。取消选择该选项删除输入端口u块和删除B,D输入数量参数块对话框。

添加输入端口启用控制测量更新

选择这个选项,如果你想控制测量更新。块包含一个额外的尺寸启用。的启用信号输入端口需要一个标量。这个选项是默认了。

默认情况下,块并测量更新在每个时间步提高状态估计和输出 x ^ y ^ 基于测量输出。测量更新跳过当前样本的时候启用端口的信号是0。具体地说,状态方程的估计 x ^ ˙ ( t ) = 一个 ( t ) x ^ ( t ) + B ( t ) u ( t ) 连续时间的卡尔曼滤波器 x ^ ( n + 1 | n ] = 一个 ( n ] x ^ ( n | n 1 ] + B ( n ] u ( n ] 离散时间。

外部复位

选择重置状态和参数估计协方差矩阵使用指定初始值。

假设你一次重置块一步,t。如果启用了块t指定的初始参数值,软件使用块对话框或输入端口P0和X0估计状态。换句话说,t块执行一次更新,如果启用,测量更新后重置。这些更新估计块输出。

指定下列之一:

  • 没有一个(默认),估计状态 x ^ 和状态估计误差协方差矩阵P值不重置。

  • 不断上升的——触发复位控制信号从一个消极的或零值一个积极的价值。如果初始值是负的,零触发复位。

  • 下降——触发时重置控制信号从一个积极的负数或零值。如果初始值是正数,跌至零触发复位。

  • 要么——触发复位控制信号时上升或下降。

  • 水平-触发复位在这两种情况下:

    • 控制信号非零在当前时间步。

    • 控制信号的变化从零之前的时间在当前时间一步一步为零。

  • 保持水平——触发控制信号时重置零当前时间步。

当你选择一个选项之外没有一个,一个重置输入端口添加到块提供复位控制输入信号。

输出估计模型输出y

添加 y ^ 块输出估计模型输出端口输出。选项是默认了。

输出状态估计误差协方差P或者Z

添加P输出端口或Z输出端口。只有当提供Z矩阵时间域离散时间使用当前测量y [n]改善xhat [n]被选中。否则,P矩阵,如所描述的描述节之前,。

选项是默认了。

港口

端口名称

端口类型

(进/出)

描述
u(可选) 已知输入、指定为一个真正的标量或矢量。
y 测量输出,指定为一个真正的标量或矢量。
xhat 估计状态,作为一个真正的返回标量或矢量。
yhat(可选) 估计输出,作为一个真正的返回标量或矢量。
P或Z(可选) 状态估计误差协方差,作为一个矩阵返回。
(可选) 一个矩阵,指定为一个真正的矩阵。
B(可选) B矩阵,指定为一个真正的矩阵。
C(可选) C矩阵,指定为一个真正的矩阵。
D(可选) D矩阵,指定为一个真正的矩阵。
G(可选) G矩阵,指定为一个真正的矩阵。
H(可选) H矩阵,指定为一个真正的矩阵。
问(可选) Q矩阵,指定为一个真正的标量、向量或矩阵。
R(可选) R矩阵,指定为一个真正的标量、向量或矩阵。
N(可选) N矩阵,指定为一个真正的矩阵。
P0(可选) P矩阵在初始时间,指定为一个真正的标量,矢量、矩阵。
X0(可选) 初始状态估计,指定为一个真正的标量或矢量。
使(可选) 控制信号,使测量更新,指定为一个真正的标量。
重置(可选) 控制信号复位状态估计,指定为一个真正的标量。

金宝app支持的数据类型

  • 双精度浮点

  • 单精度浮点数(仅为离散卡尔曼滤波器)

请注意

  • 所有输入端口,除了启用重置必须具有相同的数据类型(单引号或双)。

  • 启用重置端口支持金宝app,,int8,uint8,int16,uint16,int32,uint32布尔数据类型。

限制

  • 植物和噪声数据必须满足:

    • (C,一个)可检测

    • R ¯ > 0 ¯ N ¯ R ¯ 1 N ¯ T 0

    • ( 一个 N ¯ R ¯ 1 C , ¯ N ¯ R ¯ 1 N ¯ T ) 没有无法控制模式在虚轴(或单位圆在离散时间)与符号

      ¯ = G G T R ¯ = R + H N + N T H T + H H T N ¯ = G ( H T + N )

  • 函数调用的连续时间不能使用卡尔曼滤波器子系统或触发子系统。

兼容性的考虑

全部展开

行为改变R2021a

引用

[1]富兰克林,G.F.,J.D. Powell, and M.L. Workman,动态系统的数字控制第二版,addison - wesley, 1990年。

[2]刘易斯,F。,最优估计约翰•威利& Sons . n:行情),1986年。

扩展功能

C / c++代码生成
使用仿真软件生成C和c++代码®编码器™。金宝app

PLC的代码生成
使用仿真软件生成结构化文本代码®PLC编码器™。金宝app

介绍了R2014b