Skip to content

Commit bbf301e

Browse files
kandersolarcwhanseRDaxiniadriesseIoannisSifnaios
authored
Add guidance about temperature modeling to User Guide (#2591)
* create temperature user guide page * Apply suggestions from code review Co-authored-by: Cliff Hansen <[email protected]> * Apply suggestions from code review Co-authored-by: RDaxini <[email protected]> * add mention of parameter conversion with GenericLinearModel * add note about IR * move "other functions" up to below the table * fix spelling * Apply suggestions from code review Co-authored-by: Anton Driesse <[email protected]> * feedback from review Co-Authored-By: Ioannis Sifnaios <[email protected]> * more changes from review * Update docs/sphinx/source/user_guide/modeling_topics/temperature.rst * Update docs/sphinx/source/user_guide/modeling_topics/temperature.rst Co-authored-by: Echedey Luis <[email protected]> * split paragraph --------- Co-authored-by: Cliff Hansen <[email protected]> Co-authored-by: RDaxini <[email protected]> Co-authored-by: Anton Driesse <[email protected]> Co-authored-by: Ioannis Sifnaios <[email protected]> Co-authored-by: Echedey Luis <[email protected]>
1 parent 47fde77 commit bbf301e

File tree

3 files changed

+109
-0
lines changed

3 files changed

+109
-0
lines changed

docs/sphinx/source/user_guide/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ This user guide is an overview and explains some of the key features of pvlib.
2626
modeling_topics/clearsky
2727
modeling_topics/weather_data
2828
modeling_topics/singlediode
29+
modeling_topics/temperature
2930

3031
.. toctree::
3132
:maxdepth: 2
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
.. _temperature:
2+
3+
Temperature models
4+
==================
5+
6+
pvlib provides a variety of models for predicting the operating temperature
7+
of a PV module from irradiance and weather inputs. These models range from
8+
simple empirical equations requiring just a few multiplications to more complex
9+
thermal balance models with numerical integration.
10+
11+
Types of models
12+
---------------
13+
14+
Temperature models predict one of two quantities:
15+
16+
- *module temperature*: the temperature as measured at the back surface
17+
of a PV module. Easy to measure, but usually marginally less
18+
than the cell temperature which determines efficiency.
19+
- *cell temperature*: the temperature of the PV cell itself. The relevant
20+
temperature for PV modeling, but almost never measured directly.
21+
22+
Temperature models estimate these quantities using inputs like incident
23+
irradiance, ambient temperature, and wind speed. Each model also takes
24+
a set of parameter values that represent how a PV module responds to
25+
those inputs.
26+
27+
Parameter values generally depend on both the PV
28+
module technologies, the mounting configuration of the module,
29+
and on any weather parameters that are not included in the model.
30+
Note that, despite models conventionally being associated with either
31+
cell or module temperature, it is actually the parameter values that determine
32+
which of the two temperatures are predicted, as they will produce the same
33+
type of temperature from which they were originally derived.
34+
35+
Another aspect of temperature models is whether they account for
36+
the thermal inertia of a PV module. Temperature models are either:
37+
38+
- *steady-state*: the module is assumed to have been at the specified operating
39+
conditions for a sufficiently long time for its temperature to reach
40+
equilibrium.
41+
- *transient*: the module's thermal inertia is included in the model,
42+
causing a lag in modeled temperature change following changes in the inputs.
43+
44+
Other effects that temperature models may consider include the
45+
photoconversion efficiency and radiative cooling.
46+
47+
The temperature models currently available in pvlib are summarized in the
48+
following table:
49+
50+
+----------------------------------------------+--------+------------+---------------------------------------------------------------------------+
51+
| Model | Type | Transient? | Weather inputs |
52+
| | | +----------------+---------------------+------------+-----------------------+
53+
| | | | POA irradiance | Ambient temperature | Wind speed | Downwelling IR [#f1]_ |
54+
+==============================================+========+============+================+=====================+============+=======================+
55+
| :py:func:`~pvlib.temperature.faiman` | either | |||| |
56+
+----------------------------------------------+--------+------------+----------------+---------------------+------------+-----------------------+
57+
| :py:func:`~pvlib.temperature.faiman_rad` | either | |||||
58+
+----------------------------------------------+--------+------------+----------------+---------------------+------------+-----------------------+
59+
| :py:func:`~pvlib.temperature.fuentes` | either ||||| |
60+
+----------------------------------------------+--------+------------+----------------+---------------------+------------+-----------------------+
61+
| :py:func:`~pvlib.temperature.generic_linear` | either | |||| |
62+
+----------------------------------------------+--------+------------+----------------+---------------------+------------+-----------------------+
63+
| :py:func:`~pvlib.temperature.noct_sam` | cell | |||| |
64+
+----------------------------------------------+--------+------------+----------------+---------------------+------------+-----------------------+
65+
| :py:func:`~pvlib.temperature.pvsyst_cell` | cell | |||| |
66+
+----------------------------------------------+--------+------------+----------------+---------------------+------------+-----------------------+
67+
| :py:func:`~pvlib.temperature.ross` | cell | ||| | |
68+
+----------------------------------------------+--------+------------+----------------+---------------------+------------+-----------------------+
69+
| :py:func:`~pvlib.temperature.sapm_cell` | cell | |||| |
70+
+----------------------------------------------+--------+------------+----------------+---------------------+------------+-----------------------+
71+
| :py:func:`~pvlib.temperature.sapm_module` | module | |||| |
72+
+----------------------------------------------+--------+------------+----------------+---------------------+------------+-----------------------+
73+
74+
.. [#f1] Downwelling infrared radiation.
75+
76+
In addition to the core models above, pvlib provides several other functions
77+
for temperature modeling:
78+
79+
- :py:func:`~pvlib.temperature.prilliman`: an "add-on" model that reprocesses
80+
the output of a steady-state model to apply transient effects.
81+
- :py:func:`~pvlib.temperature.sapm_cell_from_module`: a model for
82+
estimating cell temperature from module temperature.
83+
84+
85+
Model parameters
86+
----------------
87+
88+
Some temperature model functions provide default values for their parameters,
89+
and several additional sets of temperature model parameter values are
90+
available in :py:data:`pvlib.temperature.TEMPERATURE_MODEL_PARAMETERS`.
91+
However, these generic values may not be suitable for all modules and mounting
92+
configurations. It should be noted that using the default parameter values for each
93+
model generally leads to different modules temperature predictions. This alone
94+
does not mean one model is better than another; it's just evidence that the measurements
95+
used to derive the default parameter values were taken on different PV systems in different
96+
locations under different conditions.
97+
98+
Parameter values for one model (e.g. ``u0``, ``u1`` for :py:func:`~pvlib.temperature.faiman`)
99+
can be converted to another model (e.g. ``u_c``, ``u_v`` for :py:func:`~pvlib.temperature.pvsyst_cell`)
100+
using :py:class:`~pvlib.temperature.GenericLinearModel`.
101+
102+
Module-specific values can be obtained via testing, for example following
103+
the IEC 61853-2 standard for the Faiman model; however, such values still do not capture
104+
the dependency of temperature on system design and other variables.
105+
106+
Currently, pvlib provides no functionality for fitting parameter values
107+
using measured temperature.

docs/sphinx/source/whatsnew/v0.13.2.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ Enhancements
4646
Documentation
4747
~~~~~~~~~~~~~
4848
* Provide an overview of single-diode modeling functionality in :ref:`singlediode`. (:pull:`2565`)
49+
* Provide an overview of temperature modeling functionality in :ref:`temperature`. (:pull:`2591`)
4950
* Fix typo in parameter name ``atmos_refract`` in :py:func:`pvlib.solarposition.spa_python`
5051
and :py:func:`pvlib.spa.solar_position`. (:issue:`2532`, :pull:`2592`)
5152

0 commit comments

Comments
 (0)