Veda2.0 Released!


UC_CO2 Trading
#1
Hello guys.

I m thinking about creating Emissions (CO2) trading system - ETS in TIMES. Here is an example.

Tech_18 produced (ENV) Commodity CO2_18 in 2018, 8.5 kT CO2 per annum. Free emission allocation (FEA) for years 2018, 2020, 2025, 2030 ... are

2018 = 8.7 kT FEA
2020 = 8.2 kT FEA
2025 = 7.8 kT FEA
2030 = 7.4 kT FEA

Prices for kT/CO2 are:

2018 = 0.008 mEuro/kT
2020 = 0.013 mEuro/kT
2025 = 0.019 mEuro/kT
2030 = 0.025 mEuro/kT

What if i want to carry over unused FEA to the next period, it is possible ?

What do you suggest is the best approach for this ? User Constraint (UC) should or could be used here ?

Thank you for any answer.
Reply
#2
> What if i want to carry over unused FEA to the next period, it is possible ?

A cumulative bound would let the model optimize the timing of emissions reductions over periods. If you want to allow using unused quotas only forward in time, you could define a constraint for the first (1) period, then cumulatively for periods 1+2, then cumulatively for periods 1+2+3, etc.  In that way the unused quota in each period would be available in future periods.
Reply
#3
(04-05-2021, 04:59 PM)Antti-L Wrote: > What if i want to carry over unused FEA to the next period, it is possible ?

A cumulative bound would let the model optimize the timing of emissions reductions over periods. If you want to allow using unused quotas only forward in time, you could define a constraint for the first (1) period, then cumulatively for periods 1+2, then cumulatively for periods 1+2+3, etc.  In that way the unused quota in each period would be available in future periods.


But how to apply prices on exeeded amount of CO2 for ENV CO2_18 ? 
I can not find the similiar issue here. Could you help me to build UC_file or show me some examples ?


Attached Files
.xlsx   Scen_UC_ETS_Trading.xlsx (Size: 10.88 KB / Downloads: 5)
Reply
#4
There are numerous ways to ETS modeling. It is up to the modeller to decide which approach to use.

For a discussion on some basic approaches for the representation of emission trading schemes in national energy system models, with a focus on TIMES, see for example the following IER document: https://iea-etsap.org/projects/ETSAP_PI_WPB2-IER.pdf

Quote from the document:
"The aim of this report is therefore to develop and describe a modelling approach with  which  the  EU  ETS  can  be  incorporated  into  national  TIMES  models  in  a  detailed  and  realistic manner. "
Reply
#5
(04-05-2021, 06:25 PM)Antti-L Wrote: There are numerous ways to ETS modeling. It is up to the modeller to decide which approach to use.

For a discussion on some basic approaches for the representation of emission trading schemes in national energy system models, with a focus on TIMES, see for example the following IER document: https://iea-etsap.org/projects/ETSAP_PI_WPB2-IER.pdf

Quote from the document:
"The aim of this report is therefore to develop and describe a modelling approach with  which  the  EU  ETS  can  be  incorporated  into  national  TIMES  models  in  a  detailed  and  realistic manner. "

Thank you for documentation. I read it. It mainly describes mechanism of allocation but

" how to put an upper bound on the flow of emissions of facilities participating in the trading scheme with the help of a userdefined constraint (based on the parameter UC_FLO) ?
It also mentioned there the dual variable of this bound equals the marginal costs of the last (most expensive) unit of emission abated to fulfil the constraint. It can be therefore interpreted as the certificate price that would arise in the emissions trading system under the modelled conditions. 

I m not sure how to apply price of CO2 per kt above limit via UC_Table which also reflects the impact of the emissions trading system on the objective function.


Attached Files Thumbnail(s)
   
Reply
#6
I am sorry but I am not able to make sense out of what you are trying to accomplish.

Anyway, concerning your UC constraint, UC_CUMCOM expects a year range, a PRD/NET indicator, and it can be used only for cumulative constraints.  If you want to use UC_CUMCOM, where are the required year ranges? I cannot see any ranges specified. You specify four UC_CUMCOM parameters, one with a NET indicator but three without any, and with a single year specified for each. And you specify a UC_RHSRT constant for each of those years, although UC_RHSRT can not be used for cumulative constraints. I wonder what can be the mathematical formulation behind all this? Sorry, but frankly I have no idea.  Confused
Reply
#7
(04-05-2021, 11:50 PM)Antti-L Wrote: I am sorry but I am not able to make sense out of what you are trying to accomplish.

