Coder Social home page Coder Social logo

apis's Introduction

Autonomous Power Interchange System (APIS)

APIS features

By accommodating P2P energy sharing between distributed batteries, it is possible to build a microgrid that utilizes variable renewable energy(VRE) as the main power source and enhances the resilience of the power system. These distributed batteries absorb fluctuations of VRE generation and improve community self-sufficiency by balancing supply and demand within the community.

Click here for details

Technoogy

Physical Peer to Peer(PP2P) energy sharing

This technology achieves a fixed amount of energy sharing between batteries by constant current control. It offset a shortage of one battery with delivering the necessary amount from a surplus of other battery. It is possible to send a fixed amount of power between specific users (batteries), which was difficult to realize by the voltage control, and it is possible to transact PP2P energy trading between users on the condition of the required energy amount and energy price.

キャプチャ

Autonomous distributed control

Software with the same functions is installed in each battery system, and the software implements energy sharing according to the transaction conditions (time window, energy amount, energy price, etc.) of each battery system. It is a flexible energy trading system that allows various transaction conditions to be set for each battery system and that the conditions can be dynamically changed for each time window.

キャプチャ



Software

The software that realizes the above technology and makes it possible to easily construct a DC microgrid is released.

▼ Software required to simulate energy exchange using a hardware emulator

  • apis-main
    Software installed on each node to provide bi-directional energy exchange with autonomous decentralized control
    See apis-main's Documentation for more information.
  • apis-main_controller
    Software that visualizes the status of apis-main installed on each node and the status of energy exchange between nodes
    See apis-main_controller's Documentation for more information.
  • apis-web
    Software that acquires necessary information for visualization from apis-main and provides it to apis-main_controller
    See apis-web's Documentation for more information.
  • apis-emulator
    Software to emulate hardware such as DC/DC converters and batteries
    See apis-emulator's Documentation for more information.
  • apis-service_center (Added on December 24, 2020)
    Software to provide information required by the administrators and users of clusters constructed of apis-main services installed in each unit.
    See apis-service_center's Documentation for more information.
  • apis-ccc (Added on December 24, 2020)
    Software to uploade information that is related to energy sharing to apis-service_center.
    See apis-ccc's Documentation for more information.
  • apis-log (Added on December 24, 2020)
    Software to receive information from apis-main by multicast via a communication line and storing that information in a database.
    See apis-log's Documentation for more information.
  • apis-tester (Added on December 24, 2020)
    Software to test and evaluation of apis-main.
    See apis-tester's Documentation for more information.
  • apis-rl (First commit on October 14, 2021)
    Software to run reinforcement learning of apis-main.
    See apis-rl's Documentation for more information.
  • apis-fixed (First commit on December 20, 2021)
    Software to run a default scenario of apis-main. Aim to test different acceleration rate. See apis-fixed's Documentation for more information.

Installation

[Operating Environment]
The above software has been tested on the following operating systems.

  • Ubuntu 18.04, 20.04
  • CentOS 7, 8
  • macOS Catalina, Big Sur

 * Virtual environments are not supported.

[Preparation]
It is assumed that the necessary software are installed.
The following is an example of an advance preparation for Ubuntu 18.04.

  • Install the JDK if it's not already installed.
  • Python3.6.9 or later is required.
  • Sqlite3.8.3 or later is required. (CentOS 7)
$ sudo apt install git
$ sudo apt install make
$ sudo apt install maven
$ sudo apt install groovy
$ sudo apt install python3-venv
$ sudo apt install python3-pip
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
$ sudo apt install mongodb-org

[APIS related software bach installation]
Install all of the above APIS related software at one time.
See each software repository for the individual installation and execution of each software.

$ git clone https://github.com/subaruclover/APIS.git
$ cd APIS
$ make build
  • If an error occurs with the "make build" or "make run" command, open the terminal again and run it.

Running

Run the original APIS related software at once.

$ make run

Run a fixed scenario policy of the APIS related software at once.

$ make run-fixed

Run reinforcement learning APIS related software at once.

$ make run-rl

 After running each software, access the followings in your browser to display.

    0.0.0.0:4382/   -> apis-main_controller
    0.0.0.0:4390/   -> apis-emulator
    0.0.0.0:10000/   -> apis-tester
    http://127.0.0.1:8000/static/ui_example/staff/visual.html   -> apis-service_center (account/pwd = admin/admin)


 The following picture is apis-main_controller.  Flash an cache once.

キャプチャ

 Simulate energy exchange with setting Global Mode to "Run". (Note that manually set "Run" is needed, otherwise even the emulator is running, no energy sharing would start.)

キャプチャ


Stopping

Stop all the above APIS related software at once.

$ make stop
$ make stop-fixed
$ make stop-rl

Setting up in MacOS

[Operating Environment]
The above software has been tested on the following operating systems.

  • macOS Catalina, Big Sur, Monterey

Similar to Linux, but the preparation has slight difference. It is recommended to use homebrew to install the necessary virtual environments. A detailed process could be found at Dropbox.

▼ Software and hardware information required for energy exchange using actual DC/DC converters and batteries

Use apis-dcdc_batt_comm instead of apis-emulator.

  • apis-dcdc_batt_comm
    Sample device driver to control DC/DC converters and batteries
    See apis-dcdc_batt_comm's Documentation for more information.
  • apis-build_version_up_system
    This tool clones all of the software needed to build the APIS evaluation environment from GitHub/Sony CSL in a single batch, builds the software, generates the various configuration files required for APIS operation according to the configuration file, and then installs all of the software on multiple nodes. See apis-build_version_up_systems's Documentation for more information.
  • apis-hw-info
    Hardware reference information
    See apis-hw-info's Documentation for more information.

License

Apache License Version 2.0

Notice

Notice

apis's People

Contributors

oes-github avatar subaruclover avatar

Stargazers

 avatar  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.