**Wind Energy Engineering Toolbox of Mini Codes**

Version 1.01 - Download Form

In conjunction with the development of the Wind Energy Engineering course notes, a number of computer codes have been assembled and made accessible from a simple graphical user interface. In most cases, the codes apply methods that are discussed in the course notes. In some cases the codes embody techniques that are beyond the scope of the notes, but they are included because they might nonetheless be of use to the student or practicing engineer.

The codes were written in Microsoft Visual Basic, Ver. 3.0. They can be used on any Windows XP PC (not Macs, unfortunately). Please note that these codes will not work on Windows 7 (and later) PCs without additional files, the most important of which is the MS Visual Basic runtime dll: https://support.microsoft.com/en-us/kb/180071.

The codes are presented in six main groups:

- Data analysis,
- Data synthesis,
- Rotor aerodynamics,
- Electrical,
- Dynamics, and
- Turbine/System Performance.

The Data Analysis group includes seven codes:

- Statistics of a file,
- Histogram of a file,
- Weibull parameters from a wind file,
- Autocorrelation of a file,
- Crosscorrelation of 2 files,
- Block averaging of a file,
- Power spectral density of a file

The Data Synthesis group includes 6 codes:

- Normally distributed time series generator (using auto regressive moving average)
- Markov process transition probability matrix (TPM) generator,
- Use of Markov process TPM to generate data,
- Hourly wind speed generator (using synthetic TPM), including diurnal scaling,
- Hourly load generator (using synthetic TPM), including diurnal scaling,
- Turbulent wind generator (Shinozuka method)

The Rotor Aerodynamics group includes three codes:

- Optimum rotor design,
- Rotor analysis/linearized method,
- Rotor analysis using blade element momentum theory.

The Electrical group includes three codes:

- Complex arithmetic calculator,
- Induction generator model,
- Synchronous generator model

The Dynamics group includes five codes:

- Vibration of a uniform beam (Euler method),
- Vibration of non-uniform, possibly rotating, beam (Myklestad method),
- Hinge-spring blade rotor flapping dynamics (Eggleston and Stoddard),
- Rotating system dynamics (Holzer),
- Rainflow cycle counting

The Turbine/System Performance group includes six codes:

- Power curve estimation,
- Average power from a turbine (from statistics or data),
- Life cycle costing economics,
- Simple wind/diesel system, with or without storage,
- Battery discharge capacity,
- Noise estimation

### Using the Codes

Use of the codes is largely self-explanatory. Click an option button to choose the code to be used, then click “Do It.” When through using a code click “OK.” To cancel click the cancel button. In many cases the input text boxes already have values in them. These are there for test purposes and can be replaced.

### Description of Codes

Below are summaries of the capabilities of each of the codes. Each summary gives an overview of the purpose and function of the code and describes the form of the inputs and outputs. A brief description of the methods employed underlying algorithms is also included. Finally, some tests for verifying the accuracy codes are discussed.

## Data Analysis

**Statistics of a file**

**Function:** This procedure may be used to find the basic statistical characteristics of a data file. These include mean, standard deviation, maximum, minimum and number of points. Inputs The input is a text file, with one point per line. Outputs The output appears in text boxes on the screen.

**Methods:** The algorithms may be found in any text on basic statistics. They are also discussed, with reference to wind data, in Chapter 2.

**Validation:** Any file of known characteristics can be used as input. The appropriate values will appear in the text boxes. For example, file based of an integral number of sine waves should yield a mean of zero, and standard deviation of 0.707, a maximum of 1 and a minimum of –1.

### Histogram of a file

**Function:** This procedure generates a histogram from a time series data file.

**Inputs:** The input is a text file, with one point per line.

Outputs: The output is normalized to correspond to probabilities. The output is displayed on the screen and may be written to a file.

**Methods:** The methods used are described in Chapter 2.