Anyway, concerning your UC constraint, UC_CUMCOM expects a year range, a PRD/NET indicator, and it can be used only for cumulative constraints.  If you want to use UC_CUMCOM, where are the required year ranges? I cannot see any ranges specified. You specify four UC_CUMCOM parameters, one with a NET indicator but three without any, and with a single year specified for each. And you specify a UC_RHSRT constant for each of those years, although UC_RHSRT can not be used for cumulative constraints. I wonder what can be the mathematical formulation behind all this? Sorry, but frankly I have no idea.  Confused

ok it seems i explained it very chaotic. I m sorry.  

Please could you check UC file. There is simple explanation. 

Thank you very much.


Attached Files
.xlsx   Scen_UC_ETS.xlsx (Size: 13.91 KB / Downloads: 4)
Reply
#8
Please see below a simple ETS example, with allowance export and import prices and free quotas.  It requires that you have also defined an exchange process X-ETS, trading in ELCCO2N with the external IMPEXP region.
I tested it with the DEMO model and as far as I can see, it worked quite well. Note that the NCAP_START is quite essential, as the constraint is only from 2018.

   
Reply
#9
(05-05-2021, 06:40 PM)Antti-L Wrote: Please see below a simple ETS example, with allowance export and import prices and free quotas.  It requires that you have also defined an exchange process X-ETS, trading in ELCCO2N with the external IMPEXP region.
I tested it with the DEMO model and as far as I can see, it worked quite well. Note that the NCAP_START is quite essential, as the constraint is only from 2018.

Thank you Antti. I have done it similarly. I only rename IMP Set as XIMP-ETS and EXP Set as XEXP-ETS and looks working fine. But i have some questions on you.
What is the purpose of this  ACT_COST = 0.001 ?  
How to apply this approach to another CO2_XY Commodity? Should i input to the next UCT sheet ?
And Is tere any  "enhanced" documentations about User Constraints ? I attended only beginner training session and there was only few examples on UC.

Thank you


Attached Files Thumbnail(s)
       
Reply
#10
If you would just set export price = import price, the model could export an arbitrary amount of CO2 and them import the same amount, without any impact on objective function.  That is bad for numerical stability.

