Posts: 50
Threads: 15
Likes Received: 0 in 0 posts
Likes Given: 0
Joined: Jun 2017
Hi! This is my first time using a storage process and I need some help in defining costs for it.
I have defined 4 interperiod storage process in my model, with different input/output commodities, as shown next:
I also have a scenario file in which I define the costs of these processes:
However, doing this, the cost I declared is applied in the variable VAR_SIN(region, period, process, gas_ext, ANNUAL). But there is no flow of the commodity gas_ext entering the storage processes (only leaving it). Is there any way to define the cost on the flow getting out of a storage process (instead of the flow entering it)?
Thank you
Posts: 1,956
Threads: 26
Likes Received: 55 in 47 posts
Likes Given: 16
Joined: Jun 2010
29-09-2018, 03:14 AM
(This post was last modified: 29-09-2018, 04:33 AM by Antti-L.)
Yes, for storage processes you can use FLO_DELIV for defining a cost on the Discharge flow, as opposed to FLO_COST, which is applied to the Charging flow.
For reference, see the documentation, Part II, Section 4.3.8 "Notes on other attributes for storage processes", Table 22: Limitations of using standard process parameters for storage processes.
Posts: 50
Threads: 15
Likes Received: 0 in 0 posts
Likes Given: 0
Joined: Jun 2017
(29-09-2018, 03:14 AM)Antti-L Wrote: Yes, for storage processes you can use FLO_DELIV for defining a cost on the Discharge flow, as opposed to FLO_COST, which is applied to the Charging flow.
Thanks a lot for the quick response! This really solved my problem.
Posts: 50
Threads: 15
Likes Received: 0 in 0 posts
Likes Given: 0
Joined: Jun 2017
One more doubt.
I am trying to create a constraint to link the production of some processes in the region "NOR". Basically, there are the processes "MIN_XXX_GAS_ASS_LGT_NOR" (type MIN) and STG_GAS_REIN_NOR (type STK, which my previous question was about), which produce the commodity "gas_ext", and the processes "MIN_XXX_OIL_LGT_NOR" (type MIN), which produce the commodity "oil_lgt". The restrictions are -0.53*Production of gas_ext + 0.47*production of oil_lgt <= 0 and -0.45*Production of gas_ext + 0.55*production of oil_lgt >= 0
I have tried the following:
It works well for the processes of type "MIN", but opening the .lst file, I can see that the term related to "STG_GAS_REIN_NOR" does not appear in the user constraint. I have already tried to change UC_FLO to UC_SOUT, but discovered that this variable does not exist. Is there someway to limit the sum of the productions of a process MIN and of a process STK?
Thank you
Posts: 1,956
Threads: 26
Likes Received: 55 in 47 posts
Likes Given: 16
Joined: Jun 2010
The variables that you can refer to in UC constraints are VAR_ACT, VAR_FLO, VAR_IRE, VAR_CAP, VAR_NCAP, VAR_COMNET, VAR_COMPRD, VAR_CUMCOM, VAR_CUMFLO, VAR_CLITOT and VAR_CLIBOX. These variables can be referred to by using the UC_ACT, UC_FLO, UC_IRE, UC_CAP, UC_NCAP, UC_COMNET, UC_COMPRD, UC_CUMCOM, UC_CUMFLO, and UC_CLI input attributes.
As I understood it, your desired constraints would be the following:
GAS_ASS_UP: −0.53*Production of gas_ext + 0.47*production of oil_lgt <= 0 , and
GAS_ASS_LO: −0.45*Production of gas_ext + 0.55*production of oil_lgt >= 0
Thus, I think you could just specify UC_COMPRD(GAS_ASS_UP, gas_ext) = −0.53 and UC_COMPRD(GAS_ASS_LO, gas_ext) = −0.45 for defining the coefficients of −0.45 and −0.53 for the Production of gas_ext in the two constraints, or am I missing something?
You are right, there are no variables called UC_FLO or UC_SOUT. As mentioned above, UC_FLO is an input parameter, and UC_SOUT is not a TIMES identifier at all. There is no UC attribute for referring directly to the VAR_SIN / VAR_SOUT variables. However, recall the documentation saying: "As the auxiliary storage flows are represented by standard flow variables, any flow-related cost attributes and UC constraints can be additionally defined on these auxiliary flows." So, when necessary, you can define an auxiliary storage flow for specifically referring to the output flow of gas_ext.
Posts: 50
Threads: 15
Likes Received: 0 in 0 posts
Likes Given: 0
Joined: Jun 2017
Thank you for the response. As for the suggestion, I cannot use UC_COMPRD in the way you mentioned because it would include every process that produce "oil_lgt", while there are import and trade processes (producing "oil_lgt") that should not be in the constraint. I can, however, use UC_COMPRD for gas_ext and UC_ACT for oil_lgt. I think that would solve my problem.
As for the auxiliary storage flow, I am not sure that solution would work out, once gas_ext is the main output commoditiy and, for what I see from the documentation, auxiliary commodities have to be distinct from the main storage commodity.
Posts: 1,956
Threads: 26
Likes Received: 55 in 47 posts
Likes Given: 16
Joined: Jun 2010
(03-10-2018, 01:23 AM)mresende Wrote: As for the auxiliary storage flow, I am not sure that solution would work out, once gas_ext is the main output commoditiy and, for what I see from the documentation, auxiliary commodities have to be distinct from the main storage commodity. I don't understand your comment. If you define FLOW(AUX) = FLOW(gas_ext), and then refer to FLOW(AUX) instead of FLOW(gas_ext), the result is exactly the same as in the case where you would refer to FLOW(gas_ext) directly. The flows of AUX and gas_ext are then by definition always equal in amount, and thus the constraint will be mathematically equivalent to you original suggestion. I fail to see the problem you are suggesting. Could you please explain how the constraint could possibly then be mathematically or functionally different?
Posts: 50
Threads: 15
Likes Received: 0 in 0 posts
Likes Given: 0
Joined: Jun 2017
(03-10-2018, 02:27 AM)Antti-L Wrote: (03-10-2018, 01:23 AM)mresende Wrote: As for the auxiliary storage flow, I am not sure that solution would work out, once gas_ext is the main output commoditiy and, for what I see from the documentation, auxiliary commodities have to be distinct from the main storage commodity. I don't understand your comment. If you define FLOW(AUX) = FLOW(gas_ext), and then refer to FLOW(AUX) instead of FLOW(gas_ext), the result is exactly the same as in the case where you would refer to FLOW(gas_ext) directly. The flows of AUX and gas_ext are then by definition always equal in amount, and thus the constraint will be mathematically equivalent to you original suggestion. I fail to see the problem you are suggesting. Could you please explain how the constraint could possibly then be mathematically or functionally different?
Sorry, you are right. I did not fully understand your idea, but now I get it. Thanks a lot!!
|