PV Generator API

Module: typhoon.api.pv_generator

This module is used for generating various PV panel settings file (.ipvx) following selected PV models.

Later , this settings file can be used in HIL API and HIL SCADa for initializing appropriate PV panel.

API references section display all methods which you can use.

API references

generate_pv_settings_file(modelType, fileName, parameters)

Generate PV panel settings (.ipvx extension) with specified parameters.

Parameters:
  • modelType (str) – PV model type that will be used for generating settings file.

  • fileName (str) – file name of resulting .ipvx file.

  • parameters (str) – dictionary with parameters.

Supported PV modelType are:
  • 'Detailed' or pv.PV_MODELS[0]

  • 'EN50530 Compatible' or pv.PV_MODELS[1]

  • 'Normalized IV' or pv.PV_MODELS[2]

Depending on used PV model type available parameters are:

  • 'Detailed' model

    Dictionary key

    Meaning

    Value

    “Voc_ref”

    Open-circuit voltage (Voc [V])

    float

    “Isc_ref”

    Short-circuit current (Isc [A])

    float

    “dIsc_dT”

    Temperature coefficient of Isc [%Isc/C]

    float

    “Nc”

    Number of cells

    float

    “dV_dI_ref”

    Curve gradient in Voc_ref point (dV/dI at Voc [V/A])

    float

    “Vg”

    Band gap voltage

    string (“cSi” or “Amorphous Si”)

    “n”

    Curve gradient in Voc_ref point (dV/dI at Voc [V/A])

    float

    “neg_current”

    Allow negative current

    boolean (True or False)

  • 'EN50530 Compatible' model

    Dictionary key

    Meaning

    Value

    “Voc_ref”

    Open-circuit voltage (Voc [V])

    float

    “Isc_ref”

    Short-circuit current (Isc [A])

    float

    “pv_type”

    PV type

    string (“cSi”, “Thin film” or “User defined”)

    “neg_current”

    Allow negative current

    boolean (True or False)

    “user_defined_params”

    User defined technology parameters

    dictionary (can be omitted if “pv_type” != “User defined”)

  • 'IV normalized' model

    Dictionary key

    Meaning

    Value

    “csv_path”

    path to csv file

    str

    In case "User defined" is selected as pv_type additional sub-dictionary parameter ("user_defined_params") should be specified.

    Dictionary key

    Meaning

    Value

    “ff_u”

    Maximal power point to open circuit voltage ratio

    float ( 0.0 < ff_u < 1.0)

    “ff_i”

    Maximal power point to short circuit voltage ratio

    float ( 0.0 < ff_i < 1.0)

    “c_g”

    Technology depending correction factor

    float ( 0.0 < c_g < 1.0)

    “c_v”

    Technology depending correction factor

    float ( 0.0 < c_v < 1.0)

    “c_r”

    Technology depending correction factor

    float ( 0.0 < c_r < 1.0)

    “v_l2h”

    Voltage ratio from UMPP at irradiance of 200 W/m2 to UMPP at an irradiance of 1000 W/m2

    float ( 0.0 < v_l2h < 1.0)

    “alpha”

    Temperature coefficient of the current

    float ( 0.0 < alpha < 1.0)

    “beta”

    Temperature coefficient of the voltage

    float ( -1.0 < beta < 0.0)

Returns:

tuple(status, message)
  • status (bool): True if everything OK otherwise return False

  • message (str): status message

Example:

import typhoon.api.pv_generator as pv

    params = {"Voc_ref": 45.60,
              "Isc_ref": 5.8,
              "dIsc_dT": 0.0004,
              "Nc": 72,
              "dV_dI_ref": -1.1,
              "Vg": "cSi",
              "n" : 1.3,
              "neg_current": False }

    # generate settings file using Detailed type of PV Model
    (status, msg) =  pv.generate_pv_settings_file(pv.PV_MT_DETAILED,
                                                  "./setDet.ipvx",
                                                  params)


    params = {"Voc_ref": 45.60,
              "Isc_ref": 5.8,
              "pv_type": "Thin film",
              "neg_current": False }

    # generate settings file using EN50530 type of PV Model
    (status, msg) =  pv.generate_pv_settings_file(pv.PV_MT_EN50530,
                                                  "./setEN.ipvx",
                                                  params)

    params = {"Voc_ref": 45.60,
              "Isc_ref": 5.8,
              "pv_type": "User defined",
              "neg_current": False,
              "user_defined_params": {
                  "ff_u": 0.72,
                  "ff_i": 0.8,
                  "c_g": 1.252e-3,
                  "c_v": 8.419e-2,
                  "c_r": 1.476e-4,
                  "v_l2h": 0.98,
                  "alpha": 0.0002,
                  "beta": -0.002 }
              }

    # generate settings file using IV normalized type of PV Model
    (status, msg) =  pv.generate_pv_settings_file(pv.IV_Normalized,
                                                  "./setEN.ipvx",
                                                  params)

    params = {"csv_path": "csv_file.csv"}


    # generate settings file using EN50530 type of PV Model with
    # user defined parameters
    (status, msg) =  pv.generate_pv_settings_file(pv.PV_MT_EN50530,
                                                  "./setEN.ipvx",
                                                  params)