Definition of energy price and capacity price #137
wanyingw193
started this conversation in
General
Replies: 2 comments
-
The prices are calculated based on the marginals on the constraints. You can trace the parameters froms reeds2.py upstream to see how they are calculated (in e_report.gms):
|
Beta Was this translation helpful? Give feedback.
0 replies
-
Based on the c_supplymodel.gms (main branch), here are the itemized costs I see with respect to 1 MW increase in LOAD at the margin. I greyed out the original calculation and added two more price components related to unbundled and imported RECS. I haven’t run the model and checked any errors associated with the calculation, but adding up the cost at a consistent level (hour or annual with cost scale and value conversion) should match the model reporting of marginals on LOAD for a handshake.
reqt_price('load','na',r,h,t)$[rfeas(r)$tmodel_new(t)]
= (1 / cost_scale) * (1 / pvf_onm(t)) * eq_supply_demand_balance.m(r,h,t) / hours(h);
reqt_price('oper_res',ortype,r,h,t)$[rfeas(r)$tmodel_new(t)]
*. = (1 / cost_scale) * (1 / pvf_onm(t)) * eq_OpRes_requirement.m(ortype,r,h,t) / hours(h) ;
= (1 / cost_scale) * (1 / pvf_onm(t)) * orperc(ortype,"or_load")*eq_OpRes_requirement.m(ortype,r,h,t) / hours(h);
reqt_price('nat_gen','na',r,'ann',t)$[rfeas(r)$tmodel_new(t)]
*. = (1 / cost_scale) * (1 / pvf_onm(t)) * eq_national_gen.m(t) ;
= (1 / cost_scale) * (1 / pvf_onm(t)) * national_gen_frac(t)*eq_national_gen.m(t)* (1$[Sw_GenMandate = 1] + (1.0 - distloss)$[Sw_GenMandate = 2]);
reqt_price('state_rps',RPSCat,r,'ann',t)$[rfeas(r)$tmodel_new(t)]
*. = (1 / cost_scale) * (1 / pvf_onm(t)) * sum{st$r_st(r,st), eq_REC_Requirement.m(RPSCat,st,t) } ;
= (1 / cost_scale) * (1 / pvf_onm(t)) * sum{st$r_st(r,st), RecPerc(RPSCat,st,t)*eq_REC_Requirement.m(RPSCat,st,t)*(1.0 - distloss) };
* Unbundled RECs
reqt_price('Rec_unbundled',RPSCat,r,'ann',t)$[rfeas(r)$tmodel_new(t)]
= - (1 / cost_scale) * (1 / pvf_onm(t)) *sum{st$r_st(r,st), REC_unbundled_limit(RPSCat,st,t)*RecPerc(RPSCat,st,t)*eq_REC_unbundledLimit.m(RPSCat,st,t)*(1.0 - distloss) };
* Imported RECs
reqt_price('Rec_ooslim',RPSCat,r,'ann',t)$[rfeas(r)$tmodel_new(t)]
= - (1 / cost_scale) * (1 / pvf_onm(t)) *sum{st$r_st(r,st), RPS_oosfrac(st) * RecPerc(RPSCat,st,t)*eq_REC_ooslim.m(RPSCat,st,t)*(1.0 - distloss) };
Mei
From: Wesley Cole ***@***.***>
Sent: Monday, January 16, 2023 12:01 PM
To: NREL/ReEDS_OpenAccess ***@***.***>
Cc: Subscribed ***@***.***>
Subject: Re: [NREL/ReEDS_OpenAccess] Definition of energy price and capacity price (Discussion #137)
The prices are calculated based on the marginals on the constraints. You can trace the parameters froms reeds2.py upstream to see how they are calculated (in e_report.gms):
*Load and operating reserve prices are $/MWh, and reserve margin price is $/kW-yr
reqt_price('load','na',r,h,t)$[rfeas(r)$tmodel_new(t)] = (1 / cost_scale) * (1 / pvf_onm(t)) * eq_supply_demand_balance.m(r,h,t) / hours(h) ;
reqt_price('res_marg','na',r,szn,t)$[rfeas(r)$tmodel_new(t)] = (1 / cost_scale) * (1 / pvf_onm(t)) * eq_reserve_margin.m(r,szn,t) / 1000 ;
reqt_price('res_marg_ann','na',r,'ann',t)$[rfeas(r)$tmodel_new(t)] = sum{szn, reqt_price('res_marg','na',r,szn,t) } ;
reqt_price('oper_res',ortype,r,h,t)$[rfeas(r)$tmodel_new(t)] = (1 / cost_scale) * (1 / pvf_onm(t)) * eq_OpRes_requirement.m(ortype,r,h,t) / hours(h) ;
reqt_price('state_rps',RPSCat,r,'ann',t)$[rfeas(r)$tmodel_new(t)] = (1 / cost_scale) * (1 / pvf_onm(t)) * sum{st$r_st(r,st), eq_REC_Requirement.m(RPSCat,st,t) } ;
reqt_price('nat_gen','na',r,'ann',t)$[rfeas(r)$tmodel_new(t)] = (1 / cost_scale) * (1 / pvf_onm(t)) * eq_national_gen.m(t) ;
reqt_price('annual_cap',e,r,'ann',t)$[rfeas(r)$tmodel_new(t)] = (1 / cost_scale) * (1 / pvf_onm(t)) * emit_scale(e) * eq_annual_cap.m(e,t) ;
—
Reply to this email directly, view it on GitHub<#137 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AEWI26CT7N7YZN6MZW3SCL3WSV5EVANCNFSM6AAAAAAT4AZSXE>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.******@***.***>>
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi NREL team,
In reeds2.py, there are terms called energy price and capacity price. What are the definitions of these two prices? Thank you very much!
Beta Was this translation helpful? Give feedback.
All reactions