一、基于粒子滤波污染源定位简介

粒子滤波定位算法是目前最精准定位可移动物体的位置,由于水域的流动,工业固体废物污染源很可能随着水流移动位置,基于粒子滤波算法将污染物定位分为预测、测量以及重新采样可大大提高定位准确率[10]。粒子滤波算法的定位过程首先根据水流速度以及前一时刻水域的污染浓度预测出目前水域污染浓度最高的区域,其次对每个可能为污染源的位置进行权重计算,最后将所有污染源权重进行筛选,剔除权值较小的污染源,留下权值最高的污染源,并重复训练直到获取唯一一个权值最高的污染源,即实现工业固体废物污染定位。

1 预测阶段
在此阶段中首先设置出所需粒子个数,并将所有粒子平分到受到污染的水域中,基于粒子滤波算法得出提议分布,当污染源在时间t-1中的定位是Xt-1(xt-1,yt-1,θt-1),则时间t的污染源定位是Xt(xt,yt,θt),污染源的运动速度即为水流速度,则工业固体废物污染源在时间t到t-1之间位置的变化表达式(5)为:

首先利用摄像机和激光扫描仪在水域污染浓度较高的区域进行扫描,假设摄像机以及激光扫描仪获取到的固体点特征角度表达式(6)为:

为将激光扫描仪角度数据与摄像机中的物体角度信息进行中和,需要对摄像机中的物体点角度数据进行旋转变换根据角度信息公式将两种设备之间的角度信息进行转换,且转换时必须满足误差正态分布,则转换表达式(7)为:

根据式(9)将两种设备的废物样本集成到提议分布内,进而使得提议分布函数更加集中,即样本范围更小,更容易对污染源进行定位,此时的提议分布函数表达式(9)为:

上式即为根据状态转移函数得出的粒子滤波状态提议分布。

2 测量阶段
在此阶段直接将激光扫描数据当成输入,进而获取工业固体废物的位置信息,则通过激光扫描仪位置转换生成设备与工业固体废物之间的几何关系表达式(10)为:

式中,xt代表设备的具体位置,θ代表设备扫描物体的角度,d代表设备与观测到的物体之间的直线距离,β代表物体的角度。

在激光数据中获取疑似为工业固体废物污染源的观测值,并对其中的各个粒子进行权重评价,其表达式(11)为:

根据粒子的权重判断粒子是否为真的工业固体废物。

3 重采样阶段
根据每个粒子的权重大小决定是否保留该粒子,设置一个可接受范围,判断粒子是否在此范围内,为保证粒子不变,复制权重较大的粒子填补空缺位置,重组粒子后将所有粒子输入状态转移函数内,并反复进行训练,保证最终污染源定位的准确性,实现工业固体废物污染源的定位。

二、部分源代码

%粒子滤波(定位运动轨迹)
%在二维空间,假设运动物体的一组(非线性)运动位置、速度、加速度数据,用粒子滤波方法进行处理
clc,clear,close all
%% 参数设置
N = 200; %粒子总数
Q = 5; %过程噪声(控制误差) 状态转移方程中使用
R = 5; %测量噪声 由真实位置叠加测量噪声得到测量位置
T = 10; %测量时间(总步数)
theta = pi/T; %旋转角度
distance = 80/T; %每次走的距离(步长)
WorldSize = 100; %世界大小
均值为0且距离大于0 因此权重随着距离增加沿高斯曲线右侧递减
w(i) = (1 / sqrt® / sqrt(2 * pi)) * exp(-(dist)^2 / 2 / R);
end
PCenter(:, 1) = sum(P, 2) / N;%t=1时刻(初始时刻)所有粒子的几何中心位置
% 初始状态(t=1)画图
err(1,1) = norm(X(:, 1) - PCenter(:, 1));%粒子群几何中心与系统真实状态的误差
err(2,1) = wgn(1, 1, 10log10®);
figure(1);
hold on
set(0,‘defaultfigurecolor’,‘w’)
plot(X(1, 1), X(2, 1), ‘r.’, ‘markersize’,30) %真实的初始状态位置(红点表示)
%grid on
axis([0 100 0 100]);
set(gca,‘XTick’,0:10:100) %改变x轴坐标间隔显示 这里间隔为10
set(gca,‘YTick’,0:10:100) %改变y轴坐标间隔显示 这里间隔为10
plot(P(1,

【目标定位】基于matlab粒子滤波的定位算法【含Matlab源码 2161期】相关推荐

  1. 【图像融合】基于matlab导向滤波图像融合【含Matlab源码 1959期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像融合]基于matlab导向滤波图像融合[含Matlab源码 1959期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...

  2. 【Matlab电力负荷预测】粒子群优化支持向量机短期电力负荷预测【含GUI源码 751期】

    一.代码运行视频(哔哩哔哩) [Matlab电力负荷预测]粒子群优化支持向量机短期电力负荷预测[含GUI源码 751期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 ...

  3. 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】

    一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...

  4. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】

    一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...

  5. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  6. 【Matlab人脸识别】BP神经网络人脸识别(含识别率)【含GUI源码 891期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]BP神经网络人脸识别(含识别率)[含GUI源码 891期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  7. 【Matlab人脸识别】形态学教室人数统计(带面板)【含GUI源码 1703期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]形态学教室人数统计(带面板)[含GUI源码 1703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟 ...

  8. 【Matlab人脸识别】人脸实时检测与跟踪【含GUI源码 673期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]人脸实时检测与跟踪[含GUI源码 673期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟逸凡,柳益君 ...

  9. 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】

    一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

  10. 【Matlab语音加密】语音信号加密解密(带面板)【含GUI源码 181期】

    一.代码运行视频(哔哩哔哩) [Matlab语音加密]语音信号加密解密(带面板)[含GUI源码 181期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆 ...

最新文章

  1. linux 脚本continue,shell中的break和continue
  2. php随机数字不重复,php生成N个不重复的随机数
  3. 企业私有云部署im,视频服务
  4. VS2008的C++TR1库已经支持正则表达式
  5. 巧用yield处理文本
  6. GitHub的SSH免密连接
  7. Python配置opencv并在命令行运行
  8. Git的介绍和常用命令使用
  9. Datalogic 得利捷推出超级灵活且坚固可靠的PowerScan 9600 系列 庆祝公司成立50周年
  10. gtest -UT测试框架
  11. 操作系统——四种进程调度算法模拟实现(C语言)
  12. pyhton将列表中的所有元素转为str格式
  13. MVX Android设计架构浅析-MVC
  14. VScode输入感叹号无法生成HTML模板
  15. python程序扩展名 py、pyc、pyo、pyd文件区别
  16. 进入邻居家的无线路由器
  17. 阿龙的学习笔记---《程序员自我修养-链接、装载与库》读书笔记(一)
  18. attachment_fu 已是昨日黄花,今朝请用paperclip
  19. phpmyadmin 弱密码导致一句话木马上传
  20. Kotlin极简教程(第一章 Kotlin简介)

热门文章

  1. SQL实战45.将titles_test表名修改为titles_2017
  2. html style属性的用法
  3. 技术宅用3D打印帮助妻子治疗脑瘤
  4. android优化最强软件,手机提速谁最行?十款安卓优化软件比拼
  5. C++ #include expects “FILENAME“ or <FILENAME>
  6. Java实现XML格式化
  7. python基础之语言发展历史
  8. 刚刚!百度副总裁被抓!
  9. 三步必杀【洛谷P4231】
  10. 如何进行隐私协议测试