Model option
Fuentes
Fuentes's heat balance with the module's heat capacity
Inputs used: Thermal loss factor Uc (constant), Thermal loss factor Uv (wind), Absorptivity, Thermal inertia, Module unit mass, NOCT standoff adjustment, SAPM coefficient a, SAPM coefficient b, SAPM ΔT, CEC database parameters, Racking type, Ambient temperature, Wind speed
Method
The module absorbs 83 % of the plane irradiance and loses heat by convection to the air, free and forced by the wind, and by long-wave radiation to the sky and to the ground. Its heat capacity makes the temperature lag the weather: the balance is solved as a first-order response over the timestep, from the previous step's module temperature and absorbed sunlight (3), iterated ten times because the heat-loss coefficients depend on the module temperature. The wind at the module's 5 m height comes from the weather file's wind, taken as measured at 9.144 m, by a power law (1); the sky temperature follows the ambient temperature (2). A dark timestep returns the ambient temperature, and the next lit step starts the module from there with no stored sunlight. The irradiance is the plane irradiance after near shading, before soiling and before the glass-reflection step (in the PVWatts version 5 implementation soiling is a DC loss). Values the model fills in: the installed nominal operating cell temperature is not an input; it is 45 °C, or 49 °C on rooftop racking, as PVWatts version 5 sets it from the array type. The convection coefficients at that temperature fix the ratio of total to top-side convection and the ground temperature ratio used at every step, and the heat capacity is raised above an installed NOCT of 48 °C (Settings).
Settings
| Setting | Value |
|---|---|
| Installed nominal operating cell temperature | 45 °C; 49 °C on rooftop racking |
| Absorptivity | 0.83 |
| Emissivity | 0.84 |
| Hydraulic length of the module | 0.5 m |
| Heat capacity | 11 000 J/(m²·K), × (1 + (T_NOCT − 321.15 K)/12 K) above 48 °C |
| Module height; height of the file's wind | 5 m; 9.144 m |
| Iterations per timestep | 10 |
| Module temperature before the first step | 20 °C |
The math
- Wind at module height
- Sky temperature
- Module temperature over the timestep
where
| Symbol | Meaning | Unit |
|---|---|---|
| the wind speed at the module | m/s | |
| the wind speed | m/s | |
| the sky temperature | K | |
| the ambient temperature | K | |
| the module temperature at the end of the timestep | K | |
| the module temperature of the previous timestep | K | |
| the convection coefficient, free and forced | W/(m²·K) | |
| the radiation coefficient to the sky | W/(m²·K) | |
| the radiation coefficient to the ground | W/(m²·K) | |
| the ground temperature, between the ambient and the module temperature | K | |
| the absorbed irradiance, 0.83 times the plane irradiance | W/m² | |
| the absorbed irradiance of the previous timestep | W/m² | |
| the timestep length | h | |
| the module's heat capacity per unit area | J/(m²·K) |
References
- Fuentes 1987, A Simplified Thermal Model for Flat-Plate Photovoltaic Arrays, Sandia report SAND85-0330
- Dobos 2014, PVWatts Version 5 Manual, NREL/TP-6A20-62641
- NREL SAM Simulation Core (SSC) source code, develop branch read 2026-09-29, github.com/NatLabRockies/ssc: shared/lib_pvwatts.cpp, pvwatts_celltemp; ssc/cmod_pvwattsv5.cpp, the installed NOCT of each array type and the 5 m module height
- pvlib-python 0.16.1 source code (github.com/pvlib/pvlib-python), reference implementation: pvlib/temperature.py, sapm_cell() and fuentes()
API
thermal.model = fuentes
Symbols follow the symbol registry.