




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、clear;clc;%初始化工作Ns = 20;Nn = 200;Vmax = 20;Xrange = 200;Yrange = 200;tr = 50;step = 20;N = 20;Nf = 3; %采样盒子确定时,估计位置要扩大圆面积ns_range = 200; %每个采样盒子的最大采样次数for i = 1:Ns Xseed(1,i)=rand(1,1)*Xrange; Yseed(1,i)=rand(1,1)*Yrange;endfor i = 1:Nn Xnode(1,i)=rand(1,1)*Xrange; Ynode(1,i)=rand(1,1)*Yrange; Xnode
2、_g(1,i)=Xnode(1,i); %MCL估计位置,初始值设置为真实位置 Ynode_g(1,i)=Ynode(1,i);end%初始时刻的粒子群,for every nodefor i = 1:Nn for j = 1:N lx(i,j,1) = Xnode_g(1,i); ly(i,j,1) = Ynode_g(1,i); endend%figure(1);%plot(Xseed,Yseed,bo,Xnode,Ynode,k*);%节点们开始运动,每次定位完成才开始下一次运动,这里假设这个定位过程耗时非常短%仿真步数for k=2:step %新的时刻,节点们先运动一下,RWP模型
3、for i = 1:Ns r = rand(1,1)*Vmax; thita = rand(1,1)*2*pi; Xseed(k,i) = Xseed(k-1,i) + r*cos(thita); if Ynode(k,i) Yrange | Ynode(k,i) 0 Xnode(k,i) = Xnode(k-1,i) + r*cos(thita); Ynode(k,i) = Ynode(k-1,i) - r*sin(thita); end end %对每一个node逐个进行定位 for i = 1:Nn %测试每个seed是否可以用来定位 A1 = ; %存储1跳锚节点序号 A2 = ; %
4、存储2跳锚节点序号 for j = 1:Ns d1 = sqrt(Xnode(k,i)-Xseed(k,j)2+(Ynode(k,i)-Yseed(k,j)2); if d1tr & d1=2*tr for m = 1:Nn if m = i dmi = sqrt(Xnode(k,i)-Xnode(k,m)2+(Ynode(k,i)-Ynode(k,m)2); dms = sqrt(Xnode(k,m)-Xseed(k,j)2+(Ynode(k,m)-Yseed(k,j)2); if dmi=tr & dms=tr A2 = A2 j; end end end end end %接下来要获取采
5、样盒子,每个粒子都要有一个采样盒子,然后还要进行采样,每个采样盒子的采样都要有一个次数限制,这里还是要分四种情况 temp1 = size(A1,2); temp2 = size(A2,2); %第一种情况 if temp1=0 & temp2=0 Xnode_g(k,i)=Xnode_g(k-1,i); Ynode_g(k,i)=Ynode_g(k-1,i); for j = 1:N lx(i,j,k) = 0; %周围没有锚节点,没法进行定位,则粒子群全部置零 ly(i,j,k) = 0; end end %第二种情况 if temp1=0 & temp2=0 for j = 1:N sa
6、mbox1 = Xnode_g(k-1,i)-Nf*Vmax; sambox2 = Xnode_g(k-1,i)+Nf*Vmax; sambox3 = Ynode_g(k-1,i)-Nf*Vmax; sambox4 = Ynode_g(k-1,i)+Nf*Vmax; Xsambox_min(i,j,k) = max(sambox1); Xsambox_max(i,j,k) = min(sambox2); Ysambox_min(i,j,k) = max(sambox3); Ysambox_max(i,j,k) = min(sambox4); %从采样盒子里采样 lx(i,j,k) = unif
7、rnd(Xsambox_min(i,j,k),Xsambox_max(i,j,k),1,1); ly(i,j,k) = unifrnd(Ysambox_min(i,j,k),Ysambox_max(i,j,k),1,1); ns = 1; %滤波 and = ; for m = 1:temp1 d1(m) = sqrt(lx(i,j,k)-Xseed(k,A1(m)2+(ly(i,j,k)-Yseed(k,A1(m)2); end end ns = ns+1; end %进行最终的判断 and = ; for m = 1:temp1 d1(m) = sqrt(lx(i,j,k)-Xseed(k
8、,A1(m)2+(ly(i,j,k)-Yseed(k,A1(m)2); if d1(m)tr and = and 1; end end if sum(and)=0 lx(i,j,k) = 0; ly(i,j,k) = 0; end end %至此 节点 i 的粒子群已经得到 %下面是进行定位,粒子群的优化 num_zero = 0; for j = 1:N if lx(i,j,k) = 0 num_zero = num_zero+1; end end %k时刻的定位位置 if num_zero = N Xnode_g(k,i) = Xnode_g(k-1,i); Ynode_g(k,i) =
9、Ynode_g(k-1,i); end if num_zero = N Xnode_g(k,i) = sum(lx(i,:,k)/(N-num_zero); Ynode_g(k,i) = sum(ly(i,:,k)/(N-num_zero); end %粒子群补全N个 if num_zero = N for j = 1:N lx(i,j,k) = 0; ly(i,j,k) = 0; end end if num_zero = N for j = 1:N if lx(i,j,k) = 0 lx(i,j,k) = Xnode_g(k,i); ly(i,j,k) = Ynode_g(k,i); en
10、d end end end %第三种情况 if temp1=0 & temp2=0 for j = 1:N sambox1 = Xnode_g(k-1,i)-Nf*Vmax; sambox2 = Xnode_g(k-1,i)+Nf*Vmax; sambox3 = Ynode_g(k-1,i)-Nf*Vmax; sambox4 = Ynode_g(k-1,i)+Nf*Vmax; Xsambox_min(i,j,k) = max(sambox1); Xsambox_max(i,j,k) = min(sambox2); Ysambox_min(i,j,k) = max(sambox3); Ysamb
11、ox_max(i,j,k) = min(sambox4); and = and 0; else and = and 1; end end ns = ns+1; end %进行最终的判断 and = ; for m = 1:temp2 d1(m) = sqrt(lx(i,j,k)-Xseed(k,A2(m)2+(ly(i,j,k)-Yseed(k,A2(m)2); if d1(m)tr & d1(m)=2*tr and = and 0; else and = and 1; end end if sum(and)=0 lx(i,j,k) = 0; ly(i,j,k) = 0; end end %至
12、此 节点 i 的粒子群已经得到 %下面是进行定位,粒子群的优化 num_zero = 0; for j = 1:N if lx(i,j,k) = 0 num_zero = num_zero+1; end end %k时刻的定位位置 if num_zero = N Xnode_g(k,i) = Xnode_g(k-1,i); Ynode_g(k,i) = Ynode_g(k-1,i); end if num_zero = N Xnode_g(k,i) = sum(lx(i,:,k)/(N-num_zero); Ynode_g(k,i) = sum(ly(i,:,k)/(N-num_zero);
13、end %粒子群补全N个 if num_zero = N for j = 1:N lx(i,j,k) = 0; ly(i,j,k) = 0; end end if num_zero = N for j = 1:N if lx(i,j,k) = 0 lx(i,j,k) = Xnode_g(k,i); ly(i,j,k) = Ynode_g(k,i); end end end end %第四种情况 if temp1=0 & temp2=0 for j = 1:N sambox1 = Xnode_g(k-1,i)-Nf*Vmax; sambox2 = Xnode_g(k-1,i)+Nf*Vmax;
14、sambox3 = Ynode_g(k-1,i)-Nf*Vmax; sambox4 = Ynode_g(k-1,i)+Nf*Vmax; Xsambox_min(i,j,k) = max(sambox1); Xsambox_max(i,j,k) = min(sambox2); Ysambox_min(i,j,k) = max(sambox3); Ysambox_max(i,j,k) = min(sambox4); %从采样盒子里采样 lx(i,j,k) = unifrnd(Xsambox_min(i,j,k),Xsambox_max(i,j,k),1,1); ly(i,j,k) = unifrn
15、d(Ysambox_min(i,j,k),Ysambox_max(i,j,k),1,1); ns = 1; %滤波 and = ; for m = 1:temp1 d1(m) = sqrt(lx(i,j,k)-Xseed(k,A1(m)2+(ly(i,j,k)-Yseed(k,A1(m)2); if d1(m)=tr and = and 0; end if d1(m)tr and = and 1; end d1(m) = sqrt(lx(i,j,k)-Xseed(k,A2(m)2+(ly(i,j,k)-Yseed(k,A2(m)2); if d1(m)tr & d1(m)=2*tr and = and 0; else and = and 1; end end if sum(and)=0 lx(i,j,k) = 0; ly(i,j,k) = 0; end end %至此 节点 i 的粒子群已经得到 %下面是进行定位,粒子群的优化 num_zero = 0; for j = 1:N if lx(i,j,k) = 0 num_zero = num_zero+1; end end %k时刻的定位位置 if num_zero = N Xnode_g(k,i) = Xnode_g(k-1,i); Ynode_g(k,i) = Ynode_g(k-1,i); end if num_z
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 想象疗法疼痛管理机制-洞察及研究
- 等离子体净化-洞察及研究
- 经前期综合征神经内分泌机制-洞察及研究
- 智能分类算法-洞察及研究
- 碳足迹量化与减排策略-洞察及研究
- 候选人体验管理-洞察及研究
- 全球供应链重构-第1篇-洞察及研究
- 环境变化适应策略-洞察及研究
- 新能源存储技术-第1篇-洞察及研究
- GB/T 45794-2025城市公共设施城市家具系统维护与管理指南
- 新版统编版一年级道德与法治下册全册教案(完整版)教学设计含教学反思
- 2025年上半年广东汕尾市城区招聘政府聘员69人易考易错模拟试题(共500题)试卷后附参考答案
- 2024年不动产登记代理人《地籍调查》考试题库大全(含真题、典型题)
- 2025版MCN公司艺人合作签约合同范本3篇
- 财务服务协议书
- YC/Z 623-2024烟草商业企业卷烟物流应急作业指南
- GB/T 45098-2024营运纯电动汽车换电服务技术要求
- 物联网安全风险与防护
- 2025年中考英语话题作文范文20篇
- 包装产品设计部门规划
- 2024年中国一次性内裤市场调查研究报告
评论
0/150
提交评论