卡尔曼滤波器
估计状态的离散或连续时间线性系统
库:
控制系统工具箱/状态估计
系统辨识工具箱/估计
描述
使用卡尔曼滤波器块来估计状态的非整数植物模型给定的过程和测量噪声协方差数据。可以时变状态空间模型。如果使用稳态卡尔曼滤波器实现和噪声协方差矩阵都是定常的,状态空间模型和时变否则使用卡尔曼滤波器。
一个卡尔曼滤波器提供了连续或离散估计问题的最优解连续时间估计(系统辨识工具箱)和离散时间估计(系统辨识工具箱)。
的卡尔曼滤波器块不同于卡尔曼
命令在以下方面:
当你打电话
卡尔曼(sys,…)
,它假设sys
包括G
和H
矩阵。具体地说,sys.B
的形式(B G)
和sys.D
的形式[D H]
。当你提供一个LTI变量卡尔曼滤波器块,它不认为LTI变量包含提供G
和H
。他们是可选的,独立的。创建的过滤器
卡尔曼
命令输出[yhat; xhat]
默认情况下。块输出只xhat
默认情况下。的
卡尔曼
命令可以同时输出P
和Z
离散时间系统的协方差矩阵。块只能输出P
或Z
这样的系统。
限制
植物和噪声数据必须满足这些约束:
(C,一个)检测。
和 。
没有无法控制模式在虚轴(或单位圆在离散时间),在哪里
函数调用的连续时间不能使用卡尔曼滤波器子系统或触发子系统。
港口
输入
u- - - - - -已知输入
标量|向量
已知输入u (t)
或u [k]
。
依赖关系
要启用这个端口,选择添加输入端口u参数。这个参数在默认情况下是选中的。
y- - - - - -测量输出
标量|向量
测量输出y [n]
更新估计状态。
一个- - - - - -状态矩阵
真正的矩阵
n——- - - - - -n状态(或系统)的矩阵。
依赖关系
要启用这个端口,设置源模型参数输入端口。
B- - - - - -输入矩阵
真正的矩阵
n——- - - - - -p输入矩阵。
依赖关系
要启用这个端口,设置源模型参数输入端口并选择添加输入端口u参数。
C- - - - - -输出矩阵
真正的矩阵
问——- - - - - -p输出矩阵。
依赖关系
要启用这个端口,设置源模型参数输入端口。
D- - - - - -直通的矩阵
真正的矩阵
问——- - - - - -p引线(或前馈)矩阵。在这种情况下,系统模型没有直接引线,D是零矩阵。
依赖关系
要启用这个端口,设置源模型参数输入端口并选择添加输入端口u参数。
G- - - - - -测量输出
真正的矩阵
噪声转换的状态空间方程。
依赖关系
要启用这个端口,选择使用G和H矩阵(默认G =我和H = 0)参数。
H- - - - - -测量输出
真正的矩阵
噪声转换的状态空间方程。
依赖关系
要启用这个端口,选择使用G和H矩阵(默认G =我和H = 0)参数。
问- - - - - -过程噪声协方差矩阵
标量| |向量矩阵
过程噪声协方差矩阵,指定为以下之一:
真正的负的标量。问是一个西北——- - - - - -西北对角矩阵对角线上的标量。西北是过程噪声的数量输入模型中。
向量的非负标量。问是一个西北——- - - - - -西北对角矩阵与向量的对角线上的元素问。
西北——- - - - - -西北半正定矩阵。
依赖关系
要启用这个港口,请取消定常问参数。
R- - - - - -测量噪声协方差矩阵
标量| |向量矩阵
测量噪声协方差矩阵,指定为以下之一:
真正积极的标量。R是一个纽约——- - - - - -纽约对角矩阵对角线上的标量。纽约在模型中是测量输出的数量。
向量的积极的标量。R是一个纽约——- - - - - -纽约对角矩阵与向量的对角线上的元素R。
纽约——- - - - - -纽约正定矩阵。
依赖关系
要启用这个港口,请取消定常R参数。
N- - - - - -过程和测量噪声cross-covariance矩阵
标量| |向量矩阵
过程和测量噪声cross-covariance矩阵,作为指定西北——- - - - - -纽约矩阵。矩阵[问N;NTR]必须正定。
依赖关系
要启用这个港口,请取消定常N参数。
P0- - - - - -初始状态估计误差协方差
标量| |向量矩阵
P在最初的时间矩阵。
依赖关系
要启用这个端口,设置源模型参数输入端口并设置源参数输入端口。
X0- - - - - -初始状态估计
标量|向量
在初始时间估计状态。
依赖关系
要启用这个端口,设置源参数输入端口。
启用- - - - - -控制信号,使测量更新
标量
这个端口控制测量更新和标量信号。
依赖关系
要启用这个端口,选择添加输入端口启用控制测量更新参数。
重置- - - - - -控制信号复位状态估计
标量
输出
xhat- - - - - -估计状态
标量|向量
线性系统的状态估计。
yhat- - - - - -估计输出
标量|向量
估计输出的线性系统。
依赖关系
要启用这个端口,选择输出估计模型输出y参数。
Z- - - - - -状态估计误差协方差
矩阵
添加Z输出端口的块。
要启用这个端口,选择输出状态估计误差协方差Z参数。
依赖关系
要启用这个端口,设置时间域参数离散时间并选择使用当前测量y [n]改善xhat [n]参数。
P- - - - - -状态估计误差协方差
矩阵
添加P输出端口的块。
要启用这个端口,选择输出状态估计误差协方差P参数。
依赖关系
要启用这个端口,设置时间域参数连续时间或设置时间域参数离散时间和取消选择使用当前测量y [n]改善xhat [n]参数。
请注意
所有输入端口,除了启用和重置必须具有相同的数据类型(单引号或双)。
启用和重置端口支持金宝app
单
,双
,int8
,uint8
,int16
,uint16
,int32
,uint32
布尔数据类型。
参数
过滤器设置
时间域- - - - - -指定是否要估计连续时间和离散时间状态
离散时间
(默认)|连续时间
离散时间
(默认)——块估计离散时间状态。连续时间
——块估计连续时间状态。当卡尔曼滤波器块模型同步状态控制(参见国家控制(高密度脂蛋白编码器)块),你不能选择连续时间。
编程使用
块参数:TimeDomain |
类型:字符串,特征向量 |
价值观:“离散” |“连续时间” |
默认值:“离散” |
使用当前测量y [n]改善xhat [n]- - - - - -更新输出状态估计使用测量输出
在
(默认)|从
使用当前的离散卡尔曼滤波器估计变体。这个参数未被选中时,延迟估计量(变种)。
这个参数时才可用时间域是离散时间。
编程使用
块参数:UseCurrentEstimator |
类型:字符串,特征向量 |
价值观:“关闭” |“上” |
默认值:“上” |
样品时间- - - - - -块样品时间
1
(默认)|非负的标量
块样品时间,指定为1
或积极的标量。
默认值是1
,这意味着块继承采样时间内的基于块的背景下模型。所有块的输入端口必须具有相同的样本。
依赖关系
这个参数时才可用时间域是离散时间和源模型是个人A, B, C, D矩阵或输入端口。当源模型是LTI状态变量,阻止其样本时间LTI状态变量。
编程使用
块参数:Ts |
类型:字符串,特征向量 |
价值观:“1” |标量 |
默认值:“1” |
模型参数
系统模型源模型- - - - - -指定如何A, B, C, D矩阵提供的块
LTI状态变量
(默认)|个人A, B, C, D矩阵
|输入端口
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
(默认)
指定一个矩阵。它必须是真实和广场。默认值是0.95
。
依赖关系
要启用这个端口,设置源模型参数个人A, B, C, D矩阵。
编程使用
块参数:一个 |
类型:字符串,特征向量 |
价值观:“真正的矩阵” |
默认值:“0.95” |
B- - - - - -输入矩阵
1
(默认)
指定B矩阵。必须真实,尽可能多的行一个矩阵。默认值是1
。
依赖关系
要启用这个端口,设置源模型参数个人A, B, C, D矩阵。
编程使用
块参数:B |
类型:字符串,特征向量 |
价值观:“真正的矩阵” |
默认值:“1” |
C- - - - - -输出矩阵
1
(默认)
指定C矩阵。必须真实,尽可能多的列一个矩阵。默认值是1
。
依赖关系
要启用这个端口,设置源模型参数个人A, B, C, D矩阵。
编程使用
块参数:C |
类型:字符串,特征向量 |
价值观:“真正的矩阵” |
默认值:“1” |
D- - - - - -直通的矩阵
0
(默认)
指定D矩阵。必须真实,必须尽可能多的行C矩阵和尽可能多的列B矩阵。默认值是0
。
依赖关系
要启用这个端口,设置源模型参数个人A, B, C, D矩阵。
编程使用
块参数:D |
类型:字符串,特征向量 |
价值观:“真正的矩阵” |
默认值:“0” |
许多州- - - - - -估计的状态数
1
(默认)|非负的标量
许多州估计,指定为一个正整数。默认值是1
。
依赖关系
要启用这个端口,设置源模型参数输入端口。
编程使用
块参数:NumberOfStates |
类型:字符串,特征向量 |
价值观:“1” |标量 |
默认值:“1” |
输入数量- - - - - -已知的输入
1
(默认)|非负的标量
已知的输入模型中,指定为一个正整数。默认值是1
。
依赖关系
要启用这个端口,设置源模型参数输入端口。
编程使用
块参数:NumberOfInputs |
类型:字符串,特征向量 |
价值观:“1” |标量 |
默认值:“1” |
数量的输出- - - - - -数量的测量输出
1
(默认)|非负的标量
测量输出的数字模型,指定为一个正整数。默认值是1
。
依赖关系
要启用这个端口,设置源模型参数输入端口。
编程使用
块参数:NumberOfOutputs |
类型:字符串,特征向量 |
价值观:“1” |标量 |
默认值:“1” |
源- - - - - -指定如何进入初始状态估计和初始状态估计误差协方差
对话框
(默认)|输入端口
对话框
——直接在对话框中指定值。输入端口
——继承的值从输入端口。默认值是10
。块包含一个额外的输入端口X0。另一个额外的输入端口P0当添加时变使用卡尔曼滤波器。X0和P0必须满足的条件参数x[0]初始状态和状态估计误差协方差P[0],分别。
编程使用
块参数:InitialEstimateSource |
类型:字符串,特征向量 |
价值观:“对话框” |“输入端口” |
默认值:“对话框” |
初始状态x [0]- - - - - -指定初始状态估计
0
(默认)|标量
|向量
指定初始状态估计作为一个真正的标量或矢量。如果你指定一个标量,所有初始状态估计将这个标量。如果您指定一个向量,向量的长度必须匹配模型的状态数。默认值是0
。
依赖关系
要启用这个端口,设置源参数对话框。
编程使用
块参数:X0 |
类型:字符串,特征向量 |
价值观:“0” |标量 |向量 |
默认值:“0” |
状态估计误差协方差P [0]- - - - - -指定初始状态估计误差协方差
10
(默认)|标量
|向量
|矩阵
指定初始状态估计误差协方差P[0]离散卡尔曼滤波器或P为连续时间(0)。该参数必须指定为以下之一:
真正的负的标量。P是一个Ns——- - - - - -Ns对角矩阵对角线上的标量。Ns在模型的状态数。
向量的非负标量。P是一个Ns——- - - - - -Ns对角矩阵与向量的对角线上的元素P。
Ns——- - - - - -Ns半正定矩阵。
依赖关系
要启用这个端口,设置源模型参数输入端口和源参数对话框。
编程使用
块参数:P0 |
类型:字符串,特征向量 |
价值观:“10” |标量 |向量 |矩阵 |
默认值:“10” |
使用卡尔曼增益K从模型变量- - - - - -指定是否使用突变模型卡尔曼增益状态方程中包含的工厂
从
(默认)|在
指定是否使用突变卡尔曼增益状态空间模型中指定的变量。
依赖关系
要启用该参数,你必须符合以下条件:
的源模型被设置为LTI状态变量和变量是一个识别(状态空间模型
中的难点
(系统辨识工具箱))和一个非零K矩阵。选择时不变问,时不变R,时不变N参数。
如果使用G和H矩阵(默认G =我和H = 0)参数被选中时,时不变G和时不变H参数也必须选择。
编程使用
块参数:UseK |
类型:字符串,特征向量 |
价值观:“关闭” |“上” |
默认值:“关闭” |
使用G和H矩阵(默认G =我和H = 0)- - - - - -指定是否使用非默认值G和H矩阵
从
(默认)|在
默认情况下G =我
和H = 0
。如果您选择此选项,您必须指定G和H参数。
编程使用
块参数:UseGH |
类型:字符串,特征向量 |
价值观:“关闭” |“上” |
默认值:“关闭” |
G- - - - - -指定G矩阵
1
(默认)|非负的标量
|向量
|矩阵
它必须是一个真正的矩阵和尽可能多的行一个矩阵。默认值是1
。
依赖关系
启用这个paramter,选择使用G和H矩阵(默认G =我和H = 0)参数。
编程使用
块参数:G |
类型:字符串,特征向量 |
价值观:标量| |向量矩阵 |
默认值:“1” |
定常G- - - - - -指定G矩阵是时不变
在
(默认)|从
如果你取消选择该选项,块包含一个额外的输入端口G。
编程使用
块参数:TimeInvariantG |
类型:字符串,特征向量 |
价值观:“关闭” |“上” |
默认值:“上” |
H- - - - - -指定H矩阵
0
(默认)|非负的标量
|向量
|矩阵
它必须是一个真正的矩阵和尽可能多的行C矩阵和尽可能多的列G矩阵。默认值是0
。
依赖关系
启用这个paramter,选择使用G和H矩阵(默认G =我和H = 0)参数。
编程使用
块参数:H |
类型:字符串,特征向量 |
价值观:标量| |向量矩阵 |
默认值:“0” |
定常H- - - - - -指定H矩阵是时不变
在
(默认)|从
如果你取消选择该选项,块包含一个额外的输入端口H。
编程使用
块参数:TimeInvariantH |
类型:字符串,特征向量 |
价值观:“关闭” |“上” |
默认值:“上” |
过程噪声的输入- - - - - -过程噪声的输入
1
(默认)|非负的标量
指定过程噪声模型中输入的数量。默认值是1
。
依赖关系
这个参数时才可用定常G和定常H去掉的时候。否则,这些信息推断的G或H矩阵。
编程使用
块参数:NumberOfProcessNoiseInputs |
类型:字符串,特征向量 |
价值观:标量 |
默认值:“1” |
问- - - - - -过程噪声协方差矩阵
0.05
(默认)|非负的标量
|向量
|矩阵
指定为以下之一:
真正的负的标量。问是一个西北——- - - - - -西北对角矩阵对角线上的标量。西北是过程噪声的数量输入模型中。
向量的非负标量。问是一个西北——- - - - - -西北对角矩阵与向量的对角线上的元素问。
西北——- - - - - -西北半正定矩阵。
依赖关系
启用该参数,选择定常问参数。
编程使用
块参数:问 |
类型:字符串,特征向量 |
价值观:标量| |向量矩阵 |
默认值:“0.05” |
定常问- - - - - -指定如果Q矩阵是时不变
在
(默认)|从
如果你取消这个参数,块包含一个额外的输入端口问。
编程使用
块参数:TimeInvariantQ |
类型:字符串,特征向量 |
价值观:“关闭” |“上” |
默认值:“上” |
R- - - - - -测量噪声协方差矩阵
1
(默认)|非负的标量
|向量
|矩阵
指定为以下之一:
真正积极的标量。R是一个纽约——- - - - - -纽约对角矩阵对角线上的标量。纽约在模型中是测量输出的数量。
向量的积极的标量。R是一个纽约——- - - - - -纽约对角矩阵与向量的对角线上的元素R。
纽约——- - - - - -纽约正定矩阵。
依赖关系
启用该参数,选择定常R参数。
编程使用
块参数:R |
类型:字符串,特征向量 |
价值观:标量| |向量矩阵 |
默认值:“1” |
定常R- - - - - -指定如果R矩阵是时不变
在
(默认)|从
如果你取消这个参数,块包含一个额外的输入端口R。
编程使用
块参数:TimeInvariantR |
类型:字符串,特征向量 |
价值观:“关闭” |“上” |
默认值:“上” |
N- - - - - -过程和测量噪声cross-covariance矩阵
0
(默认)|非负的标量
|向量
|矩阵
指定这个参数西北——- - - - - -纽约矩阵。矩阵[问N;NTR]必须正定。
依赖关系
启用该参数,选择定常N参数。
编程使用
块参数:N |
类型:字符串,特征向量 |
价值观:标量| |向量矩阵 |
默认值:“0” |
定常N- - - - - -指定如果N矩阵时不变
在
(默认)|从
如果你取消这个参数,块包含一个额外的输入端口N。
编程使用
块参数:TimeInvariantN |
类型:字符串,特征向量 |
价值观:“关闭” |“上” |
默认值:“上” |
选项
额外的港口添加输入端口u- - - - - -如果模型包含已知输入指定
在
(默认)|从
选择这个选项如果你的模型包含已知的输入u (t)
或u [k]
。默认的参数选择。取消勾选此参数删除输入端口u块和删除B,D和输入数量参数块对话框。
编程使用
块参数:AddInputPort |
类型:字符串,特征向量 |
价值观:“关闭” |“上” |
默认值:“上” |
添加输入端口启用控制测量更新- - - - - -控制测量更新
从
(默认)|在
选择这个选项,如果你想控制测量更新。块包含一个额外的尺寸启用。的启用信号输入端口需要一个标量。这个参数没有默认选中。
默认情况下,块并测量更新在每个时间步提高状态估计和输出
和
基于测量输出。测量更新跳过当前样本信号的时候启用端口是0
。具体地说,状态方程的估计
连续时间的卡尔曼滤波器
离散时间。
请注意
使启用端口允许控制测量更新。默认情况下,卡尔曼滤波器测量更新。
编程使用
块参数:AddEnablePort |
类型:字符串,特征向量 |
价值观:“关闭” |“上” |
默认值:“关闭” |
外部复位- - - - - -选择重置状态和参数估计协方差矩阵使用指定初始值
没有一个
(默认)|不断上升的
|下降
|要么
|水平
|保持水平
这个参数可以帮助控制当块复位。假设你一次重置块一步,t
。如果启用了块t
指定的初始参数值,软件使用块对话框或输入端口P0和X0估计美国。换句话说,t
块执行一次更新,如果启用,测量更新后重置。这些更新估计块输出。
指定下列之一:
没有一个
(默认),估计状态 和状态估计误差协方差矩阵P值不重置。不断上升的
——触发复位控制信号从一个消极的或零值一个积极的价值。如果初始值是负的,零触发复位。下降
——触发时重置控制信号从一个积极的负数或零值。如果初始值是正数,跌至零触发复位。要么
——触发复位控制信号时上升或下降。水平
-触发复位在这两种情况下:控制信号非零在当前时间步。
控制信号的变化从零之前的时间在当前时间一步一步为零。
保持水平
——触发控制信号时重置零当前时间步。
当你选择一个选项之外没有一个
,一个重置输入端口添加到块提供复位控制输入信号。
编程使用
块参数:ExternalReset |
类型:字符串,特征向量 |
价值观:“没有” |“上升” |“下降” |“不是” |“水平” |“持有” |
默认值:“没有” |
输出估计模型输出y- - - - - -包括估计模型输出
从
(默认)|在
添加一个 块输出估计模型输出端口输出。参数没有默认选中。
编程使用
块参数:OutputEstimatedY |
类型:字符串,特征向量 |
价值观:“关闭” |“上” |
默认值:“关闭” |
输出状态估计误差协方差Z- - - - - -Z输出端口添加到块中
从
(默认)|在
添加一个Z输出端口的块。的Z矩阵只有当提供时间域是离散时间和使用当前测量y [n]改善xhat [n]参数被选中。否则,P矩阵,如所描述的算法(系统辨识工具箱)部分,提供。
这个参数没有默认选中。
编程使用
块参数:OutputZ |
类型:字符串,特征向量 |
价值观:“关闭” |“上” |
默认值:“关闭” |
输出状态估计误差协方差P- - - - - -添加P输出端口
从
(默认)|在
添加一个P输出端口的块。这个参数没有默认选中。
依赖关系
要启用这个端口,设置时间域参数连续时间或设置时间域参数离散时间和取消选择使用当前测量y [n]改善xhat [n]参数。
编程使用
块参数:OutputP |
类型:字符串,特征向量 |
价值观:“关闭” |“上” |
默认值:“关闭” |
算法
连续时间估计
考虑到连续的植物
与已知的输入u、白噪声过程w,测量白噪声v令人满意的
构造一个状态估计 状态估计误差协方差最小化 。
最优解的卡尔曼滤波方程
在哪里
卡尔曼滤波器使用已知输入u和测量y生成状态估计 。如果你想要,块也可以输出真正的工厂产出的估计 。
块实现稳态卡尔曼滤波器当系统矩阵((t)
,B (t)
,C (t)
,D (t)
,G (t)
,H (t)
)和噪声协方差矩阵(问(t)
,R (t)
,N (t)
)是常数(块参数对话框中指定)。稳态卡尔曼滤波器使用一个常数矩阵P
最小稳态估计误差协方差和解决相关的连续时间代数黎卡提微分方程:
离散时间估计
考虑到离散的植物
与已知的输入u、白噪声过程w,测量白噪声v令人满意的
估计下面的状态方程
在哪里获得L [n]
通过计算离散黎卡提微分方程:
我是合适的大小和单位矩阵
稳态卡尔曼滤波器使用一个常数矩阵P
最小稳态估计误差协方差和解决相关的离散代数黎卡提微分方程。
离散卡尔曼滤波器有两种变体:
当前估计生成状态估计 使用所有可用的测量,包括y(n]。过滤器更新 与y(n和输出:
延迟估计生成状态估计 利用测量到y(n1]。滤波器输出 之前的定义,以及可选的输出
目前估计有更好的估计精度比延迟估计量,这是重要的样品时间慢。然而,它有一个更高的计算成本,所以实施内部控制回路是困难。更具体地说,它直接引线导致一个代数循环如果卡尔曼滤波器用于反馈回路,不包含任何延误(反馈回路本身也有直接引线)。这个代数循环会影响仿真的速度,不能生成代码,如果你的模型包含代数循环。
引用
[1]富兰克林,F基因。,J. David Powell, and Michael L. Workman.动态系统的数字控制。第二版。阅读,质量:addison - wesley, 1990。
[2]刘易斯,弗兰克·L。最优估计:介绍随机控制理论。纽约:威利,1986年。
扩展功能
C / c++代码生成
使用仿真软件生成C和c++代码®编码器™。金宝app
PLC的代码生成
使用仿真软件生成结构化文本代码®PLC编码器™。金宝app
版本历史
介绍了R2014bR2021a:卡尔曼滤波块:数值变化
从2021年开始,数值在使用的算法改进卡尔曼滤波器阻止可能产生的结果,是不同的你得到的结果使用以前的版本。
第一MATLAB
海脂肪clic苏联合国collegamento切corrisponde questo第一MATLAB:
Esegui il第一inserendolo所以nella隙缝di第一MATLAB。我浏览器web非supportano金宝app comandi MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。