<?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">1201271</article-id>
<article-id pub-id-type="doi">10.3389/fenrg.2023.1201271</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>Optimal power distributed control of the DC microgrid in meshed configuration</article-title>
<alt-title alt-title-type="left-running-head">Yang et&#xa0;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.1201271">10.3389/fenrg.2023.1201271</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Yang</surname>
<given-names>Zhichun</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2272908/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Yang</surname>
<given-names>Fan</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Chen</surname>
<given-names>Jiawen</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>State Grid Hubei Electric Power Co., Ltd.</institution>, <institution>Electric Power Science Research Institute</institution>, <addr-line>Wuhan</addr-line>, <country>China</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>State Grid Hubei Electric Power Co., Ltd.</institution>, <addr-line>Wuhan</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/1340319/overview">Xiao-Kang Liu</ext-link>, Huazhong University of Science and Technology, 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/2278821/overview">Xiaodong Yang</ext-link>, Hefei University of Technology, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1799979/overview">Xiaochao Hou</ext-link>, Tsinghua University, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2263113/overview">Shichang Cui</ext-link>, Huazhong University of Science and Technology, China</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Zhichun Yang, <email>cschust@126.com</email>
</corresp>
</author-notes>
<pub-date pub-type="epub">
<day>01</day>
<month>06</month>
<year>2023</year>
</pub-date>
<pub-date pub-type="collection">
<year>2023</year>
</pub-date>
<volume>11</volume>
<elocation-id>1201271</elocation-id>
<history>
<date date-type="received">
<day>06</day>
<month>04</month>
<year>2023</year>
</date>
<date date-type="accepted">
<day>15</day>
<month>05</month>
<year>2023</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2023 Yang, Yang and Chen.</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Yang, Yang 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 a Lyapunov-based power sharing control scheme and a fixed-time-based distributed optimization algorithm to achieve optimal power sharing of sources in a DC microgrid. The Lyapunov-based controller is designed based on so-called ratio consensus protocol, where it drives the sources to a desired proportional power sharing by regulating the voltage profile of the DC microgrid. The distributed optimization optimizer is established by integrating a finite-time weighted consensus algorithm with an iterative algebraic operation, where it calculates the optimal power dispatch on the target of minimizing the generation cost. The optimizer receives the current output power of the controlled DC microgrid and sends the obtained power dispatch to the power sharing controller as the proportionality coefficients. Both the controller and optimizer are carried out in a fully distributed way. Under the framework of the Lyapunov method, stability analysis of the DC microgrid with the proposed control scheme, as well as convergence and optimality analysis of the distributed optimization algorithm, is provided. However, the influence of the time delay of the controller on the system remains to be further investigated in future work.</p>
</abstract>
<kwd-group>
<kwd>DC microgrid</kwd>
<kwd>power sharing</kwd>
<kwd>voltage control</kwd>
<kwd>power allocation</kwd>
<kwd>optimal DC power flow</kwd>
</kwd-group>
<contract-sponsor id="cn001">State Grid Hubei Electric Power Co.<named-content content-type="fundref-id">10.13039/501100014174</named-content>
</contract-sponsor>
<custom-meta-wrap>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Smart Grids</meta-value>
</custom-meta>
</custom-meta-wrap>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>The smart grid has been attracting much attention in recent years, where it integrates the traditional power grid, renewable distributed resources, and advanced control and optimization methods on the bridge of cyber-physical techniques (<xref ref-type="bibr" rid="B19">Liu&#xa0;et&#xa0;al., 2021</xref>; <xref ref-type="bibr" rid="B11">Hou&#xa0;et&#xa0;al., 2022</xref>). With the increasing penetration of renewable energy sources (RESs) and distributed generators (DGs), traditional power systems are transforming into the form of a distributed autonomous power system, namely, the microgrid (<xref ref-type="bibr" rid="B10">Hatziargyriou&#xa0;et&#xa0;al., 2007</xref>). In recent years, a lot of research on the DC microgrid has been emerging since it avoids the reactive power regulation and the harmonic compensation compared with the traditional AC microgrid (<xref ref-type="bibr" rid="B29">Olivares&#xa0;et&#xa0;al., 2014</xref>; <xref ref-type="bibr" rid="B30">Papadimitriou&#xa0;et&#xa0;al., 2015</xref>; <xref ref-type="bibr" rid="B24">Meng&#xa0;et&#xa0;al., 2017</xref>; <xref ref-type="bibr" rid="B32">Wang&#xa0;et&#xa0;al., 2023</xref>).</p>
<p>Power sharing control is one of the important control targets of microgrids (<xref ref-type="bibr" rid="B31">Simpson-Porco&#xa0;et&#xa0;al., 2013</xref>; <xref ref-type="bibr" rid="B26">Morstyn&#xa0;et&#xa0;al., 2016a</xref>; <xref ref-type="bibr" rid="B27">Morstyn&#xa0;et&#xa0;al., 2016b</xref>). Under the framework of the hierarchical control (<xref ref-type="bibr" rid="B6">Guerrero&#xa0;et&#xa0;al., 2011</xref>; <xref ref-type="bibr" rid="B3">Bidram and Davoudi, 2012</xref>), the current sharing problem of parallel DC microgrids has been solved by decentralized methods (<xref ref-type="bibr" rid="B6">Guerrero&#xa0;et&#xa0;al., 2011</xref>; <xref ref-type="bibr" rid="B15">Khorsandi&#xa0;et&#xa0;al., 2014</xref>; <xref ref-type="bibr" rid="B9">Hamzeh&#xa0;et&#xa0;al., 2015</xref>) and distributed methods (<xref ref-type="bibr" rid="B2">Anand&#xa0;et&#xa0;al., 2013</xref>; <xref ref-type="bibr" rid="B23">Lu&#xa0;et&#xa0;al., 2014</xref>; <xref ref-type="bibr" rid="B33">Wang&#xa0;et&#xa0;al., 2016a</xref>), respectively. Indeed, the decentralized controller has been wildly used for the practical AC/DC microgrids (<xref ref-type="bibr" rid="B12">Hou&#xa0;et&#xa0;al., 2019</xref>). Recently, the distributed controller for the DC microgrid has been developed and attracts much attention (<xref ref-type="bibr" rid="B21">Liu&#xa0;et&#xa0;al., 2023b</xref>; <xref ref-type="bibr" rid="B18">Liu&#xa0;et&#xa0;al., 2023a</xref>). The decentralized methods require transmitting the voltage of a common bus to each converter, whereas the distributed methods merely require the current or voltage information on neighbors via an information network. Similarly, distributed control schemes have also been developed in the current sharing problem of the DC microgrid with meshed topology (<xref ref-type="bibr" rid="B28">Nasirian&#xa0;et&#xa0;al., 2014</xref>). However, current sharing guarantees the power sharing of loads but not that of sources. In addition, the existing current sharing controllers are not applicable to accurate energy management at the source side.</p>
<p>When considering the generation cost of power sources, achieving optimal power sharing becomes a crucial problem that can be solved through an economic dispatch model (<xref ref-type="bibr" rid="B1">Ahmed&#xa0;et&#xa0;al., 2023</xref>). Distributed economic dispatch optimization algorithms have been developed, taking advantage of consensus algorithms in multi-agent systems, including the <italic>&#x3f5;</italic>-based consensus algorithm (<xref ref-type="bibr" rid="B38">Yang&#xa0;et&#xa0;al., 2013</xref>), distributed bisection method (<xref ref-type="bibr" rid="B37">Xing&#xa0;et&#xa0;al., 2015</xref>), distributed projected gradient algorithm (<xref ref-type="bibr" rid="B7">Guo&#xa0;et&#xa0;al., 2016</xref>), subgradient-based consensus algorithm (<xref ref-type="bibr" rid="B34">Wang&#xa0;et&#xa0;al., 2016b</xref>), event-triggered consensus algorithm (<xref ref-type="bibr" rid="B17">Li&#xa0;et&#xa0;al., 2016</xref>), and consensus-based energy management algorithm (<xref ref-type="bibr" rid="B39">Zhao&#xa0;et&#xa0;al., 2016</xref>). However, most existing algorithms for economic dispatch neglect the transmission loss of power lines, despite some literature studies discussing it [e.g., Kron&#x2019;s loss formula models in <xref ref-type="bibr" rid="B22">Loia and Vaccaro (2014</xref>)]. It is noted that Kron&#x2019;s loss formula models transmission loss, but obtaining the loss coefficients <italic>B</italic> in practice is difficult. Optimal power sharing controllers have been designed by integrating the physical system and economic dispatch model in several studies, including <xref ref-type="bibr" rid="B8">Hamad&#xa0;et&#xa0;al. (2016</xref>), <xref ref-type="bibr" rid="B16">Li&#xa0;et&#xa0;al. (2017</xref>), <xref ref-type="bibr" rid="B25">Moayedi and Davoudi (2017</xref>), and <xref ref-type="bibr" rid="B13">Hu&#xa0;et&#xa0;al. (2018</xref>). It is noted that <xref ref-type="bibr" rid="B16">Li&#xa0;et&#xa0;al. (2017</xref>) formulated an optimization problem but regard the power flow as a constraint, and they then used the optimized parameters in the decentralized primary controller. However, this optimization problem was solved by a centralized heuristic algorithm, which requires global information, and may become computationally expensive once the number of sources increases. As an alternative, power sharing control schemes with distributed optimization algorithms have been widely developed by interacting with neighboring sources (<xref ref-type="bibr" rid="B8">Hamad&#xa0;et&#xa0;al., 2016</xref>; <xref ref-type="bibr" rid="B25">Moayedi and Davoudi, 2017</xref>; <xref ref-type="bibr" rid="B13">Hu&#xa0;et&#xa0;al., 2018</xref>).</p>
<p>The proposed distributed method in <xref ref-type="bibr" rid="B25">Moayedi and Davoudi (2017</xref>) can simultaneously optimize the power sharing of sources and regulate the voltage profile, where the generation limits of sources are also guaranteed by their incremental cost consensus protocol. The method in <xref ref-type="bibr" rid="B13">Hu&#xa0;et&#xa0;al. (2018)</xref> is a discrete-time control protocol using the current imbalance information, where the economical regulator generates a reference current signal for each converter to achieve the optimal power sharing of sources. Supervisory control has been designed on the basis of the sensitivity analysis, where it successfully solves the equal power sharing problem (<xref ref-type="bibr" rid="B8">Hamad&#xa0;et&#xa0;al., 2016</xref>). Then, the distributed equal incremental cost (DEIC) algorithm is proposed to achieve the optimal power dispatch. Optimal power sharing control has been investigated in <xref ref-type="bibr" rid="B4">Chang&#xa0;et&#xa0;al. (2023</xref>) for a hybrid AC/DC microgrid, but it mainly focuses on the power dispatch between the AC and DC sides while ignoring the optimal power sharing of the sources at the DC side. Optimal energy consumption has been analyzed in <xref ref-type="bibr" rid="B36">Xiao&#xa0;et&#xa0;al. (2022)</xref> for a practical shipboard DC microgrid, where the analysis is based on the transfer function with a linear dynamic part. However, in the aforementioned literature, the stability criteria are hard to be verified because all the poles of the transfer functions or all the eigenvalues of a big matrix should be calculated and checked to ensure them within the open left-hand plane or within the unit circle at the origin. In addition, the parameter design may fail to work if the Laplacian matrix of the communication topology or the conductance matrix of the DC microgrid is unknown.</p>
<p>In this paper, a distributed Lyapunov-based proportional power sharing control and a distributed initial value restoration (distributed optimization) optimization algorithm are designed to achieve the optimal power sharing of sources in a meshed DC microgrid. The Lyapunov-based controller is a consensus-like scheme based on the power information on neighbors. The proposed distributed optimization algorithm consists of a finite-time weighted consensus protocol and an algebraic operation on initial value restoration. In the process of optimization operation, the optimizer receives the real-time output power information and calculates the optimal power dispatch, and then sends back the optimized power dispatch to the controller as the proportionality coefficients. Additionally, a rigorous analysis of stability, convergence, and optimality is given. Compared with existing methods, the key contributions of this paper are summarized as follows:<list list-type="simple">
<list-item>
<p>1. The Lyapunov-based proportional power sharing controller for a DC microgrid is designed, which does not require to know the Laplacian matrix of the communication topology and the conductance matrix of the DC microgrid, as needed in existing approaches (<xref ref-type="bibr" rid="B8">Hamad&#xa0;et&#xa0;al., 2016</xref>; <xref ref-type="bibr" rid="B25">Moayedi and Davoudi, 2017</xref>; <xref ref-type="bibr" rid="B13">Hu&#xa0;et&#xa0;al., 2018</xref>).</p>
</list-item>
<list-item>
<p>2. The proposed distributed optimization algorithm is a fully distributed algorithm. Compared with <xref ref-type="bibr" rid="B25">Moayedi and Davoudi (2017</xref>), our optimization method avoids transforming the information topology once a generation reaches its limits, where the change of topology may lead to the redesign of parameters. Compared with <xref ref-type="bibr" rid="B13">Hu&#xa0;et&#xa0;al. (2018</xref>) and <xref ref-type="bibr" rid="B8">Hamad&#xa0;et&#xa0;al. (2016</xref>), our optimization method can work without knowing the exact number of sources.</p>
</list-item>
<list-item>
<p>3. Optimal sharing control has been investigated in <xref ref-type="bibr" rid="B5">Dou&#xa0;et&#xa0;al. (2022</xref>), however, on the DC microgrid with the single-bus configuration. Moreover, the consensus-based secondary control is designed using the power on the load rather than the output power of the distributed generation unit (DGU). In this paper, we focus on the DC microgrid with meshed configuration and the optimal power sharing of the DGU.</p>
</list-item>
<list-item>
<p>4. Optimal control of the DC microgrid is discussed in <xref ref-type="bibr" rid="B14">Huang&#xa0;et&#xa0;al. (2022</xref>) with a rigorous theoretical analysis and considering balance of the charge state. However, the paper focuses on the optimal voltage control rather than on the power sharing control of the DC microgrid.</p>
</list-item>
</list>
</p>
<p>The organization of the remaining part is as follows. The preliminaries and problem statement are given in <xref ref-type="sec" rid="s2">Section&#xa0;2</xref>. The distributed Lyapunov-based proportional power sharing control is presented in <xref ref-type="sec" rid="s3">Section&#xa0;3</xref>, where stability analysis is given. The distributed optimization algorithm and the convergence proof are given in <xref ref-type="sec" rid="s4">Section&#xa0;4</xref>. The simulation test is given in <xref ref-type="sec" rid="s5">Section&#xa0;5</xref>, and the conclusion is drawn in <xref ref-type="sec" rid="s6">Section&#xa0;6</xref>.</p>
</sec>
<sec id="s2">
<title>2 Preliminaries</title>
<p>Consider a DC microgrid with <italic>N</italic> bus nodes, denoted as <inline-formula id="inf1">
<mml:math id="m1">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:mn>1,2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>. Define <italic>G</italic>
<sub>
<italic>ij</italic>
</sub> as the conductance of the transmission line connecting with nodes <italic>i</italic> and <italic>j</italic>, where <italic>G</italic>
<sub>
<italic>ij</italic>
</sub> &#x3e; 0 if the <italic>i</italic>-th node and <italic>j</italic>-th node are connected via a power line, and otherwise, <italic>G</italic>
<sub>
<italic>ij</italic>
</sub> &#x3d; 0 if they are not connected. <italic>G</italic>
<sub>
<italic>ii</italic>
</sub> is the shunt conductance of the local load. Then, the conductance matrix <inline-formula id="inf2">
<mml:math id="m2">
<mml:mi>Y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> with <italic>Y</italic>
<sub>
<italic>ij</italic>
</sub> &#x3d; &#x2212;<italic>G</italic>
<sub>
<italic>ij</italic>
</sub> if <italic>i</italic> &#x2260; <italic>j</italic>; otherwise, <inline-formula id="inf3">
<mml:math id="m3">
<mml:msub>
<mml:mrow>
<mml:mi>Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>. Before describing the optimal power sharing control problem of the DC microgrid, a brief introduction of information flow is given. Denote <inline-formula id="inf4">
<mml:math id="m4">
<mml:mi mathvariant="script">G</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">E</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:math>
</inline-formula> as the information flow of sources. The graph <inline-formula id="inf5">
<mml:math id="m5">
<mml:mi mathvariant="script">G</mml:mi>
</mml:math>
</inline-formula> is described with a set of nodes <inline-formula id="inf6">
<mml:math id="m6">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>, a set of edges <inline-formula id="inf7">
<mml:math id="m7">
<mml:mi mathvariant="script">E</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#xd7;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>, and a weighted adjacency matrix <inline-formula id="inf8">
<mml:math id="m8">
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> with non-negative adjacency elements. The node <italic>i</italic> represents the <italic>i</italic>th source. Note that <italic>a</italic>
<sub>
<italic>ij</italic>
</sub> &#x3e; 0 if and only if the <italic>i</italic>th source can obtain information from the <italic>j</italic>th source. Define <italic>N</italic>
<sub>
<italic>i</italic>
</sub> &#x3d; {<italic>j</italic>&#x7c;<italic>a</italic>
<sub>
<italic>ij</italic>
</sub> &#x3e; 0}, which is the set that contains the neighbors of the node <italic>i</italic>. The Laplacian matrix <inline-formula id="inf9">
<mml:math id="m9">
<mml:mi mathvariant="script">L</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> of the graph <inline-formula id="inf10">
<mml:math id="m10">
<mml:mi mathvariant="script">G</mml:mi>
</mml:math>
</inline-formula> is defined as <italic>l</italic>
<sub>
<italic>ij</italic>
</sub> &#x3d; &#x2212;<italic>a</italic>
<sub>
<italic>ij</italic>
</sub> if <italic>i</italic> &#x2260; <italic>j</italic>; otherwise, <inline-formula id="inf11">
<mml:math id="m11">
<mml:msub>
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2260;</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>.</p>
<p>The cost of each generation unit is denoted as <italic>C</italic>
<sub>
<italic>i</italic>
</sub>(<italic>P</italic>
<sub>
<italic>i</italic>
</sub>), where <italic>P</italic>
<sub>
<italic>i</italic>
</sub> is the power generation of the <italic>i</italic>-th DG. As illustrated in <xref ref-type="fig" rid="F1">Figure&#xa0;1</xref>, the control and optimization framework of a DC microgrid is, in fact, a cyber-physical system which consists of a cyber system layer and a physical system layer. The physical layer is a real-time system including loads, sources, DC&#x2013;DC converters, and zero-level controllers. The cyber layer is a management system that takes charge of control and optimization for the microgrid in a distributed manner through a communication network and local calculation units. In our framework, there are a power sharing controller and a generation optimizer in each source. They cooperatively calculate the reference voltages for the zero-level controllers, which directly regulate the output voltages of buses.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Cyber-physical framework of a DC microgrid in meshed configuration.</p>
</caption>
<graphic xlink:href="fenrg-11-1201271-g001.tif"/>
</fig>
<p>For the generation optimizer, it aims to calculate the optimal power dispatch of sources by solving an economic dispatch problem, which can be described as the following optimization formulations:<disp-formula id="e1">
<mml:math id="m12">
<mml:munder>
<mml:mrow>
<mml:mi>min</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munder>
<mml:mspace width="1em"/>
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(1)</label>
</disp-formula>
<disp-formula id="e2">
<mml:math id="m13">
<mml:mtext>s.t.</mml:mtext>
<mml:mspace width="1em"/>
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Demand</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:math>
<label>(2)</label>
</disp-formula>
<disp-formula id="e3">
<mml:math id="m14">
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>min</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(3)</label>
</disp-formula>where <italic>C</italic>
<sub>
<italic>i</italic>
</sub>(&#x22c5;) is the generation cost function, <inline-formula id="inf12">
<mml:math id="m15">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> is the optimization variable denoted as the <italic>i</italic>th power generation, <italic>P</italic>
<sub>
<italic>Demand</italic>
</sub> is the total power demand, and <inline-formula id="inf13">
<mml:math id="m16">
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>min</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> and <inline-formula id="inf14">
<mml:math id="m17">
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> are the lower bound and the upper bound of the output power, respectively. The optimization result <inline-formula id="inf15">
<mml:math id="m18">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">opt</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> will be further sent to the power sharing controller as a reference.</p>
<p>For the power sharing controller, it aims to design the reference voltage of buses <inline-formula id="inf16">
<mml:math id="m19">
<mml:msubsup>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ref</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> for the zero-level controller such that the real-time output power could track on the optimized output power,<disp-formula id="e4">
<mml:math id="m20">
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">opt</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:mi>f</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:math>
<label>(4)</label>
</disp-formula>where <italic>P</italic>
<sub>
<italic>i</italic>
</sub> is the real-time output power and <inline-formula id="inf17">
<mml:math id="m21">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">opt</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> is the optimal output power dispatch generated by the generation optimizer.</p>
<p>Under the framework in <xref ref-type="fig" rid="F1">Figure&#xa0;1</xref>, the objective of optimal power sharing control is to minimize the total generation cost of the microgrid by regulating the output voltage of buses while meeting the demand and power generator constraints. To solve the optimal power sharing control of the DC microgrid, a proportional power sharing controller and a distributed optimization algorithm are designed.</p>
</sec>
<sec id="s3">
<title>3 Proportional power sharing scheme</title>
<p>In this section, a proportional power sharing scheme is presented to achieve the desired proportional power dispatch of sources, i.e.,<disp-formula id="e5">
<mml:math id="m22">
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:mi>f</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:mo>&#x2200;</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:math>
<label>(5)</label>
</disp-formula>where <italic>P</italic>
<sub>
<italic>i</italic>
</sub> is the output power and <inline-formula id="inf18">
<mml:math id="m23">
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> is the proportionality coefficient.</p>
<sec id="s3-1">
<title>3.1 Power sharing scheme</title>
<p>The power sharing control scheme for the <italic>i</italic>th source in the DC microgrid is designed as<disp-formula id="e6a">
<mml:math id="m24">
<mml:msubsup>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:math>
<label>(6a)</label>
</disp-formula>
<disp-formula id="e6b">
<mml:math id="m25">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfrac>
<mml:munder>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munder>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo> </mml:math>
<label>(6b)</label>
</disp-formula>
</p>
<p>where <italic>k</italic> is a positive control parameter, <italic>v</italic>
<sup>
<italic>rated</italic>
</sup> is the nominal voltage of microgrids, and <italic>P</italic>
<sub>
<italic>i</italic>
</sub> is the real-time output power of the <italic>i</italic>th source. The power sharing of sources in the DC microgrid can be achieved using the active power information on neighbors, as illustrated in <xref ref-type="fig" rid="F2">Figure&#xa0;2</xref>. Because the dynamics of the converter is evolving in a fast time-scale, the output voltage of the source could rapidly track on the reference voltage <inline-formula id="inf19">
<mml:math id="m26">
<mml:msubsup>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ref</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> by the zero-level controller, as shown in <xref ref-type="fig" rid="F2">Figure&#xa0;2</xref>. Under this circumstance, it could be assumed that <inline-formula id="inf20">
<mml:math id="m27">
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ref</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>. The following subsection gives the stability analysis of the DC microgrid under the proportional power sharing controller.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Distributed controller for each DC&#x2013;DC converter.</p>
</caption>
<graphic xlink:href="fenrg-11-1201271-g002.tif"/>
</fig>
</sec>
<sec id="s3-2">
<title>3.2 Stability analysis</title>
<p>Let <italic>V</italic> &#x3d; col(<italic>v</italic>
<sub>1</sub>, <italic>v</italic>
<sub>2</sub>&#x2026;, <italic>v</italic>
<sub>
<italic>N</italic>
</sub>), <italic>&#x3b4;</italic> &#x3d; col(<italic>&#x3b4;</italic>
<sub>1</sub>, <italic>&#x3b4;</italic>
<sub>2</sub>&#x2026;, <italic>&#x3b4;</italic>
<sub>
<italic>N</italic>
</sub>), and <italic>P</italic> &#x3d; col(<italic>P</italic>
<sub>1</sub>, <italic>P</italic>
<sub>2</sub>&#x2026;, <italic>P</italic>
<sub>
<italic>N</italic>
</sub>). Define the notation <inline-formula id="inf21">
<mml:math id="m28">
<mml:mtext>diag</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> as the diagonal matrix with diagonal elements <italic>b</italic>
<sub>1</sub>, &#x2026;, <italic>b</italic>
<sub>
<italic>N</italic>
</sub>; then, the compact form of the sources&#x2019; dynamics is given by<disp-formula id="equ1">
<mml:math id="m29">
<mml:mtable class="align">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mi>V</mml:mi>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">rated</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>k</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi>L</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi>P</mml:mi>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>where <italic>V</italic>
<sup>
<italic>rated</italic>
</sup> &#x3d; <bold>1</bold>
<sub>
<italic>N</italic>
</sub>
<italic>v</italic>
<sup>
<italic>rated</italic>
</sup>, <inline-formula id="inf22">
<mml:math id="m30">
<mml:mi>D</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>diag</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf23">
<mml:math id="m31">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>diag</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf24">
<mml:math id="m32">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>diag</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>. The dynamics of sources subject to the power flow equations<disp-formula id="e7">
<mml:math id="m33">
<mml:mi>P</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>Y</mml:mi>
<mml:mi>V</mml:mi>
<mml:mo>,</mml:mo>
</mml:math>
<label>(7)</label>
</disp-formula>where <inline-formula id="inf25">
<mml:math id="m34">
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>col</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf26">
<mml:math id="m35">
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> is the demand power of local loads at bus <italic>i</italic>. Hence, the closed-loop system can be obtained as<disp-formula id="e8a">
<mml:math id="m36">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>k</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi>L</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi>P</mml:mi>
<mml:mo>,</mml:mo>
</mml:math>
<label>(8a)</label>
</disp-formula>
<disp-formula id="e8b">
<mml:math id="m37">
<mml:mi>P</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>Y</mml:mi>
<mml:mi>V</mml:mi>
<mml:mo>.</mml:mo>
</mml:math>
<label>(8b)</label>
</disp-formula>Indeed, taking the derivation of both sides of Eq.&#xa0;<xref ref-type="disp-formula" rid="e6a">6a</xref> and substituting Eq.&#xa0;<xref ref-type="disp-formula" rid="e6b">6b</xref> yields Eq.&#xa0;<xref ref-type="disp-formula" rid="e8a">8a</xref> and Eq.&#xa0;<xref ref-type="disp-formula" rid="e8b">8b</xref>, which is the DC power flow for the meshed configuration of the DC microgrid. Note that Eq.&#xa0;<xref ref-type="disp-formula" rid="e8a">8a</xref> is a differential equation and Eq.&#xa0;<xref ref-type="disp-formula" rid="e8b">8b</xref> is an algebraic equation. Before giving the stability analysis of the closed-loop system, denote the equilibrium of (8) as E &#x3d; (<italic>P</italic>
<sup>&#x22c6;</sup>, <italic>V</italic>
<sup>&#x22c6;</sup>), which satisfies the following equations:<disp-formula id="equ2">
<mml:math id="m38">
<mml:mtable class="align">
<mml:mtr>
<mml:mtd columnalign="left"/>
<mml:mtd columnalign="left">
<mml:mn>0</mml:mn>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>k</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22c6;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22c6;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mmultiscripts>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>D</mml:mi>
</mml:mrow>
<mml:none/>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mprescripts/>
<mml:none/>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mmultiscripts>
<mml:msup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22c6;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left"/>
<mml:mtd columnalign="left">
<mml:msup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22c6;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22c6;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi>Y</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22c6;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left"/>
<mml:mtd columnalign="left"/>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
<p>
<statement content-type="theorem" id="Theorem_1">
<label>Theorem 1</label>
<p>
<italic>Suppose that the communication graph is connected. Consider the closed-loop system (8). The proposed distributed controller (6) ensures the following statements:</italic>
<italic>i</italic>
<italic>) the solution of (8) approaches the equilibrium E and</italic>
<italic>ii</italic>
<italic>) the power sharing</italic> (5) <italic>is guaranteed.</italic>
</p>
<p>
<bold>Proof:</bold> Define the Lyapunov functional candidate as<disp-formula id="equ3">
<mml:math id="m39">
<mml:mi mathvariant="script">W</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:msup>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi>V</mml:mi>
<mml:mo>.</mml:mo>
</mml:math>
</disp-formula>Taking the derivative of the Lyapunov function along (8), one has<disp-formula id="equ4">
<mml:math id="m40">
<mml:mtable class="align">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="script">W</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>k</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi>L</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi>P</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>k</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi>L</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi>P</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:mspace width="0.7em"/>
<mml:mo>&#x2264;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>It is noted that <italic>D</italic>
<sup>&#x2212;1</sup>
<italic>LD</italic>
<sup>&#x2212;1</sup> is a symmetric matrix with non-negative eigenvalues because the communication graph is connected.</p>
<p>By LaSalle&#x2019;s invariant principle, the solution of (8) will approach the largest invariant set of<disp-formula id="equ5">
<mml:math id="m41">
<mml:mi mathvariant="script">M</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="{" close="}">
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="script">W</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:mtext>as</mml:mtext>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:mi>t</mml:mi>
<mml:mo>&#x2192;</mml:mo>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
<mml:mo>.</mml:mo>
</mml:math>
</disp-formula>Indeed, the solution is also subject to the algebraic flow equation <inline-formula id="inf27">
<mml:math id="m42">
<mml:mi>P</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>Y</mml:mi>
<mml:mi>V</mml:mi>
</mml:math>
</inline-formula>. Hence, it will approach the set <inline-formula id="inf28">
<mml:math id="m43">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="script">W</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:mtext>and</mml:mtext>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:mi>P</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>Y</mml:mi>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>. It is easy to find that <inline-formula id="inf29">
<mml:math id="m44">
<mml:mtext>E</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>, which means the solution of (8) will approach the equilibrium E.</p>
<p>Note that <inline-formula id="inf30">
<mml:math id="m45">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="script">W</mml:mi>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:math>
</inline-formula> indicates <italic>P</italic>
<sup>
<italic>T</italic>
</sup>
<italic>D</italic>
<sup>&#x2212;1</sup>
<italic>LD</italic>
<sup>&#x2212;1</sup>
<italic>p</italic> &#x3d; 0, where it implies <italic>LD</italic>
<sup>&#x2212;1</sup>
<italic>p</italic> &#x3d; 0. <italic>L</italic> is the Laplacian matrix, of which the row sum equals to zero. Therefore, the null space of the matrix <italic>LD</italic>
<sup>&#x2212;1</sup> is <inline-formula id="inf31">
<mml:math id="m46">
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>, which indicates there exists a positive constant <italic>p</italic>&#x2a; such that <inline-formula id="inf32">
<mml:math id="m47">
<mml:mi>P</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>. Obviously, it guarantees<disp-formula id="equ6">
<mml:math id="m48">
<mml:munder>
<mml:mrow>
<mml:mi>lim</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2192;</mml:mo>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:mtext>for</mml:mtext>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:mo>&#x2200;</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:math>
</disp-formula>This completes the proof of <xref ref-type="statement" rid="Theorem_1">Theorem&#xa0;1</xref>.</p>
</statement>
</p>
<p>
<statement content-type="remark" id="Remark_1">
<label>Remark 1</label>
<p>
<italic>Set</italic>
<inline-formula id="inf33">
<mml:math id="m49">
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>
<italic>, where</italic>
<inline-formula id="inf34">
<mml:math id="m50">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>
<italic>is the desired output power of the</italic>
<italic>i</italic>
<italic>th source satisfying</italic>
<inline-formula id="inf35">
<mml:math id="m51">
<mml:msub>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">loss</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>
<italic>with</italic>
<inline-formula id="inf36">
<mml:math id="m52">
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">loss</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:msub>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22c6;</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22c6;</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22c6;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi>Y</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x22c6;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>
<italic>, denoted as the power loss on lines. The proportional power sharing controller ensures</italic>
<inline-formula id="inf37">
<mml:math id="m53">
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3c7;</mml:mi>
</mml:math>
</inline-formula>
<italic>, where</italic>
<italic>&#x3c7;</italic>
<italic>is a positive constant. By the power flow Eq.&#xa0;<xref ref-type="disp-formula" rid="e8b">8b</xref>
</italic>
<italic>)</italic>
<italic>, one has</italic>
<inline-formula id="inf38">
<mml:math id="m54">
<mml:msub>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">loss</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>
<italic>, which indicates that</italic>
<inline-formula id="inf39">
<mml:math id="m55">
<mml:msub>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>
<italic>and</italic>
<italic>&#x3c7;</italic> &#x3d; 1<italic>. In this way, it achieves the desired power output of sources.</italic>
</p>
</statement>
</p>
<p>
<statement content-type="remark" id="Remark_2">
<label>Remark 2</label>
<p>
<italic>Based on the Lyapunov stability analysis, the parameter design of the power sharing controller is quite simple, where it only requires</italic>
<italic>k</italic> &#x3e; 0<italic>. Note that the selection of</italic>
<italic>k</italic>
<italic>is independent of the Laplacian matrix</italic>
<italic>L</italic>
<italic>and the conductance matrix</italic>
<italic>Y</italic>
<italic>. Moreover, the parameter</italic>
<italic>k</italic>
<italic>determines the speed of the convergence.</italic>
</p>
</statement>
</p>
</sec>
</sec>
<sec id="s4">
<title>4 Optimal economic dispatch</title>
<p>This section aims to obtain the optimal power dispatch by solving the economic dispatch problem (Eqs&#xa0;<xref ref-type="disp-formula" rid="e1">1</xref>&#x2013;<xref ref-type="disp-formula" rid="e3">3</xref>).</p>
<sec id="s4-1">
<title>4.1 Solution to the economic dispatch problem</title>
<p>Similar to the classic economic dispatch problem formulation in AC microgrids, the cost functions of dispatchable sources can be approximated as a quadratic function (<xref ref-type="bibr" rid="B35">Wood and Wollenberg, 2012</xref>),<disp-formula id="e9">
<mml:math id="m56">
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:math>
<label>(9)</label>
</disp-formula>where <inline-formula id="inf40">
<mml:math id="m57">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> is the output of the <italic>i</italic>th power generator, and <italic>&#x3b1;</italic>
<sub>
<italic>i</italic>
</sub>, <italic>&#x3b2;</italic>
<sub>
<italic>i</italic>
</sub>, and <italic>&#x3b3;</italic>
<sub>
<italic>i</italic>
</sub> are the corresponded parameters.</p>
<p>Define the Lagrangian operator <inline-formula id="inf41">
<mml:math id="m58">
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> such that<disp-formula id="e10">
<mml:math id="m59">
<mml:mi>L</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3bb;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(10)</label>
</disp-formula>where <italic>&#x3bb;</italic> is the Lagrange multiplier and <italic>P</italic>
<sub>
<italic>D</italic>
</sub> is the sum of the real-time output power transmitted from the controller. <italic>P</italic>
<sub>
<italic>D</italic>
</sub> includes both the load demand <italic>P</italic>
<sub>
<italic>Demand</italic>
</sub> and the transmission loss <italic>P</italic>
<sub>
<italic>loss</italic>
</sub>. For the EDP with power generation constraints, the optimal incremental cost <italic>&#x3bb;</italic>&#x2a; can be obtained by verifying [Eq. (3.7) in (<xref ref-type="bibr" rid="B35">Wood and Wollenberg, 2012</xref>)]<disp-formula id="e11">
<mml:math id="m60">
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="cases">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:mtext>for</mml:mtext>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>min</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3c;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3c;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3c;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:mtext>for</mml:mtext>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3e;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:mtext>for</mml:mtext>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>min</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>.</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(11)</label>
</disp-formula>
</p>
</sec>
<sec id="s4-2">
<title>4.2 Distributed optimization algorithm</title>
<p>This subsection presents a discrete-time multi-agent system that employs the local variable <italic>&#x3bb;</italic>
<sub>
<italic>i</italic>
</sub>(<italic>t</italic>), where <inline-formula id="inf42">
<mml:math id="m61">
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>, to collaboratively estimate the optimal <italic>&#x3bb;</italic>&#x2a; in Eq.&#xa0;<xref ref-type="disp-formula" rid="e11">11</xref>. Prior to introducing the distributed optimization algorithm, it is necessary to define a projection operator that maps from <inline-formula id="inf43">
<mml:math id="m62">
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:math>
</inline-formula> to &#x3a9;<disp-formula id="e12">
<mml:math id="m63">
<mml:mtext>Proj</mml:mtext>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>arg&#x2009;</mml:mtext>
<mml:munder>
<mml:mrow>
<mml:mi>min</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3bd;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:mi>&#x3c5;</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:mo>,</mml:mo>
</mml:math>
<label>(12)</label>
</disp-formula>where <inline-formula id="inf44">
<mml:math id="m64">
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
<mml:mo>&#x2286;</mml:mo>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:math>
</inline-formula> is a closed convex set, and <italic>&#x3bb;</italic>
<sub>
<italic>i</italic>
</sub> locates within an accessible set <inline-formula id="inf45">
<mml:math id="m65">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>min</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf46">
<mml:math id="m66">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>min</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>min</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> and <inline-formula id="inf47">
<mml:math id="m67">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>. In light of <xref ref-type="bibr" rid="B20">Liu&#xa0;et&#xa0;al. (2020</xref>), a two-step distributed optimization algorithm is designed based on the projection operator, taking into account the power generation constraints.</p>
<sec id="s4-2-1">
<title>4.2.1 bfAlgorithm 1: two-step distributed optimization algorithm</title>
<p>
<statement content-type="step" id="Step_1">
<label>Step 1</label>
<p>Distributed finite-time consensus policy.<disp-formula id="e13">
<mml:math id="m68">
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="cases">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3bc;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:munder>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munder>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>.</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(13)</label>
</disp-formula>
</p>
</statement>
</p>
<p>
<statement content-type="step" id="Step_2">
<label>Step 2</label>
<p>Initial value restoration operation.<disp-formula id="e14">
<mml:math id="m69">
<mml:msubsup>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">con</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mtext>Proj</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">con</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(14)</label>
</disp-formula>where <inline-formula id="inf48">
<mml:math id="m70">
<mml:mi>&#x3bc;</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:math>
</inline-formula> is a time-dependent gain with <inline-formula id="inf49">
<mml:math id="m71">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> being the <italic>t</italic>-th eigenvalue of the Laplacian matrix <inline-formula id="inf50">
<mml:math id="m72">
<mml:mi mathvariant="script">L</mml:mi>
</mml:math>
</inline-formula>. <italic>&#x3bb;</italic>
<sub>
<italic>i</italic>0</sub> &#x3d; 2<italic>&#x3b3;</italic>
<sub>
<italic>i</italic>
</sub>
<italic>P</italic>
<sub>
<italic>i</italic>
</sub> &#x2b; <italic>&#x3b2;</italic>
<sub>
<italic>i</italic>
</sub>, <italic>P</italic>
<sub>
<italic>i</italic>
</sub> is the output power, <inline-formula id="inf51">
<mml:math id="m73">
<mml:msubsup>
<mml:mrow>
<mml:mtext>Proj</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> represents <inline-formula id="inf52">
<mml:math id="m74">
<mml:mtext>Proj</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>
<italic>z</italic>
<sub>
<italic>i</italic>
</sub> is called as the restoration variable, and <inline-formula id="inf53">
<mml:math id="m75">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">con</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> is the consensus value to be calculated in <xref ref-type="statement" rid="Step_1">Step&#xa0;1</xref> at each iteration.</p>
<p>A major difference to <xref ref-type="bibr" rid="B20">Liu&#xa0;et&#xa0;al. (2020</xref>) is that we apply a fixed-time consensus algorithm via the discrete-time multi-agent system. The distributed optimization algorithm involves two steps for each source. In <xref ref-type="statement" rid="Step_1">Step&#xa0;1</xref>, a fixed-time discrete-time consensus algorithm is employed to drive <italic>&#x3bb;</italic>
<sub>
<italic>i</italic>
</sub> to converge to consensus within <italic>N</italic> steps. In <xref ref-type="statement" rid="Step_2">Step&#xa0;2</xref>, we carry out the projection to operate and restore the initial value of <italic>&#x3bb;</italic>
<sub>
<italic>i</italic>
</sub> according to the consensus value calculated in <xref ref-type="statement" rid="Step_1">Step&#xa0;1</xref>. These two steps are run alternately until <inline-formula id="inf54">
<mml:math id="m76">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">con</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> converges. The flowchart of the distributed optimization algorithm is depicted in detail in <xref ref-type="fig" rid="F3">Figure&#xa0;3</xref>.</p>
</statement>
</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Flowchart of the distributed optimization algorithm.</p>
</caption>
<graphic xlink:href="fenrg-11-1201271-g003.tif"/>
</fig>
<p>
<statement content-type="remark" id="Remark_3">
<label>Remark 3</label>
<p>
<italic>Like the optimization algorithms in <xref ref-type="bibr" rid="B13">Hu&#xa0;et&#xa0;al. (2018</xref>) and <xref ref-type="bibr" rid="B8">Hamad&#xa0;et&#xa0;al. (2016</xref>), the proposed distributed optimization algorithm utilizes the increment cost of neighbors, i.e.,</italic>
<italic>&#x3bb;</italic>
<sub>
<italic>j</italic>
</sub>, <italic>j</italic> &#x2208; <italic>N</italic>
<sub>
<italic>i</italic>
</sub>
<italic>. However, our algorithm still works without requirements on the total number of the sources</italic>
<italic>N</italic>
<italic>and the number of other neighbors</italic>&#x7c;<italic>N</italic>
<sub>
<italic>j</italic>
</sub>&#x7c;, <italic>j</italic> &#x2208; <italic>N</italic>
<sub>
<italic>i</italic>
</sub>
<italic>.</italic>
</p>
</statement>
</p>
</sec>
</sec>
<sec id="s4-3">
<title>4.3 Interactive operation of the controller and optimizer</title>
<p>In the aforementioned sections, the proposed controller and optimizer separately achieve the desired proportional power sharing of sources and optimal power dispatch of sources. However, when the power sharing controller regulates the voltage profile, the transmission loss of lines changes accordingly such that the sum of real-time output power is no longer equal to the sum of optimized power, and to solve this problem, an interactive operation of the proposed controller and optimizer is presented, as shown in <xref ref-type="fig" rid="F4">Figure&#xa0;4</xref>.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Interactive operation of the controller and the optimizer in the <italic>i</italic>th source.</p>
</caption>
<graphic xlink:href="fenrg-11-1201271-g004.tif"/>
</fig>
<p>In <xref ref-type="fig" rid="F4">Figure&#xa0;4</xref>, &#x394;<italic>&#x3c4;</italic> is the duration of optimization at each time and &#x394;<italic>t</italic> is the time interval between two optimizations. During the period &#x394;<italic>t</italic>, the power sharing controller sends the real-time output power to its generation optimizer. Subsequently, the optimizer calculates the optimal power dispatch and sends back the obtained dispatch to the controller as the proportionality coefficients. Then, the power sharing controller calculates the reference voltage for the zero-level controller, and the zero-level controller drives the DC microgrid to its steady state. Additionally, the controller will resend the current real-time output power to the generation optimizer for the next optimization. Specifically, the operation in the DC microgrid follows four steps:<list list-type="simple">
<list-item>
<p>1) The output power <italic>P</italic>
<sub>
<italic>i</italic>
</sub> of each bus at the physical system will be sent to its generation optimizer.</p>
</list-item>
<list-item>
<p>2) The optimal power dispatch <inline-formula id="inf55">
<mml:math id="m77">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">opt</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> under the current circumstance (i.e., the current output power <italic>P</italic>
<sub>
<italic>i</italic>
</sub>) is calculated and sent back to the power-sharing controller.</p>
</list-item>
<list-item>
<p>3) The power-sharing controller works with the proportionality coefficient <inline-formula id="inf56">
<mml:math id="m78">
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">opt</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> until the DC microgrid reaches its steady state.</p>
</list-item>
<list-item>
<p>4) Repeat steps 1&#x2013;3 until the optimal power dispatch <inline-formula id="inf57">
<mml:math id="m79">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">opt</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> is convergent.</p>
</list-item>
</list>
</p>
</sec>
</sec>
<sec id="s5">
<title>5 Simulation test</title>
<p>The simulation test is carried out based on MATLAB/Simulink to demonstrate the effectiveness of the proposed methods. Consider a meshed DC microgrid with six buses including six sources and six local loads, as shown in <xref ref-type="fig" rid="F5">Figure&#xa0;5</xref>. The rated voltage of the microgrid is selected at 380&#xa0;V.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Microgrid tested with six buses.</p>
</caption>
<graphic xlink:href="fenrg-11-1201271-g005.tif"/>
</fig>
<p>The line parameters and the load parameters are listed in <xref ref-type="table" rid="T1">Table&#xa0;1</xref>. The parameters of generation cost are shown in <xref ref-type="table" rid="T2">Table&#xa0;2</xref>. Each source is driven by a boost DC&#x2013;DC converter with both current-loop and voltage-loop PI controllers, as shown in <xref ref-type="fig" rid="F2">Figure&#xa0;2</xref>, where <italic>v</italic>
<sub>
<italic>s</italic>
</sub> &#x3d; 220&#xa0;V, <italic>L</italic> &#x3d; 2&#xa0;mH, and <italic>C</italic> &#x3d; 470&#xa0;<italic>&#x3bc;</italic>F. In the proposed control method, the parameter <italic>k</italic> is designed as 4,000. The constant power load is modeled via a DC/DC buck converter with a constant impedance load.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Parameters of lines and loads.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th colspan="4" align="center">Parameter of lines and loads</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">Line<sub>12</sub>
</td>
<td align="center">0.15&#xa0;&#x3a9; 2&#xa0;mH</td>
<td align="center">Load<sub>1</sub>
</td>
<td align="center">15&#xa0;kW</td>
</tr>
<tr>
<td align="center">Line<sub>23</sub>
</td>
<td align="center">0.25&#xa0;&#x3a9; 2.5&#xa0;mH</td>
<td align="center">Load<sub>2</sub>
</td>
<td align="center">20&#xa0;kW</td>
</tr>
<tr>
<td align="center">Line<sub>36</sub>
</td>
<td align="center">0.20&#xa0;&#x3a9; 3&#xa0;mH</td>
<td align="center">Load<sub>3</sub>
</td>
<td align="center">15&#xa0;kW</td>
</tr>
<tr>
<td align="center">Line<sub>15</sub>
</td>
<td align="center">0.15&#xa0;&#x3a9; 2&#xa0;mH</td>
<td align="center">Load<sub>4</sub>
</td>
<td align="center">20&#xa0;kW</td>
</tr>
<tr>
<td align="center">Line<sub>45</sub>
</td>
<td align="center">0.10&#xa0;&#x3a9; 1&#xa0;mH</td>
<td align="center">Load<sub>5</sub>
</td>
<td align="center">15&#xa0;kW</td>
</tr>
<tr>
<td align="center">Line<sub>56</sub>
</td>
<td align="center">0.20&#xa0;&#x3a9; 2.5&#xa0;mH</td>
<td align="center">Load<sub>6</sub>
</td>
<td align="center">20&#xa0;kW</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Generation cost parameters.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Source</th>
<th align="center">
<italic>&#x3b3;</italic>
<sub>
<italic>i</italic>
</sub>(<italic>$</italic>/kW<sup>2</sup>)</th>
<th align="center">
<italic>&#x3b2;</italic>
<sub>
<italic>i</italic>
</sub> ($/kW)</th>
<th align="center">
<italic>&#x3b1;</italic>
<sub>
<italic>i</italic>
</sub>(<italic>$</italic>)</th>
<th align="center">
<inline-formula id="inf58">
<mml:math id="m80">
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>min</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> (kW)</th>
<th align="center">
<inline-formula id="inf59">
<mml:math id="m81">
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> (kW)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">1</td>
<td align="center">0.071</td>
<td align="center">2.623</td>
<td align="center">68.52</td>
<td align="center">5</td>
<td align="center">30</td>
</tr>
<tr>
<td align="center">2</td>
<td align="center">0.091</td>
<td align="center">3.143</td>
<td align="center">51.81</td>
<td align="center">12</td>
<td align="center">20</td>
</tr>
<tr>
<td align="center">3</td>
<td align="center">0.063</td>
<td align="center">2.357</td>
<td align="center">38.66</td>
<td align="center">5</td>
<td align="center">20</td>
</tr>
<tr>
<td align="center">4</td>
<td align="center">0.087</td>
<td align="center">1.715</td>
<td align="center">48.47</td>
<td align="center">12</td>
<td align="center">45</td>
</tr>
<tr>
<td align="center">5</td>
<td align="center">0.073</td>
<td align="center">2.720</td>
<td align="center">53.71</td>
<td align="center">8</td>
<td align="center">20</td>
</tr>
<tr>
<td align="center">6</td>
<td align="center">0.067</td>
<td align="center">1.934</td>
<td align="center">57.50</td>
<td align="center">8</td>
<td align="center">45</td>
</tr>
</tbody>
</table>
</table-wrap>
<sec id="s5-1">
<title>5.1 Proportional power sharing</title>
<p>Before <italic>t</italic> &#x3d; 5&#xa0;s, it is supposed to achieve the average power sharing, which means each source provides 16.67% of the total power demand. After <italic>t</italic> &#x3d; 5&#xa0;s, it is supposed to achieve a desired proportional power sharing, where six sources provide 15%, 15%, 15%, 20%, 15%, and 20% of the total power demand. In this case, <inline-formula id="inf60">
<mml:math id="m82">
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> and <inline-formula id="inf61">
<mml:math id="m83">
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> are first set as 17,500, then <inline-formula id="inf62">
<mml:math id="m84">
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>, <inline-formula id="inf63">
<mml:math id="m85">
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>, <inline-formula id="inf64">
<mml:math id="m86">
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>, and<inline-formula id="inf65">
<mml:math id="m87">
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> will be reset as 15,750 and <inline-formula id="inf66">
<mml:math id="m88">
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> and <inline-formula id="inf67">
<mml:math id="m89">
<mml:msubsup>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>6</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> are reset as 21,000 at <italic>t</italic> &#x3d; 5&#xa0;s. As seen in <xref ref-type="fig" rid="F6">Figure&#xa0;6A</xref>, the output power of six sources is converging to 17.5&#xa0;kW at the first 5&#xa0;s. During the last 5&#xa0;s, the desired power sharing is achieved, where the output power of sources 1, 2, 3, and 5 converges to 15.75&#xa0;kW and the output power of sources 4 and 6 converges to 21.0&#xa0;kW as well. Moreover, voltage shifts of six buses are shown in <xref ref-type="fig" rid="F6">Figure&#xa0;6B</xref>. By the proposed control method, the proportional power sharing of sources can be achieved.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Performance of the proportional power sharing test: <bold>(A)</bold> output power of six sources and <bold>(B)</bold> voltage of six buses.</p>
</caption>
<graphic xlink:href="fenrg-11-1201271-g006.tif"/>
</fig>
</sec>
<sec id="s5-2">
<title>5.2 Load step test</title>
<p>The controller performance of the load step test is shown in <xref ref-type="fig" rid="F7">Figure&#xa0;7</xref>, where two 5-kW loads are added at <italic>t</italic> &#x3d; 5&#xa0;s and removed at <italic>t</italic> &#x3d; 10&#xa0;s on buses 3 and 5, respectively. <xref ref-type="fig" rid="F7">Figure&#xa0;7A</xref> shows the proportional power sharing of six sources could still be maintained during the period of the test. <xref ref-type="fig" rid="F7">Figure&#xa0;7B</xref> shows the voltage shifts of six buses.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Performance of the load step test: <bold>(A)</bold> output power of six sources and <bold>(B)</bold> voltage of six buses.</p>
</caption>
<graphic xlink:href="fenrg-11-1201271-g007.tif"/>
</fig>
</sec>
<sec id="s5-3">
<title>5.3 Power sharing with time delay</title>
<p>In this subsection, we have tested our power sharing algorithm with time delay, where two 2-kW loads are added at <italic>t</italic> &#x3d; 5&#xa0;s and removed at <italic>t</italic> &#x3d; 10&#xa0;s on buses 3 and 5, respectively. We have tested on different time delays, say, 50&#xa0;ms and 100&#xa0;ms, as shown in <xref ref-type="fig" rid="F8">Figures&#xa0;8A&#x2013;D</xref>. It can be observed that power sharing is failed when the time delay is 100&#xa0;ms, but power sharing can be achieved if the time delay is 50&#xa0;ms.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Performance of the time delay test: <bold>(A)</bold> output power of six sources (50&#xa0;ms), <bold>(B)</bold> voltage of six buses (50&#xa0;ms), <bold>(C)</bold> output power of six sources (100&#xa0;ms), and <bold>(D)</bold> output voltage of six buses (100&#xa0;ms).</p>
</caption>
<graphic xlink:href="fenrg-11-1201271-g008.tif"/>
</fig>
</sec>
<sec id="s5-4">
<title>5.4 Optimal power sharing</title>
<p>In this test, the optimizer starts to work at <italic>t</italic> &#x3d; 5&#xa0;s. The distributed optimization algorithm is employed with the setting <italic>&#x3bc;</italic> &#x3d; 3. Within 10 iterations, it obtains the optimal power dispatch: <inline-formula id="inf68">
<mml:math id="m90">
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">opt</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>16.65</mml:mn>
</mml:math>
</inline-formula> kW, <inline-formula id="inf69">
<mml:math id="m91">
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">opt</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>12</mml:mn>
</mml:math>
</inline-formula> kW, <inline-formula id="inf70">
<mml:math id="m92">
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">opt</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>20</mml:mn>
</mml:math>
</inline-formula> kW, <inline-formula id="inf71">
<mml:math id="m93">
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">opt</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>18.80</mml:mn>
</mml:math>
</inline-formula> kW, <inline-formula id="inf72">
<mml:math id="m94">
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">opt</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>15.52</mml:mn>
</mml:math>
</inline-formula> kW, and <inline-formula id="inf73">
<mml:math id="m95">
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>6</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">opt</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>22.78</mml:mn>
</mml:math>
</inline-formula> kW. The evolution of <italic>&#x3bb;</italic>
<sub>
<italic>con</italic>
</sub> and cost <italic>C</italic> are shown in <xref ref-type="fig" rid="F9">Figures&#xa0;9A,&#xa0;B</xref> . It observes that <italic>&#x3bb;</italic>
<sub>
<italic>con</italic>
</sub> keeps decreasing and finally converges to 4.986. The cost of sources decreases as well and converges to a steady state within several iterations. The optimal power sharing of sources is achieved, as seen in <xref ref-type="fig" rid="F10">Figure&#xa0;10A</xref>. It is worth noting that the output power of source 2 reaches its lower bound, while the output power of source 3 reaches its upper bound. Moreover, voltage shifts of six buses are shown in <xref ref-type="fig" rid="F10">Figure&#xa0;10B</xref>.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>Simulation results of the distributed optimization algorithm: <bold>(A)</bold> evolution of <italic>&#x3bb;</italic>
<sub>
<italic>con</italic>
</sub> and <bold>(B)</bold> evolution of the cost.</p>
</caption>
<graphic xlink:href="fenrg-11-1201271-g009.tif"/>
</fig>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>Performance of the optimal power sharing test: <bold>(A)</bold> output power of six sources and <bold>(B)</bold> voltage of six buses.</p>
</caption>
<graphic xlink:href="fenrg-11-1201271-g010.tif"/>
</fig>
</sec>
</sec>
<sec sec-type="conclusion" id="s6">
<title>6 Conclusion</title>
<p>This paper presents a solution to the optimal power sharing problem in a DC microgrid using a combination of the proportional power sharing control algorithm and the DIVR algorithm. Theproportional power sharing control algorithm, designed based on the Lyapunov method, is used to regulate the voltage profile of the microgrid. The fixed-time based distributed optimization algorithm, which uses a weighted finite-time consensus protocol and an initial value restoration algebraic operation, optimizes power sharing among the sources in the microgrid. Both algorithms are fully distributed and implemented at the cyber system layer. The algorithms work together to calculate the reference voltage for the zero-level controller to track, resulting in optimal power sharing among the sources. The effectiveness of the proposed method is demonstrated through simulation on a six-bus DC microgrid. Future work may focus on giving a theoretical bound for the time delay of the distributed optimal power-sharing controller and considering the constraint of the bus voltage during the control process.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s7">
<title>Data availability statement</title>
<p>The original contributions presented in the study are included in the article/Supplementary Material; further inquiries can be directed to the corresponding author.</p>
</sec>
<sec id="s8">
<title>Author contributions</title>
<p>ZY contributed to the conception and design of the framework. FY organized the overall paper. JC wrote sections of the manuscript. All authors contributed to the article and approved the submitted version.</p>
</sec>
<sec id="s9">
<title>Funding</title>
<p>This work was supported by the science and technology project (52153222001H) of the State Grid Hubei Electric Power Research Institute.</p>
</sec>
<ack>
<p>The authors would like to appropriate the editor and reviewers for their valuable suggestions and comments.</p>
</ack>
<sec sec-type="COI-statement" id="s10">
<title>Conflict of interest</title>
<p>ZY, FY, and JC were employed by the State Grid Hubei Electric Power Co., Ltd. The authors declare that this study received funding from State Grid Hubei Electric Power Research Institute.The funder had the following involvement in the study: design, data collection and analysis, decision to publish, or preparation of the manuscript.</p>
</sec>
<sec sec-type="disclaimer" id="s11">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors, and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ahmed</surname>
<given-names>M. A.</given-names>
</name>
<name>
<surname>Abbas</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Jumani</surname>
<given-names>T. A.</given-names>
</name>
<name>
<surname>Rashid</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Bhutto</surname>
<given-names>A. A.</given-names>
</name>
<name>
<surname>Eldin</surname>
<given-names>S. M.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Techno-economic optimal planning of an industrial microgrid considering integrated energy resources</article-title>. <source>Front. Energy Res.</source>
<volume>11</volume>, <fpage>148</fpage>. <pub-id pub-id-type="doi">10.3389/fenrg.2023.1145888</pub-id>
</citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Anand</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Fernandes</surname>
<given-names>B. G.</given-names>
</name>
<name>
<surname>Guerrero</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Distributed control to ensure proportional load sharing and improve voltage regulation in low-voltage dc microgrids</article-title>. <source>IEEE Trans. Power Electron.</source>
<volume>28</volume>, <fpage>1900</fpage>&#x2013;<lpage>1913</lpage>. <pub-id pub-id-type="doi">10.1109/TPEL.2012.2215055</pub-id>
</citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bidram</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Davoudi</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>Hierarchical structure of microgrids control system</article-title>. <source>IEEE Trans. Smart Grid</source>
<volume>3</volume>, <fpage>1963</fpage>&#x2013;<lpage>1976</lpage>. <pub-id pub-id-type="doi">10.1109/TSG.2012.2197425</pub-id>
</citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chang</surname>
<given-names>J.-W.</given-names>
</name>
<name>
<surname>Chae</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>G.-S.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Distributed optimal power sharing strategy in an islanded hybrid ac/dc microgrid to improve efficiency</article-title>. <source>IEEE Trans. Power Deliv.</source>
<volume>38</volume>, <fpage>724</fpage>&#x2013;<lpage>737</lpage>. <pub-id pub-id-type="doi">10.1109/TPWRD.2022.3197434</pub-id>
</citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Dou</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Chi</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Z.-W.</given-names>
</name>
<name>
<surname>Wen</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>Q.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Distributed secondary control for voltage regulation and optimal power sharing in dc microgrids</article-title>. <source>IEEE Trans. Control Syst. Technol.</source>
<volume>30</volume>, <fpage>2561</fpage>&#x2013;<lpage>2572</lpage>. <pub-id pub-id-type="doi">10.1109/TCST.2022.3156391</pub-id>
</citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Guerrero</surname>
<given-names>J. M.</given-names>
</name>
<name>
<surname>Vasquez</surname>
<given-names>J. C.</given-names>
</name>
<name>
<surname>Matas</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>de Vicuna</surname>
<given-names>L. G.</given-names>
</name>
<name>
<surname>Castilla</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2011</year>). <article-title>Hierarchical control of droop-controlled ac and dc microgrids&#x2014;A general approach toward standardization</article-title>. <source>IEEE Trans. Industrial Electron.</source>
<volume>58</volume>, <fpage>158</fpage>&#x2013;<lpage>172</lpage>. <pub-id pub-id-type="doi">10.1109/TIE.2010.2066534</pub-id>
</citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Guo</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Wen</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Mao</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>Y. D.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Distributed economic dispatch for smart grids with random wind power</article-title>. <source>IEEE Trans. Smart Grid</source>
<volume>7</volume>, <fpage>1572</fpage>&#x2013;<lpage>1583</lpage>. <pub-id pub-id-type="doi">10.1109/TSG.2015.2434831</pub-id>
</citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hamad</surname>
<given-names>A. A.</given-names>
</name>
<name>
<surname>Azzouz</surname>
<given-names>M. A.</given-names>
</name>
<name>
<surname>El-Saadany</surname>
<given-names>E. F.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Multiagent supervisory control for power management in dc microgrids</article-title>. <source>IEEE Trans. Smart Grid</source>
<volume>7</volume>, <fpage>1</fpage>&#x2013;<lpage>1068</lpage>. <pub-id pub-id-type="doi">10.1109/TSG.2015.2452191</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hamzeh</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Ghazanfari</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Mohamed</surname>
<given-names>Y. A. R. I.</given-names>
</name>
<name>
<surname>Karimi</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Modeling and design of an oscillatory current-sharing control strategy in dc microgrids</article-title>. <source>IEEE Trans. Industrial Electron.</source>
<volume>62</volume>, <fpage>6647</fpage>&#x2013;<lpage>6657</lpage>. <pub-id pub-id-type="doi">10.1109/TIE.2015.2435703</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hatziargyriou</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Asano</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Iravani</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Marnay</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2007</year>). <article-title>Microgrids</article-title>. <source>IEEE Power Energy Mag.</source>
<volume>5</volume>, <fpage>78</fpage>&#x2013;<lpage>94</lpage>. <pub-id pub-id-type="doi">10.1109/MPAE.2007.376583</pub-id>
</citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hou</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>A hybrid voltage/current control scheme with low-communication burden for grid-connected series-type inverters in decentralized manner</article-title>. <source>IEEE Trans. Power Electron.</source>
<volume>37</volume>, <fpage>920</fpage>&#x2013;<lpage>931</lpage>. <pub-id pub-id-type="doi">10.1109/TPEL.2021.3093080</pub-id>
</citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hou</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Blaabjerg</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>A self-synchronized decentralized control for series-connected h-bridge rectifiers</article-title>. <source>IEEE Trans. Power Electron.</source>
<volume>34</volume>, <fpage>7136</fpage>&#x2013;<lpage>7142</lpage>. <pub-id pub-id-type="doi">10.1109/TPEL.2019.2896150</pub-id>
</citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Duan</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Chow</surname>
<given-names>M.-Y.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Distributed adaptive droop control for optimal power dispatch in dc microgrid</article-title>. <source>IEEE Trans. Industrial Electron.</source>
<volume>65</volume>, <fpage>778</fpage>&#x2013;<lpage>789</lpage>. <pub-id pub-id-type="doi">10.1109/TIE.2017.2698425</pub-id>
</citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Huang</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Zheng</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Xiao</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Distributed optimal control of dc microgrid considering balance of charge state</article-title>. <source>IEEE Trans. Energy Convers.</source>
<volume>37</volume>, <fpage>1</fpage>&#x2013;<lpage>2174</lpage>. <pub-id pub-id-type="doi">10.1109/TEC.2022.3169462</pub-id>
</citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Khorsandi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Ashourloo</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Mokhtari</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>A decentralized control method for a low-voltage dc microgrid</article-title>. <source>IEEE Trans. Energy Convers.</source>
<volume>29</volume>, <fpage>793</fpage>&#x2013;<lpage>801</lpage>. <pub-id pub-id-type="doi">10.1109/TEC.2014.2329236</pub-id>
</citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>de Bosio</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Chaudhary</surname>
<given-names>S. K.</given-names>
</name>
<name>
<surname>Vasquez</surname>
<given-names>J. C.</given-names>
</name>
<name>
<surname>Guerrero</surname>
<given-names>J. M.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Economic dispatch for operating cost minimization under real-time pricing in droop-controlled dc microgrid</article-title>. <source>IEEE J. Emerg. Sel. Top. Power Electron.</source>
<volume>5</volume>, <fpage>587</fpage>&#x2013;<lpage>595</lpage>. <pub-id pub-id-type="doi">10.1109/JESTPE.2016.2634026</pub-id>
</citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Z. W.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Distributed event-triggered scheme for economic dispatch in smart grids</article-title>. <source>IEEE Trans. Industrial Inf.</source>
<volume>12</volume>, <fpage>1775</fpage>&#x2013;<lpage>1785</lpage>. <pub-id pub-id-type="doi">10.1109/TII.2015.2479558</pub-id>
</citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>X.-K.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>S.-Q.</given-names>
</name>
<name>
<surname>Chi</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Z.-W.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.-W.</given-names>
</name>
</person-group> (<year>2023a</year>). <article-title>Resilient secondary control and stability analysis for dc microgrids under mixed cyber attacks</article-title>. <source>IEEE Trans. Industrial Electron.</source>
<volume>2023</volume>, <fpage>1</fpage>&#x2013;<lpage>10</lpage>. <comment>In press</comment>. <pub-id pub-id-type="doi">10.1109/TIE.2023.3262893</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>X.-K.</given-names>
</name>
<name>
<surname>Wen</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.-W.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Resilient control and analysis for dc microgrid system under DoS and impulsive FDI attacks</article-title>. <source>IEEE Trans. Smart Grid</source>
<volume>12</volume>, <fpage>3742</fpage>&#x2013;<lpage>3754</lpage>. <pub-id pub-id-type="doi">10.1109/TSG.2021.3072218</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>X.-K.</given-names>
</name>
<name>
<surname>Yan</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Xing</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Wen</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Constrained consensus-based iterative algorithm for economic dispatch in power systems</article-title>. <source>IECON 2020 46th Annu. Conf. IEEE Industrial Electron. Soc.</source>
<volume>2020</volume>, <fpage>3537</fpage>&#x2013;<lpage>3542</lpage>. <pub-id pub-id-type="doi">10.1109/IECON43393.2020.9255216</pub-id>
</citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Su</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Yuan</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Xie</surname>
<given-names>K.</given-names>
</name>
<etal/>
</person-group> (<year>2023b</year>). <article-title>Evaluation of myopia-associated genes in a Han Chinese population with high myopia</article-title>. <source>IEEE Trans. Power Syst.</source>
<volume>2023</volume>, <fpage>1</fpage>&#x2013;<lpage>5</lpage>. <comment>In press</comment>. <pub-id pub-id-type="doi">10.1080/13816810.2023.2191709</pub-id>
</citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Loia</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Vaccaro</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Decentralized economic dispatch in smart grids by self-organizing dynamic agents</article-title>. <source>IEEE Trans. Syst. Man, Cybern. Syst.</source>
<volume>44</volume>, <fpage>397</fpage>&#x2013;<lpage>408</lpage>. <pub-id pub-id-type="doi">10.1109/TSMC.2013.2258909</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Guerrero</surname>
<given-names>J. M.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Vasquez</surname>
<given-names>J. C.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>An improved droop control method for dc microgrids based on low bandwidth communication with dc bus voltage restoration and enhanced current sharing accuracy</article-title>. <source>IEEE Trans. Power Electron.</source>
<volume>29</volume>, <fpage>1800</fpage>&#x2013;<lpage>1812</lpage>. <pub-id pub-id-type="doi">10.1109/TPEL.2013.2266419</pub-id>
</citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Meng</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Shafiee</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Trecate</surname>
<given-names>G. F.</given-names>
</name>
<name>
<surname>Karimi</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Fulwani</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>X.</given-names>
</name>
<etal/>
</person-group> (<year>2017</year>). <article-title>Review on control of dc microgrids and multiple microgrid clusters</article-title>. <source>IEEE J. Emerg. Sel. Top. Power Electron.</source>
<volume>5</volume>, <fpage>928</fpage>&#x2013;<lpage>948</lpage>. <pub-id pub-id-type="doi">10.1109/JESTPE.2017.2690219</pub-id>
</citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Moayedi</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Davoudi</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Unifying distributed dynamic optimization and control of islanded dc microgrids</article-title>. <source>IEEE Trans. Power Electron.</source>
<volume>32</volume>, <fpage>2329</fpage>&#x2013;<lpage>2346</lpage>. <pub-id pub-id-type="doi">10.1109/TPEL.2016.2565517</pub-id>
</citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Morstyn</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Hredzak</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Agelidis</surname>
<given-names>V. G.</given-names>
</name>
</person-group> (<year>2016a</year>). <article-title>Cooperative multi-agent control of heterogeneous storage devices distributed in a dc microgrid</article-title>. <source>IEEE Trans. Power Syst.</source>
<volume>31</volume>, <fpage>2974</fpage>&#x2013;<lpage>2986</lpage>. <pub-id pub-id-type="doi">10.1109/TPWRS.2015.2469725</pub-id>
</citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Morstyn</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Hredzak</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Demetriades</surname>
<given-names>G. D.</given-names>
</name>
<name>
<surname>Agelidis</surname>
<given-names>V. G.</given-names>
</name>
</person-group> (<year>2016b</year>). <article-title>Unified distributed control for dc microgrid operating modes</article-title>. <source>IEEE Trans. Power Syst.</source>
<volume>31</volume>, <fpage>802</fpage>&#x2013;<lpage>812</lpage>. <pub-id pub-id-type="doi">10.1109/TPWRS.2015.2406871</pub-id>
</citation>
</ref>
<ref id="B28">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Nasirian</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Davoudi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Lewis</surname>
<given-names>F. L.</given-names>
</name>
<name>
<surname>Guerrero</surname>
<given-names>J. M.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Distributed adaptive droop control for dc distribution systems</article-title>. <source>IEEE Trans. Energy Convers.</source>
<volume>29</volume>, <fpage>944</fpage>&#x2013;<lpage>956</lpage>. <pub-id pub-id-type="doi">10.1109/TEC.2014.2350458</pub-id>
</citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Olivares</surname>
<given-names>D. E.</given-names>
</name>
<name>
<surname>Mehrizi-Sani</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Etemadi</surname>
<given-names>A. H.</given-names>
</name>
<name>
<surname>Canizares</surname>
<given-names>C. A.</given-names>
</name>
<name>
<surname>Iravani</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Kazerani</surname>
<given-names>M.</given-names>
</name>
<etal/>
</person-group> (<year>2014</year>). <article-title>Trends in microgrid control</article-title>. <source>IEEE Trans. Smart Grid</source>
<volume>5</volume>, <fpage>1905</fpage>&#x2013;<lpage>1919</lpage>. <pub-id pub-id-type="doi">10.1109/TSG.2013.2295514</pub-id>
</citation>
</ref>
<ref id="B30">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Papadimitriou</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Zountouridou</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Hatziargyriou</surname>
<given-names>N.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Review of hierarchical control in dc microgrids</article-title>. <source>Electr. Power Syst. Res.</source>
<volume>122</volume>, <fpage>159</fpage>&#x2013;<lpage>167</lpage>. <pub-id pub-id-type="doi">10.1016/j.epsr.2015.01.006</pub-id>
</citation>
</ref>
<ref id="B31">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Simpson-Porco</surname>
<given-names>J. W.</given-names>
</name>
<name>
<surname>Dorfler</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Bullo</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Synchronization and power sharing for droop-controlled inverters in islanded microgrids</article-title>. <source>Automatica</source>
<volume>49</volume>, <fpage>2603</fpage>&#x2013;<lpage>2611</lpage>. <pub-id pub-id-type="doi">10.1016/j.automatica.2013.05.018</pub-id>
</citation>
</ref>
<ref id="B32">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Cheng</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Hu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Z.</given-names>
</name>
<etal/>
</person-group> (<year>2023</year>). <article-title>A unified droop control of ac microgrids under different line impedances: Revisiting droop control and virtual impedance method</article-title>. <source>Front. Energy Res.</source>
<volume>11</volume>, <fpage>282</fpage>&#x2013;<lpage>283</lpage>. <pub-id pub-id-type="doi">10.1038/s41563-023-01487-3</pub-id>
</citation>
</ref>
<ref id="B33">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2016a</year>). <article-title>An improved distributed secondary control method for dc microgrids with enhanced dynamic current sharing performance</article-title>. <source>IEEE Trans. Power Electron.</source>
<volume>31</volume>, <fpage>6658</fpage>&#x2013;<lpage>6673</lpage>. <pub-id pub-id-type="doi">10.1109/TPEL.2015.2499310</pub-id>
</citation>
</ref>
<ref id="B34">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2016b</year>). <article-title>A fully distributed power dispatch method for fast frequency recovery and minimal generation cost in autonomous microgrids</article-title>. <source>IEEE Trans. Smart Grid</source>
<volume>7</volume>, <fpage>19</fpage>&#x2013;<lpage>31</lpage>. <pub-id pub-id-type="doi">10.1109/TSG.2015.2493638</pub-id>
</citation>
</ref>
<ref id="B35">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Wood</surname>
<given-names>A. J.</given-names>
</name>
<name>
<surname>Wollenberg</surname>
<given-names>B. F.</given-names>
</name>
</person-group> (<year>2012</year>). <source>Power generation, operation, and control</source>. <publisher-loc>United States</publisher-loc>: <publisher-name>John Wiley &#x26; Sons</publisher-name>.</citation>
</ref>
<ref id="B36">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xiao</surname>
<given-names>Z.-X.</given-names>
</name>
<name>
<surname>Guan</surname>
<given-names>Y.-Z.</given-names>
</name>
<name>
<surname>Fang</surname>
<given-names>H.-W.</given-names>
</name>
<name>
<surname>Terriche</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Guerrero</surname>
<given-names>J. M.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Dynamic and steady-state power-sharing control of high-efficiency dc shipboard microgrid supplied by diesel generators</article-title>. <source>IEEE Syst. J.</source>
<volume>16</volume>, <fpage>4595</fpage>&#x2013;<lpage>4606</lpage>. <pub-id pub-id-type="doi">10.1109/JSYST.2021.3111685</pub-id>
</citation>
</ref>
<ref id="B37">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xing</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Mou</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Fu</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Lin</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Distributed bisection method for economic power dispatch in smart grid</article-title>. <source>IEEE Trans. Power Syst.</source>
<volume>30</volume>, <fpage>3024</fpage>&#x2013;<lpage>3035</lpage>. <pub-id pub-id-type="doi">10.1109/TPWRS.2014.2376935</pub-id>
</citation>
</ref>
<ref id="B38">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Tan</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>J. X.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Consensus based approach for economic dispatch problem in a smart grid</article-title>. <source>IEEE Trans. Power Syst.</source>
<volume>28</volume>, <fpage>4416</fpage>&#x2013;<lpage>4426</lpage>. <pub-id pub-id-type="doi">10.1109/TPWRS.2013.2271640</pub-id>
</citation>
</ref>
<ref id="B39">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhao</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Cheng</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Consensus-based energy management in smart grid with transmission losses and directed communication</article-title>. <source>IEEE Trans. smart grid</source>
<volume>8</volume>, <fpage>2049</fpage>&#x2013;<lpage>2061</lpage>. <pub-id pub-id-type="doi">10.1109/tsg.2015.2513772</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>