mirror of
https://github.com/Akkudoktor-EOS/EOS.git
synced 2025-11-09 06:56:29 +00:00
chore: eosdash improve plan display (#739)
Some checks are pending
docker-build / platform-excludes (push) Waiting to run
docker-build / build (push) Blocked by required conditions
docker-build / merge (push) Blocked by required conditions
pre-commit / pre-commit (push) Waiting to run
Run Pytest on Pull Request / test (push) Waiting to run
Some checks are pending
docker-build / platform-excludes (push) Waiting to run
docker-build / build (push) Blocked by required conditions
docker-build / merge (push) Blocked by required conditions
pre-commit / pre-commit (push) Waiting to run
Run Pytest on Pull Request / test (push) Waiting to run
* chore: improve plan solution display Add genetic optimization results to general solution provided by EOSdash plan display. Add total results. Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com> * fix: genetic battery and home appliance device simulation Fix genetic solution to make ac_charge, dc_charge, discharge, ev_charge or home appliance start time reflect what the simulation was doing. Sometimes the simulation decided to charge less or to start the appliance at another time and this was not brought back to e.g. ac_charge. Make home appliance simulation activate time window for the next day if it can not be run today. Improve simulation speed. Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com> --------- Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
This commit is contained in:
@@ -65,7 +65,6 @@ def genetic_simulation(config_eos) -> GeneticSimulation:
|
||||
optimization_hours = config_eos.optimization.horizon_hours,
|
||||
prediction_hours = config_eos.prediction.hours,
|
||||
)
|
||||
home_appliance.set_starting_time(2)
|
||||
|
||||
# Example initialization of electric car battery
|
||||
eauto = Battery(
|
||||
@@ -250,6 +249,17 @@ def genetic_simulation(config_eos) -> GeneticSimulation:
|
||||
home_appliance=home_appliance,
|
||||
)
|
||||
|
||||
# Init for test
|
||||
assert simulation.ac_charge_hours is not None
|
||||
assert simulation.dc_charge_hours is not None
|
||||
assert simulation.bat_discharge_hours is not None
|
||||
assert simulation.ev_charge_hours is not None
|
||||
simulation.ac_charge_hours[start_hour] = 1.0
|
||||
simulation.dc_charge_hours[start_hour] = 1.0
|
||||
simulation.bat_discharge_hours[start_hour] = 1.0
|
||||
simulation.ev_charge_hours[start_hour] = 1.0
|
||||
simulation.home_appliance_start_hour = 2
|
||||
|
||||
return simulation
|
||||
|
||||
|
||||
@@ -321,34 +331,34 @@ def test_simulation(genetic_simulation):
|
||||
|
||||
# Verify that the value at index 0 is 'None'
|
||||
# Check that 'Netzeinspeisung_Wh_pro_Stunde' and 'Netzbezug_Wh_pro_Stunde' are consistent
|
||||
assert result["Netzbezug_Wh_pro_Stunde"][1] == 0, (
|
||||
"The value at index 1 of 'Netzbezug_Wh_pro_Stunde' should be 0."
|
||||
assert result["Netzbezug_Wh_pro_Stunde"][1] == 1527.13, (
|
||||
"The value at index 1 of 'Netzbezug_Wh_pro_Stunde' should be 1527.13."
|
||||
)
|
||||
|
||||
# Verify the total balance
|
||||
assert abs(result["Gesamtbilanz_Euro"] - 1.958185274567674) < 1e-5, (
|
||||
"Total balance should be 1.958185274567674."
|
||||
assert abs(result["Gesamtbilanz_Euro"] - 6.612835813556755) < 1e-5, (
|
||||
"Total balance should be 6.612835813556755."
|
||||
)
|
||||
|
||||
# Check total revenue and total costs
|
||||
assert abs(result["Gesamteinnahmen_Euro"] - 1.168863124510214) < 1e-5, (
|
||||
"Total revenue should be 1.168863124510214."
|
||||
assert abs(result["Gesamteinnahmen_Euro"] - 1.964301131937134) < 1e-5, (
|
||||
"Total revenue should be 1.964301131937134."
|
||||
)
|
||||
assert abs(result["Gesamtkosten_Euro"] - 3.127048399077888) < 1e-5, (
|
||||
"Total costs should be 3.127048399077888 ."
|
||||
assert abs(result["Gesamtkosten_Euro"] - 8.577136945493889) < 1e-5, (
|
||||
"Total costs should be 8.577136945493889 ."
|
||||
)
|
||||
|
||||
# Check the losses
|
||||
assert abs(result["Gesamt_Verluste"] - 2871.5330639359036) < 1e-5, (
|
||||
"Total losses should be 2871.5330639359036 ."
|
||||
assert abs(result["Gesamt_Verluste"] - 1620.0) < 1e-5, (
|
||||
"Total losses should be 1620.0 ."
|
||||
)
|
||||
|
||||
# Check the values in 'akku_soc_pro_stunde'
|
||||
assert result["akku_soc_pro_stunde"][-1] == 42.151590909090906, (
|
||||
"The value at index -1 of 'akku_soc_pro_stunde' should be 42.151590909090906."
|
||||
assert result["akku_soc_pro_stunde"][-1] == 98.0, (
|
||||
"The value at index -1 of 'akku_soc_pro_stunde' should be 98.0."
|
||||
)
|
||||
assert result["akku_soc_pro_stunde"][1] == 60.08659090909091, (
|
||||
"The value at index 1 of 'akku_soc_pro_stunde' should be 60.08659090909091."
|
||||
assert result["akku_soc_pro_stunde"][1] == 98.0, (
|
||||
"The value at index 1 of 'akku_soc_pro_stunde' should be 98.0."
|
||||
)
|
||||
|
||||
# Check home appliances
|
||||
|
||||
Reference in New Issue
Block a user