ns3笔记-移动模型

MobilityHelper

MobilityHelper mobility  // 用来设置节点移动模型
mobility.SetPositionAllocator()  //设置节点初始位置
mobility.SetMobilityModel()    //设置节点运动方式

1. 设置初始位置:SetPositionAllocator

1.1 GridPositionAllocator(网格布局)

mobility.SetPositionAllocator ("ns3::GridPositionAllocator",
                                 "MinX", DoubleValue (-100.0),
                                 "MinY", DoubleValue (-100.0),
                                 "DeltaX", DoubleValue (5.0),
                                 "DeltaY", DoubleValue (20.0),
                                 "GridWidth", UintegerValue (20),
                                 "LayoutType", StringValue ("RowFirst"));
                                 

GridPositionAllocator的属性以及默认值

  • “GridWidth”, “一行最多有几个节点”,UintegerValue (10),
  • “MinX”, “网格布局起始处在x轴上的坐标.”,DoubleValue (1.0)
  • “MinY”, “网格布局起始处在y轴上的坐标.”,DoubleValue (0.0)
  • “DeltaX”, “x轴上节点间的距离.”,DoubleValue (1.0)
  • “DeltaY”, “y轴上节点间的距离”, DoubleValue (1.0)
  • “LayoutType”, “布局类型,是先分配行,还是先分配列”,EnumValue (ROW_FIRST)

1.2 RandomDiscPositionAllocator(在一个圆内随机布局)

mobility.SetPositionAllocator ("ns3::RandomDiscPositionAllocator",
                               "X", StringValue ("100.0"),
                               "Y", StringValue ("100.0"),
                               "Rho", StringValue ("ns3::UniformRandomVariable[Min=0|Max=30]"));

RandomDiscPositionAllocator属性以及默认值

  • “Theta”,“随机角度.”, StringValue (“ns3::UniformRandomVariable[Min=0.0|Max=6.2830]”),
  • “Rho”,“随机半径”, StringValue (“ns3::UniformRandomVariable[Min=0.0|Max=200.0]”),
  • “X”,“圆心x轴坐标”, DoubleValue (0.0),
  • “Y”,“圆心y轴坐标”, DoubleValue (0.0)
  • ns3::UniformRandomVariable[Min=0.0|Max=6.2830] 一个随机的值,0.0~6.2830

2. 设置运动方式:SetMobilityModel

2.1 ConstantPositionMobilityModel(固定不动)

mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");

2.2. RandomWalk2dMobilityModel(2d场景随机运动)


mobility.SetMobilityModel ("ns3::RandomWalk2dMobilityModel",
                           "Mode", StringValue ("Time"),
                           "Time", StringValue ("2s"),
                           "Speed", StringValue ("ns3::ConstantRandomVariable[Constant=1.0]"),
                           "Bounds", StringValue ("0|200|0|200"));

RandomWalk2dMobilityModel模型的属性以及默认值

  • “Bounds”,“运动的范围”, RectangleValue (Rectangle (0.0, 100.0, 0.0, 100.0))
  • “Time”,“走多久换一次方向”,TimeValue (Seconds (1.0))
  • “Distance”,"走多远换一次方向"DoubleValue (1.0),
  • “Mode”,“Time or Distance”,EnumValue (RandomWalk2dMobilityModel::MODE_DISTANCE)
  • “Direction”,"随机方向 (radians)."StringValue (“ns3::UniformRandomVariable[Min=0.0|Max=6.283184]”)
  • “Speed”“随机速度 (m/s).”,StringValue (“ns3::UniformRandomVariable[Min=2.0|Max=4.0]”)

2.3. 自定义方式

//在5秒后node节点会沿x轴,y轴,z轴方向分别移动1米,
Ptr<MobilityModel> mob = node->GetObject<MobilityModel> ();
Simulator::Schedule (Seconds (5.0), &MobilityModel::SetPosition, mob, Vector (1, 1, 1));
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值