mirror of
https://github.com/flobz/psa_car_controller.git
synced 2026-08-22 09:26:16 +00:00
improve battery curve algo
This commit is contained in:
+2
-2
@@ -78,9 +78,9 @@ class Car:
|
||||
self._status.__class__ = CarStatus
|
||||
self._status.correct()
|
||||
|
||||
def get_charge_speed(self, start_level, end_level, duration_in_sec) -> float:
|
||||
def get_charge_speed(self, diff_elvel, duration_in_sec) -> float:
|
||||
duration_in_hour = duration_in_sec / 3600
|
||||
charged_kw = self.battery_power * (end_level - start_level) / 100
|
||||
charged_kw = self.battery_power * diff_elvel / 100
|
||||
kw_hour = charged_kw / duration_in_hour
|
||||
return kw_hour
|
||||
|
||||
|
||||
+11
-7
@@ -162,16 +162,20 @@ def get_battery_curve_fig(row: dict, car: Car):
|
||||
res = Database.get_battery_curve(conn, start_date, car.vin)
|
||||
conn.close()
|
||||
res.insert(0, {"level": row["start_level"], "date": start_date})
|
||||
res.append({"level": row["end_level"], "date": stop_at})
|
||||
if row["end_level"] is not None:
|
||||
res.append({"level": row["end_level"], "date": stop_at})
|
||||
battery_curves = []
|
||||
speed = 0
|
||||
for x in range(1, len(res)):
|
||||
start_level = res[x - 1]["level"]
|
||||
end_level = res[x]["level"]
|
||||
diff_sec = (res[x]["date"] - res[x - 1]["date"]).total_seconds()
|
||||
if diff_sec > 0:
|
||||
speed = car.get_charge_speed(start_level, end_level, diff_sec)
|
||||
start = 0
|
||||
for end in range(1, len(res)):
|
||||
start_level = res[start]["level"]
|
||||
end_level = res[end]["level"]
|
||||
diff_level = end_level-start_level
|
||||
diff_sec = (res[end]["date"] - res[start]["date"]).total_seconds()
|
||||
if diff_sec > 0 and diff_level > 3:
|
||||
speed = car.get_charge_speed(diff_level, diff_sec)
|
||||
battery_curves.append({"level": start_level, "speed": speed})
|
||||
start = end
|
||||
battery_curves.append({"level": row["end_level"], "speed": speed})
|
||||
fig = px.line(battery_curves, x="level", y="speed")
|
||||
fig.update_layout(xaxis_title="Battery %", yaxis_title="Charging speed in kW")
|
||||
|
||||
Reference in New Issue
Block a user