import pandas as pd class pv_config: def __init__(self, capacity, cost_per_kW, pv_lifetime, pv_loss): self.capacity = capacity self.cost_per_kW = cost_per_kW self.lifetime = pv_lifetime self.loss = pv_loss class ess_config: 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.lifetime = ess_lifetime self.loss = ess_loss self.storage = 0 self.charge_power = charge_power self.discharge_power = discharge_power class grid_config: def __init__(self, capacity, price_schedule, grid_loss, sell_price): self.price_schedule = price_schedule self.loss = grid_loss self.sell_price = sell_price self.capacity = capacity 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 # 默认电价,以防万一没有匹配的时间段