zoukankan      html  css  js  c++  java
  • LTE Module User Documentation(翻译5)——Mobility Model with Buildings

    LTE用户文档

    (如有不当的地方,欢迎指正!)

    8 Mobility Model with Buildings

     
    我们现在通过例子解释如何在 ns-3 仿真程序中使用 buildings 模型(特别是 MobilityBuildingInfo  BuildingPropagationModel 类) 来设置 LTE 仿真场景(包括建筑物和室内节点)。

    1. 包含的头文件:

    #include <ns3/mobility-building-info.h>
    #include <ns3/buildings-propagation-loss-model.h>
    #include <ns3/building.h>

    2. 路径损耗模型选择:

    Ptr<LteHelper> lteHelper = CreateObject<LteHelper> ();
    lteHelper->SetAttribute ("PathlossModel", StringValue ("ns3::BuildingsPropagationLossModel"));

    3. EUTRA 频带选择:

    传播模型的工作频段选择必须通过相关章节(“配置LTE模型参数”)描述的标准 ns-3  属性系统来实现,例如,通过设置 DlEarfcn 和 UlEarfcn 参数:
     
    lteHelper->SetEnbDeviceAttribute ("DlEarfcn", UintegerValue (100));
    lteHelper->SetEnbDeviceAttribute ("UlEarfcn", UintegerValue (18100));
     
    注意,使用其他方式配置传播模型使用的频段(例如,直接配置相关的 BuildingsPropagationLossModel 属性),可能会在仿真期间对模块中频率的定义造成冲突,因此不提倡这样做。
     
     

    1. 移动性模型选择:

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

    2. 创建建筑物:

    double x_min = 0.0;
    double x_max = 10.0;
    double y_min = 0.0;
    double y_max = 20.0;
    double z_min = 0.0;
    double z_max = 10.0;
    Ptr<Building> b = CreateObject <Building> ();
    b->SetBoundaries (Box (x_min, x_max, y_min, y_max, z_min, z_max));
    b->SetBuildingType (Building::Residential);
    b->SetExtWallsType (Building::ConcreteWithWindows);
    b->SetNFloors (3);
    b->SetNRoomsX (3);
    b->SetNRoomsY (2);
    
    上述代码会实例化一个住宅区建筑物,底部为 10 x 20 米,高为10 米,外墙是混凝土的窗户;建筑物有三层和 3 x 2 个同样大小的内部网格房间。
    

    3. 节点创建和位置:

    ueNodes.Create (2);
    mobility.Install (ueNodes);
    BuildingsHelper::Install (ueNodes);
    NetDeviceContainer ueDevs;
    ueDevs = lteHelper->InstallUeDevice (ueNodes);
    Ptr<ConstantPositionMobilityModel> mm0 = enbNodes.Get (0)->GetObject<ConstantPositionMobilityModel> ();
    Ptr<ConstantPositionMobilityModel> mm1 = enbNodes.Get (1)->GetObject<ConstantPositionMobilityModel> ();
    mm0->SetPosition (Vector (5.0, 5.0, 1.5));
    mm1->SetPosition (Vector (30.0, 40.0, 1.5));

    4. 完成建筑物和移动性模型的配置:

    BuildingsHelper::MakeMobilityModelConsistent ();
    
    
     
    详情见 buildings 模块文档。
     
     
     
     

    参考文献

    https://www.nsnam.org/docs/models/html/lte-user.html

  • 相关阅读:
    多表代换密码
    仿射变换
    LeetCode实战练习题目
    13.线性同余方程 扩展欧几里得算法
    12.扩展欧几里得算法
    11.快速幂求逆元
    10.快速幂
    9.筛法求欧拉函数
    8.欧拉函数
    7.最大公约数 欧几里得算法,也叫辗转相除法
  • 原文地址:https://www.cnblogs.com/alice123/p/5500516.html
Copyright © 2011-2022 走看看