Как рассчитать общее потребление энергии с помощью Cooja

Я работаю с беспроводной сенсорной сетью, чтобы оценить ее производительность в своей работе. Я хочу измерить задержку и общее потребление энергии, чтобы найти оставшуюся энергию в каждом узле. Итак, моя проблема в том, что у меня есть некоторые значения tx rx cpu cpu_idle, и я не знаю, как их использовать для вычисления того, что мне нужно. Я нашел несколько правил, которые используют расчет, но я не понимаю, как именно их применить в моем случае.

Энергия, потребляемая при общении:

Энергия, потребляемая процессором:

Что означает 32768 и почему мы используем это число? Это стандартное значение?


person Ayoub Benayache    schedule 11.08.2017    source источник
comment
Где вы нашли этот пример, укажите источник этих изображений или бумаги. В общем, нет никаких правил для правильного расчета энергии. Это зависит от включенной периферии, используемого процессора, скорости и т. Д.   -  person Tom Kuschel    schedule 12.08.2017


Ответы (2)


Выходные данные Powertrace выводятся в виде тактов таймера.

  • tx - количество тиков, в течение которых радио находилось в режиме передачи (ENERGEST_TYPE_TRANSMIT)
  • rx - количество тиков, в течение которых радио находилось в режиме приема (ENERGEST_TYPE_LISTEN)
  • cpu - количество тиков, в течение которых ЦП находился в активном режиме (ENERGEST_TYPE_CPU)
  • cpu_idle - количество тиков, в течение которых ЦП находился в режиме ожидания (ENERGEST_TYPE_LPM)

Элементы пары tx и rx являются исключительными, как и cpu и idle - система никогда не может находиться в обоих режимах одновременно. Однако возможны и другие комбинации: например, это может быть в cpu и в tx одновременно. Сумма cpu и idle - это общее время безотказной работы системы.

Продолжительность таймера тика зависит от платформы и определяется как константа RTIMER_ARCH_SECOND. 32768 тиков в секунду - типичное значение этой константы - отсюда и берется число в вашем уравнении. Например:

ticks_in_tx_mode = energest_type_time(ENERGEST_TYPE_TRANSMIT);
seconds_in_tx_mode = ticks_in_tx_mode / RTIMER_ARCH_SECOND;

Чтобы вычислить среднее потребление токамиллиамперах, мА), умножьте каждое из tx, rx, cpu, cpu_idle на соответствующее потребление тока в этот режим в mA (получить значения из таблицы данных узла), просуммировать их и разделить на RTIMER_ARCH_SECOND:

current = (tx * current_tx_mode + rx * current_rx_mode + \
          cpu * current_cpu + cpu_idle * current_idle) / RTIMER_ARCH_SECOND

Чтобы вычислить зарядмилликулумах, мкКл), умножьте среднее потребление тока на продолжительность измерения (время безотказной работы узла) в секундах:

charge = current * (cpu + cpu_idle) / RTIMER_ARCH_SECOND

Чтобы вычислить мощностьмилливаттах, мВт), умножьте средний потребляемый ток на напряжение системы, например, 3 вольта при питании. от пары батареек АА:

power = current * voltage

Наконец, чтобы вычислить потребление энергиимиллиджоулях, мДж), умножьте мощность на продолжительность в секундах или умножьте заряд на напряжение. системы:

energy = charge * voltage

Первая формула выше вычисляет потребление энергии для связи; второй: для расчета.

Этот сайт может помочь взломать вниз числа.

person kfx    schedule 12.08.2017

32768 Гц или 32, 768 кГц, это частота микроконтроллера MSP430F247, в частности, активный режим: 32 мкА при 3 В / 1 МГц или 1x10 6 Гц и режим низкого энергопотребления = 1 мкА при 3 В / 32768 Гц

person Puput Danny    schedule 06.05.2019