尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

MATLAB 仿真无线传感器网络(WSN)三大经典场景

MATLAB 仿真无线传感器网络(WSN)三大经典场景
📅 发布时间:2026/6/21 8:33:22

一、统一参数区(建议先调这里)

%% 0. 公共参数
clear; clc; close all;
rng(2025)                     % 可重复
field = [0 100; 0 100];       % 100 m × 100 m
nNode = 200;                  % 节点数
R     = 15;                   % 通信半径 /m
E0    = 0.5;                  % 初始能量 /J
pktL  = 4000;                 % 数据包长度 /bit
ctrlL = 200;                  % 控制包长度 /bit
ETX   = 50e-9;  ERX = 50e-9;  % 收发电路 /J/bit
Efs   = 10e-12; Emp  = 0.0013e-12; % 自由空间/多径
EDA   = 5e-9;                 % 数据融合 /J/bit

二、场景 1:随机部署 + 连通/覆盖评估

%% 1. 随机均匀部署
X = field(1,1)+(field(1,2)-field(1,1))*rand(nNode,1);
Y = field(2,1)+(field(2,2)-field(2,1))*rand(nNode,1);
plot(X,Y,'bo'); axis equal; title('节点分布'); grid on%% 2. 连通性(巨分量比例)
Adj = (squareform(pdist([X Y])) <= R) - eye(nNode);
[G,comp]=graph(Adj);  giant=max(comp.NumNodes);
conn = giant/nNode;
fprintf('连通度 = %.2f%%\n',conn*100);%% 3. 覆盖率(蒙特卡洛 10 000 点)
M=10000; Px=rand(M,1)*100; Py=rand(M,1)*100;
cov=zeros(M,1);
for i=1:nNodecov = cov | ((Px-X(i)).^2 + (Py-Y(i)).^2 <= R^2);
end
fprintf('覆盖率 = %.2f%%\n',mean(cov)*100);

三、场景 2:LEACH 分簇路由 + 网络寿命

%% 4. LEACH 主循环
rmax=2000;                    % 最大轮数
E=E0*ones(nNode,1);           % 剩余能量
dead=zeros(rmax,1); first=0;
for r=1:rmax% 4.1 簇头竞选T=0.05;                   % 期望簇头比例myRand=rand(nNode,1);CH= (myRand < T/(1-T*mod(r,round(1/T)))) & (E>0);if ~any(CH), CH( find(E>0,1) )=1; end% 4.2 普通节点入簇cluster=zeros(nNode,1);for i=find(~CH & E>0)'[~,d]=min( (X(i)-X(CH)).^2 + (Y(i)-Y(CH)).^2 );cluster(i)=find(CH,d);end% 4.3 能耗模型E=E-ETX*ctrlL;              % 广播竞选for i=find(CH)'dBS=sqrt( (X(i)-50)^2 + (Y(i)-50)^2 ); % 到基站if dBS>do, E(i)=E(i)-(ETX+Emp*dBS^4)*pktL;else,      E(i)=E(i)-(ETX+Efs*dBS^2)*pktL; endE(i)=E(i)-EDA*pktL*( sum(cluster==i)+1 );endfor i=find(~CH & E>0)'d=sqrt( (X(i)-X(cluster(i)))^2 + (Y(i)-Y(cluster(i)))^2 );E(i)=E(i)-(ETX+Efs*d^2)*pktL;E(cluster(i))=E(cluster(i))-ERX*pktL;end% 4.4 统计死亡dead(r)=sum(E<=0);if dead(r)==nNode, break; endif dead(r)>0 && first==0, first=r; end
end
%% 5. 画寿命曲线
plot(1:r, dead(1:r),'LineWidth',1.5); grid on
xlabel('Round'); ylabel('Dead nodes');
title(sprintf('LEACH: 首节点死亡 @ %d 轮',first));

四、场景 3:移动 WSN(Random Waypoint)

%% 6. Random Waypoint 移动模型
vmax=2;  pauseT=0;  Tmax=1000;  % 2 m/s,无暂停
Xprev=X; Yprev=Y;
E=E0;
deadMob=zeros(Tmax,1);
for t=1:Tmax% 6.1 更新位置v=vmax*rand(nNode,1);theta=2*pi*rand(nNode,1);X=X+v.*cos(theta); Y=Y+v.*sin(theta);X=min(max(X,0),100); Y=min(max(Y,0),100);% 6.2 简单 gossip 转发(单跳)Adj=(squareform(pdist([X Y]))<=R);for i=1:nNodeif E(i)<=0, continue; endnHop=find(Adj(i,:));  nHop(nHop==i)=[];if isempty(nHop), next=i; else next=nHop(randi(numel(nHop))); endd=sqrt( (X(i)-X(next))^2 + (Y(i)-Y(next))^2 );if d>do, Et=(ETX+Emp*d^4)*pktL; else Et=(ETX+Efs*d^2)*pktL; endE(i)=E(i)-Et;  E(next)=E(next)-ERX*pktL;enddeadMob(t)=sum(E<=0);
end
plot(1:t,deadMob,'r'); hold on; plot(1:r,dead,'b');
legend('Mobile','Static'); xlabel('Time slot'); ylabel('Dead');
title('移动 vs 静态网络寿命对比');

参考代码 无线传感器网络技术仿真算法 www.youwenfan.com/contentcsj/54994.html

五、结果解读 & 可扩展方向

  1. 场景 1 给出“部署-连通-覆盖”三元组,可改用网格部署、泊松盘或虚拟力算法做对比。
  2. LEACH 寿命曲线中“首节点死亡” round 越大越好;可继续实现 DEEC、PEGASIS、EB-LEACH 等算法,在同一坐标系比较。
  3. 移动场景下节点能量消耗更快,可引入“移动预测+簇头 handover”或“机会路由”降低碰撞重传。
  4. 如需三维地形、障碍物阴影模型,把 squareform(pdist) 换成带地形罚函数的 pdist2 自定义距离即可。
  5. 想跑大规模(>5000 节点),把邻接矩阵改成稀疏 + 事件驱动,不再每轮全矩阵计算。

相关新闻

  • 我最常用的快捷键
  • Semgrep代码审计工具的使用
  • WPF多语言实现

最新新闻

  • MCM06型长跨距重载双滑块模组技术详解
  • Java Stream collect() 原理与高阶实战:从分组统计到自定义聚合
  • DSP56800E调试实战:CodeWarrior内存、寄存器与EOnCE硬件断点深度解析
  • 轻量级消息驱动AI助手Hermes:30分钟Railway部署实战
  • G-Helper深度解析:如何用开源工具彻底解放华硕笔记本性能潜力
  • 青岛闲置旧金变现渠道,2026市南崂山靠谱回收店全城上门当场结款 - 名奢变现站

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号