Flat Plate Collector (Surrogate)
from watertap_contrib.reflo.solar_models import FlatPlateSurrogate
This Flat Plate Collector (FPC) unit model is a surrogate model that inherits its base model structure from the Solar Energy Base Class. The unit model is trained using data generated by the Solar Water Heating model from PySAM which is is a Python package for the National Renewable Energy Laboratory’s System Advisor Model (SAM). Like the corollary in SAM, the FPC model is assumed to include both the solar field and the thermal energy storage system.
Model Structure
Outputs from the surrogate model are used to estimate the performance and the cost of the FPC system. The degrees of freedom depends on the number of surrogate input variables set by the user in the model configuration. The model can have between 1 and 3 degrees of freedom, depending on the configuration. By default, the surrogate model includes the following input variables:
Variable |
Variable Name |
Symbol |
Units |
Description |
|---|---|---|---|---|
System capacity |
|
\(P_{th}\) |
\(\text{MW}\) |
Maximum thermal power output of the system |
Hours of storage |
|
\(t_{storage}\) |
\(\text{hr}\) |
Number of hours of thermal storage |
Target hot temperature |
|
\(T_{hot}\) |
\(\text{°C}\) |
Hot target outlet temperature |
System capacity is a required input surrogate variable. The others are optional. Users can choose to use a fixed value for the hours of storage or target hot temperature when generating data using PySAM.
The following parameters are required outputs of the surrogate model:
Variable |
Variable Name |
Symbol |
Units |
Description |
|---|---|---|---|---|
Heat annual |
|
\(H_{annual}\) |
\(\text{kWh}\) |
Annual thermal energy produced by the system |
Electricity annual |
|
\(E_{annual}\) |
\(\text{kWh}\) |
Annual electricity demand of the system |
Additional parameters included on the FPC model block are:
Parameter |
Parameter Name |
Symbol |
Default Value |
Units |
Description |
|---|---|---|---|---|---|
Water specific heat |
|
\(c_p\) |
4.181 |
\(\text{kJ/kg/K}\) |
Specific heat of water |
Water density |
|
\(\rho\) |
1000 |
\(\text{kg/m}^3\) |
Density of water |
Cold temperature |
|
\(T_{cold}\) |
25 |
\(\text{K}\) |
Temperature of the cold influent stream |
Temperature difference factor |
|
\(\Delta T\) |
0.03 |
\(\text{K}\) |
Temperature between the influent stream and ambient temperature |
Collector area |
|
\(A_{collector}\) |
2.98 |
\(\text{m}^2\) |
Area of each collector |
FRta |
|
\(FR_{ta}\) |
0.689 |
\(\text{kW/m}^2\) |
Product of collector heat removal factor (FR), cover transmittance (t), and shortwave absorptivity of absorber (a); optical gain a in Hottel-Whillier-Bliss equation |
FRUL |
|
\(FR_{UL}\) |
3.85 |
\(\text{kW/m}^2\text{/K}\) |
Product of collector heat removal factor (FR) and overall heat loss coeff. of collector (UL); thermal loss coeff b in Hottel-Whillier-Bliss equation |
The total collector area is calculated as follows:
And the total number of flate plate collectors required is:
The thermal storage volume is calculated with:
Generating Data
The data for the surrogate model can be generated using the generate_fpc_data function in run_pysam_flat_plate.py in the REFLO package.
This script uses the Swh model from PySAM to generate the data.
Running this script will use the default weather file and configuration file included in the REFLO package,
but users should update these files for their specific location and application.
Weather files can be downloaded from the National Solar Radiation Database
and configuration .json files can be created using SAM.
The generate_fpc_data function takes the following arguments:
Name |
Keyword |
Units |
Description |
|---|---|---|---|
System capacity |
|
\(\text{MW}\) |
List of range of values of interest for the trough system capacity |
Hours of storage |
|
\(\text{hr}\) |
List of range of values of interest for the hours of thermal storage |
Target hot temperature |
|
\(\text{°C}\) |
List of range of values of interest for the target hot outlet temperature |
Weather file |
|
N/A |
Path to the weather file |
Configuration file |
|
N/A |
Path to the configuration file for the PySAM model |
Dataset file name |
|
N/A |
Desired name of the output dataset file |
from watertap_contrib.reflo.solar_models import generate_fpc_data
data = generate_fpc_data(
system_capacities=[10, 20, 30, 40, 50],
hours_storages=[6, 12, 24],
temperatures_hot=[60, 70, 80],
weather_file="path/to/weather/file.csv",
config_file="path/to/config/file.json",
dataset_filename="path/to/dataset/filename.pkl",
)
Costing
The costing approach is adopted from the SAM costing for flat plate collector systems. The following parameters are constructed on the costing block for FPC costing:
Cost Component |
Variable |
Symbol |
Value |
Units |
Description |
|---|---|---|---|---|---|
Cost per area collector |
|
\(c_{fpc}\) |
600 |
\(\text{USD/m}^2\) |
Cost per area for solar collector |
Cost per volume storage |
|
\(c_{tes}\) |
120 |
\(\text{USD}\text{/m}^3\) |
Cost per volume for thermal storage |
Contingency factor |
|
\(X_{c}\) |
0.07 |
\(\text{dimensionless}\) |
Fraction of direct costs for contingency |
Indirect cost factor |
|
\(X_{i}\) |
0.11 |
\(\text{dimensionless}\) |
Fraction of direct costs for indirect costs |
Fixed operating cost per system capacity |
|
\(c_{fix,op}\) |
16 |
\(\text{USD/kW/year}\) |
Fixed operating cost of flat plate plant per kW capacity |
These are used the calculate the following capital and operating costs:
Cost Component |
Symbol |
Equation |
|---|---|---|
Collector cost |
\(C_{coll}\) |
\(c_{fpc} \times A_{total}\) |
Thermal storage cost |
\(C_{tes}\) |
\(c_{tes} \times V_{storage}\) |
Land cost |
\(C_{land}\) |
\(c_{land} \times A_{land}\) |
Fixed operating cost |
\(C_{fix,op}\) |
\(c_{fix,op} \times P_{th}\) |
The direct costs include the cost of the collectors, storage, and contingency.
Indirect costs are calculated as a fraction of the direct costs and the land cost:
The total capital cost of the FPC system is the sum of direct and indirect costs and sales tax:
Note that by default, REFLO assumes no sales tax (i.e., \(X_{t} = 0\)) or land cost (i.e., \(c_{land} = 0\)).
The total operating cost is the fixed operating cost:
Energy Balance
The FPC model has both thermal and electric power flows. The steady-state thermal output of the FPC system is calculated as:
\(Q_{out}\) is the steady-state thermal output (in kW) at the target temperature
\(H_{annual}\) is the annual thermal energy generation (in kWh)
The parasitic power consumption of the FPC system is calculated as:
\(P_{cons}\) is the parasitic power consumption (in kW)
\(E_{annual}\) is the annual electric energy consumption (in kWh)