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:
objectResult 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:
objectMinimize 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]¶