主要内容

卡尔曼滤波器

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

  • 卡尔曼滤波块

库:
控制系统工具箱/状态估计
系统辨识工具箱/估计

描述

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

一个卡尔曼滤波器提供了连续或离散估计问题的最优解连续时间估计(系统辨识工具箱)离散时间估计(系统辨识工具箱)

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

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

  • 创建的过滤器卡尔曼命令输出[yhat; xhat]默认情况下。块输出只xhat默认情况下。

  • 卡尔曼命令可以同时输出PZ离散时间系统的协方差矩阵。块只能输出PZ这样的系统。

限制

  • 植物和噪声数据必须满足这些约束:

    • (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 )

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

港口

输入

全部展开

已知输入u (t)u [k]

依赖关系

要启用这个端口,选择添加输入端口u参数。这个参数在默认情况下是选中的。

测量输出y [n]更新估计状态。

n——- - - - - -n状态(或系统)的矩阵。

依赖关系

要启用这个端口,设置源模型参数输入端口

n——- - - - - -p输入矩阵。

依赖关系

要启用这个端口,设置源模型参数输入端口并选择添加输入端口u参数。

——- - - - - -p输出矩阵。

依赖关系

要启用这个端口,设置源模型参数输入端口

——- - - - - -p引线(或前馈)矩阵。在这种情况下,系统模型没有直接引线,D是零矩阵。

依赖关系

要启用这个端口,设置源模型参数输入端口并选择添加输入端口u参数。

噪声转换的状态空间方程。

依赖关系

要启用这个端口,选择使用G和H矩阵(默认G =我和H = 0)参数。

噪声转换的状态空间方程。

依赖关系

要启用这个端口,选择使用G和H矩阵(默认G =我和H = 0)参数。

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

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

  • 向量的非负标量。是一个西北——- - - - - -西北对角矩阵与向量的对角线上的元素

  • 西北——- - - - - -西北半正定矩阵。

依赖关系

要启用这个港口,请取消定常问参数。

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

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

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

  • 纽约——- - - - - -纽约正定矩阵。

依赖关系

要启用这个港口,请取消定常R参数。

过程和测量噪声cross-covariance矩阵,作为指定西北——- - - - - -纽约矩阵。矩阵[问N;NTR]必须正定。

依赖关系

要启用这个港口,请取消定常N参数。

P在最初的时间矩阵。

依赖关系

要启用这个端口,设置源模型参数输入端口并设置参数输入端口

在初始时间估计状态。

依赖关系

要启用这个端口,设置参数输入端口

这个端口控制测量更新和标量信号。

依赖关系

要启用这个端口,选择添加输入端口启用控制测量更新参数。

控制信号重置状态和参数估计协方差矩阵使用指定初始值。看到外部复位(系统辨识工具箱)更多信息在复位时触发。

依赖关系

要启用这个端口,设置外部复位paramter以外的任何值没有一个

输出

全部展开

线性系统的状态估计。

估计输出的线性系统。

依赖关系

要启用这个端口,选择输出估计模型输出y参数。

添加Z输出端口的块。

要启用这个端口,选择输出状态估计误差协方差Z参数。

依赖关系

要启用这个端口,设置时间域参数离散时间并选择使用当前测量y [n]改善xhat [n]参数。

添加P输出端口的块。

要启用这个端口,选择输出状态估计误差协方差P参数。

依赖关系

要启用这个端口,设置时间域参数连续时间或设置时间域参数离散时间和取消选择使用当前测量y [n]改善xhat [n]参数。

请注意

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

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

参数

全部展开

过滤器设置

  • 离散时间(默认)——块估计离散时间状态。

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

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

编程使用

块参数:TimeDomain
类型:字符串,特征向量
价值观:“离散”|“连续时间”
默认值:“离散”

使用当前的离散卡尔曼滤波器估计变体。这个参数未被选中时,延迟估计量(变种)。

这个参数时才可用时间域离散时间

编程使用

块参数:UseCurrentEstimator
类型:字符串,特征向量
价值观:“关闭”|“上”
默认值:“上”

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

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

依赖关系

这个参数时才可用时间域离散时间源模型个人A, B, C, D矩阵输入端口。当源模型LTI状态变量,阻止其样本时间LTI状态变量。

编程使用

块参数:Ts
类型:字符串,特征向量
价值观:“1”|标量
默认值:“1”

模型参数

