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
10 changes: 7 additions & 3 deletions docs/sphinx/source/whatsnew/v0.13.1.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,11 @@ Bug fixes

Enhancements
~~~~~~~~~~~~


* Rename parameter name ``aparent_azimuth`` to ``solar_azimuth`` in :py:func:`~pvlib.tracking.singleaxis`.
(:issue:`2479`, :pull:`2480`)
* Add k coefficient in :py:func:`~pvlib.temperature.ross`
(:issue:`2506`, :pull:`2521`)

Documentation
~~~~~~~~~~~~~
* Substantiate definitions of solar/surface azimuth/zenith and aoi on the
Expand Down Expand Up @@ -48,4 +51,5 @@ Contributors
~~~~~~~~~~~~
* Elijah Passmore (:ghuser:`eljpsm`)
* Rajiv Daxini (:ghuser:`RDaxini`)
* Omar Bahamida (:ghuser:`OmarBahamida`)
* Omar Bahamida (:ghuser:`OmarBahamida`)
* Rodrigo Amaro e Silva (:ghuser:`ramaroesilva`)
44 changes: 40 additions & 4 deletions pvlib/temperature.py
Original file line number Diff line number Diff line change
Expand Up @@ -618,7 +618,7 @@ def faiman_rad(poa_global, temp_air, wind_speed=1.0, ir_down=None,
return temp_air + temp_difference


def ross(poa_global, temp_air, noct):
def ross(poa_global, temp_air, noct=None, k=None):
r'''
Calculate cell temperature using the Ross model.

Expand All @@ -638,6 +638,9 @@ def ross(poa_global, temp_air, noct):
noct : numeric
Nominal operating cell temperature [C], determined at conditions of
800 W/m^2 irradiance, 20 C ambient air temperature and 1 m/s wind.
k: numeric
Ross coefficient [Km^2/W], which is an alternative to employing
NOCT in Ross's equation.

Returns
-------
Expand All @@ -650,19 +653,52 @@ def ross(poa_global, temp_air, noct):

.. math::

T_{C} = T_{a} + \frac{NOCT - 20}{80} S
T_{C} = T_{a} + \frac{NOCT - 20}{80} S = T_{a} + k × S

where :math:`S` is the plane of array irradiance in :math:`mW/{cm}^2`.
This function expects irradiance in :math:`W/m^2`.

Representative values for k are provided in [2]_, covering different types
of mounting and module structure.

+---------------------+-----------+
| Mounting | :math:`k` |
+=====================+===========+
| Well cooled | 0.02 |
+---------------------+-----------+
| Free standing | 0.0208 |
+---------------------+-----------+
| Flat on roof | 0.026 |
+---------------------+-----------+
| Not so well cooled | 0.0342 |
+---------------------+-----------+
| Transparent pv | 0.0455 |
+---------------------+-----------+
| Facade integrated | 0.0538 |
+---------------------+-----------+
| On sloped roof | 0.0563 |
+---------------------+-----------+

References
----------
.. [1] Ross, R. G. Jr., (1981). "Design Techniques for Flat-Plate
Photovoltaic Arrays". 15th IEEE Photovoltaic Specialist Conference,
Orlando, FL.
.. [2] E. Skoplaki and J. A. Palyvos, “Operating temperature of
photovoltaic modules: A survey of pertinent correlations,” Renewable
Energy, vol. 34, no. 1, pp. 23–29, Jan. 2009,
:doi:`10.1016/j.renene.2008.04.009`
'''
# factor of 0.1 converts irradiance from W/m2 to mW/cm2
return temp_air + (noct - 20.) / 80. * poa_global * 0.1
if (noct is None) & (k is None):
raise ValueError("Either noct or k need is required.")
elif (noct is not None) & (k is not None):
raise ValueError("Provide only one of noct or k, not both.")
elif k is None:
# factor of 0.1 converts irradiance from W/m2 to mW/cm2
return temp_air + (noct - 20.) / 80. * poa_global * 0.1
elif noct is None:
# k assumes irradiance in W.m-2, dismissing 0.1 factor
return temp_air + k * poa_global


def _fuentes_hconv(tave, windmod, tinoct, temp_delta, xlen, tilt,
Expand Down