1、粒子滤波算法原理及Matlab程序,主讲: 方牛娃QQ: 345194112,1、粒子滤波的发展历史,90年代初,Gordon、Salmond、和Smith所提出的重采样(Resampling)技术 。90年中期,计算机的计算能力的提高 近年来的新技术,EPF、UPF、RBPF等新的应用领域:目标定位和跟踪、图像处理、语音处理、故障检测、经济数据处理,2、蒙特卡洛原理,粒子滤波技术是以蒙特卡洛为基础的 蒙特卡洛:用实验模拟的方法解决复杂的积分计算问题 硬币投掷实验(1) 掷一枚均匀硬币,正面朝上的次数X服从参数为,p的二项分布,XB(1,p) 在Matlab中编辑.m文件输入以下命令:func
2、tion cion_throw_test1 p=0.3; % 正面朝上的概率 m=1000; % 实验次数 fun(p,m); % 修改不同的p,m值 function fun(p,mm) pro=zeros(1,mm); randnum = binornd(1,p,1,mm); % 服从二项分布 a=0;,2、蒙特卡洛原理,蒙特卡洛的应用,应用说明:利用蒙特卡洛模拟计算圆周率 方法解决:,假设平面上有无数条距离为1的等距平行线,现向该平面随机投掷一根长度为l的针(l1),则我们可计算该针与任一平行线相交的概率。这里,随机投针指的是:针的中心点与最近的平行线间的距离X均匀地分布在区间0,1/2
3、上,针与平行线的夹角(不管相交与否)均匀的分布在区间0,上。此时,针与线相交的充要条件是,从而针线相交的概率为:,2、蒙特卡洛,% % 说明:利用蒙特卡洛模拟计算圆周率 % function buffon_test l=0.6; m=10000; % 实验次数 buffon(l,m); % function piguji=buffon(llength,mm) %llength 是针的长度 %mm 是随机实验次数 frq=0; xrandnum = unifrnd(0,0.5,1,mm); phi= unifrnd(0,pi,1,mm); for ii=1:mmif (xrandnum(1,ii
4、)=(llength*sin(phi(1,ii)/2)frq=frq+1;end end piguji=2*llength/(frq/mm) 实验结果如下:,3、粒子滤波原理,粒子滤波目前有四大基本的重采样方法,分别是残差重采样(Residual resampling),多项式重采样(Multinomial resampling),系统重采样(Systematic resampling),随机重采样(random resampling),关于他们的原理,读者可以到网上检索相关的论文。,3、粒子滤波原理,随机重采样,执行仿真程序,得到以下仿真结果,图中上部就是程序中给定的W随机样本,而下部分是由
5、随机采样得到的V样本集合。从连线关系可以看出,W样本集中的第2个样本被复制一次,第3个样本被复制2次,第7个样本被复制2次,第8个样本被复制1次,第9个样本被复制2次,W中除了被复制的样本外,其他样本被舍弃,这就是“优胜劣汰”的思想。,4、粒子滤波在单目标跟踪中的应用,状态方程:观测方程:噪声模型:Q、R,4、纯方位角单目标跟踪,纯方位跟踪系统仿真程序 % % 程序说明: 单站单目标基于角度的跟踪系统,采用粒子滤波算法 % 状态方程 X(k+1)=F*X(k)+Lw(k) % 观测方程 Z(k)=h(X)+v(k) function main % % 初始化参数 clear; T=1; % 采
6、样周期 M=30; % 采样点数 delta_w=1e-4; % 过程噪声调整参数,设得越大,目标运行的机动性越大,轨迹越随机(乱) Q=delta_w*diag(0.5,1,0.5,1) ; % 过程噪声均方差 R=pi/180*0.1; % 观测角度均方差,可将0.1设置的更小 F=1,T,0,0;0,1,0,0;0,0,1,T;0,0,0,1; % 系统初始化 % Length=100; % 目标运动的场地空间 Width=100; % 观测站的位置随即部署 Node.x=Width*rand; Node.y=Length*rand;,5、粒子滤波在多目标跟踪中的应用,多目标跟踪系统状态
7、方程观测方程,5、粒子滤波在多目标跟踪中的应用,近邻法分类,5、粒子滤波在多目标跟踪中的应用,近邻法分类程序% % 函数功能:近邻法分类程序 % function Neighbour_Classify_exam2 % 初始化数据 Type=3; % 假设已知三类目标 % 随机产生M个样本点 M=30; % 场地空间的长和宽 Width=4; Length=4; % % 样本初始化、并模拟一组样本空间 for i=1:Typex0=10*cos(pi*2*i/3);y0=10*sin(pi*2*i/3);XXi=x0,y0; % 已知类别的样本集合for j=1:M% 模拟真实样本的空间,在类空
8、间的位置Xi(:,j)=x0+Width*randn;y0+Length*randn;end End ,5、粒子滤波在多目标跟踪的应用,基于近邻法的多目标跟踪粒子滤波程序 % % 单站多目标跟踪的建模程序,并用近邻法分类 % 主要模拟多目标的运动和观测过程,涉及融合算法-近邻法 function MTT_Model_With_NNClass_PF_SingleStation % % 初始化参数 % 观测站位置,随机的 T=10; % 仿真时间长度 TargetNum=3; % 目标个数 dt=1; % 采样时间间隔 S.x=100*rand; % 观测站水平位置 S.y=100*rand; %
9、 观测站纵向位置 F=1,dt,0,0;0,1,0,0;0,0,1,dt;0,0,0,1; % 采用CV模型的状态转移矩阵 G=0.5*dt2,0;dt,0;0,0.5*dt2;0,dt; % 过程噪声驱动矩阵 H=1,0,0,0;0,0,1,0; % 观测矩阵,跟踪误差,跟踪轨迹,5、粒子滤波在电池寿命预测中的应用,状态方程观测方程原始实验数据(右图),5、粒子滤波在电池寿命预测中的应用,程序清单 % % 函数功能:粒子滤波用于电源寿命预测 function main % % 初始化 load Battery_Capacity % 运行程序时需要将Battery_Capacity.mat文件
10、拷贝到程序所在文件夹 N=length(A12Cycle); % cycle的总数 M=200; % 粒子总数目 Future_Cycle=100; % 未来趋势 if N260N=260; % 滤除大于260以后的数字 end,参考资料,目 录 第一部分 原理篇 1 第一章 概述 1 1.1 粒子滤波的发展历史 1 1.2 粒子滤波的优缺点 2 1.3 粒子滤波的应用领域 3 第二章 蒙特卡洛方法 4 2.1 概念和定义 4 2.2 蒙特卡洛模拟仿真程序 5 2.2.1硬币投掷实验(1) 5 2.2.2硬币投掷实验(2) 5 2.2.3古典概率实验 6 4.2.4几何概率模拟实验 7 2.2
11、.5复杂概率模拟实验 7 2.3 蒙特卡洛理论基础 10 2.3.1大数定律 10 2.3.2中心极限定律 10 2.3.3蒙特卡洛的要点 11 2.4 蒙特卡洛方法的应用 13 2.4.1 Buffon实验及仿真程序 13 2.4.2 蒙特卡洛方法计算定积分的仿真程序 14 第三章 粒子滤波 19 3.1 粒子滤波概述 19 3.1.1 蒙特卡洛采样原理 19 3.1.2 贝叶斯重要性采样 20 3.1.3 序列重要性抽样(SIS)滤波器 20 3.1.4 Bootstrap/SIR滤波器 22 3.2 粒子滤波重采样方法实现程序 23 3.2.1 随机重采样程序 24 3.2.2 多项式重
12、采样程序 25 3.2.3 系统重采样程序 26 3.2.4 残差重采样程序 27 3.3 粒子滤波原理 28 3.3.1 高斯模型下粒子滤波的实例程序 28,参考资料,第二部分 应用篇 33 第四章 粒子滤波在单目标跟踪中的应用 33 4.1 目标跟踪过程描述 33 4.2 单站单目标跟踪系统建模 34 4.3 单站单目标观测距离的系统及仿真程序 37 4.3.1 基于距离的系统模型 37 4.3.2 基于距离的跟踪系统仿真程序 38 4.4 单站单目标纯方位角度观测系统及仿真程序 43 4.4.1 纯方位目标跟踪系统模型 43 4.4.2 纯方位跟踪系统仿真程序 44 4.5 多站单目标纯
13、方位角度观测系统及仿真程序 47 4.5.1 多站纯方位目标跟踪系统模型 47 4.5.2 多站纯方位跟踪系统仿真程序 48 第五章 粒子滤波在多目标跟踪中的应用 54 5.1 多目标跟踪系统建模 54 5.1.1 单站多目标跟踪系统建模 54 5.1.2 多站多目标跟踪系统建模 55 5.1.3 单站多目标线性跟踪系统的建模仿真程序 55 5.1.4 多站多目标非线性跟踪系统的建模仿真程序 57 5.2 多目标跟踪分类算法 61 5.2.1 多目标数据融合概述 61 5.2.2 近邻法分类算法及程序 62 5.2.3 近邻法用于目标跟踪中的航迹关联及算法程序 66 5.2.4 K-近邻法分类算法 69 5.3 粒子滤波用于多目标跟算法中的状态估计 70 5.3.1 原理介绍 70 5.3.2 基于近邻法的多目标跟踪粒子滤波程序 71 第六章 粒子滤波在电池寿命预测中的应用 76 6.1 概述 76 6.2 电池寿命预测的模型 78 6.3 基于粒子滤波的电池寿命预测仿真程序 81,谢谢大家!,