**Validation:** Select a bin width and create a file for which the number of occurrences in each bin over the range of the file may be readily determined. The output should show the same results.

### Weibull parameters from a wind file

**Function:** This procedure facilitates the calculation of the Weibull c and k parameters from mean and standard deviation of a data set.

**Inputs:** The input is a text file (typically of wind speed data), with one point per line.

**Outputs:** The output values of c and k are displayed on the screen

**Methods:** The methods used are described in Chapter 2.

**Validation:** Hand calculations of the c and k values using techniques of Chapter 2 should give the same results as the code. A probability density function may be generated using the output values and superimposed upon a normalized histogram of the input file. The match should be fairly close.

### Autocorrelation of a file

**Function:** This routine may be used to perform an autocorrelation analysis of time series data. The average is removed from the data before the analysis.

**Inputs:** The input is a text file, with 1 data point per line. The maximum number of lags should be specified.

**Outputs:** The output is written to the screen and a comma delimited text file. The first value on each line is the lag number. The second is the autocorrelation.

**Methods:** The method used is based on the basic definition of the autocorrelation, which is described in detail in Bendat and Piersol (1986) and is summarized in Chapter 2.

**Validation:** A file of known autocorrelation can be generated and used as input. For example, a sine wave with multiple cycles at 20 points per cycle should have an autocorrelation of 1 at 0 lags, –1 at 10 lags, 1.0 at 20 lags, etc.

### Crosscorrelation of two files

**Function:** This routine may be used to perform a crosscorrelation analysis between two time series data files. The averages are removed from the data before the analysis. Crosscorrelation analysis is often used to when comparing wind data taken at two different locations.

**Inputs:** The inputs are two text files, with 1 data point per line. The maximum number of lags need to be specified.

**Outputs: **The output is to the screen or a comma delimited text file. In the case of a file, the output file includes the lag number and crosscorrelation on each line.

**Methods:** The method used is based on the basic definition of the crosscorrelation, which is described in detail in Bendat and Piersol (1986) and in most basic statistics books.

**Validation:** A simple test involves using identical files for both inputs. The results should be the same as the autocorrelation of one of the files.

### Block averaging of a file

**Function:** This procedure is used to block average a data file, thereby increasing the effective averaging time and decreasing the total number of points. For example, a typical application is to reduce a data set of 1 minute averages of wind speed to hourly averages.

**Inputs:** The input is a text file, with one point per line. The original time step and desired time step of the data must be entered on the screen (in the same units).

**Outputs:** The output is text file, with one point per line. The number of points is reduced from that of the original by the ratio of the original time step divided by the desired time step.

**Methods:** The method used relies on the basic arithmetic of averages.

**Validation:** A simple test involves comparing the average of a block averaged output data file with an input file. The averages should be the same. The standard deviation is generally somewhat smaller. Comparing histograms should result in similar histograms, with generally less spread.

### Power spectral density of a file

**Function:** This procedure is used to derive a one sided power spectral density of a time series data set.

**Inputs:** The input data is a text file, with one point per line. There should ideally be 2n points in the file, where n is an integer. Data sets which are not 2n long are truncated to the nearest appropriate value. Two types of “windowing” are available, the rectangle and the Hanning window. Windowing used to reduce the effective of aliasing of the data. The data set may also be broken into shorter segments for analysis. The segment length may be specified on the screen.

**Outputs:** The output is to a comma delimited text file, 2 points per line: frequency and power spectral density (units squared)/frequency unit. The number of lines will be equal to the segment length divided by two.

**Methods: **The algorithms used employ the Fast Fourier Transform method, and conversion of the Fourier Transform to the one side power spectral density. Details are provided in Bendat and Piersol (1986).

**Validation:** A simple test is to generate a sine wave consisting of multiple cycles. A peak should appear at frequencies close to the frequency of the sine wave. The sum of all the psd terms, times the difference between any two frequencies, should equal the variance of the input file.

## Data Synthesis

