Solar Thermal
See also
Note
A solar thermal system consists of an element and a controller. The element defines the collector’s physical parameters, while the controller governs the thermodynamic logic.
The create_controlled function creates both and connects them.
Create Controlled Function
- pandaprosumer.create_controlled_solar_thermal(prosumer, collector_area=2.5, optical_efficiency=0.77, thermal_losses=3.0, second_thermal_losses=0.02, incidence_angle=0.9, flow_rate=72, test_specific_heat=4.18, use_specific_heat=4.18, number_collectors=4.0, series=1.0, piping_length=0.0, piping_diameter=0.028, piping_thickness=0.03, piping_conductivity=0.04, collector_slope=40.0, collector_azimut=0.0, name=None, index=None, in_service=True, level=0, order=0, period=0, **kwargs)[source]
Input Static Data
Parameter |
Description |
Unit |
|---|---|---|
collector_area |
Area of a single collector |
m² |
number_collectors |
Number of collectors in the field |
N/A |
optical_efficiency (a₀) |
Optical efficiency factor |
|
thermal_losses (a₁) |
First-order thermal loss coefficient |
W/(m²·K) |
second_thermal_losses (a₂) |
Second-order thermal loss coefficient |
W/(m²·K²) |
flow_rate |
Nominal mass flow rate per collector |
kg/h |
test_specific_heat |
Specific heat used in test conditions |
kJ/(kg·K) |
use_specific_heat |
Specific heat of working fluid |
kJ/(kg·K) |
piping_length |
Length of connecting pipes |
m |
piping_diameter |
Inner diameter of pipes |
m |
piping_thickness |
Pipe wall thickness |
m |
piping_conductivity |
Thermal conductivity of pipe material |
W/(m·K) |
incidence_angle |
Incidence angle modifier at 50° |
|
collector_slope |
Slope of the collector field |
deg |
series |
Number of collectors in series |
N/A |
in_service |
Indicates if the solar thermal system is in service |
N/A |
Input Time Series
Parameter |
Description |
Unit |
|---|---|---|
beam_solar_radiation_w_m2 |
Beam solar radiation on collector surface |
W/m² |
diffuse_solar_radiation_w_m2 |
Diffuse solar radiation |
W/m² |
ground_solar_radiation_w_m2 |
Ground-reflected solar radiation |
W/m² |
radiation_incidence_angle_deg |
Angle of incidence of solar radiation |
deg |
ambient_temperature_C |
Ambient temperature |
°C |
inlet_temperature_C |
Inlet fluid temperature |
°C |
inlet_mass_flow_rate_kg_h |
Inlet mass flow rate |
kg/h |
Output Time Series
Parameter |
Description |
Unit |
|---|---|---|
outlet_temperature_C |
Outlet fluid temperature |
°C |
outlet_flow_rate_kg_h |
Outlet mass flow rate |
kg/h |
energy_gain_W |
Thermal energy gain of the collector field |
W |
Mapping
The Solar Thermal model can be mapped using GenericMapping and FluidMixMapping.
Model
- class pandaprosumer.controller.models.SolarThermalController(prosumer, solar_themal_object, order, level, in_service=True, index=None, **kwargs)[source]
Definition of the Class for the Controller
Parameters
- BasicProsumerController_type_
_description_
Returns
- _type_
_description_
The Solar Thermal controller implements the thermodynamic model of a collector field. It accounts for optical efficiency, thermal losses, and correction factors for capacitance, series connection, and piping. The model uses a single temperature to characterize the solar field and relies on the EN12975 standard to characterize the solar thermal collector performance. The approach is based on Chapter 6 and Chapter 10 of “Solar Engineering of Thermal Processes”, by J.A Duffie and W.A. Beckman. The model can simulate the performance of the solar field collector, and then connect it to a thermal storage component or heat exchanger model to incorporate it in a model or a functional system.
Collector Initial Parameters
The effective parameters are derived from test values:
\[FR(\tau \alpha)_n = \frac{a_0}{1 + \frac{3.6 \cdot a_1}{2 \cdot m_{test} \cdot c_{p,test}}}\]\[FRU_L = \frac{a_1}{1 + \frac{3.6 \cdot a_1}{2 \cdot m_{test} \cdot c_{p,test}}}\]\[FRU_{L2} = \frac{a_2}{1 + \frac{3.6 \cdot a_1}{2 \cdot m_{test} \cdot c_{p,test}}}\]Capacitance Correction Factor
\[r_{cap} = \frac{m \cdot c_p}{n_c \cdot a_c} \cdot \frac{1 - \exp\left(-\frac{3.6 \cdot n_c \cdot a_c \cdot f_{finul}}{m \cdot c_p}\right)}{3.6 \cdot FRU_L}\]with
\[f_{finul} = -\frac{m \cdot c_p}{3.6 \cdot a_c} \ln\left(1 - \frac{3.6 \cdot FRU_L \cdot a_c}{m \cdot c_p}\right)\]Series Connection Correction Factor
\[r_{series} = \frac{1 - (1 - k)^{n_{series}}}{n_{series} \cdot k}, \quad k = \frac{3.6 \cdot n_c \cdot a_c \cdot FRU_L}{m \cdot c_p}\]Piping Correction Factor
\[U_p = \frac{2 k_{ins}}{(d_{pipe} + 2 t_{ins}) \ln\left(1 + \frac{2 t_{ins}}{d_{pipe}}\right)}\]\[U_{ap} = U_p \cdot l_{pipe} \cdot (d_{pipe} + 2 t_{ins})\]\[r_0 = \frac{1}{1 + \frac{3.6 U_{ap}}{m c_p}}, \quad r_1 = \frac{1 - \frac{3.6 U_{ap}}{m c_p} + \frac{2 U_{ap}}{a_c FRU_L}}{1 + \frac{3.6 U_{ap}}{m c_p}}, \quad r_2 = r_1\]Radiation Incidence (IAM Effect)
The absorbed solar radiation is corrected by incidence angle modifiers:
\[b_0 = \frac{1 - k_{t,\alpha,50}}{1 - \cos(50^\circ) - 1}\]\[k_{t,\alpha} = 1 - b_0 \left(\frac{1}{\cos(\theta)} - 1\right)\]\[k_{t,\alpha,diff} = 1 - b_0 \left(\frac{1}{\cos(\theta_{diff})} - 1\right)\]\[k_{t,\alpha,gr} = 1 - b_0 \left(\frac{1}{\cos(\theta_{gr})} - 1\right)\]\[G_t = k_{t,\alpha} I_{beam} + k_{t,\alpha,diff} I_{diff} + k_{t,\alpha,gr} I_{gr}\]Energy Gain
Finally, the useful thermal energy is:
\[\dot{Q}_{gain} = \dot{m} \cdot c_p \cdot (T_{out} - T_{in})\]