@@ -706,3 +706,78 @@ def fuentes(poa_global, temp_air, wind_speed, noct_installed, module_height=5,
706
706
sun0 = sun
707
707
708
708
return pd .Series (tmod_array - 273.15 , index = poa_global .index , name = 'tmod' )
709
+
710
+
711
+ def _adj_noct (x ):
712
+ return np .piecewise (x , [x < 0.5 , (x >= 0.5 ) & (x < 1.5 ),
713
+ (x >= 1.5 ) & (x < 2.5 ), (x >= 2.5 ) & (x < 3.5 ),
714
+ x >= 3.5 ], [18. , 11. , 6. , 2. , 0. ])
715
+
716
+
717
+ def noct (poa_global , temp_air , wind_speed , noct , eta_m_ref ,
718
+ effective_irradiance = None , transmittance_absorbtance = 0.9 ,
719
+ array_height = 1 , mount_standoff = 3.5 ):
720
+ '''
721
+ Parameters
722
+ ----------
723
+ poa_global : numeric
724
+ Total incident irradiance. [W/m^2]
725
+
726
+ temp_air : numeric
727
+ Ambient dry bulb temperature. [C]
728
+
729
+ wind_speed : numeric, default 1.0
730
+ Wind speed in m/s measured at the same height for which the wind loss
731
+ factor was determined. The default value 1.0 m/s is the wind
732
+ speed at module height used to determine NOCT. [m/s]
733
+
734
+ noct : numeric
735
+ Nominal operating cell temperature [C], determined at conditions of
736
+ 800 W/m^2 irradiance, 20 C ambient air temperature and 1 m/s wind.
737
+
738
+ effective_irradiance : numeric, default None.
739
+ The irradiance that is converted to photocurrent. If None,
740
+ assumed equal to poa_global. [W/m^2]
741
+
742
+ eta_m_ref : numeric
743
+ Module external efficiency at reference conditions of 1000 W/m^2 and
744
+ 20C. Calculate as P_mp (V_mp x I_mp) divided by 1000 W/m^2. [unitless]
745
+
746
+ transmittance_absorptance : numeric, default 0.9
747
+ Coefficient for combined transmittance and absorptance effects.
748
+ [unitless]
749
+
750
+ array_height : int, default 1
751
+ Height of array above ground in stories (one story is about 3m). Must
752
+ be either 1 or 2. For systems elevated less than one story, use 1.
753
+ If system is elevated more than two stories, use 2. [unitless]
754
+
755
+ mount_standoff : numeric, default 3.5
756
+ Distance between array mounting and mounting surface. Use default
757
+ if system is ground-mounted. [inches]
758
+
759
+ Returns
760
+ -------
761
+ cell_temperature : numeric
762
+ Cell temperature. [C]
763
+
764
+ '''
765
+ if effective_irradiance is None :
766
+ irr_ratio = 1.
767
+ else :
768
+ irr_ratio = effective_irradiance / poa_global
769
+
770
+ if array_height == 1 :
771
+ wind_adj = 0.51 * wind_speed
772
+ elif array_height == 2 :
773
+ wind_adj = 0.61 * wind_speed
774
+ else :
775
+ raise ValueError ()
776
+
777
+ noct_adj = noct + _adj_noct (mount_standoff )
778
+ tau_alpha = transmittance_absorbtance * irr_ratio
779
+
780
+ cell_temp_init = ross (poa_global , temp_air , noct_adj )
781
+ heat_loss = 1 - eta_m_ref / tau_alpha
782
+ wind_loss = 9.5 / (5.7 + 3.8 * wind_adj )
783
+ return cell_temp_init * heat_loss * wind_loss
0 commit comments