Veda2.0 Released!


ObjZ Question
#1
Dear Community Members,

I have read the TIMES manuals about the objective function formulation, which includes 11 components:

{INVCOST, INVTAXSUB, INVDECOM, FIXCOST, FIXTAXSUB, SURVCOST, VARCOST, VARTAXSUB, ELASTCOST, LATEREVENUES} - SALVAGE.

In VEDA BE there are seven cost attributes: Cost_Act, Cost_Comx, Cost_Flo, Cost_Fom, Cost_Inv, Cost_ire, and Cost_Salv. I am wondering if these attribute values were taken for every year in a model and discounted back to present value if they would be equal to the attribute ObjZ?

I ask because I am trying to confirm that the ObjZ value that I am getting is reasonable. Does it make sense to compare VEDA BE attributes to parts of the objection function found in Part II on page 127 in TIMES support manuals? I have tried to figure out how attributes and parameters in the objective function relate to one another with arrows in the attached...am I thinking about this in the right way ?

Thank you!

Mike


Attached Files Thumbnail(s)
       
Reply
#2
I cannot confirm your statements.  You claim that there are only seven cost attributes in VEDA BE, but according to the documentation (Part V), there are at least the following 15 cost attributes:

Cost_Act – Annual activity costs
Cost_Com – Annual commodity costs
Cost_Comx – Annual commodity taxes/subsidies
Cost_Dam – Annual damage cost term
Cost_Dec – Annual decommissioning costs
Cost_Els – Annual elastic demand cost term
Cost_Fixx – Annual fixed taxes/subsidies
Cost_Flo – Annual flow costs (including import/export price
Cost_Flox – Annual flow taxes/subsidies
Cost_Fom – Annual fixed operating and maintenance costs
Cost_Inv – Annual investment costs
Cost_Invx – Annual investment taxes/subsidies
Cost_ire – Annual implied costs of endogenous trade
Cost_Salv – Salvage values of capacities at EOH+1
COST_NPV – Total discounted costs by process/commodity (optional)

So, why did you consider only seven parameters in your question?

For example, annual variable costs consist of Cost_Act, Cost_Flo and Cost_Com, and these can be mapped to the VARCOST component of the objective function in the documentation. Cost_ire can of course not be mapped with any part of the objective function, as it only gives the implied costs of endogenous trade.

Anyway, the objective function is of course equal to the discounted sum of all annual (or annualized) costs over the model horizon.  However, the annual costs are by default reported at the Milestone years only, and so you cannot reconstruct the objective function from the default annual costs reported. If you would wish to reconstruct the OBJ value from the reported annual costs, you would need to use the levelized annual cost reporting option, as described in Part III of the documentation.
Reply
#3
I tried to compile a consistent mapping table, shown below:

As mentioned in the documentation, all the components named there (INVCOST, INVTAXSUB, INVDECOM, FIXCOST, FIXTAXSUB, VARCOST, VARTAXSUB, ELASTCOST, LATEREVENUES, SALVAGE) are only "virtual" variables introduced for the purpose of documentation, and do not actually exist in the implementation. The OBJ implementation actually has only the INV, FIX, VAR, ELS, SALV (and DAM) components, but the reported costs have more components.

For using the levelised annual cost option, one should use both of the following switches:
$SET ANNCOST LEV
$SET OBLONG YES


Attached Files Thumbnail(s)
   
Reply
#4
Thank you, Antti this is very helpful to me. I am wondering - the EPAUS9rT model only includes 37 total attributes and only 7 of which are costs (attached screen shot). Is it a problem that all of the attributes you listed from Part V are not included in BE reporting? 

Also - I have been reading about Milestone years and reporting. The EPAUS9rT model reports in 5 year increments and I am wondering - do you know if it may be possible to report emissions and costs in each year between 2010-2050 easily in VEDA BE? 

It seems possible, however, in practice I have not come across any EPAUS9r MARKAL papers that do so. 
I have been reading Part I which has been helpful so far, but I do not yet have a complete understanding of reporting option possibilities.

Thank you again for your continued help,

Mike


Attached Files Thumbnail(s)
       
Reply
#5
The 15 reporting attributes I listed were taken from PART V: VEDA Back-End, Appendix A: VEDA-BE TIMES Attributes. Therefore, according to the documentation, these 15 reporting attributes are indeed included in the BE reporting. You should be able to verify that easily yourself, by looking at the *.VDE file produced from the TIMES run of your EPAUS9rT model. That VDE file lists all the reporting attributes included in the BE reporting of your model. The VDE files should reside in your VEDA working folder.

If you don't find all those attributes listed in your *.VDE file, please post the file here (Zip-compressed).

The screen capture you attached shows the Attribute Tab displayed in the VEDA user interface. I guess the list shown there varies according to the model solution values:  If there are no model solution values for some attribute, it is not listed there by VEDA-BE. Therefore, if you are not seeing there some reporting attribute, which you nonetheless think should appear in the model solution, it would indeed signify a problem in your model.

Concerning your question "if it may be possible to report emissions and costs in each year between 2010–2050 easily in VEDA BE", I don't think that would be very easily possible. However, I would make the following remarks about it:
  1. As you can see from the documentation (see e.g. Part I, section 5.2  Decision variables), TIMES assumes that all activities and flows have the same level over all the years in each period (excluding inter-period storage). In other words, the activities and flows reported for each milestone year already give the values for all individual years in each period. Consequently, I think it is reasonably easy to get the emissions solution values in each year between 2010–2050, immediately in your mind, by associating the value reported for each milestone year to all the individual years in that period. Likewise, the process capacities (VAR_Cap) reported by TIMES to VEDA-BE represent the average amount of the capacity available within each period, and these values can thus also be considered to be effectively constant over the years in each period.

  2. In addition, the levelized annual cost reporting option gives you the levelized average values for the annual costs in each period. Therefore, by using this option you would be able to calculate cumulative costs over any range of years consistently, and even reconstruct the value of the objective function.

  3. However, if you truly need solution values for each year in the full model horizon or some part of it, you can always run the model with 1-year periods, and thereby obtain genuinely optimized solution values for each individual year.


Reply
#6
hi Antti,

This is very helpful information thank you. I have been reading about Milestone years, reporting in BE, and emissions commodities (Figure 5.1 is particularly useful). On Page 81 I have been reading about the alternative TIMES formulation called the "LIN variant". In the USEPA9rT model I have selected the "Auto" option on OBJ Function Variant under control panel, which I assume means that the "LIN variant" is not selected?

If I am correct in my assumption, does this imply as you mentioned above that emissions (for example) in 2015 (milestone year), 2016, 2017, 2018, 2019, are all be the same until 2020 when the value changes at the reported 2020 year? The ~Startyear is 2010, the ~ActivePDef is 11P2050, and the milestone years form VEDA FE are attached in a screen shot. I ask because it looks like the milestone years might be in the middle of each period. So does this mean that instead that each period for instance 2013-2017, has the same emissions value as the milestone year 2015?

Thank you again for your help,

Mike


Attached Files Thumbnail(s)
       
Reply
#7
I think your screenshot shows the period definition: The Start years, the Mid years (Mid year = Milestone year = Period identifier) and the End years. Hence, the period 2015 includes the years 2013–2017, the period 2020 includes the years 2018–2022, and so on. The emissions in 2013–2017 thus have the same value (the value reported for 2015) and the emissions in 2018–2022 have the same value (the value reported for 2020).

You are using the standard formulation, which is "mainstream", but you are advised to use the OBLONG switch with it as well. VEDA-FE does not fully support the LIN formulation, which has never got a "mainstream" status with TIMES (I admit having proposed the LIN variant into TIMES Blush).
Reply
#8
Thank you so much Antti this has been very useful! I have a quick follow up question. This model starts in 2010 and I am implementing taxes that I would like to begin in 2015. I am using interpolation and forward extrapolation (5) on in Table 8, page 52, Manual 4. I think that the way I have set up the CO2 tax, it will start in 2015 continue through 2050. I have specified a tax of 0 in 2010,2011,2012. Will the model set a tax value of 0 in 2013 in 2014 and not interpolate a tax linearly up to year 2015 despite the fact that period #3 is 2013-2017?

Thanks again for your help,

Mike


Attached Files Thumbnail(s)
   
Reply
#9
Hmm...  I am not sure I understand what you wish to accomplish by setting the tax zero in 2010,2011,2012 and then 50 in 2015.  What was the purpose of specifying them that way?

If you want the tax to be zero until 2014 and then 50 from 2015, you should just set a zero tax in 2014. The zero taxes you have specified for 2010,2011,2012 are completely unnecessary, if you want the tax be non-zero starting from 2015.

However, with your current specification, you explicitly request a zero tax only in 2010,2011,2012, and then you request a tax of 50 in 2015, and you request interpolation with option 5. In this case the tax will of course be interpolated between 2012 and 2015. So, you will just get what you are requesting.
Reply
#10
Thank you very much Antti. I have redone the taxes the way you have suggested. I have one question about the Cap_New reporting option in VEDA BE and how it corresponds to Milestone Years. I have looked through the TIMES documentation but can't seem to find information on the these specific user constraints except briefly on Page 58 of Part V.
Is the INSTCAP the amount of capacity installed over the entire period (2013-2017) and is the LUMPINV the lumpsum investment summed over the time period 2013-2017 (the total lumpsum investment costs if all investment occurred in the milestone year)?
Reply
#11
CAP_NEW(INSTCAP) gives the total amount of installed new capacity in each period.

CAP_NEW(LUMPINV) gives the lump-sum amount of the investment costs for the total installed new capacity in each period. It is not tied to any specific single year, but to the commissioning years: The lump-sum investment costs are valued at the commissioning year of each step in the (possibly multiple) investment spreads within each period (and include interest during construction and payback time). So, the lump-sum cost represents a single payment at the beginning of the commissioning year, that would be equivalent to the total investment costs.

The lump-sum investment costs corresponding to different commissioning years within each period are simply directly summed together, to get the total lump sum investment cost for that period.
Reply
#12
Note also that the CAP_NEW reporting attribute is not actually related to user constraints at all, but only makes use of some uc_n tags for the purpose of additional characterization.

The slightly confusing use of uc_n tags in the various BE reporting attributes has been explained here:
http://forum.kanors-emr.org/showthread.php?tid=358

As explained there, a large number of reporting attributes have been added on request from various users. CAP_NEW is no exception; it was implemented in July 2010 on a request from Gary Goldstein, who provided the specifications both for reporting the new capacity coming on-line by period (INSTCAP), and the lump-sum investment costs by period (LUMPINV). Thus, if you are not happy with the current reporting attributes, you can always suggest yourself new reporting attributes to be implemented. If you would like to do so, you should provide sufficiently detailed specifications for you desired new reporting attributes.
Reply
#13
Hi Antti,

Thank you again for all of your helpful comments. I would like to turn on the switch that enables annualized reporting of the objective function. I assume its is the same thing as turning on the levelized annual cost reporting option? 

If so - I see in the VEDA FE control panel that there is a switch for "OBLONG" under the OBJ Function Variant box which has been selected. I am trying to find a box to check that enables "$SET ANNCOST LEV". I do not see this option in the control panel. Am I looking in the right place or is this something that needs to be done outside of VEDA FE?

I have been looking in Part III of the documentation and Table 12/13 has some information but I can't seem to piece together how to turn this switch on. Any advice on how to do so would be greatly appreciated.

Thank you,

Mike


"For using the levelised annual cost option, one should use both of the following switches:
$SET ANNCOST LEV
$SET OBLONG YES"
Reply
#14
I am not a VEDA expert, and so I don't know whether you are looking in the right place or not. Amit should be able to answer that. But I do know that at least you can add the $SET ANNCOST LEV switch manually into the RUN file template, before the call for maindrv.

However, the switch does not enable annualized reporting of the objective function. It activates levelized annualized cost reporting.  Annualized costs are undiscounted annual costs within the model horizon.
Reply
#15
Last year we introduced a new table in SysSettings that gives users full control over TIMES switches. The table is ~RFInput, shown below and also attached in Excel format. "Attribute" can be RFSwitch or RFCmd. There are no restrictions or checks on column "Text". Lines are written in the order of "Sno", and lines where this cell is empty are ignored.

RFSwitch lines are written in the RUN file before the $BATINCLUDE *.DD statements and RFCmd lines are written after the DD block. The latter was Antti's idea, basically to carry GAMS statements. Here is the example he had given:

"Here is just one useful example for a "QA" RFCmd (eliminate any tiny or negative ACT_BNDs):
ACT_BND(R,DATAYEAR,P,S,BD)$((ACT_BND(R,DATAYEAR,P,S,BD) < 1e-6)$ACT_BND(R,DATAYEAR,P,S,BD))= EPS;"

Also, as you can see in the picture, all reporting options can be introduced as parameters. So, to summarize, users have direct control over all reporting options (Table 15 of TIMES doc Part III) and switches (Section 3 of TIMES doc Part III) supported by TIMES.

   


Attached Files
.xls   SysSettings.xls (Size: 44.5 KB / Downloads: 14)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)