Auto regressive moving average, normally distributed time series

**Function:** This routine may be used to synthesize a normally distributed time series data set, with an exponentially decreasing autocorrelation.

**Inputs: **The inputs are the number of points, mean of the time series, standard deviation, and the autocorrelation at a lag of 1.

**Outputs:** The output is written to a text file, one point per line.

**Methods:** The algorithm uses a first order autoregressive moving average method, which is described in most statistics text books.

**Validation:** A synthesized file of can be tested with the Statistics of File, the Histogram of a File, and the Autocorrelation. The results should confirm that the file has the desired characteristics.

### Markov process transition probability matrix (TPM) generator

**Function:** This procedure may be used to derive a Markov process Transition Probability Matrix from a data time series. This matrix can then be used (see below) to generate a time series with the same mean, standard deviation, and probability density function as that of the original data. The autocorrelation will be decrease exponentially, but will be close to that of the original data for low lag numbers.

**Inputs:** The input data is a text file, with one point per line. The number of bins, N, into which the data is to be grouped, must be entered on the screen.

**Outputs:** The output is saved to a comma delimited text file, representing a square matrix of size N x N, augmented by a column at the front which specifies the mean of the bin. Subsequent entries in each row indicate the probability of making a transition from the bin corresponding to the row to the bin (bin N) corresponding to the column (bin N-1).

**Methods:** Use of Markov processes with wind speed data are provided in Kaminsky et al (1990) and Manwell et al (1999).

**Validation:** The TPM may be checked indirectly, by first using it to synthesize a data file, as described below. The synthesized file can be tested with the Statistics of File, the Histogram of a File, and the Autocorrelation. The results should confirm that the file has the expected characteristics.

### Use of TPM to generate data

**Function:** This procedure uses a Markov process Transition Probability Matrix to generate time series data

**Inputs:** The input TPM is read from a file, with a matrix format of N x N+1. The format is the same as that of the TPM produced in the previous procedure,

**Outputs:** The output is saved to a text file, one point per line.

**Methods:** Use of Markov processes with wind speed data are provided in Kaminsky et al (1990) and Manwell et al (1999).

**Validation:** The validation method is the same as that described in the previous procedure.

### Hourly wind speed generator (using synthetic TPM), including diurnal scaling

**Function:** This procedure can be used to generate synthetic hourly wind speed data. It uses a Markov process method that results in a time series with a specified mean, standard deviation, probability density function (Rayleigh or Weibull), and autocorrelation. A diurnal sinusoidal variation, starting at a specified hour, may also be imposed.

**Inputs:** The inputs are made on the screen. They include the desired mean, standard deviation, type of probability density function (Rayleigh or Weibull), autocorrelation and corresponding lag. The diurnal characteristics are input by specifying i) the ratio between the maximum diurnal value and the average value and ii) the time of the maximum.

**Outputs:** The output is saved to a file, one point per line.

**Methods:** Use of Markov processes with wind speed data are provided in Kaminsky et al (1990) and Manwell et al (1999).

**Validation:** The method can be tested by first synthesizing a time series. The synthesized file can be tested with the Statistics of File, the Histogram of a File, and the Autocorrelation. The results should confirm that the file has the desired characteristics.

### Hourly load generator (using synthetic TPM), including diurnal scaling

**Function: **This procedure can be used to generate synthetic hourly load data. It uses a Markov process method that results in a time series with a specified mean, standard deviation, probability density function (shifted Rayleigh), and autocorrelation. A diurnal sinusoidal variation, starting at a specified hour, may also be imposed.

**Inputs:** The inputs are made on the screen. They include the desired mean, standard deviation, autocorrelation and corresponding lag. The diurnal characteristics are input by specifying the ratio between the minimum and maximum diurnal average and the time of the maximum.

**Outputs:** The output is saved to a text file, one point per line.

