GenXProject / GenX.jl

GenX: a configurable power system capacity expansion model for studying low-carbon energy futures. More details at : https://genx.mit.edu
https://genxproject.github.io/GenX.jl/
GNU General Public License v2.0
267 stars 114 forks source link

Representation of concentrated solar power with TES (option using hydro module??) #158

Open DanielNavia1 opened 2 years ago

DanielNavia1 commented 2 years ago

Hi,

I was wondering if there is any readily available implementation of CSP with TES in GenX. I have done a search and I can’t seem to find any paper that has done this. I have seen #76 and I may have missed if some work has been done on that. I am modelling some of Europe’s large markets and Spain has about 3 GW of existing CSP capacity (1 GW with TES of approx. 7 hours) and indicative national plans call for about 4 extra GW of CSP with 9 hour TES. Also, not sure if this the appropriate way to raise this (is more a modelling choice than coding).

I was thinking this could potentially be implemented quickly in GenX using the hydro resource code. Essentially, the tank storage plays the role of the reservoir and solar irradiation plays the role of water inflows (and you do some simple scaling to account for heat losses in the tank and account for the optical+thermal+storage+power block efficiency).

Assuming appropriate unit conversions, you would create the CSP+TES unit as a HYDRO resource with the following parameters:

Hydro definition of capacity factor = pP_Max = [DNISurface-hmass/24]*"Overall Efficiency"/Capacity Energy to power = Duration of TES (9 hours in my case)

Where h is heat capacity and mass is for the tank salt and I estimate (following Freund et al (2021)) that thermal losses in the tank are 1K per day (they say is usually lower). Other parameters would follow as usual for the power block (as in a conventional hydro resource).

Data on hourly DNI can be used directly for the location being analysed (or extrapolated from PV capacity factors). Data on surface vs. nominal capacity is available in csp.guru. For example, for tower systems of size about 100MW, typical surfaces are 1 and 1.5 million sqm. Data on mass for the tank(s) can be obtained directly or can be inferred from the duration of the TES and its technology. For 9 hour TES with solar salt with a max temperature difference of 260K (which seems to be typical for recent tower designs), the duration of storage would be given by 260hmass(power block efficiency)/nominal capacity. Given the storage duration and approximate power block efficiencies of 40% (higher range), we can obtain hmass/nominal capacity. This gives normalized losses. The above steps would give gross energy flows into the CSP+TES system. To make this work with the Hydro module, we need to account for the optical, thermal, storage and power block efficiencies of the process. From data in csp.guru total efficiency for modern power plant designs is about 0.15-0.20. The other constraints in the hydro module would in principle work here: total energy stored cannot exceed 9 hours, etc.

This would be only an approximation. For example, the overall efficiency would be different for direct operation with no previous storage vs. operation from storage (in my first tests this makes little difference because when the sun is shining PV drives away CSP in any event, so direct operation is essentially zero). This could be handled with some modifications in the hydro.src code, but if there is a more precise implementation, it would sure be helpful to use it.

Thanks

JesseJenkins commented 2 years ago

This is a good proposal for an approximate representation of CSP with thermal storage using the HYDRO resource implementation in GenX currently. For CSP without thermal storage, you could use the VRE resource option (variable renewable energy) with alternative capacity factor series reflection DNI. However, neither implementation can capture facilities that have a gas-fired turbine for start-up or co-firing. In version 0.4 (the next release after our forthcoming one), we will be releasing a number of modularized energy technology implementations, including a thermal power plant with thermal storage option. With slight adaptation, this could be used to represent CSP with thermal storage and a gas turbine unit as well. If you are interested in helping implement a CSP module for version 0.4, please let us know. The contribution would be welcome. If not, we will consider how to adapt the upcoming thermal plant with thermal storage module to reflect CSP as well.

On Tue, Mar 1, 2022 at 7:42 AM DanielNavia1 @.***> wrote:

Hi,

