节点移动模型-MATLAB 仿真

节点移动模型-MATLAB 仿真

ID:42268864

大小:140.65 KB

页数:14页

时间:2019-09-10

节点移动模型-MATLAB 仿真_第1页
节点移动模型-MATLAB 仿真_第2页
节点移动模型-MATLAB 仿真_第3页
节点移动模型-MATLAB 仿真_第4页
节点移动模型-MATLAB 仿真_第5页
资源描述:

《节点移动模型-MATLAB 仿真》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、高斯马尔科夫模型实现和仿真高斯马尔科夫模型描述高斯马尔科夫模型描述为每个节点被赋予一个当前的速率v和方向sita,在一个固定的时间间隔∆t(时隙)后,每个节点更新当前的速率和方向,每次间隔之初更新,更新公式如下:22vava(1)v(1a)v,aaa(1)(1)。在每个指定的时间tt1ntt1n周期∆t内,得到vt1和t1的计算值,则运动的目标位置可以通过下述式子得到:xxvtcos,yyvtsin。一个时间间隔内,节点都按照v匀速运动tt1tttt

2、1tt到目标位置,称为一个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;%初始速度初始速度方向设置为方向分布的期望

3、: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=normrn

4、d(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

5、,速度方向平均值sitamean=(0+2*pi)/2时间参数:nt=20;clearall;%相关参数设定T=1000;%仿真时间sdt=1;%补进时间snt=30;%时间间隔vmin=0.5;vmax=1;%速度范围tmin=0.1;tmax=0.1;%停顿时间范围sxmin=0;xmax=1000;ymin=0;ymax=500;%场景的范围tex=0;%初始化运行时间记忆变量%axis([xminxmaxyminymax]);%设定坐标范围%figure(1);holdon;%保留绘图内容xa=uni

6、frnd(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(p

7、i,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;%到达目的节点后确定下一段的速度方向ifT-tex>=ntfort=0:dt:ntxb=xa+va*cos(sitab)*t;yb=ya+va*sin(sitab)*t;%节点在到达目的节点后可以确定下一目的节点的位置plot(xb,yb,'.');ifxb<

8、xmin%x坐标到达左边界xa=xa+xmax;elseifxb>xmax%x坐标到达右边界xa=xa-xmax;endifybymax%y坐标到达上边界ya=ya-ymax;endtex=tex+dt;endelsefort=0:dt:T-texxb=xa+va*cos(sitab)*t;yb=ya+va*sin(sitab)*t

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。