【WSN布局】基于LICHTENBERG算的多目标传感器选择和放置优化问题研究附matlab代码

简介: 【WSN布局】基于LICHTENBERG算的多目标传感器选择和放置优化问题研究附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测雷达通信 无线传感器

信号处理图像处理路径规划元胞自动机无人机 电力系统

⛄ 内容介绍

随着无线传感器网络(Wireless Sensor Network,WSN)技术的不断发展,越来越多的WSN技术已经应用到了智能家居,智慧交通等领域.WSN属于一种重要的ad hoc网络,它由很多具有感知和数据处理能力的传感节点以自组织或多跳的方式搭建.目前,WSN的研究工作主要集中在网络技术和通信协议方面,关于传感器网络部署优化的研究还很少.在空旷的农场或森林部署WSN,一般做法是通过飞机进行高空随机抛撒.但是,这种方法可能出现大量的多余节点和覆盖漏洞.因此,如何用尽量少的传感节点感知最大的区域是WSN部署优化中一个亟待研究的问题.在广阔的农场环境或森林中,需要准备许多传感节点,节点大部分靠电池供电,但是,电池能量是有限的,并且无法更换.因此,如何使用相同数量的节点,达到最长的网络寿命成为WSN部署优化中另一个倍受瞩目的问题.

⛄ 部分代码

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%           Multi-objective Sensor Selection Optimization based on

%                      Lichtenberg Algorithm (MOSSOLA)

%

%         AUTHORS: Jo茫o Luiz Junho Pereira and Guilherme Ferreira Gomes

%

%         A Hybrid PHYSICS-based Multi-objective Metaheuristic with

%         Feature Selection for Sensor Placement Optimization (SPO)

%

%   Please cite this algorithm as:

%

% Pereira, J.L.J., Francisco, M.B., Souza Chaves, J. A., Sebasti茫o Sim玫es Cunha Jr & Gomes, G. F.

% Multi-objective sensor placement optimization of helicopter rotor blade based on feature selection.

% Mechanical Systems and Signal Processing. 2022.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


close all

clear all

clc

format long

warning off


set(0,'DefaultAxesFontName', 'Times New Roman')

set(0,'DefaultAxesFontSize', 12)

set(0,'DefaultTextFontname', 'Times New Roman')

set(0,'DefaultTextFontSize', 12)

opengl('save', 'software')


% Importing natural frequencies in FEM structure (Main Rotor Blade - MRB)

F=importdata('natural_frequencies.txt');

wn1=F.data(1:9,2); wn = [wn1(1) wn1(2) wn1(3) wn1(4) wn1(6) wn1(9)];


% Importing All sensor candidates from FEM structure (34 well spaced nodes

% in MRB)

S=importdata('Sensors.txt');


% Importing mode shapes in FEM structure (MRB)

M1=importdata('Mode1.txt'); M1x=M1.data(:,5); M1y=M1.data(:,6);M1z=M1.data(:,7);

M2=importdata('Mode2.txt'); M2x=M2.data(:,5); M2y=M2.data(:,6);M2z=M2.data(:,7);

M3=importdata('Mode3.txt'); M3x=M3.data(:,5); M3y=M3.data(:,6);M3z=M3.data(:,7);

M4=importdata('Mode4.txt'); M4x=M4.data(:,5); M4y=M4.data(:,6);M4z=M4.data(:,7);

M6=importdata('Mode6.txt'); M6x=M6.data(:,5); M6y=M6.data(:,6);M6z=M6.data(:,7);

M9=importdata('Mode9.txt'); M9x=M9.data(:,5); M9y=M9.data(:,6);M9z=M9.data(:,7);


% Calculating Total displacements (triaxial)

M1T = sqrt(M1x.^2+M1y.^2+M1z.^2); M2T = sqrt(M2x.^2+M2y.^2+M2z.^2); M3T = sqrt(M3x.^2+M3y.^2+M3z.^2);

M4T = sqrt(M4x.^2+M4y.^2+M4z.^2); M6T = sqrt(M6x.^2+M6y.^2+M6z.^2); M9T = sqrt(M9x.^2+M9y.^2+M9z.^2);

Modos = [M1T M2T M3T M4T M6T M9T];


% Optimizator Parameters

UB = ones(1,length(S)); % Uper bounds

LB = 0*UB;              % lower bounds

pop = 100;              % Population

n_iter = 100;           % Max number os iterations/gerations

ref = 0.4;              % if more than zero, a second LF is created with refinement % the size of the other

Np = 100000;            % Number of Particles (If 3D, better more than 10000)

S_c = 1;                % Stick Probability: Percentage of particles that can don麓t stuck in the

                       % cluster. Between 0 and 1. Near 0 there are more aggregate, the density of

                       % cluster is bigger and difusity is low. Near 1 is the opposite.

Rc = 150;               % Creation Radius (if 3D, better be less than 80, untill 150)

M = 0;                  % If M = 0, no lichtenberg figure is created (it is loaded a optimized figure); if 1, a single is created and used in all iterations; If 2, one is created for each iteration.(creating an LF figure takes about 2 min)

d = length(UB);         % problem dimension

ngrid = 30;             % Number of grids in each dimension

Nr = 100;               % Maximum number of solutions in PF


% Sensor Placement Optimization Parameters

C = 1;                 % METRIC USED (KE=1;EfI=2,ADPR=3;EVP=4;IE=5;FIM=6;MAC=7)

NS = 6;                % Sensor Congiguration solution with NS sensors (select from PARETO FRONT after optimization with all sensors numbers)


[x,fval] = LA_optimization(@(x)objectives(x,Modos,S,wn,C),d,pop,LB,UB,ref,n_iter,Np,Rc,S_c,M,ngrid,Nr,@constraint);


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%PARETO FRONT FIGURE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


