图片缩略图

学习无味卡尔曼滤波器

2.5版本1.2.0.0 (KB) 易曹
无味卡尔曼滤波器的实现对非线性状态估计。
4.6
47评级

103下载

更新2010年12月12日

视图版本历史

查看许可协议

非线性状态估计问题是一个挑战。著名的卡尔曼滤波器只适用于线性系统。扩展卡尔曼滤波器(EKF)已经成为一个标准的制定对非线性状态估计。然而,它可能会导致重大错误传播的高度非线性系统,因为不确定性非线性系统。

无味卡尔曼滤波(UKF)是一种新型的发展领域。这个想法是为了产生多个采样点(σ点)在当前状态估计基于其协方差。然后,传播这些点通过非线性映射得到更准确的映射结果的均值和协方差估计。通过这种方式,它避免了需要计算雅可比矩阵,因此只会带来类似的计算负载的卡尔曼滤波器。

教程的目的,这段代码实现了一个简化版的UKF配方,我们假设这个过程和测量噪声都是添加剂,以避免增加状态并简化假设的非线性映射。

代码是大量注释用一个例子使用的函数。因此,它是UKF sutiable供初学者学习。相比较而言,卡尔曼滤波器代码可以找到//www.tatmou.com/matlabcentral/fileexchange/loadFile.do?objectId=18189&objectType=FILE

引用作为

