Exemple #1
0
def zero_series_loss_in_period(time, voltages: list, *currents):
    """
    汇流箱在某段时间内的发电量
    :param time: 时间(格式:yyyy-MM-DD HH:mm:ss)列表,若等间隔则为一个float类型,单位:秒
    :param voltages: 数据库查询time时间列表对应的汇流箱总电压列表[#X光伏子阵汇流箱X汇流总电压]
    :param currents: 数据库查询time时间列表对应的汇流箱各路电流列表[#X光伏子阵汇流箱X IX]
    :return: 起始时刻到结束时刻汇流箱的发电量
    -----------------------------------------------------
    参数说明如上所述
    说明:currents为汇流箱的全部电流列表,一路对应一个参数,
          假如有1路,调用则为box_generation_in_period(time, voltages, current1)
          假如有3路,调用则为box_generation_in_period(time, voltages, current1, current2, current3)
          以此类推,currenti为各路电流列表
    触发条件:查询触发
    """
    theta = 0.01
    powers = np.array(voltages) * np.array(currents).sum(axis=0)
    count_normal = 0
    for current in currents:
        if any(current > theta):
            count_normal += 1
    if count_normal == 0:
        return 0
    return calc_generation_in_period(time,
                                     powers) * (len(voltages) / count_normal)
Exemple #2
0
def inverter_generation_in_period(time, powers: list):
    """
    逆变器在某段时间内的发电量
    :param time: 时间(格式:yyyy-MM-DD HH:mm:ss)列表,若等间隔则为一个float类型,单位:秒
    :param powers: 数据库查询time时间列表对应的功率列表[#X光伏子阵X#逆变器输出总有功]
    :return: 开始时刻到结束时刻集电线的总发电量
    -----------------------------------------------------
    参数说明如上所述
    触发条件:查询触发
    """
    return calc_generation_in_period(time, powers)
Exemple #3
0
def gather_power_wire_generation_in_period(time, powers: list):
    """
    集电线在某段时间内的发电量
    :param time: 时间(格式:yyyy-MM-DD HH:mm:ss)列表,若等间隔则为一个float类型,单位:秒
    :param powers: 数据库查询time时间列表对应的功率列表[xxxx华能X线保护测控P]
    :return: 开始时刻到结束时刻集电线的总发电量
    -----------------------------------------------------
    参数说明如上所述
    触发条件:查询触发
    """
    return calc_generation_in_period(time, powers)
Exemple #4
0
def series_generation_in_period(time, voltages: list, currents: list):
    """
    组串在某段时间内的发电量
    :param time: 时间(格式:yyyy-MM-DD HH:mm:ss)列表,若等间隔则为一个float类型,单位:秒
    :param voltages: 数据库查询time时间列表对应的汇流箱总电压列表[#X光伏子阵汇流箱X汇流总电压]
    :param currents: 数据库查询time时间列表对应的汇流箱各路电流列表[#X光伏子阵汇流箱X IX]
    :return: 起始时刻到结束时刻组串的发电量
    -----------------------------------------------------
    参数说明如上所述
    触发条件:查询触发
    """
    powers = np.array(voltages) * np.array(currents)
    return calc_generation_in_period(time, powers)
Exemple #5
0
def box_transformer_generation_in_period(time, powers1: list, powers2: list):
    """
    某段时间方阵发电量
    :param time: 时间(格式:yyyy-MM-DD HH:mm:ss)列表,若等间隔则为一个float类型,单位:秒
    :param powers1: 数据库查询time时间列表对应的功率列表[#X光伏子阵XXA1箱变测控P1]
    :param powers2: 数据库查询time时间列表对应的功率列表[#X光伏子阵XXA1箱变测控P2]
    :return: 开始时刻到结束时刻电站的总发电量
    -----------------------------------------------------
    参数说明如上所述
    触发条件:查询触发
    """
    powers = np.array(powers1) + np.array(powers2)
    return calc_generation_in_period(time, powers)
Exemple #6
0
def main_transformer_generation_in_period(time, powers1: list, powers2: list):
    """
    电站在某段时间内的发电量(利用主变数据计算)
    :param time: 时间(格式:yyyy-MM-DD HH:mm:ss)列表,若等间隔则为一个float类型,单位:秒
    :param powers1: 数据库查询time时间列表对应的功率列表[X号主变高压侧测控P]
    :param powers2: 数据库查询time时间列表对应的功率列表[X号主变高压侧测控P1]
    :return: 开始时刻到结束时刻电站的总发电量
    -----------------------------------------------------
    参数说明如上所述
    触发条件:查询触发
    """
    powers = np.array(powers1) + np.array(powers2)
    return calc_generation_in_period(time, powers)
Exemple #7
0
def inverter_loss_in_period(time, powers_out: list, voltages_in: list,
                            currents_in: list):
    """
    某段时间逆变器损耗
    :param time: 时间(格式:yyyy-MM-DD HH:mm:ss)列表,若等间隔则为一个float类型,单位:秒
    :param powers_out: 数据库查询time时间列表对应的功率列表[#X光伏子阵X#逆变器输出总有功]
    :param voltages_in: 数据库查询time时间列表对应的功率列表[#XX光伏子阵X#逆变器直流输入电流]
    :param currents_in: 数据库查询time时间列表对应的功率列表[#XX光伏子阵X#逆变器直流输入电压]
    :return: 某段时间逆变器损耗
    -----------------------------------------------------
    参数说明如上所述
    触发条件:查询触发
    """
    powers = np.array(voltages_in) @ np.array(currents_in) - np.array(
        powers_out)
    return calc_generation_in_period(time, powers)
Exemple #8
0
def box_generation_in_period(time, voltages: list, *currents):
    """
    汇流箱在某段时间内的发电量
    :param time: 时间(格式:yyyy-MM-DD HH:mm:ss)列表,若等间隔则为一个float类型,单位:秒
    :param voltages: 数据库查询time时间列表对应的汇流箱总电压列表[#X光伏子阵汇流箱X汇流总电压]
    :param currents: 数据库查询time时间列表对应的汇流箱各路电流列表[#X光伏子阵汇流箱X IX]
    :return: 起始时刻到结束时刻汇流箱的发电量
    -----------------------------------------------------
    参数说明如上所述
    说明:currents为汇流箱的全部电流列表,一路对应一个参数,
          假如有1路,调用则为box_generation_in_period(time, voltages, current1)
          假如有3路,调用则为box_generation_in_period(time, voltages, current1, current2, current3)
          以此类推,currenti为各路电流列表
    触发条件:查询触发
    """
    powers = np.array(voltages) * np.array(currents).sum(axis=0)
    return calc_generation_in_period(time, powers)