Что означает вывод gen_coeffs.gen_two_diode в PVMismatch?

#pvlib

#pvlib

Вопрос:

Я не понимаю вывод gen_coeffs.gen_two_diode, который:

 fjac: array([[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
    ... nan, nan, nan, nan, nan, nan, nan, nan]])
         fun: array([-5.00391537e-02, -5.32664899e-02, -5.71223793e-02, -  5.97740265e-02,-6.18808152e-02, -6.36665900e-02...-1.94677609e-07,
    -2.92041963e-07, -3.89423353e-07, -4.86821782e-07, -5.35527386e-07])
        ipvt: array([1, 2, 3, 4], dtype=int32)
    message: 'The cosine of the angle between func(x) and any column of then  Jacobian is at most 0.000000 in absolute value'
      nfev: 1
      njev: 1
      qtf: array([nan, nan, nan, nan])
      status: 4
    success: True
    x: array([-24.51750581, -13.41004545,   0.06324555,   3.16227766])
 

Могу ли я найти нужные мне значения (Isat1, Isat2, Rs и Rs) в этом выводе? или после использования gen_coeffs.gen_two_diode, где я могу найти параметры, необходимые для модели с 2 диодами?

Ответ №1:

Вывод является типичным выводом метода Scipy для решателя. Значения, которые я ищу, находятся в массиве x [-24.51750581, -13.41004545, 0.06324555, 3.16227766]. Но немного зашифрован:

Результат токов насыщения задается как показатель степени функции e, а сопротивление шунта и последовательного сопротивления выражается как среднеквадратичное значение.

 isat1 = np.exp(sol.x[0])
isat2 = np.exp(sol.x[1])
rs = sol.x[2] ** 2.0
rsh = sol.x[3] ** 2.0