GPSR

所属分类:matlab编程
开发工具:matlab
文件大小:11KB
下载次数:261
上传日期:2015-11-18 11:47:21
上 传 者xiaomaomei
说明:  GPSR路由matlab实现,模拟仿真了路由算法的各种性能指标,若有不足请批评指正。
(GPSR routing matlab )

文件列表:
GPSR节点移动\mobilitymodel.m (3347, 2015-05-28)
GPSR节点移动\GPSR.m (9481, 2015-06-09)
GPSR节点移动\main.m (8764, 2015-06-02)
GPSR节点移动\update_perlocation.m (3514, 2015-06-02)
GPSR节点移动\get_nowlocation.m (2366, 2015-06-02)
GPSR节点移动\mediumnode_run.m (930, 2015-05-29)
GPSR节点移动\update_nowlocation.m (96, 2015-05-29)
GPSR节点移动\parameter.m (3580, 2015-05-30)
GPSR节点移动\make_figure.m (1178, 2015-05-30)
GPSR节点移动\right_location.m (332, 2015-06-02)
GPSR节点移动 (0, 2015-05-27)

%节点运动模型: %节点随机选择速度:0~40m/s,取:5、10、15、20、25、30、35、40m/s。 %随机选择运动方向0~2pi,取:pi/4,pi/2,3pi/4,pi,5pi/4,3pi/2,7pi/4,2pi。 %固定运动T=4s,或者随机取整数值。仿真时间为300s,T取(1,300) %运动T时间后,不停留,重新开始此过程。 %------------------------------------------------------------------------- %定义变量 %nowlocation_x,nowlocation_y:节点真实位置 %nowlocation_time:当前时间 %perlocation_x,perlocation_y:节点周期性位置 %perlocation_period:节点位置更新周期,GPSR中是固定周期,FLDB中每个节点周期是变化的。 %-------------初始化节点真实位置和周期位置------------------------------------ nowlocation_x = node_x; nowlocation_y = node_y; nowlocation_time = zeros(1,num_node); perlocation_x = node_x; perlocation_y = node_y; perlocation_period = period;%GPSR取2、3、4s,FLDB中周期是自适应变化的。 %以下变量都是num_node维数组: % mobi_model_x:起始位置x % mobi_model_y: 起始位置y % mobi_model_startime: 起始时间 % mobi_model_speed: 随机选择的移动速度 % mobi_model_direct:随机选择的运动方向 % mobi_model_movetime:运动时间T %--------初始化节点初始运动模型----------------------------------------------- mobi_model_x = node_x; mobi_model_y = node_y; mobi_model_startime = zeros(1,num_node); mobi_model_speed = randint(1,num_node,[1 8])*5; mobi_model_direct = randint(1,num_node,[1 8])*pi/4; mobi_model_movetime = randint(1,num_node,[1 300]); %-------------节点运动后的真实位置--------------------------------------------- function update_realocation(now_time, ) for i=1:num_node if now_time > mobi_model_startime(i) %该时刻节点i位置已经发生改变 if now_time <= mobi_model_startime(i)+mobi_model_movetime(i) %该时刻节点仍按照当前方向运动 nowlocation_x(i) = mobi_model_x(i)+mobi_model_speed(i)*(now_time-mobi_model_startime(i))*cos(mobi_model_direct(i)); nowlocation_y(i) = mobi_model_y(i)+mobi_model_speed(i)*(now_time-mobi_model_startime(i))*sin(mobi_model_direct(i)); nowlocation_time(i) = now_time; else %该时刻节点已经重新选择了运动方向,则为该节点重新开始随机运动 while now_time > mobi_model_startime(i)+mobi_model_movetime(i) temp_x = mobi_model_x(i)+mobi_model_speed(i)*mobi_model_movetime(i)*cos(mobi_model_direct(i)); temp_y = mobi_model_y(i)+mobi_model_speed(i)*mobi_model_movetime(i)*sin(mobi_model_direct(i)); mobi_model_x(i) = temp_x; mobi_model_y(i) = temp_y; temp_time = mobi_model_startime(i)+mobi_model_movetime(i); mobi_model_startime(i) = temp_time; mobi_model_speed(i) = unidrnd(8)*5; mobi_model_direct(i) = unidrnd(8)*pi/4; mobi_model_movetime(i) = unidrnd(300); end nowlocation_x(i) = mobi_model_x(i)+mobi_model_speed(i)*(now_time-mobi_model_startime(i))*cos(mobi_model_direct(i)); nowlocation_y(i) = mobi_model_y(i)+mobi_model_speed(i)*(now_time-mobi_model_startime(i))*sin(mobi_model_direct(i)); nowlocation_time(i) = now_time; end end end end %--------------------节点移动后周期位置更新---------------------------------- function update_periodlocation() for i=1:num_node

近期下载者

相关文件


收藏者