如何在粒子滤波函数输入数据
5视图(30天)
显示旧的评论
我的研究是关于环氧树脂的固化反应的评估使用粒子滤波。我还做了仿真和实验对固化反应和计划使用粒子滤波得到准确的固化反应程度。乐团成员,我做了大约50种固化反应模拟具有不同反应距离和我明白这些数据将作为粒子。并从实验数据作为观测数据吗?(如果我错了,请纠正我)
我计划使用和修改particle_filter函数
//www.tianjin-qmedu.com/matlabcentral/fileexchange/35468-particle-filter-tutorial
但我仍然迷惑,我可以输入所有固化反应程度的数据编码。我真的很感激如果你能帮助我。没有人在我的实验室,了解粒子滤波的编码。
主题
复制
% %明显内存、屏幕和关闭所有数据
清晰,clc,关闭
所有
;
% %过程方程x [k] =系统(k, x (k - 1), u [k]);
nx = 1;
%的状态数
sys = @ (k, xkm1,英国)xkm1/2 + 25 * xkm1 / (1 + xkm1 ^ 2) + 8 * cos (1.2 * k) +英国;
% %观测方程y [k] =突发交换(k, x [k], v [k]);
纽约= 1;
%的观察
奥林匹克广播服务公司= @ (k, xk, vk) xk (1) + vk;
%(返回列向量)
% % PDF的过程噪声和噪声发生器的功能
ν= 1;
%向量过程噪声的大小
sigma_u = sqrt (10);
p_sys_noise = @ (u) normpdf (u, 0, sigma_u);
gen_sys_noise = @ (u) normrnd (0, sigma_u);
%样本p_sys_noise(返回列向量)
% % PDF的观测噪声和噪声发生器的功能
nv = 1;
%向量观测噪声的大小
sigma_v = sqrt (1);
p_obs_noise = @ (v) normpdf (v 0 sigma_v);
gen_obs_noise = @ (v) normrnd (0, sigma_v);
%样本p_obs_noise(返回列向量)
% %初始PDF
% p_x0 = @ (x) normpdf (x, 0, sqrt (10));%初始pdf
gen_x0 = @ (x) normrnd (0, sqrt (10));
%样本p_x0(返回列向量)
% %过渡之前PDF p (x [k] | x (k - 1))
% (suposition下添加剂过程噪声)
% p_xk_given_xkm1 = @ (k, xk, xkm1) p_sys_noise (xk - sys (k xkm1 0));
% %观察可能性PDF p (y [k] | x [k])
% (suposition下添加剂过程噪声)
p_yk_given_xk = @ (k, yk、xk) p_obs_noise (yk -奥林匹克广播服务公司(k, xk, 0));
% %的时间步骤
T = 40;
% %独立的内存空间
x = 0 (nx T);y = 0(纽约,T);
u = 0(ν,T);v = 0 (nv, T);
% %模拟系统
xh0 = 0;
%初始状态(h, Vf)
u (: 1) = 0;
%初始过程噪声
v (: 1) = gen_obs_noise (sigma_v);
%初始观测噪声
x (: 1) = xh0;
奥林匹克广播服务公司(y (: 1) = 1 xh0 v (: 1));
为
k = 2: T
%这里基本上是抽样p_xk_given_xkm1和p_yk_given_xk
u (:, k) = gen_sys_noise ();
%模拟过程噪声
v (:, k) = gen_obs_noise ();
%模拟观测噪声
x (:, k) =系统(k, x (:, k - 1), u (:, k));
%模拟状态
y (:, k) =突发交换(k, x (:, k), v (:, k));
%模拟观察
结束
流(
“完成模拟系统\ n”
)
% %单独的内存
xh = 0 (nx、T);xh (: 1) = xh0;
本产品= 0 (ny, T);奥林匹克广播服务公司(yh (: 1) = 1 xh0 0);
pf.k = 1;
%初始迭代数
pf.Ns = 10;
%粒子数
pf.w = 0 (pf。Ns, T);
%的重量
pf.particles = 0 (nx pf.Ns T);
%的粒子
pf.gen_x0 = gen_x0;
从最初的pdf p_x0 %函数抽样
pf.p_yk_given_xk = p_yk_given_xk;
%的功能观察可能性PDF p (y [k] | x [k])
pf.gen_sys_noise = gen_sys_noise;
%函数生成系统噪音
% pf。p_x0 = p_x0;%初始之前PDF p (x [0])
% pf。p_xk_given_ xkm1 = p_xk_given_xkm1;%过渡之前PDF p (x [k] | x (k - 1))
% %估计状态
为
k = 2: T
流(
“迭代= % d / % d \ n '
,k, T);
%状态估计
pf.k = k;
% (xh (:, k), pf) = particle_filter (sys, y (:, k), pf, multinomial_resampling);
[xh (:, k), pf] = particle_filter (sys, y (:, k), pf,
“systematic_resampling”
);
%过滤观察
奥林匹克广播服务公司(yh (:, k) = k, xh (:, k), 0);
结束
% %块密度的演化
Disp = 3;
%表示させたい状態変数(1:厚さ,2 ? 6:Vf.6は表面)
图
持有
在
;
ξ= 1:T;
易= 25:0.25:25;
%変数としてDispを想定した領域に設定
[xx, yy] = meshgrid (xi, yi);
穴= 0(大小(xx));
xhmode = 0(大小(xh));
为
i = xi
%为每个时间步执行核密度估计
窝(:,i) = ksdensity (pf.particles(1:我),咦,
“内核”
,
“epanechnikov”
);
[~,idx] = max(窝(:,i));
%估计密度的模式
xhmode (i) =易(idx);
plot3 (repmat (xi (i)、长度(易),1),易”,窝(:,i));
结束
视图(3);
盒子
在
;
标题(
“进化的状态密度”
,
“字形大小”
14)
图
网格(xx, yy,穴);
标题(
“进化的状态密度”
,
“字形大小”
14)
% %情节vs估计状态的粒子滤波和粒子的路径
图
持有
在
;
h1 =阴谋(1:T,挤压(pf.particles),
“y”
);
h2 =阴谋(1:T, x,
“b”
,
“线宽”
4);
h3 =阴谋(1:T, xh,
“r”
,
“线宽”
4);
h4 =阴谋(1:T, xhmode,
‘g’
,
“线宽”
4);
传奇(h2 h3 h4 h1 (1),
“状态”
,
“估计状态的意思”
,
“粒子路径”
);
标题(
的状态估计与粒子滤波和粒子的路径的
,
“字形大小”
14);
% %的情节观察vs过滤粒子滤波的观察
图
阴谋(1:T y
“b”
1:T,决断力,
“r”
);
传奇(
“观察”
,
“过滤观察”
);
标题(
“观察与过滤观察粒子滤波的
,
“字形大小”
14);
返回
;