卡尔曼滤波器

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

描述

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

卡尔曼滤波器提供最佳的解决方案与以下连续的或离散估计问题:

连续时间估计

离散时间估计

卡尔曼滤波器从该块的不同卡尔曼通过以下方式命令:

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

  • 卡尔曼命令输出[yhat; xhat]默认。该块仅输出xhat默认。

参数

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

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

模型源模型参数选项卡

指定初始状态估计

模型参数选项卡

指定噪声特征

模型参数标签:

指定其他inports

选项标签:

指定其他outports

选项标签:

时域

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

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

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

    当。。。的时候卡尔曼滤波器块处于具有同步状态控制的模型中(参见国家控制块),您无法选择连续时间

利用当前测量y[n]改进xhat[n]

使用离散时间卡尔曼滤波的电流估测变种。当不选择时,延迟估计器(变体)被使用。

此选项仅在以下情况下可用时域离散时间

模型源

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

  • 对话:LTI状态空间变量-使用LTI状态空间变量中指定的值。您还必须在变量。模型的采样时间必须与时域即模型必须是离散时间的,如果时域是离散的。

  • 对话框:单独的A, B, C, D矩阵-指定以下块参数中的值:

    • 一个- 指定的矩阵。它必须是真实的,正方形。

    • 指定B矩阵。它必须是实数并且和A矩阵有相同的行数。此选项仅在以下情况下可用添加输入端口ü在被选择选项标签。

    • C- 指定C矩阵。它必须是真实的,有尽可能多的列的矩阵。

    • d-指定D矩阵。必须是真的。它必须有和C矩阵一样多的行和和B矩阵一样多的列。此选项仅在以下情况下可用添加输入端口ü在被选择选项标签。

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

    • 许多州- 要被估计状态数,指定为一个正整数。默认值是2。

    • 输入数量-模型中已知输入的个数,指定为正整数。默认值是2。此选项仅在以下情况下可用添加输入端口ü被选中。

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

采样时间

块采样时间,指定为-1或正标量。

此选项仅在以下情况下可用时域离散时间模型源对话框:单独的A, B, C, D矩阵外部。如果模型源是采样时间从LTI状态空间变量获得对话:LTI状态空间变量

默认值是-1,这意味着该块继承基于所述模型内的块的上下文其采样时间。所有模块的输入端口必须具有相同的采样时间。

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

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

    • 初始状态x [0]- 指定初始状态估计作为一个真正的标量或矢量。如果指定了一个标量,所有的初始状态估计被设置为这个标。如果指定了向量,向量的长度必须与各国的模型数量相匹配。

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

      • 真正的负的标量。P是用在对角线上的标量的NS-通过-NS对角矩阵。NS是国家的模型数量。

      • 实非负标量的向量。P是用该载体对P的对角线元素的NS-通过-NS对角矩阵

      • NS-通过-NS半正定矩阵。

  • 外部- 继承输入端口的值。所述块包括附加的输入端口X0。随时间变化的卡尔曼滤波器时使用的第二个附加的输入端口P0被添加。X0和P0必须满足,当你在对话框中指定他们先前所描述的条件相同。

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

