Coder Social home page Coder Social logo

deepmachinelearning's Introduction

TensorFlow Based Machine Learning For Power System Analysis

This project is for exploring application of Deep Learning (DL) to power system analysis. Google's TensorFlow is used as ML engine, while InterPSS is used to provide power system analysis/simulation model service: 1) to generate training data to train the neural network (NN) model; 2) provide service for checking model prediction accuracy.

System Architecture

architecture

The project software system architecture is shown in the above figure. It includes the following three main components:

TensorFlow is an open source software library by Google for numerical computation using data flow graphs. Nodes in the graph represent mathematical operations, while the graph edges represent the multidimensional data arrays (tensors) communicated between them. The flexible architecture allows you to deploy computation to one or more CPUs or GPUs. See the Installation and Configuration page for instructions to install and configure TensorFlow on a Windows environment to run this project.

  • Power System Analysis Model Service

The Power System Model Service module provides service to the TensorFlow DL engine. The analysis model is based on InterPSS written in Java. The default TensorFlow programming language is Python. Hazelcast Python Cient lib or Py4J could be used to bridge the communication between TensorFlow Python runtime environment and InterPSS Java runtime environment.

  • Training Case Generator

The NN model is first trained and then used for power system analysis, for example, predicting network bus voltage for Loadflow analysis. An NN model is in general trained for certain purpose using a set of training data relevant to the problem to solve. The system architecture allows different traning case generators to be plugged-in for different model training purposes. A Training Case Generator Interface is defined for the traning case generator implementation.

Neural Network (NN) Model

Neural networks typically consist of multiple layers, and the signal path traverses from the input to the output layer of neural units. Back propagation is the use of forward stimulation to reset weights on the "front" neural units and this is sometimes done in combination with training or optimization where the correct result (training data) is known.

nn_model

A typical NN model is shown in the above figure. The output of previous layer [x] is weighted-summarized to produce [y] for the next layer.

    [y] = [W][x] + [b]
where, [W] - weight matrix
       [b] - bias vector

Links and References

License

Apache License, Version 2.0 Copyright (C) Apache Software Foundation

deepmachinelearning's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

deepmachinelearning's Issues

Creating new test cases

Hello,

Is there any simple way to create more test cases (for example the ones from 1992 test feeder cases from ieee PES site) in the format of the test case used here (ieee-14.ieee)?

Any help appreciated!

CA Max Branch P samples

@donghaoo after the double[] to string change, the predict_ca_branchmaxp.py and predict_ca_branchmaxp_1.py sample are not working. Please update the code accordingly.

Update Py4J lib to version 0.10.7

@Kayya886 The latest Py4J version is 0.10.7. The jar file has been downloaded to ipss.lib.3rdPty repo. Please test the new version with the examples to see if there are any incompatibility issues.

Non-Square [W] matrix

When predicting branch flow, we would like to use a 2*noBus x noBranch [W], as follows:

W1 = tf.Variable(tf.zeros([2*noBus, noBranch]))
b1 = tf.Variable(tf.zeros([noBranch]))

However, we got the following error msg:

ValueError: setting an array element with a sequence.

Currently, we use a 2noBus x 2noBus [W] for predicting branch flow.

Can anyone please guide on how to go on for installation from Scratch on Windows machine?

I have followed the wiki environment setup
https://github.com/interpss/DeepMachineLearning/wiki/Runtime-Env-Setup

But cannot complete this point.

Start InterPSS Power System Model Service
On Windows (or Linux) install and configure this Deep Machine Learning Repository. The ipss.dml project is depending on the ipss.lib project and ipss.lib.3rdPty project in the InterPSS Common Repository. These two projects should also be checked out to your local machine. Then start the AclfPyGateway InterPSS AclfNetwork model service. You should see the following output message, if the service is started and running:

Starting Py4J org.interpss.service.AclfPyGateway ...

Can anyone please help in to provide configuring steps to be followed.

Thank You,
Girish

Run Error for "predict_voltage.py"

When I run "predict_voltage.py" after the AclfPyGateway InterPSS AclfNetwork model service started, it returns the following error:

vagrant@vagrant-ubuntu-trusty-64:~/testAI_local/ipss.dml/src$ python3 predict_voltage.py
Traceback (most recent call last):
File "predict_voltage.py", line 21, in
from common_func import ipss_app
ImportError: No module named 'common_func'

I have all the libraries provided on the GitHub interpss project,

vagrant@vagrant-ubuntu-trusty-64:~/testAI_local/ipss.dml/src$ ls
ieee14.ieee ipss.lib ipss.lib.3rdPty ipss.numeric nohup.out org predict_voltage.py test

Please let me know how I can address this issue.

Thanks

Issue with running the ModelPredictTest.java

When running the Java code, I have the following issue:

java.lang.UnsatisfiedLinkError: Cannot find TensorFlow native library for OS: windows, architecture: x86_64. See https://github.com/tensorflow/tensorflow/tree/master/tensorflow/java/README.md for possible solutions (such as building the library from source). Additional information on attempts to find the native library can be obtained by adding org.tensorflow.NativeLibrary.DEBUG=1 to the system properties of the JVM.
	at org.tensorflow.NativeLibrary.load(NativeLibrary.java:77)
	...

Update the ML sample cases to Windows Tensorflow Installation

@DonghaoFeng

The ML sample cases were tested in Linux. Now new instructions have been added to run the sample case in Windows. Please update the sample cases to be run in Windows.

predict_voltage.py, predict_voltage1.py, predict_voltage2.py, predict_voltage3.py have already been updated.

Windows is much easy for the beginners to master.

InterPSS Power System Model Service

Could you help me on how to start InterPSS Power System Model Service? The description you provided in the Wiki is given as follows:

· Start InterPSS Power System Model Service

On Windows (or Linux) install and configure this Deep Machine Learning Repository, then start the AclfPyGateway InterPSS AclfNetwork model service. You should see the following output message, if the service is started and running:

Starting Py4J org.interpss.service.AclfPyGateway ...

And the interpss needs to be installed to coordinate, it will be great if you can also provide a quick guide on this.

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.