-
Notifications
You must be signed in to change notification settings - Fork 38
/
eqobsalv.rpt
74 lines (63 loc) · 4.07 KB
/
eqobsalv.rpt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* Copyright (C) 2000-2023 Energy Technology Systems Analysis Programme (ETSAP)
* This file is part of the IEA-ETSAP TIMES model generator, licensed
* under the GNU General Public License v3.0 (see file NOTICE-GPLv3.txt).
*=============================================================================*
* EQOBJSALV the objective functions for salvaging
* - Investment Costs
* - Taxes and subsidies on investments
* - Decommissioning
*=============================================================================*
*
*==============================================================================
* Generate Investment equation summing over all active indexes by region and currency
*==============================================================================
PAR_OBJSAL(RTP(R,V,P),CUR)$RDCUR(R,CUR) =
*------------------------------------------------------------------------------
* Cases I - Investment Cost and II - Taxes/Subsidies
*------------------------------------------------------------------------------
* [AL] Note that discounting to EOH+1 is imbedded in OBJSCC and OBJSIC
SUM(OBJ_SUMS(R,T(V),P), OBJSCC(R,T,P,CUR) * VAR_NCAP.L(R,T,P)) * OBJ_DCEOH(R,CUR) +
SUM(OBJ_SUMS(R,PYR(V),P), OBJSCC(R,V,P,CUR) * NCAP_PASTI(R,V,P)) * OBJ_DCEOH(R,CUR) +
$IF %ETL% == 'YES'
SUM(OBJ_SUMS(R,T(V),P)$TEG(P), OBJSIC(R,T,P) * VAR_IC.L(R,T,P)) * OBJ_DCEOH(R,CUR) +
*------------------------------------------------------------------------------
* Cases III - Decommissioning
*------------------------------------------------------------------------------
* [AL] Note that discounting to EOH+1 is imbedded in SALV_DEC
SUM(OBJ_SUMS3(R,T(V),P), VAR_NCAP.L(R,T,P) * SALV_DEC(R,T,P,CUR)) * OBJ_DCEOH(R,CUR) +
SUM(OBJ_SUMS3(R,PYR(V),P), NCAP_PASTI(R,V,P) * SALV_DEC(R,V,P,CUR)) * OBJ_DCEOH(R,CUR) +
*------------------------------------------------------------------------------
* Cases IV - Decommissioning Surveillance
*------------------------------------------------------------------------------
* The same proportion SALV_INV is salvaged from investments and surveillance costs
SUM(OBJ_SUMIVS(R,T(V),P,K,Y)$SALV_INV(R,T,P,K),
OBJ_DISC(R,Y,CUR) * OBJ_DLAGC(R,K,P,CUR) * SALV_INV(R,T,P,K) * VAR_NCAP.L(R,T,P)) +
SUM(OBJ_SUMIVS(R,PYR(V),P,K,Y)$SALV_INV(R,V,P,K),
OBJ_DISC(R,Y,CUR) * OBJ_DLAGC(R,K,P,CUR) * SALV_INV(R,V,P,K) * NCAP_PASTI(R,V,P))
;
*------------------------------------------------------------------------------
* LATE REVENUES
*------------------------------------------------------------------------------
* [AL] LATEREVENUES identical to decommissioning, with DCOST replaced by OCOM*VALU
* Revenues are obtained in the proportion 1-SALV_INV of the total revenues
PAR_OBJLAT(R,Y,P,CUR)$(YEARVAL(Y) GT MIYR_VL) =
SUM((OBJ_SUMIII(R,V,P,LL,K,Y),COM)$(NCAP_OCOM(R,V,P,COM)*NCAP_VALU(R,K,P,COM,CUR)),
(1-SALV_INV(R,V,P,LL)) *
OBJ_DISC(R,Y,CUR) * (VAR_NCAP.L(R,V,P)$MILESTONYR(V) + NCAP_PASTI(R,V,P)$PASTYEAR(V)) *
NCAP_VALU(R,K,P,COM,CUR) * NCAP_OCOM(R,V,P,COM) / OBJ_DIVIII(R,V,P))
;
*------------------------------------------------------------------------------
PARAMETER PAR_OBJCAP(R,YEAR,PRC,CUR) //;
PARAMETER COEF_OBJINV(R,YEAR,PRC) //;
*------------------------------------------------------------------------------
* Calculate the effect of a one unit of investment costs to the objective.
* The average undiscounted investment cost equivalent to the reduced cost can be
* calculated for each period by dividing the reduced cost by COEF_OBJINV
OPTION CLEAR=PAR_OBJCAP;
PAR_OBJCAP(OBJ_ICUR(R,T,P,CUR)) = COR_SALVI(R,T,P,CUR) / OBJ_DIVI(R,T,P) *
SUM(OBJ_SUMII(R,T,P,LIFE,K_EOH,JOT), %CAPJD%
SUM(INVSPRED(K_EOH,JOT,Y,K), (1-SALV_INV(R,T,P,Y)$OBJ_SUMS(R,T,P)) * OBJ_DISC(R,K,CUR)));
COEF_OBJINV(RTP(R,T,P)) $= SUM(RDCUR(R,CUR),PAR_OBJCAP(RTP,CUR));
OPTION CLEAR=OBJ_SUMIV, CLEAR=OBJ_SUMIVS, CLEAR=OBJ_SUMIII;
OPTION CLEAR=OBJ_DIVI, CLEAR=OBJ_DIVIV, CLEAR=OBJ_DIVIII;