Volt-Var Optimization (WSU)

This repository contains the restoration application for IEEE 9500-node model (https://github.com/GRIDAPPSD/Powergrid-Models/tree/develop/blazegraph/test/dss/WSU). The application is hosted on GridAPPS-D platform.

Layout

Please clone the repository https://github.com/GRIDAPPSD/gridappsd-docker (refered to as gridappsd-docker repository) next to this repository (they should both have the same parent folder)

Creating the restoration application container

  1. From the command line execute the following commands to build the wsu-restoration container

    osboxes@osboxes> cd WSU-VVO-app
    osboxes@osboxes> docker build --network=host -t wsu-vvo-app .
    
  2. Add the following to the gridappsd-docker/docker-compose.yml file

    wsu_vvo:
      image: wsu-vvo-app
      depends_on: 
        gridappsd    
    
  3. Run the docker application

    osboxes@osboxes> cd gridappsd-docker
    osboxes@osboxes> ./run.sh
    
    # you will now be inside the container, the following starts gridappsd
    
    gridappsd@f4ede7dacb7d:/gridappsd$ ./run-gridappsd.sh
    
  4. Run the application container

    osboxes@osboxes> cd WSU-VVO-app
    osboxes@osboxes> docker exec -it gridappsddocker_wsu_vvo_1 bash
    
    # you will now be inside the application container, the following runs the application from terminal
    
    root@1b762c641f24:/usr/src/gridappsd-vvo# cd wsu_vvo
    root@1b762c641f24:/usr/src/gridappsd-vvo/wsu_vvo# python main.py 1234 '{"power_system_config":  {"Line_name":"_AAE94E4A-2465-6F5E-37B1-3E72183A4E44"}}'
    

Next to start the application through the viz follow the directions here: https://gridappsd.readthedocs.io/en/latest/using_gridappsd/index.html#start-gridapps-d-platform

Forming optimization problem

In the optimization problem, test feeders are modeled as graph; G (V, E), where V is set of nodes and E is set of edges. The graph and line parameters of the test feeder can be extracted from (https://github.com/shpoudel/D-Net).

Get real-time topology and load data of the test case

First, the real time topology of the test case is extracted from the operating feeder in platform (top_identify.py). Then, load data for each node is obtained (get_Load.py) and stored in json format to be used in linear power flow while writing constraints for optimization problem.