Open access peer-reviewed chapter

Comparison Study of AI-based Methods in Wind Energy

By Ping Jiang, Feng Liu and Yiliao Song

Submitted: September 14th 2015Reviewed: April 14th 2016Published: August 31st 2016

DOI: 10.5772/63716

Downloaded: 1497

Abstract

Wind energy forecasting is particularly important for wind farms due to cost-related issues, dispatch planning, and energy market operations. Thus, improving forecasting accuracy becomes an urgent task for researchers in the field of wind energy. However, there is limited research to discuss an overall comparison among various forecasting types, which is a foundation for future works with respect to wind energy prediction because this comparison may reveal whether there is a best model for a specific forecasting type or specific data in this field. For the purpose of laying a strong foundation for wind energy research, this chapter introduces five basic forecasting models, which are Autoregressive Moving Average Model (ARMA), Back-Propagation Neuron Network (BPNN), Support Vector Regression (SVR), Extreme Learning Machine (ELM), and Adaptive Network-Based Fuzzy Inference System (ANFIS) with implement codes before comparing the forecasting effectiveness of five different models in three wind farms based on five forecasting types. Comparison results indicate that each model has great divergent forecasting results in different wind farms and every forecasting type has its own “best model.”

Keywords

  • wind power
  • AI-based models
  • forecasting
  • comparison
  • Matlab codes

1. Introduction

The important environmental advantages of renewable energy sources have been significantly noticed, which results in most industrialized countries committed to developing the installation of wind power plants [1]. The share of total installed capacity of wind power in China has reached approximately 27% in the global capacity, which is 96.37 GW, due to the historically high installation of new wind power capacity.[1] - Moreover, a renewable-energy-oriented power system was proposed as the fundamental aim of China’s energy transformation during the Asia-Pacific Economic Cooperation (APEC) Conferences.[1] - Advanced prediction techniques are urgently needed to integrate wind energy into the electrical power grid in a manner that benefits both Transmission System Operators (TSOs) and Independent Power Producers (IPPs) [2,3].

Since wind energy has the inherently intermittent nature and stochastic nonstationarity, it brings significant levels of uncertainty to system operators [4]. Thus, accurate wind forecasts are of primary importance to solve operational, planning, and economic problems in the growing wind power scenario [4,5]. Current wind power forecasting research has been divided into point forecasts (also called deterministic predictions) [68] and uncertainty forecasts [9,10]. Deterministic forecasts deliver specific amounts of wind power and focus on reducing the forecasting error [11]. By contrast, it is essential to decision-making processes and electricity market trading strategies [12] that uncertainty forecasts provide uncertainty information for system operators to manage the wind power generation of wind farms [11,13].

The existing approaches published in the literature with respect to wind energy prediction can be divided into three categories—artificial intelligent model, physical model, and statistical model—and sometimes a hybrid one, which integrates advantages of different categories, is involved. Researchers often utilize them to forecast various types of wind speed and wind power by various types including the multi-step forecasting, long-term wind speed (power) forecasting, and so on. However, few literature exist to discuss an overall comparison among various forecasting types, which is a foundation for future works of wind energy prediction because this comparison may reveal whether there is a best model for a specific forecasting type or specific data in the field of wind energy.

The following parts in this paper are demonstrated by four sections: methodology briefly introduces forecasting approaches that this paper adopts; data collection specifically illustrates three types of wind data; simulation and result displays and evaluates the final results of forecasting effectiveness of each model; and conclusion draws the main results that this paper investigates.

2. Methodology

In this section, we will introduce five basic models including Autoregressive Moving Average Model (ARMA), Back-Propagation Neuron Network (BPNN), Support Vector Regression (SVR), Extreme Learning Machine (ELM), and Adaptive Network-Based Fuzzy Inference System (ANFIS) as forecasting methods in this paper to predict wind speed. For the purpose of clearly demonstrating procedures of forecasting wind speed using these methods, this chapter will attach the Matlab code after introduction of each model and the wind speed series is defined as follows:

Ws=(ws1,ws2,,wsN)E1
where N is a positive integer and wsn(0,+)represents the wind speed of time n.

2.1. Autoregressive moving average model

2.1.1. Brief introduction of ARMA

This section displays ARMA model and the ARMA(p, q) model can be expressed as follows [14]:

yt=δ+i=1pφiyti+j=1qϕjetj+etE2

Where δis the constant term of the ARMA model, φiis the ith autoregressive coefficient, ϕjis the jth moving average coefficient, et is the error term at time period t, and represents the value of wind speed observed or forecasted at time period t. Thus, the first step in applying ARMA model to forecast wind speed is to identify p and q, which is related to the stationarity of the time series, which means that the stationarity assumption of observed series should be checked first. For this purpose, inspection of the run plots and Auto Correlation Function (ACF) plots can be used for deciding on the order of differencing.

2.1.2. Implement for wind speed forecasting

