pvlib.singlediode.bishop88_v_from_i(current, photocurrent, saturation_current, resistance_series, resistance_shunt, nNsVth, d2mutau=0, NsVbi=inf, breakdown_factor=0.0, breakdown_voltage=- 5.5, breakdown_exp=3.28, method='newton', method_kwargs=None)[source]#

Find voltage given any current.

  • current (numeric) – current (I) in amperes [A]

  • photocurrent (numeric) – photogenerated current (Iph or IL) [A]

  • saturation_current (numeric) – diode dark or saturation current (Io or Isat) [A]

  • resistance_series (numeric) – series resistance (Rs) in [Ohm]

  • resistance_shunt (numeric) – shunt resistance (Rsh) [Ohm]

  • nNsVth (numeric) – product of diode ideality factor (n), number of series cells (Ns), and thermal voltage (Vth = k_b * T / q_e) in volts [V]

  • d2mutau (numeric, default 0) – PVsyst parameter for cadmium-telluride (CdTe) and amorphous-silicon (a-Si) modules that accounts for recombination current in the intrinsic layer. The value is the ratio of intrinsic layer thickness squared \(d^2\) to the diffusion length of charge carriers \(\mu \tau\). [V]

  • NsVbi (numeric, default np.inf) – PVsyst parameter for cadmium-telluride (CdTe) and amorphous-silicon (a-Si) modules that is the product of the PV module number of series cells Ns and the builtin voltage Vbi of the intrinsic layer. [V].

  • breakdown_factor (float, default 0) – fraction of ohmic current involved in avalanche breakdown \(a\). Default of 0 excludes the reverse bias term from the model. [unitless]

  • breakdown_voltage (float, default -5.5) – reverse breakdown voltage of the photovoltaic junction \(V_{br}\) [V]

  • breakdown_exp (float, default 3.28) – avalanche breakdown exponent \(m\) [unitless]

  • method (str, default 'newton') – Either 'newton' or 'brentq'. ‘’method’’ must be 'newton' if breakdown_factor is not 0.

  • method_kwargs (dict, optional) – Keyword arguments passed to root finder method. See scipy.optimize.brentq() and scipy.optimize.newton() parameters. 'full_output': True is allowed, and optimizer_output would be returned. See examples section.


  • voltage (numeric) – voltage (V) at the specified current (I) in volts [V]

  • optimizer_output (tuple, optional, if specified in method_kwargs) – see root finder documentation for selected method. Found root is diode voltage in 1.


Using the following arguments that may come from any calcparams_.* function in pvlib.pvsystem:

>>> args = {'photocurrent': 1., 'saturation_current': 9e-10, 'nNsVth': 4.,
...         'resistance_series': 4., 'resistance_shunt': 5000.0}

Use default values:

>>> v = bishop88_v_from_i(0.0, **args)

Specify tolerances and maximum number of iterations:

>>> v = bishop88_v_from_i(0.0, **args, method='newton',
...     method_kwargs={'tol': 1e-3, 'rtol': 1e-3, 'maxiter': 20})

Retrieve full output from the root finder:

>>> v, method_output = bishop88_v_from_i(0.0, **args, method='newton',
...     method_kwargs={'full_output': True})



“Computer simulation of the effects of electrical mismatches in photovoltaic cell interconnection circuits” JW Bishop, Solar Cell (1988) DOI: 10.1016/0379-6787(88)90059-2

Examples using pvlib.singlediode.bishop88_v_from_i#

Calculating power loss from partial module shading

Calculating power loss from partial module shading