Exemplo n.º 1
0
def jensen_windrose(layout_file, windrose_file):

    layout_x, layout_y = read_layout(layout_file)
    wind_direction, wind_speed, wind_frequency = read_windrose(windrose_file)
    efficiency = []
    profit = []
    summation = 0.0
    nt = len(layout_y)
    P = []
    U = []

    efficiency_proportion = []

    for wind in range(len(wind_direction)):
        U0 = wind_speed[wind]  # Free stream wind speed
        angle = wind_direction[wind]
        # angle2 = - 270.0 - angle  # To read windroses where N is 0 and E is 90

        U.append(jensen_1angle(layout_x, layout_y, U0, angle, rotor_radius=40.0, k=0.04))
        P.append([power(u) for u in U[-1]])

        # Farm efficiency
        profit.append(sum(P[-1]))
        efficiency.append(profit[-1] * 100.0 / (float(nt) * max(P[-1])))  # same as using U0
        efficiency_proportion.append(efficiency[-1] * wind_frequency[wind] / 100.0)
        summation += efficiency_proportion[wind]

    # print profit
    # print efficiency
    # print efficiency_proportion
    # print U
    # print P

    return profit
def jensen_windrose(layout_file, windrose_file):

    layout_x, layout_y = read_layout(layout_file)
    wind_direction, wind_speed, wind_frequency = read_windrose(windrose_file)
    efficiency = []
    profit = []
    summation = 0.0
    nt = len(layout_y)
    P = []
    U = []

    efficiency_proportion = []

    for wind in range(len(wind_direction)):
        U0 = wind_speed[wind]  # Free stream wind speed
        angle = wind_direction[wind]
        # angle2 = - 270.0 - angle  # To read windroses where N is 0 and E is 90

        U.append(jensen_1angle(layout_x, layout_y, U0, angle, rotor_radius=40.0, k=0.04))
        P.append([power(u) for u in U[-1]])

        # Farm efficiency
        profit.append(sum(P[-1]))
        efficiency.append(profit[-1] * 100.0 / (float(nt) * max(P[-1])))  # same as using U0
        efficiency_proportion.append(efficiency[-1] * wind_frequency[wind] / 100.0)
        summation += efficiency_proportion[wind]

    # print profit
    # print efficiency
    # print efficiency_proportion
    # print U
    # print P

    return profit
Exemplo n.º 3
0
    def solve_nonlinear(self, params, unknowns, resids):

        layout_x = params['layout_x']
        layout_y = params['layout_y']
        wind_direction = params['windrose_direction']
        wind_speed = params['windrose_speed']
        wind_frequency = params['windrose_probability']

        efficiency = []
        profit = []
        summation = 0.0
        nt = len(layout_y)
        P = []
        U = []

        efficiency_proportion = []

        for wind in range(len(wind_direction)):
            U0 = wind_speed[wind]  # Free stream wind speed
            angle = wind_direction[wind]
            # angle2 = - 270.0 - angle  # To read windroses where N is 0 and E is 90

            U.append(
                jensen_1angle(layout_x,
                              layout_y,
                              U0,
                              angle,
                              rotor_radius=40.0,
                              k=0.04))
            P.append([power(u) for u in U[-1]])

            # Farm efficiency
            profit.append(sum(P[-1]))
            efficiency.append(profit[-1] * 100.0 /
                              (float(nt) * max(P[-1])))  # same as using U0
            efficiency_proportion.append(efficiency[-1] *
                                         wind_frequency[wind] / 100.0)
            summation += efficiency_proportion[wind]

        # print profit
        # print efficiency
        # print efficiency_proportion
        # print U
        # print P

        unknowns['array_efficiency'] = summation
    def solve_nonlinear(self, params, unknowns, resids):

        layout_x = params['layout_x']
        layout_y = params['layout_y']
        wind_direction = params['windrose_direction']
        wind_speed = params['windrose_speed']
        wind_frequency = params['windrose_probability']

        efficiency = []
        profit = []
        summation = 0.0
        nt = len(layout_y)
        P = []
        U = []

        efficiency_proportion = []

        for wind in range(len(wind_direction)):
            U0 = wind_speed[wind]  # Free stream wind speed
            angle = wind_direction[wind]
            # angle2 = - 270.0 - angle  # To read windroses where N is 0 and E is 90

            U.append(jensen_1angle(layout_x, layout_y, U0, angle, rotor_radius=40.0, k=0.04))
            P.append([power(u) for u in U[-1]])

            # Farm efficiency
            profit.append(sum(P[-1]))
            efficiency.append(profit[-1] * 100.0 / (float(nt) * max(P[-1])))  # same as using U0
            efficiency_proportion.append(efficiency[-1] * wind_frequency[wind] / 100.0)
            summation += efficiency_proportion[wind]

        # print profit
        # print efficiency
        # print efficiency_proportion
        # print U
        # print P

        unknowns['array_efficiency'] = summation