I was wondering if there is any readily available implementation of CSP with TES in GenX. I have done a search and I can’t seem to find any paper that has done this. I have seen #76 https://github.com/GenXProject/GenX/pull/76 and I may have missed if some work has been done on that. I am modelling some of Europe’s large markets and Spain has about 3 GW of existing CSP capacity (1 GW with TES of approx. 7 hours) and indicative national plans call for about 4 extra GW of CSP with 9 hour TES. Also, not sure if this the appropriate way to raise this (is more a modelling choice than coding).

I was thinking this could potentially be implemented quickly in GenX using the hydro resource code. Essentially, the tank storage plays the role of the reservoir and solar irradiation plays the role of water inflows (and you do some simple scaling to account for heat losses in the tank and account for the optical+thermal+storage+power block efficiency).

Assuming appropriate unit conversions, you would create the CSP+TES unit as a HYDRO resource with the following parameters:

Hydro definition of capacity factor = pP_Max = [DNISurface-hmass/24]*"Overall Efficiency"/Capacity Energy to power = Duration of TES (9 hours in my case)

Where h is heat capacity and mass is for the tank salt and I estimate (following Freund et al (2021)) that thermal losses in the tank are 1K per day (they say is usually lower). Other parameters would follow as usual for the power block (as in a conventional hydro resource).

Data on hourly DNI can be used directly for the location being analysed (or extrapolated from PV capacity factors). Data on surface vs. nominal capacity is available in csp.guru https://github.com/repolicy/csp-guru. For example, for tower systems of size about 100MW, typical surfaces are 1 and 1.5 million sqm. Data on mass for the tank(s) can be obtained directly or can be inferred from the duration of the TES and its technology. For 9 hour TES with solar salt with a max temperature difference of 260K (which seems to be typical for recent tower designs), the duration of storage would be given by 260hmass(power block efficiency)/nominal capacity. Given the storage duration and approximate power block efficiencies of 40% (higher range), we can obtain hmass/nominal capacity. This gives normalized losses. The above steps would give gross energy flows into the CSP+TES system. To make this work with the Hydro module, we need to account for the optical, thermal, storage and power block efficiencies of the process. From data in csp.guru total efficiency for modern power plant designs is about 0.15-0.20. The other constraints in the hydro module would in principle work here: total energy stored cannot exceed 9 hours, etc.

This would be only an approximation. For example, the overall efficiency would be different for direct operation with no previous storage vs. operation from storage (in my first tests this makes little difference because when the sun is shining PV drives away CSP in any event, so direct operation is essentially zero). This could be handled with some modifications in the hydro.src code, but if there is a more precise implementation, it would sure be helpful to use it.

Thanks

— Reply to this email directly, view it on GitHub https://github.com/GenXProject/GenX/issues/158, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACPYTSFHFPV7RQKQLX5FK7LU5YGEZANCNFSM5PT6C4YQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you are subscribed to this thread.Message ID: @.***>

wilson-ricks commented 2 years ago

The thermal storage module currently under development can likely be used to model CSP with minimal adjustments. It will allow for optimized or predetermined thermal storage durations and linked operations between a generic thermal core, intermediate storage, and power block. The thermal core could be specified as CSP by changing the corresponding column in generators_variability.csv to reflect hourly insolation. It would be helpful to get your thoughts on additional features once the module releases.

DanielNavia1 commented 2 years ago

Thanks for the answer. I am not an expert in CSP, so please take my next comments with appropriate caution. For projects with TES, I believe gas turbines or fuel boiler hybrids are not very frequent now. I checked csp.guru and the last hybrid project with TES started operation in 2015 (this excludes co-location with PV, which is frequent now but irrelevant here). @wilson-ricks, in view of this, I believe the solution you proposed would work for most relevant cases. If there is a boiler and TES, conceptually, I guess you would need two distinct thermal cores (fossil boiler & optical block) with distinct fuels, variability, etc. I am not sure this is worth the complication... There seems to be a lot of additional variety for CSP hybridisation but other options like Integrated Solar Combined Cycles (ISCC), biomass hybrids, etc. don't rely on TES, so the modelling would be different.

As I said, I am not an expert in this at all, but I can definitively look at the modules and/or think about features, as you suggested.

Thanks

Daniel