# Optimization with time-dependent constraint

5 views (last 30 days)
Iñigo Azpiri on 24 Jan 2022
Answered: Alan Weiss on 24 Jan 2022
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
Which has these constraints:
But there is another important constraint to the problem:
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.

Alan Weiss on 24 Jan 2022
For an example of a similar problem, see Optimal Dispatch of Power Generators: Problem-Based.
Alan Weiss
MATLAB mathematical toolbox documentation

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.
Iñigo Azpiri on 24 Jan 2022
Thanks, Torsten. I will try this approach.

R2021a

### Community Treasure Hunt

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

Start Hunting!

Translated by