An open API service indexing awesome lists of open source software.

https://github.com/nicomignoni/multiple-storage-systems-in-smart-grids

Simulations code for MSc thesis.
https://github.com/nicomignoni/multiple-storage-systems-in-smart-grids

energy-storage game-theory optimization smart-grid

Last synced: 3 months ago
JSON representation

Simulations code for MSc thesis.

Awesome Lists containing this project

README

          

# Multiple storage systems in smart grids
This repo contains the MATLAB code used in the MSc thesis _"Control techniques for multiple energy storage systems in smart grids"_, whose results have been extended to the paper _"Control frameworks for transactive energy storage services in energy communities"_ [[Elsevier](https://www.sciencedirect.com/science/article/abs/pii/S0967066122001952)] [[TechRxiv](https://www.techrxiv.org/articles/preprint/Control_Frameworks_for_Transactive_Energy_Storage_Services_in_Energy_Communities/21305052)].

The main idea is to consider the energy storage as a service provided by an independent economical agents, i.e., the _providers_. _Prosumers_ can than decide whether to sell the exceeding energy to the _retailer_ or store it.



## Prosumer and provider models
The model for the prosumer comprises the cost function , i.e.,

subject to the constraints set

where is the energy generated by the prosumer, is its demand, is the energy retrieved from providers' storage systems, while is the energy transferred to providers. The amount of energy bought from the provider is , while the amount sold is . The amount of energy stored is . Vector contains the previously listed variables. Parameters , , are, respectively, the energy buying and selling prices, and the storage service price.

As for the model for the provider, it comprises the cost function , i.e.,

subject to the constraints set


where is the energy received by prosumers, is the energy retrieved by prosumers, is the storage system charging level. Vector contains the previously listed variables. The degradation rate is .

## Implementation approaches
### Centralized
The centralized approach consists of a grand coalition resulting from the union of the prosumers' and providers' communities. A _community manager_ solves the ooptimization problem on behalf of all agents.



The objective function is results from the sum of the objective functions of all agents, i.e.,




subject to



where is



This approach returns an optimal and paretian solution for the coalition, but is not practically conveneient to realize. Therefore, the decentralized and distributed approaches are formulated as alternatives.

### Decentralized
In the decentralized approach the problem is formulated as a non-cooperative game where its solution corresponds to a Nash equilibrium point. The iterative algorithm consists of every agent solves its optimization problem and then communicates the state of its energy flow variables to a _coordinator_. Therefore, the latter can calculate the aggregate energy flow values and, consequently, the penalty factors and , which guarantee the convergence of the energy flow constraints. Penalty factors are, then, are boradcasted to all agents, in order for them to calculate the penalty regularizers and , which are added to the objective function.



### Distributed
In the distributed approach, the communication and energy transfer network is modelled as a bipartite graph. Each agent solves its own optimization problem and broadcasts the state of its energy flow variables to the nodes in its neighborhood. Therefore, penalty factors and regularizers are autonomously updated, without the need of a coordinator.



## Reference
N. Mignoni, _Control techniques for multiple energy storage systems in smart grids_, Politecnico di Bari, 2021

## Cite as
```
@article{mignoni2023control,
title={Control frameworks for transactive energy storage services in energy communities},
author={Mignoni, Nicola and Scarabaggio, Paolo and Carli, Raffaele and Dotoli, Mariagrazia},
journal={Control Engineering Practice},
volume={130},
pages={105364},
year={2023},
publisher={Elsevier}
}
```