节点移动模型MATLAB仿真_第1页
节点移动模型MATLAB仿真_第2页
节点移动模型MATLAB仿真_第3页
节点移动模型MATLAB仿真_第4页
节点移动模型MATLAB仿真_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、高斯马尔科夫模型实现和仿真高斯马尔科夫模型描述高斯马尔科夫模型描述为每个节点被赋予一个当前的速率 v 和方向 sita,在一个固定的时间间隔 t(时隙)后,每个节点更新当前的速率和方向,每次间隔之初更新,更新公式如下:vt 1 avt (1 a)v (1 a2 )vn,t 1 at (1 a) (1 a2 )n。在每个指定的时间周期 t 内,得到 vt 1和t 1的计算值,则运动的目标位置可以通过下述式子得到:x xv t cos , y y v t sin 。一个时间间隔内,节点都按照 v 匀速运动t 1tttt 1ttt到目标位置,称为一个 step。一个完整的 step 包括: 1.节点

2、参数的设置: 仿真时间: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.节点随机初

3、始速度设置为 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),并且在这个范围内均匀分布。节点在每个时间间隔更新速率和速度方向,根据初始节点的位置得到移动的目标位置 xb, yb。目标节点位置变为下一个 step 的初始节点。

4、模型参数设置:变量:调节参数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 xmi

5、n=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=unifr

6、nd(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-a2)*vn;%到达目的节点后确定下一段的速度sitab=a*sitaa+(1-a)*sitamean+sqrt(1-a2)*sitan;%到达目的节点后确定下一段的速度方向if T-tex=nt for t=0:dt:ntxb=xa+va*cos(sitab)*t;yb=ya+va*sin(sitab)*t;%节点在到达目的节点后可以确定下一目

7、的节点的位置 plot(xb,yb,.);if xbxmax%x坐标到达右边界xa=xa-xmax;endif ybymax %y坐标到达上边界ya=ya-ymax;end tex=tex+dt; endelsefor 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;endif ybymax%y坐标到达上边界ya=ya-ymax;end tex=tex+dt; returnend endxa=x

8、b;ya=yb;%将目标点更新为新Step的起点va=vb,sitaa=sitab; end50045040035030025020015010050001002003004005006007008009001000随机方向模型实现和仿真随机方向模型描述:随机方向移动模型描述为节点先在整个移动区域内随机选择一个位置作为初始位置,随机选择运动速度的大小和方向,一直运动到边界上的一个点,就是目的节点,随机停顿一段时间tp,将这个目的节点作为下一次移动的源节点,然后反复按相对固定的过程进行移动,通常 称这个重复过程为 Step。一个完整的 Step 包括运动速度 v、随机停顿时间 tp,随机运动方向

9、 sita,然后以速度 v 匀速直线运动到达边界位置后停顿时间 tp。其中运动速度v、随机停顿时间tp,随机运动方向的范围和在该范围的分布可以通过模型参数的方式进行限定,如V 的范围为 (vmin, vmax) ,并且在(vmin, vmax) 范围内服从平均分布;tp 的范围为(tmin, tmax) ,并且在(tmin, tmax) 范围内服从平均分布。随机运动方向根据在不同的边界,有不同的范围,在该范围内服从平均分布。模型参数设置:场景参数:xmin=0;xmax=100;ymin=0;ymax=50;时间参数:运行时间 T,记忆变量 tex,运动时间 tm,停顿时间 tp;速度参数:v

10、min=0.5;vmax=1.5;速度大小 v,运动方向 sita; 停顿时间参数:tmin=0.1; tmax=0.2;clear all;%相关参数设定T=1000;%仿真时间s dt=1;%补进时间svmin=1;vmax=1.5;%速度范围tmin=0.1;tmax=0.2;% 停 顿 时 间 范 围 s xmin=0;xmax=100;ymin=0;ymax=50;%场景的范围tex=0;%初始化运行时间记忆变量axis(xmin xmax ymin ymax);%设定坐标范围figure(1);hold on;%保留绘图内容xa=unifrnd(0,100,1,1);%随机发生起始

