Posts: 47
Threads: 13
Likes Received: 0 in 0 posts
Likes Given: 0
Joined: Nov 2018
11-05-2020, 07:22 PM
(This post was last modified: 11-05-2020, 07:23 PM by ach.)
Hello.
I have a storage (STG, DAYNITE) process STGPROC that takes in commodity S1 and outputs commodity S2. S2 should be used by a PRE process in the Sector_Fuels sheet, where it is used to make ELC, and emissions are tagged on to the ELC output. S2 can only be made by STGPROC in the entire model.
I'm noticing that STGPROC is generating S2 using S1 without any capacity of STGPROC being deployed (nothing in the table Var_Cap n STGPROC), which is then being used to generate electricity. I have noticed this with another process on a couple of other occasions. I am not sure what is going wrong, and how to fix this. Could you please suggest a fix?
Thanks.
Posts: 1,914
Threads: 25
Likes Received: 50 in 43 posts
Likes Given: 13
Joined: Jun 2010
11-05-2020, 07:37 PM
(This post was last modified: 11-05-2020, 07:52 PM by Antti-L.)
As far as I can tell, having an output flow but no capacity for a storage process can occur only if
1) You have not defined any capacity-related parameters (e.g. investment costs), or
2) You have modelled the capacity only in terms of the maximum storage level, and no storage operation takes place.
Of course, in the second case (when the capacity represents the maximum amount that can be stored) no capacity is needed if no storage operation takes place (i.e. no energy is getting stored). Storage capacity is in that case needed only when something is actually stored in the storage.
If you want that capacity should be required even when nothing is stored, you should consider defining the capacity also (or exclusively) in terms of the output level (using NCAP_AFC / NCAP_AFCS). Alternatively, you could also consider bounding the output flow in each timeslice in proportion to the amount stored in the beginning of that timeslice, which would then require having storage capacity accordingly.
Posts: 47
Threads: 13
Likes Received: 0 in 0 posts
Likes Given: 0
Joined: Nov 2018
15-05-2020, 04:53 AM
(This post was last modified: 15-05-2020, 04:54 AM by ach.)
Thank you, it was #2, and defining NCAP_AFC(and only NCAP_AFC) for output commodities fixed my problem - the model is working exactly as I would like. But now my model's solve time has increased, from 11 min to 2h 45min. Two questions:
1. Is it fine if I don't define NCAP_AFC for the input commodity at all? Will it be set to 1 by default?
2. Do you have any tips to reduce the solution time? Is reducing the GAMS ITERLIM a good idea?
Thanks.
Posts: 1,914
Threads: 25
Likes Received: 50 in 43 posts
Likes Given: 13
Joined: Jun 2010
1) It is fine. If the input/output commodities are different, and you define NCAP_AFC for the output only, the input flow will not be bounded by the constraint.
2) If you have not been bounding the storage level by the capacity, and neither have defined activity costs, defining an availability factor also for the storage level (by NCAP_AFC(ACT) as explained in the doc) would prevent arbitrarily large storage levels and might thereby improve solution performance.