**Methods:** Use of Markov processes with load data is discussed in Manwell et al (1994). A shifted Rayleigh distribution is one whose lowest value is not equal to 0. The mean of the data will be the mean of the non-shifted distribution plus an offset.

**Validation:** The method can be tested by first synthesizing a time series. The synthesized file can be tested with the Statistics of File, the Histogram of a File, and the Autocorrelation. The results should confirm that the file has the desired characteristics.

### Turbulent wind generator (Shinozuka method)

**Function:** This routine is used to generate synthetic turbulent wind speed data, with a specified mean and standard deviation. The power spectral density function for the data approximates the von Karman spectrum

Inputs: The inputs (to the screen) include the desired mean, standard deviation, and integral length scale of the data. The desired number of points, the range of frequencies (as determined by the length of the longest cycle and shortest cycle) and the number of frequencies must also be entered. (Note that when the number of desired points exceeds the number of frequencies, the time series will begin to repeat itself).

Outputs: Output is to a text file, one point per line.

Methods: The Shinozuka method (with no jitter) is used to generate turbulent wind data. It uses the von Karman spectrum as a target. A sine wave is generated at each frequency of the PSD. The sine waves are all scaled by the square root of the psd at that frequency. A random phase angle is used of each sine wave as well. The sum of all the sine waves results in the output. Note that the time series will repeat (alternately with a sine reversal) when the number of frequencies is less than the number of points in the data file being generated. More details on the Shinozuka method are given in Jeffries et al (1991).

Validation: The resulting file can be checked by the Statistics of File and Power Spectral Density Procedures. A graph of the PSD should correspond fairly close to a graph of the von Karman model of the psd. The Autocorrelation will indicate if the time series is repeating.

## Rotor Aerodynamics

**Optimum rotor design**

**Function:** This procedure is used to illustrate an optimum wind turbine of a specified size and tip speed ratio.

**Inputs:** The airfoil lift coefficient at the intended angle attack as well as other basic rotor parameters must be specified. The required rotor parameters are the design tip speed ratio total radius, hub radius, number of blades, and number of sections for the analysis.

**Outputs:** Output is to the screen or a comma delimited text file. In the case of a text file, there are three points per line, corresponding to blade station, chord, and twist.

**Methods:** The methods used are described in Chapter 3.

**Validation:** Applying blade element momentum theory (see next two procedures) to the resulting rotor shape should result in a power coefficient very close to that expected for the corresponding tip speed ratio.

### Rotor analysis/linear method

**Function:** This routine utilizes a linear approximation of the lift curve to estimate the performance of a wind turbine rotor.

**Inputs:** Input may be from a file: fractional radius, chord, twist on each line.

**Outputs:** The output is to a comma delimited text file. It includes the radius, tip loss factor, angle of attack, angle of relative wind, lift coefficient, drag coefficient, axial induction factor, angular induction factor, and local power coefficient.

**Methods:** The methods used are described in Chapter 3.

**Validation:** The output of the linear model should be similar to that of the full rotor model for small angles of attack. The overall power coefficient of an ideal rotor should be close to the values given in Chapter 3 for the corresponding tip speed ratios. Results should be similar to that of the PROPPC code (q.v.) if the entire rotor is unstalled.

### Rotor analysis/full method

**Function:** This procedure is used to analyze a wind turbine rotor. It can use non-linear curves for lift and drag.

**Inputs:** Blade and airfoil data may be from either the screen or a file. The blade data includes fractional radius, chord, twist on each line. The airfoil lift data includes angle of attack and lift coefficient. The airfoil drag data includes angle of attack and drag coefficient.

**Outputs:** Summary outputs displayed on the screen. Detailed results may be printed to a comma delimited text file. It includes the radius, tip loss factor, angle of attack, angle of relative wind, lift coefficient, drag coefficient, axial induction factor, angular induction factor, and local power coefficient.

**Methods:** The methods used are described in Chapter 3. Tip losses are modelled using the de Vries method. A turbulent wake model is also included.

