没有合适的资源?快使用搜索试试~ 我知道了~
首页基于PSO算法的Rssi测距定位
一:由Rssi定位(平面)建立模型 MATLAB作图如下: 附代码:Node_num为锚节点数,Node(i).x,Node(i).y为各个锚节点坐标,Zd(i)为Rssi测量距离 [x,y]=meshgrid(1:0.5:100,1:0.5:100); z=0; for i=1:Node_num z=z+(sqrt((x-Node(i).x).^2+(y-Node(i).y).^2)-Zd(i)).^2; end %***************************************** %PSO算法 %%参数初始化 c1=1.45445; c2=1.45445; m
资源详情
资源评论
资源推荐

基于基于PSO算法的算法的Rssi测距定位测距定位
一:由Rssi定位(平面)建立模型
MATLAB作图如下:
附代码:Node_num为锚节点数,Node(i).x,Node(i).y为各个锚节点坐标,Zd(i)为Rssi测量距离
[x,y]=meshgrid(1:0.5:100,1:0.5:100);
z=0;
for i=1:Node_num
z=z+(sqrt((x-Node(i).x).^2+(y-Node(i).y).^2)-Zd(i)).^2;
end
%*****************************************
%PSO算法
%%参数初始化
c1=1.45445;
c2=1.45445;
maxgen=100;%迭代次数
sizeop=100; %种群大小
vmax=1;
vmin=-1; %速度限制
popmax=100;
popmin=0; %边界限定
%%初始化粒子位置和速度
for i=1:sizeop
pop(i,:)=(100*rands(1,2)+100)/2; %初始化位置,由于是二元函数,所以是两组
v(i,:)=rands(1,2);%初始化速度,2组
%计算适应度
fitness(i)=fun(pop(i,:),Node_num,Node,Zd);
end
%%个体极值和群体极值
[bestfitness,bestIndex]=min(fitness);
zbest=pop(bestIndex,:);%群体最佳
gbest=pop();%个体最佳
fitnessgbest=fitness;%个体最佳适应度值
fitnesszbest=bestfitness;%群体最佳适应度值
%%迭代寻优
for i=1:maxgen
for j=1:sizeop
%速度更新
v(j,:)=v(j,:)+c1*rand*(gbest(j,:)-pop(j,:))+c2*rand*(zbest-pop(j,:));
v(j,find(v(j,:)>vmax))=vmax;


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0