21-04-2021, 03:02 PM (This post was last modified: 21-04-2021, 03:06 PM by Mahmoud.)
Dear all,
I have a question regarding the use of the attribute COM_BNDPRD~FX in a ~TFM_INS-TS table. I am using this to calibrate the use of power and gas in end use sectors between 2010 and 2020.
In the case where dummy imports ae disabled in the model (which is the case here), could the FX bound be violated?
With respect to the TIMES formulation, COM_BNDPRD(FX) defines a fixed bound on the total commodity production variable VAR_COMPRD, or a constraint on the sum of these variables over some timeslices if the bound is defined on a coarser timeslice level than the variables. Neither variable bounds or constraints can be violated, unless the solver is buggy. Thus, I think you should see in the results the VAR_COMPRD levels (or the sum of them over timeslices) respecting the bound values.
In the case where dummy imports are enabled, dummy flows may of course contribute to the VAR_COMPRD aggregate if the supply is otherwise insufficient, but there is still no way the constraint bounding the VAR_COMPRD variable to the COM_BNDPRD value could be violated, unless your solver is buggy. Good solvers always do respect the rules of mathematics (within small tolerances), meaning that constrains cannot be violated if a feasible solution is found.
However, if you nonetheless see some issue with it, please provide some more information. For example, fixing the first periods to a previous solution may cause some surprises, if you assume that COM_BNDPRD should be able to change the previous fixed solution (which would be inconsistent).
I have similar questions regarding the COM_BNDPRD attribute.
Q1. How do I set the TimeSlice resolution for COM_BNDPRD? When I tried to use custom timeslice (TFM_DINS-TS_ELCNUC_NG.png), Only the last row was recognized as Annual level constraints (ItemDetail_ELCNUC_LO_CustomTimeslice.png). I’d like to use finer timeslice resolution…
Q2. Why are some of the results not within the range specified? When I set minimum ELCNUC production to be 68.78 (ItemDetail_ELCNUC_LO.png), The result was 63.55 (Results_ELCplantsProduction_ELCNUC.png). Only ELCNUC are out of range and other fuel types are within range.
10-02-2022, 12:34 AM (This post was last modified: 10-02-2022, 12:59 AM by Antti-L.)
Welcome to the Forum.
I appreciate the fact that you supplemented your question with the model files, so that the issue can easily be reproduced.
However, my test run with the model immediately revealed that you are just looking at the wrong results. As far as I can see, your COM_BNDPRD parameters, which are all defined on the ANNUAL level, work just fine. That can be seen by looking at the VAR_COMPRD results. But you are instead looking at the VAR_ACT results of a group of processes consuming ELCNUC.
Please note that the commodity balance is ≥ (production ≥ consumption) and the price of ELCNUC is zero in your model. Therefore, putting a lower bound on VAR_COMPRD may easily just increase the zero-cost production of ELCNUC, and not the consumption at all (which does have a cost). And that is exactly what is happening in the test run, in some timeslices. In other words, the VAR_COMPRD results for ELCNUC are indeed within the range specified, as expected, even though ELCNUC is not getting consumed by the full amount. If you want, you could force it to be fully consumed by defining also COM_BNDNET(ELCNUC)=0.
[My answer to Q1 is to remove typo from your column header.]
> [My answer to Q1 is to remove typo from your column header.] When I replace Timeslices → TimeSlice (TFM_DINS-TS_ELCNUC_TimeSlice.png), The constraints are recognized correctly (ItemsDetail_TimeSlice_OK.png) , However, an Execution error occurred at runtime. In the Log file(Test_014a_run_log.txt): Model structure has 1 data errors I’d like to know which setting I should correct.
> Q2 looking at the VAR_COMPRD results I confirmed, thank you(Result_VAR_Comprd_NUC_OK.png).
> you could force it to be fully consumed by defining also COM_BNDNET(ELCNUC)=0. I confirmed, thank you(Result_NUC_FullyConsumed_OK.png).
(10-02-2022, 08:28 AM)tomomi Wrote: However, an Execution error occurred at runtime. In the Log file(Test_014a_run_log.txt): Model structure has 1 data errors I’d like to know which setting I should correct.
TimeSlice works! The error reported above was my mistake to set the constraint LO > UP