您现在的位置:首页 >> 智能优化 >> 内容

m基于虚拟力优化算法的二维室内红外传感器部署策略matlab仿真

时间:2023/6/10 23:47:04 点击:

  核心提示:09_057_m,包括程序操作录像+说明文档+参考文献...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/ZJqUmJds

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览



3.算法概述

        红外传感器在室内环境监测、安防、智能控制等领域中得到了广泛应用。在室内部署红外传感器时,其位置的选择对于传感器的性能和信号质量有着至关重要的影响。因此,如何确定红外传感器的最佳部署位置成为了一个热门的研究课题。本文将介绍一种基于虚拟力优化算法的二维室内红外传感器部署策略,并重点介绍虚拟力算法在该策略中的应用。

4.部分源码

...........................................................................

%下面这个for是优化适应度值的初始化计算

for i=1:Num

    XYZ1=[x(i,1:(dim-2)/2);x(i,1+(dim-2)/2:(dim-2))];

    NUM1          = 10;

    NUM2          = 10;

    [p(i),X1,Y1,f1,f2] = func_obj1(XYZ1,NUM1,NUM2);

    y(i,:)= x(i,:);

end

%全局最优

pg = x(1,:);             

%下面这个for是优化适应度值的初始化计算 

for i=2:Num

    XYZ1=[x(i,1:(dim-2)/2);x(i,1+(dim-2)/2:dim-2)];

    NUM1          = 10;

    NUM2          = 10;

    [pa(i),X1,Y1,f1,f2] = func_obj1(XYZ1,NUM1,NUM2);

    [pb(i),X1,Y1,f1,f2] = func_obj1(XYZ1,NUM1,NUM2);

    if pa(i) < pb(i)

       pg=x(i,:);

    end

end

 

for t=1:MAXGEN%开始优化

    t

    for i=1:Num

        Fx(i,:) = w*Fx(i,:)+rand*(pg(1:(dim-2)/2)        -x(i,1:(dim-2)/2));%水平力

        Fy(i,:) = w*Fy(i,:)+rand*(pg(1+(dim-2)/2:(dim-2))-x(i,1+(dim-2)/2:(dim-2)));%垂直力

        Fxy     = sqrt(Fx(i,:).^2+Fy(i,:).^2);

        

        Fxn(i,:) = w*Fxn(i,:)+rand*(pg(dim-1)-x(i,dim-1));%水平力

        Fyn(i,:) = w*Fyn(i,:)+rand*(pg(dim)  -x(i,dim));%垂直力

        Fxyn    = sqrt(Fxn(i,:).^2+Fyn(i,:).^2);        

        %更新变量

        x(i,1:(dim-2)/2)         = x(i,1:(dim-2)/2)+Fx(i,:)./Fxy*max_sensor;

        x(i,1+(dim-2)/2:(dim-2)) = x(i,1+(dim-2)/2:(dim-2))+Fy(i,:)./Fxy*max_sensor;

        x(i,dim-1) = x(i,dim-1)+Fxn(i,:)./Fxyn*max_sensor;

        x(i,dim)   = x(i,dim)  +Fyn(i,:)./Fxyn*max_sensor;        

        

        

        XYZ1=[x(i,1:(dim-2)/2);x(i,1+(dim-2)/2:(dim-2))];

        NUM1        = floor(x(i,dim-1));

        NUM2        = floor(x(i,dim));

        if NUM1>=N1

           NUM1=N1;

        end

        if NUM2>=N2

           NUM2=N2;

        end

        

        %适应度值的计算 

        [pa(i),X1,Y1,f1,f2,NX1,NX2] = func_obj1(XYZ1,NUM1,NUM2);

        if pa(i)<p(i)

           p(i)  = pa(i);

           y(i,:)= x(i,:);

        end

 

        XYZ1=[pg(1:(dim-2)/2);pg(1+(dim-2)/2:(dim-2))];

        NUM1        = floor(x(i,dim-1));

        NUM2        = floor(x(i,dim));

        if NUM1>=N1

           NUM1=N1;

        end

        if NUM2>=N2

           NUM2=N2;

        end

        %适应度值的计算 

        [pb(i),X1,Y1,f1,f2,NX1,NX2] = func_obj1(XYZ1,NUM1,NUM2);

        if p(i)<pb(i)

           pg=y(i,:);

        end

    end

    XYZ1=[pg(1:(dim-2)/2);pg(1+(dim-2)/2:(dim-2))];

    NUM1        = floor(x(i,dim-1));

    NUM2        = floor(x(i,dim));

        if NUM1>=N1%变量的约束

           NUM1=N1;

        end

        if NUM2>=N2%变量的约束

           NUM2=N2;

        end

    [pc,X1,Y1,f1,f2,NX1,NX2] = func_obj1(XYZ1,NUM1,NUM2);%适应度值的计算 

    Pbest(t)  = pc;

end

 

 

 

figure;

plot(1:10:MAXGEN,1-Pbest(1:10:end),'-r>',...

    'LineWidth',1,...

    'MarkerSize',6,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor',[0.9,0.9,0.0]);

grid on

xlabel('迭代次数');

ylabel('虚拟力算法优化过程');

legend('Average fitness');

 

%覆盖率

disp('覆盖率');

f1

%安装难易度

disp('安装难易度');

f2

 

 

 

[X1,Y1,NUM1_new,NUM2_new]=func_delete([X1;Y1],NX1,NX2);

%最优传感器数量

disp('最优传感器数量');

Nopt1 = NUM1_new

Nopt2 = NUM2_new

 

figure;

%显示障碍物

for i = 1:Nr1

    plotcube([L(i) W(i) 0],[X3(i),Y3(i),0],1,[0.8 0.9 0]);

    hold on

end

for i = 1:Nr2

    [x,y]=circle(R4(i),X4(i),Y4(i));

    plot(x,y,'g','linewidth',2);

    hold on

end

for i = 1:length(X1)

    if i<=Nopt1

    [x,y]=circle(Rad1,X1(i),Y1(i));

    plot(x,y,'r','linewidth',1);

    else

    %第一、传感器不用球或者圆替代,进行和原来一样的显示    

    rectangle('Position', [X1(i)-Rad2,Y1(i)-Rad2,2*Rad2,2*Rad2], 'LineWidth', 1, 'EdgeColor', 'b', 'Clipping', 'off')

    end

    

    hold on

    plot(X1(i),Y1(i),'r.');

end

view([0,90]);

axis equal

axis([0,SCALE,0,SCALE]);

09_057_m

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168