Wind Array Sizing¶
Requires [OPF] for Pyomo CSS (optional Gurobi) or [LINEAR_ARRAY] for
OR-Tools route MIP and CSS (see Installation).
Workflow¶
Build a candidate inter-array grid from a turbine graph with
create_grid_from_turbine_graph()(see Grid Creation), or load a bundled case such aspyf.cases['alpha_ventus']().Run
sequential_CSS()— route MIP, then cable sizing on the fixed topology each iteration. Preferenable_cable_types=False(sequential methodology) over a joint route+CSS MIP.
import pyflow_acdc as pyf
from pyflow_acdc.constants import PYOMO_LINEAR_SOLVERS
grid, res = pyf.cases["alpha_ventus"]()
print(grid.lines_AC_ct[0].cable_types)
solver = next(
(name for name in PYOMO_LINEAR_SOLVERS if pyf.is_pyomo_solver_available(name)),
None,
)
if solver is None:
print("Skipped: no Pyomo MIP/CSS-L solver available")
else:
pyf.sequential_CSS(
grid,
NPV=True,
max_turbines_per_string=None,
MIP_solver=solver,
CSS_L_solver=solver,
max_iter=None,
time_limit=300,
tee=False,
)
res.all()
Example cases¶
pyf.cases['alpha_ventus']()pyf.cases['anholt']()pyf.cases['barrow']()pyf.cases['Borssele_3_and_4']()pyf.cases['moray_east']()pyf.cases['nordsee_one']()pyf.cases['westermost_rough']()
See Usage Guide for the full catalogue.