This is a project for research related to the applications of reinforcement learning towards global maximum power point tracking in photovoltaic systems. The code presented in python is meant to be used with a Raspberry Pi with the I2C protocol activated.
This project is part 2 in deploying a Reinforcement Learning model into a Raspberry PI for maximum power point tracking. Part one can be found in the Github repository presented here.
The next diagram shows the main idea of the deployment of the tensorflow lite models into the raspberry pi:
To use this project, execute the following commands in your console after cloning the github repository:
The following two commands must be executed outside the directory:
python3 -m venv name_virtual_env
source name_virtual_env/bin/activate
The following commands must be executed inside the directory cloned:
pip3 install -r requirements.txt
pip3 install .
To test the created RL model and compare it against the P&O algorithm by plotting graphs at the end. The next code must be executed:
python3 TrackerMPPT.py
A tensorflow lite model must be present in the models folder to execute this script. The name of the file must start with the "DQN" as the examples present in the models folder. The variable number_DQN inside the TrackerMPPT.py file reference the last part of the name of the model that you want to use (the name after the DQN name part).
The utils folder contains the Perturb and Obeserve algorithm and the DQN algorithm in the algorithms.py file. The functions.py file contains the functions used to extract the current and voltage measurements with the ADS1015. It also contains the code used to manipulate the TL4446 module with the MCP4725. The TL4446 needs to be characterized with an osciloscope to check what voltages accuratetly produce what duty cycles. You could also use the datasheet indications of the TL4446.
To run PID control of the buck converter execute the following command:
python3 PID.py
Type | License |
---|---|
Software | MIT License |
Hardware | CERN-OHL-P |
Documentation | CC BY 4.0 |
The software is licensed under an MIT License. A copy of the license has been included in the repository and can be found here.
The hardware design files are licensed under a CERN Open Source Hardware license version 2 CERN-OHL-P. Details of the license can be found here and a copy of the license has been included here.
This work is licensed under a Creative Commons Attribution 4.0 International License.