2017-08-11 4 views
0

Je travaille avec un responsable de réseau de capteurs sans fil pour évaluer ses performances dans mon travail. Je veux mesurer la latence et la consommation d'énergie totale pour trouver l'énergie restante dans chaque nœud. Donc, mon problème est que j'ai quelques valeurs de tx rx cpu cpu_idle et je ne sais pas comment les utiliser pour calculer ce dont j'ai besoin. J'ai trouvé quelques règles qui prennent le calcul mais je ne comprends pas exactement comment l'appliquer dans mon cas.Comment calculer la consommation d'énergie totale en utilisant Cooja

énergie consommée en communication:

énergie consommée par unité centrale de traitement:

Quelle est la signification de 32768, et pourquoi utilisez-nous ce numéro? Est-ce une valeur standard?

+0

Où avez-vous trouvé cette étude de cas, s'il vous plaît déclarer la source de ces images ou du papier. En général, il n'y a pas de règles pour un bon calcul d'énergie. Cela dépend des périphériques activés, du processeur utilisé, de la vitesse, etc. –

Répondre

0

La sortie powertrace est imprimée en ticks de minuterie.

  • tx - le nombre de tiques de la radio est en mode d'émission (ENERGEST_TYPE_TRANSMIT)
  • rx - le nombre de tiques de la radio est en mode de réception (ENERGEST_TYPE_LISTEN)
  • cpu - le nombre de tiques le processeur est en mode actif (ENERGEST_TYPE_CPU)
  • cpu_idle - le nombre de graduations de la CPU est en mode veille (ENERGEST_TYPE_LPM)

Les éléments de la paire tx et rx sont exclusifs, tout comme cpu et idle - le système ne peut jamais être dans les deux modes en même temps. Cependant, d'autres combinaisons sont possibles: elle peut être en cpu et en tx en même temps, par exemple. La somme de cpu et idle est la durée de fonctionnement totale du système.

La durée de temporisation d'une coche dépend de la plate-forme et est définie comme la constante RTIMER_ARCH_SECOND. 32768 ticks par seconde est une valeur typique de cette constante - c'est de là que vient le nombre dans votre équation.Par exemple:

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

pour calculer la consommation de courant moyenne (en milliampères, mA), multiplier chacune des tx, rx, cpu, cpu_idle avec la consommation de courant respectif dans ce mode de mA (obtenir les valeurs de la feuille de données du noeud), les additionner et diviser par :

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

pour calculer la frais (en millicoulumbs, mC), multiplier la consommation de courant moyenne à la durée de (le temps de fonctionnement du noeud) la mesure en secondes:

charge = current * (cpu + cpu_idle)/RTIMER_ARCH_SECOND 

pour calculer la puissance (en milliwats, mW) multipliez la consommation de courant moyenne par la tension du système, par exemple, 3 volts si alimenté par une paire de piles AA:

power = current * voltage 

Enfin, pour calculer la consommation d'énergie (en millijoules, mJ), multiplier la puissance de la durée en secondes ou multiplier la charge avec la tension du système:

energy = charge * voltage 

La première formule ci-dessus calcule la consommation d'énergie pour les communications; le second: pour le calcul.

Cette site peut être utile pour répartir les nombres.