11、点坐标ya=unifrnd(0,50,1,1);while(1)v=unifrnd(vmin,vmax,1,1);%随机发生一个速度值,速度大小服从均匀分布 tp=unifrnd(tmin,tmax,1,1);%随机发生一个停顿时间,停顿时间服从均匀分布if ya=0sita=unifrnd(0,pi,1,1)%;随机发生一个前进角度,前进角度服从均匀分布elseif ya=50sita=unifrnd(1.5*pi,2*pi,1,1)%;随机发生一个前进角度,前进角度服从均匀分布elseifxa=0sita=unifrnd(-0.5*pi,0.5*pi,1,1)%;随机发生一个前进角度,前进

12、角度服从均匀分布elseif xa=100sita=unifrnd(0.5*pi,1.5*pi,1,1)%;随机发生一个前进角度,前进角度服从均匀分布elsesita=unifrnd(0,2*pi,1,1)%;随机发生一个前进角度,前进角度服从均匀分布endfor t=0:dt:Tif texT %本次Step内仿真时间会到returnelse的节点endendx=xa+v*cos(sita)*%t运; 动到边界位置的点y=ya+v*sin(sita)*t; plot(x,y.,);holodn tex=tex+dt;if x=0|x=100|y=0|y=50%如果运动到边界,则到达的点就是目

13、break;endendif T-tex=tp; pause(tp);%停止一段时间tex=tex+tp%;更新运行时间记忆变量elsepause(T-tex); %时间到returnendxa=x;ya=y;%将目标点更新为新Step的起点随机方向改进模型的实现和仿真随机方向改进模型描述:随机方向移动模型描述为节点先在整个移动区域内随机选择一个位置作为初始位置,随机选择运动速度的大小和方向、移动的距离,节点移动这段距离后到达终点,到达终点后随机停顿一段时间 tp,将这个终点作为下一次移动的起始节点,这个过程为一个step。然后反复按相对固定的过程进行移动。如果节点在运动期间运动到边界,将从对

14、称的边界重新出发,速度和方向不变。一个完整的 Step 包括:随机产生运动速度大小 v、停顿时间 tp,运动方向 sita,运动距离 d。v 的范围为 (v , v ) ,minmax并且在(v , v ) 范围内服从平均分布;tp 的范围为(t , t ) ,并且在(t , t ) 范围内服minmaxmin maxmin max从平均分布。然后以速度 v 匀速直线运动随机的一段距离 d 后停顿时间 tp。节点在运动过程中如果走到了边界,则从对称的边界出发,速度,方向均不变。比如运动到了左边界( xmin,y),则节点的位置变为(xmax,y);运动到了上边界(x,ymax),则节点的位置变

15、为(x,ymin)。运动距离 d 后,到达的终点的位置为下一个 step 的初始位置。模型参数设置:场景参数:xmin=0;xmax=100;ymin=0;ymax=50,运动距离 dmin=20;dmax=100; 时间参数:运行时间 T,记忆变量 tex,运动时间 tm,停顿时间 tp;速度参数:vmin=0.5;vmax=1.5;速度大小 v,运动方向 sita; 停顿时间参数:tmin=0.1; tmax=0.2;仿真程序:clear all;%相关参数设定T=100;%仿真时间s dt=1;%补进时间svmin=1;vmax=1.5;%速度范围tmin=0.1;tmax=0.2;%

16、停 顿 时 间 范 围 s xmin=0;xmax=100;ymin=0;ymax=50;%场景的范围dmin=20;dmax=100;tex=0;%初始化运行时间记忆变量axis(xmin xmax ymin ymax);%设定坐标范围figure(1);hold on;%保留绘图内容xa=unifrnd(0,100,1,1);%随机发生起始点坐标ya=unifrnd(0,50,1,1);while(1)v=unifrnd(vmin,vmax,1,1);%随机发生一个速度值,速度大小服从均匀分布 tp=unifrnd(tmin,tmax,1,1);%随机发生一个停顿时间,停顿时间服从均匀分布

17、sita=unifrnd(0,2*pi,1,1);%随机发生一个前进角度,前进角度服从均匀分布d=unifrnd(dmin,dmax,1,1);%随机发生一个前进距离,前进距离服从均匀分布tm=d/v;%运动时间if T-tex=tm%此次step时间不会到for t=0:dt:tmxb=xa+v*cos(sita)*t; yb=ya+v*sin(sita)*t; plot(xb,yb,.)if xb=xmax%x坐标到达右边界xa=xa-xmax;endif yb=ymax %y坐标到达上边界ya=ya-ymax;endendtex=tex+dt%;更新运行时间记忆变量if T-tex=tp