易曹(2021)。学习无味卡尔曼滤波器(//www.tatmou.com/matlabcentral/fileexchange/18217-learning-the-unscented-kalman-filter), MATLAB中央文件交换。检索

评论和评级(93年)

MNRNI

ruochen刘

建国魏

Zygfryd Wieszok

佩德罗·马丁斯

Excelente脏污

Duy纳尼

sylvere pagna

大家好,我想用你的代码在卡尔曼滤波来减少噪声在rssi测量进行进一步分析:
X = [RSSI (k) d (k)]: k状态向量的时间
G (k) = ((10 * nlog10 * d_k + u_k) / u_k 1]”: iput矩阵
F_k = [1 0;(-10 * log10 * d_k) / d_k 1]:状态矩阵
v (k):过程噪声
z (k):不下向量时k
H (k):测量矩阵k时刻
P (k):状态协方差矩阵时k

基于卡尔曼滤波器的人能帮我实现它吗?

谢谢你!

你可以联系我这个电子邮件:pagnadanny@yahoo.fr

尤利-郭

Arefeh Amrollahi Biyooki

蒂亚戈席尔瓦

谢谢你共享的实现。我很难解释本文中给出的算法的平方根无味卡尔曼滤波状态和参数估计。我使用一个平方根UKF的continuous-discrete版本和比较它与卡尔曼滤波器,所以我使用了测量更新步骤。如果你使用这个一定要使用测量噪声的平方根R,因为我们正在与平方根的实现。我用胆固醇(R,“低”)而不是R和性能成为与EKF相提并论。

侠盗猎车手

亲爱的易曹教授,

如何执行这个实现参数估计?我知道你已经把两个链接下面的答案来回答一个问题类似,但你真的不理解。你能详细解释一下吗?谢谢你!

Denis-Gabriel Caprace

整洁的常规UKF的实现。

肯尼

好吧……算出来。所以你要做的就是——打开ukf。m文件,然后寻找这个词“例子”,然后用鼠标复制文本从“n = 3;%的国家”一直到“结束”。

然后你将文本粘贴到任何abitrary Matlab的m文件,比如“file1。m”,然后保存它。然后你把这个新文件file1。米”作为ukf.m相同的目录中

然后你加载的file1。m”到Matlab中,然后运行它按“运行”按钮。

肯尼

好的。我可以看到这里有功能包括,仅此而已。
有什么细节解释我们必须做什么?
所以它不仅仅是一种m文件加载到Matlab和按下“运行”按钮,对吧?

院长Carhoun

我在找一个清晰的(可以理解)实现quaternion-based UKF 6自由度陀螺和加速度计的态度估计(俯仰和滚)。任何建议吗?

olbond

Raola ra

这张沃林

有代码运行,但是我真的不理解的是计算的σ点。在所有文学作品我看过(例如主文档中提到的代码,从7月和Uhlmann)你应该计算σ点的帮助下√(n + k) * Pxx。

在这段代码中只有做的平方根常数,协方差矩阵不?我遗漏了什么东西?

Zhiwen陈

马克史

估计频率的余弦为我工作。也许试着设置初始化值接近实际价值。

内森•齐默尔曼

除非我失踪,参数估计这段代码不工作吗?
我的状态转换是单位矩阵同时测量矩阵将非线性。
试图确定一个因为波未知的频率和振幅。这是容易与EKF但我不能找出w / UKF。

雪李

铜罗

asaf eilam

你好,

我新的卡尔曼滤波和需要你的帮助。我使用ukf脚本解决下一个问题:我的测量记录下一个函数h (t) =间{3}^ 2 /((间的{1}(t) x0) ^ 2 +间的{2}^ 2)。间的{1,2,3}是我的未知数,X0已知。我的状态是(间的{1}间的{2}间{3}]。间的{1}是周期信号间的{2}和间{3}参数不改变,但是应该估计。该算法不接近给结果!谁能帮助。

杨罗

看起来好

费边·戈麦斯Barrero

我试着运行代码,我有如下错误

达到最大递归限制为500。使用组(0 ' RecursionLimit ' N)改变的极限。请注意,超过你的栈空间可以用MATLAB和/或崩溃
你的电脑。

错误ukf > create@ (x) [x (2), (3); (0.5 * x (1) * x (x (2) + (3))))

不是很好与MATLAB在这里,我如何解决这个问题!谢谢!

raf3伊亚

王qq

杰里米

Matlab的舍入误差是造成我的协方差矩阵(P)成为非正定。然而,我发现了一个解决方案。

函数在P nearestSPD能够纠正错误很好。

//www.tatmou.com/matlabcentral/fileexchange/42885-nearestspd

唯一要注意的是,nearestSPD可以将任何矩阵转换为对称正定矩阵,矩阵不仅密切。

希望这可以帮助其他有同样的问题!

Hesam Khazraj

嗨在破坏的例子显示了我这个错误:
错误:文件:ukf。m: 21列:2
表达左边的等号不是一个有效的目标为一个任务。

请你告诉我什么错了?

亚历克斯·雪

很适合初学者的帮助在研究!

公司公司

伊斯兰教阿

伊斯兰教阿

我最近遇到了这段代码的无味卡尔曼滤波(它太好了!),但我想知道如果它能工作状态和观察变量时复杂的价值。

我以为的唯一区别UKF和复杂的UKF (CUKF)取代与共轭转置操作/厄密共轭转置。然而,当我试图用这个代码复杂的价值系统,柯列斯基分解失败。

更多细节关于我的应用程序在这里:

https://www.reddit.com/r/ECE/comments/3cmrlo/anyone_familiar_with_unscented_kalman_filtering/

任何建议都是感激。谢谢!

马克

@马修(6月28日)

我有同样的问题(P指数增长)。像你说的:这与α参数。这与无味如何变换计算其改变的意思。在某些情况下(我想当协方差测量非常低,和过程协方差是几个数量级),在Matlab可以有舍入误差,导致转换的意思是短。

为了解决这个问题,我改变了UT函数是这样的:

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

函数(y, y, P, Y1) = ut (f, X, Wm Wc, n, R)

L =大小(X, 2);
% y = 0 (n, 1);%行注释掉了
Y = 0 (n, L);
k = 1: L
Y (:, k) = f (X (:, k));
% = y + Wm (k) * y (:, k);%行注释掉了
结束
y =意味着([y (: 1) ';意味着(Y(:, 2:结束)'));%行添加在这里
日元=等号左边(:,(1,L));
P = y₁*诊断接头(Wc) * Y1”+ R;

马太福音

我发现我的系统,协方差矩阵是疯狂的增长(P_k ~ 10 ^ 8 * P_k-1)和越来越复杂。

试着调整α参数。10 e - 3太小了我的系统,和0.1是最低限度,我可以避免协方差问题。0.15似乎效果最好。
一般来说,α建议在10 e - 3和1之间。

阿娴

大家好!
我真的还没有理解这段代码。在我的例子中,我也研究卡尔曼滤波器对GPS数据,我想应用卡尔曼滤波器由于GPS数据的噪音和缺失数据。我有一个GPS数据一列长度超过2000。谁能告诉我怎么做吗?
非常感谢你为你的种

1月

很好的例子!

Ghulam Rasool

Ghulam Rasool

Emmanuel Farhi

这贡献可以作为优化器但不是非常有效。

Chinedum

谢谢易曹教授。

在这一点上我有一个问题:
X =σ(X P c)在X %σ点

它不停地说:

指数超过矩阵维度。
错误σ(第97行)
一个=变长度输入宗量{1};b =变长度输入宗量{2};c =变长度输入宗量{3};d =变长度输入宗量{4};“

当我运行这个:
X =σ(X P c[], 1),它说:

“错误使用σ(第107行)
一个矩阵必须广场”

有人有办法解决这个吗?我似乎无法克服这一点。

谢谢你!

GMark

亲爱的曹易,
我有一个问题的相关矩阵测量。就非容积确定一些参数。
我怎么处理这个问题?
我已经试过相同的矩阵验证但他们不工作。
我必须调整模型的参数标定。
任何评论都是赞赏
谢谢
G。

张蓝

是以

亲爱的易曹教授,
非常感谢你在Matlab代码。我试着修改过程函数的代码。

例如:
s = [1, 2, 3];
f = @ (x) [x (2), (3); 2 * x (1) * x (x (2) + (3)));
h = @ (x) x (1);
但是当我运行这个程序,它显示一个错误的计算σ点。它说,正定矩阵P应该我。如何修改这个UKF程序定义的任何形式的函数?

谢谢你!

亲爱的曹易,
根据UKF-based非线性滤波的'performance评价,选择:f = @ (x) [x (1) + t *(2);(2)道* x (1) + t * x (x (1) ^ 2 + (2) ^ 2 - 1) * x (2)];
h = @ (x) x(1)与过程噪声协方差w (k)作为:Q = 0.003 ^ 2,噪音的covaiance v (k)是由:R = 0.001 ^ 2,初始状态:x0 = [2.3, 2.2], P0 =我,初始状态的真正价值:x = [0.8, 0.2]。本文证明当考虑到所有这些,UKF往往是不同的。然而,根据这段代码中,似乎估计量是稳定的。它欠权重选择预测时做什么?

斯科特·莱文森

亲爱的曹博士,
我是相对较新的卡尔曼滤波,我很高兴找到了你的优秀,大量评论UKF功能和例子“初学者”:
//www.tatmou.com/matlabcentral/fileexchange/18217-learning-the-unscented-kalman-filter
看来你的非线性函数“f”在这段代码中,您使用作为一个例子可以被修改
f = @ (x) [x (2), (3); 0.05 * x (1) * x (x (2) + (3)));%的非线性状态方程
相对容易的一个非线性函数,描述了不同的非线性或时变特性,像电池的电荷状态。

我很感激如果你能告诉我去进一步的文献,这可能进一步引导我,例如,
•从你的课堂上做的笔记,让更多的背景无味卡尔曼滤波器的例子,以上。
•通常如何选择
 ki=0;%违约,可调
 beta=2;%违约,可调
 alpha=1e-3;%违约,可调
•做状态变量x(1:3)在你上面的例子代表的一个实际的物理过程或x使用纯粹是作为一个数值的例子吗?
•我知道你UKF Matlab函数。m,描述了一个简化的无味KF添加过程噪声和测量噪声:
% xk + 1 = f (xk) + w_k
% z_k = h (xk) + v_k
你有更一般的无味KF, UKF2。米,传播的非线性噪声,如:
% xk + 1 = f (xk, w_k)
% z_k = h (xk, v_k) ?

再次感谢小时出色的工作!
斯科特

斯科特·莱文森

grge

我需要帮助。我有上面的系统,但我不知道如何融合方程到过滤器。谁能帮我吗? ?

系统模型有三种状态:X, Y, Th。方程是:

Xk + 1 = Xk + cos(厚度)*你* Dt
Yk + 1 = Yk + sin(厚度)*你* Dt
Thk + 1 = Thk + w * Dt

测量模型是:

X1 = Xk + 1 + r * cos (Thk + 1 - 90);/ / r是一个常数
日元= Yk + 1 + r * sin (Thk + 1 - 90);

X2 = Xk + 1 + m * cos (Thk + 1);/ / m是一个常数
Y2 = Yk + 1 + m * sin (Thk + 1);

X3 = Xk + r * cos (Thk + 1 + 90);
Y3 = Yk + r * sin (Thk + 1 + 90);

H1 H2 = = H3 = 0;

P1 = (- a * X1-b * Y1-c * H1-d) / (a * (XL-X1) + b * (YL-Y1) + c * (ZL-H1));/ / a, b, c, d,常量
P2 = (- a * X2-b * Y2-c * H2-d) / (a * (XL-X2) + b * (YL-Y2) + c * (ZL-H2));
P3 = (- a * X3-b * Y3-c * H3-d) / (a * (XL-X3) + b * (YL-Y3) + c * (ZL-H3));

A1 [0] = XL-X1;/ / XL, YL、ZL常数
A1 [1] = YL-Y1;
A1 [2] = ZL-H1;

A2 [0] = XL-X2;
A2 [1] = YL-Y2;
A2 [2] = ZL-H2;

A3 [0] = XL-X3;
A3 [1] = YL-Y3;
A3 [2] = ZL-H3;

Z1 [0] = A1 [0] * P1 + X1;
Z1 [1] = A1 [1] * P1 + Y1;
Z1 [2] = A1 [2] * P1 + H1;

Z2 [0] = [0] * P2 + A2 X2;
Z2 [1] = [1] * P2 + A2 Y2;
Z2 [2] = A2 [2] * P2 + H2;

Z3 [0] = A3 [0] * P3 + X3;
Z3 [1] = A3 [1] * P3 + Y3;
Z3 [2] = A3 [2] * P3 + H3;

Z [0] = Z1 [0] + Z3 [0];/ / Z[我],是测量所需的UKF ! ! !
Z [1] = Z1 [1] + Z3 [1];
Z[2] =每股((Z2 [1] - Z [1]) / (Z2 [0] - Z [0]));

请您能帮我实现这些方程的UKF吗?

Xile康

伟大的作品!

莎莉·汤普森

注意重点由沈Haijun如果您计划使用这个过滤器作为一个增广系统的基础(噪声状态向量的一部分)。不包括过程噪声函数“f”将导致重大偏差过滤结果如果你的噪音不是添加剂或增广状态向量。

否则,非常感谢关于无味过滤学习的极好途径!

于宁波

的x (1), (2) x(3)代表什么
f = @ (x) [x (2), (3); 0.05 * x (1) * x (x (2) + (3)));%非线性状态,我不知道如何f函数出来?

Sourav

请将您的评论到majordavuramus@gmail.com . .我不是很频繁的游客。再次感谢

伊冯

我实现了一个高度非线性飞机跟踪应用程序与EKF与UKF。初始状态和状态误差协方差矩阵是相同的,是观察和处理错误。然而,我得到一个体面的结果与卡尔曼滤波器,但不是你的UKF……它应该是相反的……任何建议吗?

miftahuddin miftahuddin

嗨Dr.Cao


有一些问题与我的动态模型。你能帮我申请我的模型在你的“UKF”。
能给我你的电子邮件地址。

最好的,

Miftahuddin
学生
Sepuluh Nopember理工学院
苏腊巴亚
印尼

保罗Mellor

我有一个输入函数也(“u”)。这怎么能添加到UKF代码?我简单地“u”穿过fstate通过ut()函数()函数?

易曹

嗨,约旦,

谢谢你的评论。参考已添加到更新后的代码。它应该在几天内可用。

约旦Malof

曹博士,

我真的很感谢你的提交,这是一个伟大的帮助。我只会建议清单参考或两个m文件,例如(凡德尔莫维R和EA湾,2002)。我不知道平方根ukf的实现,只是,有点困惑关于你实现。否则一切都非常清楚和经验。

再次感谢!
约旦

大安迪

Haijun沈

你好,

在传播的过程

[P1 x1, x1, X2] = ut (Wc, fstate X, Wm L Q);

你包括协方差P1的问,但是在传播矩阵X1不包括任何过程噪声因为你假设添加剂噪声和f函数不考虑过程噪声。反过来,当你将X1

[z1, z1, P2, Z2] = ut (Wm hmeas, X1, Wc, m, R);

测量矩阵Z1, Z1不包括任何过程噪声的影响。因此,当你使用Z1 Z1计算P2,即使你添加R在P2, P2肽yy的不是一个真正的表示。在你的例子中,肽yy是问。

在线性条件,X1包括Ak * xkhat代替Ak * xkhat +工作即使你P1 Ak * Pkhat * Ak ' + Qk。和P2 C_ {k + 1} * Ak * Pkhat * Ak‘* C_ {k + 1}’应该C_ + R .正确的P2 {k + 1} * (Ak * Pkhat * Ak ' + Q) * C_ {k + 1}’+ R。

