@@ -105,62 +105,69 @@ def size_electrical_parameters(
105
105
module_power = 0
106
106
module_vmp = 0
107
107
module_voc = 0
108
- match module_model :
109
- case 0 :
110
- ref = int (model .SimpleEfficiencyModuleModel .spe_reference )
111
- eff_list = [model .SimpleEfficiencyModuleModel .spe_eff0 , model .SimpleEfficiencyModuleModel .spe_eff1 , model .SimpleEfficiencyModuleModel .spe_eff2 , model .SimpleEfficiencyModuleModel .spe_eff3 , model .SimpleEfficiencyModuleModel .spe_eff4 ]
112
- rad_list = [model .SimpleEfficiencyModuleModel .spe_rad0 , model .SimpleEfficiencyModuleModel .spe_rad1 , model .SimpleEfficiencyModuleModel .spe_rad2 , model .SimpleEfficiencyModuleModel .spe_rad3 , model .SimpleEfficiencyModuleModel .spe_rad4 ]
113
- eff = eff_list [ref ]
114
- rad = rad_list [ref ]
115
- area = model .SimpleEfficiencyModuleModel .spe_area
116
- module_power = eff / 100.0 * rad * area #Wdc
117
- module_vmp = model .SimpleEfficiencyModuleModel .spe_vmp
118
- module_voc = model .SimpleEfficiencyModuleModel .spe_voc
119
- case 1 :
120
- module_power = model .CECPerformanceModelWithModuleDatabase .cec_v_mp_ref * model .CECPerformanceModelWithModuleDatabase .cec_i_mp_ref
121
- module_vmp = model .CECPerformanceModelWithModuleDatabase .cec_v_mp_ref
122
- module_voc = model .CECPerformanceModelWithModuleDatabase .cec_v_oc_ref
123
- case 2 :
124
- module_vmp = model .CECPerformanceModelWithUserEnteredSpecifications .sixpar_vmp
125
- module_voc = model .CECPerformanceModelWithUserEnteredSpecifications .sixpar_voc
126
- module_power = module_vmp * model .CECPerformanceModelWithUserEnteredSpecifications .sixpar_imp
127
- case 3 :
128
- print ('This function does not currently work for the Sandia Array Performance Model' )
129
- '''
130
- module_power = model.SandiaPVArrayPerformanceModelWithModuleDatabase.snl_ref_pmp
131
- module_vmp = model.SandiaPVArrayPerformanceModelWithModuleDatabase.snl_ref_vmp
132
- module_voc = model.SandiaPVArrayPerformanceModelWithModuleDatabase.snl_ref_voc
133
- '''
134
- case 4 :
135
- module_vmp = model .IEC61853SingleDiodeModel .sd11par_Vmp0
136
- module_voc = model .IEC61853SingleDiodeModel .sd11par_Voc0
137
- module_power = module_vmp * model .IEC61853SingleDiodeModel .sd11par_Imp0
138
- case 5 :
139
- module_vmp = model .MermoudLejeuneSingleDiodeModel .mlm_V_mp_ref
140
- module_voc = model .MermoudLejeuneSingleDiodeModel .mlm_V_oc_ref
141
- module_power = module_vmp * model .MermoudLejeuneSingleDiodeModel .mlm_I_mp_ref
108
+
109
+ if (module_model == 0 ):
110
+ ref = int (model .SimpleEfficiencyModuleModel .spe_reference )
111
+ eff_list = [model .SimpleEfficiencyModuleModel .spe_eff0 , model .SimpleEfficiencyModuleModel .spe_eff1 , model .SimpleEfficiencyModuleModel .spe_eff2 , model .SimpleEfficiencyModuleModel .spe_eff3 , model .SimpleEfficiencyModuleModel .spe_eff4 ]
112
+ rad_list = [model .SimpleEfficiencyModuleModel .spe_rad0 , model .SimpleEfficiencyModuleModel .spe_rad1 , model .SimpleEfficiencyModuleModel .spe_rad2 , model .SimpleEfficiencyModuleModel .spe_rad3 , model .SimpleEfficiencyModuleModel .spe_rad4 ]
113
+ eff = eff_list [ref ]
114
+ rad = rad_list [ref ]
115
+ area = model .SimpleEfficiencyModuleModel .spe_area
116
+ module_power = eff / 100.0 * rad * area #Wdc
117
+ module_vmp = model .SimpleEfficiencyModuleModel .spe_vmp
118
+ module_voc = model .SimpleEfficiencyModuleModel .spe_voc
119
+ elif (module_model == 1 ):
120
+ module_power = model .CECPerformanceModelWithModuleDatabase .cec_v_mp_ref * model .CECPerformanceModelWithModuleDatabase .cec_i_mp_ref
121
+ module_vmp = model .CECPerformanceModelWithModuleDatabase .cec_v_mp_ref
122
+ module_voc = model .CECPerformanceModelWithModuleDatabase .cec_v_oc_ref
123
+ elif (module_model == 2 ):
124
+ module_vmp = model .CECPerformanceModelWithUserEnteredSpecifications .sixpar_vmp
125
+ module_voc = model .CECPerformanceModelWithUserEnteredSpecifications .sixpar_voc
126
+ module_power = module_vmp * model .CECPerformanceModelWithUserEnteredSpecifications .sixpar_imp
127
+ elif (module_model == 3 ):
128
+ print ('This function does not currently work for the Sandia Array Performance Model' )
129
+ '''
130
+ module_power = model.SandiaPVArrayPerformanceModelWithModuleDatabase.snl_ref_pmp
131
+ module_vmp = model.SandiaPVArrayPerformanceModelWithModuleDatabase.snl_ref_vmp
132
+ module_voc = model.SandiaPVArrayPerformanceModelWithModuleDatabase.snl_ref_voc
133
+ '''
134
+ return
135
+ elif (module_model == 4 ):
136
+ module_vmp = model .IEC61853SingleDiodeModel .sd11par_Vmp0
137
+ module_voc = model .IEC61853SingleDiodeModel .sd11par_Voc0
138
+ module_power = module_vmp * model .IEC61853SingleDiodeModel .sd11par_Imp0
139
+ elif (module_model == 5 ):
140
+ module_vmp = model .MermoudLejeuneSingleDiodeModel .mlm_V_mp_ref
141
+ module_voc = model .MermoudLejeuneSingleDiodeModel .mlm_V_oc_ref
142
+ module_power = module_vmp * model .MermoudLejeuneSingleDiodeModel .mlm_I_mp_ref
143
+ else :
144
+ print ('The module model is not recognized. Please use a valid module model.' )
145
+ return
142
146
143
147
inverter_model = model .Inverter .inverter_model
144
148
inv_power = 0
145
149
vdcmax_inv = 0
146
150
v_mppt_max = 0
147
151
v_mppt_min = 0
148
- match inverter_model :
149
- case 0 :
150
- inv_power = model .InverterCECDatabase .inv_snl_paco
151
- vdcmax_inv = model .InverterCECDatabase .inv_snl_vdcmax
152
- case 1 :
153
- inv_power = model .InverterDatasheet .inv_ds_paco
154
- vdcmax_inv = model .InverterDatasheet .inv_ds_vdcmax
155
- case 2 :
156
- inv_power = model .InverterPartLoadCurve .inv_pd_paco
157
- vdcmax_inv = model .InverterPartLoadCurve .inv_pd_vdcmax
158
- case 3 :
159
- inv_power = model .InverterCECCoefficientGenerator .inv_cec_cg_paco
160
- vdcmax_inv = model .InverterCECCoefficientGenerator .inv_cec_cg_vdcmax
161
- case 4 :
162
- inv_power = model .InverterMermoudLejeuneModel .ond_PMaxOUT
163
- vdcmax_inv = model .InverterMermoudLejeuneModel .ond_VAbsMax
152
+
153
+ if (inverter_model == 0 ):
154
+ inv_power = model .InverterCECDatabase .inv_snl_paco
155
+ vdcmax_inv = model .InverterCECDatabase .inv_snl_vdcmax
156
+ elif (inverter_model == 1 ):
157
+ inv_power = model .InverterDatasheet .inv_ds_paco
158
+ vdcmax_inv = model .InverterDatasheet .inv_ds_vdcmax
159
+ elif (inverter_model == 1 ):
160
+ inv_power = model .InverterPartLoadCurve .inv_pd_paco
161
+ vdcmax_inv = model .InverterPartLoadCurve .inv_pd_vdcmax
162
+ elif (inverter_model == 1 ):
163
+ inv_power = model .InverterCECCoefficientGenerator .inv_cec_cg_paco
164
+ vdcmax_inv = model .InverterCECCoefficientGenerator .inv_cec_cg_vdcmax
165
+ elif (inverter_model == 1 ):
166
+ inv_power = model .InverterMermoudLejeuneModel .ond_PMaxOUT
167
+ vdcmax_inv = model .InverterMermoudLejeuneModel .ond_VAbsMax
168
+ else :
169
+ print ('The inverter model is not recognized. Please use a valid inverter model.' )
170
+ return
164
171
165
172
if vdcmax_inverter is not None :
166
173
vdcmax_inv = vdcmax_inverter
0 commit comments