Since the Matlab has the ARMA package, we will implement this model to forecast wind speed using five steps as follows:

  1. Identify the domain of p and q. In this chapter, we set p{1,2,3,4,5}and q{1,2,3,4,5}.

  2. For each pair (p, q), calculate corresponding model’s AIC value.

  3. Select the pair (p, q), which makes corresponding model’s AIC value to be minimum one among all of pairs of (p, q) as the best (p, q) and denote this pair as (p_test, q_test).

  4. Apply (p_test, q_test) to establish ARMA model.

  5. Forecast m steps using the model established in step (4).

The detailed Matlab codes are listed in Code 1.

Code 1. Matlab Codes of ARMA.

function [y_output,p_test,q_test] = arma_dynmc(Ws,m)

z = Ws; step = m;

test = [];

for p = 1:5

    for q = 1:5

      m = armax(z,[p,q]);

      AIC = aic(m);

      test = [test;p q AIC];

    end

end

[min_aic,min_i] = min(test(:,3));

p_test = test(min_i,1);q_test = test(min_i,2);

m = armax(z,[p_test,q_test]);

P = predict(m,z,step);

y_output = P(end-step+1:end,1)';

2.2. Back-propagation neuron network

2.2.1. Brief introduction of BPNN

Mccelland and Rumelhart developed the BP neural network model in 1985. There are three layers in a particular network: the input, hidden, and output layers. Each layer has designed nodes, whose functions aim to calculate the inner product of the input vector and weight vector by the transfer function [15]. The process of BPNN is demonstrated by the following steps:

  1. Initialize. Assume that the input layer has n nodes, and hidden layer has l nodes, and output layer has m nodes. Let the network distribute values randomly for each threshold value θj, γt and the connection weight wij, vjt, i = 1, 2, …, n, j = 1, 2, …, l, and t = 1, 2, …, m.

  2. Calculate the output of hidden layer. Assume X[1,1]nis the input space and Y[1,1]mis the output space, which means X is an n-dimensional space and Y is an m-dimensional space. We denote each element in as xi and each element in Y is yt. Thus, the output of hidden layer can be calculated using the following function:

    Hj=f(i=1nwijxiθj),j=1,2,...,lE3
    f()is the transfer function and is expressed as follows:
    f(z)=11+ez

  • Calculate the output of the network. Using Hj, vjk, and γt, the output of the network can be calculated as follows:

    Ot=j=1lvjkHjγt,t=1,2,...,mE4

  • Error calculation. The error between yt and Ot can be expressed as et = Otyt.

  • Weights updating. According to back-propagation algorithm, the weights wij, vjt can be updated by using the following functions:

    wij=wij+ηHj(1Hj)xit=1mwjtetE5
    vjt=vjt+ηHjetE6
    where ηis the learning rate and i = 1, 2, …, n, j = 1, 2, …, l, and t = 1, 2, …, m.

  • Biases updating. Similarly, the biases θj, γt can be updated by using the following functions:

    θj=θj+ηHj(1Hj)t=1mwjtetE7
    γt=γt+etE8

  • Iteration. If the error is more than the expected value, then execute steps (2)–(6). Otherwise, denote θj, γt, wij, and vjt as the optimized parameter of this network with respect to X and Y.

  • 2.2.2. Implement for wind speed forecasting

    In this part, how to apply BPNN to forecast wind speed will be introduced in detail and the MATLAB code for predicting wind speed will be attached. There are six steps to forecast wind speed applying BPNN as follows:

    1. Design forecasting mode. In this chapter, AI-based model will apply the following mode to forecast wind speed of different wind databases

      (wst1,wst2)forecastwstE9
      Eq. (8) indicates that the input space X for BPNN model is a two-dimensional space and the output space Y is a one-dimensional space, meaning that n = 2 and m = 1 as described in Section 2.2.1.

  • Assign training samples. Based on step (1), the input and output of training samples are expressed as follows:

    Train_input=(ws1ws2wsN2ws2ws3wsN1)E10
    Train_output=(ws3ws4wsN)E11

    The Matlab codes of this step are listed in Code 2.

    Code 2. Matlab codes to construct training samples.

    n = length(Ws);

    for i = 1:2

        Train_input(i,:) = Ws(i:n+i-3);

    End

    Train_output = Ws(3:n)

  • Normalize Train_input and Train_output. Since X[1,1]nand Y[1,1]m, Train_input and Train_output need to be adjusted to satisfy this condition. First, the maximum and minimum values of each row in Train_input need to be calculated using the following functions:

    Mininput(i)=min{ithrowinTrain_input}E12
    Maxinput(i)=max{ithrowinTrain_input}E13

    Let Dinput(i)=Maxinput(i)Mininput(i)and normalized Train_input can be obtained by the following equation (i = 1, 2):

    Train_inputm=(ws1Mininput(1)Dinput(1)ws2Mininput(1)Dinput(1)wsN2Mininput(1)Dinput(1)ws2Mininput(2)Dinput(2)ws3Mininput(2)Dinput(2)wsN1Mininput(2)Dinput(2))E14

    Similarly, normalized Train_output can be obtained by the following equations:

    Minoutput(i)=min{ithrowinTrain_output}
    Maxoutput(i)=max{ithrowinTrain_output}
    Doutput(i)=Maxoutput(i)Minoutput(i)
    Train_outputm=(ws3Minoutput(1)Doutput(1)ws4Minoutput(1)Doutput(1)wsNMinoutput(1)Doutput(1))E15

    The Matlab codes of this step are listed in Code 3.

    Code 3. Matlab codes to normalize training samples.

    [Train_inputm, inputs] = mapminmax(Train_input);

    [Train_outputm, outputs] = mapminmax(Train_output);

  • Assign parameters and train the network. We assign that the network has three layers and the input layer has two nodes, the hidden layer has two nodes and the output layer has one node. Thus, according to Section 2.2.1, the optimized weights and biases of this network can be calculated and denoted by θj, γt, wij, vjt, i = 1, 2, j = 1, 2, and t = 1. The Matlab codes of this step are listed in Code 4.

    Code 4. Matlab codes to build and train BPNN.

    Net = newff(Train_input, Train_output, 2);

    Net = train(Net, Train_input, Train_output);

    Net is the trained network and can be applied to forecast wind speed in the following steps:

  • Forecast wsN+1. Based on the forecasting mode in step (1), we need to apply wsN1and wsNto forecast wsN+1, which means that the Test_input is (wsN1,wsN)T. Then, Dinput(i),Maxinput(i)andMininput(i)obtained in step (3) will be applied to normalize Test_input and the normalized Test_input can be expressed using Test_inputm as follows:

    Test_inputm=(wsN1Mininput(1)Dinput(1)wsNMininput(2)Dinput(2))E16

    Applying Eqs. (3) and (4) in Section 2.2.1, we can obtain the output of the network and denote it by O. Thus, the forecasting value of wsN+1is Ws_forecast = O×Doutput(1)+Minoutput(1).

    The Matlab codes of this step are listed in Code 5.

    Code 5. Matlab codes to forecast using established BPNN (single step ahead)

    Test_inputm = mapminmax(‘apply’, Test_input, inputs);

    O=sim(Net, Test_inputm);

    Ws_forecast= mapminmax(‘reverse’, O, outputs);

  • Forecast wsN+2. Based on the forecasting mode in step (1), we need to apply wsNand forecasting value of wsN+1, Ws_forecast, to forecast wsN+2, which means that the Test_input2 is (wsN,Ws_forecast)T. Then, Dinput(i),Maxinput(i)andMininput(i)obtained in step (3) will be applied to normalize Test_input2 and the normalized Test_input2 can be expressed using Test_inputm2 as follows:

    Test_inputm2=(wsNMininput(1)Dinput(1)Ws_forecastMininput(2)Dinput(2))E17

    Applying Eqs. (3) and (4) in Section 2.2.1, we can obtain the output of the network and denote it by O2. Therefore, the forecasting value of wsN+2is Ws_forecast2 = O2×Doutput(1)+Minoutput(1).

    The Matlab codes of this step are listed in Code 6.

    Code 6. Matlab codes to forecast using established BPNN (two-step ahead).

    Test_inputm2 = mapminmax(‘apply’, Test_input2, inputs);

    O2=sim(Net, Test_inputm2);

    Ws_forecast2= mapminmax(‘reverse’, O, outputs);

  • 2.3. Support vector regression

    2.3.1. Brief introduction of SVR

    SVR is the most common application of support vector machines (SVMs) and constructs a hyperplane that separates examples with maximum margin, to categorize or forecast series [16]. Given the training data {(x1,y1),,(xl,yl)}Χ×, where Χ=ddenotes the space of input patterns, then the goal of SVR is to find a function f(x)that is as flat as possible with at most εdeviation from the actually obtained targets yifor all the training data. The simplest, linear formula for the output of a linear SVR is defined as [17]

    f(x)=w,x+b,wX,bE18
    where w,xdenotes the dot product in Χ. One way to get the largest flatness is to minimize the win Eq. (18) and this problem can be written as Eq. (19) by introducing slack variables ξi, ξi*into a convex optimization problem function:
    minimize12w2+Ci=1l(ξi+ξi*)subjectto{yiw,xibεw,xi+byiεξi,ξi*0E19

    The constant C>0determines the trade-off between the flatness of f and the amount up to which deviations larger than εare tolerated.

    To figure out the support vector regression function, the dual problem of Eq. (19) is defined in Eq. (20) by constructing a Lagrange function from the objective function:

    maximize{12i,j=1l(αiαi*)(αjαj*)xi,xjεi=1l(αi+αi*)+i=1lyi(αiαi*)subjecttoi=1l(αiαi*)=0andαi,αi*[0,C]E20

    With the solution of (α,α*)from Eq. (20), the support vector regression function can be written as follows:

    f(x)=i=1l(αiα*)xi,x+bE21

    When it comes to the nonlinear regression problem, the training patterns xican be mapped into a high-dimensional space, where the nonlinear regression problem is transformed into a linear one. The expansion of Eq. (21) is defined as Eq. (22):

    f(x)=i=1N(αi*αi)k(xi,x;g)+bE22
    where αi*and αiare Lagrange multipliers and k(xi,x;g)is the kernel function, in which g is a parameter and generally set as 1/d.

    2.3.2. Implement for wind speed forecasting

    We use the libsvm package (Version 3.17) to implement forecasting task of wind speed using SVR. There are six steps and steps (1)–(3) are same as in steps (1)–(3) in Section 2.2.2. Thus, we start to introduce from step (4).

    (4) Assign parameters and train the SVR model. We assign that C is 4 and g is 0.5. Thus, according to Section 2.3.1, the optimized solution (α,α*)can be calculated. The Matlab codes of this step are listed in Code 7.

    Code 7. Matlab codes to establish and train SVR.

    Model = svmtrain(Train_output’, Train_input’, ‘-C 4 –g 0.5’);

    Model is the trained SVR model and can be applied to forecast wind speed by the following steps:

    (5) Forecast wsN+1. Based on the forecasting mode in step (1), we need to apply wsN1and wsNto forecast wsN+1, which means that the Test_input is (wsN1,wsN)T. Then, Dinput(i),Maxinput(i)andMininput(i)obtained in step (3) will be applied to normalize Test_input and the normalized Test_input can be expressed using Test_inputm as follows:

    Test_inputm=(wsN1Mininput(1)Dinput(1)wsNMininput(2)Dinput(2))E23

    Applying Eqs. (3) and (4) in Section 2.2.1, we can obtain the output of the network and denote it by O. Thus, the forecasting value of wsN+1is Ws_forecast = O×Doutput(1)+Minoutput(1). The Matlab codes of this step are listed in Code 8.

    Code 8. Matlab codes to forecast using established SVR (single step ahead).

    Test_inputm = mapminmax(‘apply’, Test_input, inputs);

    O=svmpredict(0, Test_inputm’,Model);

    Ws_forecast= mapminmax(‘reverse’, O, outputs);

    (6) Forecast wsN+2. Based on the forecasting mode in step (1), we need to apply wsNand the forecasting value of wsN+1, Ws_forecast, to forecast wsN+2, which means that the Test_input2 is (wsN,Ws_forecast)T. Then, Dinput(i),Maxinput(i)andMininput(i)obtained in step (3) will be applied to normalize Test_input2 and the normalized Test_input2 can be expressed using Test_inputm2 as follows:

    Test_inputm2=(wsNMininput(1)Dinput(1)Ws_forecastMininput(2)Dinput(2))E24

    Applying Eqs. (3) and (4) in Section 2.2.1, we can obtain the output of the network and denote it by O2. Therefore, the forecasting value of wsN+2is Ws_forecast2 = O2×Doutput(1)+Minoutput(1). The Matlab codes of this step are listed in Code 9.

    Code 9. Matlab codes to forecast using established SVR (two-step ahead).

    Test_inputm2 = mapminmax(‘apply’, Test_input2, inputs);

    O2=svmpredict(0,Test_inputm2’,Model);

    Ws_forecast2= mapminmax(‘reverse’, O, outputs);

    2.4. Extreme learning machine

    2.4.1. Brief introduction of ELM

    Huang et al. [18] investigated the ELM, which is an effective and efficient learning algorithm. The ELM aims to randomly initialize the weights and biases of SLFN and then to explicitly calculate the hidden layer output matrix and hence the output weights. Because of the nature of non-adjusted weights and bias, the network can be established using a very low computational cost [19]. Then, the ELM with l hidden neurons and transfer function φ(·)can approximate the N samples with zero error as

    j=1lβjφ(wjxk+bj)=yk,k=1,2,...,NE25
    which can be written as HB=Y, with
    H(w1,...,wl,b1,...,bl,x1,...,xN)=(φ(w1x1+b1)φ(wlx1+bl)φ(w1xN+b1)φ(wlxN+bl))E26
    where wi is the weight vector connecting the ith hidden neuron and the input nodes, βiis the weight vector connecting the ith hidden neuron and the output neurons, and biis the threshold of the ith hidden neuron, and B=(β1TβlT)T,Y=(y1TyNT)T

    Then, the output weights B can be calculated from the hidden layer output matrix H and the target values Y as B^ = HY, where H† is the Moore-Penrose generalized inverse of the matrix H.

    2.4.2. Implement for wind speed forecasting

    We use Matlab to compile ELM model and provide two *.m files, which are Elmtrain.m and Elmpredict.m, in Appendix. Elmtrain function is similar to train function for BPNN and svmtrain function for SVR and Elmpredict function is similar to sim function for BONN and svmpredict function for SVR. In detail, there are six steps for forecasting wind speed using ELM model and steps (1)–(3) are same as in steps (1)(3) in Section 2.2.2. Thus, we start to introduce them from step (4).

    (4) Assign parameters and train the ELM model. We design that the input layer of ELM model has two nodes, and the hidden layer of ELM has two nodes, and the output layer of ELM model has one node. Thus, according to Section 2.4.1, the optimized B can be calculated. The Matlab codes of this step are listed in Code 10.

    Code 10. Matlab codes to establish and train ELM.

    [W,b,B,TF,TYPE] = elmtrain(Train_input, Train_output, 2);

    W is the weight matrix of the input layer and hidden layer, and b is the bias vector of input layer and hidden layer, and B is B^ in Section 2.4.1, and TF is the transfer function φ(·), and TYPE is model’s functions (classification or regression). We select sigmoid function as the transfer function φ(·)of ELM, which is same as that of BPNN.

    (5) Forecast wsN+1. Based on the forecasting mode in step (1), we need to apply wsN1and wsNto forecast wsN+1, which means that the Test_input is (wsN1,wsN)T. Then, Dinput(i),Maxinput(i)andMininput(i)obtained in step (3) will be applied to normalize Test_input and the normalized Test_input can be expressed using Test_inputm as follows:

    Test_inputm=(wsN1Mininput(1)Dinput(1)wsNMininput(2)Dinput(2))E27

    Applying Eqs. (3) and (4) in Section 2.2.1, we can obtain the output of the network and denote it by O. Thus, the forecasting value of wsN+1is Ws_forecast = O×Doutput(1)+Minoutput(1). The Matlab codes of this step are listed in Code 11.

    Code 11. Matlab codes to forecast using established ELM (single step ahead).

    Test_inputm = mapminmax(‘apply’, Test_input, inputs);

    O=elmpredict(Test_inputm, W,b,B,TF,TYPE);

    Ws_forecast= mapminmax(‘reverse’, O, outputs);

    (6) Forecast wsN+2. Based on the forecasting mode in step (1), we need to apply wsNand forecasting value of wsN+1, Ws_forecast, to forecast wsN+2, which means that the Test_input2 is (wsN,Ws_forecast)T. Then, Dinput(i),Maxinput(i)andMininput(i)obtained in step (3) will be applied to normalize Test_input2 and the normalized Test_input2 can be expressed using Test_inputm2 as follows:

    Test_inputm2=(wsNMininput(1)Dinput(1)Ws_forecastMininput(2)Dinput(2))E28

    Applying Eqs. (3) and (4) in Section 2.2.1, we can obtain the output of the network and denote it by O2. Therefore, the forecasting value of wsN+2is Ws_forecast2 = O2×Doutput(1)+Minoutput(1). The Matlab codes of this step are listed in Code 12.

    Code 12. Matlab codes to forecast using established ELM (two-step ahead).

    Test_inputm2 = mapminmax(‘apply’, Test_input2, inputs);

    O2=svmpredict(Test_inputm2, W,b,B,TF,TYPE);

    Ws_forecast2= mapminmax(‘reverse’, O, outputs);

    2.5. Adaptive network-based fuzzy inference system

    2.5.1. Brief introduction of ANFIS

    ANFIS is introduced to compensate for the disability of conventional mathematical tools to address uncertain systems, such as human knowledge and reasoning processes. There are two contributions of FIFs restructured: proposing a standard method for transforming ill-defined factors into identifiable rules of FIS and using an adaptive network to tune the membership functions. We assume that there are two fuzzy if-then rules contained in the system, two inputs (x and y) and one output (z), and the processes of ANFIS are described in Figure 1 [2021].

    Figure 1.

    Five processes included in this figure. In an ANFIS architecture, circles are fixed nodes without parameters and squares represent adaptive nodes whose parameters are determined by training data and a gradient-based learning procedure.

    Layer I: Mapping a certain input x to a fuzzy set Oi(1)for every node i by the member functions μA, which is usually bell-shaped with a parameter set {ai,bi,ci}, as is y

    Oi(1)=μA(x),whereμA(x)=11+[(xciai)]biorμA(x)=e(xciai)2E29

    Layer II: In this layer, each circle node performs the connection “AND” and multiplies inputs, as well as sends the product out:

    Oi(2)=ωi=μA(x)×μB(x)E30

    Layer III: Every circle node in this layer calculates a normalized firing strength, namely a ratio of the rule’s firing strength to the sum of all rules’ firing strengths:

    Oi(3)=ω¯i=ωiωiE31

    Layer IV: Assume the rules of this system are as follows:

    Rule 1: If x is A1 and y is B1, then f1=p1x+q1y+r1

    Rule 2: If x is A2 and y is B2, then f2=p2x+q2y+r2

    Then, the outputs of the adaptive nodes in this layer are computed by

    Oi(4)=ω¯ifi=ω¯i(p1x+q1y+r1)E32

    Layer V: The overall output is the weighted average of all incoming signals:

    Oi(5)=iω¯ifi=iωifiiωiE33

    Particularly, in this case,

    Oi(5)=i=12ω¯ifi=i=12(ω¯ix)pi+(ω¯iy)qi+ω¯iriE34

    2.5.2. Implement for wind speed forecasting

    We use the genfis3 function and ANFIS function in Matlab to implement forecasting task of wind speed using ANFIS. There are six steps and steps (1)–(3) are same as in steps (1)–(3) in Section 2.2.2. Thus, we start to introduce from step (4).

    (4) Assign parameters and train the ANFIS model. We set the number of iteration of ANFIS as 100. Thus, the optimized parameters can be calculated. The Matlab codes of this step are listed in Code 13.

    Code 13. Matlab codes to establish and train ANFIS.

    fismat = genfis3(Train_input’, Train_output’);

    out_fis1 = anfis([Train_input’ Train_output’],fismat,100);

    The out_fis1 is the trained ANFIS and can be applied to forecast wind speed.

    (5) Forecast wsN+1. Based on the forecasting mode in step (1), we need to apply wsN1and wsNto forecast wsN+1, which means that the Test_input is (wsN1,wsN)T. Then, Dinput(i),Maxinput(i)andMininput(i)obtained in step (3) will be applied to normalize Test_input and the normalized Test_input can be expressed using Test_inputm as follows:

    Test_inputm=(wsN1Mininput(1)Dinput(1)wsNMininput(2)Dinput(2))E35

    Applying Eqs. (3) and (4) in Section 2.2.1, we can obtain the output of the network and denote it by O. Thus, the forecasting value of wsN+1is Ws_forecast = O×Doutput(1)+Minoutput(1). The Matlab codes of this step are listed in Code 14.

    Code 14. Matlab codes to forecast using established ANFIS (single step ahead).

    Test_inputm = mapminmax(‘apply’, Test_input, inputs);

    O=evalfis(Test_inputm’, out_fis1);

    Ws_forecast= mapminmax(‘reverse’, O, outputs);

    (6) Forecast wsN+2. Based on the forecasting mode in step (1), we need to apply wsNand forecasting value of wsN+1, Ws_forecast, to forecast wsN+2, which means that the Test_input2 is (wsN,Ws_forecast)T. Then, Dinput(i),Maxinput(i)andMininput(i)obtained in step (3) will be applied to normalize Test_input2 and the normalized Test_input2 can be expressed using Test_inputm2 as follows:

    Test_inputm2=(wsNMininput(1)Dinput(1)Ws_forecastMininput(2)Dinput(2))E36

    Applying Eqs. (3) and (4) in Section 2.2.1, we can obtain the output of the network and denote it by O2. Therefore, the forecasting value of wsN+2is Ws_forecast2 = O2×Doutput(1)+Minoutput(1). The Matlab codes of this step are listed in Code 15.

    Code 15. Matlab codes to forecast using established ANFIS (two-step ahead).

    Test_inputm2 = mapminmax(‘apply’, Test_input2, inputs);

    O2=evalfis(Test_inputm2’, out_fis1);

    Ws_forecast2= mapminmax(‘reverse’, O, outputs);

    3. Data collection

    We select three types of wind data to train and test forecasting models, which are 10-minute wind speed data in wind farm A (this database is denoted by WFD1), 15-minute wind speed data in wind farm B (this database is denoted by WFD2), and 15-minute wind speed data in wind farm C (this database is denoted by WFD3), and wind farms B and C are in the same city in China.

    Figure 2.

    Descriptive information and histograms of three wind farm databases.

    In this section, the descriptive information of each database will be provided and we will test the similarity between WFD2 and WFD3 using Friedman test. In the beginning, Figure 2 shows the three databases and their histograms.

    From Figure 2, this is apparent that WFD1 and WFD2 have similar maximum and minimum values because they are in the same city. However, WFD1 and WFD2 have different mean and variance values. Thus, we use Friedman test to figure out whether both of two time series are significantly different, which is shown in Table 1. In Table 1, the p-value of Friedman test is very small (2.46e–11), which indicates that WFD1 and WFD2 have a significant difference.

    SourceSSdfMSChi-squaredProb>Chi-squared
    Columns73.3173.282544.572.46e–11
    Interaction61568.717,0853.6037
    Error22,64934,1720.6628
    Total84,29168,343

    Table 1.

    The result of Friedman test between WFD1 and WFD2.

    For WFD3, its mean value is significantly different from others and the histogram of WFD3 is also different from those of other databases. From the description of these three databases, it can be seen that they are very different, which lays a strong foundation for the comparison study.

    4. Simulation and results

    For these different databases, we will test 1-h-ahead, 4-h-ahead, 1-h average, 4-h average, and 1-day average wind speed forecasting effectiveness by using five methods separately, which is to say that we conduct five experiments of different time scales or time horizons in this comparison study. To test the overall forecasting effectiveness of each model, the testing period is 30 weeks in 2014 and we apply three criteria to evaluate forecasting error, which are the mean absolute percent error (MAPE), root-mean-squared error (RMSE), and mean absolute error (MAE). The formulas of three criteria are expressed as follows:

    et=y^tytE37
    MAPE=1Nt=1N|et|yt×100%E38
    RMSE=1Nt=1Net2E39
    MAE=1Nt=1N|et|E40
    where t represents the time t, ytis the actual value in time t, y^tis the forecasting value in time t, and N is the length of testing period.

    4.1. Experiment I: 1-h-ahead wind speed forecasting

    In this experiment, we will test the 1-h-ahead forecasting effectiveness of five models. It should be pointed that 1-h-ahead prediction means a four-step forecast for WFD1 and WFD2 and a means six-step forecast for WFD3 because WFD3 is constructed by 10-min wind speeds. The main results are shown in Table 2, which contains MAPE, RMSE, and MAE of each model when forecasting 1-h-ahead wind speed.

    Wind farmsCriteriaANFISBPNNELMSVMARMA
    WFD1MAE1.41930.80660.83350.94711.4293
    MAPE43.67%19.25%19.51%30.74%30.96%
    RMSE1.50920.90830.93751.05211.5574
    WFD2MAE1.81100.76510.76490.85902.9846
    MAPE49.82%20.21%19.76%28.11%83.01%
    RMSE1.88370.86110.86070.95503.0937
    WFD3MAE1.26180.97810.85710.90553.0764
    MAPE25.22%20.26%16.29%19.05%64.92%
    RMSE1.37351.10190.97971.02903.1724

    Table 2.

    The forecasting results of Experiment I.

    From Table 2, it is apparent that BPNN has the best performance among these five models in WFD1 and ELM outperforms others in WFD2 and WFD3 by three criteria. By contrast, the forecasting accuracy of ANFSI and ARMA is poor and even cannot be accepted in some wind farms, such as the performance of ARMA in WFD1 and WFD2 and the performance of ANFIS in WFD1 and WFD2. These results show that each wind farm has the corresponding best forecasting model and there is no single model that can perform best in every wind farm by three criteria.

    4.2. Experiment II: 4-h-ahead wind speed forecasting

    Experiment II shows the 4-h-ahead forecasting effectiveness of wind speed, and the 4-h-ahead forecasting is equal to a 16-step forecast for WFD1 and WFD2 and is a 24-step forecast for WFD3. Table 3 descripts forecasting results of five models in three wind farms.

    In Table 3, BPNN is the best model in WFD1 and WFD2 by three criteria and outperforms other models in three databases by MAE and RMSE. ANFIS has the lowest MAPE in WFD3 among these models but has high MAPE, MAE, and RMSE in WFD1 and WFD2. It is similar to Experiment I that ARMA does not have a decent forecasting results in three wind farms. These results indicate that models forecasting effectiveness varies a lot when the wind farm changes (such as the effectiveness of ANFIS).

    Wind farmsCriteriaANFISBPNNELMSVMARMA
    WFD1MAE1.94411.43851.47251.61472.4799
    MAPE54.41%35.36%36.67%52.28%55.59%
    RMSE2.15311.66641.70621.83762.7478
    WFD2MAE1.99371.32511.34921.42462.8887
    MAPE54.96%34.71%36.36%45.85%78.64%
    RMSE2.17701.54401.56471.63013.1138
    WFD3MAE1.32501.31761.35751.39512.6248
    MAPE26.04%26.80%27.20%30.12%53.30%
    RMSE1.54941.53471.59241.61222.8495

    Table 3.

    The forecasting results of Experiment II.

    4.3. Experiment III: 1-h average wind speed forecasting

    In Experiment III, we will forecast 1-h average wind speed in three wind farms using ANFIS, BPNN, ELM, SVM, and ARMA, and 1-h average wind speed forecasting is a one-step forecast for three wind farms.[1] - Table 4 shows the forecasting effectiveness of each model in this experiment.

    Wind farmsCriteriaANFISBPNNELMSVMARMA
    WFD1MAE1.56640.85860.83150.90691.2883
    MAPE44.82%20.15%19.33%24.92%27.58%
    RMSE2.09811.23761.18821.28051.8759
    WFD2MAE1.77800.79240.76070.79192.5731
    MAPE47.44%20.30%19.35%21.92%80.67%
    RMSE2.37881.18381.12981.17123.3596
    WFD3MAE0.88730.79640.79430.79141.1274
    MAPE16.90%15.07%14.95%14.91%20.75%
    RMSE1.15681.05681.05481.05391.4833

    Table 4.

    The forecasting results of Experiment III.

    From Table 4, ELM and SVM have decent forecasting accuracy in WFD3, but ELM is better than SVM and other models in WFD1 and WFD2. ANFIS has a good performance in WFD3 and cannot forecast 1-h average wind speed with a reasonable accuracy. Similarly for ARMA, it works well in WFD1 and WFD3 but has a high MAPE in WFD2.

    4.4. Experiment IV: 4-h average wind speed forecasting

    It is similar to Experiment III, but this experiment shows the one-step-ahead wind speed forecasting effectiveness of each model. Table 5 demonstrates the results of five models obtained in three wind farms.

    Wind farmsCriteriaANFISBPNNELMSVMARMA
    WFD1MAE2.05161.64351.62091.57472.1725
    MAPE55.75%41.64%38.76%36.76%48.81%
    RMSE2.64112.14112.14782.12412.8977
    WFD2MAE2.15381.42821.34891.34222.4222
    MAPE55.53%36.02%34.27%30.86%74.71%
    RMSE2.83181.94981.85971.89333.1035
    WFD3MAE1.25641.20151.14831.16891.6348
    MAPE23.37%22.33%21.13%21.19%29.41%
    RMSE1.59511.52491.48561.50742.0953

    Table 5.

    The forecasting results of Experiment IV.

    The analyzing results in Table 5 are quite different from that in Table 4. Specifically, SVM model has better performance in WFD1 and WFD2 than other models, and ELM is the best forecasting model in WFD3. For each model, wind speed in WFD3 can be forecasted more accurately than that in WFD1 and WFD2, and AI-based models (ANFIS, BPNN, ELM, and SVM) outperform ARMA in WFD3.

    4.5. Experiment V: 1-day average wind speed forecasting

    In this experiment, we will test the one-step-ahead forecasting effectiveness based on 1-day average wind speed database. Similar to other experiments, Table 6 demonstrates each model's forecasting effectiveness.

    Table 6 shows that SVM has the best forecasting performance on three criteria in three wind farms. By contrast, ARMA and ANFIS have the higher MAPE, MAE, and RMSE than other models.

    Wind farmsCriteriaANFISBPNNELMSVMARMA
    WFD1MAE 2.1001 1.9069 1.8377 1.7675 2.5753 
    MAPE 52.78% 42.99% 45.70% 36.81% 60.59% 
    RMSE 2.5729 2.3784 2.3053 2.2692 3.1655 
    WFD2 MAE 1.9384 1.9710 1.9038 1.7653 1.9271 
    MAPE 51.81% 47.82% 48.19% 38.04% 52.61% 
    RMSE 2.4685 2.4758 2.3848 2.3573 2.4679 
    WFD3 MAE 1.9288 1.8385 1.5886 1.5487 1.8763 
    MAPE 32.30% 30.40% 26.39% 24.79% 30.47% 
    RMSE 2.4229 2.3061 1.9152 1.9159 2.2568 

    Table 6.

    The forecasting results of Experiment V.

    5. Conclusion

    The inherently intermittent nature and stochastic nonstationarity of wind sources bring great levels of uncertainty to system operators and are an urgent problem in the wind-forecasting field. This chapter introduces some basic forecasting approaches and corresponding procedures to forecast wind speed (detailed codes are attached). After simulating these methods (the testing period is 30 weeks) in MATLAB based on three databases, conclusions can be drawn as follows:

    1. None of ANFIS, BPNN, ELM, SVM, and ARMA has the best forecasting performance in all experiments.

    2. Based on the experimental results of different forecasting types (1-h-ahead forecasting, 4-h-ahead forecasting, 1-h-average-ahead forecasting, 4-h-average-ahead forecasting, and 1-day-average-ahead forecasting), the best model varies in time scales and time horizons.

    3. The forecasting effectiveness differs a lot from database to database (in Experiment II, ANFIS is the best model of which MAPE is 26.04 in WFD3 but has a high MAPE, 54.41%, in WFD1).

    4. AI-based models are more suitable for wind speed forecast than ARMA.

    According to these conclusions, it is obvious that wind speed forecasting models or systems need to be built up under specific conditions in wind farms and model selection in wind speed forecasting plays a significant role to improve the accuracy.

    Acknowledgments

    The work was supported by the National Natural Science Foundation of China (grant no. 71573034).

    Notes

    • N.E. Administration, http://www.nea.gov.cn/2015-02/12/c_133989991.htm (2015).
    • N.E. Administration, http://www.nea.gov.cn/2015-06/08/c_134305870.htm (2015).
    • It should be pointed that every day has 24 1-h average wind speed.

    How to cite and reference

    Link to this chapter Copy to clipboard

    Cite this chapter Copy to clipboard

    Ping Jiang, Feng Liu and Yiliao Song (August 31st 2016). Comparison Study of AI-based Methods in Wind Energy, New Applications of Artificial Intelligence, Pedro Ponce, Arturo Molina Gutierrez and Jaime Rodriguez, IntechOpen, DOI: 10.5772/63716. Available from:

    chapter statistics

    1497total chapter downloads

    More statistics for editors and authors

    Login to your personal dashboard for more detailed statistics on your publications.

    Access personal reporting

    Related Content

    This Book

    Next chapter

    Fuzzy Logic Control of Switched Reluctance Motor Drives

    By M. Divandari and B. Rezaie

    Related Book

    First chapter

    New Strategy to Approach the Inverse Kinematics Model for Manipulators with Rotational Joints

    By José-Emilio Vargas-Soto, Efren Gorrostieta-Hurtado, Saúl Tovar- Arriaga, Jesús-Carlos Pedraza-Ortega and Juan-Manuel Ramos- Arreguín

    We are IntechOpen, the world's leading publisher of Open Access books. Built by scientists, for scientists. Our readership spans scientists, professors, researchers, librarians, and students, as well as business professionals. We share our knowledge and peer-reveiwed research papers with libraries, scientific and engineering societies, and also work with corporate R&D departments and government entities.

    More About Us