**Validation:** The output of the full model should be similar to that of the simplified one, for small angles of attack. The overall power coefficient of an ideal rotor should be close to the values given in Chapter 3 for the corresponding tip speed ratios. Results should be similar to that of the PROPPC code.

## Electrical

**Complex arithmetic**

**Function:** This procedure can be used to perform complex arithmetic as is useful for analysis of AC power.

**Inputs:** Inputs are made at the screen. They can be in either polar (magnitude/angle) or rectangular form.

**Outputs:** Outputs are in both polar and rectangular form.

**Methods:** The methods are described in Chapter 5.

**Validation:** Calculations from the code should correspond to calculations done by hand, using the definitions given in Chapter 5.

### Induction generator model

**Function:** This procedure is used to analyze an induction generator/motor.

**Inputs:** Inputs are made on the screen. They include the rotor and stator leakage resistances and reactances as well as the mutual inductance. The input parameters are normally obtained from test data or the machine’s manufacturer. For cases where input parameters are not available, an approximate method for estimating them is also included.

**Outputs:** Output is to the screen or to a comma delimited text file. The output includes slip, power in, power out, current, torque, power factor and efficiency. Generated power is assumed to be positive. Windage losses and other mechanical inefficiencies are not included.

**Methods:** The conventional induction machine equivalent circuit model is used as the basis of the analysis. The method is described in Chapter 5.

**Validation:** The program can be checked by comparing it with results from a known case. For example, the results are consistent with those of Example 3.3 in Brown and Hamilton (1984).

### Synchronous generator model

**Function:** This procedure is used to analyze a round rotor synchronous generator. It assumes the presence of an ideal voltage regulator to keep the terminal voltage constant.

**Inputs:** Inputs are made on the screen. Machine parameters include the terminal voltage, the synchronous reactance and the armature resistance. Operating parameters include either the load resistance and reactance or the output kVA and power factor.

**Outputs:** Output is to the screen. The output includes power out, power angle, power factor, internal voltage (voltage per phase times the square root of 3), and current. Windage losses and other mechanical inefficiencies are not included.

**Methods: **The conventional synchronous machine equivalent circuit model, including armature resistance, is used as the basis of the analysis. The method is described in Chapter 5.

**Validation:** The program can be checked by comparing it with results from a known case. For example, the results are consistent with those of Problem 6.9 in Nasar (1981).

## Dynamics

**Vibration of uniform beam (Euler method)**

**Function:** This procedure is used to estimate the natural frequencies of a uniform, vibrating cantilevered beam such as a simplified model of wind turbine blade or free standing tower. It is assumed that the same material is used throughout.

**Inputs:** The inputs (all to the screen) include the length of the beam, the beam’s area moment of inertia, its length density (mass per unit length), and the modulus of elasticity for the material. The range and frequency step for the analysis must also be specified. By clicking on the button calculations for subsequent modes may be made.

**Outputs:** The outputs are to the screen. They include the mode, the natural frequency for the mode, and the term “beta,” which is a parameter used in the calculations. The first natural frequency in the range is shown first. Subsequent ones are shown when “Next Mode” is clicked.

**Methods:** The Euler method, which is described in Chapter 4, is used in these calculations.

**Validation:** The program can be checked by comparing it with results from a known case. For example, the results are consistent with those of Example 7.4-1 in Thomson (1981) when appropriate constants are substituted into the resulting equation.

### Vibration of non-uniform, possibly rotating, beam (Myklestad method)

**Function:** This procedure is used to estimate the natural frequencies of a non-uniform, vibrating cantilevered beam such as a wind turbine blade or free standing tower. It is assumed that the same material is used throughout.

