6. 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.

6.1. 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)