Retrofit <: Modification

Abstract supertype for retrofits. Must implement the following interfaces:

The following methods are defined for Retrofit, so you do not define any of the ordinary Modification methods for any subtype of Retrofit - only implement the above interfaces.

modify_model!(ret::Retrofit, config, data, model)

Modifies the model for retrofits. Only happens once, for all retrofits.

  • Constrains the sum of the capacities of the original generators and the retrofits is less than the original max and greater than the original min by adding constraints cons_pcap_gen_retro_min and cons_pcap_gen_retro_max
  • Removes the cons_pcap_gen_noadd constraints for prior to and on the retrofit year.
  • Fix the capacity of the new retrofit generators to 0 before the retrofit year.
init!(ret::Retrofit, config, data)

initialize data with the Retrofit by adding any necessary columns to the gen table, etc. Defaults to do nothing.

can_retrofit(ret::Retrofit, row) -> ::Bool

Returns whether or not a generator row can be retrofitted.

retrofit!(ret::Retrofit, newgen) -> ::AbstractDict

This function should change newgen to have the properties of the retrofit. newgen is a Dict containing all the properties of the original generator, but with the the following fields already changed:

  • year_retrofit - set to the year to be retrofitted
  • retrofit_original_gen_idx - set to the index of the gen table for the original generator
  • capex - set to 0 to avoid double-paying capex for the already-built generator. Capex added to newgen should only be the capital costs for the retrofit itself. E4ST should already be accounting capex in past_capex for the original generator.
  • pcap0 - set to 0
  • transmission_capex - set to 0
  • build_status - set to unretrofitted

Coal CCS Retrofit

CoalCCSRetrofit(;kwargs...) <: Retrofit

CoalCCSRetrofit represents a Retrofit for changing coal-burning plants (gentype="coal"), to have carbon capture technology, and be changed to (gentype="coalccsusretrofit")

Keyword Arguments:

  • crf = 0.115642438 - the capital recovery factor (default value assumes 12 year economic lifetime)
  • capt_co2_percent = 0.9 - (between 0 and 1) the percentage of CO₂ captured by the retrofit
  • reduce_nox_percent = 0.25 - (between 0 and 1) the percent reduction in NOₓ emissions (default is midpoint of 0% and 50% reduction)
  • reduce_so2_percent = 0.985 - (between 0 and 1) the percent reduction in SO₂ emissions (default is midpoint of 97% and 100% reduction)
  • reduce_pm25_percent = 0.33 - (between 0 and 1) the percent reduction in PM2.5 emissions (default is midpoint of -4% and 70% reduction)
  • econ_life = 12.0 - the assumed economic life of the retrofit. Moves out the planned yearshutdown to be at the end of the retrofit economic lifetime if yearshutdown is earlier than the end of the econ life.

Other Requirements:

  • The gen table must have a heat_rate column
  • The gen table must either have a pcap_plant_avg column, or it will be assumed that each generator represents a single plant. This value is used with the cost curves.

Cost adjustment values come from a regression in EPA Schedule 6 data.