PMACDCsc is a Julia/JuMP package for steady-state security-constrained optimization problems for hybrid AC/DC grids. PMACDCsc extends PowerModelsSecurityConstrained.jl to the features of PowerModelsACDC.jl. The code is engineered to address the problem specifications such as:
- Security-constrained optimal power flow (SCOPF);
- Security-constrained unit commitment (SCUC);
- Post-preventive SCOPF curative re-dispatch;
- Contingency filtering (severity index (SI filter), and non-dominated contingency (NDC filter));
- Security-constrained transmisssion network expansion planning (SCTNEP);
- Optimal power and frequency control ancillary services (OPFCAS); and
- Marginal Loss Factor (MLF) calculation.
Building upon the PowerModels.jl and PowerModelsACDC.jl architecture, the code supports the formulations such as:
- ACPPowerModel; and
- DCPPowerModel.
Moreover, the code supports the following netowk data formats:
- Matpower ".m" files; and
- PTI ".raw" files (PSS(R)E v33 specification).
Clone the package and add it to your julia environment using:
] develop https://github.com/csiro-energy-systems/PowerModelsACDCsecurityconstrained.jl.git
Add all dependencies, such as, PowerModels, PowerModelsACDC, PowerModelsSecurityConstrained etc. using:
] add PowerModels
Make sure that your Julia registry is up to date. To detect and download the latest version of the packages use:
] update
PMACDCsc provides several SCOPF formulations conforming to the ARPA-e GOC Challenge 1 specifications extended for hybrid AC/DC grids, which are given as follows.
Two-stage mathematical programming model (TSMP): complete base and contingency case models:
run_scopf_acdc_contingencies(data, scopf_formulation, filter_formulation, scopf_problem, scopf_solver, filter_solver, setting)
As an example, it can be used as:
result = PowerModelsACDCsecurityconstrained.run_scopf_acdc_contingencies(data, PowerModels.ACPPowerModel, PowerModels.ACPPowerModel, PowerModelsACDCsecurityconstrained.run_scopf, Ipopt.Optimizer, Ipopt.Optimizer, setting)
TSMP model: complete base and contingency case models with soft constraints and penalized slack variables:
run_scopf_acdc_contingencies(data, scopf_formulation, filter_formulation, run_scopf_soft, scopf_solver, filter_solver, setting)
TSMP model: complete base and contingency case models with soft constraints, penalized slack variables, and smooth approximated generator's frequency and voltage response, and AC/DC converter's P-Vdc droop control:
run_scopf_acdc_contingencies(data, scopf_formulation, filter_formulation, run_scopf_soft_smooth, scopf_solver, filter_solver, setting)
TSMP model: complete base and contingency case models with soft constraints, penalized slack variables, and mixed-integer based generator's frequency and voltage response, and AC/DC converter's P-Vdc droop control:
run_scopf_acdc_contingencies(data, scopf_formulation, filter_formulation, run_scopf_soft_minlp, minlp_scopf_solver, filter_solver, setting)
Decomposition based model conforming to the ARPA-e GOC Challenge 1 Benchmark heuristic developed in PowerModelsSecurityConstrained.jl, which is extended to include AC/DC converter station and DC grid models. The contingency case branch flow constraints are enforced by PTDF and DCDF cuts and penalized based on a conservative linear approximation of the formulation's specification.
run_scopf_acdc_cuts(data, scopf_formulation, filter_formulation, run_acdc_scopf_cuts, scopf_solver, filter_solver, setting)
The above mentioned decomposition based model with soft constraints and penalized slack variables:
run_scopf_acdc_cuts(data, scopf_formulation, filter_formulation, run_acdc_scopf_cuts_soft, scopf_solver, filter_solver, setting)
Several scripts are provided to showcase how effectively PMACDCsc solves the real-world research problems:
- The
scripts
directory provides differnt test case examples of SCOPF implimentations. - The
src/nem
directory provides the AC/DC SCOPF huiristic for the Australian National Electricity Market (NEM). - The
src/nem
directory provides the AC/DC OPFCAS for the Australian NEM. - The
scripts
directory provides the MLF calculation huiristic for the Australian NEM.
The Australian NEM datasets are available at Synthetic-NEM-2000bus-Data.
If you find PMACDCsc useful in your work, we kindly request that you cite the following publication PMACDCsc:
@article{PMACDCsc,
title = {AC–DC security-constrained optimal power flow for the Australian National Electricity Market},
journal = {Electric Power Systems Research},
volume = {234},
pages = {110784},
year = {2024},
issn = {0378-7796},
doi = {https://doi.org/10.1016/j.epsr.2024.110784},
url = {https://www.sciencedirect.com/science/article/pii/S0378779624006709},
author = {Ghulam Mohy-ud-din and Rahmat Heidari and Hakan Ergun and Frederik Geth}
}
- Ghulam Mohy ud din (CSIRO): Main developer
- Mark-Colquhoun (CSIRO): OPFCAS problem and MLF calculation
- Rahmat Heidarihaei (CSIRO): Supervision and technical support
- Frederik Geth (GridQube): Advice and support on AC/DC OPF formulations
- Hakan Ergun (KU Leuven / EnergyVille): Advice and support on AC/DC OPF formulations
This package is licensed under CSIRO Open Source Software Licence Agreement (variation of the BSD / MIT License). Copyright (c) 2022, Commonwealth Scientific and Industrial Research Organisation (CSIRO) ABN 41 687 119 230.