系统模型
  • LTI状态变量——使用指定的模型变量。默认值是党卫军(0.95,1 1 0)。模型的样本时间必须匹配时间域参数;也就是说,必须离散时间模型时间域是离散的。

  • 个人A, B, C, D矩阵——指定一个,B,C,D块参数。

  • 输入端口——指定一个,B,C,D卡尔曼滤波器矩阵作为输入信号。如果您选择此选项,块包括额外的输入端口一个,B,C,D。您还必须指定许多州,输入数量,数量的输出块的参数。

编程使用

块参数:ModelSource
类型:字符串,特征向量
价值观:“LTI状态变量”|“个人A, B, C, D矩阵”|“输入端口”
默认值:“LTI状态变量”

指定一个矩阵。它必须是真实和广场。默认值是0.95

依赖关系

要启用这个端口,设置源模型参数个人A, B, C, D矩阵

编程使用

块参数:一个
类型:字符串,特征向量
价值观:“真正的矩阵”
默认值:“0.95”

指定B矩阵。必须真实,尽可能多的行一个矩阵。默认值是1

依赖关系

要启用这个端口,设置源模型参数个人A, B, C, D矩阵

编程使用

块参数:B
类型:字符串,特征向量
价值观:“真正的矩阵”
默认值:“1”

指定C矩阵。必须真实,尽可能多的列一个矩阵。默认值是1

依赖关系

要启用这个端口,设置源模型参数个人A, B, C, D矩阵

编程使用

块参数:C
类型:字符串,特征向量
价值观:“真正的矩阵”
默认值:“1”

指定D矩阵。必须真实,必须尽可能多的行C矩阵和尽可能多的列B矩阵。默认值是0

依赖关系

要启用这个端口,设置源模型参数个人A, B, C, D矩阵

编程使用

块参数:D
类型:字符串,特征向量
价值观:“真正的矩阵”
默认值:“0”

许多州估计,指定为一个正整数。默认值是1

依赖关系

要启用这个端口,设置源模型参数输入端口

编程使用

块参数:NumberOfStates
类型:字符串,特征向量
价值观:“1”|标量
默认值:“1”

已知的输入模型中,指定为一个正整数。默认值是1

依赖关系

要启用这个端口,设置源模型参数输入端口

编程使用

块参数:NumberOfInputs
类型:字符串,特征向量
价值观:“1”|标量
默认值:“1”

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

依赖关系

要启用这个端口,设置源模型参数输入端口

编程使用

块参数:NumberOfOutputs
类型:字符串,特征向量
价值观:“1”|标量
默认值:“1”
初步估计
  • 对话框——直接在对话框中指定值。

  • 输入端口——继承的值从输入端口。默认值是10。块包含一个额外的输入端口X0。另一个额外的输入端口P0当添加时变使用卡尔曼滤波器。X0P0必须满足的条件参数x[0]初始状态和状态估计误差协方差P[0],分别。

编程使用

块参数:InitialEstimateSource
类型:字符串,特征向量
价值观:“对话框”|“输入端口”
默认值:“对话框”

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

依赖关系

要启用这个端口,设置参数对话框

编程使用

块参数:X0
类型:字符串,特征向量
价值观:“0”|标量|向量
默认值:“0”

指定初始状态估计误差协方差P[0]离散卡尔曼滤波器或P为连续时间(0)。该参数必须指定为以下之一:

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

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

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

依赖关系

要启用这个端口,设置源模型参数输入端口参数对话框

编程使用

块参数:P0
类型:字符串,特征向量
价值观:“10”|标量|向量|矩阵
默认值:“10”
噪声特点

指定是否使用突变卡尔曼增益状态空间模型中指定的变量

依赖关系

要启用该参数,你必须符合以下条件:

  • 源模型被设置为LTI状态变量变量是一个识别(状态空间模型中的难点(系统辨识工具箱))和一个非零K矩阵。

  • 选择时不变问,时不变R,时不变N参数。

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

编程使用

块参数:UseK
类型:字符串,特征向量
价值观:“关闭”|“上”
默认值:“关闭”

默认情况下G =我H = 0。如果您选择此选项,您必须指定GH参数。

编程使用

块参数:UseGH
类型:字符串,特征向量
价值观:“关闭”|“上”
默认值:“关闭”

它必须是一个真正的矩阵和尽可能多的行一个矩阵。默认值是1

依赖关系

启用这个paramter,选择使用G和H矩阵(默认G =我和H = 0)参数。

编程使用

块参数:G
类型:字符串,特征向量
价值观:标量| |向量矩阵
默认值:“1”

如果你取消选择该选项,块包含一个额外的输入端口G

编程使用

