卡尔曼
设计卡尔曼滤波器的状态估计
语法
描述
例子
设计卡尔曼滤波器的输出
设计一个卡尔曼滤波器对加性白噪声的一种植物w在输入和v输出,如下列图所示。
假设植物具有以下是一个离散状态方程矩阵和植物,样品时间(不详Ts = 1
)。
A = [1.1269 -0.4940 0.1129 1.0000 1.0000 0 0 0 0];B = (-0.3832 0.5919 0.5191);C = (1 0 0);D = 0;工厂= ss (A, B, C, D, 1);工厂。我nputName =“联合国”;工厂。OutputName =“次”;
使用卡尔曼
,你必须提供一个模型sys
有一个输入噪声w
。因此,sys
是不一样的植物
,因为植物
需要输入联合国= u + w
。您可以构造sys
通过创建一个求和点噪声的输入。
和= sumblk (“联合国= u + w”);sys =连接(植物,和,{“u”,' w '},“次”);
同样,您可以使用sys =植物* [1]
。
指定噪声协方差。因为工厂有一个输入和一个输出噪声,这些值是标量。在实践中,这些值属性系统的噪声来源,您确定的测量或其他系统的知识。对于这个示例,假设两个噪声源有单位协方差和不相关(N
= 0)。
Q = 1;R = 1;N = 0;
设计滤波器。
[kalmf L P] =卡尔曼(sys, Q, R, N);大小(kalmf)
4输出,状态空间模型2的输入,3。
的卡尔曼滤波器kalmf
是一个有两个输入和四个输出状态空间模型。kalmf
将输入信号作为输入的工厂u和嘈杂的工厂产出
。第一个输出估计是真的工厂产出
。剩下的三个输出状态估计
。检查输入和输出的名称kalmf
来看看卡尔曼
相应地标签。
kalmf.InputName
ans =2 x1细胞{' u '}{“欧美”}
kalmf.OutputName
ans =4 x1细胞{' yt_e} {‘x1_e} {‘x2_e} {' x3_e '}
检查卡尔曼增益l
。输出工厂的三个州,l
是一个三元素列向量。
l
L =3×10.3586 0.3798 0.0817
为例,展示了如何使用kalmf
由于噪音,减少测量误差卡尔曼滤波。
为分布式天线厂设计卡尔曼滤波器
考虑植物与三个输入,一个代表过程的噪声w,两个测量输出。植物有四个州。
假设以下状态矩阵,创造sys
。
(-0.71 0.06 -0.19 = -0.17;0.06 -0.52 -0.03 0.30;-0.19 -0.03 -0.24 -0.02;-0.17 0.30 -0.02 -0.41);B = (1.44 - 2.91 0;-1.97 0.83 -0.27;-0.20 1.39 1.10;-1.2 0 -0.28];C = [0 -0.36 -1.58 0.28;-2.05 0 0.51 0.03); D = zeros(2,3); sys = ss(A,B,C,D); sys.InputName = {‘u1’,“u2”,' w '};sys。OutputName = {“日元”,“日元”};
因为工厂只有一个过程噪声输入,协方差问是一个标量。对于这个示例,假设过程噪声协方差单位。
Q = 1;
卡尔曼
使用的尺寸问
,以确定哪些输入是已知的和噪声的输入。对于标量问
,卡尔曼
假设一个噪声输入,并使用过去的输入,除非你指定否则(见植物,无边无际的输出)。
测量噪声的两个输出,指定一个2×2噪声协方差矩阵。对于这个示例,使用单位第一输出方差,方差为1.3的第二输出。非对角的值设置为0,表明这两个噪声通道是不相关的。
R = [1 0;0 1.3);
设计卡尔曼滤波器。
[kalmf L P] =卡尔曼(sys, Q, R);
检查输入和输出。卡尔曼
使用InputName
,OutputName
,InputGroup
,OutputGroup
的属性kalmf
帮助你跟踪的输入和输出kalmf
代表。
kalmf.InputGroup
ans =结构体字段:KnownInput(1 2):测量:[3 - 4]
kalmf.InputName
ans =4 x1细胞{‘u1’} {“u2”}{“日元”}{y2的}
kalmf.OutputGroup
ans =结构体字段:OutputEstimate: [1] StateEstimate: [3 4 5 6)
kalmf.OutputName
ans =6 x1细胞{' y1_e} {‘y2_e} {‘x1_e} {‘x2_e} {‘x3_e} {' x4_e '}
因此,两个已知输入u1
和u2
是第一个两个输入的kalmf
两个测量输出日元
和y2
最后两个输入吗kalmf
。的输出kalmf
,前两个是估计的输出,其余四个状态估计。使用卡尔曼滤波器,将这些输入连接到工厂和噪音信号的方式类似于所示的输出装置卡尔曼滤波。
植物,无边无际的输出
考虑植物有四个输入和两个输出。第一个和第三个输入是已知的,而第二个和第四个输入代表过程噪声。植物也有两个输出,但是只有第二测量。
使用下面的整数矩阵的创建sys
。
(-0.37 0.14 -0.01 = 0.04;0.14 -1.89 0.98 -0.11;-0.01 0.98 -0.96 -0.14;0.04 -0.11 -0.14 -0.95);B = [-0.07 - -2.32 0.68 - 0.10;-2.49 - 0.08 0 0.83;0 0 -0.95 0.54;-2.19 0.41 0.45 0.90);C = [0 0 -0.50 - -0.38;-0.15 -2.12 -1.27 0.65); D = zeros(2,4); sys = ss(A,B,C,D,-1);%离散与未指明的样品时间sys。我nputName = {‘u1’,“w1”,“u2”,“那”};sys。OutputName = {“云”,“ym”};
使用卡尔曼
为该系统设计一个滤波器,使用已知的
和传感器
输入参数指定哪个输入输出的植物是已知的和测量。
知道= [1 3];传感器= [2];
指定过滤噪声协方差和设计。
Q =眼(2);R = 1;N = 0;(kalmf L P) =卡尔曼(sys, Q, R, N,传感器,已知);
检查输入和输出的标签kalmf
显示了输入滤波器期望和输出它的回报。
kalmf.InputGroup
ans =结构体字段:KnownInput(1 2):测量:3
kalmf.InputName
ans =3 x1细胞{‘u1’} {“u2”} {“ym”}
kalmf
作为输入的两个已知输入sys
噪声的测量输出sys
。
kalmf.OutputGroup
ans =结构体字段:OutputEstimate: 1 StateEstimate:(2 3 4 5)
第一个输出的kalmf
是它的真正价值的估计测量装置的输出。剩下的输出状态估计。
输入参数
sys
- - - - - -工厂模型与过程噪声
党卫军
模型
R
- - - - - -测量噪声协方差
标量|矩阵
测量噪声协方差,指定为一个标量或Ny——- - - - - -Ny矩阵,Ny是植物的数量输出。卡尔曼
假设测量噪声v和协方差是白噪音吗R
=E(vvT)。当植物只有一个输出通道,R
一个标量等于方差的v。当植物有多个输出通道与不相关的测量噪声,R
是一个对角矩阵。在实践中,您确定适当的值R
通过测量或猜测关于你的系统的噪声特性。
额外的测量噪声协方差约束,明白了限制。
N
- - - - - -噪声协方差交叉
0(默认)|标量|矩阵
噪声协方差交叉,指定为一个标量或Ny——- - - - - -Nw矩阵。卡尔曼
假设噪声过程w和测量噪声v满足N
=E(西弗吉尼亚州T)。如果两个噪声源不相关,你可以省略N
,相当于设置N = 0
。在实践中,您确定适当的值N
通过测量或猜测关于你的系统的噪声特性。
传感器
- - - - - -测量的输出sys
向量
测量的输出sys
指定为一个向量的指标确定的输出sys
测量。例如,假设您的系统有三个输出,但只有其中两个,对应于第一和第三输出sys
。在这种情况下,集传感器= 3 [1]
。
已知的
- - - - - -已知输入的sys
向量
已知输入的sys
指定为一个向量指标确定的输入是已知的(确定性)。例如,假设您的系统有三个输入,但只有第一和第二输入是已知的。在这种情况下,集知道= [1 - 2]
。卡尔曼
解释任何剩余的输入sys
随机。
输出参数
Mx
,我的
——创新收益的状态估计
数组
创新收益的状态估计对于离散时间系统,作为一个数组返回。
Mx
和我的
只有当相关类型
= '现在'
离散时间系统,这是默认的估计量。对连续时间sys
或类型
=“延迟”
,然后Mx =我= []
。
为“当前”
类型估计量,Mx
和我的
创新成果的更新方程:
当没有直接从噪声输入引线w工厂的产量y(也就是说,当H= 0,看到离散时间估计),然后 ,输出估计简化 。
数组的尺寸Mx
和我的
依赖的尺寸sys
如下。
Mx
- - - - - -Nx——- - - - - -Ny,在那里Nx植物的状态数Ny是输出的数量。我的
- - - - - -Ny——- - - - - -Ny。
有关详细信息,如何卡尔曼
获得Mx
和我的
,请参阅离散时间估计。
限制
植物和噪声数据必须满足:
(C,一个)检测,地点:
和 ,在那里
没有无法控制模式在连续时间的虚轴,或在离散时间在单位圆上。
算法
连续时间估计
考虑一个连续时间与已知输入植物u、白噪声过程w,测量白噪声v:
噪声信号w和v满足:
卡尔曼滤波,卡尔曼估计,计算状态估计 最大限度地减少稳态误差协方差:
卡尔曼滤波器的状态和输出方程如下:
获得滤波器增益l,卡尔曼
解决了一个代数黎卡提微分方程获得
在哪里
P解决相应的代数黎卡提微分方程。
估计使用已知的输入u和测量y生成的输出和状态估计 和 。
离散时间估计
离散植物是由:
在离散时间,噪音信号w和v满足:
离散时间估计有以下状态方程:
卡尔曼
解决了一个离散的黎卡提微分方程获得增益矩阵l:
在哪里
卡尔曼
可以计算两个变量的离散卡尔曼估计,当前估计量(类型
=“当前”
)和延迟估计量(类型
=“延迟”
)。
目前的估计量,估计生成输出 和状态估计 使用所有可用的测量 。这个估计量的输出方程
创新的收益米x和米y被定义为:
因此,米x更新状态估计 使用新的测量 :
同样的,米y计算更新后的输出估计:
当H= 0,那么 ,输出估计简化 。
延迟估计量,估计生成输出 和状态估计 只使用测量yv(n1]。这个估计量的输出方程:
延迟估计更容易部署内部控制循环。
版本历史
之前介绍过的R2006a
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。