Skip to content

v2.0.0 - Major new release

Latest

Choose a tag to compare

@PRWenerginet PRWenerginet released this 17 Sep 10:54
· 30 commits to main since this release
a8e6adc

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.

⚠️ Breaking changes: signal, event, and script naming changes — see Changed before upgrading from 1.x.

✨ 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.py for batch/OOM-resilient runs, PGB synchronization to disable unused output channels, and a .psout recovery 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_use bit, new SIPS demand test cases, guideSIPS/guideSIPS2 ramping 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 .psout files — #270

PSCAD

  • External-client execution mode (configurable Fortran compiler/workspace via config.ini) — #239
  • batch_execute_pscad.py for batch execution / OOM workaround — #243
  • recover_psout_files.py for recovering .psout files 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/SystemProtect cases renamed to SIPS — #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; .pfd exported in 2025 format — #244, #303
  • requirements.txt split into MTB and plotter-specific files; relaxed version pins for plotly, 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/MtrfrGnd0 handling 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