**Inputs:** Data may be input from the screen or a file. In either case, the length of the beam, the beam’s area moment of inertia, its density (mass per unit volume), and the modulus of elasticity for the material must be specified. When using the file input, each line must include three numbers: x/L, area, and moment of inertia. The values in the file should begin at the free end. The input file should be comma delimited. The screen input for a tapered beam is simplified, in that only the width and depth of each end of the beam, together with the number of sections, must be specified. The range and frequency step for the analysis must also be specified. If the beam is rotating, as in the case of a wind turbine blade, the speed of rotation must be entered as well.

**Outputs:** The outputs are to the screen. They include the mode and the natural frequency for the mode. The first natural frequency in the range is shown first. Subsequent ones are shown when “Next Mode” is clicked.

**Methods:** The Myklestad method, which is described in Chapter 4, is used in these calculations.

**Validation:** This code can be checked by making an example equivalent to the one used in the Euler method. The results should be essentially the same, differing only due to approximation error.

### Hinge-spring blade rotor flapping dynamics

**Function:** This procedure analyzes a flapping blade of wind turbine rotor using the simplified model of Eggleston and Stoddard. The method assumes a blade can be considered to be rigid but connected to the hub via a hinge and spring. The effects of wind shear, gravity, cross flow, and yaw rate are considered. Sinusoidal motions are predicted.

**Inputs:** Inputs are made at the screen. The rotor parameters include the number of blades, the rotor radius, the blade chord, the airfoil lift curve slope (radians), the blade pitch angle, the blades non-rotating natural frequency and rotating natural frequency, the blade mass, and the offset of the blade from the rotor’s axis of rotation. Operating inputs include the rotational speed, tip speed ratio, wind shear coefficient, cross flow, yaw rate, and air density.

**Outputs:** The outputs are the magnitude of collective flapping angle, cosine term, and the sine term.

**Methods: **The method used is described in Chapter 4. More details are provided in Eggleston and Stoddard (1987).

**Validation:** The predictions of the code can be validated by comparing them to hand calculations.

### Rotating system dynamics (Holzer)

**Function:** This routine is used to find the natural frequency of a rotating system, such as a wind turbine drive train. The system is assumed to be comprised of lumped inertias, separated by shafts of specified stiffness. Both ends are assumed to be free.

**Inputs:** Input is made on the screen. The user must specify the number of nodes, the inertias of each of them, and the stiffnesses of the connecting shafts. There will always be one fewer stiffness than inertias. The starting frequency, ending frequency, and frequency step of the calculations must also be entered.

**Outputs:** The output is to the screen. The output consists of the mode numbers and natural frequencies for all the modes in the range of the calculations.

**Methods:** Calculation is done via the Holzer method, which is described in Chapter 4.

**Validation:** The program can be checked by comparing it with results from a known case. For example, the results are consistent with those of Example 10.1-1 in Thomson (1981).

### Rainflow cycle counting

**Function:** This routine may be used to perform a cycle counting analysis of time series data. It uses the rainflow method to do so.

**Inputs:** Input is from a text file, one data point per line. The method uses a fixed number (twenty) of bins.

**Outputs:** Output is to the screen. The output includes the bin number, the midpoint of the bin and the number of occurrences.

**Methods:** The algorithms used are discussed briefly in Chapter 6. More details are provided in Downing, S.D. and Socie (1982) and Manwell et al. (1999.) Cycles smaller than 3% of the maximum are ignored.

**Validation:** A simple test consists of generating a file of sine waves, whose cycles can be easily identified. The code should give the same results.

## Turbine/System Performance

**Power curve estimation**

**Function:** This procedure is used to derive a wind turbine power curve from test data. The input data may be block averaged to a longer time step before the analysis is done.

**Inputs:** Input is from 2 files, one for wind speed, the other for power (one data point per line.) The two input files are assumed to have been generated simultaneously, and must have the same averaging time. The block averaging time must be input as well.

**Outputs:** Output is to the screen and to a comma delimited text file. The outputs on each line are: integer wind speed, power.

