Clear Filters
Clear Filters

The Best type of Neural Network to Create a battery Charging Control System

23 views (last 30 days)
Im attempting to create a Neural Network to manage the charging of a battery. The goal is to have a system where i can give a system a command to have the battery to be fully charged in lets say 36 hours, give it the available power and the cost of electricity over that period.
My issue is I am unsure of what type if neural netork to apply to this. I plan to have the inputs be The Available power map, the cost of electricity map, and the State of Charge of the battery. The output would be the instantaneous power input/output.
I belive the best type of network would be a Recurrent Neural Network so that the system can monitor its progress in real time. This will be because in the future i also plan to impliment a noise from renewable power which would charge the battery for "free" which the AI wouldnt be able to accunt for so i want it to be able to react to instantaneous changes.
Is this the best method to be using? This is my first time coding this sort of thing into matlab as well so if you know of any good tutorials please do share as i havent found the main matlab ones to be the most applicable to this scenario so far.
Thank you for your help!
The desired output would be something like this where it uses the cheaper electricity to charge the battery

Accepted Answer

Arkadiy Turevskiy
Arkadiy Turevskiy on 5 Apr 2024
Hi Alex,
Thanks for the interesting question.
I think the question about the type of neural network is not the main question here. The more important question is how to train a neural network to accomplish what you want. This is not a supervised learning problem because there is no available dataset that shows what the output (power used) should be for different values of inputs (available power, cost of electricity, etc).
Instead this seems more like a reinforcement learning problem. With reinforcement learning you can train a policy represented by a neural network (a simple fully-connected network would be a good way to start) by repeated interactions with a simulation environment to maximize a reward. Please take a look at the tech talks on reinforcement learning to get started and see the documentation on how to do this in MATLAB. A relevant example that could be useful is here, in this case the RL policy was defined using LSTM network.
I’d like to mention that you could also solve this problem using receding horizon optimization approach, using Model Predictive Control Toolbox. Here is a link to a very similar problem.
This approach solves an optimization problem at each time step to determine optimal amount of available power to use. Once you solve the problem a number of times for different scenarios, you can then train a neural network to provide the same results as the optimization algorithm, but with faster computations. This is an approach called imitation learning, please see an example here.
Once you have the trained network you can add it to your Simulink model to implement the overall control system, and can do simulations and implement the controller using code generation. Please see this video.

More Answers (0)


Find more on Sequence and Numeric Feature Data Workflows in Help Center and File Exchange




Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!