optimization package

Submodules

Module contents

Optimization module for port energy management.

class optimization.BaseOptimizationResult(status: str, charger_schedules: Dict[str, List[Tuple[datetime, float]]], boat_schedules: Dict[str, List[Tuple[datetime, float]]], peak_power_kw: float, total_energy_kwh: float, total_cost: float)[source]

Bases: object

Result of a daily optimization run.

boat_schedules: Dict[str, List[Tuple[datetime, float]]]
charger_schedules: Dict[str, List[Tuple[datetime, float]]]
peak_power_kw: float
status: str
total_cost: float
total_energy_kwh: float
class optimization.BaseOptimizer(port: Port, db_manager: DatabaseManager, timestep_seconds: int = 900, boat_charger_assignments: Dict[str, int] = None, trip_schedule: tuple = ((9, 0), (14, 1)), max_slack_timesteps: int = 8, deadline_decay_factor: float = 0.5, bess_end_soc_penalty: float = 0.5, time_limit_seconds: int = 120, mip_gap: float = 0.01)[source]

Bases: object

Minimize cost with grid import constrained to be <= contracted_power.

optimize_daily_schedule(forecast_date: datetime, energy_forecasts: List[EnergyForecast]) BaseOptimizationResult[source]
save_schedules_to_db(result: BaseOptimizationResult) None[source]