顺便说一下,我认为增强版本仍然适用与添加剂噪声情况下,虽然一个可能选择不使用它,因为增加了复杂性。

期待你的意见。

谢谢。

Haijun沈

易曹

你好,荷兰,

是的,我们可以。请检查以下两个FEX条目的细节。

//www.tatmou.com/matlabcentral/fileexchange/18356
//www.tatmou.com/matlabcentral/fileexchange/18355

荷兰

你好曹博士

为什么我们不能使用这个UKF算法参数和状态估计就像EKF算法。需要做什么玩这个UKF算法状态参数估计。
似乎这UKF算法是无用的,兜售优于卡尔曼滤波器是不正确的。

Guapa

你好曹,
我仍然不能打开程序,请您能告诉我我能怎么做,因为节目下载文件的正确执行。matlab总是返回错误

蒂姆的高度

你好曹博士易

你规划发布平方根UKF参数估计?

吉奥莉•帕蒂尔

你好,
有可能使用UFK当非线性函数f是未知的。而是有一个“地图”(不确定性)是已知的。我想过滤测量信号使用这种不确定的“地图”,只是看到一组样本和定期的测量信号。

谢谢。

彼得Schenkel

上篇好一些reasion我迷路了,所以再次:

我使用UKF估计距离无线信号强度。尽管RSSI误差(测量方程)是高斯分布的UKF执行像它看起来很糟糕,我无法理解为什么这类问题的最佳选择。我设置了测量过程的性病我训练数据。我的系统方程

