Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions docs/sphinx/source/whatsnew/v0.12.1.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ Enhancements
:py:func:`~pvlib.iotools.get_nsrdb_psm4_full_disc`,
:py:func:`~pvlib.iotools.read_nsrdb_psm4`, and
:py:func:`~pvlib.iotools.parse_nsrdb_psm4`. (:issue:`2326`, :pull:`2378`)
* Add ``'semi_integrated'`` parameters for the PVsyst temperature model.
(:issue:`2330`, :pull:`2415`)

Documentation
~~~~~~~~~~~~~
Expand Down Expand Up @@ -62,3 +64,4 @@ Contributors
* Will Hobbs (:ghuser:`williamhobbs`)
* Kevin Anderson (:ghuser:`kandersolar`)
* Will Holmgren (:ghuser:`wholmgren`)
* Muhammad Rebaal (:ghuser:`Muhammad-Rebaal`)
8 changes: 6 additions & 2 deletions pvlib/pvsystem.py
Original file line number Diff line number Diff line change
Expand Up @@ -1010,6 +1010,9 @@ def _infer_temperature_model_params(self):
elif 'insulated' in param_set: # after SAPM to avoid confusing keys
return temperature._temperature_model_params('pvsyst',
'insulated')
elif 'semi_integrated' in param_set:
return temperature._temperature_model_params('pvsyst',
'semi_integrated')
else:
return {}

Expand Down Expand Up @@ -1394,10 +1397,11 @@ class FixedMount(AbstractMount):

racking_model : str, optional
Valid strings are ``'open_rack'``, ``'close_mount'``,
``'insulated_back'``, ``'freestanding'`` and ``'insulated'``.
``'insulated_back'``, ``'freestanding'``, ``'insulated'`` and
``'semi_integrated'``.
Used to identify a parameter set for the SAPM or PVsyst cell
temperature model.
See :py:func:`~pvlib.temperature.sapm_module` and
See :py:func:`~pvlib.temperature.sapm_module` and
:py:func:`~pvlib.temperature.pvsyst_cell` for definitions.

module_height : float, optional
Expand Down
23 changes: 13 additions & 10 deletions pvlib/temperature.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@
'insulated_back_glass_polymer': {'a': -2.81, 'b': -.0455, 'deltaT': 0},
},
'pvsyst': {'freestanding': {'u_c': 29.0, 'u_v': 0},
'insulated': {'u_c': 15.0, 'u_v': 0}}
'insulated': {'u_c': 15.0, 'u_v': 0},
'semi_integrated': {'u_c': 20.0, 'u_v': 0}}
}
"""Dictionary of temperature parameters organized by model.

Expand Down Expand Up @@ -382,19 +383,21 @@ def pvsyst_cell(poa_global, temp_air, wind_speed=1.0, u_c=29.0, u_v=0.0,
air temperature :math:`T_{a}` (C) and wind speed :math:`WS` (m/s). Model
output is cell temperature :math:`T_{C}`. Model parameters depend both on
the module construction and its mounting. Parameters are provided in
[1]_ for open (freestanding) and close (insulated) mounting configurations,
, and are coded for convenience in
[1]_ for open (freestanding), close (insulated), and intermediate
(semi_integrate) mounting configurations, and are coded for convenience in
:data:`~pvlib.temperature.TEMPERATURE_MODEL_PARAMETERS`. The heat loss
factors provided represent the combined effect of convection, radiation and
conduction, and their values are experimentally determined.

+--------------+---------------+---------------+
| Mounting | :math:`U_{c}` | :math:`U_{v}` |
+==============+===============+===============+
| freestanding | 29.0 | 0.0 |
+--------------+---------------+---------------+
| insulated | 15.0 | 0.0 |
+--------------+---------------+---------------+
+-----------------+---------------+---------------+
| Mounting | :math:`U_{c}` | :math:`U_{v}` |
+=================+===============+===============+
| freestanding | 29.0 | 0.0 |
+-----------------+---------------+---------------+
| insulated | 15.0 | 0.0 |
+-----------------+---------------+---------------+
| semi_integrated | 20.0 | 0.0 |
+-----------------+---------------+---------------+

Mounting cases can be described in terms of air flow across and around the
rear-facing surface of the module:
Expand Down
7 changes: 7 additions & 0 deletions tests/test_pvsystem.py
Original file line number Diff line number Diff line change
Expand Up @@ -710,6 +710,13 @@ def test_Array__infer_temperature_model_params():
expected = temperature.TEMPERATURE_MODEL_PARAMETERS[
'pvsyst']['insulated']
assert expected == array._infer_temperature_model_params()
array = pvsystem.Array(mount=FixedMount(0, 180,
racking_model='semi_integrated'),
module_parameters={},
module_type=None)
expected = temperature.TEMPERATURE_MODEL_PARAMETERS[
'pvsyst']['semi_integrated']
assert expected == array._infer_temperature_model_params()


def test_Array__infer_cell_type():
Expand Down