-
Notifications
You must be signed in to change notification settings - Fork 16
Energy consumption
There are two main metrics TSCH-sim calculates:
- Radio duty cycle (RDC), in %
- Charge consumption, in microcoulumbs (mC)
Radio duty cycle is a more platform-independent value - you can make fair comparisons between RDC on different platforms, and to avoid e.g. penalizing the protocol running on older platforms which are less efficient. However, it's main drawback is that it's not easy to translate this metric to something like battery lifetime of the device.
Charge consumption takes into account both the RDC (determined the time spent in Tx and Rx radio modes), as well as the current consumption (in millamperes or microamperes) during these different states. Currently, experimental measurements on Texas Instruments CC2650 nodes are used as basis for these charge consumption values calculated by TSCH-sim.
A simple way how to determine the charge consumption is to use the formula:
time_tx * current_tx + time_rx * current_rx
However, the actual current consumption profile of a TSCH timeslot is quite complex, and this formula does not give very accurate results. Instead, TSCH-sim uses empirically measured consumption values on CC2650 nodes for a few packet sizes, and a linear regression to extrapolate the results to other packet sizes.
To sum up the main points:
- If you mostly care about the performance of the protocol, for example, because you're doing research on how to optimize it, Radio Duty Cycle may be sufficient.
- If you care about the system-level performance, including things like battery lifetime, charge consumption is the way to go (however, ask yourself whether TSCH-sim is the right tool to use?). Do note that it's not straightforward to translate radio's charge consumption to battery discharge time because of multiple reasons.
- If you care about the system-level performance on a specific platform, which is not a CC2650 platform, you need to extend the energy model of TSCH-sim, either by using the formula above, or by providing your own regression coefficients (see the TSCH-sim paper for details).
The radio duty cycle is computed as the sum of these values, divided by the total simulation time:
- The time spend in idle scanning, while trying to join the network. Use the
radio_duty_cycle_joined
metric to exclude this metric. - The time spent in receiving packets in Rx slots
- The time spent in receiving ACK in Tx slots
- The time spent in transmitting packets in Tx slots
- The time spent in transmitting ACK in Rx slots.
The consumption is computed as the sum of the:
- Charge consumed during idle scanning
- Charge consumed in empty Rx slots (no packets detected)
- Charge consumed in Rx slots with packets, but no ACK
- Charge consumed in Rx slots with packets and ACK
- Charge consumed in Tx slots with packet, but no ACK
- Charge consumed in Tx slots with packet and no ACK
For the four last bullet points, four different regression coefficients are applied. For each packet size seen in the simulation, the best approximation of charge consumption is computed using linear regression with the specific coefficients. Then this value is multiplied by the number of packets seen, and summed for all lengths of packets encountered in the simulation.