【无线传感器】WSN查找两个节点之间的最短路径并发送数据研究(Matlab代码实现)

 👨‍🎓个人主页:研学社的博客     

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

WSN 在节点之间具有范围容差(您可以选择范围 - 以米为单位)。一旦节点建立连接,适当的范围公差(位置在1km x 1km地形中随机排序)。最短路径 alg 获取路由并开始将数据从节点 1(源)发送到节点 2(目标),直到路由路径中涉及的任何节点节点因能量故障而死亡(路由中涉及的所有节点都会降低其能量 - 也是随机定义的)。路由失败后,它会获得下一个最短的路由并继续发送。依此类推,直到源和目标之间没有路径。

📚2 运行结果

 

 

部分代码:

%% Initialize patch existance test for loops

fileID = fopen('report-noACO-simulation.txt','w'); %Open file to collect data to external file
fprintf(fileID,'%6s %20s %20s %20s %20s\r\n','|NodeNo|','|No ACO Scene|','|Hops|','|Packets sent|','|Dead node|');

while ~isempty(G2.Edges)
    G2 = shortestpathtree(G,1,2);
    iterationcounter=iterationcounter+1;
    % Test if there is connection between node 1 and 2. If not, terminate!
    if isempty(G2.Edges)
        break
    end
    
    %Find edges found by shorthestpathtree in main G object
    for a = 1 : height(G2.Edges)
        source = G2.Edges.EndNodes(a,1);
        target = G2.Edges.EndNodes(a,2);
        garbage.edgesrow(a,:) = findedge(G,source,target);
    end

    %Find nodes involved in routing event
    garbage.routingnodes = unique(G2.Edges.EndNodes);
    garbage.routepath = shortestpath(G,1,2);
            
    %Construct localization dataset to nodes involved in routing event for plot effects
    for a = 1 : length(garbage.routingnodes)
        garbage.b=garbage.routingnodes(a,1);
        dataset.routingnodesPosition(a,:)=dataset.nodePosition(garbage.b,:);
    end
        
    %Find nodes not involved in routing to energy increase
    [garbage.Outroutenodes, garbage.Outroutenodesidx] = setdiff(dataset.nodePosition(:,1),garbage.routingnodes(:,1),'stable');
    
    %Code block for energy usage (decrease) and packet send count
    while min(dataset.nodePosition(:,4))>0 
        for a = 1 : length(garbage.routingnodes)
            node=garbage.routingnodes(a,1);
            dataset.nodePosition(node,4)=dataset.nodePosition(node,4)-dataset.energyconsumptionperCicle^rand()+dataset.energyrecoveryperCicle^rand();
            packet=packet+1;
               
        end

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]李丰,伍彩虹.无线传感器网络在环境监测中的运用分析[J].皮革制作与环保科技,2022,3(23):55-56+66.DOI:10.20025/j.cnki.CN10-1679.2022-23-18.

[2]张锐.无线传感器网络异常数据处理方法研究[J].长江信息通信,2022,35(07):60-62.

🌈4 Matlab代码实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值