% figure

% plot(fval(:,1),fval(:,2),'ZDataSource','',...

%     'MarkerFaceColor',[0 0 1],...

%     'MarkerEdgeColor',[0 0 0],...

%     'MarkerSize',4,...

%     'Marker','o',...

%     'LineWidth',0.1,...

%     'LineStyle','none',...

%     'Color',[0 0 0]);

% hold on

% box on

% %plot(fval(best_pos,1),fval(best_pos,2),'MarkerFaceColor',[1 1 0],'MarkerSize',14,'Marker','pentagram','LineWidth', 0.2, 'LineStyle','none','Color',[0 0 0]);

% %legend('PF','TOPSIS');

% % set(0,'DefaultAxesFontSize', 10)

% % set(0,'DefaultTextFontSize', 10)

% set(findall(gcf,'-property','FontName'),'FontName','Italic')

% set(findall(gcf,'-property','FontAngle'),'FontAngle','italic')

% set(gcf,'position',[200,200,350,200])

% %title('Non-dominated solutions','fontweight','bold');

% % axis([0 -0.01 0 30])

% xlabel('J=max(diag(MAC))')

% ylabel('Number of Sensors')


%%%%%%%%%%%%%%%%%%%%%%%%%%%TO CALCULATE HYPERVOLUME%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Simulation = 0;

% for i =1:10

%  Simulation = Simulation + 1

% [x,fval] = LA_optimization(@(x)objectives(x,Modos,S,wn,C),d,pop,LB,UB,ref,n_iter,Np,Rc,S_c,M,ngrid,Nr,@constraint);

% HV_Score(i) = HV(fval,length(S))

% end

%

% mean(HV_Score)


%%%%%%%%%%%%%%%%%%%%%%%%TO PLOT THE SELECTED SENSORS IN STRUCTURE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

x = round(x);

for i = 1 : length(x)

P(i) = sum(x(i,:));

end

best_pos=find(P==NS);

Xbest = round(x(best_pos,:));

for i=1:length(S)

  SLCT(i) = S(i)*Xbest(1,i);

end

SLCT(find(SLCT==0))=[];

FITNESS = fval(best_pos,:);

NUMBERofSENSORS = FITNESS(1,2)

METRICfitness = FITNESS(1,1)

SENSORS = SLCT

ALLNODES = importdata('NODES.txt'); %ALL NODES IN FEM STRUCTURE (TO PLOT STRUCTURAL FIGURE)

NODES = [ALLNODES(:,2) ALLNODES(:,3)];

theta = -90; % to structure figure rotate in 90掳 counterclockwise

R = [cosd(theta) -sind(theta); sind(theta) cosd(theta)];

C = (R*NODES')';

%Sensor Points

for i = 1 : length(SENSORS)

   PS(i,:) = [C(SENSORS(i),1) C(SENSORS(i),2)];

end

%Plot

figure

plot(C(:,1),C(:,2),'.k')

hold on

plot(PS(:,1),PS(:,2),'ZDataSource','',...

   'MarkerFaceColor',[1 0 0],...

   'MarkerEdgeColor',[1 0 0],...

   'MarkerSize',8,...

   'Marker','o',...

   'LineWidth',0.1,...

   'LineStyle','none',...

   'Color',[1 0 0]);

axis equal

axis([-1 5.2 -0.5 0.2])

set(gcf,'position',[200,200,900,300])

⛄ 运行结果

⛄ 参考文献

[1]伊廷华, 李宏男, 顾明,等. 基于MATLAB平台的传感器优化布置工具箱的开发及应用[J]. 土木工程学报, 2010(12):7.

[2]郎健. 无线传感器网络部署优化研究与仿真[D]. 北京工业大学.

⛄ Matlab代码关注

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料



相关文章
|
9天前
|
算法
基于大爆炸优化算法的PID控制器参数寻优matlab仿真
本研究基于大爆炸优化算法对PID控制器参数进行寻优,并通过Matlab仿真对比优化前后PID控制效果。使用MATLAB2022a实现核心程序,展示了算法迭代过程及最优PID参数的求解。大爆炸优化算法通过模拟宇宙大爆炸和大收缩过程,在搜索空间中迭代寻找全局最优解,特别适用于PID参数优化,提升控制系统性能。
|
9天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-GRU网络的数据分类识别算法matlab仿真
本项目展示了使用MATLAB2022a实现的贝叶斯优化、CNN和GRU算法优化效果。优化前后对比显著,完整代码附带中文注释及操作视频。贝叶斯优化适用于黑盒函数,CNN用于时间序列特征提取,GRU改进了RNN的长序列处理能力。
|
1月前
|
算法 调度
基于遗传模拟退火混合优化算法的车间作业最优调度matlab仿真,输出甘特图
车间作业调度问题(JSSP)通过遗传算法(GA)和模拟退火算法(SA)优化多个作业在并行工作中心上的加工顺序和时间,以最小化总完成时间和机器闲置时间。MATLAB2022a版本运行测试,展示了有效性和可行性。核心程序采用作业列表表示法,结合遗传操作和模拟退火过程,提高算法性能。
|
1月前
|
机器学习/深度学习 算法 调度
基于ACO蚁群优化的VRPSD问题求解matlab仿真,输出规划路径结果和满载率
基于ACO蚁群优化的VRPSD问题求解MATLAB仿真,输出ACO优化的收敛曲线、规划路径结果及每条路径的满载率。在MATLAB2022a版本中运行,展示了优化过程和最终路径规划结果。核心程序通过迭代搜索最优路径,更新信息素矩阵,确保找到满足客户需求且总行程成本最小的车辆调度方案。
|
4月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
212 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
4月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
135 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
4月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
95 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
7月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
7月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)