无人机启用的无线传感器网络中的节能数据收集(Matlab代码实现)

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

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

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

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

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、数据、文章


💥1 概述

文献来源:

摘要:
在无线传感器网络中,利用无人机(UAV)作为传感器节点(SNs)的移动数据收集器是一种节能的技术,可以延长网络的寿命。在本文中,考虑了传感器节点和无人机之间的一般衰落信道模型,我们联合优化传感器节点的唤醒时间表和无人机的轨迹,以最小化所有传感器节点的最大能量消耗,同时确保可靠地从每个传感器节点收集所需数量的数据。我们将我们的设计建模为一个混合整数非凸优化问题。通过应用逐步凸优化技术,提出了一种高效的迭代算法,用于找到一个次优解。数值结果表明,与基准方案相比,所提出的方案实现了显著的网络节能。

无线传感器网络(WSNs)通常由大量成本低廉的传感器节点(SNs)组成,这些节点通常由电池等有限能源供电,一旦耗尽就很难充电[1]。因此,对于传感器节点而言,节能的感知和通信技术对于延长WSNs的寿命至关重要。最近在利用无人机(UAV)作为WSN中地面传感器节点的移动数据收集器方面引起了越来越多的兴趣[2]。通过利用其高度的移动性,无人机能够高效地从传感器节点收集数据,因为它可以依次访问传感器节点,并且只有当它移动到足够靠近每个传感器节点时才从它们那里收集数据。因此,每个活跃传感器节点到无人机的链路距离显著缩短,这节省了所有传感器节点的传输能量。已经表明,无人机和地面终端之间的短距离的直射(LoS)通信链路可以通过适当设计无人机的轨迹在各种无人机启用的无线网络中有效利用,以提高性能[3]–​[5]。对于无人机启用的WSNs,睡眠和唤醒机制是另一种有用的技术,可节省传感器节点的能量消耗[6]。

对于无人机(UAV)启用的无线传感器网络(WSNs),睡眠和唤醒机制是另一种有用的技术,可用于节省传感节点(SNs)的能耗[6]。通过这种机制,传感节点在未收到来自附近无人机的良好信号强度的唤醒信标之前会保持睡眠状态,一旦收到信标,它们将唤醒并开始向无人机发送数据,传输完成后又返回睡眠状态。在设计用于数据收集的无人机启用的无线传感器网络时,存在两个关键问题。第一个问题是由于传感节点的有限电池能量。因此,传感节点的唤醒计划应该得到适当设计,以便每个传感节点在最小能耗下完成数据传输。第二个问题是由于传感节点和移动无人机之间的高度动态的无线信道,这些信道容易出现数据包丢失[7],特别是在实际情况下,当存在多径引起的信道衰落时。因此,无人机的轨迹应该得到适当设计,以确保每个传感节点在唤醒状态时能够以较低的中断概率传输数据。详细讲解见第4部分。

📚2 运行结果

 

部分代码:

clear all
close all

addpath('./src')
global u q0 qF

istrain = 0

if istrain == 1
    %% Optimization
    Q = {};
    X  = {};
    Theta = {};
    Lo = {};

    for T = [40 50 100]

        disp(['T =' num2str(T) ', start'])

        [q, x, th, lo]= solveP1('T', T,'Sk',10*(10^6),'epsilon',10^-2); 

        disp(['T =' num2str(T) ', end'])

        Q = cat(1, Q, {q});
        X = cat(1, X, {x});
        Theta = cat(1,Theta,{th});
        Lo = cat(1,Lo, {lo});
    end
else
    load('./data/Fig1.mat')
    parameter_setting('Sk',10*(10^6),'epsilon',10^-2);
end
%% figure 1.(a)
figure(11)
hold on    
plot(Q{1}(1,:),Q{1}(2,:), '--b',Q{2}(1,:),Q{2}(2,:), '-.r',Q{3}(1,:),Q{3}(2,:), '-k'); 
scatter(u(1,:),u(2,:), 'xk');
legend('T=40s','T=50s','T=100s');
axis([ -800 800 -800 800])
grid on
title('Fig. 1.(a), UAV trajectory')
xlabel('x') 
ylabel('y')
text(q0(1),q0(2),'\leftarrow Initial point');
text(qF(1)-300,qF(2),'Final point \rightarrow');
for k = 1: 4
    text(u(1,k),u(2,k),['u_{', num2str(k), '}']);
end
drawnow    
%% figure 1.(b)
figure(13)
Xr = X{2};
t = zeros(4,1);
for k = 1: 4
    t(k) = graythresh(Xr(:,k));
end
    t = min(t) * 1.2;
    Xr(Xr >= t) = 1;
    Xr(Xr <   t) = 0;
plot([0:99]*50/99, Xr(:,1),  '-r',[0:99]*50/99, Xr(:,2),  '--b', [0:99]*50/99, Xr(:,3), ':k',[0:99]*50/99, Xr(:,4),  '-.m');
legend('SN u_{1}','SN u_{2}','SN u_{3}','SN u_{4}','Location','north','NumColumns',4);
axis([ 0 50 0 1.25])
title('Fig.1(b), Wake-up schedule (T=50s)');
yticks([0 1])
yticklabels({'Sleep','Wake-up'})
drawnow

🎉3 参考文献

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

[1]C. Zhan, Y. Zeng and R. Zhang, "Energy-Efficient Data Collection in UAV Enabled Wireless Sensor Network," in IEEE Wireless Communications Letters, vol. 7, no. 3, pp. 328-331, June 2018, doi: 10.1109/LWC.2017.2776922.

🌈4 Matlab代码、数据、文章