From ca10254c52fd47135ad82fd1014ef2ab984f1943 Mon Sep 17 00:00:00 2001 From: mhrooz Date: Fri, 3 May 2024 13:44:12 +0200 Subject: [PATCH] add chargepower and discharge power --- config.py | 29 ++++++++++++++++++++++++++--- pvprofile.py | 0 2 files changed, 26 insertions(+), 3 deletions(-) delete mode 100644 pvprofile.py diff --git a/config.py b/config.py index bd8291a..09b4e71 100644 --- a/config.py +++ b/config.py @@ -1,13 +1,36 @@ +import pandas as pd class pv_config: - def __init__(self, capacity, cost_per_kW, pv_lifetime): + def __init__(self, capacity, cost_per_kW, pv_lifetime, pv_loss): self.capacity = capacity self.cost_per_kW = cost_per_kW self.pv_lifetime = pv_lifetime + self.pv_loss = pv_loss class ess_config: - def __init__(self, capacity, cost_per_kW, pv_lifetime): + def __init__(self, capacity, cost_per_kW, ess_lifetime, ess_loss, charge_power, discharge_power): self.capacity = capacity self.cost_per_kW = cost_per_kW - self.pv_lifetime = pv_lifetime + self.ess_lifetime = ess_lifetime + self.ess_loss = ess_loss + self.ess_storage = 0 + self.charge_power = charge_power + self.discharge_power = discharge_power + +class grid_config: + def __init__(self, price_schedule, grid_loss): + self.price_schedule = price_schedule + + def get_price_for_time(self, time): + hour, minute = map(int, time.split(':')) + total_minutes = hour * 60 + minute + for _, row in self.price_schedule.iterrows(): + start_hour, start_minute = map(int, row['time_start'].split(':')) + end_hour, end_minute = map(int, row['time_end'].split(':')) + start_total_minutes = start_hour * 60 + start_minute + end_total_minutes = end_hour * 60 + end_minute + if start_total_minutes <= total_minutes < end_total_minutes: + return row['price'] + return 0.1 # 默认电价,以防万一没有匹配的时间段 + diff --git a/pvprofile.py b/pvprofile.py deleted file mode 100644 index e69de29..0000000