估计离散时间或连续时间线性系统的状态
使用卡尔曼滤波器块来估计给定过程和测量噪声协方差数据的状态空间设备模型的状态。状态空间模型可以是时变的。如果状态空间模型和噪声协方差矩阵都是时不变的,则使用稳态卡尔曼滤波器实现。否则使用时变卡尔曼滤波器。
卡尔曼滤波器为以下连续或离散估计问题提供最佳解决方案:
的卡尔曼滤波器块不同于卡尔曼
命令格式如下:
当调用卡尔曼(系统,…)
,sys
包括G
和H
矩阵。具体地说,系统B
有(B G)
和系统D
有[D H]
.的LTI变量卡尔曼滤波器块,它不假定提供的LTI变量包含G
和H
。它们是可选的和独立的。
的卡尔曼
命令输出[yhat; xhat]
默认情况下。块只输出xhat
默认情况下。
下表总结了卡尔曼滤波块参数,可通过块参数对话框访问。
指定是估计连续时间状态还是离散时间状态:
离散时间
(默认的) -块估计离散时间状态
连续时间
- Block估计连续时间状态
当卡尔曼滤波器块在具有同步状态控制的模型中(请参阅国家控制(高密度脂蛋白编码器)块),您不能选择连续时间
.
使用离散时间卡尔曼滤波器的电流估计变量。如果没有选择,则使用延迟估计量(变体)。
此选项仅在以下情况下可用时间域是离散时间
.
指定A, B, C, D矩阵是如何提供给块的。必须是下列情况之一:
对话框:LTI状态空间变量
—使用LTI状态空间变量中指定的值。中还必须指定变量名变量这个sample time of the model must match the setting in the时间域选项,即模型必须是离散时间的时间域是离散的。
对话:单个的A, B, C, D矩阵
—设置以下块参数:
一个—指定A矩阵。它必须是实数和方的。
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矩阵
或外部
这个sample time is obtained from the LTI state-space variable if the Model Source is对话框:LTI状态空间变量
.
默认值是-1,这意味着该块基于模型中的块的上下文继承它的样本时间。所有块输入端口必须具有相同的采样时间。
指定如何输入初始状态估计和初始状态估计误差协方差:
对话框
—直接在对话框中指定。还必须指定以下参数:
初始状态x [0]-指定初始状态估计为实标量或矢量。如果指定一个标量,则所有初始状态估计都设置为这个标量。如果指定一个向量,那么向量的长度必须与模型中的状态数匹配。
状态估计误差协方差P[0](仅当使用时变卡尔曼滤波器时)-离散卡尔曼滤波器的初始状态估计误差协方差为P[0],连续卡尔曼滤波器的初始状态估计误差协方差为P(0)。必须指定为下列之一:
真正的负的标量。P是一个ns × ns的对角矩阵在对角线上有标量。Ns是模型中的状态数。
实非负标量的向量。P是一个ns × ns的对角矩阵其中的元素是P对角线上的向量。
Ns-by-Ns正半定矩阵。
外部
—继承输入端口的值。该块包括一个额外的输入端口X0。采用时变卡尔曼滤波器时,增加了一个附加的输入端口P0。当您在对话框中指定X0和P0时,它们必须满足前面描述的相同条件。
指定是否使用包含在状态空间植物模型中的预先识别的卡尔曼增益。此选项仅在以下情况下有效:
源模型是对话框:LTI状态空间变量
和变量是已标识的状态空间模型(中的难点
(系统辨识工具箱))的非零K矩阵。
时不变问,时不变R和时不变N选项被选中。
如果使用G和H矩阵(默认G=I和H=0)选项被选中时,时不变G和时不变H还必须选择选项。
指定是否为G和H矩阵使用非默认值。如果选择此选项,必须指定:
G—指定G矩阵。它必须是一个和a矩阵一样多的实矩阵。默认值为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-by-Nw正半定矩阵。
指定Q矩阵是否时不变。如果取消选择该选项,则块包含一个额外的输入端口Q。
测量噪声协方差矩阵,指定为如下之一:
实正标量。R是一个Ny乘Ny的对角矩阵,其标量位于对角线上。Ny是模型中测量输出的数量。
实正标量的向量。R是一个ny × ny的对角线矩阵包含了向量在R对角线上的元素。
Ny-by-Ny正定矩阵。
指定R矩阵是否时不变。如果取消选择该选项,则块包含一个额外的输入端口R。
处理和测量噪声交叉协方差矩阵。指定它为一个nw × ny矩阵。矩阵[Q N;NTR] 必须是正定的。
指定N矩阵是否时不变。如果取消选择该选项,则块包含一个额外的输入端口N。
如果模型包含已知输入,请选择此选项u(t)
或u [k]
这个option is selected by default. Unselecting this option removes the input portu
从块中删除并删除B,D和输入数量块对话框中的参数。
如果要控制测量更新,请选择此选项。该块包括一个额外的输入端口启用
这个启用
输入端口接受标量信号。默认情况下,此选项将被清除。
默认情况下,块在每个时间步骤进行测量更新,以改进状态和输出估计 和 基于测量的输出。当启用端口中的信号为0时,将跳过当前采样时间的测量更新。具体地说,状态估计方程变得 连续时间卡尔曼滤波及其应用 离散时间。
使用指定初始值重置估计状态和参数协方差矩阵的选项。
假设在一个时间步重置块,t
. 如果在以下位置启用该块:t
,软件使用在块对话框或输入端口P0和X0中指定的初始参数值来估计状态。换句话说,att
,块执行时间更新,如果启用,则在重置后执行测量更新。块输出这些更新的估计值。
指定以下其中之一:
没有一个
(默认)-估计状态
和状态估计误差协方差矩阵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(可选) | 在 | 初始状态估计,指定为实标量或向量。 |
启用(可选) | 在 | 控制信号,使测量更新,指定为真实标量。 |
重置(可选) | 在 | 用于重置状态估计的控制信号,指定为实标量。 |
双精度浮点
单精度浮点(仅用于离散时间卡尔曼滤波器)
请注意
所有输入端口除启用和重置必须具有相同的数据类型(单或双)。
启用和重置端口支持金宝app单
,双重的
,int8
,uint8
,int16
,uint16
,int32
,uint32
,布尔数据类型。
工厂和噪声数据必须满足:
(C,一个)可检测
和
在虚轴(或离散时间内的单位圆)上没有带符号的不可控模式
连续时间卡尔曼滤波器不能用于函数调用子系统或触发子系统。
[1]富兰克林,g.f., J.D.鲍威尔和M.L.沃克曼,动态系统的数字控制,第二版,Addison-Wesley, 1990。
[2] 刘易斯,F。,最优估计, John Wiley & Sons, Inc, 1986。