块参数:TimeInvariantG
类型:字符串,特征向量
价值观:“关闭”|“上”
默认值:“上”

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

依赖关系

启用这个paramter,选择使用G和H矩阵(默认G =我和H = 0)参数。

编程使用

块参数:H
类型:字符串,特征向量
价值观:标量| |向量矩阵
默认值:“0”

如果你取消选择该选项,块包含一个额外的输入端口H

编程使用

块参数:TimeInvariantH
类型:字符串,特征向量
价值观:“关闭”|“上”
默认值:“上”

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

依赖关系

这个参数时才可用定常G定常H去掉的时候。否则,这些信息推断的GH矩阵。

编程使用

块参数:NumberOfProcessNoiseInputs
类型:字符串,特征向量
价值观:标量
默认值:“1”

指定为以下之一:

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

  • 向量的非负标量。是一个西北——- - - - - -西北对角矩阵与向量的对角线上的元素

  • 西北——- - - - - -西北半正定矩阵。

依赖关系

启用该参数,选择定常问参数。

编程使用

块参数:
类型:字符串,特征向量
价值观:标量| |向量矩阵
默认值:“0.05”

如果你取消这个参数,块包含一个额外的输入端口

编程使用

块参数:TimeInvariantQ
类型:字符串,特征向量
价值观:“关闭”|“上”
默认值:“上”

指定为以下之一:

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

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

  • 纽约——- - - - - -纽约正定矩阵。

依赖关系

启用该参数,选择定常R参数。

编程使用

块参数:R
类型:字符串,特征向量
价值观:标量| |向量矩阵
默认值:“1”

如果你取消这个参数,块包含一个额外的输入端口R

编程使用

块参数:TimeInvariantR
类型:字符串,特征向量
价值观:“关闭”|“上”
默认值:“上”

指定这个参数西北——- - - - - -纽约矩阵。矩阵[问N;NTR]必须正定。

依赖关系

启用该参数,选择定常N参数。

编程使用

块参数:N
类型:字符串,特征向量
价值观:标量| |向量矩阵
默认值:“0”

如果你取消这个参数,块包含一个额外的输入端口N

编程使用

块参数:TimeInvariantN
类型:字符串,特征向量
价值观:“关闭”|“上”
默认值:“上”

选项

额外的港口

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

编程使用

块参数:AddInputPort
类型:字符串,特征向量
价值观:“关闭”|“上”
默认值:“上”

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

默认情况下,块并测量更新在每个时间步提高状态估计和输出 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 ] 离散时间。

请注意

使启用端口允许控制测量更新。默认情况下,卡尔曼滤波器测量更新。

编程使用

块参数:AddEnablePort
类型:字符串,特征向量
价值观:“关闭”|“上”
默认值:“关闭”

这个参数可以帮助控制当块复位。假设你一次重置块一步,t。如果启用了块t指定的初始参数值,软件使用块对话框或输入端口P0X0估计美国。换句话说,t块执行一次更新,如果启用,测量更新后重置。这些更新估计块输出。

指定下列之一:

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

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

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

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

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

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

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

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

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

编程使用

块参数:ExternalReset
类型:字符串,特征向量
价值观:“没有”|“上升”|“下降”|“不是”|“水平”|“持有”
默认值:“没有”
额外的输出港

添加一个 y ^ 块输出估计模型输出端口输出。参数没有默认选中。

编程使用

块参数:OutputEstimatedY
类型:字符串,特征向量
价值观:“关闭”|“上”
默认值:“关闭”

添加一个Z输出端口的块。的Z矩阵只有当提供时间域离散时间使用当前测量y [n]改善xhat [n]参数被选中。否则,P矩阵,如所描述的算法(系统辨识工具箱)部分,提供。

这个参数没有默认选中。

编程使用

块参数:OutputZ
类型:字符串,特征向量
价值观:“关闭”|“上”
默认值:“关闭”

添加一个P输出端口的块。这个参数没有默认选中。

依赖关系

要启用这个端口,设置时间域参数连续时间或设置时间域参数离散时间和取消选择使用当前测量y [n]改善xhat [n]参数。

编程使用

块参数:OutputP
类型:字符串,特征向量
价值观:“关闭”|“上”
默认值:“关闭”

算法

全部展开

引用

[1]富兰克林,F基因。,J. David Powell, and Michael L. Workman.动态系统的数字控制。第二版。阅读,质量:addison - wesley, 1990。

[2]刘易斯,弗兰克·L。最优估计:介绍随机控制理论。纽约:威利,1986年。

扩展功能

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

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

版本历史

介绍了R2014b

全部展开