<?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">878592</article-id>
<article-id pub-id-type="doi">10.3389/fenrg.2022.878592</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>Control and Optimization Algorithms for Lattice Power Grids With Multiple Grid-Forming Converters</article-title>
<alt-title alt-title-type="left-running-head">Zhang et al.</alt-title>
<alt-title alt-title-type="right-running-head">Algorithms for Lattice Power Grids</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Zhang</surname>
<given-names>Daniel Wei</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1604693/overview"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Fang</surname>
<given-names>Jingyang</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1267096/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Goetz</surname>
<given-names>Stefan</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>Department of Electrical and Computer Engineering</institution>, <institution>Pratt School of Engineering</institution>, <institution>Duke University</institution>, <addr-line>Durham</addr-line>, <addr-line>NC</addr-line>, <country>United States</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>School of Control Science and Engineering</institution>, <institution>Shandong University</institution>, <addr-line>Jinan</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/993077/overview">Peng Li</ext-link>, Tianjin University, China</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1017481/overview">Qian Xiao</ext-link>, Tianjin University, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1605606/overview">Fan Feng</ext-link>, Sun Yat-sen University, China</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Jingyang Fang, <email>jingyangfang@sdu.edu.cn</email>
</corresp>
<fn fn-type="other">
<p>This article was submitted to Smart Grids, a section of the journal Frontiers in Energy Research</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>04</day>
<month>05</month>
<year>2022</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>10</volume>
<elocation-id>878592</elocation-id>
<history>
<date date-type="received">
<day>18</day>
<month>02</month>
<year>2022</year>
</date>
<date date-type="accepted">
<day>31</day>
<month>03</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2022 Zhang, Fang and Goetz.</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Zhang, Fang and Goetz</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>The growth of renewable energies, together with their power converter interfaces, reshapes power systems into more-electronics power systems. Along with this paradigm shift is the requirement of grid formation by grid-tied power converters. However, existing grid architectures only allow parallel operation of grid-forming converters, which excludes high-voltage applications. This article proposes novel lattice power grids that combine the advantages of multilevel converters and power grids, thereby allowing both serial and parallel connectivity with modularity and scalability. Further, we propose control and optimization algorithms for lattice power grids by use of graph theory. In particular, we investigate H-bridge-based lattice power grids and achieve several objectives, including desired voltages and currents between any two selective nodes in lattice power grids as well as efficiency optimization by minimizing switching actions. To achieve these objectives, this article details control and optimization methodology for square lattice power grids. Finally, the proposed algorithms and lattice power grids are validated via simulation results.</p>
</abstract>
<kwd-group>
<kwd>H-bridge converters</kwd>
<kwd>multilevel converters</kwd>
<kwd>lattice power grids</kwd>
<kwd>power systems</kwd>
<kwd>renewable energies</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>The desire to reduce carbon emissions and to meet the rising global energy demand has led to the drastic increase in penetration of renewable energy sources (<xref ref-type="bibr" rid="B22">U.S. Department of Energy Office of Energy Efficiency and Renewable Energy, 2018</xref>; <xref ref-type="bibr" rid="B2">Chappell, 2021</xref>). Unlike traditional power sources which interface with power grids through synchronous generators (<xref ref-type="bibr" rid="B18">Hooshyar and Vahedi, 2007</xref>), renewable sources such as photovoltaics and wind turbines are usually decentralized geographically and interface with power grids through grid-tied power converters (<xref ref-type="bibr" rid="B10">Fang et al., 2017</xref>; <xref ref-type="bibr" rid="B9">Fang et al., 2019</xref>; <xref ref-type="bibr" rid="B11">Fang, 2021a</xref>). Power systems primarily based on grid-tied power converters are known as more-electronics power systems (see <xref ref-type="fig" rid="F1">Figure 1</xref>) (<xref ref-type="bibr" rid="B9">Fang et al., 2019</xref>; <xref ref-type="bibr" rid="B11">Fang, 2021a</xref>).</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Schematic of more-electronics power system.</p>
</caption>
<graphic xlink:href="fenrg-10-878592-g001.tif"/>
</fig>
<p>In conventional power systems, stability is guaranteed through the voltage/frequency support and rotational masses of synchronous generators, and grid-tied converters simply follow the established grid. However, the growing penetration of grid-tied power converters will necessitate grid-forming capabilities (<xref ref-type="bibr" rid="B17">Han et al., 2019</xref>; <xref ref-type="bibr" rid="B5">Deng et al., 2021</xref>; <xref ref-type="bibr" rid="B19">Lin, 2020</xref>; <xref ref-type="bibr" rid="B11">Fang, 2021a</xref>). As for current grid architectures, existing grid-forming converters can only be connected in parallel for current sharing, but they cannot withstand high voltages (<xref ref-type="bibr" rid="B19">Lin, 2020</xref>).</p>
<p>To undertake high voltages, multiple power electronic switches are connected in series to form multilevel converters (<xref ref-type="bibr" rid="B3">Das, 2019a</xref>; <xref ref-type="bibr" rid="B6">Fang et al., 2021a</xref>; <xref ref-type="bibr" rid="B7">Fang et al., 2021b</xref>). Among multilevel converters, cascaded-bridge converters (CBC), which consist of identical submodules in series, and modular multilevel converters (MMC), which replace individual active switches of two-level converters with CBC (<xref ref-type="bibr" rid="B3">Das, 2019a</xref>; <xref ref-type="bibr" rid="B6">Fang et al., 2021a</xref>; <xref ref-type="bibr" rid="B7">Fang et al., 2021b</xref>), stand out due to their modularity and scalability. Recently, research interests on multilevel converters with parallel connectivity in addition to serial connectivity have grown (<xref ref-type="bibr" rid="B14">Goetz et al., 2017</xref>; <xref ref-type="bibr" rid="B7">Fang et al., 2021b</xref>). Potential benefits of parallel connectivity include current sharing, reduced conduction losses, and sensorless voltage balancing. However, multilevel converters with parallel connectivity essentially connect a string of submodules (which tie each of their neighboring submodule with two terminals) in series. From a macroscopic point of view, such multilevel converters still feature a serial structure, thereby suffering from limited current ratings (<xref ref-type="bibr" rid="B7">Fang et al., 2021b</xref>).</p>
<p>Combining the parallel architecture of power systems and the serial structure of multilevel converters, this article proposes novel lattice power grids. A lattice power grid consists of multiple grid-forming converters arranged in a lattice structure. It shares the same topologies as the lattice converter, which is a newly developed power converter that aims to tile the two-dimensional plane or the three-dimensional space (<xref ref-type="bibr" rid="B12">Fang, 2021b</xref>; <xref ref-type="bibr" rid="B8">Fang and Goetz, 2021</xref>; <xref ref-type="bibr" rid="B21">Mei et al., 2022</xref>). The benefits of lattice power grids include the applicability to high-voltage and large-current applications, multiple input/output ports, as well as modularity and scalability (<xref ref-type="bibr" rid="B8">Fang and Goetz, 2021</xref>). The power converter efficiencies of lattice converters have been investigated by Mei et al. through simulations of lattice converters with 10&#xa0;&#x2126; load resistances and 0.01&#xa0;&#x2126; internal resistances. It was found that 3 &#xd7; 3 and 4 &#xd7; 4 lattice converters can achieve power converter efficiencies of 99.85 and 99.81%, respectively, and we seek to extend these benefits to lattice power grids. This article addresses the fundamental challenges of lattice power grids by use of graph theory.</p>
<p>The remainder of this article is organized as follows. <italic>Fundamentals of Lattice Power Grids</italic> section introduces the fundamentals of lattice power grids and introduces a method of modeling lattice power grids using graph theory. <italic>Objectives of the Proposed Control and Optimization Algorithms and Components of Control</italic> and <italic>Optimization Algorithms for Square Lattice Grids</italic> sections detail the algorithms that achieve desired voltage and current objectives for square lattice power grids. <italic>Generalizing the Proposed Algorithms for Various Lattice Structures</italic> section generalizes the proposed algorithms to other lattice types. <italic>Simulations and Results</italic> section provides simulation results for the proposed algorithms. Finally, concluding remarks are given in <italic>Conclusion</italic> section.</p>
</sec>
<sec id="s2">
<title>2 Fundamentals of Lattice Power Grids</title>
<sec id="s2-1">
<title>2.1 Grid-Forming Converters and Multilevel Converters</title>
<p>A more-electronics power system consists primarily of generators and loads that interface with the power grid through individual power converters (<xref ref-type="bibr" rid="B11">Fang, 2021a</xref>; <xref ref-type="bibr" rid="B10">Fang et al., 2017</xref>; <xref ref-type="bibr" rid="B9">Fang et al., 2019</xref>). These power converters feature many different topologies, among which single-phase and three-phase bridges are popular, such as the H-bridge converter shown in <xref ref-type="fig" rid="F2">Figure 2</xref> (<xref ref-type="bibr" rid="B3">Das, 2019a</xref>; <xref ref-type="bibr" rid="B7">Fang et al., 2021b</xref>). This article is applicable to various grid-forming converters. As one example, we will focus primarily on single-phase H-bridge grid-forming converters.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>H-bridge converter states. <bold>(A)</bold> ON state (&#x2b;Vdc). <bold>(B)</bold> ON state (&#x2212;Vdc). <bold>(C)</bold> Bypass state (Short Circuit). <bold>(D)</bold> OFF state (Open Circuit).</p>
</caption>
<graphic xlink:href="fenrg-10-878592-g002.tif"/>
</fig>
<p>The H-bridge converter is power electronic equipment that consists of a DC voltage source V<sub>dc</sub>, four semiconductor switches, and passive filters. As the proposed lattice power grids allow the removal of passive filters, we illustrate the operation of H-bridge converters via <xref ref-type="fig" rid="F2">Figure 2</xref> (<xref ref-type="bibr" rid="B4">Das, 2019b</xref>). As seen, an H-bridge converter can take on one of the four states:<list list-type="simple">
<list-item>
<p>1) The H-bridge outputs a positive voltage.</p>
</list-item>
<list-item>
<p>2) The H-bridge outputs a negative voltage.</p>
</list-item>
<list-item>
<p>3) The H-bridge is in bypass mode, acting as a short circuit.</p>
</list-item>
<list-item>
<p>4) The H-bridge acts as an open circuit.</p>
</list-item>
</list>
</p>
<p>Existing grid architectures for more-electronics power systems do not allow high-voltage applications of grid-forming converters, only allowing for current sharing through parallel operation (<xref ref-type="bibr" rid="B19">Lin, 2020</xref>). To allow for high-voltage DC and AC applications, we can turn to the benefits of multilevel converters.</p>
<p>In recent decades, multilevel converters have emerged as a technology of substantial interests due to their wide-ranging applications. Common multilevel converters include CBC and MMC (<xref ref-type="bibr" rid="B3">Das, 2019a</xref>; <xref ref-type="bibr" rid="B6">Fang et al., 2021a</xref>; <xref ref-type="bibr" rid="B7">Fang et al., 2021b</xref>). Such power converters often consist of half-bridge or H-bridge submodules in serial connection to allow for the creation and transmission of high voltages using lower-voltage components. As a result, multilevel converters have found a wide variety of applications across the field of power electronics (<xref ref-type="bibr" rid="B7">Fang et al., 2021b</xref>; <xref ref-type="bibr" rid="B13">Flourentzou et al., 2009</xref>). The concept of multilevel converters can be expanded to more-electronics power systems as well, with each grid-tied power source (solar PV, wind turbine, etc.) representing a submodule in a power grid (<xref ref-type="bibr" rid="B10">Fang et al., 2017</xref>; <xref ref-type="bibr" rid="B9">Fang et al., 2019</xref>; <xref ref-type="bibr" rid="B11">Fang, 2021a</xref>).</p>
<p>A drawback of existing multilevel converters is that serial connection does not allow for current sharing, thus limiting current ratings. Recent research has investigated the potential of multilevel converters that allow for parallel connectivity (<xref ref-type="bibr" rid="B15">Goetz et al., 2015</xref>; <xref ref-type="bibr" rid="B14">Goetz et al., 2017</xref>; <xref ref-type="bibr" rid="B3">Das, 2019a</xref>; <xref ref-type="bibr" rid="B6">Fang et al., 2021a</xref>; <xref ref-type="bibr" rid="B7">Fang et al., 2021b</xref>). Connecting CBC branches in parallel allows for a greater amount of current to be delivered and the use of components with lower current ratings (<xref ref-type="bibr" rid="B7">Fang et al., 2021b</xref>).</p>
</sec>
<sec id="s2-2">
<title>2.2 Square Lattice Power Grids and Their Graph Model</title>
<p>The square lattice power grid consists of several grid-forming H-bridge converters connected in a lattice structure (see <xref ref-type="fig" rid="F3">Figure 3A</xref>). Lattice power grids can be modeled using graph theory, with each H-bridge converter represented as an edge and each terminal between converters represented as a node (<xref ref-type="bibr" rid="B12">Fang, 2021b</xref>; <xref ref-type="bibr" rid="B8">Fang and Goetz, 2021</xref>; <xref ref-type="bibr" rid="B21">Mei et al., 2022</xref>). <xref ref-type="fig" rid="F3">Figure 3B</xref> depicts the graph model of the lattice power grid depicted in <xref ref-type="fig" rid="F3">Figure 3A</xref>.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Square lattice grids and its graph model. <bold>(A)</bold> ON 3 &#xd7; 3 lattice power grid. <bold>(B)</bold> Graph model of grid.</p>
</caption>
<graphic xlink:href="fenrg-10-878592-g003.tif"/>
</fig>
<p>We model the lattice power grid architecture depicted in <xref ref-type="fig" rid="F3">Figure 3</xref> as a square lattice graph, whose topology forms a square regular tiling <xref ref-type="bibr" rid="B23">(Weisstein, 2021)</xref>. The size of the graph is determined by the number of nodes along its height, <italic>n</italic>, and the number of nodes along its width, <italic>m</italic>. From <xref ref-type="fig" rid="F3">Figure 3B</xref>, <inline-formula id="inf1">
<mml:math id="m1">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf2">
<mml:math id="m2">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, and the graph can be described as a &#x201c;3 &#xd7; 3 square lattice,&#x201d; consisting of a total of 9 nodes and 12 edges.</p>
<p>To specify the location of a node, the graph can be considered as a coordinate system, with the coordinate (0, 0) representing the bottom-left node. If a node is located at coordinate <inline-formula id="inf3">
<mml:math id="m3">
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>, it is given the number <inline-formula id="inf4">
<mml:math id="m4">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2b;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, where, as before, <italic>n</italic> represents the total number of nodes along the width of the graph.</p>
<p>In other words, the bottom-left node is assigned to be the node number 0, and the node number counts upwards from left to right along each row. When the rightmost node of a row is reached, the next node counted is the leftmost node of the row directly above. The top-rightmost node is the highest-numbered, with node number <italic>mn</italic> &#x2212; 1. This numbering system, applied to a 3 &#xd7; 4 square lattice graph, is depicted in <xref ref-type="fig" rid="F4">Figure 4</xref>. Individual edges/converters can be referenced by the two nodes adjacent to them. For instance, &#x201c;edge 2&#x2013;3&#x201d; or &#x201c;converter 2&#x2013;3&#x201d; can be equivalently used to reference the H-bridge converter connecting node 2 and node 3.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Node numberings for 3 &#xd7; 4 lattice.</p>
</caption>
<graphic xlink:href="fenrg-10-878592-g004.tif"/>
</fig>
</sec>
<sec id="s2-3">
<title>2.3 Triangular Lattice Power Grids and Their Graph Model</title>
<p>A triangular lattice graph is formed by a regular tiling of equilateral triangles. However, the rows of a triangular lattice can be shifted, as shown in <xref ref-type="fig" rid="F5">Figure 5</xref>, so that the lattice lies on an <italic>m</italic> &#xd7; <italic>n</italic> square arrangement of nodes. Thus, it is evident that an <italic>m</italic> &#xd7; <italic>n</italic> triangular lattice is very similar to an <italic>m</italic> &#xd7; <italic>n</italic> square lattice.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Triangular lattice graphs. <bold>(A)</bold> 3 &#xd7; 3 Triangular lattice (Type 1). <bold>(B)</bold> 3 &#xd7; 3 Triangular lattice (Type 2).</p>
</caption>
<graphic xlink:href="fenrg-10-878592-g005.tif"/>
</fig>
<p>There are two embodiments of triangular lattices, which will be referred to as &#x201c;type 1&#x201d; and &#x201c;type 2&#x201d;, respectively. A type 1 triangular lattice is the one whose bottom left node has exactly three adjacent nodes, as shown in <xref ref-type="fig" rid="F5">Figure 5A</xref>. In a type 2 triangular lattice, the bottom left node has exactly two adjacent nodes, as shown in <xref ref-type="fig" rid="F5">Figure 5B</xref>.</p>
</sec>
<sec id="s2-4">
<title>2.4 Hexagonal Lattice Power Grids and Their Graph Mode</title>
<p>The nodes of a hexagonal lattice graph can also be shifted to lie in an <italic>m</italic> &#xd7; <italic>n</italic> square arrangement, as shown in <xref ref-type="fig" rid="F6">Figure 6</xref>. The hexagonal lattice takes on a &#x201c;bricklaying&#x201d; pattern. Vertical edges are connected in the same way as in a square lattice. However, a node is never connected horizontally to the right if there is already a node connected to its left. Furthermore, if a row begins with a pair of connected nodes, then the row above it must begin with a pair of unconnected nodes.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Hexagonal lattice graphs. <bold>(A)</bold> 4 &#xd7; 4 Hexagonal lattice (Type 1). <bold>(B)</bold> 4 &#xd7; 4 Hexagonal lattice (Type 2).</p>
</caption>
<graphic xlink:href="fenrg-10-878592-g006.tif"/>
</fig>
<p>There are also two embodiments of hexagonal lattices. Type 1 has its bottom left node connected to exactly two other nodes, while type 2 has its bottom left node connected to exactly one other node (see <xref ref-type="fig" rid="F6">Figure 6</xref>). In other words, the bottom row of a type 1 lattice begins with two connected nodes, while the bottom row of a type 2 lattice begins with two unconnected nodes.</p>
</sec>
<sec id="s2-5">
<title>2.5 Additional Lattice Types</title>
<p>This paper has discussed lattice power grids based on the three regular tilings: square, triangular, and hexagonal. However, the models and algorithms detailed in this paper are not limited to these three lattice types. As discussed later in <italic>Generalizing the Proposed Algorithms for Various Lattice Structures</italic> section, through the use of adjacency matrices, all of these concepts can be fully extended to any grid topology that is based on a simple, undirected graph. Several other lattice converter topologies have been proposed by <xref ref-type="bibr" rid="B12">Fang (2021b)</xref>. In two dimensions, this includes the eight Archimedean tilings in addition to the three regular tilings. In three dimensions, novel lattice converters based on polyhedral tilings, or honeycombs, have been investigated as well. These include the cubic honeycomb lattice converter, as well as 28 lattice converter topologies based on Archimedean honeycombs (<xref ref-type="bibr" rid="B12">Fang, 2021b</xref>). Because these aforementioned topologies can all be represented using simple, undirected graphs and their adjacency matrices, the concepts discussed in this paper can be fully extended to them.</p>
</sec>
</sec>
<sec id="s3">
<title>3 Objectives of the Proposed Control and Optimization Algorithms</title>
<p>This section details the objectives of lattice power grids. These include controlling grid-forming converters with a desired voltage difference between two nodes, allowing for enough current availability between those two nodes, and optimizing grid state changes while minimizing switching actions of power converters.</p>
<sec id="s3-1">
<title>3.1 Voltage and Current Parameters</title>
<p>The goal is to create control and optimization algorithms that can satisfy a set of input parameters. Each node in a lattice power grid can be viewed as an I/O terminal. The algorithm should be able to accept two arbitrary nodes and create a desired voltage difference along a path between them. To carry an enough current between two nodes, it is sometimes necessary to create two or more paths in parallel between them, allowing for current sharing between the H-bridge voltage sources along the paths.</p>
<p>These are the two main objectives of any grid state outputted by the algorithm: achieving a desired voltage between two nodes and creating a desired number of parallel paths between them. <xref ref-type="fig" rid="F7">Figure 7</xref> depicts a grid state of a 4 &#xd7; 4 square lattice power grid, where node 2 is the &#x201c;start&#x201d; node and node 13 is the &#x201c;destination&#x201d; node. Edges colored in blue represent H-bridge converters in the bypass mode (shorted), and edges in red represent converters in the ON state, either outputting &#x2b;V<sub>dc</sub> or &#x2212;V<sub>dc</sub>. Uncolored edges represent converters acting as an open circuit. In the grid state shown in <xref ref-type="fig" rid="F7">Figure 7</xref>, there is a voltage difference of &#x2b;3V<sub>dc</sub> between the start and destination nodes, and three paralleled paths between them.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Example grid state for a 4 &#xd7; 4 square lattice.</p>
</caption>
<graphic xlink:href="fenrg-10-878592-g007.tif"/>
</fig>
<p>All converters that are outputting voltages should be creating a voltage increase along its path in the direction from start to destination. For example, along the leftmost path of <xref ref-type="fig" rid="F7">Figure 7</xref>, there should be a voltage increase of V<sub>dc</sub> from node 2 to node 1, another from node 1 to node 0, and another from node 0 to node 4, creating a total voltage increase of &#x2b;3V<sub>dc</sub> along the path.</p>
<p>A new convention can be introduced here to determine whether an individual H-bridge converter is in the positive output state or the negative output state. If the converter creates a voltage increase from the lower-numbered node to the higher-numbered node, it is in the positive output state. On the other hand, if the converter creates a voltage increase from the higher-numbered node to the lower-numbered node, it is in state 2. For instance, in <xref ref-type="fig" rid="F7">Figure 7</xref>, converter 1&#x2013;2 is outputting &#x2212;V<sub>dc</sub>, while converter 2&#x2013;3 is outputting &#x2b; V<sub>dc</sub>.</p>
</sec>
<sec id="s3-2">
<title>3.2 Efficient Grid State Changes</title>
<p>Another objective can be considered when changing from one state to another. There may be multiple different states that fulfill the same parameters. If the lattice grid is in an initial state, and it is desirable to change states to fulfill a different set of parameters, there are often several possible end states to select from. The most efficient way to perform this change is by selecting the end state that requires the fewest number of individual converter-level state changes from the initial grid state. This is the final objective of the optimization algorithm.</p>
</sec>
</sec>
<sec id="s4">
<title>4 Components of Control and Optimization Algorithms for Square Lattice Grids</title>
<p>This section details the development and the components of control and optimization algorithms for square lattice grids.</p>
<sec id="s4-1">
<title>4.1 Creating a Square Lattice Graph</title>
<p>In the beginning, the lattice graph is implemented through a class called <bold>Graph</bold>. This class contains two main attributes: an integer representing the number of nodes in the graph and a dictionary indicating node adjacencies. If a graph contains <italic>v</italic> nodes, then its dictionary includes <italic>v</italic> keys <inline-formula id="inf5">
<mml:math id="m5">
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>...</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>v</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. The value corresponding to key <italic>x</italic> is a list containing all nodes that are adjacent to node <italic>x</italic> in the graph.</p>
<p>The <bold>Graph</bold> class also contains the function <inline-formula id="inf6">
<mml:math id="m6">
<mml:mrow>
<mml:mi mathvariant="bold-italic">addEdge</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>a</mml:mi>
<mml:mo>,</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
<bold>,</bold> which appends node <italic>b</italic> to the list corresponding to key <italic>a</italic> in the dictionary, indicating that node <italic>a</italic> is adjacent to node <italic>b</italic>. A graph <bold>g</bold> consisting of <italic>v</italic> nodes can be initialized using the statement <inline-formula id="inf7">
<mml:math id="m7">
<mml:mrow>
<mml:mi mathvariant="bold-italic">g</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold-italic">&#xa0;Graph</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold-italic">g</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, creating a graph of <italic>v</italic> unconnected nodes, which can then be connected using <bold>addEdge</bold>.</p>
<p>To create an <inline-formula id="inf8">
<mml:math id="m8">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> square lattice from an initially unconnected graph <bold>g</bold>, the <bold>createGrid</bold> function iterates through all nodes in the graph. For a node with position (<italic>i, j</italic>) and node number x, <bold>createGrid</bold> uses <bold>addEdge</bold> to connect it with the node to its right, if one exists, and the node above, if one exists. If <inline-formula id="inf9">
<mml:math id="m9">
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2b;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2264;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, then node <inline-formula id="inf10">
<mml:math id="m10">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2b;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> (the node to the right) is connected to <italic>x</italic>. If <inline-formula id="inf11">
<mml:math id="m11">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2b;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2264;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, then node <italic>x &#x2b; n</italic> (the node above) is connected to <italic>x.</italic> This process is demonstrated in <xref ref-type="fig" rid="F8">Figure 8</xref> for a 2 &#xd7; 3 square lattice graph. After iterating through all nodes in the graph, the result is an <inline-formula id="inf12">
<mml:math id="m12">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#xd7;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> square lattice grid.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Formation of 2 &#xd7; 3 square lattice. <bold>(A)</bold> Unconnected lattice. <bold>(B)</bold> Connecting node 0. <bold>(C)</bold> Connecting node 1. <bold>(D)</bold> Connecting node 2. <bold>(E)</bold> Connecting node 3. <bold>(F)</bold> Connecting node 4. <bold>(G)</bold> Connecting node 5.</p>
</caption>
<graphic xlink:href="fenrg-10-878592-g008.tif"/>
</fig>
</sec>
<sec id="s4-2">
<title>4.2 Pathfinding Algorithm</title>
<p>The pathfinding component of the control and optimization algorithms will address the desired voltage difference parameter. The inputs to this algorithm are the desired dimensions <italic>m</italic> and <italic>n</italic> of the square lattice graph, the start and destination node numbers, and the desired voltage difference to be created between them.</p>
<p>Conceptually, to create a voltage difference between two nodes of &#x2b;<italic>k</italic>V<sub>dc</sub>, where <italic>k</italic> is an integer, a path of length <italic>k</italic> or greater must be found between the nodes. If a path has length <italic>l</italic>, where <inline-formula id="inf13">
<mml:math id="m13">
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2265;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, the first <italic>k</italic> edges along the path can each create a voltage increase of V<sub>dc</sub> in the direction from start to destination, while the remaining <inline-formula id="inf14">
<mml:math id="m14">
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> edges in the path can be bypassed. It can be noted that these &#x201c;paths&#x201d; consist of H-bridge converters connected in series; this is essentially a cascaded-bridge multilevel converter.</p>
<p>Two caveats will be addressed here; firstly, only integer values of <italic>k</italic> will be considered, as non-integer multiples of V<sub>dc</sub> can be achieved through pulse-wave modulation. Secondly, it is not necessarily required that the first <italic>k</italic> edges in the path output voltage and the rest remain bypassed. It would be a valid solution to distribute the <italic>l</italic> &#x2212; <italic>k</italic> bypassed edges in any possible way throughout the path. However, for the sake of simplicity and for preserving the efficiency of the algorithm, the only solutions that will be considered are those where all bypassed edges are located towards the end of the path, near the destination node.</p>
<p>The pathfinding algorithm itself, named <bold>findPaths</bold>, utilizes Depth-First Search (DFS) of a graph to search for viable paths (<xref ref-type="bibr" rid="B16">Goodrich and Tamassia, 2001</xref>; <xref ref-type="bibr" rid="B24">Yadav, 2021a</xref>; <xref ref-type="bibr" rid="B25">Yadav, 2021b</xref>). While traversing a graph, it is possible to visit the same node twice, which is not possible in a binary search tree. This must be avoided during DFS, so the algorithm also tracks which nodes have been visited (<xref ref-type="bibr" rid="B24">Yadav, 2021a</xref>). As the algorithm traverses the graph, visited nodes will be marked as such and will not be revisited. While the algorithm is backtracking, nodes removed from the path will again be marked as &#x201c;unvisited,&#x201d; allowing for new paths to be found.</p>
<p>This DFS algorithm traverses all possible paths through the graph originating from the start node. The other two input parameters to <bold>findPaths</bold> are the destination node number and the desired voltage difference <italic>k</italic>. With every edge traversal, <bold>findPaths</bold> checks if the current visited node is the same as the destination node. If this is the case, <bold>findPaths</bold> then checks whether this path from start to destination is of length <italic>k</italic> or greater. If both conditions are met, then the algorithm has found a viable path, which is stored in a list of lists. When the DFS algorithm has finished running, this list of lists contains all viable paths from start to destination and is returned by <bold>findPaths</bold>.</p>
<p>Suppose the inputs to <bold>findPaths</bold> are <inline-formula id="inf15">
<mml:math id="m15">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf16">
<mml:math id="m16">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, start node 0, destination node 5, and <inline-formula id="inf17">
<mml:math id="m17">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. Then the output of <bold>findPaths</bold> is the following list of lists:<disp-formula id="equ1">
<mml:math id="m18">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtext>0,&#xa0;</mml:mtext>
<mml:mn>1</mml:mn>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mn>2</mml:mn>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtext>0,&#xa0;</mml:mtext>
<mml:mn>1</mml:mn>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mn>4</mml:mn>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtext>0,&#xa0;</mml:mtext>
<mml:mn>3</mml:mn>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mn>4</mml:mn>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mn>1</mml:mn>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mn>2</mml:mn>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtext>0,&#xa0;</mml:mtext>
<mml:mn>3</mml:mn>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mn>4</mml:mn>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Thus, there are four viable paths that meet the desired parameters in this example: three paths of length 3 and one path of length 5.</p>
</sec>
<sec id="s4-3">
<title>4.3 Parallel Paths Algorithm</title>
<p>The parallel paths component of the control and optimization algorithms, called <bold>currentPaths</bold>, will meet the requirement of current sharing. As real-world power converters are non-ideal and are limited by current ratings, it is often necessary to share current by connecting voltage sources in parallel. In the case of lattice grids, the amount of available current depends on the number of paralleled paths between the source and destination nodes.</p>
<p>For two paths to be considered parallel, they must meet at the start and destination nodes and cannot share any edges. Intersections between two or more paths are possible; however, at the point of intersection, all paths must yield the same voltage to avoid a conflict. <xref ref-type="fig" rid="F7">Figure 7</xref> depicts an example of a <inline-formula id="inf18">
<mml:math id="m19">
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#xd7;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> lattice with three paralleled paths between node 3 and node 12.</p>
<p>The algorithm works as follows. Given an <inline-formula id="inf19">
<mml:math id="m20">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#xd7;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> square lattice graph, a pair of start/destination nodes, and a desired voltage difference, all viable paths can be determined by the pathfinding algorithm <bold>findPaths</bold> as described previously. These viable paths are outputted in the form of a list of lists, with each list containing a path. In each of these lists, the first element is the starting node, and the final element is the destination node.</p>
<p>Suppose that <italic>p</italic> is the desired number of paralleled paths. Then <bold>currentPaths</bold> arranges viable paths in permutations of size <italic>p</italic>. For each permutation, the algorithm iterates through each path contained in the permutation. The voltage of each node in the lattice is tracked and updated by the algorithm as it iterates through the paths. If a voltage conflict is detected between two paths in a permutation, then it is considered an invalid intersection and the permutation is discarded.</p>
<p>Furthermore, two parallel paths cannot share an edge. Thus, the algorithm also tracks which edges are occupied using an <inline-formula id="inf20">
<mml:math id="m21">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>n</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>n</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> matrix similar to an adjacency matrix. This matrix is initially all zeros, but elements are replaced with a value of 1 when a path traverses the associated edge. If another path attempts to traverse this edge, then an edge conflict arises, and the permutation is discarded. The remaining path permutations are thus considered valid and are returned by <bold>currentPaths</bold>.</p>
<p>Recall the example output from <italic>Pathfinding Algorithm</italic> section given by <bold>findPaths</bold> for a 2 &#xd7; 3 square lattice graph with start node 0, destination node 5, and desired voltage difference 3:<disp-formula id="equ2">
<mml:math id="m22">
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtext>0,&#xa0;</mml:mtext>
<mml:mn>1</mml:mn>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mn>2</mml:mn>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mtext>,</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtext>0,&#xa0;</mml:mtext>
<mml:mn>1</mml:mn>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mn>4</mml:mn>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mtext>,</mml:mtext>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtext>0,&#xa0;</mml:mtext>
<mml:mn>3</mml:mn>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mn>4</mml:mn>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mn>1</mml:mn>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mn>2</mml:mn>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtext>0,&#xa0;</mml:mtext>
<mml:mn>3</mml:mn>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mn>4</mml:mn>
<mml:mtext>,&#xa0;</mml:mtext>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Now, suppose that two parallel paths are desired to provide current sharing. Then, the four viable paths are placed in every possible permutation of size two, of which there are six:<list list-type="simple">
<list-item>
<p>1) [[0, 1, 2, 5], [0, 1, 4, 5]].</p>
</list-item>
<list-item>
<p>2) [[0, 1, 2, 5], [0, 3, 4, 1, 2, 5]]</p>
</list-item>
<list-item>
<p>3) [[0, 1, 2, 5], [0, 3, 4, 5]]</p>
</list-item>
<list-item>
<p>4) [[0, 1, 4, 5], [0, 3, 4, 1, 2, 5]]</p>
</list-item>
<list-item>
<p>5) [[0, 1, 4, 5], [0, 3, 4, 5]]</p>
</list-item>
<list-item>
<p>6) [[0, 3, 4, 1, 2, 5], [0, 3, 4, 5]]</p>
</list-item>
</list>
</p>
<p>Of these six permutations, the second and fourth can be discarded due to voltage. All except the third can also be discarded due to edge conflicts (e.g., edge 0&#x2013;1 in permutation 1). The algorithm concludes that the two paths [0, 1, 2, 5] and [0, 3, 4, 5] from permutation 3 are in fact parallel and represent the only valid solution to the given parameters as no conflicts arose.</p>
<p>The algorithm in its current version assumes that paralleled paths start and end at the same nodes. Thus, the maximum number of paralleled paths is limited by the number of nodes adjacent to the start or destination nodes. The maximum number of paralleled paths can be theoretically increased through edge contraction, in which the start/destination nodes can be combined with neighboring nodes via short circuit (<xref ref-type="bibr" rid="B1">Belloch, 2012</xref>), essentially forming a &#x201c;supernode&#x201d; that can accommodate a greater number of paralleled paths. While not implemented in the current version of the algorithm, edge contraction represents a possible area for further exploration.</p>
</sec>
<sec id="s4-4">
<title>4.3 Least Changes of Converters Algorithm</title>
<p>The <bold>leastChanges</bold> algorithm deals with time-variant state changes of grid-forming converters. Assuming that the lattice power grid is in some initial state, it is then required to change the state to fulfill new objectives, then the most efficient way to do so is to select the end state that requires the smallest number of individual converter-level state changes, thus minimizing switching actions. In other words, out of all possible end states that fulfill the new objectives, the most efficient end state is the one that is the &#x201c;most similar&#x201d; to the initial state.</p>
<p>The &#x201c;similarity&#x201d; between two grid states can be compared using adjacency matrices. A grid consisting of <italic>v</italic> nodes will have an associated adjacency matrix of size <italic>v</italic> &#xd7; <italic>v</italic>. In graph theory, adjacency matrices typically allow for two states: 0, indicating a pair of non-adjacent nodes, or 1, indicating an adjacency. However, as described in <italic>Fundamentals of Lattice Power Grids</italic> section, H-bridge converters can yield four possible states. Thus, the adjacency matrices introduced here also have four possible values for each element. 0 represents an open circuit, 1 and &#x2212;1 represent an H-bridge converter outputting &#x2b; V<sub>dc</sub> and &#x2212;V<sub>dc</sub>, respectively, and 0.01 represents the bypass state, with the value chosen to represent a negligible voltage difference.</p>
<p>This adjacency matrix indicates the states of each H-bridge converter and will be referred to as the &#x201c;path matrix.&#x201d; This is meant to distinguish from the &#x201c;graph matrix,&#x201d; a separate adjacency matrix that is discussed later in <italic>Generalizing the Proposed Algorithms for Various Lattice Structures</italic> section. An example of the path matrix is depicted in <xref ref-type="fig" rid="F9">Figure 9</xref>, where a grid state of a 3 &#xd7; 3 lattice is shown in <xref ref-type="fig" rid="F9">Figure 9A</xref> and its associated path matrix <bold>P</bold> is shown in <xref ref-type="fig" rid="F9">Figure 9B</xref>.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>Example grid state and path matrix. <bold>(A)</bold> Example grid state. <bold>(B)</bold> Associated path matrix.</p>
</caption>
<graphic xlink:href="fenrg-10-878592-g009.tif"/>
</fig>
<p>Each converter-level state change is associated with two changes in the path matrix (changing the state of edge a-b will change elements <bold>P</bold>
<sub>ab</sub> and <bold>P</bold>
<sub>ba</sub> in path matrix <bold>P</bold>). The <bold>leastChanges</bold> algorithm thus obtains the path matrix of the initial state, along with the path matrices of all viable path permutations outputted by <bold>currentPaths</bold>. The most efficient end state is the one whose path matrix has the fewest number of differences from the initial path matrix. If there are <italic>d</italic> differences between the initial and end path matrices, then <italic>d</italic>/2 converter state changes must have occurred.</p>
<p>Suppose that the state depicted in <xref ref-type="fig" rid="F9">Figure 9A</xref> is taken to be the initial state. Then suppose that a set of new requirements is desired: &#x2b;4V<sub>dc</sub> voltage difference, only one current path, start node at node 0, and destination node at node 8. The end state selected by <bold>leastChanges</bold> and its associated path matrix are shown in <xref ref-type="fig" rid="F10">Figure 10</xref>.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>Example output of LeastChanges. <bold>(A)</bold> Grid end state. <bold>(B)</bold> Associated path matrix.</p>
</caption>
<graphic xlink:href="fenrg-10-878592-g010.tif"/>
</fig>
<p>Out of all viable end states that fulfill the desired parameters, the state shown in <xref ref-type="fig" rid="F10">Figure 10A</xref> is the one that requires the smallest number of converter-level state changes from the initial state. Seven converter-level state changes are required in this example (Note that edges 1&#x2013;4 and 4&#x2013;5 flipped in polarity).</p>
</sec>
<sec id="s4-5">
<title>4.5 Combined Algorithm</title>
<p>The components of the proposed control and optimizations algorithm can now be integrated into one. The final optimization algorithm runs on a while loop. On the first loop, the user is prompted for the dimensions <italic>m</italic>, <italic>n</italic> of the square lattice, and the graph is created using <bold>createGrid</bold>. The initial state on the first loop has all converters turned OFF, so all elements in its path matrix are filled with 0. The user then inputs desired specifications for the end state: start, destination, target voltage, and number of parallel paths. The algorithm calls <bold>findPaths</bold> and <bold>currentPaths</bold> to identify all path permutations that fulfill the parameters. These permutations are inputted into <bold>leastChanges</bold>, which identifies the most efficient end state.</p>
<p>The previous end state then becomes the new initial state. The algorithm can prompt the user to input new parameters, and the process can continue indefinitely. On each loop, the algorithm outputs the following: the path permutation of the end state, the path matrix of the end state, and the number of converter-level state changes from the initial state. The end state is then plotted using the <bold>networkx</bold> Python package.</p>
</sec>
</sec>
<sec id="s5">
<title>5 Generalizing the Proposed Algorithms for Various Lattice Structures</title>
<sec id="s5-1">
<title>5.1 Graph Matrices</title>
<p>To allow for the creation of arbitrary graphs, the &#x201c;graph matrix&#x201d; is introduced here. The graph matrix is another adjacency matrix that indicates which nodes are connected by H-bridge converters (edges). For a graph containing <italic>v</italic> nodes, its graph matrix will contain <italic>v</italic> &#xd7; <italic>v</italic> elements. If an edge exists between nodes <italic>a</italic> and <italic>b,</italic> then element <bold>G</bold>
<sub>ab</sub> and <bold>G</bold>
<sub>ba</sub> will be filled with 1. Otherwise, it will be filled with 0. This is distinct from the path matrix described earlier, which indicates the state of each converter (&#x2b;V<sub>dc</sub>, &#x2212;V<sub>dc</sub>, shorted, or OFF).</p>
<p>The function used to create the desired graph matrix is called <bold>createGM</bold> (rather than <bold>createGrid</bold>). A graph matrix can be used to create a <bold>Graph</bold> object by iterating through each element of the matrix and using the <bold>addEdge</bold> function to connect nodes as directed. The graph matrix outputted by <bold>createGM</bold> is passed into <bold>findPaths</bold>, which uses it to create a <bold>Graph</bold> object, and the rest of the algorithm works exactly as described in <italic>Components of Control and Optimization Algorithms for Square Lattice Grids</italic> section.</p>
<p>Any simple, undirected graph can be created using graph matrices. Besides square lattice graphs, there exist two other types of lattice graphs: triangular and hexagonal. <italic>Creating a Triangular Lattice</italic> and <italic>Creating a Hexagonal Lattice</italic> sections explain how graph matrices can be used to generate triangular and hexagonal lattice graphs.</p>
</sec>
<sec id="s5-2">
<title>5.2 Creating a Square Lattice</title>
<p>The graph matrix for the square lattice graph is generated in exactly the same way as described in <italic>Creating a Square Lattice Graph</italic> section, except by filling in the elements of a graph matrix instead of directly using the <bold>addEdge</bold> function.</p>
<p>The process starts with an (<italic>m</italic> &#xd7; <italic>n</italic>) &#xd7; (<italic>m</italic> &#xd7; <italic>n</italic>) matrix <bold>G</bold>, consisting of all zeroes. The <bold>createGM</bold> function iterates through all nodes in the graph. For a node with position (<italic>i, j</italic>) and node number <inline-formula id="inf21">
<mml:math id="m23">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2013;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2b;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, elements <bold>G</bold>
<sub>x,x&#x2b;n</sub> and <bold>G</bold>
<sub>x&#x2b;n,x</sub> are flipped to 1 if <inline-formula id="inf22">
<mml:math id="m24">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2b;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2264;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, and elements <bold>G</bold>
<sub>x,x&#x2b;1</sub> and <bold>G</bold>
<sub>x&#x2b;1,x</sub> are flipped to 1 if <inline-formula id="inf23">
<mml:math id="m25">
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2b;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2264;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
<italic>.</italic> This connects the node with the node to its right, if one exists, and the node directly above, if one exists. Upon repeating this process for every node in the lattice, <bold>createGM</bold> outputs the graph matrix for an <italic>m</italic> x <italic>n</italic> square lattice graph.</p>
</sec>
<sec id="s5-3">
<title>5.3 Creating a Triangular Lattice</title>
<p>Recall that a triangular lattice simply consists of diagonal connections added to a square lattice (see <xref ref-type="fig" rid="F5">Figure 5</xref>). Thus, the procedure for forming a graph matrix for a triangular lattice graph matrix is the same as the procedure for a square lattice graph, with the addition of diagonal connections. For a type 1 triangular lattice, each node <italic>x</italic> is connected to the node directly to its top right if one exists. In other words, for a node with position (<italic>i, j</italic>) and node number <inline-formula id="inf24">
<mml:math id="m26">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2013;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2b;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2013;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, node, graph matrix elements <bold>G</bold>
<sub>x,x&#x2b;n&#x2b;1</sub> and <bold>G</bold>
<sub>x&#x2b;n&#x2b;1,x</sub> are flipped to 1 if <inline-formula id="inf25">
<mml:math id="m27">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2b;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2264;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf26">
<mml:math id="m28">
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2b;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2264;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>
<italic>.</italic> This connects node <italic>x</italic> with node <italic>x</italic> &#x2b; <italic>n</italic> &#x2b; 1. Horizontal and vertical connections are handled as they were for a square lattice.</p>
<p>For a type 2 triangular lattice, each node <italic>x</italic> is connected to the node directly to its top left if one exists. In other words, graph matrix elements <bold>G</bold>
<sub>x,x&#x2b;n&#x2212;1</sub> and <bold>G</bold>
<sub>x&#x2b;n&#x2212;1,x</sub> are flipped to 1 if <inline-formula id="inf27">
<mml:math id="m29">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2b;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2264;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf28">
<mml:math id="m30">
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2265;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>
<italic>.</italic> This connects node <italic>x</italic> with node <inline-formula id="inf29">
<mml:math id="m31">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2b;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mi>n</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>Upon repeating this process for every node in the lattice, <bold>createGM</bold> outputs the graph matrix for an <italic>m</italic> &#xd7; <italic>n</italic> triangular lattice graph (see <xref ref-type="fig" rid="F11">Figure 11</xref>).</p>
<fig id="F11" position="float">
<label>FIGURE 11</label>
<caption>
<p>Formation of 2 &#xd7; 3 triangular lattice. <bold>(A)</bold> Unconnected lattice. <bold>(B)</bold> Connecting node 0. <bold>(C)</bold> Connecting node 1. <bold>(D)</bold> Connecting node 2. <bold>(E)</bold> Connecting node 3. <bold>(F)</bold> Connecting node 4. <bold>(G)</bold> Connecting node 5.</p>
</caption>
<graphic xlink:href="fenrg-10-878592-g011.tif"/>
</fig>
</sec>
<sec id="s5-4">
<title>5.4 Creating a Hexagonal Lattice</title>
<p>Recall that a hexagonal lattice can also be placed on a square arrangement of nodes (see <xref ref-type="fig" rid="F6">Figure 6</xref>), forming a &#x201c;brick&#x201d; pattern. In this pattern, pairs of horizontally adjacent nodes alternate between being connected and unconnected across the rows and columns of the lattice.</p>
<p>This pattern is achieved through the addition of a Boolean value named <bold>connect</bold>, which determines whether the current node will be connected to the right. For a type 1 lattice, when <bold>createGM</bold> reaches the first node in any row <italic>i</italic>, <bold>connect</bold> is set to <bold>FALSE</bold> if the row is even (<inline-formula id="inf30">
<mml:math id="m32">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>%</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>), or set to <bold>TRUE</bold> if the row is odd (<inline-formula id="inf31">
<mml:math id="m33">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>%</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>&#xa0;</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#xa0;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>). Row 1 is considered to be the bottom row. Then, as <bold>createGM</bold> iterates across the row, the value of <bold>connect</bold> flips with each iteration. These alternating horizontal connections form the &#x201c;brick&#x201d; pattern seen in <xref ref-type="fig" rid="F6">Figure 6</xref>.</p>
<p>Upon repeating this process for every node in the lattice, <bold>createGM</bold> outputs the graph matrix for an <italic>m</italic> x <italic>n</italic> hexagonal lattice graph (see <xref ref-type="fig" rid="F12">Figure 12</xref>).</p>
<fig id="F12" position="float">
<label>FIGURE 12</label>
<caption>
<p>Formation of 3 &#xd7; 3 hexagonal lattice. <bold>(A)</bold> Unconnected lattice. <bold>(B)</bold> Connecting node 0 (connect &#x3d; 1), Connecting node 1 (connect &#x3d; 0). <bold>(C)</bold> Connecting node 0 (connect &#x3d; 1), Connecting node 1 (connect &#x3d; 0). <bold>(D)</bold> Connecting node 4 (connect &#x3d; 1), Connecting node 5 (connect &#x3d; 0). <bold>(E)</bold> Connecting node 6 (connect &#x3d; 1), Connecting node 7 (connect &#x3d; 0). <bold>(F)</bold> Final lattice.</p>
</caption>
<graphic xlink:href="fenrg-10-878592-g012.tif"/>
</fig>
</sec>
<sec id="s5-5">
<title>5.5 Final Optimization Algorithm</title>
<p>The final version of <bold>createGM</bold> essentially consists of six &#x2018;if&#x2019; statements, one for each potential type of graph. If the user inputs &#x201c;G&#x201d; for &#x201c;general,&#x201d; <bold>createGM</bold> prompts the user to input the desired graph matrix row by row, allowing for any arbitrary graph. The user inputs &#x201c;S&#x201d; for a square lattice, &#x201c;T1&#x201d; or &#x201c;T2&#x201d; for a type 1 or type 2 triangular lattice, and &#x201c;H1&#x201d; or &#x201c;H2&#x201d; for a type 1 or type 2 hexagonal lattice. If the user inputs one of these lattice types, <bold>createGM</bold> will also prompt the user to input dimensions <italic>m</italic> and <italic>n</italic> of the lattice. The final output of <bold>createGM</bold> is the desired graph matrix.</p>
<p>The integrated optimization algorithm is the same as described in <italic>Components of Control and Optimization Algorithms for Square Lattice Grids</italic> section, except <bold>createGrid</bold> is replaced with <bold>createGM</bold>. The graph outputted by <bold>createGM</bold> is passed into <bold>findPaths</bold>, where all viable paths fulfilling the desired parameters are outputted. <bold>currentPaths</bold> then finds viable permutations of parallel paths. <bold>leastChanges</bold> determines which permutation requires the smallest number of converter-level changes from the initial state. This permutation is then printed and drawn. A flowchart of the overall control and optimization algorithms is depicted in <xref ref-type="fig" rid="F13">Figure 13</xref>.</p>
<fig id="F13" position="float">
<label>FIGURE 13</label>
<caption>
<p>Flowchart of algorithms.</p>
</caption>
<graphic xlink:href="fenrg-10-878592-g013.tif"/>
</fig>
</sec>
</sec>
<sec id="s6">
<title>6 Simulations and Results</title>
<sec id="s6-1">
<title>6.1 Simulations of the Lattice Grid</title>
<p>The lattice grid was simulated under the MATLAB Simulink/SimScape environment. The H-bridge converters were built with the &#x201c;Full-Bridge Converter&#x201d; block in SimScape (<xref ref-type="bibr" rid="B20">Mathworks, 2021</xref>). In the converter subsystem, the Full-Bridge Converter block is connected to a 1&#xa0;kV DC voltage source for simplicity. It is given an on-state resistance of 10<sup>&#x2013;3</sup>&#xa0;&#x2126; and a snubber resistance of 10<sup>6</sup>&#xa0;&#x2126;, as well as an infinite snubber capacitance. A control signal entering the gating port consists of a 1 &#xd7; 4 array controlling the four semiconductor switches in the converter (<xref ref-type="bibr" rid="B20">Mathworks, 2021</xref>). The matrices [0 1 1 0] and [1 0 0 1] correspond to the positive and negative ON-states, respectively. The matrix [1 0 1 0] (or [0 1 0 1]) corresponds to the bypass state, while [0 0 0 0] corresponds to the OFF-state.</p>
<p>
<xref ref-type="fig" rid="F14">Figure 14</xref> shows the complete simulated model of a 3 &#xd7; 4 square lattice power grid. In all, this model contains 17&#xa0;H-bridge converter submodules, along with 17 &#xd7; 4 gating signals to control them. As a 3 &#xd7; 4 lattice contains 12 nodes, the path adjacency matrix (PAM) representing any given grid state will be a 12 &#xd7; 12 matrix. Thus, the controller block is a MATLAB function block which accepts a 12 &#xd7; 12 matrix as the input and demultiplexes it into 17 &#xd7; 4 output gating signals. The grid state can then be set by inputting the appropriate path adjacency matrix into the controller block.</p>
<fig id="F14" position="float">
<label>FIGURE 14</label>
<caption>
<p>Simulated 3 &#xd7; 4 lattice power grid with measurement apparatus.</p>
</caption>
<graphic xlink:href="fenrg-10-878592-g014.tif"/>
</fig>
</sec>
<sec id="s6-2">
<title>6.2 Simulation Results</title>
<p>We inputted the following parameters into the control and optimization algorithms:</p>
<p>
<monospace>Enter the Desired Lattice Type: S</monospace>
</p>
<p>
<monospace>Enter the height m of the grid: 3</monospace>
</p>
<p>
<monospace>Enter the width n of the grid: 4</monospace>
</p>
<p>
<monospace>Enter the starting node number: 0</monospace>
</p>
<p>
<monospace>Enter the destination node number: 11</monospace>
</p>
<p>
<monospace>Enter the desired voltage difference: 3</monospace>
</p>
<p>
<monospace>Enter the desired number of paralleled paths: 1</monospace>
</p>
<p>These parameters returned a grid state and path adjacency matrix shown. This path adjacency matrix was placed into the model. An RLC load was connected between nodes 0 and 11 of the model, with a resistance of 5&#xa0;&#x2126;, an inductance of 10&#xa0;mH. Voltage and current measurement blocks were connected accordingly as well (see <xref ref-type="fig" rid="F14">Figure 14</xref>). (Note: In <xref ref-type="fig" rid="F14">Figure 14</xref>, submodule blocks were colored in manually to indicate converter states).</p>
<p>The current and voltage measurements after running the simulation are shown in <xref ref-type="fig" rid="F15">Figure 15</xref>. The results are as desired and expected, with the voltage difference between nodes 0 and 11 being &#x2b;3&#xa0;kV and the current approaching 0.6&#xa0;kA by Ohm&#x2019;s law. As there is only one path, the current rating of each submodule must be at least 0.6&#xa0;kA for this grid state to be possible.</p>
<fig id="F15" position="float">
<label>FIGURE 15</label>
<caption>
<p>Simulated voltage and current measurements.</p>
</caption>
<graphic xlink:href="fenrg-10-878592-g015.tif"/>
</fig>
<p>When measured between nodes 0 and 3, the voltage difference was found to be &#x2b;3&#xa0;kV. When measured between nodes 3 and 11, the voltage difference was found to be 0&#xa0;V. This agrees with expectations, as submodules between nodes 3 and 11 are in the bypass state and do not output voltage.</p>
</sec>
</sec>
<sec sec-type="conclusion" id="s7">
<title>7 Conclusion</title>
<p>This article proposes the concept of lattice power grids. Lattice power grids allow for serial and parallel connectivity of multiple grid-forming converters, thereby allowing both voltage and current sharing. Due to unparalleled voltage and current capabilities, lattice power grids are suitable for high-voltage applications and large-scale integration of renewable energies in more-electronics power systems. Specifically, this article proposes square, triangular, and hexagonal lattice power grids and their models by use of graph theory. More importantly, we propose a general control and optimization methodology and the relevant algorithms for various lattice power grids. The proposed lattice power grids can achieve current and voltage objectives while minimizing switching actions and maximizing system efficiency. Finally, simulation results validate the proposed lattice power grids as well as the control and optimization algorithms.</p>
</sec>
</body>
<back>
<sec id="s8">
<title>Data Availability Statement</title>
<p>The original contributions presented in the study are included in the article/Supplementary Material, further inquiries can be directed to the corresponding author.</p>
</sec>
<sec id="s9">
<title>Author Contributions</title>
<p>DZ was the primary author of this manuscript, created the algorithms described in the manuscript, and contributed to the proposed model of lattice power grids. JF provided significant guidance and mentorship for the direction and content of the research, and contributed to the proposed model of lattice power grids. He extensively reviewed and revised this manuscript and contributed expertise in many fields, including lattice power grids, lattice power converters, multilevel converters, and power systems. SG provided guidance and mentorship for the direction and content of research, reviewed and revised the manuscript, and contributed expertise in a variety of fields including lattice power grids, lattice power converters, multilevel converters, and power systems.</p>
</sec>
<sec sec-type="COI-statement" id="s10">
<title>Conflict of Interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s11">
<title>Publisher&#x2019;s Note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Belloch</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2012</year>). <source>Parallel and Sequential Data Structures and Algorithms. Class Lecture, Topic: &#x201c;Graph Contraction and Connectivity.&#x201d;</source>. <publisher-loc>Pittsburgh, PA</publisher-loc>: <publisher-name>School of Computer Science, Carnegie-Mellon University</publisher-name>. </citation>
</ref>
<ref id="B2">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Chappell</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2021</year>). <source>Renewable Energy Growth Rate up 45% Worldwide in 2020</source>. <publisher-name>IEA Sees New Normal,&#x201d; National Public Radio</publisher-name>. <comment>May 11, 2021. [Online]. Available at: <ext-link ext-link-type="uri" xlink:href="https://www.npr.org/2021/05/11/995849954/renewable-energy-capacity-jumped-45-worldwide-in-2020-iea-sees-new-normal">https://www.npr.org/2021/05/11/995849954/renewable-energy-capacity-jumped-45-worldwide-in-2020-iea-sees-new-normal</ext-link> (Accessed Aug5, 2021)</comment>. </citation>
</ref>
<ref id="B3">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Das</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2019a</year>). <source>High Power Multilevel Converters- Analysis, Design, and Operational Issues. Class Lecture, Topic: &#x201c;Introduction to Multilevel Converters.&#x201d;</source>. <publisher-loc>IIT Delhi, Delhi, India</publisher-loc>: <publisher-name>Department of Electrical Engineering</publisher-name>. </citation>
</ref>
<ref id="B4">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Das</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2019b</year>). <source>High Power Multilevel Converters- Analysis, Design, and Operational Issues. Class Lecture, Topic: &#x201c;Basic Understanding of Converter (Half Bridge and Full Bridge Circuit Operation).&#x201d;</source>. <publisher-loc>IIT Delhi, Delhi, India</publisher-loc>: <publisher-name>Department of Electrical Engineering</publisher-name>. </citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Deng</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Qi</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Fang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Debusschere</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Tang</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Multi-Terminal Soft Open Point with Anti-islanding and Over-current Protection Capability</article-title>. <source>IEEE Energ. Convers. Congress Exposition.</source> <volume>2021</volume>, <fpage>745</fpage>&#x2013;<lpage>750</lpage>. <pub-id pub-id-type="doi">10.1109/ECCE47101.2021.9595456</pub-id> </citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Fang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Goetz</surname>
<given-names>S. M.</given-names>
</name>
</person-group> (<year>2021a</year>). <article-title>Multilevel Converters with Symmetrical Half-Bridge Submodules and Sensorless Voltage Balance</article-title>. <source>IEEE Trans. Power Electron.</source> <volume>36</volume> (<issue>1</issue>), <fpage>447</fpage>&#x2013;<lpage>458</lpage>. <comment>Jan. 2021</comment>. <pub-id pub-id-type="doi">10.1109/TPEL.2020.3000469</pub-id> </citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Fang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Blaabjerg</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Goetz</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2021b</year>). <article-title>A Review of Multilevel Converters with Parallel Connectivity</article-title>. <source>IEEE Trans. Power Electron.</source> <volume>36</volume> (<issue>11</issue>), <fpage>12468</fpage>&#x2013;<lpage>12489</lpage>. <comment>Nov. 2021</comment>. <pub-id pub-id-type="doi">10.1109/TPEL.2021.3075211</pub-id> </citation>
</ref>
<ref id="B8">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Fang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Goetz</surname>
<given-names>S. M.</given-names>
</name>
</person-group> (<year>2021</year>). <source>Symmetries in Power Electronics</source>. <publisher-loc>Vancouver, British Columbia, BC, Canada</publisher-loc>: <publisher-name>Proc. IEEE ECCE</publisher-name>. <comment>10&#x2013;14 Oct. 2021</comment>. </citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Fang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Tang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Blaabjerg</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>On the Inertia of Future More-Electronics Power Systems</article-title>. <source>IEEE J. Emerg. Sel. Top. Power Electron.</source> <volume>7</volume> (<issue>4</issue>), <fpage>2130</fpage>&#x2013;<lpage>2146</lpage>. <pub-id pub-id-type="doi">10.1109/JESTPE.2018.2877766</pub-id> </citation>
</ref>
<ref id="B10">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Fang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Tang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Hongchang</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2017</year>). &#x201c;<article-title>Improvement of Frequency Stability in Power Electronics-Based Power Systems</article-title>,&#x201d; in <conf-name>2017 Asian Conference on Energy, Power and Transportation Electrification</conf-name> (<publisher-name>ACEPT</publisher-name>), <fpage>1</fpage>&#x2013;<lpage>6</lpage>. <pub-id pub-id-type="doi">10.1109/ACEPT.2017.8168614</pub-id> </citation>
</ref>
<ref id="B11">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Fang</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2021a</year>). <source>More-Electronics Power Systems: Power Quality and Stability</source>. <publisher-loc>Singapore</publisher-loc>: <publisher-name>Springer Nature Singapore Pte Ltd</publisher-name>. </citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Fang</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2021b</year>). <article-title>Unified Graph Theory-Based Modeling and Control Methodology of Lattice Converters</article-title>. <source>Electronics.</source> <volume>10</volume> (<issue>17</issue>), <fpage>2146</fpage>. <pub-id pub-id-type="doi">10.3390/electronics10172146</pub-id> </citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Flourentzou</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Agelidis</surname>
<given-names>V. G.</given-names>
</name>
<name>
<surname>Demetriades</surname>
<given-names>G. D.</given-names>
</name>
</person-group> (<year>2009</year>). <article-title>VSC-based HVDC Power Transmission Systems: An Overview</article-title>. <source>IEEE Trans. Power Electron.</source> <volume>24</volume> (<issue>3</issue>), <fpage>592</fpage>&#x2013;<lpage>602</lpage>. <comment>Mar. 2009</comment>. <pub-id pub-id-type="doi">10.1109/tpel.2008.2008441</pub-id> </citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Goetz</surname>
<given-names>S. M.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Liang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Lukic</surname>
<given-names>S. M.</given-names>
</name>
<name>
<surname>Peterchev</surname>
<given-names>A. V.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Control of Modular Multilevel Converter with Parallel Connectivity-Application to Battery Systems</article-title>. <source>IEEE Trans. Power Electron.</source> <volume>32</volume> (<issue>11</issue>), <fpage>8381</fpage>&#x2013;<lpage>8392</lpage>. <comment>Nov. 2017</comment>. <pub-id pub-id-type="doi">10.1109/TPEL.2016.2645884</pub-id> </citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Goetz</surname>
<given-names>S. M.</given-names>
</name>
<name>
<surname>Peterchev</surname>
<given-names>A. V.</given-names>
</name>
<name>
<surname>Weyh</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Modular Multilevel Converter with Series and Parallel Module Connectivity: Topology and Control</article-title>. <source>IEEE Trans. Power Electron.</source> <volume>30</volume> (<issue>1</issue>), <fpage>203</fpage>&#x2013;<lpage>215</lpage>. <comment>Jan. 2015</comment>. <pub-id pub-id-type="doi">10.1109/TPEL.2014.2310225</pub-id> </citation>
</ref>
<ref id="B16">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Goodrich</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Tamassia</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2001</year>). <source>&#x201c;Graph Traversal&#x201d; in Algorithm Design: Foundations, Analysis, and Internet Examples</source>. <publisher-loc>Hoboken, NJ</publisher-loc>: <publisher-name>Wiley</publisher-name>, <fpage>303</fpage>&#x2013;<lpage>316</lpage>. </citation>
</ref>
<ref id="B17">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Han</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Fang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Tang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Debusschere</surname>
<given-names>V.</given-names>
</name>
</person-group> (<year>2019</year>). &#x201c;<article-title>Small-Signal Modeling, Stability Analysis, and Controller Design of Grid-Friendly Power Converters with Virtual Inertia and Grid-Forming Capability</article-title>,&#x201d; in <conf-name>2019 IEEE Energy Conversion Congress and Exposition (ECCE)</conf-name>, <fpage>27</fpage>&#x2013;<lpage>33</lpage>. <pub-id pub-id-type="doi">10.1109/ECCE.2019.8912534</pub-id> </citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hooshyar</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Vahedi</surname>
<given-names>M. A.</given-names>
</name>
</person-group> (<year>2007</year>). <article-title>Synchronous Generator: Past, Present and Future</article-title>. <source>AFRICON.</source> <volume>2007</volume>, <fpage>1</fpage>&#x2013;<lpage>7</lpage>. <pub-id pub-id-type="doi">10.1109/AFRCON.2007.4401482</pub-id> </citation>
</ref>
<ref id="B19">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Lin</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2020</year>). <source>Research Roadmap on Grid-Forming Inverters</source>. <publisher-loc>Golden, CO</publisher-loc>: <publisher-name>National Renewable Energy Laboratory</publisher-name>. <comment>[Online]. Available at: <ext-link ext-link-type="uri" xlink:href="https://www.nrel.gov/docs/fy21osti/73476.pdf">https://www.nrel.gov/docs/fy21osti/73476.pdf</ext-link>
</comment>. </citation>
</ref>
<ref id="B20">
<citation citation-type="web">
<collab>Mathworks</collab> (<year>2021</year>). <article-title>Full-Bridge Converter,&#x201d; mathworks.Com</article-title>. <comment>[Online] Available at: <ext-link ext-link-type="uri" xlink:href="https://www.mathworks.com/help/physmod/sps/powersys/ref/fullbridgeconverter.html">https://www.mathworks.com/help/physmod/sps/powersys/ref/fullbridgeconverter.html</ext-link> (Accessed Jun 27, 2021)</comment>. </citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mei</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Fang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Goetz</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Control and Optimization of Lattice Converters</article-title>. <source>Electronics.</source> <volume>11</volume> (<issue>4</issue>), <fpage>594</fpage>. <pub-id pub-id-type="doi">10.3390/electronics11040594</pub-id> </citation>
</ref>
<ref id="B22">
<citation citation-type="web">
<collab>U.S. Department of Energy Office of Energy Efficiency and Renewable Energy</collab> (<year>2018</year>). <article-title>2018 Renewable Energy Data Book.&#x201d; [Online]</article-title>. <comment>Available at: <ext-link ext-link-type="uri" xlink:href="https://www.nrel.gov/docs/fy20osti/75284.pdf">https://www.nrel.gov/docs/fy20osti/75284.pdf</ext-link> (Accessed August 5, 2021)</comment>. </citation>
</ref>
<ref id="B23">
<citation citation-type="web">
<person-group person-group-type="author">
<name>
<surname>Weisstein</surname>
<given-names>E. W.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Lattice Graph,&#x201d; Wolfram Mathworld. [Online]</article-title>. <comment>Available at: <ext-link ext-link-type="uri" xlink:href="https://mathworld.wolfram.com/LatticeGraph.html">https://mathworld.wolfram.com/LatticeGraph.html</ext-link> (Accessed Aug 5, 2021)</comment>. </citation>
</ref>
<ref id="B24">
<citation citation-type="web">
<person-group person-group-type="author">
<name>
<surname>Yadav</surname>
<given-names>N.</given-names>
</name>
</person-group> (<year>2021a</year>). <article-title>Depth First Search or DFS for a Graph</article-title>. <comment>geeksforgeeks.org, Jul 22, 2021. [Online]. Available at: <ext-link ext-link-type="uri" xlink:href="https://www.geeksforgeeks.org/depth-first-search-or-dfs-for-a-graph">https://www.geeksforgeeks.org/depth-first-search-or-dfs-for-a-graph</ext-link> (Accessed Jan 20, 2021)</comment>. </citation>
</ref>
<ref id="B25">
<citation citation-type="web">
<person-group person-group-type="author">
<name>
<surname>Yadav</surname>
<given-names>N.</given-names>
</name>
</person-group> (<year>2021b</year>). <article-title>Print All Paths from a Given Source to a Destination</article-title>. <comment>geeksforgeeks.org, Jul 2, 2021. [Online]. Available at: <ext-link ext-link-type="uri" xlink:href="https://www.geeksforgeeks.org/depth-first-search-or-dfs-for-a-graph">https://www.geeksforgeeks.org/depth-first-search-or-dfs-for-a-graph</ext-link> (Accessed Jan 20, 2021)</comment>. </citation>
</ref>
</ref-list>
</back>
</article>