NS3中马尔可夫高斯移动模型

ns3::GaussMarkovMobilityModel实现了一个有记忆性的移动模型,其运动轨迹取决于之前的位置和速度。文章介绍了官方使用范例、参数解析和原理解析,包括Bounds、TimeStep、Alpha等关键参数,并展示了如何设置随机速度和方向。
部署运行你感兴趣的模型镜像

ns3::GaussMarkovMobilityModel 马尔可夫高斯移动模型

与其他移动模型不同,马尔可夫高斯移动模型是有记忆性,在任意时间、任意位置点上 的下一步运动轨迹与速度取决于它之前的位置和速度矢量。无 记忆移动模型的特点是在方向和速度上存在非常急剧的和突然的变化。

官方使用范例

MobilityHelper mobility;

mobility.SetMobilityModel ("ns3::GaussMarkovMobilityModel",

"Bounds", BoxValue (Box (0, 150000, 0, 150000, 0, 10000)),

"TimeStep", TimeValue (Seconds (0.5)),

"Alpha", DoubleValue (0.85),

"MeanVelocity", StringValue ("ns3::UniformRandomVariable[Min=800|Max=1200]"),

"MeanDirection", StringValue ("ns3::UniformRandomVariable[Min=0|Max=6.283185307]"),

"MeanPitch", StringValue ("ns3::UniformRandomVariable[Min=0.05|Max=0.05]"),

"NormalVelocity", StringValue ("ns3::NormalRandomVariable[Mean=0.0|Variance=0.0|Bound=0.0]"),

"NormalDirection", StringValue ("ns3::NormalRandomVariable[Mean=0.0|Variance=0.2|Bound=0.4]"),

"NormalPitch", StringValue ("ns3::NormalRandomVariable[Mean=0.0|Variance=0.02|Bound=0.04]"));

mobility.SetPositionAllocator ("ns3::RandomBoxPositionAllocator",

"X", StringValue ("ns3::UniformRandomVariable[Min=0|Max=150000]"),

"Y", StringValue ("ns3::UniformRandomVariable[Min=0|Max=150000]"),

"Z", StringValue ("ns3::UniformRandomVariable[Min=0|Max=10000]"));

mobility.Install (wifiStaNodes);

参数解析 

 1、Bounds

节点运动的区域。通常使用BoxValue类定义区域大小。

2、TimeStep

节点通常设置TimeStep,移动相应长时间后更改当前方向和速度。

3、Alpha

表示高斯-马尔可夫模型中可调参数的常数。初始默认值为1.

4、MeanVelocity

用于指定平均速度的随机变量。

5、MeanDirection

用于指定平均方向的随机变量。

6、MeanPitch

平均角度:用于指定平均角度的随机变量。

7、NormalVelocity

高斯随机速度:用于计算下一个速度值的高斯随机变量。

8、NormalDirection

高斯随机方向:用于计算下一个方向值的高斯随机变量。

9、NormalPitch

高斯随机夹角度:用于计算下一个夹角度的高斯随机变量。

原理解析

 在计算新的运动速度和运动方向时,每一个节点都有一个初始速度和方向,以及一个平均速度和平均方向,每一个TimeStep内计算出下一刻新的速度与方向,重复此操作。计算公式如下:

公式参数

参数含义

对应上文公式参数

第 n 时刻的速度

第 n 时刻的方向向量

代表了第 n 时刻飞行速度矢量与地平线的实际夹角度

平均速度

MeanVelocity

平均方向

MeanDirection

平均角度

MeanPitch

表示遵循高斯随机变量分布的速度的变量

NormalVelocity

表示遵循高斯随机变量分布的方向上的变量

NormalDirection

表示遵循高斯随机变量分布的夹角上的变量

NormalPitch

调优参数,其取值范围为[0~1]

Alpha

α = 0 时,模型新的速度和方向完全取决于平均速度、方向变量和高斯变量这三个值的初始化量;当 α = 1 时,运动将会失去所有的随机性,即节点将在一条直线上移动。
根据公式计算出上述三个变量后,可以计算出一个新的速度矢量,该矢量映射到三维坐标系计
算为
 

其中,v_{x}表示沿三维坐标轴 x 轴上速度,v_{y} 表示 y 轴上的速度,v_{z} 表示 z 轴上的速度。如下图所示是节点的运动轨迹

 在TimeStep时间内,方向和速度是不会发生改变的,所以是做匀速直线运动,而每个TimeStep的速度不同,所以每个TimeStep时间内走过的路程也不相同。

 

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值