<?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">1159946</article-id>
<article-id pub-id-type="doi">10.3389/fenrg.2023.1159946</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>An MPC based active and reactive power coordinated control strategy of PMSG wind turbines to enhance the support capability</article-title>
<alt-title alt-title-type="left-running-head">Ma et al.</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/fenrg.2023.1159946">10.3389/fenrg.2023.1159946</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Ma</surname>
<given-names>Xiyuan</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Yu</surname>
<given-names>Jingyi</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Yang</surname>
<given-names>Ping</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Wang</surname>
<given-names>Pengyu</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Zhang</surname>
<given-names>Peng</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2198692/overview"/>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>Digital Grid Research Institute of China Southern Power Grid</institution>, <addr-line>Guangzhou</addr-line>, <country>China</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>Guangdong Key Laboratory of Green Energy Technology</institution>, <institution>South China University of Technology</institution>, <addr-line>Guangzhou</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/993935/overview">Taeseong Kim</ext-link>, Technical University of Denmark, Denmark</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/1011374/overview">Alan Wai Hou Lio</ext-link>, Technical University of Denmark, Denmark</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1369477/overview">Liansheng Huang</ext-link>, Chinese Academy of Sciences (CAS), China</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Ping Yang, <email>eppyang@scut.edu.cn</email>
</corresp>
</author-notes>
<pub-date pub-type="epub">
<day>09</day>
<month>05</month>
<year>2023</year>
</pub-date>
<pub-date pub-type="collection">
<year>2023</year>
</pub-date>
<volume>11</volume>
<elocation-id>1159946</elocation-id>
<history>
<date date-type="received">
<day>06</day>
<month>02</month>
<year>2023</year>
</date>
<date date-type="accepted">
<day>17</day>
<month>04</month>
<year>2023</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2023 Ma, Yu, Yang, Wang and Zhang.</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Ma, Yu, Yang, Wang and Zhang</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 terms.</p>
</license>
</permissions>
<abstract>
<p>As wind turbines are constantly replacing traditional units, it is becoming a consensus that wind turbines should participate in the grid support that was only responsible by traditional units in the past. In order to enhance the grid support capabilities (including active power support and reactive power support) of permanent magnet synchronous generator (PMSG) based wind turbines, this paper constructs an active and reactive power coordinated control strategy. Compared with the current active and reactive power coordinated control strategy of PMSG wind turbines, the method of the proposed one innovatively considers the climbing coordinated restriction between active and reactive power, flexible prioritization arrangement between active and reactive power, the accurate amplitude and climbing constraints of grid-side converters&#x2019; output voltage, and the model predictive control (MPC) technique. The simulation results verify that the proposed power control strategy can make PMSG wind turbines achieve excellent power output performance and thus better meet the requirements of power grid support.</p>
</abstract>
<kwd-group>
<kwd>grid support</kwd>
<kwd>permanent magnet synchronous generator (PMSG) wind turbine</kwd>
<kwd>active and reactive power coordinated control strategy</kwd>
<kwd>model predictive control (MPC)</kwd>
<kwd>amplitude and climbing</kwd>
</kwd-group>
<custom-meta-wrap>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Wind Energy</meta-value>
</custom-meta>
</custom-meta-wrap>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>Traditionally, the frequency and voltage of power systems are mainly controlled by thermal units and hydropower units. Wind and photovoltaic units account for a small generating capacity, and their power decouples with the grid frequency and voltage, standing at maximum power points and fixed power factors (<xref ref-type="bibr" rid="B4">Gaied et al., 2022</xref>; <xref ref-type="bibr" rid="B36">Zeng et al., 2022</xref>). However, with the implementation of the &#x201c;double carbon&#x201d; strategy in recent years, the installed capacity of wind and photovoltaic energy in China is increasing significantly, which reached approximate 706&#xa0;GW by the end of September 2022 (<xref ref-type="bibr" rid="B19">National Energy Administration, 2023</xref>). The traditional units responsible for frequency and voltage control are gradually being replaced by the wind and photovoltaic units, which is gradually weakening the frequency and voltage control capability of power systems. Hence, it is a growing consensus that wind and photovoltaic units should provide frequency and voltage support services to power systems (i.e., grid support), so as to maintain the security operation of power systems (<xref ref-type="bibr" rid="B7">Hansen et al., 2006</xref>; <xref ref-type="bibr" rid="B3">Feltes et al., 2009</xref>).</p>
<p>Permanent magnet synchronous generator (PMSG) wind turbine, one of the mainstream wind turbines, is receiving more and more popularity nowadays (<xref ref-type="bibr" rid="B5">Guo et al., 2021</xref>). The strengths of a PMSG wind turbine include high energy efficiency and low maintenance costs (<xref ref-type="bibr" rid="B11">Li et al., 2012</xref>; <xref ref-type="bibr" rid="B18">Musarrat et al., 2019</xref>). In addition, a PMSG wind turbine contains a back-to-back full-scale converter for connecting to power systems so that power system faults and abnormal conditions will not directly affect the power output of the generator. This means that it holds inherent advantages in fault ride through and grid support (<xref ref-type="bibr" rid="B27">Tan et al., 2017</xref>; <xref ref-type="bibr" rid="B26">Sheng et al., 2021</xref>).</p>
<p>To provide grid support services, it is necessary for a PMSG wind turbine to adjust its active and reactive power to respond to the changes of grid frequency and voltage. Topics about power control strategies of a PMSG wind turbine/wind farm to provide grid support could be found in a great deal of literature (<xref ref-type="bibr" rid="B31">Wu et al., 2017</xref>; <xref ref-type="bibr" rid="B22">Peng et al., 2021</xref>; <xref ref-type="bibr" rid="B38">Zhong et al., 2021</xref>; <xref ref-type="bibr" rid="B10">Li et al., 2022</xref>; <xref ref-type="bibr" rid="B21">Okedu, 2022</xref>). For instance, a control strategy is proposed in literature (<xref ref-type="bibr" rid="B31">Wu et al., 2017</xref>) for a PMSG wind turbine coordinating with a battery system to provide frequency support, which is realized by instantly raising its active power to a predefined level once grid frequency disturbance occurs. In (<xref ref-type="bibr" rid="B22">Peng et al., 2021</xref>), the authors design a reactive voltage support method for a wind farm with static synchronous compensators considering remaining capacities and voltage unbalanced factors for different PMSG wind turbines. Yet, the power control strategies in literature (<xref ref-type="bibr" rid="B31">Wu et al., 2017</xref>; <xref ref-type="bibr" rid="B22">Peng et al., 2021</xref>; <xref ref-type="bibr" rid="B38">Zhong et al., 2021</xref>; <xref ref-type="bibr" rid="B10">Li et al., 2022</xref>; <xref ref-type="bibr" rid="B21">Okedu, 2022</xref>) do not fall under the category of coordinated control between active and reactive power.</p>
<p>Unlike loose regulatory codes for daily power generation, in the periods of providing grid support, the active and reactive power of a PMSG wind turbine is required to meet exact amplitude and response rate requirements, which are calculated based on the deviation or slope of frequency and voltage (<xref ref-type="bibr" rid="B17">Mohseni and Islam, 2012</xref>; <xref ref-type="bibr" rid="B12">Liu et al., 2015</xref>; <xref ref-type="bibr" rid="B35">You et al., 2015</xref>). In this context, active and reactive power coordinated control which involves active and reactive power coordinated restriction and priority decisions becomes an unavoidable and meaningful problem. On the one hand, active and reactive power coordinated restriction can improve the power control performance of a PMSG wind turbine in order to better provide grid support. On the other hand, when the apparent power of a PMSG wind turbine is greater than its rated apparent power, the priority of active and reactive power must be judged and then reduce the party with lower priority in order to ensure that the party with higher priority meets the power grid support requirements.</p>
<p>As shown in <xref ref-type="fig" rid="F1">Figure 1</xref>, the shaded part represents the amplitude range of active and reactive power that PMSG wind turbines can output, which picture forms a semicircle or rectangle when active and reactive power is restricted coordinately or separately. To obey the given apparent power amplitude constraint, the semicircle&#x2019;s radius is equal to maximum apparent power S, and the rectangle is contained in a semicircle with a radius of maximum apparent power S. Obviously, under the given apparent power amplitude constraint, active and reactive power amplitude coordinated restriction enables PMSG wind turbines to output a larger range of active and reactive power amplitude. By the same token, under the given apparent power climbing constraint, active and reactive power climbing coordinated restriction allows PMSG wind turbines to perform a larger range of active and reactive power climbing. Therefore, active and reactive power coordinated restriction is contributing to improving the PMSG wind turbines&#x2019; power control performance.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Amplitude range of active and reactive power that PMSG wind turbines can output. <bold>(A)</bold> coordinated restriction. <bold>(B)</bold> separated restriction.</p>
</caption>
<graphic xlink:href="fenrg-11-1159946-g001.tif"/>
</fig>
<p>For this reason, some literature pays attention to designing the coordinated control strategies of active and reactive power for PMSG wind turbines providing grid support (<xref ref-type="bibr" rid="B20">Nguyen et al., 2013</xref>; <xref ref-type="bibr" rid="B16">Moghadasi and Sarwat, 2015</xref>; <xref ref-type="bibr" rid="B33">Yan et al., 2016</xref>; <xref ref-type="bibr" rid="B37">Zhang et al., 2016</xref>; <xref ref-type="bibr" rid="B28">Tripathi et al., 2019</xref>). Ref (<xref ref-type="bibr" rid="B2">Dong et al., 2012</xref>). presents a coordinated control strategy to enhance the low voltage ride through and grid support capability of PMSG wind turbines. In (<xref ref-type="bibr" rid="B9">Khazaei et al., 2020</xref>), a consensus-based control strategy is proposed to regulate the output of PMSG wind turbines and distributed batteries in a wind farm to deliver active and reactive power to the load. These strategies only focus on amplitude coordinated restriction of active and reactive power, which will become more perfect if the climbing coordinated restriction of active and reactive power can be taken into account at the same time.</p>
<p>In summary, most previous power control strategies for PMSG wind turbines providing grid support either do not explore the coordinated control between active and reactive power, or only focus on amplitude coordinated restriction and ignore the climbing coordinated restriction between active and reactive power. In addition, the priority decisions of active and reactive power in previous power coordinated control strategies are not flexible enough to apply to multiple grid support scenarios. Model predictive control (MPC) (<xref ref-type="bibr" rid="B24">Rodriguez et al., 2009</xref>; <xref ref-type="bibr" rid="B14">Mayne, 2014</xref>), which can handle complex constraints and achieve multiple optimization objectives, is suitable to structure flexible power coordinated control strategies. MPC is numerous applicated in industrial process control (<xref ref-type="bibr" rid="B23">Qin and Badgwell, 2003</xref>; <xref ref-type="bibr" rid="B30">Venkat et al., 2008</xref>; <xref ref-type="bibr" rid="B29">Vazquez et al., 2014</xref>) and power control of PMSG wind turbines (<xref ref-type="bibr" rid="B13">Maaoui-Ben Hassine et al., 2016</xref>; <xref ref-type="bibr" rid="B25">Shehata, 2017</xref>; <xref ref-type="bibr" rid="B15">Mishra and Saha, 2020</xref>), while has not been found to be applicated in PMSG wind turbines&#x2019; active and reactive power coordinated control. Finally, the current MPC models on the PMSG wind turbines lack the accurate amplitude and climbing constraints of grid-side converters&#x2019; output voltage.</p>
<p>Based on the mentioned issues, this paper proposes an MPC based active and reactive power coordinated control strategy of PMSG wind turbines to enhance the grid support capability. The contributions of this article are as follows.<list list-type="simple">
<list-item>
<p>(1) Take the lead in adopting MPC to build an active and reactive power coordinated control strategy of PMSG wind turbines that can be flexibly applicated in different grid support scenarios due to the MPC can flexibly set the priority of active and reactive power.</p>
</list-item>
<list-item>
<p>(2) Not only the existing amplitude coordinated restriction between active and reactive power but also the innovative climbing coordinated restriction between active and reactive power is considered in the proposed control strategy, which enables PMSG wind turbines to perform a wider range of active and reactive power amplitude and climbing. So it enhances the power control performance and the grid support capability of PMSG wind turbines.</p>
</list-item>
<list-item>
<p>(3) The amplitude and climbing constraint model of grid-side converter voltage is structured in the proposed MPC based control strategy in order to protect the grid-side converters and dignify the output voltage waveform.</p>
</list-item>
</list>
</p>
<p>The rest of this paper is organized as follows. <xref ref-type="sec" rid="s2">Section 2</xref> describes the overview of PMSG wind turbines. <xref ref-type="sec" rid="s3">Section 3</xref> displays the mathematical model of PMSG wind turbines. The MPC based active and reactive power coordinated control strategy is introduced in <xref ref-type="sec" rid="s4">Section 4</xref> and simulated in <xref ref-type="sec" rid="s5">Section 5</xref>. Finally, <xref ref-type="sec" rid="s6">Section 6</xref> summarizes this paper.</p>
</sec>
<sec id="s2">
<title>2 The system description</title>
<p>The composition of the PMSG wind turbine studied is shown in <xref ref-type="fig" rid="F2">Figure 2</xref>, which mainly consists of a wind turbine, a PMSG, a back-to-back converter, and multiple controllers. In this paper, the generator-side converter is employed to maintain capacitor voltage and the grid-side converter controls active power to realize maximum power point tracking and provide grid frequency support. Meanwhile, the grid-side converter is also used to control the reactive power exchange to the power grid, so as to provide grid voltage support. Therefore, the key to providing frequency and voltage support for the power grid is to control the active and reactive power of the grid-side converter.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>The composition of the PMSG wind turbine studied.</p>
</caption>
<graphic xlink:href="fenrg-11-1159946-g002.tif"/>
</fig>
<p>In order to obtain the wider range of active and reactive power amplitude and climbing under the given apparent power amplitude and climbing constraints, in this paper, both the amplitude coordinated restriction and climbing coordinated restriction of the grid-side converter&#x2019;s active and reactive power are considered. In view of the obvious advantages of MPC in dealing with multi-input and multi-output control problems with complex constraints and specific objectives, this paper applies MPC to struct the active and reactive power coordinated control strategy of the grid-side converter.</p>
<p>The MPC based active and reactive power coordinated control system of the grid-side converter is presented in <xref ref-type="fig" rid="F2">Figure 2</xref>. The MPC controller uses the predictive model of the controlled system to predict the behavior of the controlled system under different control actions and selects the optimal control action which minimizes the objective function. According to the situations of the power grid and the PMSG wind turbine, the objective function is automatically adjusted so that the proposed control strategy can adapt to different grid support scenarios.</p>
<p>Firstly, the mathematical model of the grid-side converter is established. Secondly, an inverse system is designed in order to change the grid-side converter into a pseudolinear composite system. Thirdly, the prediction model and constraint conditions of the MPC controller are built according to the state space equation and operation boundary of the pseudolinear composite system, and the objective function of the MPC controller is built according to the reference value and priority of active and reactive power. Finally, the optimal control action is obtained by solving the optimization problem.</p>
</sec>
<sec id="s3">
<title>3 The system model</title>
<sec id="s3-1">
<title>3.1 Mathematical model of grid side converter</title>
<p>By analyzing the three-phase circuit between the grid-side converter and the power system as shown in <xref ref-type="fig" rid="F2">Figure 2</xref>, the three-phase mathematical model of the grid-side converter system can be written as follows:<disp-formula id="e1">
<mml:math id="m1">
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>R</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>where <inline-formula id="inf1">
<mml:math id="m2">
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf2">
<mml:math id="m3">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represent the three-phase voltage of the grid-side converter and the power system respectively. <inline-formula id="inf3">
<mml:math id="m4">
<mml:mrow>
<mml:mi>R</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf4">
<mml:math id="m5">
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> are the resistor and inductor of the filter. <inline-formula id="inf5">
<mml:math id="m6">
<mml:mrow>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the three-phase grid current flowing into the power grid from the grid-side converter.</p>
<p>The three-phase mathematical model (1) of the grid-side converter can be transformed to a mathematical model in dq synchronously rotating reference frame, which can be expressed as follows.<disp-formula id="e2">
<mml:math id="m7">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>R</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>L</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>R</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>L</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>
<disp-formula id="e3">
<mml:math id="m8">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>where <inline-formula id="inf6">
<mml:math id="m9">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf7">
<mml:math id="m10">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf8">
<mml:math id="m11">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf9">
<mml:math id="m12">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf10">
<mml:math id="m13">
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf11">
<mml:math id="m14">
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the grid current, converter voltage, grid voltage in dq-axis. <inline-formula id="inf12">
<mml:math id="m15">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf13">
<mml:math id="m16">
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> are the amplitude and angular frequency of the grid voltage, which are uncertain and varying parameters. The active and reactive power flowing into the power grid can be given by<disp-formula id="e4">
<mml:math id="m17">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mi>e</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mi>e</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>
</p>
</sec>
<sec id="s3-2">
<title>3.2 Grid Side Converter Model Linearization</title>
<p>It can be seen that the nonlinearities exist in the grid-side converter&#x2019;s mathematical model (2) since it contains the nonlinear terms <inline-formula id="inf14">
<mml:math id="m18">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf15">
<mml:math id="m19">
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. In this paper, an inverse system is designed and connected in series to the control loop to cope with the nonlinearity existing in the grid-side converter&#x2019;s mathematical model. The inverse system uses real time state feedback to compensate the control variables <inline-formula id="inf16">
<mml:math id="m20">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf17">
<mml:math id="m21">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, which the compensation law can be expressed as follows.</p>
<p>It is worth mentioning that, due to the need to solve the optimization model, the sampling interval of an MPC controller cannot be set as a small value, while the sampling interval of an inverse system can be set to very small, so the inverse system can sample the state variables (<italic>i</italic>
<sub>
<italic>d</italic>
</sub> and <italic>i</italic>
<sub>
<italic>q</italic>
</sub>), amplitude <inline-formula id="inf18">
<mml:math id="m22">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and angular frequency <inline-formula id="inf19">
<mml:math id="m23">
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> in real time to compensate the control variables <inline-formula id="inf20">
<mml:math id="m24">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf21">
<mml:math id="m25">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. The real time system states (<italic>i</italic>
<sub>
<italic>d</italic>
</sub> and <italic>i</italic>
<sub>
<italic>q</italic>
</sub>) can be obtained by measuring the real time three-phase current and making a Park&#x2019;s Transformation.<disp-formula id="e5">
<mml:math id="m26">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="normal">L</mml:mi>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>R</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>L</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>L</mml:mi>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>R</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>L</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>
</p>
<p>As shown in <xref ref-type="fig" rid="F2">Figure 2</xref>, <inline-formula id="inf22">
<mml:math id="m27">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf23">
<mml:math id="m28">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the inputs of the inverse system. <inline-formula id="inf24">
<mml:math id="m29">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf25">
<mml:math id="m30">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the outputs of the inverse system and as converter control voltages to input in the grid-side converter system. The mathematical model of the composite system composed of the inverse system and the grid-side converter system can be obtained by substituting (5) into (2)&#x2013;(4).<disp-formula id="e6">
<mml:math id="m31">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>
<disp-formula id="e7">
<mml:math id="m32">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mi>e</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mi>e</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>
</p>
<p>Therefore, a grid-side converter composite system is structed which inputs are <inline-formula id="inf26">
<mml:math id="m33">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf27">
<mml:math id="m34">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and outputs are the active power <inline-formula id="inf28">
<mml:math id="m35">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and reactive power <inline-formula id="inf29">
<mml:math id="m36">
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>The state variables and output variables of the composite system are the same as those of the grid-side converter system. Therefore, to control the composite system is essential to control the converter system grid-side converter system.</p>
<p>The state representation Eq. <xref ref-type="disp-formula" rid="e2">2</xref> of the grid-side converter system contains the nonlinear terms <inline-formula id="inf30">
<mml:math id="m37">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf31">
<mml:math id="m38">
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. If the amplitude <inline-formula id="inf32">
<mml:math id="m39">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and angular frequency <inline-formula id="inf33">
<mml:math id="m40">
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> of the grid voltage change, the MPC controller may not achieve the expected effect of predicting and controlling the state variables. In contrast, the state representation Eq. <xref ref-type="disp-formula" rid="e6">6</xref> of the composite system is linear and definite, so that the state variables can be accurately predicted and controlled by the MPC controller whether the amplitude and angular frequency of the grid voltage change or not. Therefore, compared with the direct control of the grid-side converter system, the control of the composite system can obtain a more reliable control effect.</p>
<p>The grid-side converter composite system model (6)&#x2013;(7) can be written as a normal linear state space model.<disp-formula id="e8">
<mml:math id="m41">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#x2022;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>A</mml:mi>
<mml:mi>x</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>B</mml:mi>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>C</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>[</mml:mo>
<mml:mi mathvariant="normal">i</mml:mi>
</mml:mrow>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:msup>
<mml:mo>]</mml:mo>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>Q</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mn>0,0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0,0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>B</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mn>1,0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0,1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>C</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn>1.5</mml:mn>
<mml:mo>&#x2a;</mml:mo>
<mml:mi>e</mml:mi>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mn>1.5</mml:mn>
<mml:mo>&#x2a;</mml:mo>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>
</p>
<p>If the amplitude of the grid voltage is stable, the system model can accurately describe the output characteristic of the system. So that the MPC controller can accurately predict and control the outputs of the system. The system outputs will gradually reach the reference values under the control of the MPC controller.</p>
<p>In contrast, if the amplitude of the grid voltage changes after being measured, this means that the output characteristic of the system has changed and does not match the currently established system model during this sampling interval. The MPC controller may not achieve the expected effect of predicting and controlling the system outputs during this sampling interval. However, the system model will be corrected because the MPC controller will re-measure the grid voltage amplitude at the beginning of the next sampling interval. Based on the correct system model, the system outputs will gradually reach the reference values under the control of the MPC controller. Therefore, the change of the grid voltage amplitude will not cause the system to lose stability, but make the outputs of the system fail to reach the expected value within the current sampling interval.</p>
<p>The MPC algorithm is not executed continuously in the controller, but at regular interval, which is called sampling interval or control period and is denoted by <italic>T</italic>. Discretization (8) can result in<disp-formula id="e9">
<mml:math id="m42">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>[</mml:mo>
<mml:mi mathvariant="normal">i</mml:mi>
</mml:mrow>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msup>
<mml:mo>]</mml:mo>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi>Q</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mo>&#x222b;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mi>T</mml:mi>
</mml:msubsup>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:mi>B</mml:mi>
<mml:mo>,</mml:mo> <mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>C</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>where <inline-formula id="inf34">
<mml:math id="m43">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf35">
<mml:math id="m44">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf36">
<mml:math id="m45">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> are the states, inputs and outputs of the grid-side converter composite system in discrete time. Next, the MPC controller is designed to control the grid-side converter composite system, based on the discrete state-space model (9).</p>
</sec>
</sec>
<sec id="s4">
<title>4 The MPC based control strategy</title>
<p>The prediction horizon refers to the time range from the current time point to a certain time point in the future. The MPC algorithm needs to predict the state variables of the composite system in this time range. The time length of the prediction horizon is an integral multiple of the MPC sampling interval/control interval, so it can be expressed as <italic>N</italic>
<sub>
<italic>P</italic>
</sub>
<italic>&#x2a;T</italic>. Similarly, The control horizon refers to the time range from the current time point to a certain time point in the future. The MPC algorithm needs to compute the optimal control variables of the composite system in this time range. The time length of the control horizon is an integral multiple of the MPC sampling interval/control interval, so it can be expressed as <italic>N</italic>
<sub>
<italic>C</italic>
</sub>
<italic>&#x2a;T</italic>.</p>
<p>In this paper, <italic>N</italic>
<sub>
<italic>P</italic>
</sub> <italic>&#x3d;</italic> 3 and <italic>N</italic>
<sub>
<italic>C</italic>
</sub> &#x3d; 2 when we introduce the formulas of the optimization problem. This means that the MPC algorithm needs to predict the state variables of the system from the time <italic>t &#x3d; (k&#x2b;1)&#x2a;T</italic> to the time <italic>t &#x3d; (k&#x2b; 3)&#x2a;T</italic>, meanwhile, the MPC algorithm needs to compute the optimal control variables of the system in the period from the time <italic>t &#x3d; kT</italic> to the future time <italic>t &#x3d; (k&#x2b;2)&#x2a;T</italic>. In fact, they can take other values. With the increase in the <italic>N</italic>
<sub>
<italic>P</italic>
</sub> and <italic>N</italic>
<sub>
<italic>C</italic>
</sub>, the computing time and controller performance of the MPC algorithm will increase. When setting the values of <italic>N</italic>
<sub>
<italic>P</italic>
</sub> and <italic>N</italic>
<sub>
<italic>C</italic>
</sub>, it is necessary to ensure that the computing time of the MPC algorithm cannot exceed the MPC sampling interval.</p>
<p>In each sampling interval, the MPC controller solves the optimization problem <xref ref-type="disp-formula" rid="e8">(8</xref>&#x2013;<xref ref-type="disp-formula" rid="e23">23)</xref> and obtains the optimal control variables <inline-formula id="inf37">
<mml:math id="m46">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi mathvariant="normal">d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="normal">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi mathvariant="normal">q</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="normal">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="normal">k</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="normal">k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="normal">N</mml:mi>
</mml:mrow>
<mml:mi>C</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> of future <italic>N</italic>
<sub>
<italic>C</italic>
</sub> sampling interval, and then only the first set of optimal control variable <inline-formula id="inf38">
<mml:math id="m47">
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi mathvariant="normal">d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="normal">k</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi mathvariant="normal">q</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="normal">k</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula> will be provided for the composite system.</p>
<sec id="s4-1">
<title>4.1 Constraint conditions of power amplitude</title>
<p>Generalized power amplitude constraint conditions include the power amplitude constraints and current amplitude constraints. Based on the discrete state-space model (9), the grid current amplitudes in the future triple control periods can be predicted as follows.<disp-formula id="e10">
<mml:math id="m48">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mn>3</mml:mn>
</mml:msup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(10)</label>
</disp-formula>
</p>
<p>The prediction model (10) of grid current amplitudes can be rewritten in matrix form.<disp-formula id="e11">
<mml:math id="m49">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:msup>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>;</mml:mo>
<mml:msup>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mn>3</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mn>0</mml:mn>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mn>0</mml:mn>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mn>0</mml:mn>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(11)</label>
</disp-formula>
</p>
<p>The future grid current amplitudes should not be greater than of the rated current amplitude of the grid-side converter. Then, we have.<disp-formula id="e12">
<mml:math id="m50">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mi>i</mml:mi>
<mml:mi>N</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi mathvariant="normal">j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:math>
<label>(12)</label>
</disp-formula>
</p>
<p>Compared to separately restricting each active current <inline-formula id="inf39">
<mml:math id="m51">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and reactive current <inline-formula id="inf40">
<mml:math id="m52">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> amplitude such as <inline-formula id="inf41">
<mml:math id="m53">
<mml:mrow>
<mml:msubsup>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>min</mml:mi>
</mml:msubsup>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>max</mml:mi>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
<mml:mi>min</mml:mi>
</mml:msubsup>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, coordinately restricting active current <inline-formula id="inf42">
<mml:math id="m54">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and reactive current <inline-formula id="inf43">
<mml:math id="m55">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> amplitudes as (12) makes the amplitude range of active current and reactive current larger.</p>
<p>Similarly, based on discrete state-space model (9), the power amplitudes in the future triple control periods can be predicted.<disp-formula id="e13">
<mml:math id="m56">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msup>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msup>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mn>3</mml:mn>
</mml:msup>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msup>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(13)</label>
</disp-formula>
</p>
<p>The prediction model (12) of the power amplitudes can be rewritten in matrix form.<disp-formula id="e14">
<mml:math id="m57">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>Y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>Y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msup>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msup>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mn>3</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
<mml:msub>
<mml:mtext>&#x200a;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mn>0</mml:mn>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mn>0</mml:mn>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msubsup>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(14)</label>
</disp-formula>
</p>
<p>The future apparent power amplitudes of the grid-side converter should not be greater than its rated apparent power amplitude. Then, we have.<disp-formula id="e15">
<mml:math id="m58">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>P</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>Q</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mi>S</mml:mi>
<mml:mi>N</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:math>
<label>(15)</label>
</disp-formula>
</p>
<p>Compared to separately restricting each active power <inline-formula id="inf44">
<mml:math id="m59">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and reactive power <inline-formula id="inf45">
<mml:math id="m60">
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> amplitude such as <inline-formula id="inf46">
<mml:math id="m61">
<mml:mrow>
<mml:msup>
<mml:mi>P</mml:mi>
<mml:mi>min</mml:mi>
</mml:msup>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:msup>
<mml:mi>P</mml:mi>
<mml:mi>max</mml:mi>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi>Q</mml:mi>
<mml:mi>min</mml:mi>
</mml:msup>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>Q</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:msup>
<mml:mi>Q</mml:mi>
<mml:mi>max</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, coordinately restricting active power <inline-formula id="inf47">
<mml:math id="m62">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and reactive power <inline-formula id="inf48">
<mml:math id="m63">
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> amplitudes as (15) makes the amplitude range of active power and reactive power larger.</p>
</sec>
<sec id="s4-2">
<title>4.2 Constraint conditions of power climbing and voltage</title>
<p>Based on the state space model (6)&#x2013;(9), we can see that the climbing of active power and reactive power depends on the control variables <inline-formula id="inf49">
<mml:math id="m64">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf50">
<mml:math id="m65">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. To restrict the maximum climbing of apparent power, the coordinately restricting climbing of active and reactive power can be set as<disp-formula id="e16">
<mml:math id="m66">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mi>v</mml:mi>
<mml:mi>max</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi mathvariant="normal">j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>,</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(16)</label>
</disp-formula>
</p>
<p>Compared to separately restricting each control input such as <inline-formula id="inf51">
<mml:math id="m67">
<mml:mrow>
<mml:msubsup>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>min</mml:mi>
</mml:msubsup>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>max</mml:mi>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
<mml:mi>min</mml:mi>
</mml:msubsup>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, coordinately restricting <inline-formula id="inf52">
<mml:math id="m68">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf53">
<mml:math id="m69">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> as (16) makes the climbing range of active and reactive power larger.</p>
<p>In order to protect the grid-side converter and dignify the output voltage waveform, the amplitude coordinated restriction and climbing coordinated restriction between grid-side converter voltages <inline-formula id="inf54">
<mml:math id="m70">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf55">
<mml:math id="m71">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are structed in this sub-section. The variation characteristic of the converter voltage <inline-formula id="inf56">
<mml:math id="m72">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf57">
<mml:math id="m73">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> can be analyzed as follow and is shown as <xref ref-type="fig" rid="F3">Figure 3</xref>.<list list-type="simple">
<list-item>
<p>(1) The variation characteristic of the control variables <inline-formula id="inf58">
<mml:math id="m74">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf59">
<mml:math id="m75">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
</list>
</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>The variation characteristic of the control variables, current and converter voltage.</p>
</caption>
<graphic xlink:href="fenrg-11-1159946-g003.tif"/>
</fig>
<p>As mentioned above, The MPC algorithm is not executed continuously, but at regular control period <italic>T</italic>. At the starting point of each control period <italic>T</italic>, the MPC controller solves the MPC algorithm and outputs a new round of control variables <inline-formula id="inf60">
<mml:math id="m76">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf61">
<mml:math id="m77">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. Then, the outputs of the MPC controller will remain unchanged until the next control period.</p>
<p>Therefore, during a control period <italic>T</italic>, the control variables <inline-formula id="inf62">
<mml:math id="m78">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf63">
<mml:math id="m79">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> remain unchanged. At the moments of two control period junctures, the MPC controller will give a new round of control variables <inline-formula id="inf64">
<mml:math id="m80">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf65">
<mml:math id="m81">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, so that the control variables <inline-formula id="inf66">
<mml:math id="m82">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf67">
<mml:math id="m83">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> will suddenly change at these moments. The variation characteristic of the control variables <inline-formula id="inf68">
<mml:math id="m84">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf69">
<mml:math id="m85">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> can be seen in <xref ref-type="fig" rid="F3">Figure 3</xref>.<list list-type="simple">
<list-item>
<p>(2) The variation characteristic of the current <inline-formula id="inf70">
<mml:math id="m86">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf71">
<mml:math id="m87">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
</list>
</p>
<p>According to mathematical model (6), it can be seen that the change rates of the current <inline-formula id="inf72">
<mml:math id="m88">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf73">
<mml:math id="m89">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the control variables <inline-formula id="inf74">
<mml:math id="m90">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf75">
<mml:math id="m91">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, respectively. During a control period <italic>T</italic>, the control variables <inline-formula id="inf76">
<mml:math id="m92">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf77">
<mml:math id="m93">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> remain unchanged. Therefore, the current <inline-formula id="inf78">
<mml:math id="m94">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf79">
<mml:math id="m95">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> will monotonically increase or decrease. The variation characteristic of the current <inline-formula id="inf80">
<mml:math id="m96">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf81">
<mml:math id="m97">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> can be seen in <xref ref-type="fig" rid="F3">Figure 3</xref>. The variation characteristics of the power P and Q are consistent with those of the current <inline-formula id="inf82">
<mml:math id="m98">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf83">
<mml:math id="m99">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.<list list-type="simple">
<list-item>
<p>(3) The variation characteristic of the converter voltage <inline-formula id="inf84">
<mml:math id="m100">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf85">
<mml:math id="m101">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</list-item>
</list>
</p>
<p>Based on inverse system model (5), the derivative of the converter voltage <inline-formula id="inf86">
<mml:math id="m102">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf87">
<mml:math id="m103">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> can be calculated as <inline-formula id="inf88">
<mml:math id="m104">
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>/</mml:mo>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>R</mml:mi>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>L</mml:mi>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf89">
<mml:math id="m105">
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mo>/</mml:mo>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>R</mml:mi>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>L</mml:mi>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. It can be seen that the derivatives of the converter voltage <inline-formula id="inf90">
<mml:math id="m106">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf91">
<mml:math id="m107">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are constant, so they vary monotonically during a control period <italic>T</italic>.</p>
<p>At the moments of two control period junctures (such as t &#x3d; <italic>kT</italic>&#x2026;t&#x3d;<italic>(k&#x2b;3)T</italic>), the MPC controller will give a new round of control variables <inline-formula id="inf92">
<mml:math id="m108">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>; <inline-formula id="inf93">
<mml:math id="m109">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. According to mathematical model (5), the converter voltage <inline-formula id="inf94">
<mml:math id="m110">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf95">
<mml:math id="m111">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> will suddenly change at these moments due to the sudden change of the control variables <inline-formula id="inf96">
<mml:math id="m112">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf97">
<mml:math id="m113">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. The variation characteristic of the converter voltage <inline-formula id="inf98">
<mml:math id="m114">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf99">
<mml:math id="m115">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> can be seen in <xref ref-type="fig" rid="F3">Figure 3</xref>.</p>
<p>Based on the inverse system model (5), the future converter voltage <inline-formula id="inf100">
<mml:math id="m116">
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> in <xref ref-type="fig" rid="F3">Figure 3</xref> can be calculated as<disp-formula id="e17">
<mml:math id="m117">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mo>,</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>L</mml:mi>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>R</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mi>e</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(17)</label>
</disp-formula>
</p>
<p>The prediction model (17) of converter voltage can be rewritten in matrix form.<disp-formula id="e18">
<mml:math id="m118">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mi>U</mml:mi>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>V</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>J</mml:mi>
</mml:msub>
<mml:mi>W</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>J</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mi>U</mml:mi>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
<mml:mo>;</mml:mo>
<mml:mi>u</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
<mml:mo>;</mml:mo>
<mml:mi>u</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>W</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>J</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>J</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>g</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(18)</label>
</disp-formula>
</p>
<p>Based on the inverse system model (5), the future converter voltage <inline-formula id="inf101">
<mml:math id="m119">
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> in <xref ref-type="fig" rid="F3">Figure 3</xref> can be calculated as<disp-formula id="e19">
<mml:math id="m120">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mo>,</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>L</mml:mi>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>R</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo> <mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mi>e</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(19)</label>
</disp-formula>
</p>
<p>The prediction model (19) of converter voltage can be rewritten in matrix form.<disp-formula id="e20">
<mml:math id="m121">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mi>U</mml:mi>
<mml:mo>&#x2212;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>V</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>J</mml:mi>
</mml:msub>
<mml:mi>X</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>J</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mi>U</mml:mi>
<mml:mo>&#x2212;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
</mml:msup>
<mml:mo>;</mml:mo>
<mml:mi>u</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
</mml:msup>
<mml:mo>;</mml:mo>
<mml:mi>u</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>J</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>J</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>g</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(20)</label>
</disp-formula>
</p>
<p>The future voltage amplitudes of the grid-side converter should not be greater than its rated voltage amplitude. Then, we have.<disp-formula id="e21">
<mml:math id="m122">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mi>u</mml:mi>
<mml:mi>N</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>,</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mi>u</mml:mi>
<mml:mi>N</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(21)</label>
</disp-formula>
</p>
<p>As shown in <xref ref-type="fig" rid="F3">Figure 3</xref>, at the moments of two control period <italic>T</italic> junctures (such as <italic>t</italic> &#x3d; <italic>kT</italic>&#x2026;<italic>t</italic>&#x3d;<italic>(k&#x2b;3)T</italic>), the output converter voltage <inline-formula id="inf102">
<mml:math id="m123">
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> will suddenly change due to the suddenly change of control input <inline-formula id="inf103">
<mml:math id="m124">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. The climbing of the converter voltage depends on the change of the control input which is denoted by <inline-formula id="inf104">
<mml:math id="m125">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x394;</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. <inline-formula id="inf105">
<mml:math id="m126">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf106">
<mml:math id="m127">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are coordinated restricted in order to avoid excessive transient climbing of converter voltage.<disp-formula id="e22">
<mml:math id="m128">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x394;</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mo>&#x394;</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2264;</mml:mo>
<mml:mo>&#x394;</mml:mo>
<mml:msubsup>
<mml:mi>v</mml:mi>
<mml:mi>max</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi mathvariant="normal">j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>,</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(22)</label>
</disp-formula>
</p>
<p>The square of the current amplitude is <inline-formula id="inf107">
<mml:math id="m129">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> and the square of the converter voltage amplitude is <inline-formula id="inf108">
<mml:math id="m130">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. Based on <inline-formula id="inf109">
<mml:math id="m131">
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>/</mml:mo>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf110">
<mml:math id="m132">
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mo>/</mml:mo>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the second derivative of <inline-formula id="inf111">
<mml:math id="m133">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> can be calculated as <inline-formula id="inf112">
<mml:math id="m134">
<mml:mrow>
<mml:msup>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>/</mml:mo>
<mml:mi>d</mml:mi>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. Similarly, based on <inline-formula id="inf113">
<mml:math id="m135">
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>/</mml:mo>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>R</mml:mi>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>L</mml:mi>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf114">
<mml:math id="m136">
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mo>/</mml:mo>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>R</mml:mi>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>L</mml:mi>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the second derivative of <inline-formula id="inf115">
<mml:math id="m137">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> can be calculated as <inline-formula id="inf116">
<mml:math id="m138">
<mml:mrow>
<mml:msup>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>/</mml:mo>
<mml:mi>d</mml:mi>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>L</mml:mi>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>L</mml:mi>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>It can be seen that the second derivatives of both <inline-formula id="inf117">
<mml:math id="m139">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf118">
<mml:math id="m140">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> are greater than or equal to 0. This means that during a control period <italic>T</italic>, the curves of both <inline-formula id="inf119">
<mml:math id="m141">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf120">
<mml:math id="m142">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> are concave downward. The maximum values of <inline-formula id="inf121">
<mml:math id="m143">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf122">
<mml:math id="m144">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> during a control period <italic>T</italic> will appear at the beginning and end instants of the control period. The square of the apparent power amplitude <inline-formula id="inf123">
<mml:math id="m145">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> and the square of the current amplitude <inline-formula id="inf124">
<mml:math id="m146">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> have the same characteristics. Therefore, it is only necessary to restrict the amplitude square of converter voltage, current and power at the beginning and end instants of each control period T such as constraint conditions (12), (15), (21). Even without the above reasons, since the MPC controller is discrete, it can only carry out discrete constraints on voltage, current and power.</p>
</sec>
<sec id="s4-3">
<title>4.3 Objective function</title>
<p>The optimization objective is to minimize the deviations between the output values and reference values of the grid-side converter composite system&#x2019;s active and reactive power.<disp-formula id="e23">
<mml:math id="m147">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>min</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>J</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x394;</mml:mo>
<mml:msup>
<mml:mi>Y</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi>R</mml:mi>
<mml:mo>&#x394;</mml:mo>
<mml:mi>Y</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mi>Y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>Y</mml:mi>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>Y</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>Y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>Y</mml:mi>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:mi>y</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:mi>y</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>Q</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi>Q</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>Q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>R</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>g</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(23)</label>
</disp-formula>
</p>
<p>When the apparent power reference of the grid-side converter composite system lesser than its rated apparent power, the output values of active and reactive power can reach their reference values. If the apparent power reference is greater than rated apparent power, the priority of active and reactive power must be set and the party with lower priority cannot reach its reference.</p>
<p>This paper sets the priority of active and reactive power by setting the deviation coefficients <inline-formula id="inf125">
<mml:math id="m148">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf126">
<mml:math id="m149">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>Q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. When <inline-formula id="inf127">
<mml:math id="m150">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is greater than <inline-formula id="inf128">
<mml:math id="m151">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>Q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, it means that the active priority is higher. On the contrary, when <inline-formula id="inf129">
<mml:math id="m152">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is less than <inline-formula id="inf130">
<mml:math id="m153">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>Q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, reactive power priority is higher. The party with higher priority can achieve greater amplitude and climbing.</p>
<p>According to the National standard of China &#x201c;Technical Regulations for Wind Farm Access to Electric Power System, GB/T 19963.1-2021&#x201d;, when the grid voltage change is in the domain of <inline-formula id="inf131">
<mml:math id="m154">
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mo>&#x3c;</mml:mo>
<mml:mn>0.9</mml:mn>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> or <inline-formula id="inf132">
<mml:math id="m155">
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mo>&#x3e;</mml:mo>
<mml:mn>1.1</mml:mn>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the wind farm should provide reactive power support for the grid voltage recovery, and when the grid voltage change is in the domain of <inline-formula id="inf133">
<mml:math id="m156">
<mml:mrow>
<mml:mn>0.9</mml:mn>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
<mml:mo>&#x3c;</mml:mo>
<mml:mi>e</mml:mi>
<mml:mo>&#x3c;</mml:mo>
<mml:mn>1.1</mml:mn>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the wind farm should withdraw reactive power support.</p>
<p>Therefore, in the proposed control strategy, according to the situation of the power grid and the PMSG wind turbine, the deviation coefficients <inline-formula id="inf134">
<mml:math id="m157">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf135">
<mml:math id="m158">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>Q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. are automatically adjusted so that the proposed control strategy can adapt to different grid support scenarios. For example, when the grid voltage change is in the domain of <inline-formula id="inf136">
<mml:math id="m159">
<mml:mrow>
<mml:mn>0.9</mml:mn>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
<mml:mo>&#x3c;</mml:mo>
<mml:mi>e</mml:mi>
<mml:mo>&#x3c;</mml:mo>
<mml:mn>1.1</mml:mn>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the active power priority is set higher ( <inline-formula id="inf137">
<mml:math id="m160">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> &#x3e; <inline-formula id="inf138">
<mml:math id="m161">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>Q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> ), so that the PMSG wind turbine can carry out maximum wind energy capture and frequency support. When the grid voltage change is in the domain of <inline-formula id="inf139">
<mml:math id="m162">
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mo>&#x3c;</mml:mo>
<mml:mn>0.9</mml:mn>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> or <inline-formula id="inf140">
<mml:math id="m163">
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mo>&#x3e;</mml:mo>
<mml:mn>1.1</mml:mn>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the priority task of the PMSG wind turbine is to provide reactive power support for the grid voltage recovery, and of cause the reactive power priority is set higher ( <inline-formula id="inf141">
<mml:math id="m164">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> &#x3c; <inline-formula id="inf142">
<mml:math id="m165">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>Q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> ). The priority of active and reactive power can also be set according to other conditions, such as grid frequency or rotor speeds of the PMSG wind turbine.</p>
</sec>
<sec id="s4-4">
<title>4.4 Stability analysis</title>
<p>The optimization problem of the MPC controller can be sort out as follows<disp-formula id="e24">
<mml:math id="m166">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>min</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x394;</mml:mo>
<mml:msup>
<mml:mi>Y</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi>R</mml:mi>
<mml:mo>&#x394;</mml:mo>
<mml:mi>Y</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>.</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>8</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>23</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(24)</label>
</disp-formula>where <inline-formula id="inf143">
<mml:math id="m167">
<mml:mrow>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf144">
<mml:math id="m168">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> represent the inequality constraints and equality constraints in <xref ref-type="disp-formula" rid="e8">(8</xref>&#x2013;<xref ref-type="disp-formula" rid="e23">23)</xref>. The optimization variables <inline-formula id="inf145">
<mml:math id="m169">
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula> of the optimization problem <xref ref-type="disp-formula" rid="e24">(24)</xref> are <inline-formula id="inf146">
<mml:math id="m170">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>C</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<sec id="s4-4-1">
<title>4.4.1 The feasibility of the optimization process</title>
<p>To avoid the feasible set determined by the constraints becoming empty, the optimization problem <xref ref-type="disp-formula" rid="e24">(24)</xref> can be modified as follows.<disp-formula id="e25">
<mml:math id="m171">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>min</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x394;</mml:mo>
<mml:msup>
<mml:mi>Y</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi>R</mml:mi>
<mml:mo>&#x394;</mml:mo>
<mml:mi>Y</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>.</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(25)</label>
</disp-formula>
</p>
<p>The optimization variables <inline-formula id="inf147">
<mml:math id="m172">
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula> of the optimization problem <xref ref-type="disp-formula" rid="e25">(25)</xref> include original optimization variables <inline-formula id="inf148">
<mml:math id="m173">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>C</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and slack optimization variables <inline-formula id="inf149">
<mml:math id="m174">
<mml:mrow>
<mml:mi>&#x3b5;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. The values of the slack optimization variables <inline-formula id="inf150">
<mml:math id="m175">
<mml:mrow>
<mml:mi>&#x3b5;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> are flexible, thus any values of the original optimization variables <inline-formula id="inf151">
<mml:math id="m176">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>C</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> can satisfy the constraints. In other word, the feasible set determined by the constraints is always non-empty so that the optimization problems <xref ref-type="disp-formula" rid="e25">(25)</xref> always exists the optimal solution during the optimization process.</p>
<p>The slack optimization variables <inline-formula id="inf152">
<mml:math id="m177">
<mml:mrow>
<mml:mi>&#x3b5;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> are contained in the objective function, so that all the slack optimization variables <inline-formula id="inf153">
<mml:math id="m178">
<mml:mrow>
<mml:mi>&#x3b5;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> will eventually approach 0 during the optimization process. In the end, the optimization problem <xref ref-type="disp-formula" rid="e25">(25)</xref> is the same as the optimization problem <xref ref-type="disp-formula" rid="e24">(24)</xref>.</p>
</sec>
<sec id="s4-4-2">
<title>4.4.2 The stability analysis of the control system.</title>
<p>The control system including the MPC controller and the grid-side converter composite system. Stability analysis is to construct an energy function for the control system and determine whether the energy function meets the stability conditions. The energy function chosen here is <inline-formula id="inf154">
<mml:math id="m179">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>F</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>y</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi>r</mml:mi>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf155">
<mml:math id="m180">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Next, we will prove that it satisfies the stability conditions.<list list-type="simple">
<list-item>
<p>1) <inline-formula id="inf156">
<mml:math id="m181">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>F</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is a positive definite function.</p>
</list-item>
</list>
</p>
<p>If <inline-formula id="inf157">
<mml:math id="m182">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2260;</mml:mo>
<mml:mover accent="true">
<mml:mn>0</mml:mn>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, we have <inline-formula id="inf158">
<mml:math id="m183">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2260;</mml:mo>
<mml:mover accent="true">
<mml:mn>0</mml:mn>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, then <inline-formula id="inf159">
<mml:math id="m184">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>F</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>y</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi>r</mml:mi>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3e;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>If <inline-formula id="inf160">
<mml:math id="m185">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mover accent="true">
<mml:mn>0</mml:mn>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, we have <inline-formula id="inf161">
<mml:math id="m186">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mover accent="true">
<mml:mn>0</mml:mn>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, then <inline-formula id="inf162">
<mml:math id="m187">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>F</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>y</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi>r</mml:mi>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>Therefore, <inline-formula id="inf163">
<mml:math id="m188">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>F</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is a positive definite function.<list list-type="simple">
<list-item>
<p>2) when <inline-formula id="inf164">
<mml:math id="m189">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2192;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, the <inline-formula id="inf165">
<mml:math id="m190">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>F</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2192;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</list-item>
</list>
</p>
<p>Firstly, <inline-formula id="inf166">
<mml:math id="m191">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>F</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>y</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi>r</mml:mi>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3b1;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf167">
<mml:math id="m192">
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is a constant.</p>
<p>If <inline-formula id="inf168">
<mml:math id="m193">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2192;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, we have <inline-formula id="inf169">
<mml:math id="m194">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2192;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, then <inline-formula id="inf170">
<mml:math id="m195">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>F</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2192;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>.<list list-type="simple">
<list-item>
<p>3) If <inline-formula id="inf171">
<mml:math id="m196">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2260;</mml:mo>
<mml:mover accent="true">
<mml:mn>0</mml:mn>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf172">
<mml:math id="m197">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>F</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is going to go down over time.</p>
</list-item>
</list>
</p>
<p>When judging the change trend of the energy function <inline-formula id="inf173">
<mml:math id="m198">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>F</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, the system input vector is 0 vector (<inline-formula id="inf174">
<mml:math id="m199">
<mml:mrow>
<mml:msub>
<mml:mi>Y</mml:mi>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mover accent="true">
<mml:mn>0</mml:mn>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>) but the initial system state vector is not 0 vector (<inline-formula id="inf175">
<mml:math id="m200">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>[</mml:mo>
<mml:mi mathvariant="normal">i</mml:mi>
</mml:mrow>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msup>
<mml:mo>]</mml:mo>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>&#x2260;</mml:mo>
<mml:mover accent="true">
<mml:mn>0</mml:mn>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>). Given that <inline-formula id="inf176">
<mml:math id="m201">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mi>Y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>Y</mml:mi>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>Y</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf177">
<mml:math id="m202">
<mml:mrow>
<mml:msub>
<mml:mi>Y</mml:mi>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mover accent="true">
<mml:mn>0</mml:mn>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, the optimization problem <xref ref-type="disp-formula" rid="e25">(25)</xref> can be rewritten as:<disp-formula id="e26">
<mml:math id="m203">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>min</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi>Y</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi>R</mml:mi>
<mml:mi>Y</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi>r</mml:mi>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>.</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(26)</label>
</disp-formula>
</p>
<p>When initial state variables are <inline-formula id="inf178">
<mml:math id="m204">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>[</mml:mo>
<mml:mi mathvariant="normal">i</mml:mi>
</mml:mrow>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msup>
<mml:mo>]</mml:mo>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>&#x2260;</mml:mo>
<mml:mover accent="true">
<mml:mn>0</mml:mn>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, the energy function is <inline-formula id="inf179">
<mml:math id="m205">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>F</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>y</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi>r</mml:mi>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Solving the optimization problem <xref ref-type="disp-formula" rid="e26">(26)</xref>, the optimal variables obtained are denoted by <inline-formula id="inf180">
<mml:math id="m206">
<mml:mrow>
<mml:msup>
<mml:mi>V</mml:mi>
<mml:mi>k</mml:mi>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>C</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf181">
<mml:math id="m207">
<mml:mrow>
<mml:msup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi>k</mml:mi>
</mml:msubsup>
<mml:mo>;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msubsup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and the optimal state sequence is denoted by <inline-formula id="inf182">
<mml:math id="m208">
<mml:mrow>
<mml:msup>
<mml:mi>X</mml:mi>
<mml:mi>k</mml:mi>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and the optimal output sequence is denoted by <inline-formula id="inf183">
<mml:math id="m209">
<mml:mrow>
<mml:msup>
<mml:mi>Y</mml:mi>
<mml:mi>k</mml:mi>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Then, the objective function is <inline-formula id="inf184">
<mml:math id="m210">
<mml:mrow>
<mml:mi>J</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>k</mml:mi>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi>r</mml:mi>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. By analyzing the optimization problem <xref ref-type="disp-formula" rid="e26">(26)</xref>, the optimization results have the following two hypothesis.</p>
<p>If the value taking of the original optimization variables <inline-formula id="inf185">
<mml:math id="m211">
<mml:mrow>
<mml:msup>
<mml:mi>V</mml:mi>
<mml:mi>k</mml:mi>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>C</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> makes the state variables and outputs constantly approach 0 (that is <inline-formula id="inf186">
<mml:math id="m212">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3e;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>&#x2265;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf187">
<mml:math id="m213">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3e;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>&#x2265;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>), the value taking of the slack optimization variables <inline-formula id="inf188">
<mml:math id="m214">
<mml:mrow>
<mml:msup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi>k</mml:mi>
</mml:msubsup>
<mml:mo>;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msubsup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> can be smaller or remain 0. so that the result of the objective function <inline-formula id="inf189">
<mml:math id="m215">
<mml:mrow>
<mml:mi>J</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>k</mml:mi>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi>r</mml:mi>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> will be smaller.</p>
<p>On the contrary, if the value taking of the original optimization variables <inline-formula id="inf190">
<mml:math id="m216">
<mml:mrow>
<mml:msup>
<mml:mi>V</mml:mi>
<mml:mi>k</mml:mi>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>C</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> make the state variables and outputs constantly away from 0 (that is <inline-formula id="inf191">
<mml:math id="m217">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3c;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3c;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>&#x3c;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf192">
<mml:math id="m218">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3c;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3c;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>&#x3c;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>), the slack optimization variables <inline-formula id="inf193">
<mml:math id="m219">
<mml:mrow>
<mml:msup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi>k</mml:mi>
</mml:msubsup>
<mml:mo>;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msubsup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> will be forced to take larger values to ensure that the inequality constraint can be satisfied. In this way, the result of the objective function <inline-formula id="inf194">
<mml:math id="m220">
<mml:mrow>
<mml:mi>J</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>k</mml:mi>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi>r</mml:mi>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> will be larger.</p>
<p>Given that the optimal variables obtained <inline-formula id="inf195">
<mml:math id="m221">
<mml:mrow>
<mml:msup>
<mml:mi>V</mml:mi>
<mml:mi>k</mml:mi>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>C</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf196">
<mml:math id="m222">
<mml:mrow>
<mml:msup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi>k</mml:mi>
</mml:msubsup>
<mml:mo>;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msubsup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> always minimize the objective function <inline-formula id="inf197">
<mml:math id="m223">
<mml:mrow>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi>r</mml:mi>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>k</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. Therefore, the optimization result will satisfy the first hypothesis. That is to say, the optimal state variables and optimal outputs obtained from solving the optimization problem <xref ref-type="disp-formula" rid="e26">(26)</xref> will constantly approach 0 (<inline-formula id="inf198">
<mml:math id="m224">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3e;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>&#x2265;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf199">
<mml:math id="m225">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3e;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>&#x2265;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>).</p>
<p>Under the control of the MPC controller, in the next sampling interval, the system state variables changes to <inline-formula id="inf200">
<mml:math id="m226">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>[</mml:mo>
<mml:mi mathvariant="normal">i</mml:mi>
</mml:mrow>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msup>
<mml:mo>]</mml:mo>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, the energy function is <inline-formula id="inf201">
<mml:math id="m227">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>F</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>y</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi>r</mml:mi>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Given that <inline-formula id="inf202">
<mml:math id="m228">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3e;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, we have <inline-formula id="inf203">
<mml:math id="m229">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>F</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3e;</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>F</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. The energy function <inline-formula id="inf204">
<mml:math id="m230">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>F</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> declines over time.</p>
<p>If <inline-formula id="inf205">
<mml:math id="m231">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2260;</mml:mo>
<mml:mover accent="true">
<mml:mn>0</mml:mn>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, solving the optimization problem <xref ref-type="disp-formula" rid="e26">(26)</xref>, the optimal variables obtained are denoted by <inline-formula id="inf206">
<mml:math id="m232">
<mml:mrow>
<mml:msup>
<mml:mi>V</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>C</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf207">
<mml:math id="m233">
<mml:mrow>
<mml:msup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msubsup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and the optimal state sequence is denoted by <inline-formula id="inf208">
<mml:math id="m234">
<mml:mrow>
<mml:msup>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and the optimal output sequence is denoted by <inline-formula id="inf209">
<mml:math id="m235">
<mml:mrow>
<mml:msup>
<mml:mi>Y</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Similarly, the optimization result will satisfy that <inline-formula id="inf210">
<mml:math id="m236">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3e;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>&#x2265;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf211">
<mml:math id="m237">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3e;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>&#x2265;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>). Under the control of the MPC controller, the system state variables will changes to <inline-formula id="inf212">
<mml:math id="m238">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> in the next sampling interval, and we have <inline-formula id="inf213">
<mml:math id="m239">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>F</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3e;</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>F</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>By analogy, if the state vector is not 0 vector, the energy function <inline-formula id="inf214">
<mml:math id="m240">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>F</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is going to go down over time under the control of the MPC controller.</p>
</sec>
</sec>
<sec id="s4-5">
<title>4.5 Optimization solving program</title>
<p>The optimization problem <xref ref-type="disp-formula" rid="e25">(25)</xref> is a convex optimization problem with a convex quadratic objective function and multiple convex quadratic constraints which can be solved in many ways. Specifically, a convex optimization problem can be sort out as the following general form.<disp-formula id="e27">
<mml:math id="m241">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>min</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>.</mml:mo>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msub>
<mml:mi>g</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(27)</label>
</disp-formula>where <inline-formula id="inf215">
<mml:math id="m242">
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula> is the set of optimization variables, and <inline-formula id="inf216">
<mml:math id="m243">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the objective function of the convex optimization problem. <inline-formula id="inf217">
<mml:math id="m244">
<mml:mrow>
<mml:msub>
<mml:mi>g</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf218">
<mml:math id="m245">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> represent inequality constraints and equality constraints of the convex optimization problem, respectively. The Lagrange function is defined as:<disp-formula id="e28">
<mml:math id="m246">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bb;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bb;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>g</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(28)</label>
</disp-formula>where <inline-formula id="inf219">
<mml:math id="m247">
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bb;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf220">
<mml:math id="m248">
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula> are called Lagrange multipliers. The optimal solution of convex optimization problem <xref ref-type="disp-formula" rid="e27">(27)</xref> can be obtained by solving the KKT conditions (<xref ref-type="bibr" rid="B32">Xu et al., 2001</xref>). as follows.<disp-formula id="e29">
<mml:math id="m249">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>K</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bb;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>g</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bb;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>g</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2009;</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(29)</label>
</disp-formula>
</p>
<p>In <xref ref-type="disp-formula" rid="e29">(29)</xref>, equality constraints are used to solve the optimal solution, and inequality constraints are used to verify the optimal solution. It is worth mentioning that in addition to the above method, there are many solving methods (<xref ref-type="bibr" rid="B1">An, 2000</xref>) and mature commercial solvers for convex optimization problems. The commercial solvers (<xref ref-type="bibr" rid="B6">Gurobi optimization, 2023</xref>; <xref ref-type="bibr" rid="B8">IBM CPLEX Optimizer, 2023</xref>) can be used to solve convex optimization problems conveniently and quickly, without the need for users to write optimization programs.</p>
<p>In each sampling interval <italic>T</italic>, the actions of the MPC controller include measuring the system states, constructing and solving the optimization problem <xref ref-type="disp-formula" rid="e8">(8</xref>&#x2013;<xref ref-type="disp-formula" rid="e23">23)</xref>, and providing the optimal control variables (V<sub>d</sub> and V<sub>q</sub>) to the system. The flow of the MPC algorithm is shown in <xref ref-type="fig" rid="F4">Figure 4</xref>.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>The flow of the MPC algorithm.</p>
</caption>
<graphic xlink:href="fenrg-11-1159946-g004.tif"/>
</fig>
</sec>
</sec>
<sec id="s5">
<title>5 Case study</title>
<sec id="s5-1">
<title>5.1 Simulation description</title>
<p>The performance of the proposed active and reactive power coordinated control strategy is evaluated in this section by testing the tracking performance of the PMSG wind turbine to the active and reactive power step references. The references of active and reactive power are shown in <xref ref-type="fig" rid="F5">Figure 5</xref>. In order to capture maximum wind energy, the active power reference remains at 2.5&#xa0;MW unchanged. The grid voltage stays in the rated value at 0&#x2013;0.2s and the reactive power reference is set as 0.1&#xa0;MW at 0&#x2013;0.2&#xa0;s. While the grid voltage drops down to 50% of the rated value at 0.2&#xa0;s and the duration is 0.6&#xa0;s. According to the reactive current support requirements in grid codes [21], the reactive power reference is stepped from 0.1&#xa0;MW to 1.35&#xa0;MW at 0.2&#xa0;s.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>The active and reactive power step references of the PMSG wind turbine.</p>
</caption>
<graphic xlink:href="fenrg-11-1159946-g005.tif"/>
</fig>
<p>Three different scenarios are simulated in this section using MATLAB/Simulink.<list list-type="simple">
<list-item>
<p>S1: Active and reactive power are controlled using the MPC controller without coordinated restrictions and priority arrangement</p>
</list-item>
<list-item>
<p>S2: Active and reactive power are coordinately controlled using the MPC controller, which considers amplitude coordinated restrictions and priority arrangement of active and reactive power.</p>
</list-item>
<list-item>
<p>S3: Active and reactive power are coordinately controlled using the MPC controller, which considers amplitude coordinated restrictions and priority arrangement of active and reactive power. Meanwhile, the climbing coordinated restrictions of active and reactive power is considered.</p>
</list-item>
<list-item>
<p>S4: Active and reactive power are coordinately controlled using the PI controller, which considers amplitude coordinated restrictions and priority arrangement of active and reactive power.</p>
</list-item>
</list>
</p>
<p>The other conditions and parameters in the three simulated scenarios are the same. The parameters of the grid-side converter system are indicated in <xref ref-type="table" rid="T1">Table 1</xref> (<xref ref-type="bibr" rid="B34">Yaramasu and Wu, 2014</xref>). The prediction horizon is set as five times control period <italic>T</italic> and the control horizon is set as four times control period <italic>T</italic> when simulating.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Parameters of the grid-side converter system.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Parameters</th>
<th align="center">Description</th>
<th align="center">Value</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">
<inline-formula id="inf221">
<mml:math id="m250">
<mml:mrow>
<mml:mi>R</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> (&#x3a9;)</td>
<td align="center">The resistor and inductor of the filter</td>
<td align="center">0.027</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf222">
<mml:math id="m251">
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> (mH)</td>
<td align="center">The inductor of the filter</td>
<td align="center">1.65</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf223">
<mml:math id="m252">
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (V)</td>
<td align="center">Rated phase voltage of the power grid</td>
<td align="center">1732</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf224">
<mml:math id="m253">
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (MW)</td>
<td align="center">Rated apparent power of the grid side converter</td>
<td align="center">3</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf225">
<mml:math id="m254">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (A)</td>
<td align="center">Rated current of the grid side converter</td>
<td align="center">577.35</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf226">
<mml:math id="m255">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (V)</td>
<td align="center">Rated phase voltage of the grid side converter</td>
<td align="center">1803</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf227">
<mml:math id="m256">
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> (ms)</td>
<td align="center">Control period of the MPC controller</td>
<td align="center">10</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s5-2">
<title>5.2 Results and analysis</title>
<p>
<xref ref-type="fig" rid="F6">Figures 6</xref>&#x2013;<xref ref-type="fig" rid="F8">8</xref> depict the power reference tracking results of the PMSG wind turbine in the three different scenarios. Due to the grid voltage droping down to 50% of the rated value at 0.2&#xa0;s, the maximum apparent power of the PMSG wind turbine change from 3MW to 1.5&#xa0;MW at 0.2&#xa0;s. In Scenario S1, the active and reactive power coordinated restrictions and priority decisions are not considered. Regardless of the power grid status, the amplitude range and climbing range of active and reactive power are fixed and do not interfere with each other. Therefore, the PMSG wind turbine cannot guarantee reactive power output by reducing the active power output. Therefore, when the grid voltage drop, the reactive power of the PMSG wind turbine cannot meet the 1.35&#xa0;MW reference which is the reactive power support requirement.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>The power references tracking results of the PMSG wind turbine in the S1 scenario.</p>
</caption>
<graphic xlink:href="fenrg-11-1159946-g006.tif"/>
</fig>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>The power references tracking results of the PMSG wind turbine in the S2 scenario.</p>
</caption>
<graphic xlink:href="fenrg-11-1159946-g007.tif"/>
</fig>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>The power references tracking results of the PMSG wind turbine in the S3 scenario.</p>
</caption>
<graphic xlink:href="fenrg-11-1159946-g008.tif"/>
</fig>
<p>Amplitude coordinated restrictions and priority decisions of active and reactive power are considered in Scenario S2. When the grid voltage drops down to 50% of the rated value at 0.2s, the priority task of the PMSG wind turbine is to provide reactive power support for the grid voltage recovery, and of cause the reactive power priority is set higher. As shown in <xref ref-type="fig" rid="F6">Figure 6</xref>, by reducing the amplitude of active power, the PMSG wind turbine can output 1.35&#xa0;MW reactive power to meet the reactive power support requirements of the grid. That is why we say it is very necessary and meaningful to coordinately control the active and reactive power amplitude of the wind turbine under the background of grid support.</p>
<p>The proposed control strategy in this paper is simulated in Scenario 3 which considers amplitude and climbing coordinated restrictions and priority decisions between active and reactive power. Similarly to Scenario 2, the PMSG wind turbine can meet the reactive power support requirements of the grid when the grid voltage drops. The difference between Scenario 2 and Scenario 3 is that, the PMSG wind turbine shows a faster response speed in Scenario 3, which the dynamic time in Scenario 3 is 20&#xa0;ms and it is 40&#xa0;ms in Scenario 2. This demonstrates the superiority of the control strategy proposed in this paper.</p>
<p>
<xref ref-type="fig" rid="F9">Figures 9</xref>, <xref ref-type="fig" rid="F10">10</xref> show the current climbing of the PMSG wind turbine in Scenario 2 and Scenario 3. It can be found that the active and reactive current climbing limit value of the PMSG wind turbine in Scenario 3 is larger than that in Scenario 2. The greater ability to climb allows the PMSG wind turbine to show faster response speed in response to a step change in the power reference value. The results explain why the PMSG wind turbine shows a faster response speed in Scenario 3. The simulation results verify that under the given apparent power/current climbing constraint, active and reactive power/current climbing coordinated restrictions allow PMSG wind turbines to perform a larger range of active and reactive power/current climbing.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>The power climbing of the PMSG wind turbine in Scenario 2.</p>
</caption>
<graphic xlink:href="fenrg-11-1159946-g009.tif"/>
</fig>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>The power climbing of the PMSG wind turbine in Scenario 3.</p>
</caption>
<graphic xlink:href="fenrg-11-1159946-g010.tif"/>
</fig>
<p>The voltage of the grid-side converter is shown in <xref ref-type="fig" rid="F11">Figure 11</xref> when the PMSG wind turbine executes the proposed control strategy in Scenario 3. It is easy to see that the voltage amplitude does not exceed its maximum allowed value in the whole process. In addition, there are no sharp climb and spike in the voltage waveform, which can protect the grid-side converters and improve the electricity quality of the PMSG wind turbine. Hence, The voltage amplitude and climbing constraint model proposed in this paper is effective.</p>
<fig id="F11" position="float">
<label>FIGURE 11</label>
<caption>
<p>The voltage of the grid-side converter in Scenario 3.</p>
</caption>
<graphic xlink:href="fenrg-11-1159946-g011.tif"/>
</fig>
<p>The three-phase current of the grid-side converter is shown in <xref ref-type="fig" rid="F12">Figure 12</xref> when the PMSG wind turbine executes the proposed control strategy in Scenario 3. The rated peak value of single-phase current is 0.816&#xa0;kA. It is easy to see that the amplitudes of the three-phase current do not exceed the rated peak value 0.816&#xa0;kA in the whole process. In addition, there are no sharp climb and spike in the three-phase current waveforms, which can protect the grid-side converters and improve the electricity quality of the PMSG wind turbine. Hence, The current amplitude and climbing constraint model proposed in this paper is effective.</p>
<fig id="F12" position="float">
<label>FIGURE 12</label>
<caption>
<p>The three-phase current of the grid-side converter in Scenario 3.</p>
</caption>
<graphic xlink:href="fenrg-11-1159946-g012.tif"/>
</fig>
<p>
<xref ref-type="fig" rid="F13">Figure 13</xref> shows the result of the PMSG wind turbine tracking a 3&#xa0;MW step active power reference, which is simulated with different prediction horizons. As can be seen from <xref ref-type="fig" rid="F13">Figure 13</xref>, when the prediction horizon is short (Np &#x3d; 1), the output of the PMSG wind turbine exists the overshoot. This is because the MPC model in this paper contains constraints on the power climbing change. The active power output of the PMSG wind turbine has a large climbing in the early stage, and the climbing cannot be changed quickly after approaching the active power reference value, so overdrive occurs. When the prediction horizon is long, the MPC controller can predict the corresponding future multi-step power output under different control variables, and select the optimal control variable to avoid overshoot. It is worth mentioning that the longer the prediction horizon, the better the control effect. In the scenario, the control effect is exactly the same when Np &#x3d; 5 as when Np &#x3d; 9. It is worth mentioning that as the prediction horizon increases, the control effect will not get better. In the current scenario, the control effect is exactly the same when Np &#x3d; 5 and Np &#x3d; 9.</p>
<fig id="F13" position="float">
<label>FIGURE 13</label>
<caption>
<p>The active power references tracking results of the PMSG wind turbine under different prediction horizon.</p>
</caption>
<graphic xlink:href="fenrg-11-1159946-g013.tif"/>
</fig>
<p>In the proposed MPC based control strategy, the priority of active and reactive power can be flexibly arranged by setting the deviation coefficients <inline-formula id="inf228">
<mml:math id="m257">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf229">
<mml:math id="m258">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>Q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> in the objective function. The steady-state amplitude of active and reactive power at 0.2&#x2013;0.4s in Scenario 3 are displayed in <xref ref-type="table" rid="T2">Table 2</xref>, which is simulated with different deviation coefficients <inline-formula id="inf230">
<mml:math id="m259">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf231">
<mml:math id="m260">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>Q</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. Due to the grid voltage drops of 50% at 0.2&#xa0;s, the maximum apparent power of the PMSG wind turbine changes from 3MW to 1.5&#xa0;MW. Under the given 1.5&#xa0;MW apparent power constraint, different priority settings will result in different active and reactive power outputs. So that the PMSG wind turbine can operate in different modes such as giving priority to the active power support/output, giving priority to the reactive power support/output, and giving the same/close priority to the active power support and the reactive power support. The MPC controller can flexibly set the priority of active and reactive power, so that the proposed control strategy can be flexibly applicated in different grid support scenarios.</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>The steady-state amplitude of active and reactive power with different deviation coefficients.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Deviation coefficients</th>
<th align="center">Power references</th>
<th align="center">Power outputs</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td rowspan="2" align="left">
<inline-formula id="inf232">
<mml:math id="m261">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>Q</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>100000</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">Pref &#x3d; 2.5&#xa0;MW</td>
<td align="center">
<italic>p</italic> &#x3d; 0.65&#xa0;MW</td>
</tr>
<tr>
<td align="center">Qref &#x3d; 1.35&#xa0;MW</td>
<td align="center">Q &#x3d; 1.35&#xa0;MW</td>
</tr>
<tr>
<td rowspan="2" align="left">
<inline-formula id="inf233">
<mml:math id="m262">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>100000</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>Q</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">Pref &#x3d; 2.5&#xa0;MW</td>
<td align="center">
<italic>p</italic> &#x3d; 1.5&#xa0;MW</td>
</tr>
<tr>
<td align="center">Qref &#x3d; 1.35&#xa0;MW</td>
<td align="center">Q &#x3d; 0&#xa0;MW</td>
</tr>
<tr>
<td rowspan="2" align="left">
<inline-formula id="inf234">
<mml:math id="m263">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>Q</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">Pref &#x3d; 2.5&#xa0;MW</td>
<td align="center">
<italic>p</italic> &#x3d; 1.32&#xa0;MW</td>
</tr>
<tr>
<td align="center">Qref &#x3d; 1.35&#xa0;MW</td>
<td align="center">Q &#x3d; 0.713&#xa0;MW</td>
</tr>
<tr>
<td rowspan="2" align="left">
<inline-formula id="inf235">
<mml:math id="m264">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>Q</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>10</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">Pref &#x3d; 2.5&#xa0;MW</td>
<td align="center">
<italic>p</italic> &#x3d; 0.95&#xa0;MW</td>
</tr>
<tr>
<td align="center">Qref &#x3d; 1.35&#xa0;MW</td>
<td align="center">Q &#x3d; 1.161&#xa0;MW</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>
<xref ref-type="fig" rid="F14">Figures 14</xref>, <xref ref-type="fig" rid="F15">15</xref> depict the power reference tracking results and the grid-side converter voltage of the PMSG wind turbine when the PMSG wind turbine is controlled by a PI controller in Scenario 4. It can be seen in <xref ref-type="fig" rid="F14">Figure 14</xref> that there are overshoots and steady-state errors existing when the PMSG wind turbine tracks the active power references. It is worth mentioning that increasing the integral parameter in the PI controller can eliminate steady-state errors, but can lead to larger overshoots. As can be seen in <xref ref-type="fig" rid="F15">Figure 15</xref>, the grid-side converter voltage may exceed its rated value during the dynamic process, which may cause damage to the grid-side converter and degrade the power quality. In addition, the amplitudes of output power and the grid-side converter voltage continue to fluctuate during the steady state period. This means that the power quality of the PMSG wind turbine output is lower.</p>
<fig id="F14" position="float">
<label>FIGURE 14</label>
<caption>
<p>The power references tracking results of the PMSG wind turbine in the S4 scenario.</p>
</caption>
<graphic xlink:href="fenrg-11-1159946-g014.tif"/>
</fig>
<fig id="F15" position="float">
<label>FIGURE 15</label>
<caption>
<p>The voltage of the grid-side converter in Scenario 4.</p>
</caption>
<graphic xlink:href="fenrg-11-1159946-g015.tif"/>
</fig>
<p>As shown in <xref ref-type="fig" rid="F8">Figures 8</xref>&#x2013;<xref ref-type="fig" rid="F13">13</xref>, the MPC based active and reactive power coordinated control strategy proposed in this paper can enable one of active power and reactive power (the one with higher priority) to track its references perfectly with zero steady-state error, zero overshoot and transient dynamic process. The steady-state power curve and the steady-state voltage curve are smooth straight lines. The power amplitude constraint, power climbing constraint, power priority arrangement, voltage amplitude constraint and voltage ramp constraint set in the proposed control strategy have achieved the expected results. That is because the MPC controller is good at dealing with multi-input and multi-output control problems with complex constraints and specific objectives. The above complex constraints and specific objectives are difficult to implement by PI controllers.</p>
</sec>
</sec>
<sec sec-type="conclusion" id="s6">
<title>6 Conclusion</title>
<p>In this paper, an MPC based active and reactive power coordinated control strategy is proposed to enhance the power control performance and grid support capability of PMSG wind turbines. Firstly, the constraint conditions in the MPC controller are constructed which include amplitude and climbing coordinated restrictions between active and reactive power, voltage amplitude and climbing constraints of grid-side converters. These constraint conditions enable PMSG wind turbines to perform a wider range of active and reactive power amplitude and climbing, and a smoother output voltage waveform. Then, an objective function is constructed to minimize the deviation of active and reactive power from their reference values. By setting the deviation coefficients in the objective function, the priority of active power output and reactive power output can be flexibly arranged. So that PMSG wind turbines can meet the power output requirements in different grid support scenarios. In the end, the simulation results show that the proposed control strategy can make PMSG wind turbines achieve excellent power control performance and thus better meet the requirements of power grid support. In the future, the influences of sampling delay and MPC calculation delay on the proposed control strategy will be analyzed and the proposed control strategy will be improved by using delay compensation technology.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s7">
<title>Data availability statement</title>
<p>The original contributions presented in the study are included in the article/Supplementary Material, further inquiries can be directed to the corresponding author.</p>
</sec>
<sec id="s8">
<title>Author contributions</title>
<p>XM proposed the idea and carried out the model establishment, simulation experiment, result analysis, meanwhile he wrote the first draft. JY assisted in establishment of model and improvement of the idea. PY was in charge of knowledge coaching and error correction. PW is responsible for data collection, analysis, and processing and assisted in result analysis. PZ helped the revision of the manuscript and typeset the manuscript.</p>
</sec>
<sec id="s9">
<title>Funding</title>
<p>This work was supported by Key-Area Research and Development Program of Guangdong Province (2021B0101230003), and The Research Project of Digital Grid Research Institute, China Southern Power Grid (670000KK52220011).</p>
</sec>
<sec sec-type="COI-statement" id="s10">
<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="s11">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>An</surname>
<given-names>L. T. H.</given-names>
</name>
</person-group> (<year>2000</year>). <article-title>An efficient algorithm for globally minimizing a quadratic function under convex quadratic constraints</article-title>. <source>Math. Program. Ser. B</source> <volume>87</volume>, <fpage>401</fpage>&#x2013;<lpage>426</lpage>. <pub-id pub-id-type="doi">10.1007/s101070050003</pub-id>
</citation>
</ref>
<ref id="B2">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Dong</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>Coordinated control for active and reactive power of PMSG-based wind turbine to enhance the LVRT capability</article-title>. <source>2012 15th int. Conf. Electr. Mach. Syst., (ICEMS)</source>, <fpage>33</fpage>&#x2013;<lpage>36</lpage>.</citation>
</ref>
<ref id="B3">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Feltes</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Engelhardt</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Kretschmann</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Fortmann</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Koch</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Erlich</surname>
<given-names>I.</given-names>
</name>
</person-group> (<year>2009</year>). <article-title>Comparison of the grid support capability of DFIG-based wind farms and conventional power plants with synchronous generators</article-title>. <source>2009 IEEE power energy soc. Gen. Meet.</source>, <fpage>1</fpage>&#x2013;<lpage>7</lpage>. <pub-id pub-id-type="doi">10.1109/PES.2009.5275441</pub-id>
</citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Gaied</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Naoui</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Kraiem</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Goud</surname>
<given-names>B. S.</given-names>
</name>
<name>
<surname>Flah</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Alghaythi</surname>
<given-names>M. L.</given-names>
</name>
<etal/>
</person-group> (<year>2022</year>). <article-title>Comparative analysis of MPPT techniques for enhancing a wind energy conversion system</article-title>. <source>Front. Energy Res.</source> <volume>10</volume>, <fpage>1</fpage>&#x2013;<lpage>15</lpage>. <pub-id pub-id-type="doi">10.3389/fenrg.2022.975134</pub-id>
</citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Guo</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Ren</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>X.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <article-title>Double-layer feedback control method for synchronized frequency regulation of PMSG-based wind farm</article-title>. <source>IEEE Trans. Sustain. Energy</source> <volume>12</volume>, <fpage>2423</fpage>&#x2013;<lpage>2435</lpage>. <pub-id pub-id-type="doi">10.1109/TSTE.2021.3096724</pub-id>
</citation>
</ref>
<ref id="B6">
<citation citation-type="book">
<collab>Gurobi optimization</collab> (<year>2023</year>). <source>Gurobi</source>. <comment>Available at: <ext-link ext-link-type="uri" xlink:href="http://www.gurobi.com">http://www.gurobi.com</ext-link> (Accessed Feb, 2023)</comment>.</citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hansen</surname>
<given-names>A. D.</given-names>
</name>
<name>
<surname>S&#xf8;rensen</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Iov</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Blaabjerg</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2006</year>). <article-title>Grid support of a wind farm with active stall wind turbines and AC grid connection</article-title>. <source>Wind Energy</source> <volume>9</volume>, <fpage>341</fpage>&#x2013;<lpage>359</lpage>. <pub-id pub-id-type="doi">10.1002/we.176</pub-id>
</citation>
</ref>
<ref id="B8">
<citation citation-type="book">
<collab>IBM CPLEX Optimizer</collab> (<year>2023</year>). <source>High-performance mathematical programming solver for linear programming, mixed integer programming, and quadratic programming</source>. <comment>Available at: <ext-link ext-link-type="uri" xlink:href="https://www.ibm.com/cn-zh/analytics/cplex-optimizer">https://www.ibm.com/cn-zh/analytics/cplex-optimizer</ext-link> (Accessed Feb, 2023)</comment>.</citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Khazaei</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Nguyen</surname>
<given-names>D. H.</given-names>
</name>
<name>
<surname>Asrari</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Consensus-based demand response of PMSG wind turbines with distributed energy storage considering capability curves</article-title>. <source>IEEE Trans. Sustain. Energy</source> <volume>11</volume>, <fpage>2315</fpage>&#x2013;<lpage>2325</lpage>. <pub-id pub-id-type="doi">10.1109/TSTE.2019.2954796</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Ren</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Tang</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Meng</surname>
<given-names>J.</given-names>
</name>
<etal/>
</person-group> (<year>2022</year>). <article-title>Virtual inertial control strategy based on fuzzy logic algorithm for PMSG wind turbines to enhance frequency stability</article-title>. <source>Front. energy Res.</source> <volume>10</volume>, <fpage>1</fpage>&#x2013;<lpage>9</lpage>. <pub-id pub-id-type="doi">10.3389/fenrg.2022.907770</pub-id>
</citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Haskew</surname>
<given-names>T. A.</given-names>
</name>
<name>
<surname>Swatloski</surname>
<given-names>R. P.</given-names>
</name>
<name>
<surname>Gathings</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>Optimal and direct-current vector control of direct-driven PMSG wind turbines</article-title>. <source>IEEE Trans. Power Electron.</source> <volume>27</volume>, <fpage>2325</fpage>&#x2013;<lpage>2337</lpage>. <pub-id pub-id-type="doi">10.1109/TPEL.2011.2174254</pub-id>
</citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Gracia</surname>
<given-names>J. R.</given-names>
</name>
<name>
<surname>King</surname>
<given-names>T. J.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Frequency regulation and oscillation damping contributions of variable-speed wind generators in the U.S. Eastern interconnection (EI)</article-title>. <source>IEEE Trans. Sustain. Energy</source> <volume>6</volume>, <fpage>951</fpage>&#x2013;<lpage>958</lpage>. <pub-id pub-id-type="doi">10.1109/TSTE.2014.2318591</pub-id>
</citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Maaoui-Ben Hassine</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Naouar</surname>
<given-names>M. W.</given-names>
</name>
<name>
<surname>Mrabet-Bellaaj</surname>
<given-names>N.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Predictive control strategies for wind turbine system based on permanent magnet synchronous generator</article-title>. <source>ISA Trans.</source> <volume>62</volume>, <fpage>73</fpage>&#x2013;<lpage>80</lpage>. <pub-id pub-id-type="doi">10.1016/j.isatra.2015.12.002</pub-id>
</citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mayne</surname>
<given-names>D. Q.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Model predictive control: Recent developments and future promise</article-title>. <source>Automatica</source> <volume>50</volume>, <fpage>2967</fpage>&#x2013;<lpage>2986</lpage>. <pub-id pub-id-type="doi">10.1016/j.automatica.2014.10.128</pub-id>
</citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mishra</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Saha</surname>
<given-names>T. K.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Performance analysis of model predictive technique based combined control for PMSG-Based distributed generation unit</article-title>. <source>IEEE Trans. Ind. Electron.</source> <volume>67</volume>, <fpage>8991</fpage>&#x2013;<lpage>9000</lpage>. <pub-id pub-id-type="doi">10.1109/TIE.2020.2992970</pub-id>
</citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Moghadasi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Sarwat</surname>
<given-names>A. I.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Optimal analysis of resistive superconducting fault current limiters applied to a variable speed wind turbine system</article-title>. <source>Conf. Proc. - IEEE S.</source>, <fpage>1</fpage>&#x2013;<lpage>7</lpage>. <pub-id pub-id-type="doi">10.1109/SECON.2015.7132944</pub-id>
</citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mohseni</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Islam</surname>
<given-names>S. M.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>Review of international grid codes for wind power integration: Diversity, technology and a case for global standard</article-title>. <source>Renew. Sustain. Energy Rev.</source> <volume>16</volume>, <fpage>3876</fpage>&#x2013;<lpage>3890</lpage>. <pub-id pub-id-type="doi">10.1016/j.rser.2012.03.039</pub-id>
</citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Musarrat</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Islam</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Member</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Muttaqi</surname>
<given-names>K. M.</given-names>
</name>
<name>
<surname>Member</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Enhanced frequency support from a PMSG-based wind energy conversion system integrated with a high temperature SMES in standalone power supply systems</article-title>. <source>IEEE Trans. Appl. Supercond.</source> <volume>29</volume>, <fpage>1</fpage>&#x2013;<lpage>6</lpage>. <pub-id pub-id-type="doi">10.1109/tasc.2018.2882429</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="book">
<collab>National Energy Administration</collab> (<year>2023</year>). <source>Transcript of the online press conference of the National Energy Administration in the fourth quarter of 2022</source>. <comment>Available at: <ext-link ext-link-type="uri" xlink:href="http://www.nea.gov.cn/2022-11/14/c_1310676392.htm">http://www.nea.gov.cn/2022-11/14/c_1310676392.htm</ext-link> (Accessed Feb, 2023)</comment>.</citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Nguyen</surname>
<given-names>T. H.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>D. C.</given-names>
</name>
<name>
<surname>Van</surname>
<given-names>T. L.</given-names>
</name>
<name>
<surname>Kang</surname>
<given-names>J. H.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Coordinated control of reactive power between STATCOMs and wind farms for PCC voltage regulation</article-title>. <source>J. Power Electron.</source> <volume>13</volume>, <fpage>909</fpage>&#x2013;<lpage>918</lpage>. <pub-id pub-id-type="doi">10.6113/JPE.2013.13.5.909</pub-id>
</citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Okedu</surname>
<given-names>K. E.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Improving the performance of PMSG wind turbines during grid fault considering different strategies of fault current limiters</article-title>. <source>Front. Energy Res.</source> <volume>10</volume>, <fpage>1</fpage>&#x2013;<lpage>12</lpage>. <pub-id pub-id-type="doi">10.3389/fenrg.2022.909044</pub-id>
</citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Peng</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>K. Y.</given-names>
</name>
<name>
<surname>Tan</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Cao</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wen</surname>
<given-names>M.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <article-title>Coordinated control strategy of pmsg and cascaded H-bridge STATCOM in dispersed wind farm for suppressing unbalanced grid voltage</article-title>. <source>IEEE Trans. Sustain. Energy</source> <volume>12</volume>, <fpage>349</fpage>&#x2013;<lpage>359</lpage>. <pub-id pub-id-type="doi">10.1109/TSTE.2020.2995457</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Qin</surname>
<given-names>S. J.</given-names>
</name>
<name>
<surname>Badgwell</surname>
<given-names>T. A.</given-names>
</name>
</person-group> (<year>2003</year>). <article-title>A survey of industrial model predictive control technology</article-title>. <source>Control Eng. Pract.</source> <volume>11</volume>, <fpage>733</fpage>&#x2013;<lpage>764</lpage>. <pub-id pub-id-type="doi">10.1016/S0967-0661(02)00186-7</pub-id>
</citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Rodriguez</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Cortes</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Kennel</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Kazmierkowski</surname>
<given-names>M. P.</given-names>
</name>
</person-group> (<year>2009</year>). <article-title>Model predictive control - a simple and powerful method to control power converters</article-title>. <source>IEEE Trans. Ind. Electron.</source> <volume>56</volume>, <fpage>41</fpage>&#x2013;<lpage>49</lpage>. <pub-id pub-id-type="doi">10.1109/IPEMC.2009.5289335</pub-id>
</citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Shehata</surname>
<given-names>E. G.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>A comparative study of current control schemes for a direct-driven PMSG wind energy generation system</article-title>. <source>Electr. Power Syst. Res.</source> <volume>143</volume>, <fpage>197</fpage>&#x2013;<lpage>205</lpage>. <pub-id pub-id-type="doi">10.1016/j.epsr.2016.10.039</pub-id>
</citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sheng</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Jia</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Coombs</surname>
<given-names>T. A.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Investigation on FRT capability of PMSG-based offshore wind farm using the SFCL</article-title>. <source>IEEE Trans. Appl. Supercond.</source> <volume>31</volume>, <fpage>2021</fpage>&#x2013;<lpage>2024</lpage>. <pub-id pub-id-type="doi">10.1109/TASC.2021.3091054</pub-id>
</citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tan</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Member</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Muttaqi</surname>
<given-names>K. M.</given-names>
</name>
<name>
<surname>Member</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Ciufo</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Member</surname>
<given-names>S.</given-names>
</name>
<etal/>
</person-group> (<year>2017</year>). <article-title>Enhanced frequency response strategy for a PMSG-based wind energy conversion system using ultracapacitor in remote area power supply systems</article-title>. <source>IEEE Trans. Ind. Appl.</source> <volume>53</volume>, <fpage>549</fpage>&#x2013;<lpage>558</lpage>. <pub-id pub-id-type="doi">10.1109/tia.2016.2613074</pub-id>
</citation>
</ref>
<ref id="B28">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tripathi</surname>
<given-names>S. M.</given-names>
</name>
<name>
<surname>Tiwari</surname>
<given-names>A. N.</given-names>
</name>
<name>
<surname>Singh</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Low-voltage ride-through enhancement with the &#x3c9; and T controls of PMSG in a grid-integrated wind generation system</article-title>. <source>IET Gener. Transm. Distrib.</source> <volume>13</volume>, <fpage>1979</fpage>&#x2013;<lpage>1988</lpage>. <pub-id pub-id-type="doi">10.1049/iet-gtd.2018.6275</pub-id>
</citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Vazquez</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Leon</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Franquelo</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Rodriguez</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Young</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Marquez</surname>
<given-names>A.</given-names>
</name>
<etal/>
</person-group> (<year>2014</year>). <article-title>Model predictive control</article-title>. <source>IEEE Ind. Electron. Mag.</source> <volume>8</volume>, <fpage>91</fpage>&#x2013;<lpage>94</lpage>. <pub-id pub-id-type="doi">10.1007/978-3-319-91707-8_12</pub-id>
</citation>
</ref>
<ref id="B30">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Venkat</surname>
<given-names>A. N.</given-names>
</name>
<name>
<surname>Hiskens</surname>
<given-names>I. A.</given-names>
</name>
<name>
<surname>Rawlings</surname>
<given-names>J. B.</given-names>
</name>
<name>
<surname>Wright</surname>
<given-names>S. J.</given-names>
</name>
</person-group> (<year>2008</year>). <article-title>Distributed MPC strategies with application to power system automatic generation control</article-title>. <source>IEEE Trans. Control Syst. Technol.</source> <volume>16</volume>, <fpage>1192</fpage>&#x2013;<lpage>1206</lpage>. <pub-id pub-id-type="doi">10.1109/TCST.2008.919414</pub-id>
</citation>
</ref>
<ref id="B31">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>D. W.</given-names>
</name>
<name>
<surname>Member</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Yan</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Coordinated control strategy of battery energy storage system and PMSG-WTG to enhance system frequency regulation capability</article-title>. <source>IEEE Trans. Sustain. Energy</source> <volume>8</volume>, <fpage>1330</fpage>&#x2013;<lpage>1343</lpage>. <pub-id pub-id-type="doi">10.1109/tste.2017.2679716</pub-id>
</citation>
</ref>
<ref id="B32">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2001</year>). <article-title>The algorithm of sequential KKT equations by nonmonotone search for arbitrary initial point</article-title>. <source>Comput. Optim. Appl.</source> <volume>18</volume>, <fpage>221</fpage>&#x2013;<lpage>232</lpage>. <pub-id pub-id-type="doi">10.1023/A:1011281102385</pub-id>
</citation>
</ref>
<ref id="B33">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Yan</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Zhen</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wubin</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>An experimental system for LVRT of direct-drive PMSG wind generation system</article-title>. <source>2016 IEEE 8th int. Power electron. Motion control conf</source>. <publisher-loc>Hefei</publisher-loc>: <publisher-name>IPEMC-ECCE Asia 2016</publisher-name>, <fpage>1452</fpage>&#x2013;<lpage>1456</lpage>. <pub-id pub-id-type="doi">10.1109/IPEMC.2016.7512505</pub-id>
</citation>
</ref>
<ref id="B34">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yaramasu</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Predictive control of a three-level boost converter and an NPC inverter for high-power PMSG-based medium voltage wind energy conversion systems</article-title>. <source>IEEE Trans. Power Electron.</source> <volume>29</volume>, <fpage>5308</fpage>&#x2013;<lpage>5322</lpage>. <pub-id pub-id-type="doi">10.1109/TPEL.2013.2292068</pub-id>
</citation>
</ref>
<ref id="B35">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>You</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Barahona</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Chai</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Cutululis</surname>
<given-names>N. A.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Frequency support capability of variable speed wind turbine based on electromagnetic coupler</article-title>. <source>Renew. Energy</source> <volume>74</volume>, <fpage>681</fpage>&#x2013;<lpage>688</lpage>. <pub-id pub-id-type="doi">10.1016/j.renene.2014.08.072</pub-id>
</citation>
</ref>
<ref id="B36">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zeng</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Cao</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Deng</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Tian</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Current status, challenges, and trends of maximum power point tracking for PV systems</article-title>. <source>Front. Energy Res.</source> <volume>10</volume>, <fpage>1</fpage>&#x2013;<lpage>5</lpage>. <pub-id pub-id-type="doi">10.3389/fenrg.2022.901035</pub-id>
</citation>
</ref>
<ref id="B37">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Hu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Hou</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Soltani</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2016</year>). &#x201c;<article-title>Coordinated power dispatch of a PMSG based wind farm for output power maximizing considering the wake effect and losses</article-title>,&#x201d; in <source>2016 IEEE power energy soc. Gen. Meet. (PESGM)</source>, <fpage>1</fpage>&#x2013;<lpage>5</lpage>. <pub-id pub-id-type="doi">10.1109/PESGM.2016.7741738</pub-id>
</citation>
</ref>
<ref id="B38">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhong</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Lv</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>An equivalent rotor speed compensation control of PMSG-based wind turbines for frequency support in islanded microgrids</article-title>. <source>Front. energy Res.</source> <volume>9</volume>, <fpage>1</fpage>&#x2013;<lpage>13</lpage>. <pub-id pub-id-type="doi">10.3389/fenrg.2021.717327</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>