**Methods:** The method of bins is used. For each pair of wind speed and power data points, the bin number correspond to the integer of the wind speed is found. The power is summed into then bin, then averaged with the other powers in that bin to obtain the average power.

**Validation:** A set of wind speed and power data with a known simple relation can be generated. The code should confirm the relation.

### Average power from a turbine (from statistics or data)

**Function:** This procedure may be used to estimate the average power produced by a wind turbine.

**Inputs:** A wind turbine power curve may be input on the screen or from a data file (1 data point per line.) The wind regime may be characterized by a mean and standard deviation, using a Weibull distribution, or from time series wind data. The wind data may be scaled up or down by scale factor input by the user. The output calculations may be reduced by an “availability” scale factor, which should be equal or less than 1.0. The rated power must also be input. It is used as the basis of the capacity factor calculation.

**Outputs:** The outputs are to the screen. They include the average power, the capacity factor, and the annual energy generated.

**Methods:** The methods used here are described in Chapter 2.

Validation: The method can be validated by using a simple power curve together with constant or simple wind data. The results from the code should be the same as can be obtained by hand.

### Life cycle costing

Function: This procedure performs life cycle costing analysis of a wind energy or hybrid power system. Parameters that may be varied include a variety of system and economic terms.

**Inputs:** Inputs are to the screen. They include:

System installed cost, $

Annual energy generation, kWh/year

Maintenance cost, fraction of system cost per year

Fuel consumed, units/year

Cost of fuel, $/year

Value of energy, $/year

Down payment, fraction of system installed cost

Loan period, years

Economic life, years

Interest rate, fraction/year

Energy inflation rate, fraction/year

General inflation rate, fraction/year

Discount rate, fraction/year

**Outputs:** Outputs are to the screen. They include:

Present value of all costs, $

Levelized cost of energy, $/kWh

Net present value of savings, $

Simple payback period, years

Methods: The algorithm uses a closed form life cycle costing method that assumes interest rates, inflation, etc. are constant over the life of the project. The method is described in Chapter 9.

**Validation:** Simple calculations can be done by hand. The code should give the same results.

### Simple wind/diesel system, with or without storage

**Function:** These procedures allow the performance of a simple wind diesel system to be estimated. The system is comprised of a single wind turbine and a single diesel, possibly with storage. The wind turbine is characterized by a conventional power vs. wind speed curve. The diesel is characterized by a linear fuel vs. power curve. It is assumed that the diesel is off whenever the wind power exceeds the load. There is no diesel minimum power level. Storage may or may not be included. When storage is included it is assumed to be ideal. That is, there are no losses associated with charging and discharging, and there is no limit to the rate of charging or discharging. Short term fluctuations of wind or load are not considered.

**Inputs:** The user must input a wind turbine power curve, either on the screen or with a comma delimited text file. The text file must include a wind speed and corresponding power on each line. For the diesel generator, the user must enter the rated power, the no load fuel consumption, and the full load fuel consumption. The user must then select whether or not storage is to be considered. If storage is to be used, an appropriate amount, in kWh, must be entered. For the no storage case, wind speed and load may be input as either long term average and standard deviations, or hourly time series may be used. For systems with storage, data must be input as time series. If time series are used, the data must be in a text file, with one data point per line. When no time series data are available, synthetic load and wind can be generated using a Markov process method (See Data Synthesis.)

**Outputs:** The outputs are all shown on the screen. They include:

Average wind turbine power, kW

Average diesel power, kW

Average diesel fuel use, fuel units/hr

Average dump load power, kW A

verage unmet load, kW

**Methods: **Calculations for the no-storage case are done using statistical methods, described in Manwell and McGowan (1993). Calculations for the storage case are done using a time series, power balance method. More discussion of modeling wind/diesel and other hybrid power systems is given in Chapter 8.

