RadioMedium的maxCommunicationRange与Radio发射机power参数关联问题
1. maxCommunicationRange参数的工作原理
该参数是INET框架中RadioMedium的可选范围裁剪阈值,默认仅在两类场景下生效:
- 你使用
UnitDiskRadioMedium(理想圆盘无线信道模型)时,该参数直接作为硬阈值,距离超过该值的节点直接无法通信 - 你使用默认
GenericRadioMedium且开启rangeFiltering = true时,该参数作为预过滤阈值,所有距离超过该值的接收节点会被直接排除,不参与后续接收功率、信噪比计算
默认配置下GenericRadioMedium的rangeFiltering为关闭状态,你设置的maxCommunicationRange不会产生任何实际限制效果,仅作为预留参数存在,这就是你设为0m依然所有节点可通信的核心原因。
2. 实现指定距离硬切断的配置方案
有两种成熟方案可选,按需使用:
方案1:使用理想圆盘信道(最符合你精确控制距离的需求)
直接替换信道模型,完全忽略射频功率、路径损耗等真实物理层参数,仅按距离判断通信是否成功,配置如下:
# 替换为理想圆盘无线介质 *.radioMedium.type = "UnitDiskRadioMedium" # 设置通信硬阈值,超过直接无法通信 *.radioMedium.maxCommunicationRange = 20m # 该模型下发射功率参数会被忽略,可不用调整
方案2:保留真实射频模型的精确距离控制
如果你需要保留路径损耗、信噪比等真实物理层模拟,可通过参数校准实现:
- 开启范围过滤开关:
*.radioMedium.rangeFiltering = true - 设置你需要的硬阈值:
*.radioMedium.maxCommunicationRange = 20m - 校准发射功率、接收灵敏度、路径损耗模型参数,确保目标距离位置的接收功率刚好等于接收灵敏度,双重保证超过距离的报文被丢弃。
3. maxCommunicationRange与**.radio.transmitter.power的关联关系
二者的关联完全取决于你使用的RadioMedium类型:
- 若使用
UnitDiskRadioMedium:二者完全独立,发射功率参数会被模型直接忽略,通信范围完全由maxCommunicationRange决定 - 若使用
GenericRadioMedium:- 未开启
rangeFiltering时,二者无关联,通信范围完全由发射功率、路径损耗、接收灵敏度共同决定,maxCommunicationRange不生效 - 开启
rangeFiltering时,maxCommunicationRange是最高优先级的硬阈值,只要距离超过该值,无论发射功率多大都直接无法通信;距离低于阈值时,才会通过发射功率计算接收功率判断是否可接收。
- 未开启
内容的提问来源于stack exchange,提问作者Gérard KPONHINTO
相关产品推荐
相关产品推荐

