<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Energy Res.</journal-id>
<journal-title>Frontiers in Energy Research</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Energy Res.</abbrev-journal-title>
<issn pub-type="epub">2296-598X</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">780928</article-id>
<article-id pub-id-type="doi">10.3389/fenrg.2021.780928</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Energy Research</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Short-Term Nacelle Orientation Forecasting Using Bilinear Transformation and ICEEMDAN Framework</article-title>
<alt-title alt-title-type="left-running-head">Li et&#x20;al.</alt-title>
<alt-title alt-title-type="right-running-head">AI Research in Energy</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Li</surname>
<given-names>Huajin</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1510276/overview"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Deng</surname>
<given-names>Jiahao</given-names>
</name>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1488563/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Feng</surname>
<given-names>Peng</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Pu</surname>
<given-names>Chuanhao</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Arachchige</surname>
<given-names>Dimuthu D. K.</given-names>
</name>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1117847/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Cheng</surname>
<given-names>Qian</given-names>
</name>
<xref ref-type="aff" rid="aff4">
<sup>4</sup>
</xref>
</contrib>
</contrib-group>
<aff id="aff1">
<label>
<sup>1</sup>
</label>School of Architecture and Civil Engineering, Chengdu University, <addr-line>Chengdu</addr-line>, <country>China</country>
</aff>
<aff id="aff2">
<label>
<sup>2</sup>
</label>State Key Laboratory of Geo-hazard Prevention and Geo-environment Protection, Chengdu University of Technology, <addr-line>Chengdu</addr-line>, <country>China</country>
</aff>
<aff id="aff3">
<label>
<sup>3</sup>
</label>College of Computing and Digital Media, DePaul University, <addr-line>Chicago</addr-line>, <addr-line>IL</addr-line>, <country>United&#x20;States</country>
</aff>
<aff id="aff4">
<label>
<sup>4</sup>
</label>College of Civil Engineering, Sichuan University of Science and Engineering, <addr-line>Zigong</addr-line>, <country>China</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1375074/overview">Tinghui Ouyang</ext-link>, National Institute of Advanced Industrial Science and Technology (AIST), Japan</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1428895/overview">Jirong Yi</ext-link>, The University of Iowa, United&#x20;States</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1492822/overview">Arian Dhini</ext-link>, University Indonesia, Indonesia</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Jiahao Deng, <email>jdeng5@depaul.edu</email>
</corresp>
<fn fn-type="other">
<p>This article was submitted to Wind Energy, a section of the journal Frontiers in Energy Research</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>26</day>
<month>10</month>
<year>2021</year>
</pub-date>
<pub-date pub-type="collection">
<year>2021</year>
</pub-date>
<volume>9</volume>
<elocation-id>780928</elocation-id>
<history>
<date date-type="received">
<day>22</day>
<month>09</month>
<year>2021</year>
</date>
<date date-type="accepted">
<day>12</day>
<month>10</month>
<year>2021</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2021 Li, Deng, Feng, Pu, Arachchige and Cheng.</copyright-statement>
<copyright-year>2021</copyright-year>
<copyright-holder>Li, Deng, Feng, Pu, Arachchige and Cheng</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these&#x20;terms.</p>
</license>
</permissions>
<abstract>
<p>To maximize energy extraction, the nacelle of a wind turbine follows the wind direction. Accurate prediction of wind direction is vital for yaw control. A tandem hybrid approach to improve the prediction accuracy of the wind direction data is developed. The proposed approach in this paper includes the bilinear transformation, effective data decomposition techniques, long-short-term-memory recurrent neural networks (LSTM-RNNs), and error decomposition correction methods. In the proposed approach, the angular wind direction data is firstly transformed into time-series to accommodate the full range of yaw motion. Then, the continuous transformed series are decomposed into a group of subseries using a novel decomposition technique. Next, for each subseries, the wind directions are predicted using LSTM-RNNs. In the final step, it decomposed the errors for each predicted subseries to correct the predicted wind direction and then perform inverse bilinear transformation to obtain the final wind direction forecasting. The robustness and effectiveness of the proposed approach are verified using data collected from a wind farm located in Huitengxile, Inner Mongolia, China. Computational results indicate that the proposed hybrid approach outperforms the other single approaches tested to predict the nacelle direction over short-time horizons. The proposed approach can be useful for practical wind farm operations.</p>
</abstract>
<kwd-group>
<kwd>wind direction</kwd>
<kwd>bilinear transformation</kwd>
<kwd>ICEEMDAN</kwd>
<kwd>LSTM-RNN</kwd>
<kwd>error correction</kwd>
</kwd-group>
<contract-num rid="cn001">2018YFC1505105</contract-num>
<contract-num rid="cn002">SKLGP 2021K014</contract-num>
<contract-num rid="cn003">SCKCZY2021-YB009</contract-num>
<contract-sponsor id="cn001">National Key Research and Development Program of China<named-content content-type="fundref-id">10.13039/501100012166</named-content>
</contract-sponsor>
<contract-sponsor id="cn002">State Key Laboratory of Geohazard Prevention and Geoenvironment Protection<named-content content-type="fundref-id">10.13039/501100011171</named-content>
</contract-sponsor>
<contract-sponsor id="cn003">Sichuan Mineral Resources Research Center<named-content content-type="fundref-id">10.13039/501100013281</named-content>
</contract-sponsor>
<contract-sponsor id="cn004">Sichuan Province Youth Science and Technology Innovation Team<named-content content-type="fundref-id">10.13039/501100010250</named-content>
</contract-sponsor>
</article-meta>
</front>
<body>
<sec id="s1">
<title>Introduction</title>
<p>Wind energy generation is expanding with about 12% of world&#x2019;s electricity to be supplied by 2020 (<xref ref-type="bibr" rid="B14">Kodama and Burls 2019</xref>). Compared with the traditional form of power generation, wind energy has the advantages of zero pollution and low operation cost. Hence, it has become one of the fastest growing renewable energy power supplies globally (<xref ref-type="bibr" rid="B6">Duan et&#x20;al., 2021</xref>).</p>
<p>Although it has obvious advantages over others, wind energy still faces technical challenges due to the characteristics of chaos, randomness, and intermittence which make the wind data complex. The wind direction is one of the most complex aspect of the wind data due to its high dynamics in both spatial and temporal domains. To follow the wind direction, the nacelle of a wind turbine orientes the controlling of yaw and maximizes the energy output. For most efficient energy extraction, the nacelle orientation of a wind turbine needs to agree with wind direction which calls for accurate and prediction of the wind direction (<xref ref-type="bibr" rid="B11">Hu et&#x20;al., 2016</xref>).</p>
<p>According to literature review, statistical approaches based on meteorological and geographic information are widely applied to forecast wind direction (<xref ref-type="bibr" rid="B23">Mcwilliams and Sprevak 1982</xref>; <xref ref-type="bibr" rid="B3">Castino et&#x20;al., 1998</xref>; <xref ref-type="bibr" rid="B7">Erdem and Shi 2011</xref>). <xref ref-type="bibr" rid="B21">Liu et&#x20;al. (2010)</xref> applied a neural Kriging method to spacially estimate the distribubiton of wind directions. <xref ref-type="bibr" rid="B7">Erdem and Shi (2011)</xref> developed autoregressive moving average (ARMA) model to forecast the short-term wind directions. <xref ref-type="bibr" rid="B22">Masseran et&#x20;al. (2013)</xref> used a mixture of Von Mises models to fit the wind direction series.</p>
<p>Therefore, machine learning adoptions for wind direction forecasting have evolved from the classic approach to deep learning, which is then improved in this study (<xref ref-type="bibr" rid="B24">Mohandes et&#x20;al., 2004</xref>; <xref ref-type="bibr" rid="B2">Bilgili et&#x20;al., 2007</xref>). In the wind direction forecasting sector, <xref ref-type="bibr" rid="B42">Zhou et&#x20;al. (2011)</xref> selected least-square support vector machines (LS-SVM) to predict the wind directions. <xref ref-type="bibr" rid="B34">Tagliaferri et&#x20;al. (2015)</xref> developed artificial neural networks to forecast the short-term wind directions. <xref ref-type="bibr" rid="B13">Khosravi et&#x20;al. (2018)</xref> developed an adaptive neuro-fuzzy inference system to predict the wind directions. <xref ref-type="bibr" rid="B1">Amin et&#x20;al. (2018)</xref> improved the wind direction forecasting using the echo state network (ESN) which is a deep-learning algorithm. <xref ref-type="bibr" rid="B36">Tang et&#x20;al. (2021)</xref> integrated the ESN network with IFPA optimization algorithm and developed a two-step deep-learning wind direction framework.</p>
<p>Considering the complexity and high dynamics of the wind direction series, additional measures are essential to study in the pattern inside. Even though deep learning algorithms have achieved promising results in the field of time-series prediction, it is still challenging for a single deep-learning approach to adapt all wind direction patterns. To further improve the prediction performance, hybrid prediction models are considered to be the mainstream since last year. The signal decomposition is one of the most popular components within the hybrid models published. It contains wavelet decomposition (<xref ref-type="bibr" rid="B20">Liu et&#x20;al., 2014</xref>), empirical mode decomposition (EMD) (<xref ref-type="bibr" rid="B32">Santhosh et&#x20;al., 2018</xref>), complete ensemble empirical model decomposition (CEEMD) (<xref ref-type="bibr" rid="B41">Zhang et&#x20;al., 2017</xref>), complete EEMD with adaptive noise (CEEMDAN) (<xref ref-type="bibr" rid="B39">Yang and Wang 2018</xref>), and the improved CEEMDAN (ICEEMDAN) (<xref ref-type="bibr" rid="B30">Rong et&#x20;al., 2019</xref>). In particular, the ICEEMDAN has demonstrated its superior performance in decomposing a complex signal into a finite number of intrinsic mode functions with transient frequencies. The decomposed subseries contains the detailed characteristics of the signal and can essentially reflect the spatial and temporal patterns of the wind direction series (<xref ref-type="bibr" rid="B15">Kou et&#x20;al., 2020</xref>).</p>
<p>Based on the above considerations, in this research, we propose a new hybrid approach combining ICEEMDAN and error correction methods for short-term wind direction forecasting. First, the angular wind direction data has been transformed <italic>via</italic> bilinear transformation. Then, the transformed wind direction series are decomposed into a series of relatively simple subseries by the ICEEMDAN modules. Next, the LSTM-RNN is established as the prediction module to predict each sub-series. After that, the prediction errors are obtained and decomposed by ICEEMDAN modules. The statistical ARIMA model is used to predict the error subsequence and compute the prediction error. In the last step, the final prediction of the wind direction is made by summing all predicted subseries together with current predicted error and then transformed into angular data by inverse bilinear transformation.</p>
<p>The major contribution of this research can be summarized as follows: First, the wind direction forecasting system based on ICEEMDAN decomposition, LSTM-RNN and error correction has been proposed; Second, the comparative analysis is performed against other benchmarking deep-learning algorithm; Third, the experiments were performed in different seasons to explore seasonal patterns of wind directions.</p>
<p>The remainder of the manuscript is configured as follows. In Section &#x201c;dataset description and transformation&#x201d;, it summarizes the data collection process and patterns inside the wind direction dataset. In Section &#x201c;methodologies&#x201d;, it introduces the ICEEMDAN decomposition, LSTM-RNN, error correction, benchmarking deep-learning algorithms, and error correction procedures. The experimental results are provided in Section &#x201c;experimental results&#x201d; and the Conclusion is made in Section &#x201c;conclusions&#x201d; respectively.</p>
</sec>
<sec id="s2">
<title>Dataset Description and Transformation</title>
<sec id="s2-1">
<title>Data Analysis</title>
<p>In this study, the data has been collected during the year of 2020 from a wind farm namely Huitengxile wind power plant in Inner Mongolia, Northern China. It is one of the largest wind farms in Asian and it&#x2019;s located in the suburbs between Chaha&#x2019;er youyi zhongqi and Ulanqab city. The whole wind farm has multiple wind turbines that are distributed in an open flat grassland which provides rich wind resources. The prevailing wind directions are northwest and southeast which are very stable in recent years. The location and the annual wind rose diagrams has been illustrated in <xref ref-type="fig" rid="F1">Figure&#x20;1</xref>&#x20;below.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Location of the Huitengxile wind&#x20;farm.</p>
</caption>
<graphic xlink:href="fenrg-09-780928-g001.tif"/>
</fig>
<p>According to <xref ref-type="fig" rid="F1">Figure&#x20;1B</xref>, the two prevailing wind directions, around 180&#xb0; and 315&#xb0; are visible. The geographic center coordinate is 112&#xb0;40&#x2032;E and 41&#xb0;05&#x2032;N. It&#x2019;s annual average wind speed at 10&#xa0;m height is 7.2&#xa0;m/s and its annual average wind speed at 40&#xa0;m height is 8.8&#xa0;m/s. In the wind farm, the annual average air density is 1.07&#xa0;kg/m and it contains an effective wind speed of 5&#x2013;25&#xa0;m/s with strong stability and high quality.</p>
<p>The data used in this research has been collected by the supervisory control and data acquisition (SCADA) system. Usually, data on more than 100 parameters at 10&#xa0;s intervals is collected and stored in a SCADA system. The SCADA collected data of individual wind turbines is streamed to a central computer for condition monitoring, performance evaluation, and other forms of analysis.</p>
<p>In this research, the SCADA data collected at 20 wind turbines over the period of 2020 has been analyzed. According to <xref ref-type="fig" rid="F1">Figure&#x20;1B</xref>, there are two annual prevailing wind directions and it can be partitioned into four seasons independently as illustrated with the wind roses in <xref ref-type="fig" rid="F2">Figure&#x20;2</xref>. In the fall and spring, two prevailing wind directions around 150&#xb0; and 315&#xb0;are observed. In the winter and summer, one prevailing wind direction is noted. Since the wind direction data is captured as a discrete angular variable, it needs to be transformed for modeling. A bilinear transformation of the angular wind direction is applied in the next section.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Wind rose diagrams for four seasons.</p>
</caption>
<graphic xlink:href="fenrg-09-780928-g002.tif"/>
</fig>
</sec>
<sec id="s2-2">
<title>Bilinear Transformation of Angular Data</title>
<p>The value of wind direction ranges from 0&#xb0; to 360&#xb0;. It is likely that the wind direction may change from the interval, i.e (0&#xb0;, 10&#xb0;) to (350&#xb0;, 360&#xb0;). Practice shows that bilinear transformation is a better way for transforming discrete wind direction data to continuous data than the sine and cosine transformation (<xref ref-type="bibr" rid="B29">Peng et&#x20;al., 2020</xref>). Geometrically, the two intervals are close to each other and therefore this change would lead to a large prediction error (<xref ref-type="bibr" rid="B2">Bilgili et&#x20;al., 2007</xref>). To avoid such error, transformation of the discrete angular variable into a standardized continuous variable is essential. One option is to use a sine and cosine transformation which is not the best approach due to two variables needed for prediction which enlarges the prediction errors. A better option is to apply a bilinear transformation (<xref ref-type="bibr" rid="B12">Jury 1973</xref>).</p>
<p>The bilinear transformation maps the analog plane (s-plane) into the digital plane (z-plane) (<xref ref-type="bibr" rid="B9">Groutage et&#x20;al., 2003</xref>) (see <xref ref-type="fig" rid="F3">Figure&#x20;3</xref>). The transformation function, the ratio of two polynomials (<xref ref-type="bibr" rid="B5">Davies 1974</xref>), is expressed in <xref ref-type="disp-formula" rid="e1">Eq. 1</xref>.<disp-formula id="e1">
<mml:math id="m1">
<mml:mrow>
<mml:mi>H</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi>Z</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mi>T</mml:mi>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mi>T</mml:mi>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>where: <italic>s</italic> is the original value of angular variable in s-plane; <italic>T</italic> is the time interval of the transformation. The bilinear transformation expressed the angular variable between 0&#xb0; and 360&#xb0; as continuous and normalized. The inverse bilinear transformation is expressed in <xref ref-type="disp-formula" rid="e2">Eq. 2</xref>.<disp-formula id="e2">
<mml:math id="m2">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>T</mml:mi>
</mml:mfrac>
<mml:mfrac>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>H</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>Z</mml:mi>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>H</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>Z</mml:mi>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>where: <italic>s</italic> is the inversed value of angular variable in s-plane; and <italic>H</italic>(<italic>s</italic>)<italic>z</italic> is the transformed angular variable.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Illustration of the bilinear transformation.</p>
</caption>
<graphic xlink:href="fenrg-09-780928-g003.tif"/>
</fig>
<p>Since the wind direction data is noisy, a bilinear transformation function acting as a low-pass filter in the continuous-time domain reduces the noise (<xref ref-type="bibr" rid="B5">Davies 1974</xref>). A prediction model developed with the transformed data is more accurate than the model based on the discrete time-series angular&#x20;data.</p>
</sec>
</sec>
<sec id="s3">
<title>Methodologies</title>
<p>The use of deep learning algorithms in regression, multi-class classification, collaborative filtering, and graphic learning is growing (<xref ref-type="bibr" rid="B16">Lecun et&#x20;al., 2015</xref>). The concept of deep learning originates from research in neural networks and it avoids the local optima dilemma. However, any single deep learning algorithms can offer limited extraction of patterns inside the dataset. Hybrid frameworks containing multiple deep learning algorithm is becoming the new mainstream in academia.</p>
</sec>
<sec id="s4">
<title>Iceemdan</title>
<p>In this research, the improved complete ensemble empirical mode decomposition with adaptive noise (ICEEMDAN) is served as the major module in the hybrid forecasting framework. It is considered as an improvement on empirical mode decomposition (EMD) which decomposes the wind directions in the temporal domain (<xref ref-type="bibr" rid="B43">Colominas et&#x20;al., 2014</xref>).</p>
<p>The time-series of wind direction can be expressed as the sum of multiple IMFs and the residual after the ICEEMDAN decomposition which can be expressed in <xref ref-type="disp-formula" rid="e3">Eq. 3</xref> as follows:<disp-formula id="e3">
<mml:math id="m3">
<mml:mrow>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
<mml:mi>I</mml:mi>
<mml:mi>M</mml:mi>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>
</p>
<p>The amplitude energy <inline-formula id="inf1">
<mml:math id="m4">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf2">
<mml:math id="m5">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, &#x2026;, <inline-formula id="inf3">
<mml:math id="m6">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> of the IMFs is calculated as <xref ref-type="disp-formula" rid="e4">Eq. 4</xref>:<disp-formula id="e4">
<mml:math id="m7">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:munderover>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>M</mml:mi>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>where <italic>N</italic> denotes the total number of sampling points of the <italic>j</italic>th IMF. Assuming that the energy carried by <italic>r</italic>(<italic>t</italic>) can be ignored, the total energy of the transformed direction series can be expressed as <xref ref-type="disp-formula" rid="e5">Eq. 5</xref> as follows:<disp-formula id="e5">
<mml:math id="m8">
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:munderover>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>M</mml:mi>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#xa0;</mml:mo>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>
</p>
<p>To remain the data in the same magnitude, the amplitude of the IMFs is normalized to facilitate the subsequent calculations and the impact of singular data has been reduced. Hence, the energy entropy of the ICEEMDAN framework can be expressed as <xref ref-type="disp-formula" rid="e6">Eq. 6</xref> below:<disp-formula id="e6">
<mml:math id="m9">
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>ln</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#xa0;</mml:mo>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>
</p>
<p>Compared with other decomposition methods, the ICEEMDAN can not only reduce the noise in the original time-series data but also reduce the residual spurious pattern problems based by signal overlap. Thus, the decomposed subseries gains more orthogonality among each other and it can provide more accurate reconstruction of the original series.</p>
<sec id="s4-1">
<title>Short-Term Wind Direction Forecasting Using ICEEMDAN</title>
<p>To integrate the wind direction series with the ICEEMDAN modules, the implementations are introduced as follows (<xref ref-type="bibr" rid="B6">Duan et&#x20;al., 2021</xref>):</p>
<p>Step 1: Compute the local means of realizations using the EMD algorithm described in <xref ref-type="disp-formula" rid="e7">Eq. 7</xref>:<disp-formula id="e7">
<mml:math id="m10">
<mml:mrow>
<mml:msup>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:msup>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#xa0;</mml:mo>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>where <inline-formula id="inf4">
<mml:math id="m11">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mtext>&#x3c3;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mtext>&#x3c3;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:msup>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>; <inline-formula id="inf5">
<mml:math id="m12">
<mml:mrow>
<mml:mtext>&#x3c3;</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> compute the standard deviation; and <inline-formula id="inf6">
<mml:math id="m13">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the reciprocal of the desired signal-to-noise ratio between the first added noise and the analyzed signal.</p>
<p>Step 2: Compute residual term <italic>R</italic>
<sub>
<italic>1</italic>
</sub> in the first component using <xref ref-type="disp-formula" rid="e8">Eq. 8</xref>:<disp-formula id="e8">
<mml:math id="m14">
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>M</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:msup>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#xa0;</mml:mo>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>
</p>
<p>Step 3: Compute the first mode at the first stage (k &#x3d; 1) using <xref ref-type="disp-formula" rid="e9">Eq. 9</xref>:<disp-formula id="e9">
<mml:math id="m15">
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>
</p>
<p>Step 4: Estimate the second residue as the average of local means of the realizations <inline-formula id="inf7">
<mml:math id="m16">
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:msup>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and then define the second mode using <xref ref-type="disp-formula" rid="e10">Eq. 10</xref> as follows:<disp-formula id="e10">
<mml:math id="m17">
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>M</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:msup>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(10)</label>
</disp-formula>
</p>
<p>Step 5: For the other terms (k &#x3d; 3, &#x2026; ,K) of residuals, they can be computed by <xref ref-type="disp-formula" rid="e11">Eq. 11</xref>:<disp-formula id="e11">
<mml:math id="m18">
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>M</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:msup>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(11)</label>
</disp-formula>
</p>
<p>Step 6: Compute the other terms (k &#x3d; 3, &#x2026; ,K) of the mode by <xref ref-type="disp-formula" rid="e12">Eq. 12</xref>:<disp-formula id="e12">
<mml:math id="m19">
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(12)</label>
</disp-formula>
</p>
<p>Step 7: Implement step 4 for the next iteration.</p>
<p>For the transformed wind direction series, the IMF components are obtained <italic>via</italic> the above steps which can be illustrated by the diagram presented in <xref ref-type="fig" rid="F4">Figure&#x20;4</xref>.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Diagrams of ICEEMDAN modules.</p>
</caption>
<graphic xlink:href="fenrg-09-780928-g004.tif"/>
</fig>
</sec>
<sec id="s4-2">
<title>Long-Short-Term Memory Recurrent Neural Network</title>
<p>A major drawback of the classical deep neural networks is that they do not have memory of the past periods. The time series information such as the past clusters of seasonal patterns and seasonal trend may not be reflected (<xref ref-type="bibr" rid="B17">Lee et&#x20;al. 1993</xref>). Introduced by <xref ref-type="bibr" rid="B10">Hochreiter and Schmidhuber (1997)</xref> and <xref ref-type="bibr" rid="B8">Gers et&#x20;al. (2003)</xref>, the long-short-term memory recurrent neural network (LSTM-RNN) matches the needs and it is used in this paper to predict wind direction.</p>
<p>The long-short-term memory recurrent neural network (LSTM-RNN) contains units called memory blocks composed of memory cells with self-connections storing temporal states. Each memory block includes an input and output gate. The input gate controls the flow of input data into the cell. The output gate controls the output data flow into the rest of the network (<xref ref-type="bibr" rid="B31">Sak et&#x20;al. 2014</xref>). In addition, the LSTM-RNN has peephole connections (<xref ref-type="bibr" rid="B8">Gers et&#x20;al. 2003</xref>) from its internal cells to the gates in the same cell to learn precise timing of the output. The architecture of LSTM-RNN is illustrated in <xref ref-type="fig" rid="F5">Figure&#x20;5</xref>.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Autocorrelation analysis of time-series wind direction&#x20;data.</p>
</caption>
<graphic xlink:href="fenrg-09-780928-g005.tif"/>
</fig>
<p>With a long-short-term memory recurrent neural network (LSTM-RNN) architecture, the mapping from an input to an output layer is iteratively computed from <xref ref-type="disp-formula" rid="e13">Eqs 13</xref>&#x2013;<xref ref-type="disp-formula" rid="e18">18</xref> (<xref ref-type="bibr" rid="B8">Gers et&#x20;al. 2003</xref>).<disp-formula id="e13">
<mml:math id="m20">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">b</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(13)</label>
</disp-formula>
<disp-formula id="e14">
<mml:math id="m21">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">b</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(14)</label>
</disp-formula>
<disp-formula id="e15">
<mml:math id="m22">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>&#x2218;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>&#x2218;</mml:mo>
<mml:mi>g</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">b</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(15)</label>
</disp-formula>
<disp-formula id="e16">
<mml:math id="m23">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mrow>
<mml:mi>o</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mrow>
<mml:mi>o</mml:mi>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mrow>
<mml:mi>o</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">b</mml:mi>
<mml:mi>o</mml:mi>
</mml:msub>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(16)</label>
</disp-formula>
<disp-formula id="e17">
<mml:math id="m24">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>&#x2218;</mml:mo>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(17)</label>
</disp-formula>
<disp-formula id="e18">
<mml:math id="m25">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">y</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3d5;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">b</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(18)</label>
</disp-formula>where: <italic>W</italic> are the weight matrices (i.e.,&#x20;<italic>W</italic>
<sub>
<italic>ix</italic>
</sub> is the weight matrix from the input to the input layer; <italic>W</italic>
<sub>
<italic>ic</italic>
</sub>, <italic>W</italic>
<sub>
<italic>fc</italic>
</sub>, <italic>W</italic>
<sub>
<italic>oc</italic>
</sub> are diagonal weight matrices of the peephole connections (<xref ref-type="bibr" rid="B8">Gers et&#x20;al., 2003</xref>)); <italic>b</italic>
<sub>
<italic>i</italic>
</sub>,<italic>b</italic>
<sub>
<italic>f</italic>
</sub>,<italic>b</italic>
<sub>
<italic>o</italic>
</sub>, and <italic>b</italic>
<sub>
<italic>c</italic>
</sub> are the bias vectors; <italic>m</italic> is the cell output activation vector; <italic>sig</italic> () is the sigmoid function; <italic>i</italic>, <italic>f</italic>, <italic>o</italic>, and <italic>c</italic> are the input gate, forget gate, output gate, and cell activation vectors, respectively, with all having the same size as the cell output activation vector <italic>m</italic>; <inline-formula id="inf8">
<mml:math id="m26">
<mml:mo>&#x2218;</mml:mo>
</mml:math>
</inline-formula> is the element-wise product of the vectors; and <italic>g</italic> () and <italic>h</italic> () are the cell input and cell output activation functions, respectively.</p>
</sec>
<sec id="s4-3">
<title>Benchmarking Machine Learning Algorithms</title>
<p>Comparative analysis is performed in this research against the other benchmarking popular deep learning algorithms. All algorithms tested here are using the same ICEEMDAN framework as described in Section &#x201c;Short-term Wind Direction Forecasting using ICEEMDAN&#x201d;. The benchmarking deep learning algorithms compared includes deep neural network (DNN) (<xref ref-type="bibr" rid="B38">Xu et&#x20;al., 2018</xref>; <xref ref-type="bibr" rid="B33">Sun et&#x20;al., 2020</xref>; <xref ref-type="bibr" rid="B40">Yi and Xu, 2020</xref>), deep belief network (DBN) (<xref ref-type="bibr" rid="B26">Ouyang et&#x20;al., 2019</xref>; <xref ref-type="bibr" rid="B19">Li et&#x20;al., 2020</xref>), kernel-based extreme learning machine (KELM) (<xref ref-type="bibr" rid="B18">Li et&#x20;al., 2018</xref>; <xref ref-type="bibr" rid="B25">Ouyang et&#x20;al., 2018</xref>), and gated recurrent unit network (GRU) (<xref ref-type="bibr" rid="B28">Pan et&#x20;al., 2019</xref>; <xref ref-type="bibr" rid="B35">Tang and Zhang, 2019</xref>).</p>
<p>The DNN is a fully connected feedforward network that consists of a cascade of multiple layers and hidden units. It&#x2019;s structure with multiple processing layers enables it to handle highly nonlinear patterns inside the dataset. The deep temporal representations in the temporal domain can be effectively extracted by&#x20;DNN.</p>
<p>Similar to DNN, the DBN consists of multiple layers of restricted Boltzmann machines (RBMs). It also contains a supervised regression layer stacked on the top of all RMBs for classification or regression tasks. Inside each RBM, it contains an input layer and a hidden layer with hidden-to-all-visible connections.</p>
<p>The ELM is a single hidden layer feedforward network. Instead of conventional back-propagation, it uses Penn-Moore pseudo-inverse to compute the wights between the hidden layer and output layer. The KELM is the improvement of vanilla ELM which uses the kernel matrix to replace the randomly initialized weights between the input layer and output layer. The most popular applied kernel functions include RBF, linear function, and polynomial function.</p>
<p>The GRU is another type of recurrent neural network other than LSTM-RNN proposed by <xref ref-type="bibr" rid="B4">Cho et&#x20;al. (2014)</xref>. In a typical GRU unit, it has one less gate than the LSTM unit and consists of two gates: the reset gate and the update gate. Hence, the GRU is also popular in modeling time-series dataset.</p>
</sec>
<sec id="s4-4">
<title>Measurement Matrices</title>
<p>To assess prediction accuracy of the proposed deep learning model, four metrics are computed: the MAE [Mean absolute error (<xref ref-type="disp-formula" rid="e19">Eq. 19</xref>)], the MAPE [Mean absolute percentage error (<xref ref-type="disp-formula" rid="e20">Eq. 20</xref>)], the MSE [Mean square error (<xref ref-type="disp-formula" rid="e21">Eq. 21</xref>)], and the RMSE [Root mean square error (<xref ref-type="disp-formula" rid="e22">Eq. 22</xref>)].<disp-formula id="e19">
<mml:math id="m27">
<mml:mrow>
<mml:mi>MAE</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>N</mml:mi>
</mml:mfrac>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:munderover>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>o</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(19)</label>
</disp-formula>
<disp-formula id="e20">
<mml:math id="m28">
<mml:mrow>
<mml:mi>MAPE</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>N</mml:mi>
</mml:mfrac>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:munderover>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>o</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(20)</label>
</disp-formula>
<disp-formula id="e21">
<mml:math id="m29">
<mml:mrow>
<mml:mi>MSE</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>N</mml:mi>
</mml:mfrac>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mi>o</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>t</mml:mi>
<mml:mi>j</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(21)</label>
</disp-formula>
<disp-formula id="e22">
<mml:math id="m30">
<mml:mrow>
<mml:mi>RMSE</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>N</mml:mi>
</mml:mfrac>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mi>o</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>t</mml:mi>
<mml:mi>j</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:math>
<label>(22)</label>
</disp-formula>where: <italic>o</italic>
<sub>
<italic>j</italic>
</sub> is the <italic>j</italic>th predicted wind direction; <italic>t</italic>
<sub>
<italic>j</italic>
</sub> is the <italic>j</italic>th measured wind direction; and <italic>N</italic> denotes total number of samples.</p>
</sec>
<sec id="s4-5">
<title>Error Correction</title>
<p>To improve the forecasting accuracy, the error correction is implemented in this research. First, after the forecasting outcome produced by each LSTM-RNN, the error series E(t) of the training dataset can be computed by comparing the original transformed wind direction series. The step can be expressed in <xref ref-type="disp-formula" rid="e23">Eq. 23</xref> as follows:<disp-formula id="e23">
<mml:math id="m31">
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>S</mml:mi>
<mml:mi>T</mml:mi>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#xa0;</mml:mo>
</mml:mrow>
</mml:math>
<label>(23)</label>
</disp-formula>where <inline-formula id="inf9">
<mml:math id="m32">
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>S</mml:mi>
<mml:mi>T</mml:mi>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the final forecasted transformed series in the first module; and <inline-formula id="inf10">
<mml:math id="m33">
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the actual transformed wind direction series after bilinear transformation.</p>
<p>The forecasted errors of wind direction series E(t) are oscillatory in the time-series domain (<xref ref-type="bibr" rid="B37">Wasynczuk et&#x20;al., 1981</xref>). The relationship between oscillatory and decaying property of the wind direction errors can be represented by an ARIMA model which predicts the errors. In detail, the ARIMA can be constructed by computing autocorrelation expressed with the autocorrelation factor (ACF) (See. <xref ref-type="disp-formula" rid="e24">Eq. 24</xref>) and the partial autocorrelation factor (PACF)) (See. <xref ref-type="disp-formula" rid="e25">Eq. 25</xref>). Here, Cov() denotes the covariance; Var() denotes the variance; and <italic>Corr</italic> () denotes the Pearson&#x2019;s correlation coefficient.<disp-formula id="e24">
<mml:math id="m34">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(24)</label>
</disp-formula>
<disp-formula id="e25">
<mml:math id="m35">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>C</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mtext>&#x7c;</mml:mtext>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(25)</label>
</disp-formula>
</p>
<p>For each IMF, an ARIMA model is developed and then all outcomes of each ARIMA are integrated to obtain the final error series. Last, as illustrated in <xref ref-type="fig" rid="F4">Figure&#x20;4</xref>, the final prediction is achieved by <xref ref-type="disp-formula" rid="e26">Eq. 26</xref> as follows:<disp-formula id="e26">
<mml:math id="m36">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true">&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>S</mml:mi>
<mml:mi>T</mml:mi>
<mml:mi>M</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true">&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="true">&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#xa0;</mml:mo>
</mml:mrow>
</mml:math>
<label>(26)</label>
</disp-formula>where <inline-formula id="inf11">
<mml:math id="m37">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>S</mml:mi>
<mml:mi>T</mml:mi>
<mml:mi>M</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true">&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> denotes the forecasting results from the LSTMs; <inline-formula id="inf12">
<mml:math id="m38">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="true">&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> denotes the errors forecasted by ARIMA models; and <inline-formula id="inf13">
<mml:math id="m39">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true">&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> is the final forecasting outcomes.</p>
</sec>
</sec>
<sec id="s5">
<title>Experimental Results</title>
<sec id="s5-1">
<title>Training Strategies</title>
<p>In this section, computational experience with models predicting wind direction is presented. Wind data from four seasons, spring, summer, fall, and winter are used. Prediction of wind direction is conducted using dataset at 10, 20, and 30&#xa0;s resolution. The prediction horizons are 2, 5, 10&#xa0;min, and 1&#xa0;h. The prediction model is expressed in <xref ref-type="disp-formula" rid="e27">Eqs 27</xref>&#x2013;<xref ref-type="disp-formula" rid="e29">29</xref>.<disp-formula id="e27">
<mml:math id="m40">
<mml:mrow>
<mml:mi mathvariant="bold-italic">Y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#xa0;</mml:mo>
</mml:mrow>
</mml:math>
<label>(27)</label>
</disp-formula>
<disp-formula id="e28">
<mml:math id="m41">
<mml:mrow>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>5</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>6</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo>&#xa0;</mml:mo>
</mml:mrow>
</mml:math>
<label>(28)</label>
</disp-formula>
<disp-formula id="e29">
<mml:math id="m42">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>359</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#xa0;</mml:mo>
</mml:mrow>
</mml:math>
<label>(29)</label>
</disp-formula>where: <italic>f</italic>(D) represents the whole framework illustrated in <xref ref-type="fig" rid="F4">Figure&#x20;4</xref>; <italic>
<bold>D</bold>
</italic>
<sub>
<italic>t-i</italic>
</sub> is the <italic>i</italic>th lagged vector containing 1&#xa0;hour of the historical wind direction data; and <inline-formula id="inf14">
<mml:math id="m43">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denotes the <italic>i</italic>th lagged transformed wind direction series.</p>
<p>The wind speed and wind direction are 10&#xa0;s data. One hour of data (360 data points) is used as the input vector. The six-time lagged vectors containing 1&#xa0;hour of the historical wind direction data are selected as the input vectors. The wind direction of the 2, 5, 10&#xa0;min, and 1&#xa0;h horizon is predicted. The input vector is normalized beforehand and the predicted values are inverse-normalized.</p>
</sec>
<sec id="s5-2">
<title>Short-Term Predictions</title>
<p>Based on the training strategy stated in Section &#x201c;Training Strategies&#x201d;, experiments with the five selected algorithms have been performed. In all experiments, the wind direction has been predicted for the next 2, 5, 10&#xa0;min, and 1&#xa0;h. Experiments have been conducted in each of the four seasons of&#x20;2020.</p>
<p>The prediction accuracy results in <xref ref-type="fig" rid="F6">Figure&#x20;6</xref> demonstrate that the long-short-term memory recurrent neural network (LSTM-RNN) performs better over short-term horizons than the other algorithms. Since the LSTM-RNN contains long/short term memory, it produces smaller prediction errors than the DNN, DBN, KELM, and GRU. For the short-term horizons (i.e.,&#x20;2 and 5&#xa0;min), prediction accuracy of all five algorithms is similar. However, the LSTM-RNN provides more promising results for longer-term predictions (i.e.,&#x20;10&#xa0;min and 1&#xa0;h) of wind direction.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Performance of all measurement metrices with various prediction horizons in four seasons.</p>
</caption>
<graphic xlink:href="fenrg-09-780928-g006.tif"/>
</fig>
<p>The prediction accuracy in four seasons varies. In the fall and spring season, the prediction errors are larger than the errors in the summer and winter season. This is due to a larger variability of the wind direction over short-term horizons. Hence, training specific prediction models in different seasons is necessary.</p>
<p>
<xref ref-type="table" rid="T1">Table&#x20;1</xref> provide the MAPE for different resolution data (i.e.,&#x20;10, 20, 30&#xa0;s) and different prediction horizons (i.e.,&#x20;2, 5, 10&#xa0;min, and 1&#xa0;h) before the error correction. Obviously, the MAPE errors are smaller for the 10&#xa0;s data than for 20 and 30&#xa0;s. With the increase of the prediction horizon, the MAPEs increase. The LSTM-RNN algorithm has the smallest MAPE at all resolutions and all prediction horizons. Therefore, it is an effective algorithm for wind direction prediction at short-term horizons.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Mape of the five algorithms for 2020 before error correction. </p>
</caption>
<table>
<thead valign="top">
<tr>
<th rowspan="2" align="left">Season</th>
<th rowspan="2" align="center">Resolution (s)</th>
<th rowspan="2" align="center">Algorithm</th>
<th colspan="4" align="center">Prediction horizon</th>
<th rowspan="2" align="center">Season</th>
<th rowspan="2" align="center">Resolution (s)</th>
<th rowspan="2" align="center">Algorithm</th>
<th colspan="4" align="center">Prediction horizon</th>
</tr>
<tr>
<th align="center">2&#xa0;min</th>
<th align="center">5&#xa0;min</th>
<th align="center">10&#xa0;min</th>
<th align="center">1&#xa0;h</th>
<th align="center">2&#xa0;min</th>
<th align="center">5&#xa0;min</th>
<th align="center">10&#xa0;min</th>
<th align="center">1&#xa0;h</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td rowspan="15" align="left">Spring</td>
<td rowspan="5" align="char" char=".">10</td>
<td align="center">DNN</td>
<td align="char" char=".">0.082</td>
<td align="char" char=".">0.106</td>
<td align="char" char=".">0.133</td>
<td align="char" char=".">0.211</td>
<td rowspan="15" align="center">Summer</td>
<td rowspan="5" align="char" char=".">10</td>
<td align="center">DNN</td>
<td align="char" char=".">0.047</td>
<td align="char" char=".">0.057</td>
<td align="char" char=".">0.092</td>
<td align="char" char=".">0.181</td>
</tr>
<tr>
<td align="center">DBN</td>
<td align="char" char=".">0.072</td>
<td align="char" char=".">0.09</td>
<td align="char" char=".">0.121</td>
<td align="char" char=".">0.207</td>
<td align="center">DBN</td>
<td align="char" char=".">0.056</td>
<td align="char" char=".">0.064</td>
<td align="char" char=".">0.097</td>
<td align="char" char=".">0.182</td>
</tr>
<tr>
<td align="center">KELM</td>
<td align="char" char=".">0.081</td>
<td align="char" char=".">0.098</td>
<td align="char" char=".">0.137</td>
<td align="char" char=".">0.224</td>
<td align="center">KELM</td>
<td align="char" char=".">0.062</td>
<td align="char" char=".">0.074</td>
<td align="char" char=".">0.106</td>
<td align="char" char=".">0.186</td>
</tr>
<tr>
<td align="center">GRU</td>
<td align="char" char=".">0.077</td>
<td align="char" char=".">0.095</td>
<td align="char" char=".">0.125</td>
<td align="char" char=".">0.211</td>
<td align="center">GRU</td>
<td align="char" char=".">0.059</td>
<td align="char" char=".">0.07</td>
<td align="char" char=".">0.095</td>
<td align="char" char=".">0.181</td>
</tr>
<tr>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.072</bold>
</td>
<td align="char" char=".">
<bold>0.091</bold>
</td>
<td align="char" char=".">
<bold>0.108</bold>
</td>
<td align="char" char=".">
<bold>0.195</bold>
</td>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.047</bold>
</td>
<td align="char" char=".">
<bold>0.056</bold>
</td>
<td align="char" char=".">
<bold>0.084</bold>
</td>
<td align="char" char=".">
<bold>0.171</bold>
</td>
</tr>
<tr>
<td rowspan="5" align="char" char=".">20</td>
<td align="center">DNN</td>
<td align="char" char=".">0.088</td>
<td align="char" char=".">0.112</td>
<td align="char" char=".">0.139</td>
<td align="char" char=".">0.269</td>
<td rowspan="5" align="char" char=".">20</td>
<td align="center">DNN</td>
<td align="char" char=".">0.049</td>
<td align="char" char=".">0.061</td>
<td align="char" char=".">0.099</td>
<td align="char" char=".">0.221</td>
</tr>
<tr>
<td align="center">DBN</td>
<td align="char" char=".">0.077</td>
<td align="char" char=".">0.093</td>
<td align="char" char=".">0.127</td>
<td align="char" char=".">0.252</td>
<td align="center">DBN</td>
<td align="char" char=".">0.056</td>
<td align="char" char=".">0.065</td>
<td align="char" char=".">0.105</td>
<td align="char" char=".">0.227</td>
</tr>
<tr>
<td align="center">KELM</td>
<td align="char" char=".">0.085</td>
<td align="char" char=".">0.102</td>
<td align="char" char=".">0.141</td>
<td align="char" char=".">0.273</td>
<td align="center">KELM</td>
<td align="char" char=".">0.065</td>
<td align="char" char=".">0.077</td>
<td align="char" char=".">0.113</td>
<td align="char" char=".">0.228</td>
</tr>
<tr>
<td align="center">GRU</td>
<td align="char" char=".">0.082</td>
<td align="char" char=".">0.101</td>
<td align="char" char=".">0.131</td>
<td align="char" char=".">0.264</td>
<td align="center">GRU</td>
<td align="char" char=".">0.064</td>
<td align="char" char=".">0.073</td>
<td align="char" char=".">0.104</td>
<td align="char" char=".">0.227</td>
</tr>
<tr>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.076</bold>
</td>
<td align="char" char=".">
<bold>0.094</bold>
</td>
<td align="char" char=".">
<bold>0.117</bold>
</td>
<td align="char" char=".">
<bold>0.231</bold>
</td>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.049</bold>
</td>
<td align="char" char=".">
<bold>0.058</bold>
</td>
<td align="char" char=".">
<bold>0.096</bold>
</td>
<td align="char" char=".">
<bold>0.214</bold>
</td>
</tr>
<tr>
<td rowspan="5" align="char" char=".">30</td>
<td align="center">DNN</td>
<td align="char" char=".">0.096</td>
<td align="char" char=".">0.114</td>
<td align="char" char=".">0.15</td>
<td align="char" char=".">0.33</td>
<td rowspan="5" align="char" char=".">30</td>
<td align="center">DNN</td>
<td align="char" char=".">0.052</td>
<td align="char" char=".">0.066</td>
<td align="char" char=".">0.112</td>
<td align="char" char=".">0.278</td>
</tr>
<tr>
<td align="center">DBN</td>
<td align="char" char=".">0.082</td>
<td align="char" char=".">0.099</td>
<td align="char" char=".">0.139</td>
<td align="char" char=".">0.316</td>
<td align="center">DBN</td>
<td align="char" char=".">0.058</td>
<td align="char" char=".">0.072</td>
<td align="char" char=".">0.116</td>
<td align="char" char=".">0.277</td>
</tr>
<tr>
<td align="center">KELM</td>
<td align="char" char=".">0.089</td>
<td align="char" char=".">0.109</td>
<td align="char" char=".">0.153</td>
<td align="char" char=".">0.328</td>
<td align="center">KELM</td>
<td align="char" char=".">0.068</td>
<td align="char" char=".">0.083</td>
<td align="char" char=".">0.125</td>
<td align="char" char=".">0.29</td>
</tr>
<tr>
<td align="center">GRU</td>
<td align="char" char=".">0.087</td>
<td align="char" char=".">0.105</td>
<td align="char" char=".">0.142</td>
<td align="char" char=".">0.311</td>
<td align="center">GRU</td>
<td align="char" char=".">0.063</td>
<td align="char" char=".">0.078</td>
<td align="char" char=".">0.116</td>
<td align="char" char=".">0.286</td>
</tr>
<tr>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.081</bold>
</td>
<td align="char" char=".">
<bold>0.096</bold>
</td>
<td align="char" char=".">
<bold>0.128</bold>
</td>
<td align="char" char=".">
<bold>0.305</bold>
</td>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.051</bold>
</td>
<td align="char" char=".">
<bold>0.063</bold>
</td>
<td align="char" char=".">
<bold>0.108</bold>
</td>
<td align="char" char=".">
<bold>0.261</bold>
</td>
</tr>
<tr>
<td rowspan="15" align="left">Fall</td>
<td rowspan="5" align="char" char=".">10</td>
<td align="center">DNN</td>
<td align="char" char=".">0.094</td>
<td align="char" char=".">0.112</td>
<td align="char" char=".">0.154</td>
<td align="char" char=".">0.239</td>
<td rowspan="15" align="center">Winter</td>
<td rowspan="5" align="char" char=".">10</td>
<td align="center">DNN</td>
<td align="char" char=".">0.049</td>
<td align="char" char=".">0.069</td>
<td align="char" char=".">0.125</td>
<td align="char" char=".">0.212</td>
</tr>
<tr>
<td align="center">DBN</td>
<td align="char" char=".">0.079</td>
<td align="char" char=".">0.095</td>
<td align="char" char=".">0.145</td>
<td align="char" char=".">0.226</td>
<td align="center">DBN</td>
<td align="char" char=".">0.06</td>
<td align="char" char=".">0.078</td>
<td align="char" char=".">0.134</td>
<td align="char" char=".">0.213</td>
</tr>
<tr>
<td align="center">KELM</td>
<td align="char" char=".">0.14</td>
<td align="char" char=".">0.163</td>
<td align="char" char=".">0.232</td>
<td align="char" char=".">0.302</td>
<td align="center">KELM</td>
<td align="char" char=".">0.077</td>
<td align="char" char=".">0.091</td>
<td align="char" char=".">0.125</td>
<td align="char" char=".">0.213</td>
</tr>
<tr>
<td align="center">GRU</td>
<td align="char" char=".">0.109</td>
<td align="char" char=".">0.128</td>
<td align="char" char=".">0.153</td>
<td align="char" char=".">0.232</td>
<td align="center">GRU</td>
<td align="char" char=".">0.055</td>
<td align="char" char=".">0.073</td>
<td align="char" char=".">0.12</td>
<td align="char" char=".">0.209</td>
</tr>
<tr>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.075</bold>
</td>
<td align="char" char=".">
<bold>0.092</bold>
</td>
<td align="char" char=".">
<bold>0.133</bold>
</td>
<td align="char" char=".">
<bold>0.211</bold>
</td>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.035</bold>
</td>
<td align="char" char=".">
<bold>0.053</bold>
</td>
<td align="char" char=".">
<bold>0.097</bold>
</td>
<td align="char" char=".">
<bold>0.183</bold>
</td>
</tr>
<tr>
<td rowspan="5" align="char" char=".">20</td>
<td align="center">DNN</td>
<td align="char" char=".">0.098</td>
<td align="char" char=".">0.116</td>
<td align="char" char=".">0.156</td>
<td align="char" char=".">0.285</td>
<td rowspan="5" align="char" char=".">20</td>
<td align="center">DNN</td>
<td align="char" char=".">0.053</td>
<td align="char" char=".">0.072</td>
<td align="char" char=".">0.127</td>
<td align="char" char=".">0.247</td>
</tr>
<tr>
<td align="center">DBN</td>
<td align="char" char=".">0.082</td>
<td align="char" char=".">0.101</td>
<td align="char" char=".">0.147</td>
<td align="char" char=".">0.279</td>
<td align="center">DBN</td>
<td align="char" char=".">0.064</td>
<td align="char" char=".">0.084</td>
<td align="char" char=".">0.136</td>
<td align="char" char=".">0.264</td>
</tr>
<tr>
<td align="center">KELM</td>
<td align="char" char=".">0.145</td>
<td align="char" char=".">0.167</td>
<td align="char" char=".">0.224</td>
<td align="char" char=".">0.365</td>
<td align="center">KELM</td>
<td align="char" char=".">0.08</td>
<td align="char" char=".">0.094</td>
<td align="char" char=".">0.131</td>
<td align="char" char=".">0.256</td>
</tr>
<tr>
<td align="center">GRU</td>
<td align="char" char=".">0.113</td>
<td align="char" char=".">0.131</td>
<td align="char" char=".">0.158</td>
<td align="char" char=".">0.285</td>
<td align="center">GRU</td>
<td align="char" char=".">0.059</td>
<td align="char" char=".">0.077</td>
<td align="char" char=".">0.124</td>
<td align="char" char=".">0.243</td>
</tr>
<tr>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.079</bold>
</td>
<td align="char" char=".">
<bold>0.095</bold>
</td>
<td align="char" char=".">
<bold>0.137</bold>
</td>
<td align="char" char=".">
<bold>0.266</bold>
</td>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.041</bold>
</td>
<td align="char" char=".">
<bold>0.057</bold>
</td>
<td align="char" char=".">
<bold>0.102</bold>
</td>
<td align="char" char=".">
<bold>0.234</bold>
</td>
</tr>
<tr>
<td rowspan="5" align="char" char=".">30</td>
<td align="center">DNN</td>
<td align="char" char=".">0.102</td>
<td align="char" char=".">0.124</td>
<td align="char" char=".">0.168</td>
<td align="char" char=".">0.364</td>
<td rowspan="5" align="char" char=".">30</td>
<td align="center">DNN</td>
<td align="char" char=".">0.058</td>
<td align="char" char=".">0.084</td>
<td align="char" char=".">0.14</td>
<td align="char" char=".">0.314</td>
</tr>
<tr>
<td align="center">DBN</td>
<td align="char" char=".">0.086</td>
<td align="char" char=".">0.11</td>
<td align="char" char=".">0.16</td>
<td align="char" char=".">0.353</td>
<td align="center">DBN</td>
<td align="char" char=".">0.069</td>
<td align="char" char=".">0.095</td>
<td align="char" char=".">0.149</td>
<td align="char" char=".">0.33</td>
</tr>
<tr>
<td align="center">KELM</td>
<td align="char" char=".">0.149</td>
<td align="char" char=".">0.179</td>
<td align="char" char=".">0.237</td>
<td align="char" char=".">0.459</td>
<td align="center">KELM</td>
<td align="char" char=".">0.083</td>
<td align="char" char=".">0.101</td>
<td align="char" char=".">0.142</td>
<td align="char" char=".">0.313</td>
</tr>
<tr>
<td align="center">GRU</td>
<td align="char" char=".">0.117</td>
<td align="char" char=".">0.138</td>
<td align="char" char=".">0.169</td>
<td align="char" char=".">0.357</td>
<td align="center">GRU</td>
<td align="char" char=".">0.064</td>
<td align="char" char=".">0.087</td>
<td align="char" char=".">0.136</td>
<td align="char" char=".">0.321</td>
</tr>
<tr>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.083</bold>
</td>
<td align="char" char=".">
<bold>0.104</bold>
</td>
<td align="char" char=".">
<bold>0.149</bold>
</td>
<td align="char" char=".">
<bold>0.332</bold>
</td>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.046</bold>
</td>
<td align="char" char=".">
<bold>0.066</bold>
</td>
<td align="char" char=".">
<bold>0.114</bold>
</td>
<td align="char" char=".">
<bold>0.276</bold>
</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="tbl1">
<p>Bold only shows the optimal solution results.</p>
</fn>
</table-wrap-foot>
</table-wrap>
</sec>
<sec id="s5-3">
<title>Error Correction</title>
<p>To correct the errors made by the ICEEMDAN modules, the ARIMA model has been developed to forecast the errors. In the second part of <xref ref-type="fig" rid="F4">Figure&#x20;4</xref>, To illustrate this step, the forecasted errors using ARIMA versus the actual errors produced by LSTM-RNNs are visualized in <xref ref-type="fig" rid="F7">Figure&#x20;7</xref>. It is obvious that the aggregated results from ARIMAs can represent the temporal trend of the forecasted errors produced from the first component of the proposed framework.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Actual error versus forecasted error by ARIMA models.</p>
</caption>
<graphic xlink:href="fenrg-09-780928-g007.tif"/>
</fig>
<p>
<xref ref-type="table" rid="T2">Table&#x20;2</xref> provides the MAPE for different resolution data (i.e.,&#x20;10, 20, 30&#xa0;s) and different prediction horizons (i.e.,&#x20;2, 5, 10&#xa0;min, and 1&#xa0;h) after the error correction. There exists significant performance for all algorithms tested with respect to the MAPE computed before and after error correction. It validates the effectiveness of implementing error correction in improving the forecasting accuracy of time-series dataset. Meanwhile, the LSTM produces the smallest errors which also demonstrates its superior performance in forecasting wind directions.</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Mape of the five algorithms for 2020 after error correction.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th rowspan="2" align="left">Season</th>
<th rowspan="2" align="center">Resolution (s)</th>
<th rowspan="2" align="center">Algorithm</th>
<th colspan="4" align="center">Prediction horizon</th>
<th rowspan="2" align="center">Season</th>
<th rowspan="2" align="center">Resolution (s)</th>
<th rowspan="2" align="center">Algorithm</th>
<th colspan="4" align="center">Prediction horizon</th>
</tr>
<tr>
<th align="center">2&#xa0;min</th>
<th align="center">5&#xa0;min</th>
<th align="center">10&#xa0;min</th>
<th align="center">1&#xa0;h</th>
<th align="center">2&#xa0;min</th>
<th align="center">5&#xa0;min</th>
<th align="center">10&#xa0;min</th>
<th align="center">1&#xa0;h</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td rowspan="15" align="left">Spring</td>
<td rowspan="5" align="char" char=".">10</td>
<td align="center">DNN</td>
<td align="char" char=".">0.082</td>
<td align="char" char=".">0.106</td>
<td align="char" char=".">0.133</td>
<td align="char" char=".">0.211</td>
<td rowspan="15" align="center">Summer</td>
<td rowspan="5" align="char" char=".">10</td>
<td align="center">DNN</td>
<td align="char" char=".">0.047</td>
<td align="char" char=".">0.057</td>
<td align="char" char=".">0.092</td>
<td align="char" char=".">0.181</td>
</tr>
<tr>
<td align="center">DBN</td>
<td align="char" char=".">0.072</td>
<td align="char" char=".">0.094</td>
<td align="char" char=".">0.121</td>
<td align="char" char=".">0.207</td>
<td align="center">DBN</td>
<td align="char" char=".">0.056</td>
<td align="char" char=".">0.064</td>
<td align="char" char=".">0.097</td>
<td align="char" char=".">0.182</td>
</tr>
<tr>
<td align="center">KELM</td>
<td align="char" char=".">0.081</td>
<td align="char" char=".">0.098</td>
<td align="char" char=".">0.137</td>
<td align="char" char=".">0.224</td>
<td align="center">KELM</td>
<td align="char" char=".">0.062</td>
<td align="char" char=".">0.074</td>
<td align="char" char=".">0.106</td>
<td align="char" char=".">0.186</td>
</tr>
<tr>
<td align="center">GRU</td>
<td align="char" char=".">0.077</td>
<td align="char" char=".">0.095</td>
<td align="char" char=".">0.125</td>
<td align="char" char=".">0.211</td>
<td align="center">GRU</td>
<td align="char" char=".">0.059</td>
<td align="char" char=".">0.077</td>
<td align="char" char=".">0.095</td>
<td align="char" char=".">0.181</td>
</tr>
<tr>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.072</bold>
</td>
<td align="char" char=".">
<bold>0.091</bold>
</td>
<td align="char" char=".">
<bold>0.108</bold>
</td>
<td align="char" char=".">
<bold>0.195</bold>
</td>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.047</bold>
</td>
<td align="char" char=".">
<bold>0.056</bold>
</td>
<td align="char" char=".">
<bold>0.084</bold>
</td>
<td align="char" char=".">
<bold>0.171</bold>
</td>
</tr>
<tr>
<td rowspan="5" align="char" char=".">20</td>
<td align="center">DNN</td>
<td align="char" char=".">0.088</td>
<td align="char" char=".">0.117</td>
<td align="char" char=".">0.139</td>
<td align="char" char=".">0.269</td>
<td rowspan="5" align="char" char=".">20</td>
<td align="center">DNN</td>
<td align="char" char=".">0.049</td>
<td align="char" char=".">0.061</td>
<td align="char" char=".">0.099</td>
<td align="char" char=".">0.221</td>
</tr>
<tr>
<td align="center">DBN</td>
<td align="char" char=".">0.077</td>
<td align="char" char=".">0.093</td>
<td align="char" char=".">0.127</td>
<td align="char" char=".">0.252</td>
<td align="center">DBN</td>
<td align="char" char=".">0.056</td>
<td align="char" char=".">0.065</td>
<td align="char" char=".">0.105</td>
<td align="char" char=".">0.227</td>
</tr>
<tr>
<td align="center">KELM</td>
<td align="char" char=".">0.085</td>
<td align="char" char=".">0.102</td>
<td align="char" char=".">0.141</td>
<td align="char" char=".">0.273</td>
<td align="center">KELM</td>
<td align="char" char=".">0.065</td>
<td align="char" char=".">0.077</td>
<td align="char" char=".">0.113</td>
<td align="char" char=".">0.228</td>
</tr>
<tr>
<td align="center">GRU</td>
<td align="char" char=".">0.082</td>
<td align="char" char=".">0.146</td>
<td align="char" char=".">0.131</td>
<td align="char" char=".">0.264</td>
<td align="center">GRU</td>
<td align="char" char=".">0.064</td>
<td align="char" char=".">0.073</td>
<td align="char" char=".">0.104</td>
<td align="char" char=".">0.227</td>
</tr>
<tr>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.076</bold>
</td>
<td align="char" char=".">
<bold>0.094</bold>
</td>
<td align="char" char=".">
<bold>0.117</bold>
</td>
<td align="char" char=".">
<bold>0.231</bold>
</td>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.049</bold>
</td>
<td align="char" char=".">
<bold>0.058</bold>
</td>
<td align="char" char=".">
<bold>0.096</bold>
</td>
<td align="char" char=".">
<bold>0.214</bold>
</td>
</tr>
<tr>
<td rowspan="5" align="char" char=".">30</td>
<td align="center">DNN</td>
<td align="char" char=".">0.096</td>
<td align="char" char=".">0.114</td>
<td align="char" char=".">0.154</td>
<td align="char" char=".">0.332</td>
<td rowspan="5" align="char" char=".">30</td>
<td align="center">DNN</td>
<td align="char" char=".">0.052</td>
<td align="char" char=".">0.066</td>
<td align="char" char=".">0.112</td>
<td align="char" char=".">0.278</td>
</tr>
<tr>
<td align="center">DBN</td>
<td align="char" char=".">0.082</td>
<td align="char" char=".">0.099</td>
<td align="char" char=".">0.139</td>
<td align="char" char=".">0.316</td>
<td align="center">DBN</td>
<td align="char" char=".">0.058</td>
<td align="char" char=".">0.072</td>
<td align="char" char=".">0.116</td>
<td align="char" char=".">0.277</td>
</tr>
<tr>
<td align="center">KELM</td>
<td align="char" char=".">0.089</td>
<td align="char" char=".">0.109</td>
<td align="char" char=".">0.153</td>
<td align="char" char=".">0.328</td>
<td align="center">KELM</td>
<td align="char" char=".">0.068</td>
<td align="char" char=".">0.083</td>
<td align="char" char=".">0.125</td>
<td align="char" char=".">0.294</td>
</tr>
<tr>
<td align="center">GRU</td>
<td align="char" char=".">0.087</td>
<td align="char" char=".">0.105</td>
<td align="char" char=".">0.142</td>
<td align="char" char=".">0.311</td>
<td align="center">GRU</td>
<td align="char" char=".">0.063</td>
<td align="char" char=".">0.078</td>
<td align="char" char=".">0.116</td>
<td align="char" char=".">0.286</td>
</tr>
<tr>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.081</bold>
</td>
<td align="char" char=".">
<bold>0.096</bold>
</td>
<td align="char" char=".">
<bold>0.128</bold>
</td>
<td align="char" char=".">
<bold>0.305</bold>
</td>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.051</bold>
</td>
<td align="char" char=".">
<bold>0.063</bold>
</td>
<td align="char" char=".">
<bold>0.108</bold>
</td>
<td align="char" char=".">
<bold>0.261</bold>
</td>
</tr>
<tr>
<td rowspan="15" align="left">Fall</td>
<td rowspan="5" align="char" char=".">10</td>
<td align="center">DNN</td>
<td align="char" char=".">0.071</td>
<td align="char" char=".">0.096</td>
<td align="char" char=".">0.117</td>
<td align="char" char=".">0.204</td>
<td rowspan="15" align="center">Winter</td>
<td rowspan="5" align="char" char=".">10</td>
<td align="center">DNN</td>
<td align="char" char=".">0.036</td>
<td align="char" char=".">0.056</td>
<td align="char" char=".">0.092</td>
<td align="char" char=".">0.181</td>
</tr>
<tr>
<td align="center">DBN</td>
<td align="char" char=".">0.06</td>
<td align="char" char=".">0.083</td>
<td align="char" char=".">0.113</td>
<td align="char" char=".">0.214</td>
<td align="center">DBN</td>
<td align="char" char=".">0.044</td>
<td align="char" char=".">0.065</td>
<td align="char" char=".">0.098</td>
<td align="char" char=".">0.182</td>
</tr>
<tr>
<td align="center">KELM</td>
<td align="char" char=".">0.107</td>
<td align="char" char=".">0.142</td>
<td align="char" char=".">0.176</td>
<td align="char" char=".">0.254</td>
<td align="center">KELM</td>
<td align="char" char=".">0.056</td>
<td align="char" char=".">0.076</td>
<td align="char" char=".">0.092</td>
<td align="char" char=".">0.179</td>
</tr>
<tr>
<td align="center">GRU</td>
<td align="char" char=".">0.083</td>
<td align="char" char=".">0.115</td>
<td align="char" char=".">0.116</td>
<td align="char" char=".">0.202</td>
<td align="center">GRU</td>
<td align="char" char=".">0.041</td>
<td align="char" char=".">0.061</td>
<td align="char" char=".">0.088</td>
<td align="char" char=".">0.179</td>
</tr>
<tr>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.057</bold>
</td>
<td align="char" char=".">
<bold>0.079</bold>
</td>
<td align="char" char=".">
<bold>0.101</bold>
</td>
<td align="char" char=".">
<bold>0.185</bold>
</td>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.026</bold>
</td>
<td align="char" char=".">
<bold>0.044</bold>
</td>
<td align="char" char=".">
<bold>0.071</bold>
</td>
<td align="char" char=".">
<bold>0.161</bold>
</td>
</tr>
<tr>
<td rowspan="5" align="char" char=".">20</td>
<td align="center">DNN</td>
<td align="char" char=".">0.074</td>
<td align="char" char=".">0.121</td>
<td align="char" char=".">0.124</td>
<td align="char" char=".">0.255</td>
<td rowspan="5" align="char" char=".">20</td>
<td align="center">DNN</td>
<td align="char" char=".">0.039</td>
<td align="char" char=".">0.06</td>
<td align="char" char=".">0.099</td>
<td align="char" char=".">0.221</td>
</tr>
<tr>
<td align="center">DBN</td>
<td align="char" char=".">0.062</td>
<td align="char" char=".">0.086</td>
<td align="char" char=".">0.117</td>
<td align="char" char=".">0.243</td>
<td align="center">DBN</td>
<td align="char" char=".">0.047</td>
<td align="char" char=".">0.071</td>
<td align="char" char=".">0.106</td>
<td align="char" char=".">0.234</td>
</tr>
<tr>
<td align="center">KELM</td>
<td align="char" char=".">0.117</td>
<td align="char" char=".">0.144</td>
<td align="char" char=".">0.175</td>
<td align="char" char=".">0.319</td>
<td align="center">KELM</td>
<td align="char" char=".">0.059</td>
<td align="char" char=".">0.079</td>
<td align="char" char=".">0.101</td>
<td align="char" char=".">0.215</td>
</tr>
<tr>
<td align="center">GRU</td>
<td align="char" char=".">0.086</td>
<td align="char" char=".">0.114</td>
<td align="char" char=".">0.125</td>
<td align="char" char=".">0.239</td>
<td align="center">GRU</td>
<td align="char" char=".">0.044</td>
<td align="char" char=".">0.064</td>
<td align="char" char=".">0.097</td>
<td align="char" char=".">0.212</td>
</tr>
<tr>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.061</bold>
</td>
<td align="char" char=".">
<bold>0.083</bold>
</td>
<td align="char" char=".">
<bold>0.109</bold>
</td>
<td align="char" char=".">
<bold>0.228</bold>
</td>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.03</bold>
</td>
<td align="char" char=".">
<bold>0.048</bold>
</td>
<td align="char" char=".">
<bold>0.081</bold>
</td>
<td align="char" char=".">
<bold>0.205</bold>
</td>
</tr>
<tr>
<td rowspan="5" align="char" char=".">30</td>
<td align="center">DNN</td>
<td align="char" char=".">0.077</td>
<td align="char" char=".">0.107</td>
<td align="char" char=".">0.135</td>
<td align="char" char=".">0.305</td>
<td rowspan="5" align="char" char=".">30</td>
<td align="center">DNN</td>
<td align="char" char=".">0.043</td>
<td align="char" char=".">0.074</td>
<td align="char" char=".">0.111</td>
<td align="char" char=".">0.275</td>
</tr>
<tr>
<td align="center">DBN</td>
<td align="char" char=".">0.065</td>
<td align="char" char=".">0.095</td>
<td align="char" char=".">0.129</td>
<td align="char" char=".">0.291</td>
<td align="center">DBN</td>
<td align="char" char=".">0.051</td>
<td align="char" char=".">0.079</td>
<td align="char" char=".">0.118</td>
<td align="char" char=".">0.277</td>
</tr>
<tr>
<td align="center">KELM</td>
<td align="char" char=".">0.113</td>
<td align="char" char=".">0.155</td>
<td align="char" char=".">0.187</td>
<td align="char" char=".">0.387</td>
<td align="center">KELM</td>
<td align="char" char=".">0.061</td>
<td align="char" char=".">0.084</td>
<td align="char" char=".">0.113</td>
<td align="char" char=".">0.285</td>
</tr>
<tr>
<td align="center">GRU</td>
<td align="char" char=".">0.089</td>
<td align="char" char=".">0.119</td>
<td align="char" char=".">0.136</td>
<td align="char" char=".">0.314</td>
<td align="center">GRU</td>
<td align="char" char=".">0.047</td>
<td align="char" char=".">0.072</td>
<td align="char" char=".">0.108</td>
<td align="char" char=".">0.274</td>
</tr>
<tr>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.063</bold>
</td>
<td align="char" char=".">
<bold>0.089</bold>
</td>
<td align="char" char=".">
<bold>0.122</bold>
</td>
<td align="char" char=".">
<bold>0.282</bold>
</td>
<td align="center">LSTM-RNN</td>
<td align="char" char=".">
<bold>0.034</bold>
</td>
<td align="char" char=".">
<bold>0.055</bold>
</td>
<td align="char" char=".">
<bold>0.092</bold>
</td>
<td align="char" char=".">
<bold>0.242</bold>
</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="tbl2">
<p>Bold only shows the optimal solution results.</p>
</fn>
</table-wrap-foot>
</table-wrap>
</sec>
<sec id="s5-4">
<title>Error Analysis</title>
<p>The experiments reported in Section &#x201c;Short-term Predictions&#x201d; have been conducted using the transformed wind direction data from four seasons. An inverse bilinear transformation, expressed in <xref ref-type="disp-formula" rid="e2">Eq. 2</xref>, is applied to transform the predicted transformed wind direction into the original angular range [0&#xb0;, 360&#xb0;]. The actual angular values versus the forecasted angular values by the proposed framework using ICEEMDAN and LSTM-RNN are presented in <xref ref-type="fig" rid="F8">Figure&#x20;8</xref>. It can be seen that the majority of the forecasted values fall within a relatively small range with respect to the actual values. It demonstrates the proposed framework can sufficiently provide accurate forecasting performances.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Actual angular values versus forecasting angular values.</p>
</caption>
<graphic xlink:href="fenrg-09-780928-g008.tif"/>
</fig>
<p>In this section, performance of the ICEEMDAN framework integrated with the long-short-term memory recurrent neural network (LSTM-RNN) for prediction of wind direction at four seasons is discussed. The prediction error of the inverse transformed wind direction at 2, 5, 10&#xa0;min, and 1&#xa0;h horizons are presented in <xref ref-type="table" rid="T3">Table&#x20;3</xref>. The mean absolute error (MAE) and mean absolute percentage error (MAPE) of wind direction are smaller in the summer and winter.</p>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Angular prediction error at four seasons.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">&#xa0;Season</th>
<th align="center">Fall</th>
<th align="center">Winter</th>
<th align="center">Spring</th>
<th align="center">Summer</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">MAE (2&#xa0;min)</td>
<td align="char" char=".">1.88&#xb0;</td>
<td align="char" char=".">1.67&#xb0;</td>
<td align="char" char=".">1.92&#xb0;</td>
<td align="char" char=".">1.65&#xb0;</td>
</tr>
<tr>
<td align="left">MAPE (2&#xa0;min)</td>
<td align="char" char=".">0.86%</td>
<td align="char" char=".">0.79%</td>
<td align="char" char=".">0.95%</td>
<td align="char" char=".">0.74%</td>
</tr>
<tr>
<td align="left">MAE (5&#xa0;min)</td>
<td align="char" char=".">5.18&#xb0;</td>
<td align="char" char=".">5.01&#xb0;</td>
<td align="char" char=".">5.57&#xb0;</td>
<td align="char" char=".">4.93&#xb0;</td>
</tr>
<tr>
<td align="left">MAPE (5&#xa0;min)</td>
<td align="char" char=".">2.37%</td>
<td align="char" char=".">2.28%</td>
<td align="char" char=".">2.75%</td>
<td align="char" char=".">2.21%</td>
</tr>
<tr>
<td align="left">MAE (10&#xa0;min)</td>
<td align="char" char=".">6.53&#xb0;</td>
<td align="char" char=".">6.25&#xb0;</td>
<td align="char" char=".">6.97&#xb0;</td>
<td align="char" char=".">6.10&#xb0;</td>
</tr>
<tr>
<td align="left">MAPE (10&#xa0;min)</td>
<td align="char" char=".">3.18%</td>
<td align="char" char=".">3.01%</td>
<td align="char" char=".">3.36%</td>
<td align="char" char=".">2.96%</td>
</tr>
<tr>
<td align="left">MAE (1&#xa0;h)</td>
<td align="char" char=".">10.64&#xb0;</td>
<td align="char" char=".">9.05&#xb0;</td>
<td align="char" char=".">10.58&#xb0;</td>
<td align="char" char=".">9.34&#xb0;</td>
</tr>
<tr>
<td align="left">MAPE (1&#xa0;h)</td>
<td align="char" char=".">5.62%</td>
<td align="char" char=".">4.39%</td>
<td align="char" char=".">5.29%</td>
<td align="char" char=".">4.71%</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The wind direction error shows less variability over short horizons. The changes of a nacelle position are usually made within 5&#xa0;min and the prediction error should be under 3% (<xref ref-type="bibr" rid="B27">Ouyang et&#x20;al., 2017</xref>). A control chart is applied to monitor the prediction error and facilitate changing the nacelle position. A control chart with lower and upper limits enables monitoring the yaw error. Any prediction error that exceeds the bound (i.e.,&#x20;3%) may trigger a change of the nacelle position. The final forecasting errors in the angular perspectives are illustrated in <xref ref-type="fig" rid="F9">Figure&#x20;9</xref>.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>Wind rose of the prediction errors for the four seasons of interest in&#x20;2020.</p>
</caption>
<graphic xlink:href="fenrg-09-780928-g009.tif"/>
</fig>
</sec>
<sec id="s5-5">
<title>Validation</title>
<p>The long-short-term memory recurrent neural network (LSTM-RNN) has been demonstrated to perform better than other algorithms. To validate the effectiveness and robustness of the LSTM-RNN, the data collected from another wind farm located in Shandong Province in the year 2020 has been used. The experiments are conducted following the similar training strategies as described in Section &#x201c;Data Analysis&#x201d;. The computational results are presented in <xref ref-type="table" rid="T4">Table&#x20;4</xref>.</p>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>Angular prediction error at four seasons.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">&#xa0;Season</th>
<th align="center">Fall</th>
<th align="center">Winter</th>
<th align="center">Spring</th>
<th align="center">Summer</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">MAE (2&#xa0;min)</td>
<td align="char" char=".">1.61&#xb0;</td>
<td align="char" char=".">1.63&#xb0;</td>
<td align="char" char=".">1.62&#xb0;</td>
<td align="char" char=".">1.59&#xb0;</td>
</tr>
<tr>
<td align="left">MAPE (2&#xa0;min)</td>
<td align="char" char=".">0.79%</td>
<td align="char" char=".">0.78%</td>
<td align="char" char=".">0.80%</td>
<td align="char" char=".">0.76%</td>
</tr>
<tr>
<td align="left">MAE (5&#xa0;min)</td>
<td align="char" char=".">4.94&#xb0;</td>
<td align="char" char=".">4.41&#xb0;</td>
<td align="char" char=".">5.19&#xb0;</td>
<td align="char" char=".">4.51&#xb0;</td>
</tr>
<tr>
<td align="left">MAPE (5&#xa0;min)</td>
<td align="char" char=".">2.08%</td>
<td align="char" char=".">1.93%</td>
<td align="char" char=".">2.58%</td>
<td align="char" char=".">1.97%</td>
</tr>
<tr>
<td align="left">MAE (10&#xa0;min)</td>
<td align="char" char=".">5.92&#xb0;</td>
<td align="char" char=".">5.86&#xb0;</td>
<td align="char" char=".">6.18&#xb0;</td>
<td align="char" char=".">5.94&#xb0;</td>
</tr>
<tr>
<td align="left">MAPE (10&#xa0;min)</td>
<td align="char" char=".">2.79%</td>
<td align="char" char=".">2.78%</td>
<td align="char" char=".">2.81%</td>
<td align="char" char=".">2.71%</td>
</tr>
<tr>
<td align="left">MAE (1&#xa0;h)</td>
<td align="char" char=".">9.81&#xb0;</td>
<td align="char" char=".">9.02&#xb0;</td>
<td align="char" char=".">9.75&#xb0;</td>
<td align="char" char=".">9.32&#xb0;</td>
</tr>
<tr>
<td align="left">MAPE (1&#xa0;h)</td>
<td align="char" char=".">4.77%</td>
<td align="char" char=".">4.37%</td>
<td align="char" char=".">4.92%</td>
<td align="char" char=".">4.74%</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The prediction error (see <xref ref-type="table" rid="T4">Table&#x20;4</xref>) in winter and summer seasons of 2020 from the wind farm in Shandong Province produced by the LSTM-RNN is similar to the one based on the 2020 data (see <xref ref-type="table" rid="T3">Table&#x20;3</xref>) in the wind farm in Inner Mongolia. More accurate performance has been observed in the fall and spring seasons with two prevailing wind directions. The favorable prediction error validates the effectiveness and robustness of the LSTM-RNN to predict the nacelle orientation.</p>
</sec>
</sec>
<sec sec-type="conclusion" id="s6">
<title>Conclusion</title>
<p>A hybrid short-term forecasting framework to orient nacelle based on the predicted wind direction was presented. Industrial data collected from a wind farm in Inner Mongolia, China was utilized to train and validate the prediction models. A bilinear transformation was applied to transform the wind direction data from an angular variable into a continuous time-series. The forecasting framework was developed using ICEEMDAN integrated with LSTM-RNN. Also, the error corrections are implemented to improve the forecasting accuracy. The wind direction was predicted at short-term horizons, i.e.,&#x20;2, 5, 10&#xa0;min, and 1&#xa0;h. Five algorithms, the deep neural network, deep belief network, kernel-based extreme learning machine, gated recurrent unit network, and long-short-term memory recurrent neural network were applied to predict wind direction at short-term horizons. The results of performance analysis of the five algorithms at four seasons were reported.</p>
<p>It was demonstrated that the long-short-term memory recurrent neural network outperformed the other four algorithms tested to predict wind direction. The results presented are of paramount importance in yaw control and can improve the efficiency of energy extraction process.</p>
</sec>
</body>
<back>
<sec id="s7">
<title>Data Availability Statement</title>
<p>The raw data supporting the conclusions of this article will be made available by the authors, without undue reservation.</p>
</sec>
<sec id="s8">
<title>Author Contributions</title>
<p>HL conceptualized the study, contributed to the study methodology, and wrote the original draft. JD contributed to the study methodology, data curation and investigation. PF contributed to data analysis and investigation. HL contributed to software and formal analysis. CP and DA contributed to investigation and writing-original draft. QC contributed to editing. All authors have read and agreed to the published version of the manuscript.</p>
</sec>
<sec id="s9">
<title>Funding</title>
<p>This research is supported by the &#x201c;Miaozi project&#x201d; of scientific and technological innovation in Sichuan Province, China (Grant No. 2021090), the National Key Research and Development Program of China (2018YFC1505105), the Opening fund of State Key Laboratory of Geohazard Prevention and Geoenvironment Protection (Chengdu University of Technology) (Grant No. SKLGP 2021K014), and the Project from Sichuan Mineral Resources Research Center (SCKCZY2021-YB009) the Project of remote sensing identification and monitoring of geological hazards in Sichuan province, CN (2020) (Grant No. 510201202076888).</p>
</sec>
<sec id="s10">
<title>Author Disclaimer</title>
<p>Frontiers Media SA remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.</p>
</sec>
<sec sec-type="COI-statement" id="s11">
<title>Conflict of Interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s12">
<title>Publisher&#x2019;s Note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Amin</surname>
<given-names>C. M.</given-names>
</name>
<name>
<surname>Sami</surname>
<given-names>F. M.</given-names>
</name>
<name>
<surname>Trzynadlowski</surname>
<given-names>A. M.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Wind Speed and Wind Direction Forecasting Using echo State Network with Nonlinear Functions</article-title>. <source>Renew. Energ.</source> <volume>131</volume> (<issue>2</issue>), <fpage>879</fpage>&#x2013;<lpage>889</lpage>. <pub-id pub-id-type="doi">10.1016/j.renene.2018.07.060</pub-id> </citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bilgili</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Sahin</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Yasar</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2007</year>). <article-title>Application of Artificial Neural Networks for the Wind Speed Prediction of Target Station Using Reference Stations Data</article-title>. <source>Renew. Energ.</source> <volume>32</volume> (<issue>14</issue>), <fpage>2350</fpage>&#x2013;<lpage>2360</lpage>. <pub-id pub-id-type="doi">10.1016/j.renene.2006.12.001</pub-id> </citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Castino</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Festa</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Ratto</surname>
<given-names>C. F.</given-names>
</name>
</person-group> (<year>1998</year>). <article-title>Stochastic Modelling of Wind Velocities Time Series</article-title>. <source>J.&#x20;Wind Eng. Ind. Aerodynamics</source> <volume>74-76</volume>, <fpage>141</fpage>&#x2013;<lpage>151</lpage>. <pub-id pub-id-type="doi">10.1016/s0167-6105(98)00012-9</pub-id> </citation>
</ref>
<ref id="B4">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Cho</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Van Merri&#xeb;nboer</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Gulcehre</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Bahdanau</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Bougares</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Schwenk</surname>
<given-names>H.</given-names>
</name>
<etal/>
</person-group> (<year>2014</year>). <source>Learning Phrase Representations Using RNN Encoder-Decoder for Statistical Machine Translation</source>. <pub-id pub-id-type="doi">10.3115/v1/D14-1179</pub-id> </citation>
</ref>
<ref id="B43">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Colominas</surname>
<given-names>M. A.</given-names>
</name>
<name>
<surname>Schlotthauer</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Torres</surname>
<given-names>M. E.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Improved Complete Ensemble EMD: A Suitable Tool for Biomedical Signal Processing.</article-title>. <source>Biomed. Signal Proce. Contr.</source> <volume>146</volume>, <fpage>19</fpage>&#x2013;<lpage>29</lpage>. </citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Davies</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>1974</year>). <article-title>Bilinear Transformation of Polynomials</article-title>. <source>IEEE Trans. Circuits Syst.</source> <volume>21</volume> (<issue>6</issue>), <fpage>792</fpage>&#x2013;<lpage>794</lpage>. <pub-id pub-id-type="doi">10.1109/tcs.1974.1083929</pub-id> </citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Duan</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zuo</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Bai</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Duan</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Chang</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Short-term Wind Speed Forecasting Using Recurrent Neural Networks with Error Correction</article-title>. <source>Energy</source> <volume>217</volume>, <fpage>119397</fpage>. <pub-id pub-id-type="doi">10.1016/j.energy.2020.119397</pub-id> </citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Erdem</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Shi</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2011</year>). <article-title>ARMA Based Approaches for Forecasting the Tuple of Wind Speed and Direction</article-title>. <source>Appl. Energ.</source> <volume>88</volume> (<issue>4</issue>), <fpage>1405</fpage>&#x2013;<lpage>1414</lpage>. <pub-id pub-id-type="doi">10.1016/j.apenergy.2010.10.031</pub-id> </citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Gers</surname>
<given-names>F. A.</given-names>
</name>
<name>
<surname>Schraudolph</surname>
<given-names>N. N.</given-names>
</name>
<name>
<surname>Schmidhuber</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2003</year>). <article-title>Learning Precise Timing with Lstm Recurrent Networks</article-title>. <source>J.&#x20;Machine Learn. Res.</source> <volume>3</volume> (<issue>1</issue>), <fpage>115</fpage>&#x2013;<lpage>143</lpage>. </citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Groutage</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Volfson</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Schneider</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2003</year>). <article-title>S-plane to Z-Plane Mapping Using a Simultaneous Equation Algorithm Based on the Bilinear Transformation</article-title>. <source>IEEE Trans. Automatic Control.</source> <volume>32</volume> (<issue>7</issue>), <fpage>635</fpage>&#x2013;<lpage>637</lpage>. <pub-id pub-id-type="doi">10.1109/TAC.1987.1104664</pub-id> </citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hochreiter</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Schmidhuber</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>1997</year>). <article-title>Long Short-Term Memory</article-title>. <source>Neural Comput.</source> <volume>9</volume> (<issue>8</issue>), <fpage>1735</fpage>&#x2013;<lpage>1780</lpage>. <pub-id pub-id-type="doi">10.1162/neco.1997.9.8.1735</pub-id> </citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hu</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Transfer Learning for Short-Term Wind Speed Prediction with Deep Neural Networks</article-title>. <source>Renew. Energ.</source> <volume>85</volume> (<issue>JAN</issue>), <fpage>83</fpage>&#x2013;<lpage>95</lpage>. <pub-id pub-id-type="doi">10.1016/j.renene.2015.06.034</pub-id> </citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jury</surname>
<given-names>E.</given-names>
</name>
</person-group> (<year>1973</year>). <article-title>Remarks on "The Mechanics of Bilinear Transformation"</article-title>. <source>IEEE Trans. Audio Electroacoust.</source> <volume>21</volume> (<issue>4</issue>), <fpage>380</fpage>&#x2013;<lpage>382</lpage>. <pub-id pub-id-type="doi">10.1109/tau.1973.1162485</pub-id> </citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Khosravi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Koury</surname>
<given-names>R. N. N.</given-names>
</name>
<name>
<surname>Machado</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Pabon</surname>
<given-names>J.&#x20;J.&#x20;G.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Prediction of Wind Speed and Wind Direction Using Artificial Neural Network, Support Vector Regression and Adaptive Neuro-Fuzzy Inference System</article-title>. <source>Sustainable Energ. Tech. Assessments</source> <volume>25</volume>, <fpage>146</fpage>&#x2013;<lpage>160</lpage>. <pub-id pub-id-type="doi">10.1016/j.seta.2018.01.001</pub-id> </citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kodama</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Burls</surname>
<given-names>N. J.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>An Empirical Adjusted Enso Ocean Energetics Framework Based on Observational Wind Power in the Tropical pacific</article-title>. <source>Clim. Dyn.</source> <volume>53</volume> (<issue>5</issue>), <fpage>3271</fpage>&#x2013;<lpage>3288</lpage>. <pub-id pub-id-type="doi">10.1007/s00382-019-04701-8</pub-id> </citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kou</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Application of ICEEMDAN Energy Entropy and AFSA-SVM for Fault Diagnosis of Hoist Sheave Bearing</article-title>. <source>Entropy</source> <volume>22</volume> (<issue>12</issue>), <fpage>1347</fpage>. <pub-id pub-id-type="doi">10.3390/e22121347</pub-id> </citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lecun</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Bengio</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Hinton</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Deep Learning</article-title>. <source>Nature</source> <volume>521</volume> (<issue>7553</issue>), <fpage>436</fpage>&#x2013;<lpage>444</lpage>. <pub-id pub-id-type="doi">10.1038/nature14539</pub-id> </citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lee</surname>
<given-names>T.-H.</given-names>
</name>
<name>
<surname>White</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Granger</surname>
<given-names>C. W. J.</given-names>
</name>
</person-group> (<year>1993</year>). <article-title>Testing for Neglected Nonlinearity in Time Series Models</article-title>. <source>J.&#x20;Econom.</source> <volume>56</volume> (<issue>3</issue>), <fpage>269</fpage>&#x2013;<lpage>290</lpage>. <pub-id pub-id-type="doi">10.1016/0304-4076(93)90122-l</pub-id> </citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Deng</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Prediction of Landslide Displacement with an Ensemble-Based Extreme Learning Machine and Copula Models</article-title>. <source>Landslides</source> <volume>15</volume> (<issue>10</issue>), <fpage>2047</fpage>&#x2013;<lpage>2059</lpage>. <pub-id pub-id-type="doi">10.1007/s10346-018-1020-2</pub-id> </citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Fan</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Modeling and Predicting Reservoir Landslide Displacement with Deep Belief Network and EWMA Control Charts: a Case Study in Three Gorges Reservoir</article-title>. <source>Landslides</source> <volume>17</volume> (<issue>3</issue>), <fpage>693</fpage>&#x2013;<lpage>707</lpage>. <pub-id pub-id-type="doi">10.1007/s10346-019-01312-6</pub-id> </citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Niu</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Fan</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Short-term Wind Speed Forecasting Using Wavelet Transform and Support Vector Machines Optimized by Genetic Algorithm</article-title>. <source>Renew. Energ.</source> <volume>62</volume>, <fpage>592</fpage>&#x2013;<lpage>597</lpage>. <pub-id pub-id-type="doi">10.1016/j.renene.2013.08.011</pub-id> </citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Shi</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Erdem</surname>
<given-names>E.</given-names>
</name>
</person-group> (<year>2010</year>). <article-title>Prediction of Wind Speed Time Series Using Modified Taylor Kriging Method</article-title>. <source>Energy</source> <volume>35</volume> (<issue>12</issue>), <fpage>4870</fpage>&#x2013;<lpage>4879</lpage>. <pub-id pub-id-type="doi">10.1016/j.energy.2010.09.001</pub-id> </citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Masseran</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Razali</surname>
<given-names>A. M.</given-names>
</name>
<name>
<surname>Ibrahim</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Latif</surname>
<given-names>M. T.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Fitting a mixture of von Mises distributions in order to model data on wind direction in Peninsular Malaysia</article-title>. <source>Energ. Convers. Manag.</source> <volume>72</volume>, <fpage>94</fpage>&#x2013;<lpage>102</lpage>. <pub-id pub-id-type="doi">10.1016/j.enconman.2012.11.025</pub-id> </citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mcwilliams</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Sprevak</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>1982</year>). <article-title>The Simulation of Hourly Wind Speed and Direction</article-title>. <source>Mathematics Comput. Simulation</source> <volume>24</volume> (<issue>1</issue>), <fpage>54</fpage>&#x2013;<lpage>59</lpage>. <pub-id pub-id-type="doi">10.1016/0378-4754(82)90050-7</pub-id> </citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mohandes</surname>
<given-names>M. A.</given-names>
</name>
<name>
<surname>Halawani</surname>
<given-names>T. O.</given-names>
</name>
<name>
<surname>Rehman</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Hussain</surname>
<given-names>A. A.</given-names>
</name>
</person-group> (<year>2004</year>). <article-title>Support Vector Machines for Wind Speed Prediction</article-title>. <source>Renew. Energ.</source> <volume>29</volume> (<issue>6</issue>), <fpage>939</fpage>&#x2013;<lpage>947</lpage>. <pub-id pub-id-type="doi">10.1016/j.renene.2003.11.009</pub-id> </citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ouyang</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Monitoring Wind Turbines&#x27; Unhealthy Status: a Data-Driven Approach</article-title>. <source>IEEE Trans. Emerging Top. Comput. Intelligence</source> <volume>3</volume> (<issue>2</issue>), <fpage>163</fpage>&#x2013;<lpage>172</lpage>. <pub-id pub-id-type="doi">10.1109/TETCI.2018.2872036</pub-id> </citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ouyang</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Baek</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Modeling and Forecasting Short-Term Power Load with Copula Model and Deep Belief Network</article-title>. <source>IEEE Trans. Emerg. Top. Comput. Intell.</source> <volume>3</volume> (<issue>2</issue>), <fpage>127</fpage>&#x2013;<lpage>136</lpage>. <pub-id pub-id-type="doi">10.1109/tetci.2018.2880511</pub-id> </citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ouyang</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Kusiak</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Predictive Model of Yaw Error in a Wind Turbine</article-title>. <source>Energy</source> <volume>123</volume>, <fpage>119</fpage>&#x2013;<lpage>130</lpage>. <pub-id pub-id-type="doi">10.1016/j.energy.2017.01.150</pub-id> </citation>
</ref>
<ref id="B28">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Pan</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Yi</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Yin</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Joint 3D UAV Placement and Resource Allocation in Software-Defined Cellular Networks with Wireless Backhaul</article-title>. <source>IEEE Access</source> <volume>7</volume>, <fpage>104279</fpage>&#x2013;<lpage>104293</lpage>. <pub-id pub-id-type="doi">10.1109/access.2019.2927521</pub-id> </citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Peng</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Si</surname>
<given-names>C. A.</given-names>
</name>
<name>
<surname>Jc</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Di</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Wind Direction Fluctuation Analysis for Wind Turbines</article-title>. <source>Renew. Energ.</source> <volume>162</volume>, <fpage>1026</fpage>&#x2013;<lpage>1035</lpage>. <pub-id pub-id-type="doi">10.1016/j.renene.2020.07.137</pub-id> </citation>
</ref>
<ref id="B30">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Rong</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Guan</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>N.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Gam-based Mooring Alignment for Sins Based on an Improved Ceemd Denoising Method</article-title>. <source>Sensors</source> <volume>19</volume> (<issue>16</issue>), <fpage>3564</fpage>. <pub-id pub-id-type="doi">10.3390/s19163564</pub-id> </citation>
</ref>
<ref id="B31">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Sak</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Senior</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Beaufays</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2014</year>). <source>Long Short-Term Memory Based Recurrent Neural Network Architectures for Large Vocabulary Speech Recognition</source>. <comment>arXiv preprint arXiv:1402.1128</comment> </citation>
</ref>
<ref id="B32">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Santhosh</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Venkaiah</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Vinod Kumar</surname>
<given-names>D. M.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Ensemble Empirical Mode Decomposition Based Adaptive Wavelet Neural Network Method for Wind Speed Prediction</article-title>. <source>Energ. Convers. Manag.</source> <volume>168</volume>, <fpage>482</fpage>&#x2013;<lpage>493</lpage>. <pub-id pub-id-type="doi">10.1016/j.enconman.2018.04.099</pub-id> </citation>
</ref>
<ref id="B33">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sun</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Gritsenko</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Lendasse</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Baek</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Embedded Spectral Descriptors: Learning the point-wise Correspondence Metric via Siamese Neural Networks</article-title>. <source>J.&#x20;Comput. Des. Eng.</source> <volume>7</volume> (<issue>1</issue>), <fpage>18</fpage>&#x2013;<lpage>29</lpage>. <pub-id pub-id-type="doi">10.1093/jcde/qwaa003</pub-id> </citation>
</ref>
<ref id="B34">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tagliaferri</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Viola</surname>
<given-names>I. M.</given-names>
</name>
<name>
<surname>Flay</surname>
<given-names>R. G. J.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Wind Direction Forecasting with Artificial Neural Networks and Support Vector Machines</article-title>. <source>Ocean Eng.</source> <volume>97</volume>, <fpage>65</fpage>&#x2013;<lpage>73</lpage>. <pub-id pub-id-type="doi">10.1016/j.oceaneng.2014.12.026</pub-id> </citation>
</ref>
<ref id="B35">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>The Multi-Objective Optimization of Combustion System Operations Based on Deep Data-Driven Models</article-title>. <source>Energy</source> <volume>182</volume>, <fpage>37</fpage>&#x2013;<lpage>47</lpage>. <pub-id pub-id-type="doi">10.1016/j.energy.2019.06.051</pub-id> </citation>
</ref>
<ref id="B36">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Ouyang</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Two-phase Deep Learning Model for Short-Term Wind Direction Forecasting</article-title>. <source>Renew. Energ.</source> <volume>173</volume>, <fpage>1005</fpage>&#x2013;<lpage>1016</lpage>. <pub-id pub-id-type="doi">10.1016/j.renene.2021.04.041</pub-id> </citation>
</ref>
<ref id="B37">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wasynczuk</surname>
<given-names>O.</given-names>
</name>
<name>
<surname>Man</surname>
<given-names>D. T.</given-names>
</name>
<name>
<surname>Sullivan</surname>
<given-names>J.&#x20;P.</given-names>
</name>
</person-group> (<year>1981</year>). <article-title>Dynamic Behavior of a Class of Wind Turbine Generators during Random Wind Fluctuations</article-title>. <source>IEEE Power Eng. Rev.</source> <volume>PER-1</volume> (<issue>6</issue>), <fpage>47</fpage>&#x2013;<lpage>48</lpage>. <pub-id pub-id-type="doi">10.1109/mper.1981.5511593</pub-id> </citation>
</ref>
<ref id="B38">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Yi</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Dasgupta</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Cai</surname>
<given-names>J.&#x20;F.</given-names>
</name>
<name>
<surname>Jacob</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Cho</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2018</year>). &#x201c;<article-title>Sepration-free Super-resolution from Compressed Measurements Is Possible: an Orthonormal Atomic Norm Minimization Approach</article-title>,&#x201d; in <conf-name>2018 IEEE International Symposium on Information Theory (ISIT)</conf-name> (<publisher-name>IEEE</publisher-name>), <fpage>76</fpage>&#x2013;<lpage>80</lpage>. </citation>
</ref>
<ref id="B39">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>A Hybrid Forecasting Approach Applied in Wind Speed Forecasting Based on a Data Processing Strategy and an Optimized Artificial Intelligence Algorithm</article-title>. <source>Energy</source> <volume>160</volume>, <fpage>87</fpage>&#x2013;<lpage>100</lpage>. <pub-id pub-id-type="doi">10.1016/j.energy.2018.07.005</pub-id> </citation>
</ref>
<ref id="B40">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yi</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Necessary and Sufficient Null Space Condition for Nuclear Norm Minimization in Low-Rank Matrix Recovery</article-title>. <source>IEEE Trans. Inform. Theor.</source> <volume>66</volume> (<issue>10</issue>), <fpage>6597</fpage>&#x2013;<lpage>6604</lpage>. <pub-id pub-id-type="doi">10.1109/tit.2020.2990948</pub-id> </citation>
</ref>
<ref id="B41">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Qu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Mao</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Fan</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>A Combined Model Based on CEEMDAN and Modified Flower Pollination Algorithm for Wind Speed Forecasting</article-title>. <source>Energ. Convers. Manag.</source> <volume>136</volume>, <fpage>439</fpage>&#x2013;<lpage>451</lpage>. <pub-id pub-id-type="doi">10.1016/j.enconman.2017.01.022</pub-id> </citation>
</ref>
<ref id="B42">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Shi</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2011</year>). <article-title>Fine Tuning Support Vector Machines for Short-Term Wind Speed Forecasting</article-title>. <source>Energ. Convers. Manag.</source> <volume>52</volume> (<issue>4</issue>), <fpage>1990</fpage>&#x2013;<lpage>1998</lpage>. <pub-id pub-id-type="doi">10.1016/j.enconman.2010.11.007</pub-id> </citation>
</ref>
</ref-list>
</back>
</article>