节点移动模型-MATLAB 仿真

(14页)

'节点移动模型-MATLAB 仿真'
高斯马尔科夫模型实现和仿真 高斯马尔科夫模型描述高斯马尔科夫模型描述 高斯马尔科夫模型描述为每个节点被赋予一个当前的速率 v 和方向 sita,在一个固定的时间 间隔 ?t(时隙)后,每个节点更新当前的速率和方向,每次间隔之初更新,更新公式如下: 2 1 (1)(1) ttn vava va v ? ?????, 2 1 (1)(1) ttn aaa???? ? ?????。在每个指定的时间 ? 周期 t 内,得到 1t v ? 和 1t ? ? 的计算值,则运动的目标位置可以通过下述式子得到: 1 cos tttt xxv t? ? ??? ?, 1 sin tttt yyv t? ? ??? ?。一个时间间隔内,节点都按照 v 匀速运动 到目标位置,称为一个 step。 一个完整的 step 包括: 1.节点参数的设置: 仿真时间:T=1000; 步进时间:dt=1;步进时间越小,路径曲线越光滑。 时间间隔:nt=20; 速度范围:vmin=1;vmax=1.5; 场景范围:xmin=0;xmax=100;ymin=0;ymax=50; 随机产生起始点的位置:xa=unifrnd(0,100,[1,1]); ya=unifrnd(0,50,[1,1]); 初始速率设置为速率分布的期望:va=(vmin+vmax)/2;%初始速度 初始速度方向设置为方向分布的期望:sitaa=(0+2*pi)/2; 速率平均值:vmean=(vmin+vmax)/2; 速度方向平均值: sitamean=(0+2*pi)/2; 2.节点随机初始速度设置为 vmean=(vmin+vmax)/2,sitamean=(0+2*pi)/2;随机获取初始 位置 xa,ya ? 。固定一个时间间隔 t=20。vn,sitan 是服从高斯分布的随机变量,vn 服从均值为 1.5,方差为 0.2 的高斯分布:vn=normrnd(1.5,0.2,1,1),sitan 服从均值为 pi,方差为 0.2 的高斯分布 sitan=normrnd(pi,0.2,1,1);随机变量 a 的范围是(0,1) ,并且在这个范围内均 匀分布。 2.节点在每个时间间隔更新速率和速度方向,根据初始节点的位置得到移动的目标位置 xb, yb。 3.目标节点位置变为下一个 step 的初始节点。 模型参数设置:模型参数设置: 变量:调节参数a,速度v,方向sita,节点位置(x,y) ,随机参数vn,sitan 初始节点位置节点位置:xmin=0;xmax=100;ymin=0;ymax=50; A(xa,ya) 初始节点速度参数:vmin=1;vmax=2;,速度平均值vmean=(vmin+vmax)/2, 速度方向平均值sitamean=(0+2*pi)/2 时间参数:nt=20; clear all; %相关参数设定 T=1000;%仿真时间s dt=1;%补进时间s nt=30;%时间间隔 vmin=0.5;vmax=1;%速度范围 tmin=0.1;tmax=0.1;%停顿时间范围s xmin=0;xmax=1000;ymin=0;ymax=500;%场景的范围 tex=0;%初始化运行时间记忆变量 %axis([xmin xmax ymin ymax]);%设定坐标范围 %figure(1); hold on;%保留绘图内容 xa=unifrnd(0,100,[1,1]);%随机发生起始点坐标 ya=unifrnd(0,50,[1,1]); va=(vmin+vmax)/2;%初始速度 sitaa=(0+2*pi)/2;%随机发生一个初始速度方向,前进角度服从均匀分布 vmean=(vmin+vmax)/2;%速度平均值 sitamean=(0+2*pi)/2;%速度方向平均值 while(1) a=unifrnd(0,1,[1,1]);%a用来调节随机性 vn=normrnd(1.5,0.2,1,1);%服从高斯分布的速率参数 sitan=normrnd(pi,0.2,1,1);%服从高斯分布的速度方向参数 vb=a*va+(1-a)*vmean+sqrt((1-a^2))*vn;%到达目的节点后确定下一段的速 度 sitab=a*sitaa+(1-a)*sitamean+sqrt((1-a^2))*sitan;%到达目的节点后 确定下一段的速度方向 if T-tex=nt for t=0:dt:nt xb=xa+va*cos(sitab)*t; yb=ya+va*sin(sitab)*t;%节点在到达目的节点后可以确定下一目的节点的位置 plot(xb,yb,'.'); if xbxmax %x坐标到达右边界 xa=xa-xmax; end if ybymax %y坐标到达上边界 ya=ya-ymax; end tex=tex+dt; end else for t=0:dt:T-tex xb=xa+va*cos(sitab)*t; yb=ya+va*sin(sitab)*t;%节点在到达目的节点后可以确定下一目的节点的位置 plot(xb,yb,'.'); if xbxmax %x坐标到达右边界 xa=xa-xmax; end if ybymax %y坐标到达上边界 ya=ya-ymax; end tex=tex+dt; return end end xa=xb;ya=yb;%将目标点更新为新Step的起点 va=vb,sitaa=sitab; end 01002003004005006007008009001000 0 50 100 150 200 250 300 350 400 450 500 随机方向模型实现和仿真 随机方向模型描述:随机方向模型描述: 随机方向移动模型描述为节点先在整个移动区域内随机选择一个位置作为初始位置, 随机选 择运动速度的大小和方向,一直运动到边界上的一个点,就是目的节点,随机停顿一段时间 tp,将这个目的节点作为下一次移动的源节点,然后反复按相对固定的过程进行移动,通常 称这个重复过程为 Step。 一个完整的 Step 包括运动速度 v、随机停顿时间 tp,随机运动方向 sita,然后以速度 v 匀速 直线运动到达边界位置后停顿时间 tp。其中运动速度 v、随机停顿时间 tp,随机运动方向的 范围和在该范围的分布可以通过模型参数的方式进行限定,如 V 的范围为 minmax (,)vv,并 且在 minmax (,)vv范围内服从平均分布;tp 的范围为 minmax (,)tt,并且在 minmax (,)tt范围内服从 平均分布。随机运动方向根据在不同的边界,有不同的范围,在该范围内服从平均分布。 模型参数设置:模型参数设置: 场景参数:xmin=0;xmax=100;ymin=0;ymax=50; 时间参数:运行时间 T,记忆变量 tex,运动时间 tm,停顿时间 tp; 速度参数:vmin=0.5;vmax=1.5;速度大小 v,运动方向 sita; 停顿时间参数:tmin=0.1; tmax=0.2; clear all; %相关参数设定 T=1000;%仿真时间s d
关 键 词:
节点移动模型-MATLAB仿真
 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:节点移动模型-MATLAB 仿真
链接地址: https://www.wenku365.com/p-42268864.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给天天文库发消息,QQ:1290478887 - 联系我们

本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。本站是网络服务平台方,若您的权利被侵害,侵权客服QQ:1290478887 欢迎举报。

1290478887@qq.com 2017-2027 https://www.wenku365.com 网站版权所有

粤ICP备19057495号 

收起
展开