Transmission Expansion Planning Module¶
This module provides functions for transmission expansion planning (TEP) analysis of AC/DC hybrid power systems. [1]
Functions are found in pyflow_acdc.ACDC_Static_TEP
Transmission Expansion Planning¶
This section creates an OPF model, chooses a state objective function. Afterwards it will include transmission expansion planning in the model and TEP objectives, finally solves the model.
Running one state transmission expansion planning¶
- transmission_expansion(grid, NPV=True, n_years=25, Hy=8760, discount_rate=0.02, ObjRule=None, solver='bonmin')¶
Performs transmission expansion planning analysis.
Parameter
Type
Description
Default
gridGrid
Grid to analyze
Required
NPVbool
Calculate net present value
True
n_yearsint
Number of years for NPV calculation
25
Hyint
Hours per year
8760
discount_ratefloat
Discount rate for NPV
0.02
ObjRuledict
Objective function weights
None
solverstr
Solver to use
‘bonmin’
Returns
Returns a tuple containing:
Model object
Model results
Timing information
Solver statistics
Example
model, results, timing, stats = pyf.transmission_expansion(grid)
Running multiple scenario based transmission expansion planning¶
- multi_scenario_TEP(grid, increase_Pmin=False, NPV=True, n_years=25, Hy=8760, discount_rate=0.02, clustering_options=None, ObjRule=None, solver='bonmin')¶
Performs a multiple scenario based transmission expansion planning analysis. It utilizes the clustering module to cluster the time series data into different states.
Parameter
Type
Description
Default
gridGrid
Grid to analyze
Required
increase_Pminbool
Increase minimum power limit
False
NPVbool
Calculate net present value
True
n_yearsint
Number of years for NPV
25
Hyint
Hours per year
8760
discount_ratefloat
Discount rate for NPV
0.02
clustering_optionsdict
Time series clustering options
None
ObjRuledict
Objective function weights
None
solverstr
Solver to use
‘bonmin’
Returns
Returns a tuple containing:
Model object
Model results
Timing information
Solver statistics
TEP time series results
Example
model, results, timing, stats, ts_results = pyf.multi_scenario_TEP(grid)
Linear and Sensitivity Utilities¶
- linear_transmission_expansion(grid, NPV=True, n_years=25, Hy=8760, discount_rate=0.02, ObjRule=None, solver='gurobi', time_limit=300, tee=False, export=True, fs=False, obj_scaling=1.0)¶
Linearized TEP workflow suitable for faster studies and large sweeps.
- alpha_paretto(grid, steps, ObjRule, NPV=True, n_years=25, Hy=8760, discount_rate=0.02, solver='bonmin', time_limit=None, tee=False, save_name=None, obj_scaling=1.0)¶
Computes Pareto-like trade-off points by sweeping alpha-style objective mixing.
- rate_sensitivity(grid, steps, ObjRule, min_rate=0.0, max_rate=0.1, NPV=True, n_years=25, Hy=8760, solver='bonmin', time_limit=None, tee=False, obj_scaling=1.0)¶
Runs discount-rate sensitivity for TEP objective outcomes.
- kappa_sensitivity(grid, steps, ObjRule, min_kappa=0.0, max_kappa=1.0, NPV=True, n_years=25, Hy=8760, discount_rate=0.02, solver='bonmin', time_limit=None, tee=False, obj_scaling=1.0)¶
Runs kappa-weight sensitivity for TEP objective outcomes.
- comprehensive_sensitivity_analysis(grid, ObjRule, alpha_steps=None, rate_steps=None, kappa_steps=None, alpha_range=(0.0, 1.0), rate_range=(0.01, 0.1), kappa_range=(0.0, 1.0), n_years=25, Hy=8760, discount_rate=0.02, solver='bonmin', time_limit=None, tee=False, obj_scaling=1.0)¶
Convenience wrapper to execute multiple TEP sensitivity studies.
Element Expansion Helpers¶
- expand_elements_from_pd(grid, exp_elements)¶
Applies expansion definitions from a pandas table.
- repurpose_element_from_pd(grid, rec_elements)¶
Applies reconductoring/repurposing definitions from a pandas table.
- update_attributes(element, n_b, n_i, n_max, life_time, base_cost, per_unit_cost, exp, n_inv_max=None)¶
Updates expansion-related attributes of a TEP-enabled element.
- Expand_element(grid, name, n_b=None, n_i=None, n_max=None, life_time=None, base_cost=None, per_unit_cost=None, exp=None, update_grid=True, n_inv_max=None, **legacy_kwargs)¶
Enables or updates one element for TEP investment modeling.
- Translate_pd_TEP(grid)¶
Builds pandas summaries from solved TEP model variables.
Transmission Expansion Planning objectives¶
- TEP_obj(model, grid, NPV)¶
Returns the objective function for the transmission expansion planning based on [1]:
Description
Formula
AC expansion
\(\Psi_{exp}=\sum_{h \in \mathcal{E}_{ac}} \left[(n_h - n_{h,\text{b}}) \cdot \psi_h(L_h) \right]\)
AC reconducting
\(\Psi_{rec}=\sum_{u \in \mathcal{U}_{ac}} \left[\xi_u \cdot \psi_u(L_u) \right]\)
AC line selection
\(\Psi_{a}=\sum_{a \in \mathcal{E}_a} \sum_{n \in \mathcal{CT}} \left[ \xi_{a,n} \cdot \psi_n(L_a) \right]\)
DC expansion
\(\Psi_{dc}=\sum_{e \in \mathcal{E}_{dc}} \left[(n_e - n_{e,\text{b}}) \cdot \psi_e(L_e, p_e) \right]\)
Converter expansion
\(\Psi_{conv}=\sum_{cn \in \mathcal{E}_{cn}} \left[(n_{cn} - n_{cn,\text{b}}) \cdot \psi_{cn}(p_{cn}) \right]\)
General objective function
\(\Psi = \Psi_{exp}+\Psi_{rec}+\Psi_{a}+\Psi_{dc}+\Psi_{conv}\)
State objective function
\(\phi =\) OPF function
Net present value
\(\min \left[\frac{1 - \left(1 + r\right)^{-y}}{r} \cdot H_y \cdot \phi + \Psi \right]\)
Export Results¶
- export_TEP_TS_results_to_excel(grid, export)¶
Exports time series TEP results to Excel file.
Parameter
Type
Description
Default
gridGrid
Grid with results
Required
exportstr
Export file path
Required
Example
pyf.export_TEP_TS_results_to_excel(grid, "results.xlsx")
References