lorawansimStochastic
This python code make it possible to statistically analyze the energy output data of LoRaWANSim.
Two main updates have been made to original LoRaWANSim, which are:
- The Okumura-Hata propagation model has been removed and log-distance has been added.
- The following code has been added after line 1401 to compute the energy consumption per cycle including RX2 window:
result_cycle_energy_UL_mJ(temp_ED_number,config_iteration)=temp_ED_UL_consumption_mJ/(temp_num_UL_transmissions_delivered); result_cycle_energy_DL_RX1_mJ(temp_ED_number,config_iteration)=temp_ED_DL_consumption_RX1_useful_mJ/(temp_num_UL_transmissions_delivered); result_cycle_energy_DL_RX1_idle_mJ(temp_ED_number,config_iteration)=temp_ED_DL_consumption_RX1_idle_mJ/(temp_num_UL_transmissions_delivered); result_cycle_energy_DL_RX2_mJ(temp_ED_number,config_iteration)=temp_ED_DL_consumption_RX2_useful_mJ/(temp_num_UL_transmissions_delivered); result_cycle_energy_DL_RX2_idle_mJ(temp_ED_number,config_iteration)=temp_ED_DL_consumption_RX2_idle_mJ/(temp_num_UL_transmissions_delivered); result_cycle_energy_sleep_mJ(temp_ED_number,config_iteration)=temp_ED_sleep_consumption_mJ/(temp_num_UL_transmissions_delivered); result_cycle_energy_idle_mJ(temp_ED_number,config_iteration)=temp_ED_idle_consumption_mJ/(temp_num_UL_transmissions_delivered); result_cycle_energy_total_mJ(temp_ED_number,config_iteration) = (temp_ED_idle_consumption_mJ+temp_ED_UL_consumption_mJ+temp_ED_DL_consumption_RX1_idle_mJ+temp_ED_DL_consumption_RX2_idle_mJ+temp_ED_DL_consumption_RX1_useful_mJ+temp_ED_DL_consumption_RX2_useful_mJ+temp_ED_sleep_consumption_mJ)/(temp_num_UL_transmissions_delivered);
result_cycle_time_UL_ms(temp_ED_number,config_iteration)=temp_ED_UL_duration_ms/(temp_num_UL_transmissions_delivered); result_cycle_time_DL_RX1_ms(temp_ED_number,config_iteration)=temp_ED_DL_useful_receiving_RX1_duration_ms/(temp_num_UL_transmissions_delivered); result_cycle_time_DL_RX1_idle_ms(temp_ED_number,config_iteration)=temp_ED_DL_idle_receiving_RX1_duration_ms/(temp_num_UL_transmissions_delivered); result_cycle_time_DL_RX2_ms(temp_ED_number,config_iteration)=temp_ED_DL_useful_receiving_RX2_duration_ms/(temp_num_UL_transmissions_delivered); result_cycle_time_DL_RX2_idle_ms(temp_ED_number,config_iteration)=temp_ED_DL_idle_receiving_RX2_duration_ms/(temp_num_UL_transmissions_delivered); result_cycle_time_sleep_ms(temp_ED_number,config_iteration)=temp_ED_sleep_duration_ms/(temp_num_UL_transmissions_delivered); result_cycle_time_idle_ms(temp_ED_number,config_iteration)=temp_ED_idle_duration_ms/(temp_num_UL_transmissions_delivered); result_cycle_time_total_ms(temp_ED_number,config_iteration) = (temp_ED_UL_duration_ms+temp_ED_DL_useful_receiving_RX1_duration_ms+temp_ED_DL_idle_receiving_RX1_duration_ms+temp_ED_DL_useful_receiving_RX2_duration_ms+temp_ED_DL_idle_receiving_RX2_duration_ms+temp_ED_sleep_duration_ms+temp_ED_idle_duration_ms);