f = @ (x) [abs (x (1) + (2)); abs (x (3) - x (1)); x (1)];
h = @ (x) [log10 (x (1)) * 10 * pl-A];

f:
x1:新的距离=老距离+速度
x2:速度=差异(距离,新老距离)
x3:旧的距离

h是一个给定的转换从距离无线信号强度

我不能找到任何表现不佳的原因,因为它应该为这种应用程序最好的过滤器。我缺少一些重要的问题吗?

彼得Schenkel

对不起……卡尔曼滤波器应ukf在前面的帖子

易曹

彼得,

这意味着ukf的迭代是不稳定的。你必须调整P, Q,等等,使其稳定。

彼得Schenkel

你好曹,

首先,谢谢你的贡献。我有一个问题,我做一些参数组合复杂的协方差矩阵,参数如下:

z = -78
c = 1.7321 e - 004
P =
1.2500 + 0.0000我0.0000 - 0.0000 0.0000 - 0.0000
0.0000 + 0.0000我0.4438 + 0.0000 0.0000 + 0.0000
0.0000 + 0.0000我0.0000 - 0.0000 1.2500 + 0.0000

x =
0.5807 - 0.0000我
-5.5018 + 3.7078我
0.7954 - 0.0000我

然后我得到这个错误:
? ? ?错误使用= = >胆固醇
与真正的对角矩阵必须正定。

