diff options
author | Daniel Friesel <daniel.friesel@uos.de> | 2021-01-11 16:20:50 +0100 |
---|---|---|
committer | Daniel Friesel <daniel.friesel@uos.de> | 2021-01-11 16:20:50 +0100 |
commit | 8f426980c73e1fd166cfa96e02c88e04e85a2cfa (patch) | |
tree | 72a9e84fb21f1a10c9199192ddbb76f6e29d960b /lib | |
parent | 717078e082ccdf6b0fd148f4d692307d1c6cbce7 (diff) |
evaluate E = P*t model. Seems slightly better in some cases
TODO: Fix send duration model generation for cc1200, should improve eval
Diffstat (limited to 'lib')
-rw-r--r-- | lib/loader.py | 3 | ||||
-rw-r--r-- | lib/model.py | 16 |
2 files changed, 19 insertions, 0 deletions
diff --git a/lib/loader.py b/lib/loader.py index 43d591b..577336a 100644 --- a/lib/loader.py +++ b/lib/loader.py @@ -1181,6 +1181,9 @@ def _add_trace_data_to_aggregate(aggregate, key, element): "power", "rel_power_prev", "rel_power_next", + "energy", + "rel_energy_prev", + "rel_energy_next", ] # Uncomment this line if you also want to analyze mean transition power # aggregate[key]['attributes'].append('power') diff --git a/lib/model.py b/lib/model.py index 781a29c..9070ece 100644 --- a/lib/model.py +++ b/lib/model.py @@ -1132,6 +1132,22 @@ class PTAModel: ) measures = regression_measures(predicted_data, elem[key]) detailed_results[name][key] = measures + if elem["isa"] == "transition": + predicted_data = np.array( + list( + map( + lambda i: model_function( + name, "power", param=elem["param"][i] + ) + * model_function(name, "duration", param=elem["param"][i]), + range(len(elem["power"])), + ) + ) + ) + measures = regression_measures( + predicted_data, elem["power"] * elem["duration"] + ) + detailed_results[name]["energy_Pt"] = measures return {"by_name": detailed_results} |