Пример #1
0
    def wt_init(self, wt, wt_type):
        self.name = wt['name']
        self.turbine_type = wt['turbine_type']
        self.position = wt['position']
        self.type = wt_type['name']
        self.H = wt_type['hub_height']
        self.R = wt_type['rotor_diameter'] / 2.0

        if 'c_t_idle' in wt:
            self.CT_idle = wt_type['c_t_idle']
        else:
            self.CT_idle = 0.056

        self.power_factor = 1000.0 # <- Juan Pablo is using W as a basis to define power

        self.pc = np.array(wt_type['power_curve'])
        self.ctc = np.array(wt_type['c_t_curve'])

        self.u_cutin = wt_type['cut_in_wind_speed']
        self.u_cutout = wt_type['cut_out_wind_speed']
        self.P_rated = wt_type['rated_power'] * self.power_factor

        self.PCI = interpolator(self.pc[:,0], self.pc[:,1]*self.power_factor)
        self.CTCI = interpolator(self.ctc[:,0], self.ctc[:,1])

        index = np.nonzero(self.pc[:,1]*self.power_factor==self.P_rated)[0][0]
        self.PCI_u = interpolator(self.pc[:index+1,1] * self.power_factor, self.pc[:index+1,0])
        self.u_rated = wt_type['rated_wind_speed']
        self.refCurvesArray = np.vstack([self.pc[:,0].T,
                                         self.pc[:,1].T*self.power_factor,
                                         self.CTCI(self.pc[:,0].T)]).T
Пример #2
0
    def wt_init(self, wt, wt_type):
        self.name = wt['name']
        self.turbine_type = wt['turbine_type']
        self.position = wt['position']
        self.type = wt_type['name']
        self.H = wt_type['hub_height']
        self.R = wt_type['rotor_diameter'] / 2.0

        if 'c_t_idle' in wt:
            self.CT_idle = wt_type['c_t_idle']
        else:
            self.CT_idle = 0.056

        self.power_factor = 1000.0  # <- Juan Pablo is using W as a basis to define power

        self.pc = np.array(wt_type['power_curve'])
        self.ctc = np.array(wt_type['c_t_curve'])

        self.u_cutin = wt_type['cut_in_wind_speed']
        self.u_cutout = wt_type['cut_out_wind_speed']
        self.P_rated = wt_type['rated_power'] * self.power_factor

        self.PCI = interpolator(self.pc[:, 0],
                                self.pc[:, 1] * self.power_factor)
        self.CTCI = interpolator(self.ctc[:, 0], self.ctc[:, 1])

        index = np.nonzero(self.pc[:, 1] *
                           self.power_factor == self.P_rated)[0][0]
        self.PCI_u = interpolator(self.pc[:index + 1, 1] * self.power_factor,
                                  self.pc[:index + 1, 0])
        self.u_rated = wt_type['rated_wind_speed']
        self.refCurvesArray = np.vstack([
            self.pc[:, 0].T, self.pc[:, 1].T * self.power_factor,
            self.CTCI(self.pc[:, 0].T)
        ]).T
Пример #3
0
    def wt_init(self):
        self.ref_u = self.refCurvesArray[:, 0]
        self.ref_P = self.refCurvesArray[:, 1]
        self.ref_CT = self.refCurvesArray[:, 2]
        self.u_cutin = self.ref_u[0]
        self.u_cutout = self.ref_u[-1]
        self.P_rated = np.max(self.ref_P)
        self.PCI = interpolator(self.ref_u, self.ref_P)
        self.CTCI = interpolator(self.ref_u, self.ref_CT)

        index = np.nonzero(self.ref_P == self.P_rated)[0][0]
        self.PCI_u = interpolator(self.ref_P[:index + 1],
                                  self.ref_u[:index + 1])

        self.u_rated = np.float(self.PCI_u(self.P_rated))
Пример #4
0
    def wt_init(self):
        self.ref_u = self.refCurvesArray[:,0]
        self.ref_P = self.refCurvesArray[:,1]
        self.ref_CT = self.refCurvesArray[:,2]
        self.u_cutin = self.ref_u[0]
        self.u_cutout = self.ref_u[-1]
        self.P_rated = np.max(self.ref_P)

        self.PCI = interpolator(self.ref_u, self.ref_P)
        self.CTCI = interpolator(self.ref_u, self.ref_CT)

        index = np.nonzero(self.ref_P==self.P_rated)[0][0]
        self.PCI_u = interpolator(
                     self.ref_P[:index+1],self.ref_u[:index+1])

        self.u_rated = np.float(self.PCI_u(self.P_rated))
Пример #5
0
def interp(φ, Γ, ib, il):
    φn = np.linspace(0, 2 * π, 200)
    vals = Γ[:, ib, il, :]
    Γip = np.zeros([φn.size, 3])

    for i in range(3):
        spl = interpolator(φ, vals[:, i])
        spl.set_smoothing_factor(0.5)
        Γip[:, i] = spl(φn)
    return φn, Γip
Пример #6
0
 def interpolate(self, table):
     sigmas = np.loadtxt(table, dtype=np.double, usecols=(0,))
     inds = np.loadtxt(table, dtype=np.double, usecols=np.arange(1,51, 2)).T
     corrs = np.loadtxt(table, dtype=np.double,usecols=np.arange(2,51, 2)).T
     self.fs = []
     self.indlims = []
     for i, (idx, corr) in enumerate(zip(inds, corrs)):
         f = interpolator(np.column_stack((sigmas, idx)), corr)
         self.fs.append(f)
         self.indlims.append([idx.min(), idx.max()])
     self.siglims = [sigmas.min(), sigmas.max()]
     return
Пример #7
0
 def interpolate(self, table):
     sigmas = np.loadtxt(table, dtype=np.double, usecols=(0, ))
     inds = np.loadtxt(table, dtype=np.double, usecols=np.arange(1, 51,
                                                                 2)).T
     corrs = np.loadtxt(table, dtype=np.double, usecols=np.arange(2, 51,
                                                                  2)).T
     self.fs = []
     self.indlims = []
     for i, (idx, corr) in enumerate(zip(inds, corrs)):
         f = interpolator(np.column_stack((sigmas, idx)), corr)
         self.fs.append(f)
         self.indlims.append([idx.min(), idx.max()])
     self.siglims = [sigmas.min(), sigmas.max()]
     return
Пример #8
0
 def interpolate(self, model_table):
     modeldata = np.loadtxt(model_table, dtype=np.double)
     self.model = interpolator(modeldata[:, :3], modeldata[:, 3:])
Пример #9
0
 def interpolate(self, model_table):
     modeldata = np.loadtxt(model_table, dtype=np.double)
     self.model = interpolator(modeldata[:, :3], modeldata[:, 3:])