我认为这是由于复杂的协方差矩阵。
我不知道这个矩阵可以成为复杂我见它可以成为复杂的唯一方法就是如果c是-它不是这里……

此外,我想使用无线电信号强度测量的距离,所以我实际上距离RSSI值和额外的速度从当前步骤的最后一步,有可能与此实现处理这些信息吗?

感谢任何帮助!

最好的
彼得

易曹

正确的。然而,K = P12 *发票(P2)。因此,K * P2 = P12。
这导致K * P2 * K = P12 * K。因此,P = P1-P12 * K”。

HTH

Erik穿长袍的人

我认为,协方差updat应该是:

P = P1-K * P2 * K”

埃里克

易曹

看来你的模型是不稳定的。您可能希望调整P, Q, R矩阵,看看这有助于。

Dapat Chawah

你好Dr.Yi
这段代码工作有利于N < = 150
但当N超过这个极限,无稽之谈
有什么改进的代码考虑这个错误?

诉穷

南罗

嗨,Dr.Cao
同样的问题是亚当。

谢谢你!

Ramya Gangishetty

我做我的研究项目和主题是比较EKF与UKF非线性状态估计。非线性模型,我已经给出了正确的结果用于EKF但我不是UKF能得到正确的结果。我不知道问题是什么。我在想如果你能看我的模型,并提出一个解决方案。

