Repository navigation
MTB 2.0.0
MTB 2.0 is a major release focused on more realistic and thorough compliance testing, faster PSCAD/plotter execution, and clearer documentation. It also lays the groundwork for co-located generation/demand testing.
ℹ️ Using MTB in Danish grid connection processes is entirely voluntary, though recommended. Its predefined test cases are designed to catch non-compliant behaviour in broad terms — they are not an exhaustive or fixed list. Existing cases can be edited, and new cases added, whenever relevant to properly assess compliance for a specific plant. Using MTB, including its predefined case sets, is not a guarantee of model compliance, and passing them does not by itself constitute approval. Regardless of which test cases are run or passed, the connected plant must under no circumstances cause grid instability or reduce the security of the grid — a model will not be approved unless there is full confidence, established through whatever additional analysis and testing is necessary, that this requirement is met.
✨ Highlights
- More realistic test coverage — test case workbook now supports Q(U) droop, available power (
Pavail) levels other than 100%, main transformer grounding, and dedicated SIPS event handling for both generation and demand. - Faster PSCAD execution — new
batch_execute_pscad.pyfor batch/OOM-resilient runs, PGB synchronization to disable unused output channels, and a.psoutrecovery script for crashed runs. - Faster, better plots — multiprocessing support for guide curve calculation, new cursor metrics, and multi-column HTML report layout with an optional wide-screen three-column mode.
- Updated platform support — PowerFactory 2025 SP4, relaxed/updated Python dependency versions.
- Reworked documentation — new README, workflow diagrams, and the full Quickstart Wiki guide (also available as a PDF).
Added
Signals & test cases
QuDroop/Qudroop0(Q(U) droop),Pavail/Pavail0(available power),MtrfrGnd/MtrfrGnd0(main transformer grounding) — #202- Dedicated SIPS signal handling:
mtb_SIPS_g/mtb_SIPS_d,SIPS_future_usebit, new SIPS demand test cases,guideSIPS/guideSIPS2ramping logic — #300, #302, #310, #311, #317, #325, #328, #329
Plotter
- Analytical guide curves overlaid on figures — #188–#200
- Multiprocessing support for guide curve calculation — #229, #230, #231, #232, #233, #234, #235, #238
- New cursor metrics for evaluating simulation results — #190, #191, #192, #194, #195, #197
- Multi-column HTML report layout with legends — #179
- Automatic determination of the MTB location in
.psoutfiles — #270
PSCAD
- External-client execution mode (configurable Fortran compiler/workspace via
config.ini) — #239 batch_execute_pscad.pyfor batch execution / OOM workaround — #243recover_psout_files.pyfor recovering.psoutfiles after a crash — #211, #213- PGB synchronization (
pscad_synchronize_pgbs.py) with automatic disabling of unused signals — #273, #274
PowerFactory & utility scripts
- Dedicated subfolder support for study cases/variations — #319
list_psout_signals.py— #279,clean_project_definitions.py— #297,convert_psout_to_csv.py(renamed/moved) — #283, #284
Co-location
- Initial framework for co-located generation/demand case handling — #300
Changed
- SIPS event types renamed for clarity (
SIPS Generation/SIPS Demand);SystemGuard/SystemProtectcases renamed toSIPS— #202, #310, #317 - Q(U) rise/fall time parameter renamed to Q(U) response time — #253
- Unit measurement signal naming simplified (
$Unit$→Unit) — #287 psout_to_csv.py→utility_scripts/convert_psout_to_csv.py;psoutRecovery→recover_psout_files.py— #272, #283, #284- Updated to PowerFactory 2025 SP4;
.pfdexported in 2025 format — #244, #303 requirements.txtsplit into MTB and plotter-specific files; relaxed version pins forplotly,kaleido,tsdownsample— #305, #306- Reworked README and documentation — #339, #340, #341
Fixed
- Multi-dimensional PSCAD signal array handling in
process_psout.py— #214, #215 - Various PSCAD crash/robustness fixes (missing Fortran version, unsaved project, certificate acquisition, empty
psoutPathMTB) — #240, #258, #265, #281, #288 - Main Transformer Grounding condition check;
Pavail0/MtrfrGnd0handling in DCC cases — #236, #262 - HTML report layout/plot width issues; pandas 2.0+ array conversion compatibility — #185, #186, #327, #332
- Python 3.7.x compatibility issue caused by
pypdf— #267
Full Changelog: https://github.com/Energinet-SimTools/MTB/blob/main/CHANGELOG.md