Batch IEC 60909 short circuit analysis across multiple PSS/E cases, exported to a formatted Excel summary.
This tool automates running an IEC 60909 short circuit study on a user-defined set of buses across every .sav case in a folder (and its subfolders), and produces a clean, presentation-ready Excel summary of 3-phase and 1-phase fault currents per bus — no manual report reading or copy-pasting.
Buses that don't exist in a given case are automatically skipped, so the same bus list can be reused across multiple case variants without editing.
| File | Purpose |
|---|---|
sc_reporter_summary.py |
Main Python automation script for PSS/E. |
README.md |
Tool documentation and usage guide. |
LICENSE |
MIT license. |
- Recursive
.savfile discovery across a project folder structure - IEC 60909 short circuit analysis on user-defined buses
- Per-case bus filtering — skips buses that don't exist in a given case
- Robust bus name / base kV parsing using PSS/E's fixed-width name field, rather than fragile whitespace splitting
- Formatted Excel summary output — bus number, name, base kV, 3-phase and 1-phase fault currents (kA)
- Tool/version/author metadata footer on every output sheet for traceability
- Safe-save logic that auto-closes a locked output file before overwriting
| Requirement | Version |
|---|---|
| PSS/E | v34 |
| Python | 2.7, PSS/E environment |
| openpyxl | Any recent version compatible with Python 2.7 |
Install openpyxl in the PSS/E Python 2.7 environment:
<PSSE_PATH>\python.exe -m pip install openpyxl
Example PSS/E Python paths:
C:\Program Files (x86)\PTI\PSSE34\PSSPY27
C:\Program Files\PTI\PSSE34\PSSPY27
-
Place
sc_reporter_summary.pyin a folder containing (or above) your PSS/E.savcase file(s). -
Open the script and edit the USER SETTINGS section.
At minimum, define the bus(es) to fault:
SC_BUSES = [101, 205, 30012] -
Confirm the PSS/E installation path:
PSSE_PATH = r"C:\Program Files (x86)\PTI\PSSE34\PSSPY27" -
Run from the PSS/E Python 2.7 environment:
exec(open("sc_reporter_summary.py").read())Or run it using the PSS/E script runner.
-
Results are written to a
Short Circuit Reportsfolder created alongside the script — one Excel file per.savcase, plus raw text logs.
| Setting | Default | Description |
|---|---|---|
SC_BUSES |
[] |
Required. One or more bus numbers to fault. |
SEARCH_LEVELS |
[0, 1, 2, 3] |
Folder search depth for .sav discovery. |
OUTPUT_FOLDER_NAME |
"Short Circuit Reports" |
Output folder name. |
BUS_NAME_FIELD_WIDTH |
12 |
Fixed-width bus name field used by PSS/E v34's SC report. |
MAX_PLAUSIBLE_KV |
800.0 |
Sanity ceiling for a parsed kV value; raise for higher-voltage models. |
All IEC 60909 fault settings (fault types, report format, tap/charging/shunt/load treatment, generator reactance model, voltage factor) are individually configurable near the top of the script, with defaults matching a standard IEC summary study. See the psspy.iecs_4 API documentation for the meaning of each option.
Each .sav case produces one Excel file containing:
- Short Circuit Summary — bus number, bus name, base kV, 3-phase fault current (kA), 1-phase fault current (kA)
- A metadata footer below the table — tool name, version, author, GitHub, case name, and run timestamp
- Tested for PSS/E v34 and Python 2.7.
- Not yet tested on other PSS/E versions.
- Assumes IEC 60909 is the desired fault standard; ANSI/other standards are not covered by this script.
- The script does not modify the PSS/E case. It only reads data and writes an Excel report.
- LG/LLG/LL faults require negative and/or zero-sequence data in the case. If that data isn't available, PSS/E computes fewer fault types than requested; the tool detects this per case and flags it in the Excel output and console rather than failing silently.
Do not upload confidential project files, .sav cases, client-specific outputs, or study results. The repository should contain only:
- Generic script
- README
- LICENSE
- Optional screenshots or synthetic examples
MIT — see LICENSE.
Haider Ali Senior Power System Engineer Power Planners International, Lahore, Pakistan
GitHub: github.com/4haiderali LinkedIn: linkedin.com/in/4haiderali
Current release: 1.0.3