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 |
其中,表示沿三维坐标轴 x 轴上速度,
表示 y 轴上的速度,
表示 z 轴上的速度。如下图所示是节点的运动轨迹

在TimeStep时间内,方向和速度是不会发生改变的,所以是做匀速直线运动,而每个TimeStep的速度不同,所以每个TimeStep时间内走过的路程也不相同。
ns3::GaussMarkovMobilityModel实现了一个有记忆性的移动模型,其运动轨迹取决于之前的位置和速度。文章介绍了官方使用范例、参数解析和原理解析,包括Bounds、TimeStep、Alpha等关键参数,并展示了如何设置随机速度和方向。
494





