Optimization with time-dependent constraint
11 views (last 30 days)
Show older comments
I am trying to find the optimal operation of a battery to perform energy arbitrage, which consists in charging energy when prizes are low and discharging when prizes are high.
The information that I have is:
P_bat = 10 %Battery power in MW
E_bat = 40 %Battery capacity in MWh
price = rand (1,24) %1x24 array with hourly energy prices in USD/MWh
And the results I would expect from the optimization are:
d %1x24 array with energy discharged every hour in MWh
c %1x24 array with energy charged every hour in MWh
SOC %1x24 with the battery State of Charge in MWh (initial value 0)
I have identified f as the function that I have to minimize to obtain maximum profit
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/871680/image.png)
Which has these constraints:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/871685/image.png)
But there is another important constraint to the problem:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/871690/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/871695/image.png)
I am basing my code in this answer in the forum, but since the state of charge in a certain hour depends on its value on the previous hour, I am unable to translate this into the constraints function. I hope you can help me.
0 Comments
Accepted Answer
More Answers (1)
Torsten
on 24 Jan 2022
Use "linprog" and define the 24 equalities
SOC_i - (SOC_i-1 + c_i - d_i) = 0 (i=1,...24)
in the matrix Aeq with SOC_1,...,SOC_24 as additional unknowns.
See Also
Categories
Find more on Problem-Based Optimization Setup 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!