Class: PvTemperature
- Inherits:
-
Object
- Object
- PvTemperature
- Includes:
- CalculationHelper
- Defined in:
- lib/PVLIB_Ruby/pv_temperature.rb
Overview
This class calculates cell and module temperatures using Sandia PV Array Performance Model, which is based on: King, D. et al, 2004, “Sandia Photovoltaic Array Performance Model”, SAND Report 3535, Sandia National Laboratories, Albuquerque, NM
Instance Method Summary collapse
- #cell_temperature ⇒ Object
-
#initialize(pv_module, solar_irradiance_incident_on_module_surface, reference_solar_irradiance, wind_speed, air_temperature) ⇒ PvTemperature
constructor
A new instance of PvTemperature.
- #module_temperature ⇒ Object
Methods included from CalculationHelper
#bigdecimal_acos, #bigdecimal_asin, #bigdecimal_atan2, #bigdecimal_cos, #bigdecimal_exp, #bigdecimal_sin, #bigdecimal_sqrt, #bigdecimal_tan, #degree_to_radian, #radian_to_degree
Constructor Details
#initialize(pv_module, solar_irradiance_incident_on_module_surface, reference_solar_irradiance, wind_speed, air_temperature) ⇒ PvTemperature
Returns a new instance of PvTemperature.
8 9 10 11 12 13 14 |
# File 'lib/PVLIB_Ruby/pv_temperature.rb', line 8 def initialize(pv_module, solar_irradiance_incident_on_module_surface, reference_solar_irradiance, wind_speed, air_temperature) @pv_module = pv_module @solar_irradiance_incident_on_module_surface = solar_irradiance_incident_on_module_surface @reference_solar_irradiance = reference_solar_irradiance @wind_speed = wind_speed @air_temperature = air_temperature end |
Instance Method Details
#cell_temperature ⇒ Object
16 17 18 19 |
# File 'lib/PVLIB_Ruby/pv_temperature.rb', line 16 def cell_temperature module_temperature + (@solar_irradiance_incident_on_module_surface / @reference_solar_irradiance) * @pv_module.cell_module_back_surface_temperature_difference end |
#module_temperature ⇒ Object
21 22 23 24 |
# File 'lib/PVLIB_Ruby/pv_temperature.rb', line 21 def module_temperature back_surface_module_temperature = @solar_irradiance_incident_on_module_surface * bigdecimal_exp(@pv_module.temperature_upper_limit_coefficient + @pv_module.wind_speed_decrease_rate_coefficient * @wind_speed) + @air_temperature end |