【发布时间】:2018-04-24 15:16:29
【问题描述】:
我做了这个 .ini 文件来尝试模拟放置在铁路中的线性 WSN 中消耗的能量,但是能量消耗不是我所期望的,我不明白,有人知道发生了什么吗?
我希望节点 0 成为连接器,节点 9 成为能够感知并将数据转发到节点 0 的节点
代码:
[General]
include ../Parameters/Castalia.ini
repeat = 2
sim-time-limit = 7000s
SN.numNodes = 10
SN.node[1].xCoor = 10
SN.node[2].xCoor = 20
SN.node[3].xCoor = 30
SN.node[4].xCoor = 40
SN.node[5].xCoor = 50
SN.node[6].xCoor = 60
SN.node[7].xCoor = 70
SN.node[8].xCoor = 80
SN.node[9].xCoor = 90
SN.node[0..9].ResourceManager.initialEnergy = 1000
SN.node[*].Communication.Radio.RadioParametersFile = "../Parameters/Radio/CC2420.txt"
SN.node[*].Communication.Radio.collectTraceInfo = false
SN.node[*].Communication.Radio.TxOutputPower = "-5dBm"
SN.node[*].Communication.MAC.collectTraceInfo = false
SN.node[*].Communication.Routing.collectTraceInfo = true
SN.node[*].Application.collectTraceInfo = false
SN.wirelessChannel.onlyStaticNodes = true
SN.wirelessChannel.sigma = 0
SN.wirelessChannel.bidirectionalSigma = 0
#amount of packets sent
SN.node[*].ApplicationName = "ThroughputTest"
SN.node[9].Application.packet_rate = 300
# Here i define the static routing
SN.node[9].Application.nextRecipient = "8"
SN.node[8].Application.nextRecipient = "7"
SN.node[7].Application.nextRecipient = "6"
SN.node[6].Application.nextRecipient = "5"
SN.node[5].Application.nextRecipient = "4"
SN.node[4].Application.nextRecipient = "3"
SN.node[3].Application.nextRecipient = "2"
SN.node[2].Application.nextRecipient = "1"
SN.node[1].Application.nextRecipient = "0"
SN.node[*].Communication.Radio.collisionModel = 2
SN.node[*].Communication.MACProtocolName = "Basic802154"
SN.node[0].Communication.MAC.isFFD = true
SN.node[0].Communication.MAC.isPANCoordinator = true
SN.node[*].Communication.MAC.phyDataRate = 30
SN.node[*].Communication.MAC.phyBitsPerSymbol = 4
结果如下: ./../../bin/CastaliaResults -i 180424-155036.txt -s 消耗 -n
资源管理器:消耗的能量 +---------+---------+--------+---------+---------+ --------+---------+---------+---------+---------+ |节点=0 |节点=1 |节点=2 |节点=3 |节点=4 |节点=5 |节点=6 |节点=7 |节点=8 |节点=9 | +---------+---------+--------+---------+---------+ --------+---------+---------+---------+---------+ | 475.988 | 158.176 | 162.13 | 475.997 | 475.999 |第476章475.998 | 475.998 | 475.997 | 475.999 | +---------+---------+--------+---------+---------+ --------+---------+---------+---------+---------+
这些结果是不正确的,因为节点 0 应该是迄今为止能源消耗较多的节点,因为它必须协调网络,并且能源消耗应该从 9 递增到 1,即 9 节点能源消耗较少消费。
对于我从 Castalia 获得的结果中看到的情况,似乎静态路由不起作用,因为节点 1 和 2 的能耗较低,因为在与节点 0 通信的范围内,而其他节点消耗最大值由于与协调器的距离而定义的能量量。
【问题讨论】:
-
您正在使用每秒 300 个数据包的数据包速率。我想节点根本没有时间睡觉和节省能源。例如,如果您的数据包速率为 1,会发生什么情况?
-
唯一正在传输的节点是节点 9,但任何节点正在接收传输,因为它正在尝试与协调器通信并且没有数据包转发。 “Basic802154”的实现似乎是一个mac问题
-
您在写“能耗不准确”,但您的意思似乎是能耗与您的预期不符。这是两个非常不同的东西。请编辑您的问题以明确说明。
-
你做对了
标签: omnet++