gridpath icon indicating copy to clipboard operation
gridpath copied to clipboard

Move storage min/max duration from opchar to capacity inputs

Open anamileva opened this issue 4 years ago • 2 comments

anamileva avatar Feb 16 '21 18:02 anamileva

I started digging into this. These two parameters are only used by dr_new and stor_new_lin capacity types. Presumably they could be moved to project_new_potential table from project_operational_chars table - I see no other suitable home for them.

An inital question is: Are these parameters are really necessary, in the face of {min/max}_capacity_{power/energy} parameters present in the project_new_potential? I'm not sure under what conditions the possibility of allocating energy capacity without power capacity can manifest (as mentioned in the code comments).

If we do keep them, then:

  1. These values have to be validated while loading the data, similar to heat rates, because its too easy to generate an infeasibility.
  2. They will have to be indexed by period similar to the other values in the table.

Does this sound sensible?

misyntropy avatar Mar 05 '24 19:03 misyntropy

I did an experiment by simply removing these constraints in stor_new_lin module and running test_new_build_storage scenario. I found that the newly built capacity did not differ, but there were small changes in provisioned capacity by regulation_down, load_following_down along with a handful of instances in values of related variables such as footroom, headroom etc. I verified that the LP files going to the solver differed only in the 4 constraints relating to min/max_duration_hours. Doesn't seem like a bug because objective value did not change. Similar behaviour was observed in test_new_build_storage_cumulative_min_max as well test_new_build_storage_itc.

However test_new_build_storage_itc_single_superperiod gave significantly different results because of differing capacity built - which is expected.

misyntropy avatar Mar 05 '24 20:03 misyntropy