Skip to content

Dispatching Multiple Assets with the Site API

The site API allows optimizing many assets at the same time. These assets operate on the same site.

Multiple assets can be optimized using an epl.Site, which accepts a list of assets.

Below we give some examples of typical configurations of energy assets.

Battery & CHP Generator

We can use a site to optimize an electric battery alongside a gas fired generator:

import energypylinear as epl

site = epl.Site(assets=[
  epl.Battery(power_mw=2.0, capacity_mwh=4.0),
  epl.Generator(
    electric_power_max_mw=100,
    electric_power_min_mw=30,
    electric_efficiency_pct=0.4
  )
])

results = site.optimize(
  electricity_prices=[100.0, 50, 200, -100, 0, 200, 100, -100],
  freq_mins=60,
  initial_charge_mwh=1,
  final_charge_mwh=3
)

Fast & Slow Battery

We can use a site to optimize a fast and slow battery alongside each other:

import energypylinear as epl

site = epl.Site(assets=[
  epl.Battery(power_mw=4.0, capacity_mwh=1.0),
  epl.Battery(power_mw=2.0, capacity_mwh=4.0),
])

results = site.optimize(
  electricity_prices=[100.0, 50, 200, -100, 0, 200, 100, -100],
  freq_mins=60,
  initial_charge_mwh=1,
  final_charge_mwh=3
)

Battery & EV Chargers

We can use a site to optimize a battery that sits alongside EV chargers:

import energypylinear as epl

site = epl.Site(assets=[
  epl.Battery(power_mw=2.0, capacity_mwh=4.0),
  epl.evs.EVs(charger_mws=[100, 100], charger_turndown=0.1)
])

results = site.optimize(
  electricity_prices=[100.0, 50, 200, -100, 0, 200, 100, -100],
  freq_mins=60,
  initial_charge_mwh=1,
  final_charge_mwh=3,
  charge_events=[
      [1, 0, 0, 0, 0, 0, 0, 0],
      [0, 1, 1, 1, 0, 0, 0, 0],
      [0, 0, 0, 1, 1, 0, 0, 0],
      [0, 1, 0, 0, 0, 0, 0, 0],
    ],
  charge_event_mwh=[50, 100, 30, 40]
)