资源简介
UKF.rar
代码片段和文件信息
% UKF算法
clear;
% tic;
x = 0; % 初始状态
x_estimate = 1;%状态的估计
u_x_estimate = x_estimate; %UKF的初始估计
Q = 10; % 过程状态协方差
R =1; % 测量噪声协方差
P =5;%初始估计方差
u_P = P;%UKF方差
tf = 50; % 模拟长度
x_array = [x];%真实值数组
u_x_estimate_array = [u_x_estimate];%UKF最优估计值数组
u_k = 1; %微调参数
u_symmetry_number = 4; % 对称的点的个数
u_total_number = 2 * u_symmetry_number + 1; %总的采样点的个数
linear = 0.5;
close all;
for k = 1 : tf
% 模拟系统
x = linear * x + (25 * x / (1 + x^2)) + 8 * cos(1.2*(k-1)) + sqrt(Q) * randn; %状态值
y = (x^2 / 20) + sqrt(R) * randn; %观测值
%不敏卡尔曼滤波器
%采样点的选取 存在x(i)
u_x_par = u_x_estimate;
for i = 2 : (u_symmetry_number+1)
u_x_par(i:) = u_x_estimate + sqrt((u_symmetry_number+u_k) * u_P);
end
for i = (u_symmetry_number+2) : u_total_number
u_x_par(i:) = u_x_estimate - sqrt((u_symmetry_number+u_k) * u_P);
end
%计算权值
u_w_1 = u_k/(u_symmetry_number+u_k);
u_w_N1 = 1/(2 * (u_symmetry_number+u_k));
%把这些粒子通过传递方程 得到下一个状态
for i = 1: u_total_number
u_x_par(i) = 0.5 * u_x_par(i) + 25 * u_x_par(i)/(1+u_x_par(i)^2) + 8 * cos(1.2*(k-1));
end
%传递后的均值和方差
u_x_next = u_w_1 * u_x_par(1);
for i = 2 : u_total_number
u_x_next = u_x_next + u_w_N1 * u_x_par(i);
end
u_p_next = Q + u_w_1 * (u_x_par(1)-u_x_next) * (u_x_par(1)-u_x_next)‘;
for i = 2 : u_total_number
u_p_next = u_p_next + u_w_N1 * (u_x_par(i)-u_x_next) * (u_x_par(i)-u_x_next)‘;
end
% %对传递后的均值和方差进行采样 产生粒子 存在y(i)
%另外存在y_2obser(i) 中;
for i = 1 :u_total_number
u_y_2obser(i:) = u_x_par(i);
end
%通过观测方程 得到一系列的粒子
for i = 1: u_total_number
u_y_2obser(i) = u_y_2obser(i)^2/20;
end
%通过观测方程后的均值 y_obse
u_y_obse = u_w_1 * u_y_2obser(1);
for i = 2 : u_total_number
u_y_obse = u_y_obse + u_w_N1 * u_y_2obser(i);
end
%Pzz测量方差矩阵
u_pzz = R + u_w_1 * (u_y_2obser(1)-u_y_obse)*(u_y_2obser(1)-u_y_obse)‘;
for i = 2 : u_total_number
u_pzz = u_pzz + u_w_N1 * (u_y_2obser(i) - u_y_obse)*(u_y_2obser(i) - u_y_obse)‘;
end
%Pxz状态向量与测量值的协方差矩阵
u_pxz = u_w_1 * (u_x_par(1) - u_x_next)* (u_y_2obser(1)-u_y_obse)‘;
for i = 2 : u_total_number
u_pxz = u_pxz + u_w_N1 * (u_x_par(i) - u_x_next) * (u_y_2obser(i)- u_y_obse)‘;
end
%卡尔曼增益
u_K = u_pxz/u_pzz;
%估计量的更新
u_x_next_optimal = u_x_next + u_K * (y - u_y_obse);%第一步的估计值 + 修正值;
u_x_estimate = u_x_next_optimal;
%方差的更新
u_p_next_update = u_p_next - u_K * u_pzz * u_K‘;
u_P = u_p_next_update;
%进行画图程序
x_array = [x_arrayx];
u_x_estimate_array = [u_x_estimate_arrayu_x_estimate];
u_error(k:) = abs(x_array(k)-u_x_estimate_array(k));
end
t = 0 : tf;
figure;
plot(tx_array‘k.‘tu_x_estimate_array‘b:‘);
set(gca‘FontSize‘10);
set(gcf‘color‘‘Yellow‘);
xlabel(‘time step‘
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3845 2012-03-15 21:25 UKF.m
----------- --------- ---------- ----- ----
3845 1
相关资源
- c104f76a82457eb83e9b3f9ff9f08de2.txt
- CASIA-SURF人脸活体数据集完整版.txt
- a7a7606ac9206e5582a6edb24cf097ae.rar
- 5a9cc1eb16a4d75097c559e7965e14bb.doc
- 48bd6248ff4c4d38eefe5dfc37e3f957.rar
- OriginPro2018.txt
- 许可文件.rar
- 44897e408096c4eee9175ce3edfd625c.txt
- area.zip
- 罗克韦尔pdf.txt
- f19a7e947fc23bd5f2680351563bbb16.txt
- 网课来袭,不用愁,一键自动上课答
- g0ixul.ddb
- 阿里云云计算专业认证考试资料2018
- 690X.zip
- 692X教程.zip
- 视频音频播放器:这是我编写的一个
- OfficePasswordRecoveryToolbox.rar
- 链接失效请QQ1287452482.txt
-
4892解析顺丰路由推送xm
l工具类.ra - 官网JDK1.7.0Linux_32位.txt
- 中科方德桌面操作系统镜像文件百度
- CCS6_License(破解).rar
- 千锋2018elasticsearch笔记.docx
- DifferentialDriveModel.zip
- AES_allmode.rar
- 65520765NS2example.rar
- DLX流水线实验报告.docx
- LINUX设备驱动开发详解带书签全套资料
-
shock_opman.xm
l
评论
共有 条评论