A Standardized Framework for Machine Learning in Power System Protection
Organizations: Pattern Recognition Lab, Friedrich-Alexander-Universität Erlangen-Nürnberg, Martensstr. 3, 91058, Erlangen, Germany · Institute of Electrical Energy Systems, Friedrich-Alexander-Universität Erlangen-Nürnberg, Cauerstr. 4, 91058, Erlangen, Germany · Department of Electrical Engineering, Media and Computer Science, Ostbayerische Technische Hochschule Amberg-Weiden, Kaiser-Wilhelm-Ring 23, 92224, Amberg, Germany
Abstract
Studies of machine-learning-based power-system protection increasingly report near-perfect scores, yet the meaning of those scores depends strongly on the evaluation setting. Protection task, physical scope, measurements, timing, targets, preprocessing, and validation often vary jointly and remain incompletely specified. This paper proposes a standardization-oriented framework that treats evaluation design as part of the scientific contribution. It defines seven required study dimensions: protection objective, physical scope, observability, timing and decision windows, targets and sample validity, validation protocol, and evaluation outputs. The framework is instantiated in a bounded case study on the public PROTECT-90 electromagnetic-transient benchmark, comprising 9022 simulated episodes from a 90 kV double-line topology, for onset-conditioned fault classification and localization. Under centralized sensing, simulation-metadata-aligned 20 ms windows, and episode-grouped validation, a multi-layer perceptron (MLP) achieved a five-fold mean macro-averaged F1 score of 0.991 +/- 0.001 for classification and a localization mean absolute error of 10.20 +/- 0.25% of line length (mean +/- std across episode-grouped folds). Extending the decision horizon to 50 ms preserved this task-dependent performance asymmetry, while reduced observability approximately doubled the MLP localization error but had little effect on classification. A synchronized two-ended conventional locator outperformed the learning locators under its richer clean information set, and measurement degradation showed that clean predictive performance did not determine robustness. The framework turns evaluation assumptions into explicit, reproducible evidence and provides a basis for more comparable, auditable evaluation and future certification-oriented assessment of machine-learning protection functions.
Figures & tables
| Source family | Obj. | Scope | Obs. | Time | Targets | Validation | Outputs |
| Dataset documentation [ 40 ] | – | – | |||||
| ML reporting and validation guidance [ 39 , 38 , 41 ] | ✓ | ✓ | ✓ | ✓ | |||
| Protection reviews and scoping studies [ 27 , 28 , 30 ] | ✓ | ✓ | ✓ | ||||
| Protection-testing standards [ 8 , 42 ] | ✓ | ✓ | ✓ | ✓ | ✓ | ||
| General ai risk and assurance guidance [ 10 ] | ✓ | – | ✓ | ✓ | |||
| Proposed framework | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Framework step | Minimum reported information |
| 1. Protection objective | Protection task, operational interpretation, learning formulation, and predicted output |
| 2. Physical system scope | Network type, topology class, voltage level, operating range, fault and disturbance space, scenario-generation method, critical-condition coverage, data source, and known representativeness limitations |
| 3. Observability and measurements | Measurement locations, signal domain, channel set, synchronization assumptions, access regime, and auxiliary inputs |
| 4. Timing and decision windows | Event reference, pre-/post-event context, decision horizon, window length, stride, and overlap rule |
| 5. Targets and sample validity | Label or regression-target construction, inclusion/exclusion rules, boundary handling, and retained sample set |
| 6. Training and validation protocol | Split design, unit of independence, leakage-prevention strategy, preprocessing boundary, and model-comparison conditions |
| Framework step | Reference instantiation |
| 1. Protection objective | fc and fl under shared sensing, timing, and validation assumptions |
| 2. Physical system scope | PROTECT-90; 90 kV double-line topology; 9022 emt episodes; randomized fault and operating conditions |
| 3. Observability | Synchronized three-phase voltage/current measurements from 8 relays; centralized full-observability reference setting |
| 4. Timing | 80 ms around fault inception; 20 ms sliding windows; fixed 5 ms stride |
| 5. Targets | Onset-conditioned 11-class fc with one non-onset class and ten fault-type classes; fl as normalized fault position; fault-onset-containing windows for fl |
| 6. Validation | 5-fold grouped cross-validation by simulation episode; shared preprocessing and split design across tasks and models |
| Task | Metric | mlp | gb | knn | Ridge |
| fc | Macro- f1 | 0.991 0.001 | 0.745 0.017 | 0.799 0.006 | 0.095 0.003 |
| fl | mae [%] | 10.20 0.25 | 14.78 0.25 | 20.10 0.16 | 26.12 0.36 |
| Window | mlp | gb | knn | ridge |
| 10 ms | 0.985 0.011 | 0.418 0.009 | 0.738 0.012 | 0.097 0.002 |
| 20 ms (ref.) | 0.991 0.001 | 0.745 0.017 | 0.799 0.006 | 0.095 0.003 |
| 30 ms | 0.988 0.005 | 0.977 0.001 | 0.831 0.004 | 0.093 0.002 |
| 40 ms | 0.988 0.007 | 0.982 0.002 | 0.851 0.003 | 0.091 0.002 |
| 50 ms | 0.990 0.005 | 0.982 0.001 | 0.863 0.003 | 0.089 0.002 |
| Window | mlp | gb | knn | ridge |
| 10 ms | 10.64 0.36 | 14.65 0.19 | 20.38 0.32 | 26.14 0.32 |
| 20 ms (ref.) | 10.20 0.25 | 14.78 0.25 | 20.10 0.16 | 26.12 0.36 |
| 30 ms | 10.18 0.35 | 14.64 0.18 | 19.65 0.19 | 26.11 0.35 |
| 40 ms | 10.46 0.52 | 14.59 0.19 | 19.33 0.16 | 26.12 0.32 |
| 50 ms | 9.92 0.27 | 14.66 0.20 | 19.12 0.14 | 26.13 0.31 |
| Observability | mlp (20 ms) | gb (20 ms) | mlp (50 ms) | gb (50 ms) |
| Full | 0.991 0.001 | 0.745 0.017 | 0.990 0.005 | 0.982 0.001 |
| Relay pair | 0.989 (0.988–0.990) | 0.750 (0.717–0.777) | 0.987 (0.987–0.989) | 0.971 (0.968–0.975) |
| Single relay | 0.986 (0.975–0.993) | 0.734 (0.629–0.811) | 0.986 (0.966–0.991) | 0.952 (0.900–0.973) |
| Observability | mlp (20 ms) | gb (20 ms) | mlp (50 ms) | gb (50 ms) |
| Full | 10.20 0.25 | 14.78 0.25 | 9.92 0.27 | 14.66 0.20 |
| Relay pair | 19.65 (17.40–21.67) | 21.43 (20.30–22.42) | 19.62 (17.23–21.63) | 21.37 (20.12–22.38) |
| Single relay | 22.22 (20.17–23.69) | 23.20 (22.46–23.94) | 22.17 (20.05–23.62) | 23.07 (22.19–23.77) |
| Method | Observability | 20 ms | 50 ms |
| mlp | full | 10.20 0.25 | 9.92 0.27 |
| gb | full | 14.78 0.25 | 14.66 0.20 |
| knn | full | 20.10 0.16 | 19.12 0.14 |
| Ridge | full | 26.12 0.36 | 26.13 0.31 |
| Two-ended (per window) | relay pair | 5.42 0.09 | 3.62 0.23 |
| Two-ended (settled) | relay pair | 2.74 0.05 | 1.57 0.03 |
| Task (metric) | Model | Clean | Worst case |
| fl ( mae [%], ) | mlp | 10.20 | 24.36 |
| fl ( mae [%], ) | gb | 14.78 | 20.56 |
| fc (macro- f1 , ) | mlp | 0.991 | 0.959 |
| fc (macro- f1 , ) | gb | 0.745 | 0.274 |
| Model | Window | f1 | Train [s] | Infer. [ s] | Thr. [k/s] |
| mlp | 20 ms | 0.991 | 603.7 | 7.32 | 136.7 |
| gb | 20 ms | 0.745 | 132.6 | 24.47 | 41.1 |
| mlp | 50 ms | 0.990 | 1289.5 | 16.37 | 61.1 |
| gb | 50 ms | 0.982 | 1968.8 | 82.91 | 12.1 |
| Model | Window | mae | Train [s] | Infer. [ s] | Thr. [k/s] |
| mlp | 20 ms | 10.20 | 346.3 | 6.45 | 155.0 |
| gb | 20 ms | 14.78 | 27.2 | 22.49 | 44.5 |
| mlp | 50 ms | 9.92 | 2258.0 | 15.91 | 62.9 |
| gb | 50 ms | 14.66 | 140.4 | 49.36 | 20.3 |
| Model | fc 20 ms | fc 50 ms | fl 20 ms | fl 50 ms |
| mlp (reference) | 0.991 0.001 | 0.990 0.005 | 10.20 0.25 | 0 9.92 0.27 |
| cnn1d (from scratch) | 0.999 0.001 | 0.999 0.001 | 0 9.65 0.67 | 0 9.09 0.28 |
Appendix figures & tables13 assets
Supplementary material from the paper’s appendix.
Appendix
| Line | Single-terminal mae [%] | Two-terminal | Improvement | |
| Terminal 1 | Terminal 2 | mae [%] | [% points] | |
| 01–02A | 21.948 | 20.055 | 17.229 | 2.826 |
| 01–02B | 22.316 | 22.712 | 20.814 | 1.502 |
| 02–03A | 20.510 | 23.202 | 18.797 | 1.712 |
| 02–03B | 22.997 | 23.620 | 21.630 | 1.367 |
| Observability | Conventional | Conv. | mlp | gb |
| Full | (n/a) | – | 10.20 | 14.78 |
| Relay pair | two-ended synchr. | 2.74 | 19.65 | 21.43 |
| Single relay | one-ended reactance | 41.9 | 22.22 | 23.20 |
| Axis | Level | mlp | gb |
| Clean | – | 10.20 0.25 | 14.78 0.25 |
| Noise | 20 dB | 10.48 0.26 | 14.91 0.24 |
| Noise | 10 dB | 12.55 0.35 | 15.75 0.22 |
| ct saturation | 15.91 0.24 | 17.44 0.35 | |
| ct saturation | 24.36 0.67 | 20.56 0.37 | |
| Jitter | 2 samples | 12.30 1.35 | 15.05 0.26 |
| Axis | Level | mlp | gb |
| Clean | – | 0.991 0.001 | 0.745 0.017 |
| Noise | 20 dB | 0.989 0.003 | 0.592 0.024 |
| Noise | 10 dB | 0.982 0.011 | 0.274 0.028 |
| ct saturation | 0.982 0.002 | 0.682 0.021 | |
| ct saturation | 0.959 0.003 | 0.534 0.021 | |
| Jitter | 4 samples | 0.983 0.006 | 0.682 0.034 |
| Task | Model | Five-fold reference | High- test | Low- test |
| fc (macro- f1 ) | mlp | 0.991 | ||
| fc (macro- f1 ) | gb | 0.745 | 0.731 | 0.725 |
| fl ( mae [%]) | mlp | 10.20 | ||
| fl ( mae [%]) | gb | 14.78 | 16.79 | 14.30 |
| Class | Type | Windows | Share |
| Non-onset | – | 234 572 | 89.66% |
| AG / BG / CG | 1ph–g | 2295 / 2259 / 2283 | 0.88 / 0.86 / 0.87% |
| AB / BC / CA | 2ph | 2175 / 2262 / 2316 | 0.83 / 0.86 / 0.89% |
| ABG / BCG / CAG | 2ph–g | 2175 / 2205 / 2277 | 0.83 / 0.84 / 0.87% |
| ABC | 3ph | 6819 | 2.61% |
| Total | 261 638 | 100% |
| Model | fc 20 ms | fc 50 ms | fl 20 ms | fl 50 ms |
| mlp (reference) | 0.991 0.001 | 0.990 0.005 | 10.20 0.25 | 0 9.92 0.27 |
| cnn1d (from scratch) | 0.999 0.001 | 0.999 0.001 | 0 9.65 0.67 | 0 9.09 0.28 |
| MOMENT – linear probe | 0.953 0.005 | 0.975 0.002 | 14.82 0.10 | 14.99 0.09 |
| MOMENT – mlp head | 0.985 0.002 | 0.989 0.001 | 10.59 0.22 | 0 8.90 0.12 |
| Model | Window | Baseline f1 | @ 10 ms | @ 20 ms | @ 50 ms |
| mlp | 10 ms | 0.985 | +0.003 | – | – |
| mlp | 20 ms | 0.991 | -0.008 | -0.010 | – |
| mlp | 50 ms | 0.990 | -0.004 | -0.002 | -0.003 |
| gb | 10 ms | 0.418 | +0.100 | – | – |
| gb | 20 ms | 0.745 | +0.221 | +0.225 | – |
| gb | 50 ms | 0.982 | -0.005 | -0.003 | +0.004 |
| Model | Window | Baseline mae | @ 10 ms | @ 20 ms | @ 50 ms |
| mlp | 10 ms | 10.64 | +0.00 | – | – |
| mlp | 20 ms | 10.20 | +0.93 | +0.13 | – |
| mlp | 50 ms | 9.92 | +1.10 | +1.24 | +1.44 |
| gb | 10 ms | 14.65 | +0.00 | – | – |
| gb | 20 ms | 14.78 | +0.28 | -0.36 | – |
| gb | 50 ms | 14.66 | +0.49 | +0.65 | -0.20 |
| Model | Fixed configuration |
| Ridge | Regularization strength ; automatic solver selection; pseudorandom seed 42. RidgeClassifier is used for fc and Ridge for fl . |
| knn | Five neighbors; uniform weighting; Minkowski distance with ; automatic neighbor-search algorithm; parallel prediction enabled. |
| Histogram-based gb | 100 boosting iterations; learning rate 0.1; unrestricted tree depth; minimum 20 samples per leaf; no L2 regularization; pseudorandom seed 42. |
| mlp | One hidden layer with 100 rectified-linear units; Adam optimizer; L2 penalty ; initial learning rate ; automatic batch size; maximum 200 iterations; no early stopping; pseudorandom seed 42. |
| Model | Hyperparameter | Default | Tested values |
| gb | Learning rate | 0.1 | 0.03, 0.2 |
| gb | Maximum tree depth | unlimited | 3, 5, 10 |
| gb | Boosting iterations | 100 | 50, 300 |
| gb | Minimum samples per leaf | 20 | 5, 50 |
| gb | L2 regularization | 0 | , |
| mlp | Hidden layers | (100) | (50), (100, 50), (256, 128) |
| Task | Model | Window | Default | Best metric | Max. spread | |
| fc | gb | 20 ms | 0.745 | 0.967 | +0.222 (min leaf) | 0.327 (learn. rate) |
| fc | gb | 50 ms | 0.982 | 0.988 | +0.006 (iters) | 0.116 (learn. rate) |
| fc | mlp | 20 ms | 0.990 | 0.996 | +0.006 (init. lr) | 0.015 (init. lr) |
| fc | mlp | 50 ms | 0.991 | 0.994 | +0.003 (init. lr) | 0.011 (init. lr) |
| fl | gb | 20 ms | 14.782 | 13.232 | +1.550 (iters) | 5.530 (depth) |
| fl | gb | 50 ms | 14.662 | 12.942 | +1.720 (iters) | 5.671 (depth) |
| Model | Task | Ablation default | Best | Max. spread | |
| mlp | fc | 0.991 | 0.996 | +0.005 | 0.015 |
| gb | fc | 0.982 | 0.988 | +0.006 | 0.327 |
| mlp | fl | 9.955 | 8.296 | +1.659 | 6.209 |
| gb | fl | 14.662 | 12.942 | +1.720 | 5.671 |