@@ -708,19 +708,23 @@ def fuentes(poa_global, temp_air, wind_speed, noct_installed, module_height=5,
708
708
return pd .Series (tmod_array - 273.15 , index = poa_global .index , name = 'tmod' )
709
709
710
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. ])
711
+ def _adj_for_mounting_standoff (x ):
712
+ # supports noct cell temperature model.
713
+ # the exact division of the range of x into intervals is not specified
714
+ # in the SAM code, except for the last interval x > 3.5.
715
+ return np .piecewise (x , [x <= 0 , (x > 0 ) & (x < 0.5 ),
716
+ (x >= 0.5 ) & (x < 1.5 ), (x >= 1.5 ) & (x < 2.5 ),
717
+ (x >= 2.5 ) & (x <= 3.5 ), x > 3.5 ],
718
+ [0. , 18. , 11. , 6. , 2. , 0. ])
715
719
716
720
717
721
def noct (poa_global , temp_air , wind_speed , noct , eta_m_ref ,
718
722
effective_irradiance = None , transmittance_absorbtance = 0.9 ,
719
- array_height = 1 , mount_standoff = 3.5 ):
723
+ array_height = 1 , mount_standoff = 4 ):
720
724
'''
721
725
Cell temperature model from the System Advisor Model (SAM).
722
726
723
- The model is described in [1], Section 10.6.
727
+ The model is described in [1]_ , Section 10.6.
724
728
725
729
Parameters
726
730
----------
@@ -756,7 +760,7 @@ def noct(poa_global, temp_air, wind_speed, noct, eta_m_ref,
756
760
be either 1 or 2. For systems elevated less than one story, use 1.
757
761
If system is elevated more than two stories, use 2.
758
762
759
- mount_standoff : numeric, default 3.5
763
+ mount_standoff : numeric, default 4
760
764
Distance between array mounting and mounting surface. Use default
761
765
if system is ground-mounted. [inches]
762
766
@@ -790,10 +794,12 @@ def noct(poa_global, temp_air, wind_speed, noct, eta_m_ref,
790
794
raise ValueError (
791
795
f'array_height must be 1 or 2, { array_height } was given' )
792
796
793
- noct_adj = noct + _adj_noct (mount_standoff )
797
+ noct_adj = noct + _adj_for_mounting_standoff (mount_standoff )
794
798
tau_alpha = transmittance_absorbtance * irr_ratio
795
799
796
- cell_temp_init = ross (poa_global , temp_air , noct_adj )
800
+ # [1] Eq. 10.37 isn't clear on exactly what "G" is. SAM SSC code uses
801
+ # poa_global where G appears
802
+ cell_temp_init = poa_global / 800. * (noct_adj - 20. )
797
803
heat_loss = 1 - eta_m_ref / tau_alpha
798
804
wind_loss = 9.5 / (5.7 + 3.8 * wind_adj )
799
- return cell_temp_init * heat_loss * wind_loss
805
+ return temp_air + cell_temp_init * heat_loss * wind_loss
0 commit comments