• 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

  • 相关阅读:
    一个陌生女人的来信 Brief einer Unbekannten
    占星术的历史与流变
    占星术基础知识(星座及其标志)
    _________ 公告栏___________
    意识科学初步:David Chalmers的简单问题与困难问题
    意识科学初步:David Chalmers的简单问题与困难问题
    科研笔记(2019年01月29日01:17:57):Python写用于交付的工程项目的基本流程
    中国知网(cnki)上caj格式转pdf的方法
    灰色关联度分析(Grey Relation Analysis,GRA)原理详解
    货币金融学(米什金)笔记:金融体系、货币相关
  • 原文地址:https://www.cnblogs.com/alice123/p/5500516.html
Copyright © 2020-2023  润新知