|
| 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. |
0 commit comments