Linux Foundation Energy has announced the 1.7 release series of Power Grid Model (PGM), including adding the Newton-Raphson calculation method for enhanced state estimation. This new release also now allows for separate specification of the measurement error margins for both active and reactive power, enhancing the stability and precision of state estimations. PGM is a high-performance Python/C++ library for steady-state distribution power system analysis.
Details of all changes in this release follow, and the release notes are also available.
Highlights
- ✅ Newton-Raphson calculation method for state estimation (see the documentation).
- ✅ Optional separate sigmas for active power and reactive power for power sensors (see the documentation).
- ✅ Get the batch size of an update data set (see the API reference).
- 💥 Multiple bug fixes (see e.g. #462 and #477 ).
- 🚀 Improvements and fixes to documentation.
- 🎉 Various improvements to the internal implementation and compiler support.
- 🎉 The licenses of source and data files were updated.
Support for Python 3.8 was dropped
As agreed upon during the last Power Grid Model meet-up, support for Python 3.8 was dropped. Please refer to our Release Strategy on details.
Full list of changes
- fix tests import by @TonyXiang8787 in #394
- Bump pypa/cibuildwheel from 2.16.0 to 2.16.1 by @dependabot in #395
- fix msgpack serialization to file by @mgovers in #396
- minor improvements to docs + test output by @mgovers in #397
- add note about mailinglist by @petersalemink95 in #398
- use libboost-headers in conda by @TonyXiang8787 in #399
- Bump pypa/cibuildwheel from 2.16.1 to 2.16.2 by @dependabot in #400
- Refactor solvers by @petersalemink95 in #390
- fix links in examples by @Laurynas-Jagutis in #401
- Refactor indptr / sparse structure by @nitbharambe in #379
- Replace indptr with sparse and dense grouped index vector by @mgovers in #402
- Feature/full clang tidy after indptrs by @mgovers in #403
- replace sparse with dense representation for components by @mgovers in #406
- Bugfix/write to file opened in read mode by @mgovers in #408
- Feature/zip sparse grouped idx vector by @mgovers in #407
- Add download badges to README.md by @Jonasvdbo in #410
- rerun the example notebooks by @Laurynas-Jagutis in #413
- fix sonar code smells by @Laurynas-Jagutis in #414
- Feature/recombine enumerated zip sequence by @mgovers in #412
- bump Clang CI on Linux to LLVM-15 by @mgovers in #418
- fix multiple different code smells by @Laurynas-Jagutis in #417
- replace some std::find by std::ranges::find by @mgovers in #416
- bump Apple CI to macos-13 + xcode latest-stable by @mgovers in #415
- Feature/refactor test power sensor by @mgovers in #419
- add reactive_power_sigma attribute by @mgovers in #409
- Use Msgpack Visitor for deserialization. by @TonyXiang8787 in #420
- Use JSON visitor for serialization by @TonyXiang8787 in #424
- inverse update approach by @mgovers in #427
- Feature/standard layout input by @mgovers in #430
- Update build-guide.md by @mgovers in #436
- Fix/fix inverse drift by @mgovers in #437
- preliminary equations by @zhen0427 in #428
- Feature/dgc 2055 get batch size function by @Jerry-Jinfeng-Guo in #429
- Feature addition to check if
p_sigma
andq_sigma
co-(in)exist. by @Jerry-Jinfeng-Guo in #425 - Feature/nrse interface by @mgovers in #441
- Bump conda-incubator/setup-miniconda from 2 to 3 by @dependabot in #443
- Bump actions/setup-python from 4 to 5 by @dependabot in #445
- Improve formatting component modeling documentation by @zhen0427 in #439
- extend documentation on dataset validation by @mgovers in #446
- Feature/citations readthedocs by @mgovers in #451
- Bump actions/download-artifact from 3 to 4 by @dependabot in #452
- Bump actions/upload-artifact from 3 to 4 by @dependabot in #453
- Bugfix/fix version by @mgovers in #454
- update topology to not necessarily go through sparse mapping by @Laurynas-Jagutis in #426
- NRSE low level design by @nitbharambe in #455
- Feature/remove needless id lookup by @mgovers in #456
- Revert “Feature/remove needless id lookup” by @mgovers in #459
- [Hotfix] fix restore after failing batch scenario by @mgovers in #462
- Revert “Revert “Feature/remove needless id lookup”” by @mgovers in #460
- Feature improve sparse matrix behaviour by @mgovers in #463
- DGC 2106 Changes support python version from 3.8 to 3.9 by @Jerry-Jinfeng-Guo in #464
- Feature/tests for restore bug by @mgovers in #467
- Feature/sustainable solution for bug by @mgovers in #468
- Feature/nrse validation case by @mgovers in #442
- enable running newton raphson for state estimation tests by @mgovers in #472
- Feature/experimental validation tests by @mgovers in #471
- Feature/nrse validation by @mgovers in #473
- Use constexpr for all meta data by @TonyXiang8787 in #475
- Fix rounding error of transformer calculation in arm64 by @mgovers in #477
- Test macOS arm64 Python wheel using Fly CI by @TonyXiang8787 in #479
- Bump pypa/cibuildwheel from 2.16.2 to 2.16.4 by @dependabot in #480
- update copyright notice by @mgovers in #481
- homogenize remaining copyright notices by @mgovers in #483
- bump cibuildwheel to `v2.16.5 by @mgovers in #485
- Updated the vscode settings jason files/license by @Jerry-Jinfeng-Guo in #484
- Add notebook example of asymmetric calculations. by @zhen0427 in #482
- Incremental Y-Bus admittance matrix update by @Jerry-Jinfeng-Guo in #444
- Fix NRSE line measurement implementation by @nitbharambe in #478
- Newton Raphson State Esimation Implementation by @nitbharambe in #438
- Refactoring Python code to eliminate code smells by @ekiwaka in #492
- NRSE documentation by @mgovers in #488
- Feature/test unbalanced power measurement by @mgovers in #494
- Finalize NRSE by @mgovers in #495
- Release v1.7.0: Newton-Raphson State Estimation by @mgovers in #499
New Contributors
- @zhen0427 made their first contribution in #428
- @Jerry-Jinfeng-Guo made their first contribution in #429
- @ekiwaka made their first contribution in #492
Full Changelog: v1.6.0...v1.7.0