18、;pause(tp)%;停止一段时间tex=tex+t%p更; 新运行时间记忆变量elsepause(T-tex);%时间到return endelse%此次step时间会到for t=0:dt: T-texxb=xa+v*cos(sita)*t; yb=ya+v*sin(sita)*t; plot(xb,yb.,)if xb=xmax %x坐标到达右边界xa=xa-xmax;endif yb=ymax%y坐标到达上边界ya=ya-ymax;endend endreturnxa=xb;ya=yb;%将目标点更新为新Step的起点end仿真结果:5045403530252015105001020

19、30405060708090100随机路点模型实现和仿真随机路点模型描述随机路点移动模型描述为节点先在整个移动区域内随机选择一个位置作为初始位置,随机选择一个位置为目的位置,将这个目的节点作为下一次移动的源节点,然后反复按相对固定的过程进行移动,通常称这个重复过程为 Step。一个完整的 Step 包括先通过随机选择目标点D、运动速度V 和随机停顿时间 Tp,然后以速度V 匀速直线运动到达目标点 D 位置后停顿时间 T。其中运动速度 V 和随机停顿时间 Tp 的范围和在该范围的分布可以通过模型参数的方式进行限定,如 V 的范围为 (v, v) ,并且在 (v, v) 范围内服从平均分布;Tpm

20、inmaxminmax的范围为(tmin, tmax) ,并且在(tmin, tmax) 范围内服从平均分布。模型参数设置:场景参数:xmin=0;xmax=100;ymin=0;ymax=50;时间参数:运行时间 T,记忆变量 tex,运动时间 tm,停顿时间 tp;速度参数:vmin=0.5;vmax=1.5;速度大小 v; 停顿时间参数:tmin=0.1; tmax=0.2;clear all;%相关参数设定T=1000;%仿真时间s dt=1;%补进时间svmin=1;vmax=1.5;%速度范围tmin=0.1;tmax=0.1;% 停 顿 时 间 范 围 s xmin=0;xmax

21、=100;ymin=0;ymax=50;%场景的范围tex=0;%初始化运行时间记忆变量axis(xmin xmax ymin ymax);%设定坐标范围figure(1);hold on;%保留绘图内容xa=unifrnd(0,100,1,1);%随机发生起始点坐标ya=unifrnd(0,50,1,1);while(1)xb=unifrnd(0,100,1,1);%随机发生一个路点坐标yb=unifrnd(0,50,1,1);v=unifrnd(vmin,vmax,1,1);%随机发生一个速度值,速度大小服从均匀分布tp=unifrnd(tmin,tmax,1,1);%随机发生一个停顿时间

22、,停顿时间服从均匀分布tm=sqrt(xb-xa)2+(yb-ya)2)/v; %计算这个Step的移动时间if xa=xb&ya=yb%在出发点和目的点坐标相同时单独处理pause(tp); %停止一段时间tex=tex+tp;%更新运行时间记忆变量elseif T-tex=tm;%本次Step内仿真时间不会到for t=0:dt:tmx=xa+v*(xb-xa)/sqrt(xb-xa)2+(yb-ya)2)*t;y=ya+v*(yb-ya)/sqrt(xb-xa)2+(yb-ya)2)*t; plot(x,y.);tex=tex+dt end更新运行时间记忆变量if T-tex=tp;pa

23、use(tp);%停止一段时间tex=tex+tp%;更新运行时间记忆变量elsepause(T-tex); %时间到returnendelse%本次Step内仿真时间会到for t=0:dt:T-texx=xa+v*(xb-xa)/sqrt(xb-xa)2+(yb-ya)2)*t;y=ya+v*(yb-ya)/sqrt(xb-xa)2+(yb-ya)2)*t; plot(x,y.);endreturn %时间到endendxa=xb;ya=yb;%将目标点更新为新Step的起点end504540353025201510500102030405060708090100随机路点模型实现和仿真随机路点模型描述随机路点移动模型描述为节点先在整个移动区域内随机选择一个位置作为初始位置,然后反复按相对固定的过程进行移动,通常称这个重复过程为Step。一个完 整的Step包括先通过随机选择目标点D、运动速度V和随机停顿时间T,然后以速度V 匀速直线运动到达目标点D位置后停顿时间T。其中运动速度V和随机停顿时间T的范 围和在该范围的分布可以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论