目录
💥1 概述
📚2 运行结果
🎉3 参考文献
👨💻4 Matlab代码
💥1 概述
随着微电子技术的不断发展,被称作传感器节点的微小智能嵌入式设备不断的被开发出来,推动了无线传感器网络的发展。一个典型的无线传感器网络是由大量的微型传感器节点组成,并且能够对监测区域进行信息的收集以及对这些收集到的信息进行分析。由于单个节点能量是有限的,一般情况下很难更换电池或进行能量补充,如何在保证一定覆盖质量的情况下,有效调度节点工作或休眠,尽可能延长网络生存时间,是无线传感网大规模应用需要解决的难题。针对这一问题,本文的主要工作如下:
1)研究无线传感网络的节点调度算法,根据节点调度的特点和需求对无线传感网节点调度算法进行了分类和总结。
2)针对无线传感网络节点覆盖能量的有效利用、监测生命周期的延长等问题提出了一种低冗余高覆盖节点调度算法。
📚2 运行结果
主函数部分代码:
% 无线传感网络能耗 % 建议将无限传感网络中,相关参数用结构体WSN储存起来,方便传参 % ----初始化变量 % clear all % 检测区域半径 wsn.r_all=150; % 检测区域形状 wsn.shape='circle'; % 传感器数量 wsn.num=180; % 传感器初始能量; wsn.base_en=0.5; % 最大模拟轮数 wsn.max_round=1000; % 基站坐标 wsn.base_lo=[0,0]; % 生成初始节点 wsn.point=wsn_point_create(wsn); % 是否读取已生产数据 flag_load=false if flag_load load data\base_data else save data\base_data wsn end % 绘制生成的节点,可以注释掉 plot(wsn.point(:,1),wsn.point(:,2),'.'); % -----初始化统计变量 % 统计距离的平方函数,减少计算量 wsn.pdist=squareform(pdist(wsn.point(:,1:2),'squaredeuclidean')); % 初始化Leach变量 G=zeros(wsn.num,1); % --初始化各项统计数据-- % 统计每轮节点数据 ST_R=struct; % 统计其他参数 ST_N.first_death=false; % -----主循环 for round=1:wsn.max_round % 路由算法对节点分簇 [wsn,G]=router_leach(wsn,round,G); % 绘制节点分簇图(每多少轮绘制一次图) if mod(round,100)==0 wsn_plot(wsn); end % 根据分簇情况计算能量消耗 wsn=wsn_energy_con(wsn); % --统计相关信息-- % 统计节点每轮情况 ST_R(round).point=wsn.point; ST_R(round).r_all=wsn.r_all; % 统计节点每轮剩余能量总和 ST_R(round).en=sum(wsn.point(:,3)); % 统计每轮存活点数 ST_R(round).alive_num=sum(wsn.point(:,5)); % 统计节点第一次死亡时轮数 if ~ST_N.first_death if ~isempty(find(wsn.point(:,5)==0, 1)) ST_N.first_death=round; end end % 中止判断 if isempty(find(wsn.point(:,5), 1)) break; end end
🎉3 参考文献
[1]屠燕春,郭爱煌.基于协同分集的无线传感网络路由与信道分析[J].计算机工程与设计,2007(21):5130-5132+5284.
部分理论引用网络文献,若有侵权联系博主删除。