**Validation:** The wind turbine power calculations may be checked against Average Power from a Wind Turbine procedure. For cases with small wind turbines relative to the load, all the wind turbine power should be used to reduce the load on the diesels, so the diesel power should equal the load less the wind power. If storage is used, there should be little benefit shown if the wind turbine is small compared to the load. The effect should increase as the ratio of the average wind power to average load increases. The storage cases should give results very similar to the no storage cases when small amounts of storage are used.

### Battery discharge capacity

**Function:** This procedure is used to illustrate the capacity of a battery as a function of current, using the Kinetic Battery Model.

**Inputs:** Inputs include maximum capacity, the capacity ratio, c, and the rate constant, k as well as the current.

**Outputs:** The output is the battery capacity at the specified current.

**Methods:** The procedure uses the capacity part of Kinetic Battery Model. This is summarized in Chapter 8.

**Validation:** The results of the code can be compared with hand calculations, following the methods described in Chapter 8.

### Noise estimation

**Function: **This procedure is used to estimate the noise (sound pressure level) of one or more wind turbines at a given distance away from the turbine(s), based on the noise emitted (sound power level). The sound power level itself is calculated from test data or according to generic “rules of thumb.”

**Inputs:** Data input is at the screen. First the sound power level needs to be estimated. When test data is used, the input data must include the measured sound pressure level at a specified distance. Three simple rules are available for estimating sound power level.

When rated power is used, only the rated power needs to be input.

When rotor diameter is used, only the diameter needs to be input.

When rotor speed is used, both the diameter and the rotational speed (rpm) need to be input.

Calculation of sound pressure level at a certain distance from the turbine(s) requires specifying the number of turbines and the distance.

**Outputs:** Data output is to the screen. Output consists, first of all, of the sound power level at the turbine. It then includes the sound pressure level at the specified distance.

**Methods:** The sound level algorithm assumes a hemispherical propagation of the noise. The basis of this is described in Chapter 10. The rules of thumb apply to three blade, upwind turbines, and are very approximate. They are also described in Chapter 10.

**Validation:** The predictions from this code may be checked by comparing the results with hand calculations, using the equations presented in Chapter 10.

### References

- Bendat, J. S. and Piersol, A. G.
*Random Data*, 2nd Edition, John Wiley and Sons, New York, 1986. - Brown, D. R. and Hamilton, E. P.
*Electromechanical Engineering Conversion*, Macmillan Publishing Co., New York, 1984. - Manwell, J. F., McGowan, J. G. And Deng, G. “A Markov Process Based Performance Model for Wind/Diesel/Battery Storage Systems, “Proc. European Wind Energy Conference ’94, Thessaloniki, Greece, October, 1994.
- Downing, S.D. and Socie, D.F. “Simple Rainflow Counting Algorithms,” International Journal of Fatigue, Jan. 1982.
- Jeffries, W. Q., Infield, D and Manwell, J. F. “Limitations and Recommendations Regarding the Shinozuka Method for Simulating Wind Data,” Wind Engineering, Vol. 15, No. 3, 1991
- Kaminsky, F.C., Kirchhoff, R. H., and Syu, C.Y. “A Statistical Technique for Generating Missing Data from a Wind Speed Time Series,” Proceedings of American Wind Energy Association Annual Conference Wind Power ‘90, Washington, DC, 1990.
- Manwell, J. F., Rogers, A., Hayman, G., Avelar, C. T, and McGowan, J. G.
*Hybrid2- A Hybrid System Simulation Model: Theory Manual*, prepared under Subcontract No. XL-1-11126-1-1 to the National Renewable Energy Laboratory, Renewable Energy Research Laboratory, Department of Mechanical Engineering, Univ. of Mass., Amherst, MA, January, 1999. - Manwell, J. F. and McGowan, J. G. “A Screening Level Model for Wind/Diesel System Simulation,” Proceedings of the American Solar Energy Society Conference, Washington, April, 1993
- Nasar, S. A,.
*Electric Machines and Electromechanics*, Schaum’s Outline Series, McGraw-Hill Book Company, New York, 1981