<?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">1089258</article-id>
<article-id pub-id-type="doi">10.3389/fenrg.2023.1089258</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>Extended state observer-based predictive control for soft open point</article-title>
<alt-title alt-title-type="left-running-head">Wang 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.1089258">10.3389/fenrg.2023.1089258</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Wang</surname>
<given-names>Zhengqi</given-names>
</name>
<uri xlink:href="https://loop.frontiersin.org/people/1677187/overview"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Lu</surname>
<given-names>Peng</given-names>
</name>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2079959/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Zhou</surname>
<given-names>Haoyu</given-names>
</name>
<uri xlink:href="https://loop.frontiersin.org/people/1752840/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Chen</surname>
<given-names>Li</given-names>
</name>
</contrib>
</contrib-group>
<aff>
<institution>School of Electric Power Engineering</institution>, <institution>Nanjing Institute of Technology</institution>, <addr-line>Nanjing</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/1155780/overview">Dongdong Zhang</ext-link>, Guangxi University, China</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/255563/overview">Aravind C. K</ext-link>, Mepco Schlenk Engineering College, India</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2205542/overview">Xiang Li</ext-link>, Guangxi University, China</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Peng Lu, <email>lp990403@163.com</email>
</corresp>
<fn fn-type="other">
<p>This article was submitted to Smart Grids, a section of the journal Frontiers in Energy Research</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>17</day>
<month>03</month>
<year>2023</year>
</pub-date>
<pub-date pub-type="collection">
<year>2023</year>
</pub-date>
<volume>11</volume>
<elocation-id>1089258</elocation-id>
<history>
<date date-type="received">
<day>04</day>
<month>11</month>
<year>2022</year>
</date>
<date date-type="accepted">
<day>06</day>
<month>03</month>
<year>2023</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2023 Wang, Lu, Zhou and Chen.</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Wang, Lu, Zhou and Chen</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>This paper proposes an extended state observer-based ultra-local model-free three-vector predictive control method for Soft Open Point (SOP). First, the Ultra-Local Model-Free Predictive Control (ULMFPC) method is proposed to improve the robustness of the system, which only uses the input and output of the outer-loop, and any other parameters are not involved. Second, considering parameter perturbations and external disturbances in the SOP system, an expansion state observer (ESO) is established to observe the SOP system&#x2019;s total perturbations and the perturbations are compensated in real-time to improve the system. Third, to solve the problem of significant current harmonics in traditional model predictive control (MPC), a three-vector MPC method (TV-MPC) is adopted to reduce the total harmonic distortion rate (THD) of the current. Finally, it is verified by simulation that the proposed method can effectively reduce the current harmonics of the SOP system, rate value setting time, and improve the dynamic performance effectively. When perturbations occur in the system, the proposed method can improve the anti-interference and robustness of the system.</p>
</abstract>
<kwd-group>
<kwd>expansion state observer (ESO)</kwd>
<kwd>model predictive control (MPC)</kwd>
<kwd>model-free control</kwd>
<kwd>parameter perturbations</kwd>
<kwd>Soft Open Point (SOP)</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>In recent years, many benefits have been brought by the application of increasing renewable energy sources. However, many problems may occur when renewable energy sources are connected to the distribution network, such as power imbalance and voltage instability (<xref ref-type="bibr" rid="B16">Rueda and Padilha, 2013</xref>; <xref ref-type="bibr" rid="B5">Gong et al., 2021</xref>). As a power electronic device, Soft Open Point (SOP) has many advantages, such as connecting lines at different voltage levels, flexibly regulating the power flow in the system, fast system response, and diverse control methods. Therefore, SOP is widely used in distribution networks (<xref ref-type="bibr" rid="B23">Jiang et al., 2022</xref>). Two-port SOP can be considered as a back-to-back voltage source converter (VSC) consisting of a rectifier-side VSC, an inverter-side VSC, and a DC capacitor (<xref ref-type="bibr" rid="B22">Wu et al., 2018</xref>). The mathematical model of SOP is a non-linear system with solid coupling characteristics, including the uncertainty of external disturbances and parameter perturbations, which significantly complicates the controller design (<xref ref-type="bibr" rid="B6">Huo et al., 2021</xref>; <xref ref-type="bibr" rid="B10">Liang et al., 2022</xref>). Some traditional control methods of SOP are widely used in SOP systems, including proportional-integral (PI) control, model predictive control (MPC), and droop control (<xref ref-type="bibr" rid="B2">Cao et al., 2016</xref>; <xref ref-type="bibr" rid="B1">Cai et al., 2018</xref>; <xref ref-type="bibr" rid="B4">Falkowski and Sikorski, 2018</xref>; <xref ref-type="bibr" rid="B8">Li et al., 2020</xref>; <xref ref-type="bibr" rid="B31">Zhang et al., 2021</xref>). However, the traditional PI control has many parameters, bringing parameter design problems. The robustness of PI control and droop control is poor when disturbances are occurred in SOP systems (<xref ref-type="bibr" rid="B9">Li et al., 2019</xref>). In <xref ref-type="fig" rid="F1">Figure 1</xref>, the system structure of the two-port SOP is shown.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Model of two-port SOP.</p>
</caption>
<graphic xlink:href="fenrg-11-1089258-g001.tif"/>
</fig>
<p>Compared with traditional control methods, the MPC method is widely used in the design of power electronic converters due to its simple structure, easy implementation, and sound control effect (<xref ref-type="bibr" rid="B32">Zhang et al., 2017a</xref>). The basic principle of MPC is to use the mathematical model of the controlled object, discretize it to get the predicted value of the next moment, and then optimize the cost function to make the predicted value along the reference trajectory and converge to the desired value. However, the MPC method relies on the mathematical model of the controlled object, which is subject to internal parameter drift and unknown external disturbances during system operation. This will result in a degradation of control performance and a reduction of control accuracy (<xref ref-type="bibr" rid="B26">Young et al., 2016</xref>; <xref ref-type="bibr" rid="B30">Zhang et al., 2019</xref>). In order to make the system more robust and dynamic, the inter-loop and outer-loop of the control system need to be redesigned (<xref ref-type="bibr" rid="B29">Zhang et al., 2017b</xref>; <xref ref-type="bibr" rid="B12">Liu et al., 2018</xref>).</p>
<p>In order to solve the above problems, various improved methods are proposed for the inner-loop. In (<xref ref-type="bibr" rid="B17">Pamshetti et al., 2021</xref>), a single-vector-based model predictive controller is proposed to control the inner-loop, which has the disadvantage of leading to significant current harmonics and power fluctuations. In (<xref ref-type="bibr" rid="B20">Wang et al., 2021a</xref>), an improved MPC method based on three-vector (TV-MPC) is proposed to reduce the current harmonics and power fluctuations effectively, which has better dynamic performance and robustness of the system. In (<xref ref-type="bibr" rid="B11">Liu and Gao, 2020</xref>), an improved model predictive direct control method is proposed to calculate the desired voltage vector through the deadbeat control theory. The virtual voltage vector introduced is used to determine the sector where the desired voltage is located, and then the actual voltage is calculated. The results show that the method can effectively improve the robustness. In (<xref ref-type="bibr" rid="B13">Morsi et al., 2021</xref>), a linear variable parameter MPC method is proposed. A new predictive model and a new cost function are built by designing incremental forms to overcome the steady-state errors caused by model parameter mutations and external disturbances. And the experimental results show that the method has good dynamic stability.</p>
<p>In (<xref ref-type="bibr" rid="B14">Morsi and Cedric, 2021</xref>), in order to reduce the influence of the parameter perturbation of the control model, a model-free control method is proposed, which only considers the input and output of the outer-loop, and any other parameters are not involved. The known and unknown term disturbances are referred to as the total disturbances in the system. Thus, the influence of system parameters and external disturbances on the control performance is avoided, the dependence of the model on parameters is reduced, and the control performance is improved. In (<xref ref-type="bibr" rid="B18">Wang and Li, 2021</xref>), an ultra-local model-free and deadbeat predictive control method are proposed for permanent magnet synchronous motor (PMSM). An ultra-local control model is established using the input and output variables of the outer-loop. The results show that the method can effectively improve the robustness of the model and has a strong anti-interference ability. In (<xref ref-type="bibr" rid="B33">Zhou et al., 2016</xref>), an ultra-local model-free control model is established to solve the problem of total system disturbance term in PMSM. Moreover, the results show that the method reduces the current harmonics and improves the system&#x2019;s dynamic response performance.</p>
<p>In this paper, by introducing the ultra-local model-free control algorithm and TV-MPC theory, an ESO-based ultra-local model-free voltage prediction method and a current TV-MPC method are proposed. Using the input and output of the voltage outer-loop, ESO is established to observe the total disturbance of the system and compensate for the one-beat delay of the control system in real-time. The frequency domain analysis method is also used to adjust the ESO parameters so that the system can deal with external disturbances, which have better robustness and dynamic performance. The contributions of this article are listed as follows.<list list-type="simple">
<list-item>
<p>1) Compared with the traditional single-vector MPC method of the inner-loop, in this article, the TV-MPC method is used in the inner-loop of the SOP system, which improves the current harmonics effectively.</p>
</list-item>
<list-item>
<p>2) Compared with the traditional PI method of the outer-loop, in this article, an ultra-local model-free voltage prediction method is used in the outer-loop, which improves the anti-interference and robustness of the SOP control system.</p>
</list-item>
<list-item>
<p>3) ESO is established to observe the total disturbance and compensate for the delay of the system in real time, which improves the robustness of the SOP system.</p>
</list-item>
</list>
</p>
<p>The organization of this article is as follows: <xref ref-type="sec" rid="s2">Section 2</xref> introduces the model of the two-port SOP system. In <xref ref-type="sec" rid="s3">Section 3</xref>, the sensitivity of the system parameters is analyzed. In <xref ref-type="sec" rid="s4">Section 4</xref>, the ESO-based ultra-local model-free voltage outer-loop prediction controller is designed. In <xref ref-type="sec" rid="s5">Section 5</xref>, the TV-MPC method for SOP systems is proposed. <xref ref-type="sec" rid="s6">Section 6</xref> gives the simulation results. <xref ref-type="sec" rid="s7">Section 7</xref> discusses the future work that needs to be improved and summarizes the conclusions.</p>
</sec>
<sec id="s2">
<title>2 Mathematical models of Soft Open Point</title>
<p>In <xref ref-type="fig" rid="F1">Figure 1</xref>, it can be seen that the two-port SOP has symmetry in structure, so one of the voltage inverters (VSC1) is selected to form the port1, which has the specific structure as shown in <xref ref-type="fig" rid="F2">Figure 2</xref> (<xref ref-type="bibr" rid="B19">Wang et al., 2021b</xref>).</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Model of VSC1.</p>
</caption>
<graphic xlink:href="fenrg-11-1089258-g002.tif"/>
</fig>
<p>Where <italic>C</italic> is the DC-side filter capacitor; <italic>R</italic> is the AC-side equivalent connection resistance; <italic>L</italic> is the AC-side equivalent connection inductor. Assume that the three-phase voltage at each port is balanced, and from the direction of current in <xref ref-type="fig" rid="F1">Figure 1</xref>, the port1 model can be expressed as:<disp-formula id="e1">
<mml:math id="m1">
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>R</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>a</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>b</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>
</p>
<p>Where <italic>S</italic>
<sub>
<italic>m</italic>
</sub> is the modulation switch function of VSC1; <italic>m</italic> represents <italic>abc</italic> three-phases; <italic>u</italic>
<sub>
<italic>dc</italic>
</sub> is the DC-side voltage; <italic>u</italic>
<sub>
<italic>sm</italic>
</sub> is the AC-side voltage; <italic>i</italic>
<sub>
<italic>m</italic>
</sub> is the AC-side current. The other ports in the SOP have the same strongly coupled mathematical model.</p>
<p>Eq. <xref ref-type="disp-formula" rid="e1">1</xref> is transformed by <italic>Park</italic>. The equivalent equation of the <italic>d-</italic> and <italic>q-</italic>axis components are obtained (<xref ref-type="bibr" rid="B7">Hur et al., 2001</xref>):<disp-formula id="e2">
<mml:math id="m2">
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">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:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<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>S</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</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 mathvariant="normal">d</mml:mi>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">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:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<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>S</mml:mi>
<mml:mi>q</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>
</p>
<p>Where <italic>i</italic>
<sub>
<italic>d</italic>
</sub> and <italic>i</italic>
<sub>
<italic>q</italic>
</sub> are the <italic>d-</italic> and <italic>q-</italic>axis currents of VSC1, respectively. <italic>u</italic>
<sub>
<italic>d</italic>
</sub> and <italic>u</italic>
<sub>
<italic>q</italic>
</sub> are the <italic>d-</italic> and <italic>q-</italic>axis grid voltages of VSC1. <italic>&#x3c9;</italic>
<sub>
<italic>1</italic>
</sub> is the phase voltage angular frequency of the AC-side of VSC1. <italic>S</italic>
<sub>
<italic>d</italic>
</sub> and <italic>S</italic>
<sub>
<italic>q</italic>
</sub> are the components of the modulation switch function of VSC1 in the <italic>d-</italic> and <italic>q-</italic>axis. Similarly, VSC2 has the same mathematical model in the synchronous rotating frame.</p>
<p>According to the current direction shown in <xref ref-type="fig" rid="F1">Figure 1</xref>, the DC-side current can be expressed as follows:<disp-formula id="e3">
<mml:math id="m3">
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>C</mml:mi>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munder>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1,2</mml:mn>
</mml:mrow>
</mml:munder>
</mml:mstyle>
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munder>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>a</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:munder>
</mml:mstyle>
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>
</p>
<p>Where <italic>i</italic>
<sub>
<italic>dc,k</italic>
</sub> is the DC-side current of Port <italic>k</italic>; <italic>S</italic>
<sub>
<italic>ik</italic>
</sub> is the modulation switch function of the <italic>abc</italic> three-phases of Port <italic>k</italic>; <italic>i</italic>
<sub>
<italic>ik</italic>
</sub> is the output current of the <italic>abc</italic> three phases of Port <italic>k</italic>. Taking <xref ref-type="disp-formula" rid="e3">Eq. 3</xref> and passing it through the Park transformation, the equivalent equation of the <italic>d</italic>-axis and <italic>q</italic>-axis components is obtained:<disp-formula id="e4">
<mml:math id="m4">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>C</mml:mi>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<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:mrow>
<mml:mstyle displaystyle="true">
<mml:munder>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1,2</mml:mn>
</mml:mrow>
</mml:munder>
</mml:mstyle>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>
</p>
<p>Where <italic>S</italic>
<sub>
<italic>dk</italic>
</sub> and <italic>S</italic>
<sub>
<italic>qk</italic>
</sub> are the modulation switch function of the <italic>d-</italic> and <italic>q-</italic>axis of Port <italic>k</italic>; <italic>i</italic>
<sub>
<italic>dc</italic>
</sub> is the DC-side current; <italic>i</italic>
<sub>
<italic>dk</italic>
</sub> and <italic>i</italic>
<sub>
<italic>qk</italic>
</sub> are the <italic>d-</italic> and <italic>q-</italic>axis currents of the Port <italic>k</italic>; <italic>u</italic>
<sub>
<italic>dk</italic>
</sub> and <italic>u</italic>
<sub>
<italic>qk</italic>
</sub> are the <italic>d-</italic> and <italic>q-</italic>axis voltages of the Port <italic>k</italic>, respectively.</p>
<p>According to the instantaneous reactive power theory, the active power and reactive power output from each port can be expressed on the <italic>d-</italic> and <italic>q-</italic>axis as follows (<xref ref-type="bibr" rid="B28">Zhang et al., 2018</xref>):<disp-formula id="e5">
<mml:math id="m5">
<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>P</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<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:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mi>k</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:msub>
<mml:mi>Q</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<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:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1,2</mml:mn>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>
</p>
<p>The system three-phase voltage is balanced. If the direction of the <italic>d-</italic>axis coincides with the direction of the AC system voltage vector <italic>u</italic>
<sub>
<italic>s</italic>
</sub>, the state of the <italic>d-</italic> and <italic>q-</italic>axis currents of AC-side <italic>i</italic>
<sub>
<italic>dk</italic>
</sub> and <italic>i</italic>
<sub>
<italic>qk</italic>
</sub> can be written as:<disp-formula id="e6">
<mml:math id="m6">
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>C</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>
</p>
<p>Substituting (6) into (5), the active and reactive power of the Port <italic>k</italic> can be written as:<disp-formula id="e7">
<mml:math id="m7">
<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>P</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<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:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2003;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>Q</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</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:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2003;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1,2</mml:mn>
<mml:mtext>&#xa0;</mml:mtext>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>
</p>
<p>From <xref ref-type="disp-formula" rid="e7">(7)</xref>, it can be seen that the active and reactive power on the AC-side of each port is proportional to the amount of current in the <italic>d</italic>- and <italic>q</italic>-axis, respectively. Moreover, the decoupling control of independence of active and reactive power can be realized by controlling the amount of current in the <italic>d</italic>- and <italic>q</italic>-axis (<xref ref-type="bibr" rid="B27">Zhang et al., 2020</xref>). After the coordinate transformation, the established system model is simplified, and the controller design of the system is convenient.</p>
<p>According to different distribution network operating requirements, the SOP can operate in three different operating modes: U<sub>dc</sub>Q mode, PQ mode and V/f mode. Among them, one port must work in U<sub>dc</sub>Q mode when the system is in regular operation to maintain voltage stability on the DC-side. PQ mode is most used in the working operation state, which can regulate the active and reactive power of the system individually. The V/f mode operates where a port needs to be switched to a fixed AC-voltage mode to supply power to the fault area load. In this paper, port1 uses U<sub>dc</sub>Q mode, and port2 uses PQ mode (<xref ref-type="bibr" rid="B21">Wang et al., 2022</xref>).</p>
</sec>
<sec id="s3">
<title>3 Parameter sensitivity analysis</title>
<p>From <xref ref-type="disp-formula" rid="e4">(4)</xref>, it is clear that:<disp-formula id="e8">
<mml:math id="m8">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>C</mml:mi>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<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:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>
</p>
<p>According to <xref ref-type="disp-formula" rid="e8">Eq. 8</xref>, the voltage equation can be written as follows:<disp-formula id="e9">
<mml:math id="m9">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mn>3</mml:mn>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>C</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>
</p>
<p>By discretizing <xref ref-type="disp-formula" rid="e2">Eq. 2</xref> and <xref ref-type="disp-formula" rid="e9">Eq. 9</xref>, the equation can be written as follows:<disp-formula id="e10">
<mml:math id="m10">
<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:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</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>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<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:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>C</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</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>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<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>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<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:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<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:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi>d</mml:mi>
<mml:mi>N</mml:mi>
</mml:mrow>
</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:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</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>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<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>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<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:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<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:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>d</mml:mi>
<mml:mi>N</mml:mi>
</mml:mrow>
</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:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(10)</label>
</disp-formula>
</p>
<p>Where <italic>k&#x2b;1</italic> means the value of the variable at the next moment and <italic>k</italic> means the value of the variable at the current moment; <italic>T</italic>
<sub>
<italic>s</italic>
</sub> is the sampling time; <italic>u</italic>
<sub>
<italic>1dN</italic>
</sub> and <italic>u</italic>
<sub>
<italic>2dN</italic>
</sub> are the <italic>d-</italic>axis voltages of VSC1 and VSC2, respectively; <italic>&#x3c9;</italic>
<sub>
<italic>1</italic>
</sub> and <italic>&#x3c9;</italic>
<sub>
<italic>2</italic>
</sub> are the phase voltage angular frequency of the AC-side of VSC1 and VSC2. Conventional controllers need to consider <italic>L</italic>, <italic>C</italic> and other parameters, and the control accuracy is more dependent on the accuracy of the control parameters. To analyze the impact of parameter ingestion on the controller, assuming that <italic>R</italic>
<sub>
<italic>0</italic>
</sub>, <italic>L</italic>
<sub>
<italic>0</italic>
</sub> and <italic>C</italic>
<sub>
<italic>0</italic>
</sub> are the actual resistor, inductor and capacitor, then <xref ref-type="disp-formula" rid="e10">Eq. 10</xref> can be rewritten as follows:<disp-formula id="e11">
<mml:math id="m11">
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</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>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<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:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mover accent="true">
<mml:mi>i</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mover accent="true">
<mml:mi>i</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>i</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</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>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mn>10</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>10</mml:mn>
</mml:msub>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<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>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<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:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>10</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<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:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi>N</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</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:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>i</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</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>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mn>20</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>20</mml:mn>
</mml:msub>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<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>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<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:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>20</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<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:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>N</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</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:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(11)</label>
</disp-formula>
</p>
<p>In <xref ref-type="disp-formula" rid="e11">(11)</xref>, <inline-formula id="inf1">
<mml:math id="m12">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>i</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf2">
<mml:math id="m13">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>i</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf3">
<mml:math id="m14">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the estimated value of the variables of <italic>i</italic>
<sub>
<italic>d1</italic>
</sub>, <italic>i</italic>
<sub>
<italic>d2</italic>
</sub> and <italic>u</italic>
<sub>
<italic>dc</italic>
</sub> at the time of parametric perturbation, and the voltage error can be written as follows:<disp-formula id="e12">
<mml:math id="m15">
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x394;</mml:mo>
<mml:mi mathvariant="normal">&#x3a8;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</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>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</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>&#x3d;</mml:mo>
<mml:mo>&#x394;</mml:mo>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a8;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mo>&#x394;</mml:mo>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a8;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x394;</mml:mo>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a8;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfrac>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mn>10</mml:mn>
</mml:msub>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>10</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>10</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<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:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi>N</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</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:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x394;</mml:mo>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a8;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfrac>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mn>20</mml:mn>
</mml:msub>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>20</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mn>20</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<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:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>N</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</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:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(12)</label>
</disp-formula>
</p>
<p>Where <inline-formula id="inf4">
<mml:math id="m16">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a8;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf5">
<mml:math id="m17">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a8;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the voltage errors generated by VSC1 and VSC2. From <xref ref-type="disp-formula" rid="e12">(12)</xref>, it can be seen that the <italic>L</italic> and the DC-side <italic>C</italic> significantly impact the prediction error in the system. In order to reduce the dependence on the system model and improve the robustness of the system, this article proposes an ultra-local model-free predictive control method based on the ESO.</p>
</sec>
<sec id="s4">
<title>4 Design of expansion state observer -based ultra-local model-free voltage prediction control</title>
<sec id="s4-1">
<title>4.1 Traditional voltage loop control strategy</title>
<p>Traditional PI voltage control is based on error elimination control, which can lead to excessive overshoot and oscillation of the system if the initial value is too large. Moreover, the traditional control method has an inevitable delay for system model parameter perturbations and disturbances.</p>
<p>This article proposes an ultra-local model-free predictive control method based on the ESO, which uses only the inputs and outputs of the system without considering any parameters, and views known and unknown perturbations as total perturbations. The external perturbations observed by the ESO are also used to implement feedback compensation to reduce model dependence on parameters and improve system robustness.</p>
</sec>
<sec id="s4-2">
<title>4.2 Ultra-local model</title>
<p>For the input and output of the system, the traditional ultra-local model can be written as follows (<xref ref-type="bibr" rid="B14">Morsi and Cedric, 2021</xref>):<disp-formula id="e13">
<mml:math id="m18">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>u</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>F</mml:mi>
</mml:mrow>
</mml:math>
<label>(13)</label>
</disp-formula>
</p>
<p>Where <italic>y</italic> is the output of the system; <italic>u</italic> is the input of the system; <italic>F</italic> is regarded as the total disturbance of the system; <italic>&#x3b1;</italic> is the model self-attribute parameter. The controller can be designed as follows:<disp-formula id="e14">
<mml:math id="m19">
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mi>exp</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b6;</mml:mi>
</mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>e</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b6;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(14)</label>
</disp-formula>
</p>
<p>Where <italic>y</italic>
<sub>exp</sub> is the expected output of the system; <inline-formula id="inf6">
<mml:math id="m20">
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>exp</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, that <italic>e</italic> is the tracking error; <inline-formula id="inf7">
<mml:math id="m21">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> is an estimate of the total disturbance; and &#x3b6; is the designed controller output.</p>
</sec>
<sec id="s4-3">
<title>4.3 Design of ultra-local model-free outer-loop prediction controller</title>
<p>Taking <italic>i</italic>
<sub>
<italic>d1</italic>
</sub> in <xref ref-type="disp-formula" rid="e9">(9)</xref> as the output of the outer-loop system and <italic>u</italic>
<sub>
<italic>dc</italic>
</sub> as the input of the outer-loop system, the ultra-local model-free control structure is established as follows:<disp-formula id="e15">
<mml:math id="m22">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>k</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>F</mml:mi>
</mml:mrow>
</mml:math>
<label>(15)</label>
</disp-formula>
</p>
<p>Where <italic>k</italic>
<sub>
<italic>1</italic>
</sub> is the controller gain. Using the forward <italic>Eulerian</italic> discretization method, <xref ref-type="disp-formula" rid="e15">Eq. 15</xref> is discretized to transform the continuous time model into the discrete time model. And the ultra-local model-free control structure can be rewritten as:<disp-formula id="e16">
<mml:math id="m23">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</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>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<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>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>k</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<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:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<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>
<label>(16)</label>
</disp-formula>
</p>
<p>The output of the controller can be written as follows:<disp-formula id="e17">
<mml:math id="m24">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<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:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</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>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<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:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>k</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(17)</label>
</disp-formula>
</p>
<p>To have better tracking of the rated voltage, let <italic>u</italic>
<sub>
<italic>dc</italic>
</sub> (k &#x2b; 1) &#x3d; <italic>u</italic>
<sub>
<italic>dcref</italic>
</sub>, thus <xref ref-type="disp-formula" rid="e17">Eq. 17</xref> can be rewritten as:<disp-formula id="e18">
<mml:math id="m25">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<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:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
<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:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<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:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>k</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(18)</label>
</disp-formula>
</p>
<p>In order to improve the system control performance and solve the system time delay problem, the ESO is designed to compensate for the time delay effect.</p>
</sec>
<sec id="s4-4">
<title>4.4 Design of expansion state observer</title>
<p>According to <xref ref-type="disp-formula" rid="e15">Eq. 15</xref>, the outer-loop input <italic>i</italic>
<sub>
<italic>d1</italic>
</sub> and the system total disturbance <italic>F</italic> are chosen as state variables to design the ESO, and the state space equation is obtained as follows (<xref ref-type="bibr" rid="B3">Chi et al., 2020</xref>; <xref ref-type="bibr" rid="B25">Yang et al., 2020</xref>):<disp-formula id="e19">
<mml:math id="m26">
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>z</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>k</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>z</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(19)</label>
</disp-formula>
</p>
<p>Where <italic>&#x3b1;</italic>
<sub>
<italic>1</italic>
</sub> and <italic>&#x3b1;</italic>
<sub>
<italic>2</italic>
</sub> are the observer gain coefficients; <inline-formula id="inf8">
<mml:math id="m27">
<mml:mrow>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, that <italic>z</italic>
<sub>
<italic>1</italic>
</sub> is the estimated value of <italic>u</italic>
<sub>
<italic>dc</italic>
</sub>; <inline-formula id="inf9">
<mml:math id="m28">
<mml:mrow>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, that <italic>z</italic>
<sub>
<italic>2</italic>
</sub> is the estimated value of <italic>F.</italic> <xref ref-type="fig" rid="F3">Figure 3</xref> shows the block diagram of the variables state.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Block diagram of the variables state.</p>
</caption>
<graphic xlink:href="fenrg-11-1089258-g003.tif"/>
</fig>
<p>Taking <xref ref-type="disp-formula" rid="e19">Eq. 19</xref> into <italic>Laplace</italic> transform, the transfer function of the system can be obtained:<disp-formula id="e20">
<mml:math id="m29">
<mml:mrow>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>k</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mi>s</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(20)</label>
</disp-formula>
</p>
<p>From <xref ref-type="disp-formula" rid="e20">(20)</xref>, the characteristic equation can be obtained:<disp-formula id="e21">
<mml:math id="m30">
<mml:mrow>
<mml:msup>
<mml:mi>s</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
<label>(21)</label>
</disp-formula>
</p>
<p>In <xref ref-type="disp-formula" rid="e21">(21)</xref>, it can be derived that the eigenvalue is <italic>-&#x3c9;</italic>
<sub>
<italic>0</italic>
</sub>, where <italic>&#x3c9;</italic>
<sub>
<italic>0</italic>
</sub> is the bandwidth of the ESO, so the gain coefficients <italic>&#x3b1;</italic>
<sub>
<italic>1</italic>
</sub> and <italic>&#x3b1;</italic>
<sub>
<italic>2</italic>
</sub> of the observer are <italic>2&#x3c9;</italic>
<sub>
<italic>0</italic>
</sub> and <italic>&#x3c9;</italic>
<sub>
<italic>0</italic>
</sub>
<sup>
<italic>2</italic>
</sup>.</p>
<p>Using the forward <italic>Eulerian</italic> discretization method, <xref ref-type="disp-formula" rid="e19">Eq. 19</xref> is discretized to transform the continuous time model into the discrete time model. The discrete state space equation can be written as:<disp-formula id="e22">
<mml:math id="m31">
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</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>&#x3d;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<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>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<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>k</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<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:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>e</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:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<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:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<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:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi>e</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>e</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:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<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:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</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:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(22)</label>
</disp-formula>
</p>
</sec>
<sec id="s4-5">
<title>4.5 Stability analysis</title>
<p>To ensure the stability of the state of the discretized system, the characteristic roots of the characteristic equation must lie within the unit circle according to the <italic>Joly</italic> stability criterion.</p>
<p>By performing a <italic>Z</italic>-transformation, <xref ref-type="disp-formula" rid="e22">Eq. 22</xref> can be rewritten as:<disp-formula id="e23">
<mml:math id="m32">
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:msub>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>k</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>z</mml:mi>
</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>z</mml:mi>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(23)</label>
</disp-formula>
</p>
<p>Considering that the sampling time <italic>T</italic>
<sub>
<italic>s</italic>
</sub> is sufficiently short, the transfer function of the discrete system can be written as:<disp-formula id="e24">
<mml:math id="m33">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mi>z</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mi>z</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(24)</label>
</disp-formula>
</p>
<p>Where <inline-formula id="inf10">
<mml:math id="m34">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>; <inline-formula id="inf11">
<mml:math id="m35">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. In <xref ref-type="disp-formula" rid="e24">(24)</xref>, the characteristic equation of the system is given by:<disp-formula id="e25">
<mml:math id="m36">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mi>z</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
<label>(25)</label>
</disp-formula>
</p>
<p>Bringing <inline-formula id="inf12">
<mml:math id="m37">
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> into <xref ref-type="disp-formula" rid="e25">Eq. 25</xref>, the characteristic equation in the <italic>&#x3bb;</italic>-domain can be written as:<disp-formula id="e26">
<mml:math id="m38">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:msup>
<mml:mi>&#x3bb;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
<label>(26)</label>
</disp-formula>
</p>
<p>According to the <italic>Routh&#x2013;Hurwitz</italic> stability criterion (<xref ref-type="bibr" rid="B24">Xu et al., 2020</xref>), the discrete system is stable when the following conditions are satisfied:<disp-formula id="e27">
<mml:math id="m39">
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x3c;</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x3c;</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x3e;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(27)</label>
</disp-formula>
</p>
<p>When <inline-formula id="inf13">
<mml:math id="m40">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf14">
<mml:math id="m41">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> are satisfied in the equation above, the discrete system is stable. The proof is completed.</p>
<p>To solve the time delay problem in the system, the deadbeat principle is used. Replacing <italic>u</italic>
<sub>
<italic>dc</italic>
</sub>(<italic>k</italic>) and <inline-formula id="inf15">
<mml:math id="m42">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<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> in <xref ref-type="disp-formula" rid="e18">(18)</xref> with <inline-formula id="inf16">
<mml:math id="m43">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</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:math>
</inline-formula> and <inline-formula id="inf17">
<mml:math id="m44">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<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> in <xref ref-type="disp-formula" rid="e22">(22)</xref>, the <italic>d-</italic>axis reference currents is obtained as follows:<disp-formula id="e28">
<mml:math id="m45">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<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:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
<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:msub>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</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>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<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:msub>
<mml:mi>k</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(28)</label>
</disp-formula>
</p>
<p>The current reference value is obtained by predicting the voltage value through ESO. The observed disturbances are compensated by feedback to improve the robustness of the system. Thus, the ESO-based ultra-local model-free predictive control (ULMFPC) voltage outer-loop is designed as follows:<disp-formula id="e29">
<mml:math id="m46">
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</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>&#x3d;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<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>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<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>k</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<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:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>e</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:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<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:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<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:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi>e</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>e</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:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<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:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</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:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<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:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
<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:msub>
<mml:mover accent="true">
<mml:mi>u</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</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>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<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:msub>
<mml:mi>k</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(29)</label>
</disp-formula>
</p>
<p>
<xref ref-type="fig" rid="F4">Figure 4</xref> shows the block diagram of outer-loop ESO-based ULMFPC.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Block diagram of outer-loop ESO-based ULMFPC.</p>
</caption>
<graphic xlink:href="fenrg-11-1089258-g004.tif"/>
</fig>
</sec>
</sec>
<sec id="s5">
<title>5 Inner-loop TV- model predictive control current control for Soft Open Point</title>
<sec id="s5-1">
<title>5.1 Traditional model predictive control method</title>
<p>Different from the current inner-loop PI control, the conventional MPC replaces the two current inner-loops of vector control with a model predictive controller, which eliminates the complex PI rectification (<xref ref-type="bibr" rid="B9">Li et al., 2019</xref>).</p>
<p>In a two-port SOP system, eight VSC voltage vectors can be selected. Six of them are non-zero vectors (<italic>V</italic>
<sub>
<italic>1</italic>
</sub>
<italic>, V</italic>
<sub>
<italic>2</italic>
</sub>
<italic>, V</italic>
<sub>
<italic>3</italic>
</sub>
<italic>, V</italic>
<sub>
<italic>4</italic>
</sub>
<italic>, V</italic>
<sub>
<italic>5</italic>
</sub>
<italic>, V</italic>
<sub>
<italic>6</italic>
</sub>) and two of them are zero vectors (<italic>V</italic>
<sub>
<italic>0</italic>
</sub>
<italic>, V</italic>
<sub>
<italic>7</italic>
</sub>). The eight vectors are shown in <xref ref-type="fig" rid="F5">Figure 5</xref>.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Voltage vector of VSC.</p>
</caption>
<graphic xlink:href="fenrg-11-1089258-g005.tif"/>
</fig>
<p>The current value at the moment<italic>k</italic> is used as the basis to construct the current value at the moment <italic>k&#x2b;1</italic>. The current reference value and the predicted current obtained from the prediction calculation are constituted into a cost function, and the eight voltage vectors mentioned above are brought into the cost function in turn by using a finite control set. Then the minimum value is obtained, and the switch sequence corresponding to the minimum value is applied to VSC. At the next sampling period, the above processes are repeated to achieve the prediction effect.</p>
<p>By discretizing <xref ref-type="disp-formula" rid="e2">Eq. 2</xref> (<xref ref-type="bibr" rid="B15">Rodriguez et al., 2007</xref>), the discrete model of VSC1 can be obtained as:<disp-formula id="e30">
<mml:math id="m47">
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<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 mathvariant="normal">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:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mi>L</mml:mi>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</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 mathvariant="normal">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>u</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>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>L</mml:mi>
<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:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</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:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<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 mathvariant="normal">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:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mi>L</mml:mi>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</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 mathvariant="normal">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>u</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:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>L</mml:mi>
<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>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>q</mml:mi>
</mml:mrow>
</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:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(30)</label>
</disp-formula>
</p>
<p>The predictive model in discrete state space is the core of MPC. The cost function of conventional model predictive current control can be designed as:<disp-formula id="e31">
<mml:math id="m48">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<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:msub>
<mml:mi>i</mml:mi>
<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:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>q</mml:mi>
<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: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:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(31)</label>
</disp-formula>
</p>
<p>Where <italic>i</italic>
<sub>
<italic>dref</italic>
</sub> and <italic>i</italic>
<sub>
<italic>qref</italic>
</sub> are the <italic>d-</italic> and <italic>q-</italic>axis current reference value of VSC.</p>
<p>Despite the many advantages of the traditional MPC method, the traditional MPC with fixed voltage vector direction, fixed amplitude, and the number of optimization searches is less, which easily causes the control current jitter. This article deals with this problem by increasing the vector to reduce the current jitter.</p>
</sec>
<sec id="s5-2">
<title>5.2 Three-vector model predictive current control</title>
<p>Compared with the traditional MPC, the TV-MPC has further improved factors such as the number of times to find the best switch sequence. The TV-MPC algorithm combines a zero vector and two non-zero vectors. The method uses the following <xref ref-type="table" rid="T1">Table 1</xref> to determine the sector and apply the vector combination to the next prediction.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Voltage vector combination selection.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Angle partition</th>
<th align="center">Sector</th>
<th align="center">Voltage vector combination</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">
<italic>&#x3b8;</italic>
<sub>
<italic>ref</italic>
</sub>&#x2208;[ 0&#xb0;, 60&#xb0;)</td>
<td align="center">I</td>
<td align="center">V<sub>1</sub>, V<sub>2</sub>, V<sub>0</sub>
</td>
</tr>
<tr>
<td align="center">
<italic>&#x3b8;</italic>
<sub>
<italic>ref</italic>
</sub>&#x2208;[ 60&#xb0;, 120&#xb0;)</td>
<td align="center">II</td>
<td align="center">V<sub>2</sub>, V<sub>3</sub>, V<sub>7</sub>
</td>
</tr>
<tr>
<td align="center">
<italic>&#x3b8;</italic>
<sub>
<italic>ref</italic>
</sub>&#x2208;[ 120&#xb0;, 180&#xb0;)</td>
<td align="center">III</td>
<td align="center">V<sub>3</sub>, V<sub>4</sub>, V<sub>0</sub>
</td>
</tr>
<tr>
<td align="center">
<italic>&#x3b8;</italic>
<sub>
<italic>ref</italic>
</sub>&#x2208;[ 180&#xb0;, 240&#xb0;)</td>
<td align="center">IV</td>
<td align="center">V<sub>4</sub>, V<sub>5</sub>, V<sub>7</sub>
</td>
</tr>
<tr>
<td align="center">
<italic>&#x3b8;</italic>
<sub>
<italic>ref</italic>
</sub>&#x2208;[ 240&#xb0;, 300&#xb0;)</td>
<td align="center">V</td>
<td align="center">V<sub>5</sub>, V<sub>6</sub>, V<sub>0</sub>
</td>
</tr>
<tr>
<td align="center">
<italic>&#x3b8;</italic>
<sub>
<italic>ref</italic>
</sub>&#x2208;[ 300&#xb0;, 360&#xb0;)</td>
<td align="center">VI</td>
<td align="center">V<sub>6</sub>, V<sub>1</sub>, V<sub>7</sub>
</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>According to the deadbeat control theory, the predicted current at the moment <italic>k&#x2b;1</italic> is assumed to be as follows:<disp-formula id="e32">
<mml:math id="m49">
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<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:msub>
<mml:mi>i</mml:mi>
<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:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>q</mml:mi>
<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: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:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(32)</label>
</disp-formula>
</p>
<p>Substituting <xref ref-type="disp-formula" rid="e32">Eq. 32</xref> into <xref ref-type="disp-formula" rid="e30">Eq. 30</xref>), the reference voltages of VSC <italic>u</italic>
<sub>
<italic>Ndref</italic>
</sub> and <italic>u</italic>
<sub>
<italic>Nqref</italic>
</sub> can be written as:<disp-formula id="e33">
<mml:math id="m50">
<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:mrow>
<mml:mi>N</mml:mi>
<mml:mi>d</mml:mi>
<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:mfrac>
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<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>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<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:mo>&#x2212;</mml:mo>
<mml:mi>R</mml:mi>
<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>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>L</mml:mi>
<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:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>u</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:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>q</mml:mi>
<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:mfrac>
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<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>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>q</mml:mi>
<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:mo>&#x2212;</mml:mo>
<mml:mi>R</mml:mi>
<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:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>L</mml:mi>
<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>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>u</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:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(33)</label>
</disp-formula>
</p>
<sec id="s5-2-1">
<title>5.2.1 Sector selection</title>
<p>The <italic>u</italic>
<sub>
<italic>Ndref</italic>
</sub> and <italic>u</italic>
<sub>
<italic>Nqref</italic>
</sub> are <italic>dq0-&#x3b1;&#x3b2;</italic> transformed to obtain the reference voltages of <italic>u</italic>
<sub>
<italic>N&#x3b1;ref</italic>
</sub>, <italic>u</italic>
<sub>
<italic>N&#x3b2;ref</italic>
</sub> in <italic>&#x3b1;&#x3b2;</italic> coordinates. The phase angle <italic>&#x3b8;</italic>
<sub>
<italic>ref</italic>
</sub> of the reference voltage can be calculated as follows:<disp-formula id="e34">
<mml:math id="m51">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b8;</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:mi>arctan</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>&#x3b2;</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(34)</label>
</disp-formula>
</p>
<p>According to the phase angle shown in <xref ref-type="table" rid="T1">Table 1</xref>, the sector and vector are selected. By judging the sector, a zero vector (<italic>u</italic>
<sub>
<italic>0opt</italic>
</sub>) and two non-zero vectors (<italic>u</italic>
<sub>
<italic>1opt</italic>
</sub>, <italic>u</italic>
<sub>
<italic>2opt</italic>
</sub>) are determined.</p>
<p>As shown in <xref ref-type="fig" rid="F6">Figure 6</xref>, if the <italic>&#x3b8;</italic>
<sub>
<italic>ref</italic>
</sub> of the derived reference voltage vector <italic>V</italic>
<sub>
<italic>ref</italic>
</sub> falls in the first sector, the corresponding switching state (100) is the optimal switching state. When selecting the voltage zero vector as the optimal voltage vector, both switching states (000) and (111) can generate the voltage zero vector. However, one of the switching states in (000) and (111) should be selected based on the principle of the minimum switching frequency. If the previous switching state was (100), the current switching state should be selected as (000). If the previous switching state was (110), the current switching state should be selected as (111) (<xref ref-type="bibr" rid="B19">Wang et al., 2021b</xref>).</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Voltage vector selection in the steady-state &#x3b1;&#x3b2; coordinate system.</p>
</caption>
<graphic xlink:href="fenrg-11-1089258-g006.tif"/>
</fig>
</sec>
<sec id="s5-2-2">
<title>5.2.2 Action time calculation</title>
<p>For the determined optimal vector combinations <italic>u</italic>
<sub>
<italic>0opt</italic>
</sub>, <italic>u</italic>
<sub>
<italic>1opt</italic>
</sub> and <italic>u</italic>
<sub>
<italic>2opt</italic>
</sub>, the action time of each vector in the sampling period <italic>T</italic>
<sub>
<italic>s</italic>
</sub> needs to be calculated. According to the modulation MPC principle, the action time of the vector is inversely proportional to the cost function. The cost function uses <xref ref-type="disp-formula" rid="e31">Eq. 31</xref>. The time of voltage vectors <italic>T</italic>
<sub>
<italic>0</italic>
</sub>, <italic>T</italic>
<sub>
<italic>1</italic>
</sub> and <italic>T</italic>
<sub>
<italic>2</italic>
</sub> can be calculated as:<disp-formula id="e35">
<mml:math id="m52">
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(35)</label>
</disp-formula>
</p>
<p>Where <italic>f</italic>
<sub>
<italic>0</italic>
</sub>, <italic>f</italic>
<sub>
<italic>1</italic>
</sub>, and <italic>f</italic>
<sub>
<italic>2</italic>
</sub> are the corresponding cost function <xref ref-type="disp-formula" rid="e31">Eq. 31</xref> values of <italic>u</italic>
<sub>
<italic>0opt</italic>
</sub>, <italic>u</italic>
<sub>
<italic>1opt</italic>
</sub>, and <italic>u</italic>
<sub>
<italic>2opt</italic>
</sub> (<xref ref-type="bibr" rid="B21">Wang et al., 2022</xref>). The two ports of the SOP have similar action times, and the voltage combination and action times are output to both sides of the SOP for the control of the whole system. <xref ref-type="fig" rid="F7">Figure 7</xref> is the block diagram of the ULMFPC with ESO and TV-MPC for SOP.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Block diagram of the proposed control scheme of SOP.</p>
</caption>
<graphic xlink:href="fenrg-11-1089258-g007.tif"/>
</fig>
</sec>
</sec>
</sec>
<sec id="s6">
<title>6 Simulations</title>
<p>In this paper, a control strategy ESO-based ULMFPC and TV-MPC are proposed for the parameter perturbation and current fluctuation of the two-port SOP. The proposed control strategy is simulated and verified based on MATLAB/Simulink. Traditional PI and MPC control strategies are compared with the proposed method to verify the effectiveness of the proposed control strategy. The system parameters of SOP are listed in <xref ref-type="table" rid="T2">Table 2</xref>, and the controllers design parameters are listed in <xref ref-type="table" rid="T3">Table 3</xref>, respectively.</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Parameters of SOP.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Symbol</th>
<th align="center">Name</th>
<th align="center">Value</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">
<italic>u</italic>
<sub>
<italic>dc</italic>
</sub>
</td>
<td align="center">DC-side voltage</td>
<td align="center">650&#xa0;V</td>
</tr>
<tr>
<td align="center">
<italic>C</italic>
</td>
<td align="center">DC-side capacitance</td>
<td align="center">5,000&#xa0;&#x3bc;F</td>
</tr>
<tr>
<td align="center">
<italic>u</italic>
<sub>
<italic>1</italic>
</sub>
</td>
<td align="center">VSC1 grid voltage</td>
<td align="center">220&#xa0;V</td>
</tr>
<tr>
<td align="center">
<italic>u</italic>
<sub>
<italic>2</italic>
</sub>
</td>
<td align="center">VSC2 grid voltage</td>
<td align="center">220&#xa0;V</td>
</tr>
<tr>
<td align="center">
<italic>f</italic>
<sub>
<italic>1,2</italic>
</sub>
</td>
<td align="center">Voltage frequency</td>
<td align="center">50&#xa0;Hz</td>
</tr>
<tr>
<td align="center">
<italic>R</italic>
<sub>
<italic>1</italic>
</sub>
</td>
<td align="center">VSC1 resistance</td>
<td align="center">0.03&#xa0;&#x3a9;</td>
</tr>
<tr>
<td align="center">
<italic>R</italic>
<sub>
<italic>2</italic>
</sub>
</td>
<td align="center">VSC2 resistance</td>
<td align="center">0.03&#xa0;&#x3a9;</td>
</tr>
<tr>
<td align="center">
<italic>L</italic>
<sub>
<italic>1</italic>
</sub>
</td>
<td align="center">VSC1 inductance</td>
<td align="center">0.003&#xa0;H</td>
</tr>
<tr>
<td align="center">
<italic>L</italic>
<sub>
<italic>2</italic>
</sub>
</td>
<td align="center">VSC2 inductance</td>
<td align="center">0.003&#xa0;H</td>
</tr>
<tr>
<td align="center">
<italic>T</italic>
<sub>
<italic>s</italic>
</sub>
</td>
<td align="center">Sampling time</td>
<td align="center">10<sup>&#x2212;6</sup>&#xa0;s</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Controller parameters.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Outer-loop &#x26; inner-loop method</th>
<th align="center">Outer-loop controller parameters</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">PI &#x26; MPC</td>
<td align="center">
<italic>k</italic>
<sub>
<italic>p</italic>
</sub> &#x3d; 0.8; <italic>k</italic>
<sub>
<italic>i</italic>
</sub> &#x3d; 1.25</td>
</tr>
<tr>
<td align="center">PI &#x26; TV-MPC</td>
<td align="center">
<italic>k</italic>
<sub>
<italic>p</italic>
</sub> &#x3d; 0.8; <italic>k</italic>
<sub>
<italic>i</italic>
</sub> &#x3d; 1.25</td>
</tr>
<tr>
<td align="center">ULMFPC with ESO &#x26; TV-MPC</td>
<td align="center">
<italic>k</italic>
<sub>
<italic>1</italic>
</sub> &#x3d; 4,500; <italic>&#x3c9;</italic>
<sub>
<italic>0</italic>
</sub> &#x3d; 150; <italic>&#x3b1;</italic>
<sub>
<italic>1</italic>
</sub> &#x3d; 150; <italic>&#x3b1;</italic>
<sub>
<italic>2</italic>
</sub> &#x3d; 22,500</td>
</tr>
</tbody>
</table>
</table-wrap>
<sec id="s6-1">
<title>6.1 Performance of steady-state</title>
<sec id="s6-1-1">
<title>6.1.1 Current performance of steady-state</title>
<p>The proposed current of the VSC2 side is set as 100 A in simulations. Steady-state currents of PI and MPC, PI and TV-MPC are shown in <xref ref-type="fig" rid="F8">Figures 8A,B</xref>.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>
<bold>(A)</bold> Current waveform and THD of PI &#x26; MPC. <bold>(B)</bold> Current waveform and THD of PI &#x26; TV-MPC.</p>
</caption>
<graphic xlink:href="fenrg-11-1089258-g008.tif"/>
</fig>
<p>It can be seen that the total harmonic distortion (THD) of the A-phase current under PI and MPC control for the VSC1 side and VSC2 side are 0.54% and 0.53%. The THD of the A-phase current under PI and TV-MPC control are 0.28% and 0.09%, respectively. From the experimental results, it can be seen that the proposed TV-MPC method can effectively reduce the total harmonics of the system, but it is less effective in suppressing the 5th order harmonic. Compared with single-vector MPC, TV-MPC have better steady-state current performance.</p>
<p>
<xref ref-type="fig" rid="F9">Figures 9A,B</xref> show the <italic>d-</italic>axis current response on the rectifier VSC1 side. The TV-MPC control strategy is used for the current inner-loop, and the voltage outer-loop is compared with the PI control strategy and the improved ULMFPC control strategy. With no disturbance in the system, <italic>i</italic>
<sub>
<italic>d1</italic>
</sub> can track the reference current correctly. It is clearly seen that the output of outer-loop PI controller contains large jitter. But the output <italic>i</italic>
<sub>
<italic>d1</italic>
</sub> of the improved ULMFPC controller is smooth, and the tracking time of the specified <italic>i</italic>
<sub>
<italic>d1ref</italic>
</sub> is much less than that of PI controller, which has better start-up performance.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>
<bold>(A) </bold>Tracking performance of <italic>i</italic>
<sub>
<italic>d1</italic>
</sub> of outer-loop PI method. <bold>(B)</bold> Tracking performance of <italic>i</italic>
<sub>
<italic>d1</italic>
</sub> of outer-loop ULMFPC method.</p>
</caption>
<graphic xlink:href="fenrg-11-1089258-g009.tif"/>
</fig>
</sec>
<sec id="s6-1-2">
<title>6.1.2 Load power performance of steady-state</title>
<p>
<xref ref-type="fig" rid="F10">Figures 10A,B</xref> show the active and reactive power of the load grid under the traditional control strategy and improved control strategy. With no disturbance in the system, two control methods stabilize the load active and reactive power at the specified values. However, the active and reactive power jitter under the ULMFPC with ESO and TV-MPC control are smaller than that of the conventional PI and MPC controllers. And the improved composite control strategy reduces the amplitude of power jitter and improves the response speed effectively.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>
<bold>(A)</bold> Active response under the PI &#x26; MPC, and ULMFPC with ESO &#x26; TV-MPC. <bold>(B)</bold> Reactive response under the PI &#x26; MPC, and ULMFPC with ESO &#x26; TV-MPC.</p>
</caption>
<graphic xlink:href="fenrg-11-1089258-g010.tif"/>
</fig>
</sec>
<sec id="s6-1-3">
<title>6.1.3 DC voltage performance</title>
<p>Regulating the proposed DC-side voltage <italic>u</italic>
<sub>
<italic>dcref</italic>
</sub> at 650&#xa0;V, in order to verify the effectiveness of ULMFPC with ESO and TV-MPC in start-up response and dynamic performance, the reference current on the VSC2 side is changed from 100 A to 50 A at 0.25&#xa0;s. As shown in <xref ref-type="fig" rid="F11">Figure 11</xref>, the time used to track the proposed DC voltage under PI and TV-MPC, ULMFPC with ESO and TV-MPC are 0.057 and 0.029&#xa0;s. From the experimental results, it is observed that ULMFPC with ESO track the proposed DC voltage faster than PI controller, which have better start-up response performance.</p>
<fig id="F11" position="float">
<label>FIGURE 11</label>
<caption>
<p>DC-side voltage waveform of PI &#x26; TV-MPC, and ULMFPC with ESO &#x26; TV-MPC.</p>
</caption>
<graphic xlink:href="fenrg-11-1089258-g011.tif"/>
</fig>
</sec>
</sec>
<sec id="s6-2">
<title>6.2 Performance of transient-state</title>
<sec id="s6-2-1">
<title>6.2.1 Anti-interference performance of DC voltage</title>
<p>In order to verify the good dynamic performance and robustness of the proposed control method, the load grid current is changed from 100 A to 50 A at 0.25&#xa0;s, and the DC-side voltage variation is shown in <xref ref-type="fig" rid="F12">Figure 12</xref>. It can be seen that the recovery time used to track the DC-side voltage and voltage drop of ULMFPC with ESO and TV-MPC are much smaller than that of PI and TV-MPC. The results show that ULMFPC with ESO have better performance in terms of starting response and response to voltage change.</p>
<fig id="F12" position="float">
<label>FIGURE 12</label>
<caption>
<p>Detailed view of <xref ref-type="fig" rid="F10">Figure 10</xref> in dynamic state.</p>
</caption>
<graphic xlink:href="fenrg-11-1089258-g012.tif"/>
</fig>
</sec>
<sec id="s6-2-2">
<title>6.2.2 Current performance of transient-state</title>
<p>The load grid current changes at 0.25 s, and the change of the current on the VSC1 side are shown in <xref ref-type="fig" rid="F13">Figures 13A,B</xref>.</p>
<fig id="F13" position="float">
<label>FIGURE 13</label>
<caption>
<p>
<bold>(A)</bold> Change of the current waveform of PI &#x26; TV-MPC. <bold>(B)</bold> Change of the current waveform of ULMFPC with ESO &#x26; TV-MPC.</p>
</caption>
<graphic xlink:href="fenrg-11-1089258-g013.tif"/>
</fig>
<p>It can be seen that the recovery of the current under PI and TV-MPC control are significantly weaker than that of the ULMFPC with ESO and TV-MPC control methods. The results show that ULMFPC with ESO have good performance in response speed and current change response.</p>
<p>
<xref ref-type="fig" rid="F14">Figure 14</xref> shows the d-axis current response on the VSC1 side. The reference currents are accurately tracked in the case of abrupt changes on the load side of the system. It can be clearly seen that the PI and TV-MPC controllers take a longer time for <italic>i</italic>
<sub>
<italic>d1</italic>
</sub> to recover to the specified value. In contrast, the improved ULMFPC and TV-MPC controllers take much less time to track the specified <italic>i</italic>
<sub>
<italic>d1ref</italic>
</sub> than the PI and TV-MPC controllers. Thus, the improved control method has a faster tracking performance.</p>
<fig id="F14" position="float">
<label>FIGURE 14</label>
<caption>
<p>Change of <italic>i</italic>
<sub>
<italic>d1</italic>
</sub> waveform of PI &#x26; TV-MPC, and ULMFPC with ESO &#x26; TV-MPC.</p>
</caption>
<graphic xlink:href="fenrg-11-1089258-g014.tif"/>
</fig>
</sec>
<sec id="s6-2-3">
<title>6.2.3 Load power performance of transient-state</title>
<p>The response to sudden changes in active and reactive power of the load grid under two composite control methods are shown in <xref ref-type="fig" rid="F15">Figures 15A,B</xref>. Two composite control methods are able to stabilize the load active and reactive power at the specified values without disturbances. However, when power fluctuations occur, the improved ULMFPC and TV-MPC controllers have better recovery tracking performance. The active power can be restored to stability and maintained quickly. And the reactive power can be reset to zero in a shorter time.</p>
<fig id="F15" position="float">
<label>FIGURE 15</label>
<caption>
<p>
<bold>(A)</bold> Change of VSC2 active power under two control methods. <bold>(B)</bold> Change of VSC2 reactive power under two control methods.</p>
</caption>
<graphic xlink:href="fenrg-11-1089258-g015.tif"/>
</fig>
</sec>
</sec>
</sec>
<sec id="s7">
<title>7 Future work and conclusion</title>
<p>For the better performance of the SOP system, considering access to energy storage and other devices, considering the faults that may occur in the system, taking control strategy under different working modes into consideration, and a semi-physical experimental study of the SOP system will be the future work.</p>
<p>In this paper, an extended state observer-based predictive control method for SOP system is proposed to improve the anti-interference and robustness of the rectifier-side and inverter-side controllers of SOP. The parameter sensitivity problem in the SOP system is analysed. In order to address the parameter ingestion problem, the outer-loop adopts an ultra-local model-free voltage prediction method, which effectively reduces the sensitivity of the parameters. The ESO is established to observe the total system disturbance and perform compensation for the delay existing in the digital control system, which improves the robustness of the SOP system to disturbances. The current TV-MPC method is adopted in the inner-loop to improve the current harmonics effectively. From the simulation results be seen that the total harmonic distortion (THD) of the A-phase current under MPC control for the VSC1 side and VSC2 side are 0.54% and 0.53%. The THD of the A-phase current under TV-MPC control are 0.28% and 0.09%, respectively. Compared with the traditional PI and MPC control strategies, the simulation results show that the control strategies of ULMFPC with ESO and TV-MPC can effectively reduce the current harmonics. and the DC voltage has a better operation, which proves the effectiveness and correctness of the proposed method.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s8">
<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="s9">
<title>Author contributions</title>
<p>ZW: Conceptualization, algorithm innovation, methodology, and writing&#x2014;original draft; PL: Data and formal analysis, investigation, software, simulation, and writing&#x2014;original draft; HZ: Formal analysis, and writing&#x2014;review and editing; LC: Formal analysis, and writing&#x2014;review and editing; All authors have read and agreed to the published version of the manuscript.</p>
</sec>
<ack>
<p>The authors would like to express their gratitude to all those who helped them during the writing of this paper. The authors would like to thank the reviewers for their valuable comments and suggestions.</p>
</ack>
<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="book">
<person-group person-group-type="author">
<name>
<surname>Cai</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Qu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2018</year>). &#x201c;<article-title>Research on an improved droop control strategy for soft open point</article-title>,&#x201d; in <source>Proceedings of the 2018 21st international conference on electrical machines and systems</source> (<publisher-loc>Jeju, Korea</publisher-loc>: <publisher-name>ICEMS</publisher-name>), <fpage>2000</fpage>&#x2013;<lpage>2005</lpage>.</citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Cao</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Jenkins</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Green</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Operating principle of soft open points for electrical distribution network operation</article-title>. <source>Appl. Energy.</source> <volume>164</volume>, <fpage>245</fpage>&#x2013;<lpage>257</lpage>. <pub-id pub-id-type="doi">10.1016/j.apenergy.2015.12.005</pub-id>
</citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chi</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Hou</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Discrete-time extended state observer-based model-free adaptive control via local dynamic linearization</article-title>. <source>IEEE Trans. Industrial Electron.</source> <volume>67</volume> (<issue>10</issue>), <fpage>8691</fpage>&#x2013;<lpage>8701</lpage>. <pub-id pub-id-type="doi">10.1109/TIE.2019.2947873</pub-id>
</citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Falkowski</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Sikorski</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Finite control set model predictive control for grid-connected ac&#x2013;dc converters with lcl filter</article-title>. <source>IEEE T Rans. Ind. Electron.</source> <volume>65</volume> (<issue>4</issue>), <fpage>2844</fpage>&#x2013;<lpage>2852</lpage>. <pub-id pub-id-type="doi">10.1109/TIE.2017.2750627</pub-id>
</citation>
</ref>
<ref id="B5">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Gong</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Dang</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>Research on key technologies of SNOP suitable for distribution network</article-title>,&#x201d; in <source>Ieee. Int. Conf. Circuits and systems (ICCS)</source> (<publisher-loc>Chengdu, China</publisher-loc>: <publisher-name>IEEE</publisher-name>). <pub-id pub-id-type="doi">10.1109/ICCS52645.2021.9697302</pub-id>
</citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Huo</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Ji</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Yan</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>J.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <article-title>Data-driven adaptive operation of soft open points in active distribution networks</article-title>. <source>IEEE Trans. Ind. Appl.</source> <volume>17</volume> (<issue>12</issue>), <fpage>8230</fpage>&#x2013;<lpage>8242</lpage>. <pub-id pub-id-type="doi">10.1109/TII.2021.3064370</pub-id>
</citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hur</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Jung</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Nam</surname>
<given-names>K.</given-names>
</name>
</person-group> (<year>2001</year>). <article-title>A fast dynamic DC-link power-balancing scheme for a PWM converter-inverter system</article-title>. <source>IEEE Trans. Ind. Electron.</source> <volume>48</volume> (<issue>4</issue>), <fpage>794</fpage>&#x2013;<lpage>803</lpage>. <pub-id pub-id-type="doi">10.1109/41.937412</pub-id>
</citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Liang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Ding</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>A control strategy for soft open points based on adaptive voltage droop outer-loop control and sliding mode inner-loop control with feedback linearization</article-title>. <source>Int. J. Electr. Power &#x26; Energy Syst.</source> <volume>122</volume>, <fpage>106205</fpage>. <pub-id pub-id-type="doi">10.1016/j.ijepes.2020.106205</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Hao</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Guan</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Nonlinear decoupling control of two-terminal MMC-HVDC based on feedback linearization</article-title>. <source>IEEE Trans. Power Deliv.</source> <volume>34</volume> (<issue>1</issue>), <fpage>376</fpage>&#x2013;<lpage>386</lpage>. <pub-id pub-id-type="doi">10.1109/TPWRD.2018.2883761</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Saaklayen</surname>
<given-names>M. A.</given-names>
</name>
<name>
<surname>Igder</surname>
<given-names>M. A.</given-names>
</name>
<name>
<surname>Shawon</surname>
<given-names>S. M. R. H.</given-names>
</name>
<name>
<surname>Faried</surname>
<given-names>S. O.</given-names>
</name>
<name>
<surname>Janbakhsh</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Planning and service restoration through microgrid formation and soft open points for distribution network modernization: A review</article-title>. <source>IEEE Trans. Ind. Appl.</source> <volume>58</volume> (<issue>2</issue>), <fpage>1843</fpage>&#x2013;<lpage>1857</lpage>. <pub-id pub-id-type="doi">10.1109/TIA.2022.3146103</pub-id>
</citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Improved model of predictive direct torque control for permanent magnet synchronous motor</article-title>. <source>Electr. Mach. Control</source> <volume>24</volume> (<issue>1</issue>), <fpage>10</fpage>&#x2013;<lpage>17</lpage>. <pub-id pub-id-type="doi">10.15938/j.emc.2020.01.002</pub-id>
</citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Q.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Single-loop predictive control of PMSM based on nonlinear disturbance observers</article-title>. <source>Proc. CSEE</source> <volume>38</volume> (<issue>7</issue>), <fpage>2153</fpage>&#x2013;<lpage>2162</lpage>. <pub-id pub-id-type="doi">10.13334/j.0258-8013.pcsee.170554</pub-id>
</citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Morsi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Abbas</surname>
<given-names>H. S.</given-names>
</name>
<name>
<surname>Ahmed</surname>
<given-names>S. M.</given-names>
</name>
<name>
<surname>Mohamed</surname>
<given-names>A. M.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Model predictive control based on linear parameter-varying models of active magnetic bearing systems</article-title>. <source>IEEE Access</source> <volume>9</volume>, <fpage>23633</fpage>&#x2013;<lpage>23647</lpage>. <pub-id pub-id-type="doi">10.1109/ACCESS.2021.3056323</pub-id>
</citation>
</ref>
<ref id="B14">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Morsi</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Cedric</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>Defense against DoS and load altering attacks via model-free control: A proposal for a new cybersecurity setting</article-title>,&#x201d; in <source>5th int. Conf. Control and fault-tolerant systems (SysTol)</source> (<publisher-loc>Saint-Raphael, France</publisher-loc>: <publisher-name>IEEE</publisher-name>). <pub-id pub-id-type="doi">10.1109/SysTol52990.2021.9595717</pub-id>
</citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Rodriguez</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Pontt</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Silva</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Correa</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Lezana</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Cortes</surname>
<given-names>P.</given-names>
</name>
<etal/>
</person-group> (<year>2007</year>). <article-title>Predictive current control of a voltage source inverter</article-title>. <source>IEEE Trans. Ind. Electron.</source> <volume>54</volume> (<issue>1</issue>), <fpage>495</fpage>&#x2013;<lpage>503</lpage>. <pub-id pub-id-type="doi">10.1109/TIE.2006.888802</pub-id>
</citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Rueda</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Padilha</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Distributed generators as providers of reactive power support&#x2014;A market approach</article-title>. <source>IEEE Trans. Power Syst.</source> <volume>28</volume> (<issue>1</issue>), <fpage>490</fpage>&#x2013;<lpage>502</lpage>. <pub-id pub-id-type="doi">10.1109/TPWRS.2012.2202926</pub-id>
</citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Pamshetti</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Singh</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Thakur</surname>
<given-names>A. K.</given-names>
</name>
<name>
<surname>Singh</surname>
<given-names>S. P.</given-names>
</name>
</person-group> (<year>2021</year>), <article-title>Multistage coordination Volt/VAR control with CVR in active distribution network in presence of inverter-based DG units and soft open points</article-title>. <source>IEEE Trans. Ind.</source> <volume>57</volume> (<issue>3</issue>). <fpage>2035</fpage>&#x2013;<lpage>2047</lpage>. <pub-id pub-id-type="doi">10.1109/TIA.2021.3063667</pub-id>
</citation>
</ref>
<ref id="B18">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>A deadbeat modulated model-free predictive current control of SMPMSM drive system</article-title>,&#x201d; in <source>12th IEEE. Conf. Energy conversion congress &#x26; exposition-asia (ECCE-Asia)</source> (<publisher-loc>Singapore, Singapore</publisher-loc>: <publisher-name>IEEE</publisher-name>). <pub-id pub-id-type="doi">10.1109/ECCE-Asia49820.2021.9479321</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Sheng</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Huo</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Hao</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>An improved model predictive control method for three-port soft open point</article-title>. <source>Math. Probl. Eng.</source> <volume>2021</volume>, <fpage>9910451</fpage>. <pub-id pub-id-type="doi">10.1155/2021/9910451</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Guo</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>Three-vector predictive current control for interior permanent magnet synchronous motor</article-title>,&#x201d; in <source>Ieee. Int. Conf. Predictive control of electrical drives and power electronics (PRECEDE)</source> (<publisher-loc>Jinan, China</publisher-loc>: <publisher-name>IEEE</publisher-name>). <pub-id pub-id-type="doi">10.1109/PRECEDE51386.2021.9680998</pub-id>
</citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Su</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Disturbance observer-based model predictive super-twisting control for soft open point</article-title>. <source>Energies</source> <volume>2022</volume> (<issue>15</issue>), <fpage>3657</fpage>&#x2013;<lpage>57</lpage>. <pub-id pub-id-type="doi">10.3390/en15103657</pub-id>
</citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Ran</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Weiss</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Control of a synchronverter-based soft open point in a distribution network</article-title>. <source>J. Eng.</source> <volume>2019</volume> (<issue>16</issue>), <fpage>720</fpage>&#x2013;<lpage>727</lpage>. <pub-id pub-id-type="doi">10.1049/JOE.2018.8382</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jiang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Ming</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>An overview of soft open points in electricity distribution networks</article-title>. <source>IEEE Trans. Smart Grid</source> <volume>13</volume> (<issue>3</issue>), <fpage>1899</fpage>&#x2013;<lpage>1910</lpage>. <pub-id pub-id-type="doi">10.1109/TSG.2022.3148599</pub-id>
</citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Q.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Model predictive control based on parametric disturbance compensation</article-title>. <source>Math. Probl. Eng.</source> <volume>2020</volume>, <fpage>1</fpage>&#x2013;<lpage>13</lpage>. <pub-id pub-id-type="doi">10.1155/2020/9543928</pub-id>
</citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Chu</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Current decoupling control of PMSM based on an extended state observer with continuous gains</article-title>. <source>Proc. CSEE</source> <volume>40</volume> (<issue>6</issue>), <fpage>1985</fpage>&#x2013;<lpage>1997</lpage>. <pub-id pub-id-type="doi">10.13334/j.0258-8013.pcsee.191226</pub-id>
</citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Young</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Perez</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Rodriguez</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Analysis of finite-control-set model predictive current control with model parameter mismatch in a three-phase inverter</article-title>. <source>IEEE Trans. Ind. Electron.</source> <volume>63</volume> (<issue>5</issue>), <fpage>3100</fpage>&#x2013;<lpage>3107</lpage>. <pub-id pub-id-type="doi">10.1109/TIE.2016.2515072</pub-id>
</citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Hou</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Peng</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Feedback linearization sliding mode control strategy for soft open point</article-title>. <source>Automation Electr. Power Syst.</source> <volume>44</volume> (<issue>1</issue>), <fpage>126</fpage>&#x2013;<lpage>133</lpage>. <pub-id pub-id-type="doi">10.7500/AEPS20190616005</pub-id>
</citation>
</ref>
<ref id="B28">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Peng</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Xie</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Predictive synergy control strategy for flexible multi-state switch model</article-title>. <source>Automation Electr. Power Syst.</source> <volume>42</volume> (<issue>20</issue>), <fpage>123</fpage>&#x2013;<lpage>136</lpage>. <pub-id pub-id-type="doi">10.7500/AEPS20180210002</pub-id>
</citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Model-free predictive current control of permanent magnet synchronous motor based on single current sampling</article-title>. <source>Trans. China Electrotech. Soc.</source> <volume>32</volume> (<issue>2</issue>), <fpage>180</fpage>&#x2013;<lpage>187</lpage>. <pub-id pub-id-type="doi">10.19595/j.cnki.1000-6753.tces.2017.02.021</pub-id>
</citation>
</ref>
<ref id="B30">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Model predictive current control for pmsm drives with parameter robustness improvement</article-title>. <source>IEEE Trans. Power Electron.</source> <volume>34</volume> (<issue>2</issue>), <fpage>1645</fpage>&#x2013;<lpage>1657</lpage>. <pub-id pub-id-type="doi">10.1109/TPEL.2018.2835835</pub-id>
</citation>
</ref>
<ref id="B31">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Yin</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Adaptive sliding-mode-based speed control in finite control set model predictive torque control for induction motors</article-title>. <source>IEEE Trans. Power Electron.</source> <volume>36</volume> (<issue>7</issue>), <fpage>8076</fpage>&#x2013;<lpage>8087</lpage>. <pub-id pub-id-type="doi">10.1109/TPEL.2020.3042181</pub-id>
</citation>
</ref>
<ref id="B32">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Fang</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Rodr&#xed;guez</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Kennel</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Multiple-vector model predictive power control for grid-tied wind turbine system with enhanced steady-state control performance</article-title>. <source>IEEE Trans. Power Electron.</source> <volume>64</volume> (<issue>8</issue>), <fpage>6287</fpage>&#x2013;<lpage>6298</lpage>. <pub-id pub-id-type="doi">10.1109/TIE.2017.2682000</pub-id>
</citation>
</ref>
<ref id="B33">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Yao</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2016</year>). &#x201c;<article-title>Model-free control of surface mounted PMSM drive system</article-title>,&#x201d; in <source>Int. Conf. Industrial technology (ICIT)</source> (<publisher-loc>Taipei, Taiwan</publisher-loc>: <publisher-name>IEEE</publisher-name>). <pub-id pub-id-type="doi">10.1109/ICIT.2016.7474746</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>