在运行期间更改特定车辆组的传输信号强度

问题描述 投票:1回答:2

我开始(大约一周以来)在omnet ++(5.0)下使用静脉(4.4)。 我目前的任务是让车辆根据具体情况调整其传输范围。我确实阅读过很多像这些问题(以及其他主题/论坛)的问题:

  1. Dynamical transmission range in the ieee802.11p module
  2. Vehicles Receive Beacon Messages outside RSU Range
  3. How coverage distance and interference distance are affected by each other
  4. Maximum transmission range vs maximum interference distance
  5. Reduce the coverage area between vehicles
  6. how to set the transmission range of a node under Veins 2.0?

我的问题:

如何 - 只改变一些节点的传输范围? 从上面的链接中,我知道术语“传输范围”在技术上与接收功率,噪声,灵敏度阈值等有关,它们定义了接收概率。

由于我不熟悉静脉(以及omnet ++),我做了很少的测试,并得出以下结论:

  • “TraCIMobility”模块可以调整节点的参数(对于每个车辆,有一个实例),例如ID,速度等。
  • 我也可以实例化“Mac1609_4”(对于每辆车)并在模拟运行时更改了一些参数,如“txPower”,但它对实际通信范围没有影响。
  • 我无法实例化(因为它是全局的)“连接管理器”模块,它是唯一负责(并覆盖)有效通信范围的模块。此模块可以在“.ini”文件中配置,但我想要不同的传输功率,最重要的是“可以在运行时更改”。
  • 计算传输范围的公式在附加的链接中,我得到了它,但它必须是一种在一个层中定义或更改这些参数的方法(即使它在phy层中,即类似于附加的信号强度...)

再说一遍,也许我所说的有一些错误的想法,我只是想知道改变这个传输范围是什么/如何改变。

最好的祝福,

omnet++ veins
2个回答
1
投票

你是正确的增加mac1609_4.txPower参数让节点发送更多的功率(因此,信号可以进一步解码)。但请注意,(对于Veins 4.4)您还需要增加connectionManager.pMax,因为此值用于确定接收模拟模块将被通知正在进行的传输的最大距离(远离发送模拟模块)。进一步离开的任何接收模拟模块将不受传输的影响(在它是解码的候选者的意义上,但在其有助于干扰的意义上)。

还要注意,(否则)完全空闲信道上的传输将比通常加载的信道上的传输更进一步。如果要获得对传输达到的距离的良好测量,让一些节点产生干扰(通过发送它们自己的广播),然后查看帧传输速率(FDR)随着发送器和接收器之间的距离的增加而下降。

最后,请注意1)噪声基底和2)接收器模拟模块尝试解码帧所需的最小功率水平需要校准到您想要模拟的WLAN卡。在Veins 4.4教程示例中选择的值对于演示静脉的概念非常有用,而values of more recent versions of Veins更接近于您在一些最近的现场测试中使用的“典型”WLAN卡所期望的值。有关这些参数的更详细讨论,请参阅文章Bastian Bloessl and Aisling O'Driscoll, "A Case for Good Defaults: Pitfalls in VANET Physical Layer Simulations," Proceedings of IFIP Wireless Days Conference 2019, Manchester, UK, April 2019


1
投票

我只是发表意见,万一有人已经在我的情况下:

在静脉中(我使用的旧版本是4.4),“连接管理器”负责评估分组的“潜在”交换,因此,其传输功率几乎总是设置为上限。

我改变了车辆“Mac1609_4”传输功率和“图形化”后,我感到很困惑,连接管理器仍然告诉我数据包是由一些远节点接收的,事实上并非如此,它只是评估它是否是是否正确接收(通过上述链接中讨论的公式)。

因此:改变每辆车的“TxPower”在图形上确实产生了影响(消息没有安装到上层)。

总而言之,为了制定传输范围感知方案,这是必须要做的:

  • 在发送方节点(车辆)中,类似于处理移动性特征的指针“traci”,必须创建指向“mac1609”的指针并指向它,如下所示:

在“tracidemo11p.h”中添加 - >

#include "veins/modules/mac/ieee80211p/Mac1609_4.h"//added
#include "veins/base/utils/FindModule.h"//added

并作为同一“.h”文件中“tracidemo11p”类中的受保护变量 - >

        Mac1609_4* mac;//added

在“tracidemo11p.cc”中添加 - >

    mac = FindModule<Mac1609_4*>::findSubModule(getParentModule());

现在你可以在“traci”中操作“mac”,相应的方法在“modules / mac / ieee80211p / Mac1609_4.cc&.h”中

对于我们的工作,方法将是:

        mac->setTxPower(10);//for example

这将对每个节点实例的实时仿真产生影响。

它可能用基本概念描述了它,因为我是omnet-veins的新手,这些是在不到一周的时间内完成的(并且也将为新用户提供)。

我希望它会有所帮助(并且正确)

© www.soinside.com 2019 - 2024. All rights reserved.