fengtset蔡

洛基,同样的问题
如果在状态变量测量方程是非线性的,估计与实际状态变量不会改变(模拟)的状态函数。任何建议吗?

fengtset蔡

你好,曹博士,
协方差更新正确吗?

P = P1-K * P12 ';%协方差更新

一些纸写道:

P = P1-K * P12 * K”;

fengtset

亚当Attarian

问候,

虽然我理解它是不再需要增加美国当你考虑加性噪声,这也是明显的,你只需要使用第L重量,而不是2 L + 1权重。你能对此有何评论?是任何丢失或通过使用L权重或2 L + 1权重相加噪声情况下吗?

我问只是因为我看到退化性能当我从使用所有2 L + 1重量在我的程序中只使用第一个L权重(我不是增加美国)。

谢谢,
亚当
NC州立大学

吗?吗?

? ? ? ? ? ? ? ? ? ? ? ?

易曹

有几个不同版本的UKF。我使用精简概要,Q和R必须显式地使用。有一些增强版本,Q和R都包含在P。

hth

本ouissem

我的学生在法国和我见过您的程序对UKF(无味卡尔曼滤波)页面://www.tatmou.com/matlabcentral/fileexchange/loadFile.do?objectId=18217&objectType=file。我不明白为什么这个函数UKF尼得协方差R和Q因为UKF算法的论文中我们可以发现:http://mi.eng.cam.ac.uk/ cipolla /出版/将/ 2001 - bmvc kalman.pdf——轮(4)页UKF只需要协方差P和国家x。
对不起,我的英语是不是很难理解我的问题。
你能请帮助了解UKF。
谢谢你!

易曹

你好,凯文

谢谢你的评论。胆固醇比sqrtm更高效和健壮。

凯文trivedi

嘿,易曹,为什么你用胆固醇而不是sqrt函数,这样做的好处是什么,请澄清胆固醇u函数使用。