Therefore, it is better to put a small difference to these prices, such that the export price is slightly smaller than the import price.  In my example, ACT_COST(X-ETS)= 0.0005 (shown rounded to 0.001) was a simple way to accomplish that.  But in your case you have two trade processes, and so you should put that on the export process (in your screenshot, you have an error, as you don't have any process name for ACT_COST).
Reply
#11
I think you have also an error in the UC_T table:  The column '0' should be to the right of ~UC_T (as all the other Year columns).
Reply
#12
(06-05-2021, 01:27 PM)Antti-L Wrote: If you would just set export price = import price, the model could export an arbitrary amount of CO2 and them import the same amount, without any impact on objective function.  That is bad for numerical stability.

Therefore, it is better to put a small difference to these prices, such that the export price is slightly smaller than the import price.  In my example, ACT_COST(X-ETS)= 0.0005 (shown rounded to 0.001) was a simple way to accomplish that.  But in your case you have two trade processes, and so you should put that on the export process (in your screenshot, you have an error, as you don't have any process name for ACT_COST).

I think you have also an error in the UC_T table:  The column '0' should be to the right of ~UC_T (as all the other Year columns).
 
But your process X-ETS isn´t the Import an Export at the same time in your table ? Because if i have two trade processes, first import XIMP-ETS and second for export XEXP-ETS it make sense to me to put ACT_COST 0.0005 for export (XEXP-ETS) price to  make a difference between these prices. And you input ACT_COST for process X-ETS. Probably i  understand but i do not know how to explain to you  Confused
Just asking...  Rolleyes
 
 And is it possible to make trade system for many CO2_xy, (CO2_1, CO2_2 and so on with own free allowances ?) commodities in this single tables ? Or i need to create another tables and another UC ? 

And thank you for answering me
Reply
#13
> But your process X-ETS isn´t the Import an Export at the same time in your table?

In my table, X-ETS is a process that can both Import and Export allowances, through that same process.

> Because if i have two trade processes, first import XIMP-ETS and second for export XEXP-ETS it make sense to me to put ACT_COST 0.0005 for export (XEXP-ETS) price to  make a difference between these prices.

In your case, it does make good sense to put ACT_COST 0.0005 for the export (XEXP-ETS) process, like I said in my previous post.  You did not yet have it in your table, so do you disagree putting it there?

>  And is it possible to make trade system for many CO2_xy, (CO2_1, CO2_2 and so on with own free allowances ?) commodities in this single tables ?

I think normally, one would use a single constraint for the total ETS emissions (using the total of the free quotas), because there is hardly much point in constraining the emissions from each emitting process separately.  But I have understood that your model is far from "normal", and so if you wish, you can of course add a new emission commodity CO2_xy for each process participating in the ETS, and a corresponding constraint for its free quota and trading.  But I don't think it would make any difference in the results, unless you assume different ETS prices / bounds for each CO2_xy.
Reply
#14
(06-05-2021, 06:06 PM)Antti-L Wrote: > But your process X-ETS isn´t the Import an Export at the same time in your table?

In my table, X-ETS is a process that can both Import and Export allowances, through that same process.

> Because if i have two trade processes, first import XIMP-ETS and second for export XEXP-ETS it make sense to me to put ACT_COST 0.0005 for export (XEXP-ETS) price to  make a difference between these prices.

In your case, it does make good sense to put ACT_COST 0.0005 for the export (XEXP-ETS) process, like I said in my previous post.  You did not yet have it in your table, so do you disagree putting it there?

>  And is it possible to make trade system for many CO2_xy, (CO2_1, CO2_2 and so on with own free allowances ?) commodities in this single tables ?

I think normally, one would use a single constraint for the total ETS emissions (using the total of the free quotas), because there is hardly much point in constraining the emissions from each emitting process separately.  But I have understood that your model is far from "normal", and so if you wish, you can of course add a new emission commodity CO2_xy for each process participating in the ETS, and a corresponding constraint for its free quota and trading.  But I don't think it would make any difference in the results, unless you assume different ETS prices / bounds for each CO2_xy.

>I think normally, one would use a single constraint for the total ETS emissions (using the total of the free quotas), because there is hardly much point in constraining the emissions from each emitting process separately.  But I have understood that your model is far from "normal", and so if you wish, you can of course add a new emission commodity CO2_xy for each process participating in the ETS, and a corresponding constraint for its free quota and trading.  But I don't think it would make any difference in the results, unless you assume different ETS prices / bounds for each CO2_xy.

Hi Antti its not good approach for us to summing all ETS quotas. Every facility belongs to different sector, producing different type of commodities and based on that they are allocated free quotas.  Please could you help me with adding others CO2 Commodities to UC Table ? 
The structure of these two tables should be different right ?  I m sending my first attempt for the first UC table. Please see attached. 

Thank u


Attached Files Thumbnail(s)
   
Reply
#15
(10-05-2021, 02:05 PM)JozefO Wrote:
(06-05-2021, 06:06 PM)Antti-L Wrote: > But your process X-ETS isn´t the Import an Export at the same time in your table?

In my table, X-ETS is a process that can both Import and Export allowances, through that same process.

> Because if i have two trade processes, first import XIMP-ETS and second for export XEXP-ETS it make sense to me to put ACT_COST 0.0005 for export (XEXP-ETS) price to  make a difference between these prices.

In your case, it does make good sense to put ACT_COST 0.0005 for the export (XEXP-ETS) process, like I said in my previous post.  You did not yet have it in your table, so do you disagree putting it there?

>  And is it possible to make trade system for many CO2_xy, (CO2_1, CO2_2 and so on with own free allowances ?) commodities in this single tables ?

I think normally, one would use a single constraint for the total ETS emissions (using the total of the free quotas), because there is hardly much point in constraining the emissions from each emitting process separately.  But I have understood that your model is far from "normal", and so if you wish, you can of course add a new emission commodity CO2_xy for each process participating in the ETS, and a corresponding constraint for its free quota and trading.  But I don't think it would make any difference in the results, unless you assume different ETS prices / bounds for each CO2_xy.

>I think normally, one would use a single constraint for the total ETS emissions (using the total of the free quotas), because there is hardly much point in constraining the emissions from each emitting process separately.  But I have understood that your model is far from "normal", and so if you wish, you can of course add a new emission commodity CO2_xy for each process participating in the ETS, and a corresponding constraint for its free quota and trading.  But I don't think it would make any difference in the results, unless you assume different ETS prices / bounds for each CO2_xy.

Hi Antti its not good approach for us to summing all ETS quotas. Every facility belongs to different sector, producing different type of commodities and based on that they are allocated free quotas.  Please could you help me with adding others CO2 Commodities to UC Table ? 
The structure of these two tables should be different right ?  I m sending my first attempt for the first UC table. Please see attached. 

Thank u

Hi Antti, please could u give me an advice. Im trying to implement of allowances or free quotas for many CO2_* Commodity in UC file but it is not working ? 
Many thanks
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)