Dear Dr. Antti,
I wanted to model a CO2 emission constraint in Answer TIMES in such a way that emission in the current year is less than 5% of the previous year emission i.e.
E(t) < E(t-1)*(1- 0.05)
Where E (t) is emission in the current year
E(t-1) emission in the previous year
Can you provide an example where something like this attempted as I have never used any constraint that takes the value from the previous year in AnswerTimes.
Regards
Vinay Saini

It is quite simple with a growth constraint, where you can directly specify the

annual change coefficient.
However, note that the requirement that "emission in the current year is less than 5% of the previous year emission" is pretty tight: it means that in 10 years' time the emissions must reduce by 40% (0.95^10 ≈ 0.6).
Anyway, see example in the picture below:
[

attachment=135]
There I assume that the emissions are represented by VAR_COMNET, and define the constraint requiring a 5% annual reduction, for all model years (IE=2 for UC_RHSRT, which defines a zero RHS constant for all years), because that seemed to correspond to what you described. It may well make the model infeasible, and so you may wish to consider starting the constraint at some later period (e.g. 2030), and/or using a smaller annual reduction.
To be more precise, consider what happens with your equation for the first year in the model horizon:
E(t) < E(t-1)*(1- 0.05)
For the first year

t0, we would just get E(t0) < 0, because in the model there is no emission variable E(t) for t < t0. Therefore, you should obviously at least limit your constraint to years t > t0.

Dear Dr Antti,
I tried the above suggestion assuming only 1% decline but somehow my model becomes infeasible. I tried once in the year 2032 and again in the year 2047 and in both cases, the model becomes infeasible. Model Data horizon is from 2012 to 2082.
I tried referring to the TIMES manual based on the parameters you have used for developing the user constraint.
TIMES Documentation:
Defining Growth Constraint: all growth coefficients are specified for the RHS variables, the dynamic constraint will be assumed to be of type (t–1,t), and the growth constraints are now generated for the period pairs t–1 and t for all periods of the model horizon.
To build a dynamic user constraint of type (t–1,t), between the periods t–1 and t, the
modeller should indicate the desired type by defining for the constraint any UC_ATTR
attribute using the 'RHS' side.
In addition, the desired set of time periods that will be used
as the second period in the pairs(t–1,t) should be identified by defining the RHS constant
parameter for those periods t.
VS> I am not sure how we are defining the use of the second period in the above method.
TIMES documentation: The input parameters for defining the coefficients UC_COMNET should have an index side,
which can be either LHS or RHS. The LHS index corresponds always
to the period t, while the RHS index is related either to the t+1 or the t–1 term.

It looks fine, but I cannot see your IE option. Do you have an option specified?
VS> I am not sure how we are defining the use of the second period in the above method.
You are defining the RHS for 2032. That's fine, the constraint will be generated at least for that year. To generate it for all years ≥ 2032, just specify the IE option 5.
If you have defined this in a separate scenario, maybe you can post the DDS file for that scenario, to check the constraint input data?

I just tested the constraint with the Example4 demo database, using IE=5 for the UC_RHSRT, and it worked fine. The solution had normal completion with optimal status. And I also checked the constraint formulation, which was correct. So, it worked as expected.
And of course, the results also showed the emissions decreasing according to the constraint.

(31-08-2021, 03:09 PM)Antti-L Wrote: [ -> ]It looks fine, but I cannot see your IE option. Do you have an option specified?
VS> I am not sure how we are defining the use of the second period in the above method.
You are defining the RHS for 2032. That's fine, the constraint will be generated at least for that year. To generate it for all years ≥ 2032, just specify the IE option 5.
If you have defined this in a separate scenario, maybe you can post the DDS file for that scenario, to check the constraint input data?

I think the problem was with the I/E value as from your earlier reply I took the I/E value of 2 and the model became infeasible. Now I am testing the model with an I/E value of 5. It is still solving (will take some time to solve) but looks like now it will be optimized.
Thank you Dr Antti.
Regards
Vinay Saini