Análise Espectral Singular, Teoria Wavelet e Redes … Assim sendo, considerando algum valor fixo ,...
Transcript of Análise Espectral Singular, Teoria Wavelet e Redes … Assim sendo, considerando algum valor fixo ,...
1
Análise Espectral Singular, Teoria Wavelet e Redes Neurais
Artificiais na Previsão de Velocidade do Vento
José Francisco Moreira Pessanha1
Luiz Albino Teixeira Júnior2
Moisés Lima de Menezes2
Keila Mara Cassiano2
Reinaldo Castro Souza2
1 Introdução
As estatísticas apresentadas no World Wind Energy Report 2010 [15] mostram a
rápida expansão da capacidade instalada da geração eólica no mundo, passando de 24.322 MW
em 2001 para 196.630 MW em 2010, sendo a maior parte na Europa (85.983 MW), na China
(44.733 MW) e nos Estados Unidos (40.180 MW). No Brasil, a capacidade de geração eólica
instalada no País era aproximadamente de 709 MW em dezembro de 2009, porém, em função do
primeiro leilão de energia eólica realizado no final de 2009, espera-se a entrada em operação de
71 usinas eólicas que devem agregar 1.805 MW ao Sistema Interligado Nacional a partir de 1º de
julho de 2012, um valor ainda bem abaixo do enorme potencial eólico brasileiro, avaliado em
143 GW a cinquenta metros do solo [1].
A conversão de energia eólica em energia elétrica se dá a partir de uma velocidade
mínima denominada velocidade de partida vp. A potência da turbina é limitada ao valor nominal
à velocidade nominal vn. Para velocidades entre vp e vn a potência elétrica P gerada por uma
turbina eólica cresce com o cubo da velocidade do vento v transversal à área A varrida pelo seu
rotor [2]: , onde m é o rendimento mecânico da caixa de transmissão, g é
o rendimento do gerador, é a densidade do ar e Cp é o coeficiente de potência da turbina
(parcela da potência disponível no vento que é extraída pela turbina). A relação entre a
velocidade e a potência gerada é expressa na curva de potência da turbina, uma informação
fornecida pelo fabricante,
A integração segura e econômica dos aproveitamentos eólicos ao sistema elétrico
requer que o operador da rede elétrica disponha de previsões de curto prazo da disponibilidade
dos recursos eólicos. Para prever a potência eólica gerada, pode-se começar pela previsão da
1 Departamento de Estatística – IME/UERJ. e-mail: [email protected]
2 Departamento de Engenharia Elétrica – PUC-RIO.
2
velocidade do vento e na sequência deve-se buscar a potência gerada correspondente na curva de
potência.
Os modelos de previsão da velocidade de vento são classificados em duas categorias:
modelos físicos e modelos de séries temporais [14]. A categoria dos modelos físicos abrange
métodos numéricos para previsão climática (NWP - numeric weather prediction). Estes modelos
ainda demandam grande esforço computacional e, por este motivo, a sua utilização na previsão
de curto prazo é bastante limitada. Por sua vez, a modelagem de séries temporais envolve a
análise dos valores passados de variáveis explicativas e da própria variável que se pretende
prever. A análise de séries temporais conta com uma ampla variedade de métodos estatísticos e
métodos de inteligência artificial. Esta abordagem tem a vantagem de fornecer e atualizar as
previsões na escala de tempo em que são tomadas as decisões operativas do sistema elétrico.
As diferentes arquiteturas de redes neurais artificiais, bem como as redes neuro-fuzzy,
são freqüentemente empregadas na previsão da velocidade de vento [14], porém, se aplicados de
maneira isolada, tais métodos, em geral, fornecem previsões bastante imprecisas. Melhores
desempenhos podem ser alcançados por meio do pré-processamento da série temporal da
velocidade de vento.
Neste artigo considera-se a modelagem da velocidade de vento via rede neural artificial
perceptron multicamadas [6] e objetiva-se avaliar o ganho preditivo que pode ser alcançado pela
aplicação da decomposição wavelet [12,13], integrada ao encolhimento de ruído através da
análise espectral singular (SSA – Singular Spectrum Analysis) [5,7], no pré-processamento da
série de velocidade de vento.
O artigo está organizado em quatro seções. A seguir, na seção 2 tem-se uma breve
descrição do método SSA, da transformada wavelet e das redes neurais artificiais perceptron
multicamadas. Os experimentos computacionais realizados e os principais resultados obtidos são
relatados na seção 3. Por fim, as conclusões do trabalho são expostas na seção 4.
2. Material e métodos
2.1 Análise espectral singular
A Análise Espectral Singular (SSA) é um método não paramétrico empregado na análise
e previsão de séries temporais, particularmente no alisamento, na filtragem e na extração de
periodicidades. A versão básica do SSA consiste em duas etapas: decomposição e reconstrução
da matriz trajetória [5,7].
3
2.1.1 Decomposição
Seja { } uma série temporal, com cardinalidade igual a T. O estágio de
decomposição da série temporal via SSA está subdividido em duas fases: incorporação e
decomposição em valores singulares (SVD - Singular Value Decomposition).
A fase de incorporação consiste em segmentar uma série temporal { } em
uma sequência de vetores multidimensionais defasados [ ] j=1,
, onde L é o comprimento de janela, um inteiro tal que . Os vetores
defasados formam as colunas da matriz [ ]
chamada Matriz de Trajetória. Em
resumo, o procedimento de incorporação é uma transformação invertível tal que
. A seguir, tem-se um exemplo do procedimento de incorporação:
Série temporal matriz de trajetória X
(x1, x2, x3, x4, x5, x6,..., xL,..., xT)
[
]
Note que a matriz de trajetória é uma matriz de Hankel, i.e., uma matriz cujos elementos
são idênticos ao longo de todas as posições da matriz X em que a soma dos índices ( )
permanecer constante.
Assuma , onde é a transposta da matriz . Denote por os
autovalores de tomados em ordem decrescente de magnitude e a
base os autovetores ortonormais da matriz correspondentes aos autovalores, respectivamente.
Seja { }, o número de autovalores diferentes de zero de .
De acordo com o Teorema da Decomposição Espectral [9], a matriz pode ser
expandida como a seguinte soma ponderada ∑ . Seja
√ . De acordo com
[3], a matriz de trajetória X pode ser expandida tal como:
∑
onde √ .
4
De acordo com [3], a expansão (2.1) é conhecida como Decomposição em Valores
Singulares (SVD) da matriz X. As matrizes têm posto 1 e a coleção é chamada de
autotripla da SVD [5] da matriz X.
2.1.2 Reconstrução
O estágio de reconstrução é composto por duas fases: agrupamento e média diagonal. O
procedimento de agrupamento corresponde a classificar as matrizes elementares em grupos e
somar as matrizes dentro de cada grupo. O procedimento de agrupamento consiste em particionar
o conjunto de índices { } em subconjuntos disjuntos . Seja { } o
conjunto de índices classificados no I-ésimo subconjunto, então a matriz resultante
correspondente ao subconjunto é definida como [5,7]. Estas matrizes são
calculadas para cada grupo de índices, de até , assim a expansão (2.1) leva a decomposição:
∑
A contribuição de uma componente na expansão (2.2) é medida pela razão entre os
autovalores correspondentes: ∑
∑
Por fim, a média diagonal é calculada. Sejam os elementos da matriz de dimensão
onde e [5,7]. Considere , e
. A transformação é aplicada a cada uma das matrizes
na decomposição (2.2) tal que . Esta transformação é também conhecida como
Hankelização e ao aplicar nas matrizes na expressão (2.2), obtém-se a seguinte expansão:
∑
Onde para cada o ésimo termo da série, , resultante da Hankelização,
tal que , é obtido através da média diagonal:
{
∑
∑
∑
5
Assim, cada { }
será a série (
), onde
, é obtida em
(2.4).
O próximo passo é analisar cada componente da família { }
para verificar quais delas
são consideradas estatisticamente como ruídos através do teste BDS [4]. Após tal verificação,
segue que ∑
, onde , para todo Logo { } é a série temporal
aproximada de { } , ou seja, { }
é menos ruidosa que { } .
2.2 Função Wavelet
Um elemento é nominado como função wavelet se e somente se a
sequência de funções {
[ ]}
, constitui uma base ortonormal
para o espaço de Hilbert [11]. Por conseguinte, admite-se a qualquer função
em sua expansão por série de Fourier:
∑ ∑⟨ ⟩
A projeção de sobre pode ser interpretada como uma variação de detalhes
de - na escala e translação unitária . Por outro lado, para cada tem-se que a
projeção de no subespaço de detalhes - definido como
{ } - é definida uma soma parcial da expansão de Fourier em (2.5) na escala .
Isto é:
∑⟨ ⟩
Dessa forma, (2.6) pode ser referida como uma componente de detalhes de na
escala . Com efeito, alguma função pode ser interpretada como a soma de todas
suas camadas de detalhes em todas as escalas. Um caso especial de funções wavelet é a função
escala . Por simetria à wavelet , assuma a dilatação diádica e a translação
unitária para a função escala , de forma que:
{
[ ]}
6
Assim sendo, considerando algum valor fixo , a projeção de sobre o
subespaço de aproximação - definido como
{ }
- é
dada por:
∑⟨ ⟩
Em síntese, para qualquer função , as projeções dos espaços de detalhes,
em (2.6), realizam o mapeamento de suas camadas de detalhes, nos níveis , e a
projeção do espaço de aproximação, em (2.8), realiza o mapeamento da camada de aproximação
de nível .
2.2.1 Transformada wavelet
Uma transformada wavelet (TW) é o produto interno entre uma função de energia finita e
uma função wavelet ou escala
. As transformadas wavelet são
classificadas como coeficientes de detalhes e de aproximação e são calculados, respectivamente, como:
⟨ ⟩ ∫
⟨ ⟩ ∫
As famílias { }{
e { } podem ser denotadas, de forma alternativa,
como coeficientes wavelet (ou coeficientes de Fourier) e quantificam a associação linear entre
alguma função e alguma - ou - para cada e .
2.2.2 Decomposição wavelet
De acordo com [11], a sequência de subespaços { } de é definida
como Análise Multirresolução Wavelet, com relação à função escala , se as
condições seguintes são mantidas:
⋂ { }
⋃
[ ] para algum e
7
{ [ ] } é uma base ortonormal do subespaço
Em [11], mostra-se que um espaço de aproximação pode ser expandido em
termos de subespaços de detalhes , sendo :
Conforme descrito em [10], considerando o resultado da equação (2.11), o espaço
pode ser decomposto em termos dos subespaços de detalhes , para os níveis no
intervalo , e de aproximação , para o nível :
[
] [
] [
]
Os subespaços de aproximação e detalhes de são disjuntos e ortogonais entre si
[11]. Por consequência, cada função em possui representação única sob a forma de
decomposição ortogonal [9], em termos de projeções ortogonais, dada por:
Assim, considere a decomposição ortogonal descrita em (2.13) e a família ortonormal
wavelet { }{
, base de espaço . Cada projeção ortogonal em
(2.12) possui uma representação única sob a forma de série de Fourier com base wavelet
ortonormal [9], uma vez que a ortonormalidade implica independência linear e esta é condição
necessária e suficiente para garanti-la. Com isso, tem-se que:
∑
∑ ∑
sendo as famílias { }{
e { } conhecidas, respectivamente, como coeficientes
de detalhes (2.9) e de aproximação (2.10).
2.3 Redes Neurais Artificiais
As redes neurais artificiais (RNA) são sistemas paralelos distribuídos, compostos por
unidades de processamento simples (denominadas neurônios) e dispostas em uma ou mais
camadas interligadas por um grande número de conexões (sinapses) geralmente unidirecionais e
com pesos para ponderar as entradas recebidas por cada neurônio. A arquitetura mais usual é a
8
rede neural artificial multicamadas perceptron (MLP) com três camadas, conforme ilustra a
Figura 2.1(a).
(a) Arquitetura da rede neural artificial
(b) Fases do algoritmo backpropagation
Figura 2.1-Rede neural artificial perceptron multicamadas.
De forma análoga ao processamento no cérebro humano (onde as sinapses são
reforçadas ou enfraquecidas) os pesos nas conexões entre as camadas são ajustados durante o
processo de aprendizagem de uma rede neural artificial.
A primeira camada da rede neural artificial é a camada de entrada, sendo a única exposta
às variáveis de entrada. Esta camada transmite os valores das variáveis de entrada para os
neurônios da camada escondida para que estes extraiam as características relevantes (ou padrões)
dos sinais de entrada e transmitam os resultados para a camada de saída, que consiste na última
camada da rede. A definição do número de neurônios em cada camada é realizada de forma
empírica. O treinamento (ajuste) de uma rede neural consiste em um processo iterativo de
obtenção dos pesos das conexões entre as unidades de processamento.
O principal algoritmo de treinamento é o backpropagation cujo ajuste dos pesos ocorre
mediante um processo de otimização realizado em duas fases: forward e backward, conforme
ilustrado na Figura 2.1(b). Na fase forward, é calculada a resposta fornecida pela rede para um
dado padrão de entrada. Na fase backward, o desvio (erro) entre a resposta desejada (alvo) e a
resposta fornecida pela RNA é utilizado para o ajuste de pesos das conexões.
Ao longo do treinamento da rede neural os vários padrões de entrada e as respectivas
saídas desejadas são apresentados à RNA, de forma que os pesos das sinapses sejam corrigidos,
camada de
entrada
camada
escondidacamada de
saída
FASE FORWARD
FASE BACKWARD
padrão de
entrada
cálculo da
saída
erropesos
ajustados
9
de forma iterativa, pelo algoritmo do gradiente descendente, com a finalidade de minimizar a
soma dos erros quadráticos [6].
3. Resultados e discussões
Nos experimentos computacionais considerou-se a série temporal de velocidade de
vento (m/s), a 50 metros de atura, durante o mês de dezembro de 2005 no município de São
Martinho da Serra, situado na região central do Estado do Rio Grande do Sul, onde está
localizada uma das estações anemométricas do projeto SONDA - Sistema de Organização
Nacional de Dados Ambientais (http://sonda.ccst.inpe.br/).
A série tem 4.464 observações (medidas em intervalos de 10 minutos). O software
utilizado no experimento é o MATLAB. A amostra de treinamento possui 3572 observações e as
amostras de validação e teste 446 observações cada uma. A finalidade dos experimentos é avaliar
o ganho preditivo que é promovido pela utilização da decomposição wavelet e SSA no pré-
processamento da série temporal da velocidade de vento.
Os resultados obtidos ao longo dos experimentos computacionais realizados são
comparados em termos das estatísticas de aderência: MAPE (erro médio percentual absoluto),
MAE (erro médio absoluto) e R2 (coeficiente de determinação):
∑[| |
]
∑[| |]
(
∑
∑
)
onde é o valor observado e é a previsão, ambos para o instante t, onde .
3.1 Experimento computacional com RNA
Neste experimento computacional ajustou-se uma RNA para fornecer previsões um
passo à frente. A arquitetura da RNA ajustada tem a seguinte configuração: 3 entradas
(velocidade do vento nos instantes t-1, t-2 e t-3); uma camada escondida com 4 neurônios
(função de ativação tansig); e 1 neurônio na camada de saída (função de ativação purelin). O
ajuste da RNA foi realizado utilizando-se o algoritmo de treinamento backpropagation
(disponível no MATLAB), aplicado aos dados normalizados ao intervalo [-1,1].
3.2 Experimento computacional com RNA e wavelet
10
Inicialmente fez-se a decomposição wavelet de nível dois da série temporal de
velocidade de vento [ ] . Tal procedimento decompõe a série temporal de
velocidade de vento em três componentes (subséries): duas de detalhes e uma de aproximação, de
forma que, em cada instante t, tem-se que:
, onde o valor de
escala ótimo é obtido automaticamente pelo MATLAB, utilizando-se como critério a
minimização da soma dos erros quadráticos. Neste experimento considerou-se a base ortonormal
de Daubechies d10 [3], cujas curvas teóricas das funções escala e wavelet com momento igual a
10 (db10) são ilustradas na figura 3.1.
(a) Função escala de Daubechies db10. (b) Função wavelet de Daubechies db10.
Figura 3.1 - Funções de Daubechies dB 10 (fonte: http://wavelets.pybytes.com/wavelet/db10/).
Em seguida, conforme ilustrado na Figura 3.2, cada componente foi modelada
separadamente por meio de uma rede neural artificial com uma camada escondida formada por
quatro neurônios e desenhada para fornecer previsões um passo à frente de cada componente, a
partir de seus três últimos valores. A previsão da velocidade do vento, um passo à frente, é dada
pela soma das previsões de cada componente.
Figura 3.2 - Decomposição wavelet de nível n e previsão.
11
3.3 Experimento computacional com RNA, wavelet e SSA
Cada observação em t de uma série de tempo { } pode ser interpretada tal como
, onde é a componente determinística e é a componente estocástica (ou ruído
em t), sendo que os elementos da família { } são independentes entre si. Assim sendo, tem-se
que é possível realizar a filtragem da série de tempo { } com o uso do método SSA, de forma
a gerar uma série aproximada (ou filtrada) { } , onde e .
Neste experimento, a partir da série observada { } , realizou-se o cálculo da matriz
trajetória X, com tamanho de janela igual 2.232. Em seguida, calculou-se o SVD da matriz
trajetória X, gerando 2.232 componentes. Considerando a ordenação parcial do maior para o
menor no conjunto de valores singulares {( )
}
, segue que foram considerados 1.600
componentes na expansão SVD associadas aos 1.600 maiores singulares em {( )
}
, para
gerar a uma aproximação da matriz trajetória X, denotada por . Em outras palavras, o ponto e
corte na expansão SVD é igual a 1.600. Por fim, por meio de procedimento de Hankerização,
obtém-se a série temporal aproximada { } a partir de . É realizado o teste estatístico BDS
para definir um ponto de corte na expansão SVD de X, de modo que não haja existência de
estrutura de dependência na série temporal de resíduos { } .
Na Tabela 3.1, verifica-se os resultados do teste BDS na série temporal de resíduos da
série temporal de velocidade de vento original e de sua série temporal aproximada via SSA. A
hipótese nula no teste BDS é que não existe estrutura de dependência na série temporal testada
(no caso, a série temporal de resíduos). Note que, a 1% de significância, até a dimensão 4,
verifica-se inexistência de dependência temporal na série temporal de resíduos. As dimensões 5 e
6 foram desconsideradas.
Tabela 3.1 - Resultados do Teste BDS
Dimensão Estatística BDS Erro Padrão z- calculado Probabilidade
2 0,001320 0,000994 1,328097 0,1841
3 0,001821 0,001573 1,157217 0,2472
4 0,004174 0,001866 2,237050 0,0253
5 0,005996 0,001936 3,096607 0,0020
6 0,007137 0,001859 3,838214 0,0001
12
Após a filtragem via SSA, a série temporal aproximada foi decomposta via wavelet (tal
como no segundo experimento) e uma RNA foi desenhada para fornecer previsões um passo à
frente de cada componente, conforme indicada na figura 3.3. Finalmente, as previsões das
componentes foram somadas, gerando as previsões da série temporal de velocidade de vento.
Figura 3.3 - Decomposição wavelet de nível n com tratamento SSA e previsão.
3.4 Comparação dos resultados
Nas Tabelas 3.2, 3.3 e 3.4, são apresentadas respectivamente, as estatísticas MAPE, MAE
e R2 das amostras de treinamento, validação e teste, obtidas nos três experimentos
computacionais descritos acima.
Tabela 3.2 – Qualidade do ajuste no primeiro experimento (RNA).
Amostra de Treino Amostra de Validação Amostra de Teste
MAPE MAE R2
MAPE MAE R2
MAPE MAE R2
11,69% 0,4340 91,48% 12,30% 0,3449 93,85% 11,46% 0,4908 89,81%
Tabela 3.3 – Qualidade do ajuste no segundo experimento (RNA + wavelet).
Amostra de Treino Amostra de Validação Amostra de Teste
MAPE MAE R2
MAPE MAE R2
MAPE MAE R2
3,68% 0,1462 99,06% 3,82% 0,1153 99,32% 3,94% 0,1788 98,71%
13
Tabela 3.4 – Qualidade do ajuste no terceiro experimento (RNA + wavelet + SSA)
Amostra de Treino Amostra de Validação Amostra de Teste
MAPE MAE R2
MAPE MAE R2
MAPE MAE R2
2,00% 0,0775 99,98% 2,27% 0,0841 99,99% 2,99% 0,1491 99,77%
Conforme indicado pelas estatísticas apresentadas nas Tabelas 3.2, 3.3 e 3.4, a
decomposição wavelet melhorou significativamente o desempenho do previsor, Já a filtragem via
SSA melhorou levemente a capacidade preditiva do previsor. Embora pequena, a contribuição da
SSA não é desprezível.
A seguir, nas figuras 3.4a e 3.4b são mostrados os gráficos dos valores observados e
previstos com a utilização da decomposição wavelet e SSA. Conforme ilustrado nestas figuras, os
valores de velocidade do vento previstos com o auxílio da decomposição wavelet após tratamento
SSA aderem bem aos valores observados, refletindo o bom desempenho retratado nas estatísticas
apresentadas na Tabela 3.4.
a) Amostra de validação
(b) Amostra de teste
Figura 3.4 – Valores observados e previstos com a utilização da decomposição wavelet e SSA.
4 Conclusões
Com a disseminação em larga escala de novos parques eólicos, os responsáveis pela
operação de sistemas elétricos necessitam de ferramentas capazes de prever a disponibilidade de
recursos eólicos em horizontes de curto prazo. Para tal finalidade, destacam-se as técnicas de
inteligência computacional, em particular as redes neurais artificiais (RNA). Os resultados
apresentados no artigo mostram que a decomposição da série temporal utilizando funções
wavelet e análise espectral singular (SSA) contribuem substancialmente para o aumento da
capacidade preditiva da rede neural utilizada, conforme verificado nas estatísticas de
desempenho (MAPE, MAE e R2).
O motivo principal do ganho se deve ao fato de que, ao se decompor a série de
velocidade de vento em subséries de diferentes escalas de frequência, melhores padrões de
comportamento são obtidos. Sob outra ótica, tem-se que a série temporal original está
“contaminada” com ruído, porém as subséries são, evidentemente, menos ruidosas que a série
original, na medida em que o ruído também é decomposto, o que favoreceu seu mapeamento no
14
tempo pelo previsor neuronal. Além disso, ao realizar a suavização SSA antes de decompor a
série via wavelet, a série de entrada passa a ser menos ruidosa que a série inicial original.
Portanto, as previsões geradas pelo previsor neuronal com a utilização da decomposição
wavelet e SSA foram mais acuradas em todas as estatísticas de aderência para geração de
previsões pontuais um passo à frente da série temporal de velocidade de vento.
5 Bibliografia
[1] AMARANTE, O.A.C., Brower, M., Zack, J.,Sá, A.L. Atlas do potencial eólico brasileiro,
Centro de Pesquisas de Energia Elétrica, Brasília, 2001.
[2] CUSTÓDIO, R. S. Energia eólica para a produção de energia elétrica. Eletrobrás, Rio de
Janeiro, 2009.
[3] DAUBECHIES, I. Orthonormal bases of compactly supported wavelets. Comm. Pure and
Applied Math., 41, pp.909-996, 1988.
[4] FERNANDES, C. Notas de aula análise de séries financeiras, PUC-RIO, 2006.
[5] GOLYANDINA, N., Nekrutkin, V., Zhihgljavsky, A. Analysis of time series structure:
SSA and reletade techniques. Chapman & Hall/CRC. New York, USA,2001.
[6] HAYKIN, S. Redes neurais princípios e aplicações, segunda edição, Porto Alegre, 2001.
[7] HASSANI, H.Singular Spectrum Analysis: Methodology and Comparison. Journal of Data
Science 5, 239-257,2007.
[8] KHAN, A.A., Shahidehpour, M. one day ahead wind speed forecasting using wavelets,
Power Systems Conference and Exposition, IEEE/PES, Seattle, USA, 2009.
[9] KUBRUSLY, C. S. Elements of operator theory. Birkhäuser, Boston, 2001.
[10] KUBRUSLY, C. S, Levan N. Dual-shift decomposition of Hilbert space. Semigroups of
Operators: Theory and Application 2, 145-157, 2002.
[11] LEVAN, N., Kubrusly, C. S.A wavelet “time-shift-detail” decomposition. Mathematics
and Computers in Simulation 63, 73-78, 2003.
[12] MALLAT,S. A wavelet tour of signal processing, Academic Press, San Diego, 1998.
[13] OGDEN,R.T. Essential wavelets for statistical applications and data analysis,
Birkhäuser, Boston, 1997.
[14]PISON, P., Kariniotakis, G.N. Wind power forecasting using fuzzy neural networks
enhanced with on-line prediction risk assessment, IEEE Bologna PowerTech Conference,
Bologna, Italy, 2003.
[15] WWEA – WORD WIND ENERGY ASSOCIATION, World wind energy report 2010,
Bonn, Germany, February, 2011.