主要内容

卡尔曼滤波器

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

描述

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

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

连续时间估计

离散时间估计

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

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

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

  • 卡尔曼滤波块

参数

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

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

源模型模型参数标签

指定初始状态估计

来源模型参数标签

指定噪声特性

模型参数选项卡:

指定其他Inports.

选项选项卡:

指定其他输出

选项选项卡:

时域

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

  • 离散时间违约)-块估计离散时间状态

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

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

使用电流测量值y[n]改善xhat[n]

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

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

源模型

指定如何将A、B、C、D矩阵提供给块。必须是以下之一:

  • 对话框:LTI状态空间变量-使用LTI状态空间变量中指定的值。还必须在中指定变量名称变量。模型的采样时间必须与中的设置相匹配时域选项,即如果时域是离散时间。

  • 对话框:单个A、B、C、D矩阵-在以下块参数中指定值:

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

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

    • C—指定C矩阵。它必须是实数并且和A矩阵一样多。

    • 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](仅在使用时变的卡尔曼滤波器时) - 为连续时间卡尔曼滤波器指定用于离散时间Kalman滤波器或P(0)的初始状态估计误差协方差P [0]。必须指定为以下之一:

      • 真正的非负标量。P是一个NS-BY-NS对角线矩阵,标量在对角线上。ns是模型中的状态数量。

      • 真正的非负标量向量。P是一个NS-BY-NS对角线矩阵,其中V的对角线上的矢量元素。

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

  • 外部—继承输入端口的值。该块包括一个额外的输入端口X0。采用时变卡尔曼滤波器时,增加了一个附加的输入端口P0。当您在对话框中指定X0和P0时,它们必须满足前面描述的相同条件。

利用模型变量的卡尔曼增益K

指定是否使用包含在状态空间植物模型中的预先识别的卡尔曼增益。此选项仅在以下情况下有效:

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

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

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

使用g和h矩阵(默认g = i和h = 0)

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

  • G- 指定G矩阵。它必须是一个具有与矩阵一样多行的真实矩阵。默认值为1。

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

  • H—指定H矩阵。它必须是一个实矩阵和C矩阵的行数和G矩阵的列数一样多。默认值为0。

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

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

    此选项仅在以下情况下可用:时不变G时不变H否则,该信息将从G或H矩阵推断。

处理噪声协方差矩阵,其中:

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

  • 实非负标量的向量。Q是Nw乘Nw的对角矩阵,向量的元素在Q的对角线上。

  • Nw乘Nw半正定矩阵。

时不变问

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

R

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

  • 实正标量。R是一个Ny乘Ny的对角矩阵,其标量位于对角线上。Ny是模型中测量输出的数量。

  • 实正标量的向量。R是一个ny × ny的对角线矩阵包含了向量在R对角线上的元素。

  • Ny-by-Ny正定矩阵。

时不变R

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

N

过程和测量噪声交叉协方差矩阵。将其指定为NW-BY-NY矩阵。矩阵[q n;NTR] 必须是正定的。

时不变N

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

添加输入端口U

如果模型包含已知输入,请选择此选项u(t)英国]这个option is selected by default. Unselecting this option removes the input portu从块中删除并删除BD输入数“块”对话框中的参数。

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

如果要控制测量更新,请选择此选项。该块包括一个额外的输入端口使能够这个使能够输入端口采用标量信号。默认情况下清除此选项。

默认情况下,块在每次步骤中进行测量更新,以提高状态和输出估计 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值不复位。

  • 不断上升的—当控制信号从负值或零值上升到正值时触发复位。如果初始值为负值,则上升到零将触发重置。

  • 下降—当控制信号从正值或零值下降到负值时触发复位。如果初始值是正的,则降至零将触发重置。

  • 任何一个—当控制信号上升或下降时触发复位。

  • 水平仪-在以下任一情况下触发重置:

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

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

  • 保持水平-当控制信号在当前时间步为非零时触发复位。

当您选择的选项不是没有一个,a重置输入端口被添加到块中,以提供复位控制输入信号。

输出估计模型输出y

添加 y 输出端口到块输出估计的模型输出。默认情况下,该选项被清除。

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

将P输出端口或Z输出端口添加到块中。Z矩阵仅在以下情况下提供:时间域离散时间使用电流测量值y[n]改善xhat[n]被选中。否则,p矩阵,如下所述描述前面提供了第节。

默认情况下,该选项被清除。

港口

端口名称

端口类型

(输入/输出)

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

万博1manbetx支持的数据类型

  • 双精度浮点

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

请注意

  • 所有输入端口,除使能够重置必须具有相同的数据类型(单或双)。

  • 使能够重置港口支持万博1manbetx单身的双倍的int8uint8.int16uint16int32UINT32,和布尔数据类型。

局限性

  • 设备和噪声数据必须满足:

    • 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.鲍威尔和M.L.沃克曼,动态系统的数字控制,第二版,艾迪生·韦斯利,1990年。

[2] 刘易斯,F。,最优估计, John Wiley & Sons, Inc, 1986。

扩展能力

C/C++代码生成
使用Simulink®Coder™生成C和C ++代码。万博1manbetx

PLC的代码生成
使用Simulink®PLC编码器生成结构化文本代码™.万博1manbetx

R2014b中引入