PYPOWER provides a Command Line Interface (CLI) and a Python Application Programming Interface (API).
Following the Installation instructions adds pf and opf to the command path. To print usage info type:
$ pf -h
All available options will be printed:
Usage: pf [options] [casedata]
Runs a power flow.
If 'casedata' is provided it specifies the name of the input data file
containing the case data.
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-t, --test run tests
-c TESTCASE, --testcase=TESTCASE
built-in test case (choose from: 'case30_userfcns',
'case118', 'case9', 'case30Q', 'case30pwl', 'case6ww',
'case57', 'case39', 'case14', 'case9Q', 'case30',
'case300', 'case4gs', 'case24_ieee_rts')
-o FNAME, --outfile=FNAME
pretty printed output will be appended to a file with
the name specified. Defaults to stdout.
-s SOLVEDCASE, --solvedcase=SOLVEDCASE
the solved case will be written to a case file with
the specified name in PYPOWER format. If solvedcase
ends with '.mat' the case is saves as a MAT-file
otherwise it saves it as a Python file.
Power Flow Options:
--pf_alg=PF_ALG power flow algorithm: 1 - Newton's method, 2 - Fast-
Decoupled (XB version), 3 - Fast-Decoupled (BX
version), 4 - Gauss Seidel [default: 1]
--pf_tol=PF_TOL termination tolerance on per unit P & Q mismatch
[default: 1e-08]
--pf_max_it=PF_MAX_IT
maximum number of iterations for Newton's method
[default: 10]
--pf_max_it_fd=PF_MAX_IT_FD
maximum number of iterations for fast decoupled method
[default: 30]
--pf_max_it_gs=PF_MAX_IT_GS
maximum number of iterations for Gauss-Seidel method
[default: 1000]
--enforce_q_lims=ENFORCE_Q_LIMS
enforce gen reactive power limits, at expense of |V|
[default: False]
--pf_dc=PF_DC use DC power flow formulation, for power flow and OPF:
False - use AC formulation & corresponding algorithm
opts, True - use DC formulation, ignore AC algorithm
options [default: False]
Output Options:
--verbose=VERBOSE amount of progress info printed: 0 - print no progress
info, 1 - print a little progress info, 2 - print a
lot of progress info, 3 - print all progress info
[default: 1]
--out_all=OUT_ALL controls printing of results: -1 - individual flags
control what prints, 0 - don't print anything
(overrides individual flags, except OUT_RAW), 1 -
print everything (overrides individual flags,
except OUT_RAW) [default: -1]
--out_sys_sum=OUT_SYS_SUM
print system summary [default: True]
--out_area_sum=OUT_AREA_SUM
print area summaries [default: False]
--out_bus=OUT_BUS print bus detail [default: True]
--out_branch=OUT_BRANCH
print branch detail [default: True]
--out_gen=OUT_GEN print generator detail (OUT_BUS also includes gen
info) [default: False]
--out_all_lim=OUT_ALL_LIM
control constraint info output: -1 - individual flags
control what constraint info prints, 0 - no constraint
info (overrides individual flags), 1 - binding
constraint info (overrides individual flags), 2 - all
constraint info (overrides individual flags) [default:
-1]
--out_v_lim=OUT_V_LIM
control output of voltage limit info: 0 - don't print,
1 - print binding constraints only, 2 - print all
constraints (same options for OUT_LINE_LIM,
OUT_PG_LIM, OUT_QG_LIM) [default: 1]
--out_line_lim=OUT_LINE_LIM
control output of line limit info [default: 1]
--out_pg_lim=OUT_PG_LIM
control output of gen P limit info [default: 1]
--out_qg_lim=OUT_QG_LIM
control output of gen Q limit info [default: 1]
--out_raw=OUT_RAW print raw data [default: False]
--return_raw_der=RETURN_RAW_DER
return constraint and derivative info in
results['raw'] (in keys g, dg, df, d2f)) [default: 0]
PYPOWER includes a selection of test cases. For example, to run a power flow on the IEEE 14 bus test case:
$ pf -c case14
Alternatively, the path to a PYPOWER case data file can be specified:
$ pf /path/to/case14.py
The opf command has the same calling syntax. For example, to solve an OPF for the IEEE Reliability Test System and write the solved case to file:
$ opf -c case24_ieee_rts --solvedcase=rtsout.py
The Python API for PYPOWER can be accessed using the pypower.api package:
In [1]: from pypower.api import case9, ppoption, runpf, printpf
To load the 9 bus test case, solve an AC power flow using the fast-decoupled method and print the results:
In [2]: ppc = case9()
In [3]: ppopt = ppoption(PF_ALG=2)
In [4]: r = runpf(ppc, ppopt)
In [5]: printpf(r)
For additional information refer to the Python documentation for each of the functions. E.g:
In [6]: help runpf
Alternatively, refer to the on-line API documentation.