易曹

洛基

州不是UKF的进化。你应该有另一个仿真模型进化状态,然后将UKF估计模型的输出状态。如果你给我你模型通过电子邮件我可以看看你的问题是什么。

洛基公司

你好;我试着你的函数,f = @ (x) [- x (2); exp (a * x (1)) * (2) ^ 2 * x (3); 0];%的非线性状态方程
h = @ (x) [sqrt (m ^ 2 + (x (1) - z) ^ 2)];%测量方程
s = [3 * 10 ^ 5 2 * 10 ^ 4 1 * 10 ^ 3) ';
但国家十五似乎不进化后的第一步。
任何建议吗?我做错了什么吗?

易曹

亲爱的Aydogdu Atilla,

谢谢你的评论。增广状态变量只有applable如果非附加过程噪声和测量噪声,即在非线性函数:

x (k + 1) = f (x (k), u (k), w (k))
y (k + 1) = h (x (k + 1), u (k + 1), v (k + 1))

在这种情况下,我们必须通过非线性传播w和v函数,因此需要额外的增强维状态空间来评估这些非线性函数。这就是为什么状态空间几何尺寸变成2 l + 1。

我的描述所UKF提交教程的目的,我们只考虑一个简单的情况下,即噪音是附加的,equarions在哪里:

x (k + 1) = f (x (k), u (k)) + w (k)
y (k + 1) = h (x (k), u (k)) + v (k)

在这种情况下,w和v都不是这些非线性函数的一部分,因此,不需要通过这些功能来传播。因此,我们不需要状态空间增大。我们可以证明,在这种情况下,状态空间non-augment配方等于增广状态空间配方。

假设添加剂噪声的原因是,通常情况下,我们不知道如何系统噪声的影响,因此真的不知道如何表示他们在非线性函数。在这种情况下,它是合理的假设噪声是附加的。在7月的论文,因为它是一个学术文章,当然,是有意义的讨论更一般的情况下,也包括噪音在这些非线性函数。

结论:如果我们知道如何表示噪声在非线性函数,然后使用增强配方。其他明智的,我们可以假设添加剂噪声和使用没有状态空间增大的简化公式。

hth。

易曹

嗨,李郝
函数”(z1, z1, P2, Z2) = ut (Wm hmeas, X1, Wc, m, R)”是子函数包含在文件从第72行到第95行。

嗨,特里曾,

你提到的线是69行。z1是计算在第66行:
[z1, z1, P2, Z2] = ut (Wm hmeas, X1, Wc, m, R);
即行提到的内科医师。

HTH。

特里曾

嗨,在您的代码中。你写

“x = x1 + K * (z-z1);%更新状态的

但过程计算“z1”没有。

李郝

在哪里函数”(z1, z1, P2, Z2) = ut (Wm hmeas, X1, Wc, m, R)”

Taher DERBEL

易曹

亲爱的埃德温,

这不是一个递归代码。因此,这个错误不应该发生。我相信这是由于你运行示例的方式。当你选择和敦促控制温度t取消选择的例子中,您必须保存更改,ukf函数递归调用。运行示例的正确方式,取消选择后,你不应该保存更改,单击右键,选择运行。帮助其他用户可能会使用相同的错误,我修改注释块的例子。现在,您可以选择为例,右击选择不小心保存更改的情况下运行。

希望这个有帮助。

埃德温•德•弗里斯

? ? ?达到最大递归限制为500。使用组(0 ' RecursionLimit ' N)
改变限制。请注意,超过你的栈空间可以
MATLAB和/或你的电脑崩溃。

错误= = > ukf > create@ (x) [x (2), (3); 0.05 * x (1) * x (x(2) +(3)))在25
f = @ (x) [x (2), (3); 0.05 * x (1) * x (x (2) + (3)));%的非线性状态方程

MATLAB版本兼容性
创建R2007a
兼容任何释放
平台的兼容性
窗户 macOS Linux

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!