Skip to content

Commit ae65605

Browse files
committed
Remove duplicate code in ModelChain
1 parent 678cead commit ae65605

File tree

1 file changed

+8
-35
lines changed

1 file changed

+8
-35
lines changed

pvlib/modelchain.py

Lines changed: 8 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -453,11 +453,11 @@ def sapm(self):
453453

454454
return self
455455

456-
def desoto(self):
456+
def _singlediode(self, calcparams_model_function):
457457
(photocurrent, saturation_current, resistance_series,
458458
resistance_shunt, nNsVth) = (
459-
self.system.calcparams_desoto(self.effective_irradiance,
460-
self.cell_temperature))
459+
calcparams_model_function(self.effective_irradiance,
460+
self.temps['temp_cell']))
461461

462462
self.diode_params = (photocurrent, saturation_current,
463463
resistance_series,
@@ -471,41 +471,14 @@ def desoto(self):
471471

472472
return self
473473

474-
def cec(self):
475-
(photocurrent, saturation_current, resistance_series,
476-
resistance_shunt, nNsVth) = (
477-
self.system.calcparams_cec(self.effective_irradiance,
478-
self.cell_temperature))
479-
480-
self.diode_params = (photocurrent, saturation_current,
481-
resistance_series,
482-
resistance_shunt, nNsVth)
483-
484-
self.dc = self.system.singlediode(
485-
photocurrent, saturation_current, resistance_series,
486-
resistance_shunt, nNsVth)
487-
488-
self.dc = self.system.scale_voltage_current_power(self.dc).fillna(0)
474+
def desoto(self):
475+
return self._singlediode(self.system.calcparams_desoto)
489476

490-
return self
477+
def cec(self):
478+
return self._singlediode(self.system.calcparams_cec)
491479

492480
def pvsyst(self):
493-
(photocurrent, saturation_current, resistance_series,
494-
resistance_shunt, nNsVth) = (
495-
self.system.calcparams_pvsyst(self.effective_irradiance,
496-
self.cell_temperature))
497-
498-
self.diode_params = (photocurrent, saturation_current,
499-
resistance_series,
500-
resistance_shunt, nNsVth)
501-
502-
self.dc = self.system.singlediode(
503-
photocurrent, saturation_current, resistance_series,
504-
resistance_shunt, nNsVth)
505-
506-
self.dc = self.system.scale_voltage_current_power(self.dc).fillna(0)
507-
508-
return self
481+
return self._singlediode(self.system.calcparams_pvsyst)
509482

510483
def singlediode(self):
511484
"""Deprecated"""

0 commit comments

Comments
 (0)