Random variables with different time scales in SDDP.jl

Hi everyone,
Assume that we have a wind power production problem with two random variables:

  1. Demand
  2. Wind speed
    We aim to solve the problem for a year. There is a daily time scale for the state variables and controls. Additionally, the random wind speed variable is also realized in a daily basis. However, the demand is realized on a weekly basis.
    Does anyone know how to take these two uncertainties into account in an SDDP.jl?
    My idea is to define a new state variable (e.g. dem), and once the demand is realized, we store that in the new state variable. Then for 7 days we will have this constraint:
    dem.in == dem.out
    And for wind speed, we have a simple node-based random variable.
    But I don’t know whether there is a more efficient way of dealing with this type of realization or not.
1 Like

That approach is pretty reasonable.

The other approach would be to model the demand as a Markov chain, in which there are 365 columns (weeks) and N rows (for the different levels of demand), and you could switch between the rows only every seven days. But then you’d be limited by how many possible realizations of demand there are.

Why daily wind speed? That seems unreasonably course. Typically in our part of the world the wind blows in the morning and evening, and also in the spring and the fall, often when the demand is low. So wind energy is available about 30% of the time in our region, and only about 1 or 3 % of the time when demand requires it based on other the production of other energy sources, many of which are classed as base load. The rest of the time wind energy needs to be exported or other more reliable sources of energy need to be curtailed.

Also I hope your weekly demand also has an hourly component, which will also be crucial to accurate modeling. Storage of electricity is done by batteries or some mechanical means and this usually has a time constant that is much less than a week.

Energy simulation for houses is typically done on an hourly basis and there are statistically accurate datasets for many locations. These datasets include wind speed. You will need to figure out what the measurement height is for those speeds.
Take a look at esp-r (open source software) for what they do.

esp-r has a lot of datasets, and the linked page shows how to import other datasets that are also available. I have done this in the distant past so don’t remember where these datasets are stored.

My guess is that doing a simulation with a courser time step than hourly will be largely meaningless.

Why daily wind speed? That seems unreasonably course.

My guess is that doing a simulation with a courser time step than hourly will be largely meaningless.

I assume because @Sorooshsa is just starting out with a small problem… SDDP.jl also has some limitations, so trying to immediately solve the 8760 problem introduces quite a large computational burden. (It’s probably also daily wind energy, not wind speed.)

There are other approaches, like using appropriate load blocks for the morning and evening, and they’re solving an annual problem, so they can take into account seasonality. The required temporal fidelity comes down to what they’re trying to model and why they’re trying to model it. They might not require (or be interested in) simulating a single house with sub-hourly resolution.

Anyway, the question was are they using SDDP.jl sensibly, and the answer is yes.