<?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">844111</article-id>
<article-id pub-id-type="doi">10.3389/fenrg.2022.844111</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>A Wind Power Prediction Method Based on DE-BP Neural Network</article-title>
<alt-title alt-title-type="left-running-head">Li et&#x20;al.</alt-title>
<alt-title alt-title-type="right-running-head">Wind Power Prediction</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Li</surname>
<given-names>Ning</given-names>
</name>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1576673/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Wang</surname>
<given-names>Yelin</given-names>
</name>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Ma</surname>
<given-names>Wentao</given-names>
</name>
<uri xlink:href="https://loop.frontiersin.org/people/1621732/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Xiao</surname>
<given-names>Zihan</given-names>
</name>
</contrib>
<contrib contrib-type="author">
<name>
<surname>An</surname>
<given-names>Zhuoer</given-names>
</name>
</contrib>
</contrib-group>
<aff>
<institution>School of Electrical Engineering</institution>, <institution>Xi&#x27;an University of Technology</institution>, <addr-line>Xi&#x27;an</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/1259467/overview">Liansong Xiong</ext-link>, Nanjing Institute of Technology (NJIT), China</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/1615067/overview">He Li</ext-link>, Xidian University, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1615134/overview">Yingjie Wang</ext-link>, University of Liverpool, United&#x20;Kingdom</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1621589/overview">Jianquan Shi</ext-link>, Nanjing Institute of Technology (NJIT), China</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Ning Li, <email>lining83@xaut.edu.cn</email>
</corresp>
<fn fn-type="other">
<p>This article was submitted to Process and Energy Systems Engineering, a section of the journal Frontiers in Energy Research</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>15</day>
<month>02</month>
<year>2022</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>10</volume>
<elocation-id>844111</elocation-id>
<history>
<date date-type="received">
<day>27</day>
<month>12</month>
<year>2021</year>
</date>
<date date-type="accepted">
<day>18</day>
<month>01</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2022 Li, Wang, Ma, Xiao and An.</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Li, Wang, Ma, Xiao and An</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>With the continuous increase of installed capacity of wind power, the influence of large-scale wind power integration on the power grid is becoming increasingly apparent. Ultra-short-term wind power prediction is conducive to the dispatching management of the power grid and improves the operating efficiency and economy of the power system. In order to overcome the intermittency and uncertainty of wind power generation, this article proposes the differential evolution&#x2013;back propagation (DE-BP) algorithm to predict wind power and addresses such shortcomings of the BP neural network as its falling into local optimality and slow training speed when predicting. In this article, the DE algorithm is used to find the optimal value of the initial weight and threshold of the BP neural network, and the DE-BP neural network prediction model is obtained. According to the data of a wind farm in Northwest China, the short-term wind power is predicted. Compared with the application of the BP model in wind power prediction, the results show that the accuracy of the DE-BP algorithm is improved by about 5%; compared with the genetic algorithm&#x2013;BP model, the prediction time is shortened by&#x20;23.1%.</p>
</abstract>
<kwd-group>
<kwd>differential evolution algorithm</kwd>
<kwd>wind power prediction</kwd>
<kwd>BP neural network</kwd>
<kwd>prediction time</kwd>
<kwd>accuracy</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>Wind energy is one of the renewable energy resources and the most available resource with the lowest power generation cost. It can substantially reduce greenhouse gases and air pollution caused by the use of traditional power generation systems (<xref ref-type="bibr" rid="B29">Xiong et&#x20;al., 2020</xref>). Wind power technology is now making a significant contribution to the growing global clean power market. However, the intermittency and uncertainty of wind power generation pose challenges to power supply and operation. The large-scale integration of wind power will affect the safety, stability, and power quality of the power system. Therefore, the ultra-short-term power prediction of wind power generation helps the dispatching department to make dispatch plans and avoid the risks in advance, so as to improve the safety of the power system and the competitiveness of wind power generation. The ultra-short-term wind power prediction will help the power system dispatching department to further understand the wind power that will be connected to the grid and provide a basis for hourly power generation operation dispatch (<xref ref-type="bibr" rid="B26">Wan et&#x20;al., 2014</xref>).</p>
<p>At present, there are three types of the commonly used wind power prediction methods: the physical (<xref ref-type="bibr" rid="B1">Agarwal et&#x20;al., 2018</xref>), statistical (<xref ref-type="bibr" rid="B23">Sideratos and Hatziargyriou, 2007</xref>), and learning (<xref ref-type="bibr" rid="B5">Catalao et&#x20;al., 2009</xref>) methods. The physical method obtains the predicted power of the wind turbine by refining the numerical weather forecast data into the wind speed and wind direction at the hub height of the wind turbine under the actual terrain and landform conditions of the wind farm, considering the influence of wake, and applying the predicted wind speed to the power curve of the wind turbine (<xref ref-type="bibr" rid="B7">Chang et&#x20;al., 2014</xref>). The disadvantage of this method is that it relies too much on the mastery of meteorological knowledge and physical characteristics of the model itself. If the meteorological knowledge reserve is less or the physical characteristics are not mastered enough, the model will be relatively rough, and the prediction accuracy will be relatively poor (<xref ref-type="bibr" rid="B6">Chandra et&#x20;al., 2013</xref>).</p>
<p>The statistical method establishes a predictive model by finding the relationship between the historical wind farm data (including power, wind speed, wind direction, etc.) and wind speed or power of the wind farm (<xref ref-type="bibr" rid="B10">Foley et&#x20;al., 2012</xref>), such as regression analysis (<xref ref-type="bibr" rid="B32">Yuqin et&#x20;al., 2014</xref>), exponential smoothing method, time series method (<xref ref-type="bibr" rid="B25">Tasnim et&#x20;al., 2014</xref>), Kalman filter method (<xref ref-type="bibr" rid="B2">Babazadeh et&#x20;al., 2012</xref>), etc., which are all based on statistical models. These models make predictions by capturing information related to time and space in the data. The application of the statistical method is simple, and the original data are not complicated, so its prediction accuracy will be limited, and the prediction time will not be too&#x20;long.</p>
<p>When using the physical or statistical method to predict wind power generation, the prediction results will also be affected by data quality and collection methods. Wind power prediction requires a large amount of data, such as historical wind farm data, numerical weather prediction data, and the Supervisory Control And Data Acquisition system real-time data, etc. However, these data are often abnormal and incomplete. If statistical methods are used for prediction, the prediction accuracy and reliability will be affected due to insufficient data (<xref ref-type="bibr" rid="B28">Wu et&#x20;al., 2016</xref>). Automatic communication equipment plays an important role in the power system (<xref ref-type="bibr" rid="B30">Yan et&#x20;al., 2017</xref>). Automatic communication failures cause errors in data collection, transmission, and conversion, which will bring about data distortion or loss, and have adverse effects on the accuracy of wind power prediction (<xref ref-type="bibr" rid="B33">Zhang et&#x20;al., 2020</xref>).</p>
<p>The learning method addresses some of the shortcomings of physical and statistical methods in predicting wind power. It uses artificial intelligence methods to learn and train large amounts of data to obtain the nonlinear relationship between input and output. The learning method can adaptively predict the output power of different wind farms, independent of the geographic location of the wind farm. The learning methods for wind power prediction include the neural network method (<xref ref-type="bibr" rid="B3">Bhaskar and Singh, 2012</xref>), support vector machine (<xref ref-type="bibr" rid="B17">Liu et&#x20;al., 2016</xref>), and wavelet analysis method (<xref ref-type="bibr" rid="B35">Zhao, 2016</xref>). Different from statistical prediction, the learning method predicts that there is no definite functional relationship between the input and output in the model, that is, there is no specific functional expression. <xref ref-type="bibr" rid="B11">Haque et&#x20;al. (2013)</xref> proposed a new hybrid intelligent algorithm based on the wavelet transform and fuzzy ARTMAP network, which predicts the power output of wind farms using meteorological information, for instance, wind speed, wind direction, temperature, etc. Compared with the physical method, the amount of calculation is reduced in this method, but it is greatly affected by the weather and other factors. <xref ref-type="bibr" rid="B24">Tan et&#x20;al. (2020)</xref> proposed an ultra-short-term wind power prediction model based on the Salp Swarm algorithm&#x2013;extreme learning machine, but this method is complicated to determine network parameters. <xref ref-type="bibr" rid="B20">Paula et&#x20;al. (2020)</xref> applied different machine learning strategies, such as the random forest, the neural network, and the gradient boosting, to predict long-term wind data. <xref ref-type="bibr" rid="B34">Zhang et&#x20;al. (2019)</xref> designed fractional gray models of different orders for prediction and established a combined prediction model based on the neural networks. Considering the limitations of the single convolution model when predicting wind power, <xref ref-type="bibr" rid="B14">Ju et&#x20;al. (2019)</xref> proposed an innovative integration of the LightGBM classification algorithm in the model to improve the prediction accuracy and robustness. <xref ref-type="bibr" rid="B15">Li et&#x20;al. (2020)</xref> proposed a kernel extreme learning machine using differential evolution (DE) and cross-validation optimization methods to predict short-term wind power generation. The DE algorithm was applied to optimize the regularization coefficient and kernel width of the kernel extreme learning machine to improve the prediction accuracy.</p>
<p>
<xref ref-type="bibr" rid="B18">Liu et&#x20;al. (2021)</xref> bettered the beetle antennae search algorithm in the iterative process by improving a single beetle into a population. The improved beetle antennae search&#x2013;BP model not only effectively avoids the possibility of the local minimum but also achieves higher prediction accuracy and stronger robustness. <xref ref-type="bibr" rid="B31">Yang et&#x20;al. (2019)</xref> applied the Levenberg&#x2013;Marquard (LM)&#x2013;BP neural network model to the intrusion detection systems and optimized the weight threshold of the traditional BP neural network by using the characteristics of fast optimization and strong robustness of the LM algorithm. Compared with the traditional models, this model has a higher detection rate and a lower false alarm rate. <xref ref-type="bibr" rid="B22">Shen et&#x20;al. (2020)</xref> proposed a particle swarm evolution (PSE)&#x2013;BP algorithm to predict microchannel resistance factors. Compared with the BP algorithm, the PSE-BP algorithm can dramatically improve ANN training efficiency. The microchannel resistance coefficient predicted by the ANN model and trained by the PSE-BP algorithm is in accordance with the simulation samples.</p>
<p>In the learning method, some basic algorithms are easy to fall into the problem of local optimum, and some complex algorithms take a long time to train. Therefore, this article presents a short-term prediction method of wind power based on the DE&#x2013;back propagation (BP) neural network. First, the BP neural network is initialized and the gradient descent and BP are used to adjust the weights and thresholds of the network to build a BP neural network model; second, the global search capability of the DE algorithm is introduced to optimize the initial connection weights and neuron thresholds of the BP neural network. The DE algorithm performs accurate local gradient search in the region, converges continuously in the search space to obtain the global optimal solution and establishes a BP neural network short-term prediction model of wind power based on the DE algorithm.</p>
<p>The innovation of this article lies in the following:</p>
<p>1. This model reduces the BP neural network&#x27;s sensitivity to the initial connection weights and neuron thresholds, improves the speed and accuracy of the network, and shortens the training time by 23.1% when compared with the genetic algorithm (GA)&#x2013;BP model;</p>
<p>2. The DE algorithm is introduced to optimize the initial connection weights and neuron thresholds of the BP neural network. Compared to the application of the BP model in wind power prediction, the results show that the accuracy of the DE-BP algorithm is improved by about&#x20;5%.</p>
<p>The structure of this article is organized as follows: <xref ref-type="sec" rid="s1">Section 1</xref> is the introduction; <xref ref-type="sec" rid="s2">Section 2</xref> describes the BP neural network, GA, and DE algorithm models; and then <xref ref-type="sec" rid="s3">Section 3</xref> proposes an improved DE-BP hybrid intelligent algorithm prediction program. <xref ref-type="sec" rid="s4">Section 4</xref> includes the analysis results and the conclusion of this article.</p>
</sec>
<sec id="s2">
<title>2 Basic Model</title>
<sec id="s2-1">
<title>2.1 BP Neural Network Model</title>
<p>The back propagation (BP) neural network is a multilayer feedforward neural network. The training process of the BP neural network is the process of continuously adjusting the weights and thresholds of the network to make its prediction results meet the requirements. It can be divided into two elements: the forward propagation and the BP. The forward propagation refers to the transfer of information from the input layer to the output layer of the neural network, and the output result is obtained (<xref ref-type="bibr" rid="B27">Wu et&#x20;al., 2005</xref>).The BP refers to the neural network adjusting and modifying the weights and thresholds layer by layer by means of the backward transmission of errors (<xref ref-type="bibr" rid="B16">Liu, 2019</xref>). This article chooses to construct a single hidden layer neural network, and its structure is shown in <xref ref-type="fig" rid="F1">Figure&#x20;1</xref>.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Back propagation neural network structure.</p>
</caption>
<graphic xlink:href="fenrg-10-844111-g001.tif"/>
</fig>
<p>Here, <italic>n</italic> and <italic>m</italic> are the dimensions of the input layer and output layer data sets, corresponding to the number of independent variables and dependent variables in the actual research problem, <italic>p</italic> is the number of neurons in the hidden layer, and the number of neurons in each layer can also be called the number of nodes. <italic>&#x3c9;</italic>
<sub>
<italic>ij</italic>
</sub> (<italic>i</italic>&#x20;&#x3d; 1, 2, &#x2026; , <italic>n</italic>) and <italic>v</italic>
<sub>
<italic>jk</italic>
</sub> (<italic>j</italic>&#x20;&#x3d; 1, 2, &#x2026; , <italic>p</italic>; <italic>k</italic>&#x20;&#x3d; 1, 2, &#x2026; , <italic>m</italic>)are the connection weights between the layers, respectively. The steps of the classic BP algorithm are as follows:</p>
<p>Step 1. Forward calculation for unit <italic>j</italic> on the <italic>l</italic>th layer<disp-formula id="e1">
<mml:math id="m1">
<mml:msubsup>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:msubsup>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(1)</label>
</disp-formula>where <inline-formula id="inf1">
<mml:math id="m2">
<mml:msubsup>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> is the signal transmitted by unit <italic>i</italic> of the previous layer <italic>(l-1)</italic>. If the function of unit <italic>j</italic> is the Sigmoid function, then<disp-formula id="e2">
<mml:math id="m3">
<mml:msubsup>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>exp</mml:mi>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(2)</label>
</disp-formula>and<disp-formula id="e3">
<mml:math id="m4">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">exp</mml:mi>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="italic">exp</mml:mi>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:math>
<label>(3)</label>
</disp-formula>
</p>
<p>If neuron <italic>j</italic> belongs to the first hidden layer <italic>(l &#x3d; 1)</italic>,then<disp-formula id="e4">
<mml:math id="m5">
<mml:msubsup>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:math>
<label>(4)</label>
</disp-formula>
</p>
<p>If the neuron belongs to the output layer <italic>(l &#x3d; L)</italic>, then<disp-formula id="e5">
<mml:math id="m6">
<mml:msubsup>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(5)</label>
</disp-formula>and<disp-formula id="e6">
<mml:math id="m7">
<mml:msub>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:math>
<label>(6)</label>
</disp-formula>Step 2. Reverse calculation <italic>&#x3b4;</italic>. For output units<disp-formula id="e7">
<mml:math id="m8">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:math>
<label>(7)</label>
</disp-formula>For Hidden Units<disp-formula id="e8">
<mml:math id="m9">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:munder>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:munder>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:msubsup>
<mml:mrow>
<mml:mi>w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:math>
<label>(8)</label>
</disp-formula>Step 3. Correct the weights.<disp-formula id="e9">
<mml:math id="m10">
<mml:msubsup>
<mml:mrow>
<mml:mi>w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b7;</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:msubsup>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:math>
<label>(9)</label>
</disp-formula>In actual situations, the degree of weight change will become more and more intense as the value of <italic>&#x3b7;</italic> increases, resulting in oscillations. On the contrary, if the value of <italic>&#x3b7;</italic> is smaller, the corresponding learning process will become more convergent, and the learning speed will also slow&#x20;down.</p>
<p>Step 4. <italic>n &#x3d; n &#x2b; 1</italic>, enter a new sample until the expected requirements are&#x20;met.</p>
<p>Although the BP neural network is the most widely used algorithm in artificial neural network, there exist the following defects (<xref ref-type="bibr" rid="B13">Huang et&#x20;al., 2020</xref>; <xref ref-type="bibr" rid="B31">Yang et&#x20;al., 2019</xref>).<list list-type="simple">
<list-item>
<p>1. The problem of local minimization. The traditional BP neural network is a local search optimization method. The weights of the network are adjusted gradually along the direction of local improvement. This makes the algorithm trap into a local extremum, and the weights converge to the local minimum.</p>
</list-item>
<list-item>
<p>2. The convergence speed is slow. Since the BP neural network algorithm is essentially a gradient descent method, the objective function to be optimized is very complex, so the &#x201c;sawtooth phenomenon&#x201d; will appear, and when the neuron output is approaching 0 or 1, some flat areas appear, in which the weight error changes little, making the training process almost come to a halt. The traditional one-dimensional search method cannot be used in the BP neural network model to find the step length of each iteration, but the updated rule of the step length must be preassigned to the network.</p>
</list-item>
<list-item>
<p>3. The overfitting phenomenon of predictive ability. In general, the predictive ability increases with the improvement of training ability. But this trend is not fixed. When reaching the limit, with the improvement of training ability, the predictive ability will decrease instead, hence appearing the &#x201c;overfitting&#x201d; phenomenon. This phenomenon is attributed to the fact that the network has grasped too many sample details, and the learned model cannot reflect the laws contained in the samples any&#x20;more.</p>
</list-item>
<list-item>
<p>4. Sample dependency problem. The approximation and generalization ability of the network model is strongly linked to the typicality of the learning samples, and there exist difficulties to select typical samples from the problems to form the training&#x20;set.</p>
</list-item>
</list>
</p>
</sec>
<sec id="s2-2">
<title>2.2 Genetic Algorithm Prediction Model</title>
<p>The GA is a parallel random search optimization method put forward by Professor Holland in 1962 to simulate natural genetic mechanisms and biological evolution theory (<xref ref-type="bibr" rid="B4">Bodenhofer, 2003</xref>). It introduces the biological evolution principle of &#x201c;natural selection and survival of the fittest&#x201d; in nature into the coded tandem population formed by optimized parameters. Individuals are screened according to the selected fitness function and through selection, crossover, and mutation in heredity, such that individuals with good fitness value are retained, while those with poor fitness value are eliminated. The new population inherits the previous generation&#x27;s information and also performs better than the previous generation. This cycle is repeated until the conditions are&#x20;met.</p>
<p>GA optimizes the ownership and threshold of the BP neural network using GAs. Each individual in the population contains a network ownership value and threshold. The individual calculates the individual fitness value through the fitness function. The GA finds the corresponding individual of the optimal fitness value through selection, crossover, and mutation. The BP neural network prediction obtains the optimal individual through the GA to assign initial weights and thresholds to the network, and the network is trained to predict the output of the function. The formula of the mean square error fitness function is:<disp-formula id="e10">
<mml:math id="m11">
<mml:mi>f</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</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:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>o</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mo>,</mml:mo>
</mml:math>
<label>(10)</label>
</disp-formula>where <italic>N</italic> represents the number of data items in the training data set, and <italic>t</italic>
<sub>
<italic>i</italic>
</sub> and <italic>o</italic>
<sub>
<italic>i</italic>
</sub> are the expected target and training output, respectively.</p>
</sec>
</sec>
<sec id="s3">
<title>3 Wind Power Prediction Model Based on Differential Evolution&#x2013;Back Propagation</title>
<p>In order to overcome the BP local minimum problem caused by the initial random weight parameters of the network, this article introduces the DE algorithm, combined with the global search evolution algorithm and the local search gradient algorithm, to overcome the local minimum problem with high generalization and fast convergence&#x20;speed.</p>
<sec id="s3-1">
<title>3.1 The Optimization Characteristics of Differential Evolution Algorithm</title>
<p>The DE algorithm is an efficient global optimization algorithm which is a heuristic search algorithm based on population, and each individual in the population corresponds to a solution vector (<xref ref-type="bibr" rid="B9">Das and Suganthan, 2010</xref>).</p>
<p>The DE algorithm generates population individuals by using floating-point vectors for encoding (<xref ref-type="bibr" rid="B12">Fan, 2009</xref>). In the process of DE algorithm optimization, first, two individuals are selected from the parent individuals to generate a difference vector; second, another individual is selected to sum with the difference vector to generate the experimental individual; the parent individual and the corresponding experimental individual are cross-operated to generate new offspring individuals; finally, the selection is made between the parent individuals and the qualified individuals are saved for the next generation population (<xref ref-type="bibr" rid="B8">Chidambaram et&#x20;al., 2017</xref>; <xref ref-type="bibr" rid="B21">Ramos and Susteras, 2006</xref>).</p>
<p>The standard DE algorithm consists of four steps: initialization, mutation, crossover, and selection. As shown in <xref ref-type="fig" rid="F2">Figure&#x20;2</xref>, this article adopts the DE/rand/1/bin mechanism. The details of each step are as follows:</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Flowchart of differential evolution algorithm.</p>
</caption>
<graphic xlink:href="fenrg-10-844111-g002.tif"/>
</fig>
<p>Step 1. Initialization operation: The DE algorithm in this article adopts the real number coding method. In this step, the parameters are first initialized, including the population size <italic>N</italic>, gene dimension <italic>D</italic>, mutation factor <italic>F</italic>, crossover factor <italic>CR</italic>, and the value range of each gene <italic>[Umin, Umax]</italic>, and then, the population is initialized randomly, as shown in the formula:<disp-formula id="e11">
<mml:math id="m12">
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">min</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>r</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">min</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(11)</label>
</disp-formula>where <italic>i</italic>&#x20;&#x3d; 1, 2, &#x2026; , <italic>N</italic>; <italic>j</italic>&#x20;&#x3d; 1, 2, &#x2026; , <italic>D</italic>; <italic>rand</italic> is a random number that obeys a uniform distribution.</p>
<p>Step 2. Mutation operation: For each target vector <inline-formula id="inf2">
<mml:math id="m13">
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1,2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
</mml:math>
</inline-formula>, the standard DE algorithm generates a corresponding mutation vector by the formula:<disp-formula id="e12">
<mml:math id="m14">
<mml:msubsup>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:math>
<label>(12)</label>
</disp-formula>Step 3.Crossover operation: Crossover operation generates an experimental individual by the formula:<disp-formula id="e13">
<mml:math id="m15">
<mml:msubsup>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="cases">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msubsup>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mi>r</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2a7d;</mml:mo>
<mml:mi>r</mml:mi>
<mml:mi>n</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mspace width="1em"/>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(13)</label>
</disp-formula>where <italic>r(j)</italic> is a random number uniformly distributed among [0,1]; <italic>j</italic> represents the <italic>j</italic>th gene; the range of <italic>CR</italic> is [0,1]. In order to ensure the obtaining of at least one-dimensional variable of the experimental individual from the mutated individual, set <italic>rn</italic>(<italic>i</italic>) &#x2208; [1, 2, &#x2026; , <italic>D</italic>] as a randomly selected gene dimension index. The smaller the <italic>CR</italic>, the better the global search effect.</p>
<p>Step 4. Selection operation: DE uses a greedy search strategy. Each target individual <inline-formula id="inf3">
<mml:math id="m16">
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> competes with its corresponding experimental individual <inline-formula id="inf4">
<mml:math id="m17">
<mml:msubsup>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>, and their fitness values are compared. Only when the fitness value of the experimental individual is better than that of the target individual can it be selected as the offspring. If not, the target individual is directly taken as the offspring. Taking minimization optimization as an example, the selection is demonstrated in <xref ref-type="disp-formula" rid="e14">Eq. 14</xref>, where <italic>f(.)</italic> is a fitness function:<disp-formula id="e14">
<mml:math id="m18">
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="cases">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msubsup>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mi>f</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3c;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mi>o</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>e</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:math>
<label>(14)</label>
</disp-formula>
</p>
<p>As a new and efficient heuristic parallel search technology, the DE algorithm possesses such advantages as fast convergence, few control parameters, simple setting, and robust optimization results (<xref ref-type="bibr" rid="B19">Neri and Tirronen, 2010</xref>). It has important academic significance for the theory and application of evolutionary algorithms. However, the standard DE algorithm also has the phenomenon of high pressure of control parameter selection and the contradiction between search ability and development ability, which tends to cause such problems as premature convergence of individuals of the population and search stagnation.</p>
</sec>
<sec id="s3-2">
<title>3.2 Wind Power Prediction Method Based on Differential Evolution&#x2013;Back Propagation Neural Network</title>
<p>Considering the shortcomings of the BP algorithm tending to fall into local optima, and the shortcomings of individual premature convergence and search stagnation of DE algorithm population, this article proposes a DE-BP algorithm for wind power prediction. First, the number of nodes of input, output, and hidden layer of the BP neural network are initialized, and traditional gradient descent and BP to adjust the weights and thresholds of the network to construct the BP neural network model are used. Secondly, the DE algorithm is introduced to optimize the initial connection weights and neuron thresholds of the BP neural network, which can avoid its falling into the local optimum. This article establishes a DE-BP neural network model based on the DE algorithm, which reduces the sensitivity of the BP neural network to the initial connection weights and neuron thresholds. The DE-BP model improves the speed and accuracy of network training. Since the BP algorithm is easy to fall into the local optimal value when predicting, the DE algorithm is introduced to optimize this shortcoming. The DE algorithm is used to optimize the initial weights and thresholds of the BP neural network, such that the optimized BP neural network can better predict samples. After the DE algorithm is optimized, the best initial weight and threshold matrix are obtained, and the initial weight and threshold are substituted into the network to obtain the training error value, predicted value, prediction error, and training error. The process of optimizing the BP neural network with the DE algorithm is shown in <xref ref-type="fig" rid="F3">Figure&#x20;3</xref>.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Flowchart of differential evolution&#x2013;back propagation algorithm.</p>
</caption>
<graphic xlink:href="fenrg-10-844111-g003.tif"/>
</fig>
<p>The initialization step of the DE algorithm first initializes the population size <italic>N</italic>, the individual gene dimension <italic>D</italic>, the maximum number of iterations <italic>G</italic>, the mutation factor <italic>F</italic>, the value range of each gene <italic>[Umin, Umax]</italic>, and the crossover factor <italic>CR</italic>:<disp-formula id="e15">
<mml:math id="m19">
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">min</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>r</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">min</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(15)</label>
</disp-formula>where <italic>i</italic>&#x20;&#x3d; 1, 2, &#x2026; , <italic>N</italic>; <italic>j</italic>&#x20;&#x3d; 1, 2, &#x2026; , <italic>D</italic>; <italic>rand</italic> is a random number that obeys the uniform distribution. It is determined whether the DE algorithm reaches the termination condition of the iteration. If it does, the DE process is stopped and the best individual is outputted; otherwise, the following operations are continued;</p>
<p>According to the adaptive mutation, crossover, and selection operation methods of the DE algorithm, the next generation of individuals <inline-formula id="inf5">
<mml:math id="m20">
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> is obtained; for each target vector <inline-formula id="inf6">
<mml:math id="m21">
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1,2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
</mml:math>
</inline-formula>, the DE algorithm generates a corresponding mutation:<disp-formula id="e16">
<mml:math id="m22">
<mml:msubsup>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(16)</label>
</disp-formula>
<disp-formula id="e17">
<mml:math id="m23">
<mml:mi>C</mml:mi>
<mml:mi>R</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>C</mml:mi>
<mml:mi>R</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>R</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>C</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">min</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:math>
<label>(17)</label>
</disp-formula>
</p>
<p>where <inline-formula id="inf7">
<mml:math id="m24">
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> are the three individuals with different serial numbers. Among them, the individual serial numbers <italic>r</italic>
<sub>1</sub>, <italic>r</italic>
<sub>2</sub>, and <italic>r</italic>
<sub>3</sub> are randomly selected, and they are different from each other and also different from the target individual&#x27;s serial number <italic>i</italic>, so the population size <italic>N</italic>&#x20;&#x2265; 4, among them:<disp-formula id="e18">
<mml:math id="m25">
<mml:mi>F</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">min</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">min</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>M</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>G</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:msup>
<mml:mo>,</mml:mo>
</mml:math>
<label>(18)</label>
</disp-formula>
</p>
<p>where <italic>CR</italic>(<italic>g</italic>) represents the mutation probability of generation <italic>g</italic>; <italic>CR</italic> (<italic>g</italic>&#x20;&#x2b; 1), the mutation probability of generation <italic>g</italic>&#x20;&#x2b; 1; <italic>F</italic>
<sub>min</sub> is the smallest mutation factor; <italic>F</italic>
<sub>max</sub> is the largest mutation factor; <italic>GenM</italic> is the maximum number of iterations; <italic>G</italic> the current number of iterations; <italic>CR</italic> (0) is the initial value of the mutation factor; and <italic>CR</italic>
<sub>min</sub> is the minimum value of the mutation factor in the evolution process.</p>
<p>After the next generation of individuals is obtained, the fitness value of their population is evaluated. The minimum fitness value is the current global minimum value, and the corresponding individual is the current global optimal individual; then, let <italic>G</italic>&#x20;&#x3d; <italic>G</italic>&#x20;&#x2b; 1, returning to the judgment operation, the judgments are made based on the conditions. The optimal individual output optimized by the DE algorithm is used as the initial weight and threshold of BP, and the network is trained with a training set to obtain the optimal DE-BP prediction model. As shown in <xref ref-type="fig" rid="F3">Figure&#x20;3</xref>, when the global minimum is &#x2264; <italic>&#x3bc;</italic> or <italic>G</italic>&#x20;&#x2265; <italic>GenM</italic>, the optimal individual is outputted and the DE operation ends. The termination condition in judging whether the DE algorithm reaches the termination condition of the iteration is: the minimum fitness value reaches the set error precision requirement <italic>&#x3bc;</italic> or the algorithm has reached the maximum iteration number&#x20;<italic>GenM</italic>.</p>
</sec>
</sec>
<sec id="s4">
<title>4 Experiment Results</title>
<p>This article selects the historical data from a wind farm in Northwest China from October 2016 to April 2018, and samples wind speed, wind direction, temperature, and air pressure at the height of the turbine every 15&#xa0;min. The 24-h wind power changes on 10 October 2016 are shown in <xref ref-type="table" rid="T1">Table1</xref>.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Wind power changes on 10 October&#x20;2016.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Time</th>
<th align="center">Power (MW)</th>
<th align="center">Time</th>
<th align="center">Power (MW)</th>
<th align="center">Time</th>
<th align="center">Power (MW)</th>
<th align="center">Time</th>
<th align="center">Power (MW)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">00:00:00</td>
<td align="char" char=".">2.22</td>
<td align="center">06:00:00</td>
<td align="char" char=".">1.25</td>
<td align="center">12:00:00</td>
<td align="char" char=".">0.15</td>
<td align="center">18:00:00</td>
<td align="char" char=".">2.2</td>
</tr>
<tr>
<td align="left">00:15:00</td>
<td align="char" char=".">2.23</td>
<td align="center">06:15:00</td>
<td align="char" char=".">1.23</td>
<td align="center">12:15:00</td>
<td align="char" char=".">0.15</td>
<td align="center">18:15:00</td>
<td align="char" char=".">2.1</td>
</tr>
<tr>
<td align="left">00:30:00</td>
<td align="char" char=".">2.25</td>
<td align="center">06:30:00</td>
<td align="char" char=".">1.21</td>
<td align="center">12:30:00</td>
<td align="char" char=".">0.15</td>
<td align="center">18:30:00</td>
<td align="char" char=".">1.91</td>
</tr>
<tr>
<td align="left">00:45:00</td>
<td align="char" char=".">2.28</td>
<td align="center">06:45:00</td>
<td align="char" char=".">1.19</td>
<td align="center">12:45:00</td>
<td align="char" char=".">0.15</td>
<td align="center">18:45:00</td>
<td align="char" char=".">1.73</td>
</tr>
<tr>
<td align="left">01:00:00</td>
<td align="char" char=".">2.3</td>
<td align="center">07:00:00</td>
<td align="char" char=".">1.17</td>
<td align="center">13:00:00</td>
<td align="char" char=".">0.15</td>
<td align="center">19:00:00</td>
<td align="char" char=".">1.54</td>
</tr>
<tr>
<td align="left">01:15:00</td>
<td align="char" char=".">2.29</td>
<td align="center">07:15:00</td>
<td align="char" char=".">1.1</td>
<td align="center">13:15:00</td>
<td align="char" char=".">0.16</td>
<td align="center">19:15:00</td>
<td align="char" char=".">1.38</td>
</tr>
<tr>
<td align="left">01:30:00</td>
<td align="char" char=".">2.25</td>
<td align="center">07:30:00</td>
<td align="char" char=".">0.98</td>
<td align="center">13:30:00</td>
<td align="char" char=".">0.18</td>
<td align="center">19:30:00</td>
<td align="char" char=".">1.24</td>
</tr>
<tr>
<td align="left">01:45:00</td>
<td align="char" char=".">2.22</td>
<td align="center">07:45:00</td>
<td align="char" char=".">0.85</td>
<td align="center">13:45:00</td>
<td align="char" char=".">0.19</td>
<td align="center">19:45:00</td>
<td align="char" char=".">1.09</td>
</tr>
<tr>
<td align="left">02:00:00</td>
<td align="char" char=".">2.18</td>
<td align="center">08:00:00</td>
<td align="char" char=".">0.73</td>
<td align="center">14:00:00</td>
<td align="char" char=".">0.21</td>
<td align="center">20:00:00</td>
<td align="char" char=".">0.95</td>
</tr>
<tr>
<td align="left">02:15:00</td>
<td align="char" char=".">2.15</td>
<td align="center">08:15:00</td>
<td align="char" char=".">0.62</td>
<td align="center">14:15:00</td>
<td align="char" char=".">0.27</td>
<td align="center">20:15:00</td>
<td align="char" char=".">0.87</td>
</tr>
<tr>
<td align="left">02:30:00</td>
<td align="char" char=".">2.13</td>
<td align="center">08:30:00</td>
<td align="char" char=".">0.5</td>
<td align="center">14:30:00</td>
<td align="char" char=".">0.38</td>
<td align="center">20:30:00</td>
<td align="char" char=".">0.87</td>
</tr>
<tr>
<td align="left">02:45:00</td>
<td align="char" char=".">2.12</td>
<td align="center">08:45:00</td>
<td align="char" char=".">0.39</td>
<td align="center">14:45:00</td>
<td align="char" char=".">0.49</td>
<td align="center">20:45:00</td>
<td align="char" char=".">0.87</td>
</tr>
<tr>
<td align="left">03:00:00</td>
<td align="char" char=".">2.1</td>
<td align="center">09:00:00</td>
<td align="char" char=".">0.28</td>
<td align="center">15:00:00</td>
<td align="char" char=".">0.61</td>
<td align="center">21:00:00</td>
<td align="char" char=".">0.86</td>
</tr>
<tr>
<td align="left">03:15:00</td>
<td align="char" char=".">2.04</td>
<td align="center">09:15:00</td>
<td align="char" char=".">0.21</td>
<td align="center">15:15:00</td>
<td align="char" char=".">0.81</td>
<td align="center">21:15:00</td>
<td align="char" char=".">0.91</td>
</tr>
<tr>
<td align="left">03:30:00</td>
<td align="char" char=".">1.94</td>
<td align="center">09:30:00</td>
<td align="char" char=".">0.19</td>
<td align="center">15:30:00</td>
<td align="char" char=".">1.11</td>
<td align="center">21:30:00</td>
<td align="char" char=".">1</td>
</tr>
<tr>
<td align="left">03:45:00</td>
<td align="char" char=".">1.83</td>
<td align="center">09:45:00</td>
<td align="char" char=".">0.16</td>
<td align="center">15:45:00</td>
<td align="char" char=".">1.41</td>
<td align="center">21:45:00</td>
<td align="char" char=".">1.09</td>
</tr>
<tr>
<td align="left">04:00:00</td>
<td align="char" char=".">1.72</td>
<td align="center">10:00:00</td>
<td align="char" char=".">0.13</td>
<td align="center">16:00:00</td>
<td align="char" char=".">1.71</td>
<td align="center">22:00:00</td>
<td align="char" char=".">1.19</td>
</tr>
<tr>
<td align="left">04:15:00</td>
<td align="char" char=".">1.66</td>
<td align="center">10:15:00</td>
<td align="char" char=".">0.12</td>
<td align="center">16:15:00</td>
<td align="char" char=".">1.92</td>
<td align="center">22:15:00</td>
<td align="char" char=".">1.25</td>
</tr>
<tr>
<td align="left">04:30:00</td>
<td align="char" char=".">1.66</td>
<td align="center">10:30:00</td>
<td align="char" char=".">0.13</td>
<td align="center">16:30:00</td>
<td align="char" char=".">2.03</td>
<td align="center">22:30:00</td>
<td align="char" char=".">1.28</td>
</tr>
<tr>
<td align="left">04:45:00</td>
<td align="char" char=".">1.65</td>
<td align="center">10:45:00</td>
<td align="char" char=".">0.14</td>
<td align="center">16:45:00</td>
<td align="char" char=".">2.14</td>
<td align="center">22:45:00</td>
<td align="char" char=".">1.31</td>
</tr>
<tr>
<td align="left">05:00:00</td>
<td align="char" char=".">1.64</td>
<td align="center">11:00:00</td>
<td align="char" char=".">0.15</td>
<td align="center">17:00:00</td>
<td align="char" char=".">2.3</td>
<td align="center">23:00:00</td>
<td align="char" char=".">1.34</td>
</tr>
<tr>
<td align="left">05:15:00</td>
<td align="char" char=".">1.63</td>
<td align="center">11:15:00</td>
<td align="char" char=".">0.15</td>
<td align="center">17:15:00</td>
<td align="char" char=".">2.27</td>
<td align="center">23:15:00</td>
<td align="char" char=".">1.32</td>
</tr>
<tr>
<td align="left">05:30:00</td>
<td align="char" char=".">1.62</td>
<td align="center">11:30:00</td>
<td align="char" char=".">0.15</td>
<td align="center">17:30:00</td>
<td align="char" char=".">2.25</td>
<td align="center">23:30:00</td>
<td align="char" char=".">1.23</td>
</tr>
<tr>
<td align="left">05:45:00</td>
<td align="char" char=".">1.61</td>
<td align="center">11:45:00</td>
<td align="char" char=".">0.15</td>
<td align="center">17:45:00</td>
<td align="char" char=".">2.23</td>
<td align="center">23:45:00</td>
<td align="char" char=".">1.15</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>A total of 5,000 samples and 4,000 sets of model parameter training samples were tested, and 1,000 samples were used as new data to verify the model. All algorithms were programmed by MATLAB, and 4,000 sets of data were randomly trained and 1,000 sets of data were tested. The corresponding wind speed fluctuations with time during wind power output are shown in <xref ref-type="fig" rid="F4">Figure&#x20;4</xref>.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Wind speed distribution.</p>
</caption>
<graphic xlink:href="fenrg-10-844111-g004.tif"/>
</fig>
<p>The error is shown in <xref ref-type="table" rid="T2">Table&#x20;2</xref>, when selecting a different mutation factor F and crossover factor CR for prediction. From <xref ref-type="table" rid="T2">Table&#x20;2</xref>, when F &#x3d; 0.5 and CR &#x3d; 0.6, the prediction error is the smallest, so this parameter is selected as the DE-BP prediction model parameter.</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Differential evolution&#x2013;back propagation algorithm parameter selection.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Parameter</th>
<th align="center">F&#x20;&#x3d;&#x20;0.1</th>
<th align="center">F&#x20;&#x3d;&#x20;0.2</th>
<th align="center">F&#x20;&#x3d;&#x20;0.3</th>
<th align="center">F&#x20;&#x3d;&#x20;0.4</th>
<th align="center">F&#x20;&#x3d;&#x20;0.5</th>
<th align="center">F&#x20;&#x3d;&#x20;0.6</th>
<th align="center">F&#x20;&#x3d;&#x20;0.7</th>
<th align="center">F&#x20;&#x3d;&#x20;0.8</th>
<th align="center">F&#x20;&#x3d;&#x20;0.9</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">CR &#x3d; 0.1</td>
<td align="center">17.232&#x2009;2</td>
<td align="center">17.387&#x2009;5</td>
<td align="center">17.231&#x2009;1</td>
<td align="center">17.262&#x2009;7</td>
<td align="center">17.258&#x2009;7</td>
<td align="center">17.263&#x2009;5</td>
<td align="center">20.370&#x2009;3</td>
<td align="center">17.215&#x2009;8</td>
<td align="center">17.231&#x2009;4</td>
</tr>
<tr>
<td align="left">CR &#x3d; 0.2</td>
<td align="center">17.226&#x2009;5</td>
<td align="center">17.196&#x2009;4</td>
<td align="center">17.224&#x2009;1</td>
<td align="center">17.241&#x2009;8</td>
<td align="center">17.243&#x2009;1</td>
<td align="center">17.227&#x2009;7</td>
<td align="center">17.419&#x2009;9</td>
<td align="center">17.235&#x2009;9</td>
<td align="center">17.545&#x2009;6</td>
</tr>
<tr>
<td align="left">CR &#x3d; 0.3</td>
<td align="center">17.237&#x2009;3</td>
<td align="center">17.260&#x2009;8</td>
<td align="center">17.254&#x2009;7</td>
<td align="center">20.693&#x2009;1</td>
<td align="center">17.236&#x2009;4</td>
<td align="center">17.127&#x2009;5</td>
<td align="center">17.212&#x2009;9</td>
<td align="center">17.239&#x2009;1</td>
<td align="center">17.236&#x2009;2</td>
</tr>
<tr>
<td align="left">CR &#x3d; 0.4</td>
<td align="center">17.244&#x2009;2</td>
<td align="center">17.218&#x2009;3</td>
<td align="center">17.214&#x2009;8</td>
<td align="center">17.285&#x2009;4</td>
<td align="center">17.229&#x2009;1</td>
<td align="center">17.261&#x2009;0</td>
<td align="center">32.244&#x2009;2</td>
<td align="center">17.309&#x2009;1</td>
<td align="center">17.320&#x2009;2</td>
</tr>
<tr>
<td align="left">CR &#x3d; 0.5</td>
<td align="center">17.253&#x2009;1</td>
<td align="center">17.235&#x2009;1</td>
<td align="center">17.438&#x2009;0</td>
<td align="center">17.258&#x2009;4</td>
<td align="center">17.276&#x2009;4</td>
<td align="center">17.248&#x2009;9</td>
<td align="center">20.178&#x2009;9</td>
<td align="center">17.251&#x2009;0</td>
<td align="center">17.217&#x2009;5</td>
</tr>
<tr>
<td align="left">CR &#x3d; 0.6</td>
<td align="center">17.766&#x2009;5</td>
<td align="center">17.253&#x2009;0</td>
<td align="center">17.217&#x2009;3</td>
<td align="center">21.020&#x2009;1</td>
<td align="center">17.034&#x2009;4</td>
<td align="center">17.075&#x2009;9</td>
<td align="center">17.252&#x2009;0</td>
<td align="center">17.272&#x2009;5</td>
<td align="center">19.391&#x2009;4</td>
</tr>
<tr>
<td align="left">CR &#x3d; 0.7</td>
<td align="center">17.447&#x2009;4</td>
<td align="center">17.188&#x2009;6</td>
<td align="center">17.243&#x2009;8</td>
<td align="center">23.924&#x2009;6</td>
<td align="center">17.219&#x2009;8</td>
<td align="center">17.271&#x2009;5</td>
<td align="center">19.214&#x2009;2</td>
<td align="center">17.336&#x2009;9</td>
<td align="center">17.182&#x2009;1</td>
</tr>
<tr>
<td align="left">CR &#x3d; 0.8</td>
<td align="center">17.238&#x2009;1</td>
<td align="center">18.055&#x2009;1</td>
<td align="center">17.273&#x2009;7</td>
<td align="center">17.166&#x2009;1</td>
<td align="center">17.241&#x2009;5</td>
<td align="center">17.207&#x2009;0</td>
<td align="center">17.726&#x2009;6</td>
<td align="center">17.307&#x2009;5</td>
<td align="center">17.220&#x2009;3</td>
</tr>
<tr>
<td align="left">CR &#x3d; 0.9</td>
<td align="center">17.234&#x2009;6</td>
<td align="center">17.255&#x2009;7</td>
<td align="center">17.252&#x2009;0</td>
<td align="center">17.238&#x2009;6</td>
<td align="center">18.752&#x2009;7</td>
<td align="center">17.217&#x2009;1</td>
<td align="center">17.403&#x2009;5</td>
<td align="center">17.339&#x2009;7</td>
<td align="center">17.228&#x2009;3</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The following three error assessment criteria analyze the feasibility and effectiveness of each model, that is, the mean absolute error (MAE), mean squared error (MSE), and root mean square error (RMSE). The formulas are as follows:<disp-formula id="e19">
<mml:math id="m26">
<mml:mi>M</mml:mi>
<mml:mi>A</mml:mi>
<mml:mi>E</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>t</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:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo stretchy="false">&#x7c;</mml:mo>
</mml:math>
<label>(19)</label>
</disp-formula>
<disp-formula id="e20">
<mml:math id="m27">
<mml:mi>M</mml:mi>
<mml:mi>S</mml:mi>
<mml:mi>E</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>t</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:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>,</mml:mo>
</mml:math>
<label>(20)</label>
</disp-formula>
<disp-formula id="e21">
<mml:math id="m28">
<mml:mi>R</mml:mi>
<mml:mi>M</mml:mi>
<mml:mi>S</mml:mi>
<mml:mi>E</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>t</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:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msqrt>
<mml:mo>.</mml:mo>
</mml:math>
<label>(21)</label>
</disp-formula>
</p>
<p>
<xref ref-type="table" rid="T3">Table&#x20;3</xref> lists the errors of using the BP neural network, GA-BP neural network, and DE-BP neural network to predict short-term wind power. The results show that, compared with other models, the DE-BP model has a higher prediction accuracy and stronger ability to track actual wind power. It can realize real-time wind power dispatching, reduce the damage to the wind power grid caused by random changes in wind power, and strengthen the emergency measures of dispatching organization for sudden wind power instability during the process of grid connection.</p>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Comparison of wind power prediction error results between back propagation (BP) and differential evolution (DE)&#x2013;BP algorithms.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Predictive Models</th>
<th align="center">MAE</th>
<th align="center">MSE</th>
<th align="center">RMSE</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">BP</td>
<td align="center">10.172&#x2009;4</td>
<td align="center">39.765&#x2009;1</td>
<td align="center">44.983&#x2009;4</td>
</tr>
<tr>
<td align="left">GA-BP</td>
<td align="center">11.274&#x2009;4</td>
<td align="center">37.982&#x2009;0</td>
<td align="center">45.736&#x2009;3</td>
</tr>
<tr>
<td align="left">DE-BP</td>
<td align="center">8.328&#x2009;9</td>
<td align="center">36.023&#x2009;4</td>
<td align="center">41.334&#x2009;1</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn>
<p>MAE, mean absolute error; MSE, mean squared error; RMSE, root mean square error; GA, genetic algorithm.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<p>This article extracts 70 pieces of historical data as training samples and uses the trained network to predict the ultra-short-term wind power within 2&#xa0;h after the prediction point. The prediction samples of each model are 30 prediction samples on a certain day. Taking into account the influence of the different climates and other factors throughout the year on wind power fluctuation, the wind power of each season is predicted, as shown in <xref ref-type="fig" rid="F5">Figures 5A&#x2013;D</xref>, representing spring, summer, autumn and winter, respectively.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Comparison of prediction errors between differential evolution algorithm and other algorithms in each season: <bold>(A)</bold> spring, <bold>(B)</bold> summer, <bold>(C)</bold> fall, <bold>(D)</bold> winter.</p>
</caption>
<graphic xlink:href="fenrg-10-844111-g005.tif"/>
</fig>
<p>
<xref ref-type="fig" rid="F6">Figure&#x20;6</xref> shows the comparison of the prediction curves of short-term wind power prediction using each model. When the power fluctuation range is large, the DE-BP model has better tracking ability than the GA-BP and BP models. Combined with the error indicators in <xref ref-type="table" rid="T4">Table&#x20;4</xref>, the prediction error of the DE-BP model is relatively&#x20;small.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Comparison of the predicted value of differential evolution algorithm with other algorithms.</p>
</caption>
<graphic xlink:href="fenrg-10-844111-g006.tif"/>
</fig>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>Comparison of wind power prediction error results between back propagation (BP) and differential evolution (DE)&#x2013;BP algorithms.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Times</th>
<th align="center">BP</th>
<th align="center">GA-BP</th>
<th align="center">DE-BP</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">1</td>
<td align="center">18.285&#x2009;4</td>
<td align="center">9.216&#x2009;6</td>
<td align="center">8.691&#x2009;3</td>
</tr>
<tr>
<td align="left">2</td>
<td align="center">10.845&#x2009;2</td>
<td align="center">8.152&#x2009;8</td>
<td align="center">7.642&#x2009;8</td>
</tr>
<tr>
<td align="left">3</td>
<td align="center">12.127&#x2009;4</td>
<td align="center">8.892&#x2009;3</td>
<td align="center">8.375&#x2009;5</td>
</tr>
<tr>
<td align="left">4</td>
<td align="center">13.572&#x2009;9</td>
<td align="center">10.715&#x2009;3</td>
<td align="center">8.188&#x2009;8</td>
</tr>
<tr>
<td align="left">5</td>
<td align="center">11.775&#x2009;8</td>
<td align="center">12.203&#x2009;9</td>
<td align="center">7.580&#x2009;7</td>
</tr>
<tr>
<td align="left">6</td>
<td align="center">18.306&#x2009;6</td>
<td align="center">9.236&#x2009;6</td>
<td align="center">7.571&#x2009;4</td>
</tr>
<tr>
<td align="left">7</td>
<td align="center">38.205&#x2009;4</td>
<td align="center">9.944&#x2009;8</td>
<td align="center">8.711&#x2009;3</td>
</tr>
<tr>
<td align="left">8</td>
<td align="center">7.443&#x2009;0</td>
<td align="center">16.682&#x2009;9</td>
<td align="center">8.156&#x2009;1</td>
</tr>
<tr>
<td align="left">9</td>
<td align="center">23.024&#x2009;1</td>
<td align="center">15.483&#x2009;3</td>
<td align="center">9.421&#x2009;1</td>
</tr>
<tr>
<td align="left">10</td>
<td align="center">10.024&#x2009;2</td>
<td align="center">12.226&#x2009;8</td>
<td align="center">7.896&#x2009;7</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn>
<p>GA, genetic algorithm.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<p>After the training of the BP neural network, the minimum fitness is found by the DE algorithm. The population size of the DE algorithm is 50, the number of iterations is 300, <italic>F</italic>&#x20;&#x3d; 0.5, and <italic>CR</italic> &#x3d; 0.6, and the optimal individual fitness curve in the optimization process is shown in <xref ref-type="fig" rid="F7">Figure&#x20;7</xref>. The optimal individual fitness value obtained by the DE-BP algorithm is less than 2.2 &#xd7; 10<sup>&#x2013;3</sup> and close to 0, indicating the effectiveness of the method.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Differential evolution&#x2013;back propagation algorithm fitness function changes.</p>
</caption>
<graphic xlink:href="fenrg-10-844111-g007.tif"/>
</fig>
<p>The training time used by the two optimization models is shown in <xref ref-type="table" rid="T5">Table&#x20;5</xref>. The average training time of the GA-BP model is 86.245&#x2009;3&#xa0;s and that of the DE-BP model is 66.329&#x2009;7&#xa0;s. The parameters of the BP neural network can be optimized by the DE algorithm, which effectively improves the training time by&#x20;23.1%.</p>
<table-wrap id="T5" position="float">
<label>TABLE 5</label>
<caption>
<p>Training time of wind power prediction&#x20;model.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Times</th>
<th align="center">GA-BP</th>
<th align="center">DE-BP</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">1</td>
<td align="center">88.453&#x2009;1</td>
<td align="center">65.906&#x2009;3</td>
</tr>
<tr>
<td align="left">2</td>
<td align="center">85.390&#x2009;6</td>
<td align="center">63.781&#x2009;3</td>
</tr>
<tr>
<td align="left">3</td>
<td align="center">87.812&#x2009;5</td>
<td align="center">64.765&#x2009;6</td>
</tr>
<tr>
<td align="left">4</td>
<td align="center">86.203&#x2009;1</td>
<td align="center">65.359&#x2009;4</td>
</tr>
<tr>
<td align="left">5</td>
<td align="center">83.437&#x2009;5</td>
<td align="center">67.843&#x2009;8</td>
</tr>
<tr>
<td align="left">6</td>
<td align="center">84.296&#x2009;9</td>
<td align="center">69.250&#x2009;0</td>
</tr>
<tr>
<td align="left">7</td>
<td align="center">88.140&#x2009;6</td>
<td align="center">64.828&#x2009;1</td>
</tr>
<tr>
<td align="left">8</td>
<td align="center">81.015&#x2009;6</td>
<td align="center">68.640&#x2009;6</td>
</tr>
<tr>
<td align="left">9</td>
<td align="center">86.203&#x2009;1</td>
<td align="center">68.453&#x2009;1</td>
</tr>
<tr>
<td align="left">10</td>
<td align="center">91.500&#x2009;0</td>
<td align="center">64.468&#x2009;8</td>
</tr>
<tr>
<td align="left">Average</td>
<td align="center">86.245&#x2009;3</td>
<td align="center">66.329&#x2009;7</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn>
<p>GA-BP, genetic algorithm&#x2013;back propagation; DE-BP, differential evolution&#x2013;back propagation.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<p>The corresponding errors of the three models in predicting short-term wind power are shown in <xref ref-type="fig" rid="F8">Figure&#x20;8</xref>. It can be seen that the DE-BP wind power prediction model has the smallest error, which effectively improves the accuracy of the prediction.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Error of wind power prediction&#x20;model.</p>
</caption>
<graphic xlink:href="fenrg-10-844111-g008.tif"/>
</fig>
</sec>
<sec id="s5">
<title>5 Conclusion</title>
<p>In recent years, as the proportion of wind power generation continues to increase, the research on the accuracy of wind power prediction has become extremely important. This article proposes a hybrid method for wind power prediction, which is based on a feedforward neural network trained through a combination of the DE and BP algorithms.</p>
<p>This article mainly studies the objective function and parameter optimization. The DE algorithm is used to optimize the weight threshold of the BP neural network, and its average MSE is used as the objective function to improve the stability and generalization performance of the model, and the prediction accuracy is more than 95%. The average MAE during model testing was 7.48, highlighting the effectiveness of the proposed method. Compared with the traditional BP and GA-BP algorithms, the accuracy is improved. Finally, the above optimization algorithm is applied to wind power prediction to improve the prediction accuracy and stability, improve the wind power absorption capacity, and provide a reference for power grid dispatching. By preprocessing the historical data of a wind farm in Northwest China, the classic BP prediction, GA-BP prediction, and DE-BP prediction models are established and compared through simulation. It is verified that the DE-BP model is superior to the other models in terms of prediction, fills the gap of DE-BP in the field of wind power prediction, and has good prospect of engineering research&#x20;value.</p>
</sec>
</body>
<back>
<sec id="s6">
<title>Data Availability Statement</title>
<p>The raw data supporting the conclusion of this article will be made available by the authors, without undue reservation.</p>
</sec>
<sec id="s7">
<title>Author Contributions</title>
<p>NL is the corresponding author and takes primary responsibility. YW contributed for analysis of the work and wrote the first draft of the manuscript. All authors contributed to manuscript revision, and read and approved the submitted version.</p>
</sec>
<sec id="s8">
<title>Funding</title>
<p>This work was supported in part by the National Natural Science Foundation of China (52177193); China Scholarship Council (CSC) State Scholarship Fund International Clean Energy Talent Project (Grant No (2018)5046,(2019)157); and Open Research Fund of Jiangsu Collaborative Innovation Center for Smart Distribution Network, Nanjing Institute of Technology (XTCX202107).</p>
</sec>
<sec sec-type="COI-statement" id="s9">
<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="s10">
<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="confproc">
<person-group person-group-type="author">
<name>
<surname>Agarwal</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Shukla</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Sahay</surname>
<given-names>K. B.</given-names>
</name>
</person-group> (<year>2018</year>). &#x201c;<article-title>A Review on Different Methods of Wind Power Forecasting</article-title>,&#x201d; in <conf-name>Proceeding of the 2018 International Electrical Engineering Congress (iEECON)</conf-name>, <conf-loc>Krabi, Thailand</conf-loc>, <conf-date>7-9 March 2018</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>1</fpage>&#x2013;<lpage>4</lpage>. <pub-id pub-id-type="doi">10.1109/IEECON.2018.8712262</pub-id> </citation>
</ref>
<ref id="B2">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Babazadeh</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Cheng</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Lin</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2012</year>). &#x201c;<article-title>An Hour Ahead Wind Speed Prediction by Kalman Filter</article-title>,&#x201d; in <conf-name>Proceeding of the 2012 IEEE Power Electronics and Machines in Wind Applications</conf-name>, <conf-loc>Denver, CO, USA</conf-loc>, <conf-date>16-18 July 2012</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>1</fpage>&#x2013;<lpage>6</lpage>. </citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bhaskar</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Singh</surname>
<given-names>S. N.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>Awnn-assisted Wind Power Forecasting Using Feed-Forward Neural Network</article-title>. <source>IEEE Trans. Sustain. Energ.</source> <volume>3</volume>, <fpage>306</fpage>&#x2013;<lpage>315</lpage>. <pub-id pub-id-type="doi">10.1109/tste.2011.2182215</pub-id> </citation>
</ref>
<ref id="B4">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Bodenhofer</surname>
<given-names>U.</given-names>
</name>
</person-group> (<year>2003</year>). &#x201c;<article-title>Genetic Algorithms: Theory and Applications</article-title>,&#x201d; in <source>Lecture Notes, Fuzzy Logic Laboratorium Linz-Hagenberg, <italic>Winter</italic> 2004</source>. </citation>
</ref>
<ref id="B5">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Catalao</surname>
<given-names>J.&#x20;P. S.</given-names>
</name>
<name>
<surname>Pousinho</surname>
<given-names>H. M. I.</given-names>
</name>
<name>
<surname>Mendes</surname>
<given-names>V. M. F.</given-names>
</name>
</person-group> (<year>2009</year>). &#x201c;<article-title>An Artificial Neural Network Approach for Short-Term Wind Power Forecasting in portugal</article-title>,&#x201d; in <conf-name>Proceeding of the 2009&#x20;15th International Conference on Intelligent System Applications to Power Systems</conf-name>, <conf-loc>Curitiba, Brazil</conf-loc>, <conf-date>8-12 Nov. 2009</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>1</fpage>&#x2013;<lpage>5</lpage>. <pub-id pub-id-type="doi">10.1109/ISAP.2009.5352853</pub-id> </citation>
</ref>
<ref id="B6">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Chandra</surname>
<given-names>D. R.</given-names>
</name>
<name>
<surname>Kumari</surname>
<given-names>M. S.</given-names>
</name>
<name>
<surname>Sydulu</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2013</year>). &#x201c;<article-title>A Detailed Literature Review on Wind Forecasting</article-title>,&#x201d; in <conf-name>Proceeding of the 2013 International Conference on Power, Energy and Control (ICPEC)</conf-name>, <conf-loc>Dindigul, India</conf-loc>, <conf-date>6-8 Feb. 2013</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>630</fpage>&#x2013;<lpage>634</lpage>.<pub-id pub-id-type="doi">10.1109/ICPEC.2013.6527734</pub-id> </citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chang</surname>
<given-names>W.-Y.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>A Literature Review of Wind Forecasting Methods</article-title>. <source>Jpee</source> <volume>02</volume>, <fpage>161</fpage>&#x2013;<lpage>168</lpage>. <pub-id pub-id-type="doi">10.4236/jpee.2014.24023</pub-id> </citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chidambaram</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Ravichandran</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Seshadri</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Muniyandi</surname>
<given-names>V.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Computational Heat Transfer Analysis and Genetic Algorithm&#x2013;Artificial Neural Network&#x2013;Genetic Algorithm-Based Multiobjective Optimization of Rectangular Perforated Plate Fins</article-title>. <source>IEEE Trans. Components, Packaging Manufacturing Technology</source> <volume>7</volume>, <fpage>208</fpage>&#x2013;<lpage>216</lpage>. <pub-id pub-id-type="doi">10.1109/TCPMT.2016.2646718</pub-id> </citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Das</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Suganthan</surname>
<given-names>P. N.</given-names>
</name>
</person-group> (<year>2010</year>). <article-title>Differential Evolution: A Survey of the State-Of-The-Art</article-title>. <source>IEEE Trans. Evol. Comput.</source> <volume>15</volume>, <fpage>4</fpage>&#x2013;<lpage>31</lpage>. <pub-id pub-id-type="doi">10.1109/TEVC.2010.2059031</pub-id> </citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Foley</surname>
<given-names>A. M.</given-names>
</name>
<name>
<surname>Leahy</surname>
<given-names>P. G.</given-names>
</name>
<name>
<surname>Marvuglia</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>McKeogh</surname>
<given-names>E. J.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>Current Methods and Advances in Forecasting of Wind Power Generation</article-title>. <source>Renew. Energ.</source> <volume>37</volume>, <fpage>1</fpage>&#x2013;<lpage>8</lpage>. <pub-id pub-id-type="doi">10.1016/j.renene.2011.05.033</pub-id> </citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Haque</surname>
<given-names>A. U.</given-names>
</name>
<name>
<surname>Mandal</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Meng</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Srivastava</surname>
<given-names>A. K.</given-names>
</name>
<name>
<surname>Tseng</surname>
<given-names>T.-L.</given-names>
</name>
<name>
<surname>Senjyu</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>A Novel Hybrid Approach Based on Wavelet Transform and Fuzzy Artmap Networks for Predicting Wind Farm Power Production</article-title>. <source>IEEE Trans. Ind. Applicat.</source> <volume>49</volume>, <fpage>2253</fpage>&#x2013;<lpage>2261</lpage>. <pub-id pub-id-type="doi">10.1109/tia.2013.2262452</pub-id> </citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hongmei Fan</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2009</year>). <article-title>Using Radiating Near Field Region to Sample Radiation of Microstrip Traces for Far Field Prediction by Genetic Algorithms</article-title>. <source>IEEE Microw. Wireless Compon. Lett.</source> <volume>19</volume>, <fpage>272</fpage>&#x2013;<lpage>274</lpage>. <pub-id pub-id-type="doi">10.1109/lmwc.2009.2017586</pub-id> </citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Huang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Xiang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Cheng</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Air Quality Prediction Using Improved Pso-Bp Neural Network</article-title>. <source>Ieee Access</source> <volume>8</volume>, <fpage>99346</fpage>&#x2013;<lpage>99353</lpage>. <pub-id pub-id-type="doi">10.1109/access.2020.2998145</pub-id> </citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ju</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Rehman</surname>
<given-names>M. U.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>A Model Combining Convolutional Neural Network and Lightgbm Algorithm for Ultra-short-term Wind Power Forecasting</article-title>. <source>Ieee Access</source> <volume>7</volume>, <fpage>28309</fpage>&#x2013;<lpage>28318</lpage>. <pub-id pub-id-type="doi">10.1109/access.2019.2901920</pub-id> </citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Wind Power Prediction of Kernel Extreme Learning Machine Based on Differential Evolution Algorithm and Cross Validation Algorithm</article-title>. <source>IEEE Access</source> <volume>8</volume>, <fpage>68874</fpage>&#x2013;<lpage>68882</lpage>. <pub-id pub-id-type="doi">10.1109/access.2020.2985381</pub-id> </citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Recognition and Analysis of Motor Imagery Eeg Signal Based on Improved Bp Neural Network</article-title>. <source>IEEE Access</source> <volume>7</volume>, <fpage>47794</fpage>&#x2013;<lpage>47803</lpage>. <pub-id pub-id-type="doi">10.1109/access.2019.2910191</pub-id> </citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Infield</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Han</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Yan</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>A Hybrid Forecasting Method for Wind Power Ramp Based on Orthogonal Test and Support Vector Machine (Ot-svm)</article-title>. <source>IEEE Trans. Sustainable Energ.</source> <volume>8</volume>, <fpage>451</fpage>&#x2013;<lpage>457</lpage>. <pub-id pub-id-type="doi">10.1063/1.4950972</pub-id> </citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Tan</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Syncretic Application of Ibas-Bp Algorithm for Monitoring Equipment Online in Power System</article-title>. <source>IEEE Access</source> <volume>9</volume>, <fpage>21769</fpage>&#x2013;<lpage>21776</lpage>. <pub-id pub-id-type="doi">10.1109/access.2021.3055247</pub-id> </citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Neri</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Tirronen</surname>
<given-names>V.</given-names>
</name>
</person-group> (<year>2010</year>). <article-title>Recent Advances in Differential Evolution: a Survey and Experimental Analysis</article-title>. <source>Artif. Intell. Rev.</source> <volume>33</volume>, <fpage>61</fpage>&#x2013;<lpage>106</lpage>. <pub-id pub-id-type="doi">10.1007/s10462-009-9137-2</pub-id> </citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Paula</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Marilaine</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Jose Nuno</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Wallace</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Predicting Long-Term Wind Speed in Wind Farms of Northeast brazil: A Comparative Analysis through Machine Learning Models</article-title>. <source>IEEE Latin Am. Trans.</source> <volume>18</volume>, <fpage>2011</fpage>&#x2013;<lpage>2018</lpage>. <pub-id pub-id-type="doi">10.1109/tla.2020.9398643</pub-id> </citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ramos</surname>
<given-names>D. S.</given-names>
</name>
<name>
<surname>Susteras</surname>
<given-names>G. L.</given-names>
</name>
</person-group> (<year>2006</year>). <article-title>Applying Genetic Algorithms for Predicting Distribution Companies Power Contracting</article-title>. <source>IEEE Latin Am. Trans.</source> <volume>4</volume>, <fpage>268</fpage>&#x2013;<lpage>278</lpage>. <pub-id pub-id-type="doi">10.1109/tla.2006.4472123</pub-id> </citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Shen</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Chang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Liang</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Swarm Optimization Improved Bp Algorithm for Microchannel Resistance Factor</article-title>. <source>IEEE Access</source> <volume>8</volume>, <fpage>52749</fpage>&#x2013;<lpage>52758</lpage>. <pub-id pub-id-type="doi">10.1109/access.2020.2969526</pub-id> </citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sideratos</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Hatziargyriou</surname>
<given-names>N. D.</given-names>
</name>
</person-group> (<year>2007</year>). <article-title>An Advanced Statistical Method for Wind Power Forecasting</article-title>. <source>IEEE Trans. Power Syst.</source> <volume>22</volume>, <fpage>258</fpage>&#x2013;<lpage>265</lpage>. <pub-id pub-id-type="doi">10.1109/TPWRS.2006.889078</pub-id> </citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tan</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Han</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Ultra-short-term Wind Power Prediction by Salp Swarm Algorithm-Based Optimizing Extreme Learning Machine</article-title>. <source>IEEE Access</source> <volume>8</volume>, <fpage>44470</fpage>&#x2013;<lpage>44484</lpage>. <pub-id pub-id-type="doi">10.1109/access.2020.2978098</pub-id> </citation>
</ref>
<ref id="B25">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Tasnim</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Rahman</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Shafiullah</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Oo</surname>
<given-names>A. M. T.</given-names>
</name>
<name>
<surname>Stojcevski</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2014</year>). &#x201c;<article-title>A Time Series Ensemble Method to Predict Wind Power</article-title>,&#x201d; in <conf-name>Proceeding of the 2014 IEEE symposium on computational intelligence applications in smart grid (CIASG)</conf-name>, <conf-loc>Orlando, FL, USA</conf-loc>, <conf-date>9-12 Dec. 2014</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>1</fpage>&#x2013;<lpage>5</lpage>. <pub-id pub-id-type="doi">10.1109/CIASG.2014.7011544</pub-id> </citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wan</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Pinson</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Dong</surname>
<given-names>Z. Y.</given-names>
</name>
<name>
<surname>Wong</surname>
<given-names>K. P.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Probabilistic Forecasting of Wind Power Generation Using Extreme Learning Machine</article-title>. <source>IEEE Trans. Power Syst.</source> <volume>29</volume>, <fpage>1033</fpage>&#x2013;<lpage>1044</lpage>. <pub-id pub-id-type="doi">10.1109/TPWRS.2013.2287871</pub-id> </citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Feng</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2005</year>). <article-title>Deterministic Convergence of an Online Gradient Method for Bp Neural Networks</article-title>. <source>IEEE Trans. Neural Netw.</source> <volume>16</volume>, <fpage>533</fpage>&#x2013;<lpage>540</lpage>. <pub-id pub-id-type="doi">10.1109/tnn.2005.844903</pub-id> </citation>
</ref>
<ref id="B28">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>Y.-K.</given-names>
</name>
<name>
<surname>Su</surname>
<given-names>P.-E.</given-names>
</name>
<name>
<surname>Hong</surname>
<given-names>J.-S.</given-names>
</name>
</person-group> (<year>2016</year>). &#x201c;<article-title>An Overview of Wind Power Probabilistic Forecasts</article-title>,&#x201d; in <conf-name>Proceeding of the 2016 IEEE PES Asia-Pacific Power and Energy Engineering Conference (APPEEC)</conf-name>, <conf-loc>Xi&#x27;an, China</conf-loc>, <conf-date>25-28 Oct. 2016</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>429</fpage>&#x2013;<lpage>433</lpage>. <pub-id pub-id-type="doi">10.1109/APPEEC.2016.7779540</pub-id> </citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xiong</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhuo</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Modeling and Stability Issues of Voltage-Source Converter Dominated Power Systems: A Review</article-title>. <source>CSEE J.&#x20;Power Energ. Syst.</source> <pub-id pub-id-type="doi">10.17775/CSEEJPES.2020.03590</pub-id> </citation>
</ref>
<ref id="B30">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yan</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Han</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Forecasting the High Penetration of Wind Power on Multiple Scales Using Multi-To-Multi Mapping</article-title>. <source>IEEE Trans. Power Syst.</source> <volume>33</volume>, <fpage>3276</fpage>&#x2013;<lpage>3284</lpage>. <pub-id pub-id-type="doi">10.1109/TPWRS.2017.2787667</pub-id> </citation>
</ref>
<ref id="B31">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Zhuansun</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Design of Intrusion Detection System for Internet of Things Based on Improved Bp Neural Network</article-title>. <source>IEEE Access</source> <volume>7</volume>, <fpage>106043</fpage>&#x2013;<lpage>106052</lpage>. <pub-id pub-id-type="doi">10.1109/access.2019.2929919</pub-id> </citation>
</ref>
<ref id="B32">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Yuqin</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Wenxia</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2014</year>). &#x201c;<article-title>Predicting Available Transfer Capability for Power System with Large Wind Farms Based on Multivariable Linear Regression Models</article-title>,&#x201d; in <conf-name>Proceeding of the 2014 IEEE PES Asia-Pacific Power and Energy Engineering Conference (APPEEC)</conf-name>, <conf-loc>Hong Kong, China</conf-loc>, <conf-date>7-10 Dec. 2014</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>1</fpage>&#x2013;<lpage>6</lpage>. <pub-id pub-id-type="doi">10.1109/APPEEC.2014.7066008</pub-id> </citation>
</ref>
<ref id="B33">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Yan</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Han</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Long</surname>
<given-names>Q.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Improved Deep Mixture Density Network for Regional Wind Power Probabilistic Forecasting</article-title>. <source>IEEE Trans. Power Syst.</source> <volume>35</volume>, <fpage>2549</fpage>&#x2013;<lpage>2560</lpage>. <pub-id pub-id-type="doi">10.1109/tpwrs.2020.2971607</pub-id> </citation>
</ref>
<ref id="B34">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Guo</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Wind Power Prediction Based on Pso-Svr and Grey Combination Model</article-title>. <source>IEEE Access</source> <volume>7</volume>, <fpage>136254</fpage>&#x2013;<lpage>136267</lpage>. <pub-id pub-id-type="doi">10.1109/access.2019.2942012</pub-id> </citation>
</ref>
<ref id="B35">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Zhao</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2016</year>). &#x201c;<article-title>The Study of Wind Power Predict Model Based on Wavelet Transform and Elman Neural Network</article-title>,&#x201d; in <conf-name>Proceeding of the 2016 Chinese Control and Decision Conference (CCDC)</conf-name>, <conf-loc>Yinchuan, China</conf-loc>, <conf-date>28-30 May 2016</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>6026</fpage>&#x2013;<lpage>6030</lpage>.<pub-id pub-id-type="doi">10.1109/CCDC.2016.7532077</pub-id> </citation>
</ref>
</ref-list>
</back>
</article>