Skip to content

Power System simulation tool to visualize the steady state power system operation, such as optimal power flow and state estimation. The functions also include generating false data injection (FDI) attacks and detect by using Moving Target Defence (MTD).

Notifications You must be signed in to change notification settings

xuwkk/Visual-Power-Grid

Repository files navigation

Power System Visualization Demo: On Going

visualization

Introduction

This repository contains a visualization tool on power system steady state operation, e.g. Optimal Power Flow (OPF) and state estimation (SE). Meanwhile, cyber attacks, such as False Data Injection (FDI) and the corresponding defence strategy, e.g. Moving Target Defence (MTD) is also included. The demonstration is purely in Python. The power system operation replies on python package PyPower (installization required) and Tkinter (embedded in Python).

This repository is part of the Royal Imperial Black Box (RIBB) Project.

Thre current functions include:

  1. Infinitely run the OPF and display the active line flow measurement (as the percentage to the line active power limits).
  2. Do steady state AC state estimation and return the residual for bad data detection (BDD) usage.
  3. User's choice to perform two attack types on the grid normal operation, namely 'Random Attack' and 'FDI Attack'.
  4. Display both the attacked and normal measurment (as the percentage to the line active power limits) for comparison.
  5. The user can trigger the MTD under the FDI attacks. The MTD will proactively change the line reactance. Therefore the attackers' grid knowledge is biased so the residual increases.
  6. Display the residual plot for past OPF runs, under Normal or Attacked situation, with/out MTD triggered.

The functionalities on power system operation (e.g. opf, se, and bdd) are wrapped from our repository steady-state-power-system which maintains different algorithms to solve state estimation and detection algorithms on FDI attacks.

Data

Please find the Data and copy it into src.

PyPower

PYPOWER is a power flow and Optimal Power Flow (OPF) solver. It is a port of MATPOWER to the Python programming language. Functions include:

  • DC and AC (Newton's method & Fast Decoupled) power flow, and
  • DC and AC optimal power flow (OPF)

Tkinter

The Tkinter package (“Tk interface”) is the standard Python interface to the Tcl/Tk GUI toolkit. To learn Tkinter, please refer to one of the following tutorial:

  1. Tkinter Course - Create Graphic User Interfaces in Python Tutorial from freeCodeCamp.org (beginner level).
  2. Python Tkinter from John Philip Jones (beginner level).
  3. GUIs with Tkinter from sentdex (intermidiante lavel).

Citation

For any acedemic uses please cite our paper which also uses this repo as visualization: @article{xu2021robust, title={Robust Moving Target Defence Against False Data Injection Attacks in Power Grids}, author={Xu, Wangkun and Jaimoukha, Imad M and Teng, Fei}, journal={arXiv preprint arXiv:2111.06346}, year={2021} }

About

Power System simulation tool to visualize the steady state power system operation, such as optimal power flow and state estimation. The functions also include generating false data injection (FDI) attacks and detect by using Moving Target Defence (MTD).

Topics

Resources

Stars

Watchers

Forks