GithubHelp home page GithubHelp logo

fault_location's Introduction

============================================================================== Code accompanying the paper "Real-time Fault Localization in Power Grids With Convolutional Neural Networks"

Prerequisites

The proposed method is implemented through Jupyter Notebook. The required packages include:

  • Jupyter Notebook
  • Python 3
  • Numpy
  • Tensorflow 1.11

Getting started

  1. If you have Jupyter Notebook, you can directly run the codes of "ipynb" files;
  2. If you only have python, you can run the "py" files in the command line, for example:
    python  Training_by_CNN_on_partial_data.py

Visualization of the 4-layer CNN structure

Simulation Platform

Performance comparison of different methods (Multiclass support vector machine (MSVM), Neural Network (NN), and CNN) when 100% observability

Performance comparison of different methods when 15%~30% observability

Neighborhood property when partial observability

The proposed algorithm to select meausured buses

Robustness to noise

What we have achieved:

1, Define the feature vector based on the sparse fault current;

2, Build a CNN of 4 layers to locate the fault by classifying the faulted line;

3, The performance on four types of line faults with different fault impedances are tested;

4, When only partial buses are measured, the performances of CNN and other machine learning methods are compared, and CNN is superior than others;

5, An algorithm of selecting the measured buses is proposed and compared with other topology based method;

6, The location performance under noisy condition is also tested.

Introduction of the files included:

1, 'Datasets': saves the training and testing datasets;

2, 'Codes': include the codes by python 3 implemented on Jupyter Notebook, and the details are summarized as follows:

1, "Training_by_CNN_on_partial_data": is the training model with complete or partial measured buses together with the 
	topology of our 4-layer CNN visualized through tensorboard;
	
2, "Testing_by_CNN_on_partial_data" : is the testing codes of the CNN with different measured bus. In the example, performance 
	with 12 buses measured is obtained,  but different performance with various measured buses could be tested by changing the name of folder names "best_model_#_bus";
	
3, "Training_by_NN_on_partial_data" and "Testing_by_NN_on_partial_data" are the training and testing datasets through NN classifier;

4, "Testing_by_Multi_SVM_on_partial_data" is the training and testing process using Multi-SVM;

5, Compared with the performance using the Random or topology based algorithms (2-hop VC), the proposed method shows better 
	location accuracy rate, and the saved model and testing codes are in the folders of "best_model_proposed_12", 
	"best_model_random_12" and "best_model_topology12" respectively.

3, 'Figures_codes': Some performance comparison figures.

Reference

Feel free to apply our methods, run the codes, and please cite our paper as follows:

Li, Wenting, Deepjyoti Deka, Michael Chertkov, Meng Wang. "Real-time Faulted Line Localization and PMU Placement in Power Systems through Convolutional Neural Networks." IEEE Transactions on Power Systems (2019).

fault_location's People

Contributors

wendy0601 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.