MaREI-EPMG / times-ireland-model

TIMES-Ireland Model (TIM)
Other
10 stars 14 forks source link

Modelling of multi-output technologies in RSD #42

Open Antti-L opened 10 months ago

Antti-L commented 10 months ago

I just happened to look at the model (Release 1.0.2), due to a post on the VEDA Forum, related to heat pumps modeling.

It seems to me that there may be a few mistakes related to the modeling of RSD multi-output tehnologies, in particular heat pumps.

My apologies if these suspicions are just my misunderstandings. Feel free to close the issue immediately if it has no relevance (@olejandro @jayomacg).

olejandro commented 10 months ago

Thanks a lot @Antti-L! We will look into this. The issue that you've raised regarding NCAP_AFC(ANNUAL) and NCAP_AFA is also true for NCAP_AF(ANNUAL) and NCAP_AFA, right?

olejandro commented 10 months ago

Any feedback on the model or suspicion of any other possible issues is always welcome!

Antti-L commented 10 months ago

The issue that you've raised regarding NCAP_AFC(ANNUAL) and NCAP_AFA is also true for NCAP_AF(ANNUAL) and NCAP_AFA, right?

@olejandro No, for NCAP_AFA and NCAP_AF(ANNUAL) there is no issue, because 1) if PRC_TSL is not ANNUAL there is no clash between NCAP_AF and NCAP_AFA, and 2) if PRC_TSL=ANNUAL, NCAP_AFA overrides NCAP_AF(ANNUAL), and 3) NCAP_AFS(ANNUAL) always overrides NCAP_AFA. More generally, there is no such issue when using only the activity-based AF factors NCAP_AF/AFS/AFA. But for NCAP_AFC, it was a design choice that any activity-based AF for the same timeslice is applied as a multiplier, which can make it easier to define e.g. timelice-specific AFC profiles (because NCAP_AFC is not levelized), and applying SHAPE and MULTI would not be possible if AFC would just override AF/AFS/AFA, and because for avoiding problems with potentially inconsistent bound types, NCAP_AFC does not have a bound type index, but the bound type (UP/FX) is therefore taken from the corresponding NCAP_AF/AFS/AFA when specified (default=UP). The default AFC=1 if not specified for some of the PCG members.

There is also no such issue if using independent NCAP_AFC, but in the TIMES Ireland heat pumps case that option has not been used.

olejandro commented 10 months ago

Thanks @Antti-L ! Good to know that consecutive application of NCAP_AFA and NCAP_AF no longer causes an issue. Based on version history of TIMES-DK, this was the case way back in 2015. That's long time ago!

olejandro commented 10 months ago

@alechiodi @GargiuloM FYI on multi-output technologies in RSD

olejandro commented 10 months ago

The efficiencies appear to be usually defined both for the RSDELC input and some of the ouput flows (example: R-HC_Apt_ELC_HPN2-AB). This means that the total efficiency of producing such an output will be the two efficiencies multiplied together, resulting in some cases in very high efficiencies. That makes me suspect that such may be a modeling mistake.

Thanks for reporting this @Antti-L. Looking at the input table I can see that clearly the expectation there was that CEFF would be applied to all the output commodities and then for some commodities (cooling or water heating) will be overwritten by another value. However, as you pointed out, that CEFF gets applied to the input commodity.

olejandro commented 10 months ago

@jayomacg swapping CEFF for CEFF-O in SubRES_RSD_NewTechs in the columns where thermal efficiency is specified should resolve this issue.

olejandro commented 10 months ago

The ambient heat input flow is defined by FLO_SHAR, where the reference CG is one of the ouput commodities. However, in some cases two or even several such FLO_SHAR are defined, which would generate a constraint for each of those shares (example: R-HC_Apt_ELC_HPN2-AB, with two such FLO_SHAR). That looks like a mistake again. I would suggest using FLO_EFF(r,y,p,NRGO,RSDAHT,ANNUAL) = 1 and FLO_EFF(r,y,p,RSDELC,RSDAHT,ANNUAL) = -1 to get RSDAHT correctly defined.

That's a bummer! Elsewhere, e.g. R-SW_Att_ELC_HPN1-AB, a second commodity, RSDAHT2, is used to make sure the FLO_SHAR are meaningful. @jayomacg just use the same approach. For the HPs with 3 outputs (i.e. space heating, cooling and hot water), you can introduce RSDAHT3.

olejandro commented 10 months ago

The availablility factors of the multi-output tehnologies seem to be mostly defined by using NCAP_AFC (which is fine as such). However, in some cases both NCAP_AFC(ANNUAL) and NCAP_AFA are defined (example: R-HC_Apt_ELC_HPN2-AB). Please bear in mind that if both AFC and activity-based AFs are defined for the same timeslice, they are multiplied together (unless independent AFCs are used). It seems that both factors may have been used by mistake in the model, for example in the case of R-HC_Apt_ELC_HPN2-AB, where the AFC and AFA values are equal.

@Antti-L , when you refer to independent AFC what do you mean?

Antti-L commented 10 months ago

Independent AFC means that independent constraints are generated for each commodity. Normally, NCAP_AFCs cause only a single, combined AF constraint being generated for each (region, year, process, timeslice). For example, independent AFC(heat,ANNUAL)=0.15 and AFC(cool,ANNUAL)=0.15 would mean that the ANNUAL output of cool can be at most 0.15 ×capacity, and the same for heat, while the normal combined constraint would constrain all outputs together, such that capacity must be greater than 1/0.15 ×heat + 1/0.15 ×cool. Such independent constraints would not make much sense if PRC_TSL is DAYNITE (like Jason had modelled), but would make sense if PRC_TSL=ANNUAL. And, if using independent constraints, any activity-based availability constraints are generated as well, such that e.g. on the PRC_TSL level the normal activity-based availability constraints will always be generated.