Closed Ethan-Russell closed 1 year ago
So we will need some way of breaking up hours in potentially different ways for different things. In general, we may want to break things down within a sim on a yearly basis in addition to having representative hours. MATLAB E4ST assumes that it will only ever run a single year.
We want to be able to support a wide range of time scales. It would be awesome to support multi-year sims where each year has representative time blocks. Some key differences in the way we handle time in MATLAB E4ST vs the rewrite:
So we may need two time indices for many of our variables.
variable | indices |
---|---|
pg |
[gen_idx, year_idx, hour_idx] |
pcap |
[gen_idx, year_idx] |
pl |
[bus_idx, year_idx, hour_idx] |
$\theta$ | [bus_idx, year_idx, hour_idx] |
One tricky thing here will be configurable data access. Depending on the configuration, we may wish to have some variables that are constant across years or representative hours.
For our time representation, I would propose that we keep track of the following:
How would we handle sets of sequential hours? i.e. days?
Certain pieces of information may need to vary in different ways:
Generator-specific information may need filters for the information too, as well as defaults for cases not covered.
We need a good interface for specifying this information and a good interface for retrieving it once specified.
Availability Factor Examples:
How do we (quickly) retrieve the availability factor of a specific generator at a specific time and year, without necessarily pre-calculating all fields for all generators at every time/year?
An important question in terms of how we represent data:
In the case of a multi-year simulation, do we foresee needing to change the shape of hourly load or availability factor profiles? Or can we keep the same load / availability factor shape between years, and potentially scale it between years?
The only scenario I can think of where load shape would change would be a successful demand response program lowering peak demand. I imagine that this would endogenously change load so I don't think it would impact how we input data initially but might be something that updates with the year.
For availability factor, things like wind and solar do theoretically change between years but I think they are generally close enough and that it doesn't need to change. And since it is reduced to the representative hours anyways I don't think it has the level of detail that would change.
I can't see a particular need for the shape of those things to change and so I don't think it's worth too much trouble to include that ability. But probably worth asking Dan too
Discussion 11/18:
In order to keep EV load shape able to change over years, it is worth being able to change load shape over time. Having the same underlying data structure for load and AF is probably easiest.
Another note: There can be more than one wind farm at each node, each of which has a different set of availability factors. This is fine is AF is per generator not bus.
One downside of the model currently is that the load between buses is always proportional in the regions they are sorted into (nerc subregions or states). This might be more of an issue if we have more representative hours. Could be hard to get that data, but could possibly estimate.
This has been implemented
Let's think carefully about different types of time representations. As a primer, here are some of the things that change in E4ST vs Haiku: