7.9.11. Grid Stability

Predict the small-signal stability of a power grid from node-level parameters.

Example folder: examples/grid_stability (GitHub)

7.9.11.1. Overview

The dataset comes from the UCI Machine Learning Repository. It is simulation-derived and describes a 4-node “star” network with one central generation node and three peripheral consumer nodes. For each node there are three parameters:

  • tau1 to tau4: reaction time of the node (larger values mean slower dynamics)

  • p1 to p4: active power of the node (generation or consumption)

  • g1 to g4: price elasticity coefficient (sensitivity to price or control signals)

The label is stable or unstable.

  • Application: smart grid, power system operation, renewable energy integration

  • Task: classification (generic_timeseries_classification)

  • Device: F28P55 (config.yaml)

  • Model: CLS_ResCat_3k

Four-node star grid

Four-node star network used for the grid stability dataset

7.9.11.2. Preparing the Dataset

The config downloads https://software-dl.ti.com/C2000/esd/mcu_ai/datasets/grid_stability_dataset.zip automatically. To regenerate the zip from the UCI source, run the helper script and point dataset.input_data_path at the output (examples/grid_stability/grid_stability_dataset.zip):

cd examples/grid_stability
python grid_stability.py

Because the data is simulated, make sure train and validation splits cover the range of operating conditions and avoid overfitting to narrow parameter ranges.

7.9.11.3. Running the Example

Install Tiny ML ModelZoo first (Installation, Quickstart), then run from the tinyml-modelzoo folder:

./run_tinyml_modelzoo.sh examples/grid_stability/config.yaml

7.9.11.4. Configuration

common:
  task_type: generic_timeseries_classification
  target_device: F28P55
dataset:
  dataset_name: grid_stability
  input_data_path: https://software-dl.ti.com/C2000/esd/mcu_ai/datasets/grid_stability_dataset.zip
data_processing_feature_extraction:
  data_proc_transforms: ['SimpleWindow']
  frame_size: 256
  stride_size: 0.01
  variables: 6
  feature_extraction_name: Custom_Default
training:
  model_name: CLS_ResCat_3k
  num_gpus: 0
  early_stopping: true
  early_stopping_patience: 5
testing: {}
compilation: {}

7.9.11.5. Understanding the Outputs

The training/base folder holds the float model and feature data; training/quantization holds the INT8 model and its analysis. The PCA plots show whether the classes separate well in feature space. See Understanding the Run Output for all generated files.

7.9.11.6. Results from the 1.5.0 Test Run

In the automated 1.5.0 config test run, config.yaml reached a test accuracy of 100.00% with an AUC ROC of 1.000 (CLS_ResCat_3k, 1,018 parameters). The example readme does not publish accuracy numbers.

7.9.11.7. See Also