指定是否使用预先确定的卡尔曼增益包含在状态空间模型厂。此选项仅当:

  • 模型源对话:LTI状态空间变量变量是已识别的状态空间模型(IDSS)具有非零K矩阵。

  • 时间不变Q时间不变[R时间不变ñ选项被选中。

如果使用G和H矩阵(默认G = I和H = 0)选项被选中,时间不变g ^时间不变^ h选项也必须被选中。

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

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

  • G- 指定的G矩阵。它必须与尽可能多的行作为A矩阵实矩阵。默认值是1。

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

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

  • 定常H- 如果指定H矩阵是不随时间变化。如果取消选择此选项,该块包括一个额外的输入端口G.

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

    此选项仅在以下情况下可用定常G定常H被清除。否则,该信息由G或H矩阵推导。

Q

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

  • 真正的负的标量。Q是一个nw乘nw的对角矩阵,在对角线上有标量。Nw是模型中过程噪声输入的个数。

  • 实非负标量的向量。Q是一个nw×nw对角矩阵,其向量的元素在Q的对角线上。

  • nw乘nw正半定矩阵。

时间不变Q

指定Q矩阵是否是时不变的。如果取消选择此选项,则块包括一个额外的输入端口Q。

[R

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

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

  • 真正正的标量的矢量。R是用该载体对R的对角线元素的NY-通过-NY对角矩阵

  • NY-通过-NY正定矩阵。

时间不变[R

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

ñ

过程和测量噪声互协方差矩阵。将其指定为NW-通过-NY矩阵。矩阵[Q N;ñŤR]一定是正的。

时间不变ñ

说明N矩阵是否是时不变的。如果取消选择此选项,则块包括一个额外的输入端口N。

添加输入端口ü

如果您的模型包含已知的输入,请选择此选项u (t)U [k]的。该选项默认为选中。取消选择此选项删除输入端口ü,并删除d输入数量块对话框中的参数。

添加输入端口使能控制测量更新

如果你想控制测量更新选择此选项。所述块包括一个额外的运行轨迹启用。该启用输入端口采用标量信号。此选项默认为清除。

默认情况下,块确实测量更新在每个时间步骤,以提高状态和输出估计 X ^ ÿ ^ 基于测量的输出。当Enable端口中的信号为0时,将跳过当前采样时间的度量更新。具体地说,状态估计方程变成 X ^ ˙ Ť = 一个 Ť X ^ Ť + Ť ü Ť 用于连续时间卡尔曼滤波 X ^ [ ñ + 1 | ñ ] = 一个 [ ñ ] X ^ [ ñ | ñ 1 ] + [ ñ ] ü [ ñ ] 对于离散时间。

外部复位

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

假设你在一个时间步重置木块,Ť。如果块在Ť,软件使用或在块中任一对话框中指定的初始参数值的输入端口P0和X0以估计状态。换句话说,在Ť的块执行时间更新,如果被启用,则在复位后的测量更新。该块输出这些更新的估计。

指定下列之一:

  • 没有一个(默认)-估计状态 X ^ 和状态估计误差协方差矩阵P值不复位。

  • 升起- 触发器当控制信号从负值或零值为正值上升复位。如果初始值是负的,上升到零个触发复位。

  • 落下- 触发器当控制信号从正或零值到负的值落在复位。如果初始值是正的,下降到零触发复位。

  • 要么- 触发器当控制信号上升或下降的复位。

  • 水平-触发重置在任何情况下:

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

    • 控制信号从上一时刻的非零变为当前时刻的零。

  • 电平保持-触发器复位时,控制信号是非零在当前时间步长。

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

输出估计模型输出y

ÿ ^ 输出端口到块以输出所估计的模型输出。该选项默认为清除。

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

添加P输出端口或Z输出端口到块。Z矩阵仅当时域离散时间利用当前测量y[n]改进xhat[n]被选中。否则,P矩阵,在如所描述的描述提供了之前的部分。

该选项默认为清除。

港口

端口名称

端口类型

(进/出)

描述
u(可选) 已知的输入,指定为实标量或向量。
ÿ 测量的输出,指定为实数标量或向量。
xhat 退房 估计状态,以实标量或向量的形式返回。
yhat(可选) 退房 估计输出,以实标量或向量的形式返回。
P或Z(可选) 退房 状态估计误差协方差,以矩阵形式返回。
(可选) 的矩阵,指定为实矩阵。
B(可选) B矩阵,指定为实矩阵。
C(可选) Ç矩阵,指定为实矩阵。
d(可选) D矩阵,指定为实矩阵。
G(可选) G矩阵,指定为实矩阵。
H(可选) 矩阵H,指定为实矩阵。
Q(可选) Q矩阵,指定为实数标量,矢量或矩阵。
R(可选) R矩阵,指定为实数标量,矢量或矩阵。
N(可选) N矩阵,指定为实矩阵。
P0(可选) P矩阵在初始时间,指定为实数标量,矢量或矩阵。
X0(可选) 初始状态估计,指定为实标量或向量。
使(可选) 控制信号启用测量更新,指定为实标量。
重置(可选) 控制信号重置状态估计,指定为实标量。

金宝app支持的数据类型

  • 双精度浮点

  • 单精度浮点(离散时间卡尔曼滤波器只)

注意

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

  • 启用重置端口支持金宝appint8UINT8int16uint16int32UINT32和布尔数据类型。

限制

  • 厂房及噪音数据必须满足:

    • C一个)检测

    • [R ¯ > 0 Q ¯ ñ ¯ [R ¯ 1 ñ ¯ Ť 0

    • 一个 ñ ¯ [R ¯ 1 C Q ¯ ñ ¯ [R ¯ 1 ñ ¯ Ť 在虚轴(或离散时间的单位圆)上有没有不可控的模式

      Q ¯ = G Q G Ť [R ¯ = [R + H ñ + ñ Ť H Ť + H Q H Ť ñ ¯ = G Q H Ť + ñ

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

参考文献

[1]富兰克林,G.F.,J.D.鲍威尔,和M.L.工人,动态系统的数字控制,第二版,Addison-Wesley, 1990。

[2]刘易斯,F。,最优估计,John Wiley和Sons,公司,1986年。

扩展功能

C / c++代码生成
生成使用的Simulink编码器™C和C ++代码。金宝app

PLC代码生成
使用Simulink®PLC编码器™生成结构化文本代码。金宝app

介绍了R2014b