Class: PvTemperature

Inherits:
Object
  • Object
show all
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

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_temperatureObject



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_temperatureObject



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