<?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">1214263</article-id>
<article-id pub-id-type="doi">10.3389/fenrg.2023.1214263</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>Distributionally robust optimization for virtual power plant clusters considering carbon emission-based dynamic dispatch priority</article-title>
<alt-title alt-title-type="left-running-head">Zuo et al.</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/fenrg.2023.1214263">10.3389/fenrg.2023.1214263</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Zuo</surname>
<given-names>Juan</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<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/2296523/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Xu</surname>
<given-names>Chongxin</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Wang</surname>
<given-names>Wenbo</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Ji</surname>
<given-names>Yu</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>State Grid Shanghai Energy Interconnection Research Institute Co., Ltd</institution>, <addr-line>Shanghai</addr-line>, <country>China</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>School of Electronic Information and Electrical Engineering</institution>, <institution>Shanghai Jiao Tong University</institution>, <addr-line>Shanghai</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/1823558/overview">Haoming Liu</ext-link>, Hohai 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/1312399/overview">Linfei Yin</ext-link>, Guangxi University, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1535262/overview">Shunbo Lei</ext-link>, The Chinese University of Hong Kong, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2364714/overview">Kai Zhou</ext-link>, Soochow University, Suzhou, China</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Juan Zuo, <email>zuojuan_sgcc@163.com</email>
</corresp>
</author-notes>
<pub-date pub-type="epub">
<day>23</day>
<month>08</month>
<year>2023</year>
</pub-date>
<pub-date pub-type="collection">
<year>2023</year>
</pub-date>
<volume>11</volume>
<elocation-id>1214263</elocation-id>
<history>
<date date-type="received">
<day>29</day>
<month>04</month>
<year>2023</year>
</date>
<date date-type="accepted">
<day>03</day>
<month>08</month>
<year>2023</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2023 Zuo, Xu, Wang and Ji.</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Zuo, Xu, Wang and Ji</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>A virtual power plant (VPP) is an effective way to manage distributed energy resources. Virtual power plant cluster (VPPC) is constructed due to the increasing number of VPPs. It has great potential in carbon emission reduction through coordination between VPPs. Therefore, a dynamic dispatch priority model is proposed. The model adjusts the dispatch sequence of VPPs based on carbon emissions. The higher the carbon emissions, the lower the dispatch priority. The VPPC participates in carbon trading and the carbon trading cost is included in the optimization objective. There are still many uncontrolled distributed energy resources, e.g., wind power, out of the VPPC. The distributionally robust optimal method is used to deal with the uncertainty of wind power. Finally, this paper proposes a two-stage distributionally robust optimal model of VPPC considering carbon emission-based dynamic dispatch priority. This model can be solved by the column-and-constraint generation (C&#x26;CG) algorithm. A VPPC with four VPPs is used in case studies, which verify the economic benefit and low carbon of the proposed model.</p>
</abstract>
<kwd-group>
<kwd>dynamic dispatch priority</kwd>
<kwd>carbon trading</kwd>
<kwd>carbon capture</kwd>
<kwd>virtual power plant clusters</kwd>
<kwd>distributionally robust</kwd>
</kwd-group>
<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 sec-type="intro" id="s1">
<title>1 Introduction</title>
<p>With the emission of carbon dioxide, the greenhouse effect has severely affected sustainable social development. It is significant to study emission reduction in power systems, which are regarded as the main source of carbon emissions (<xref ref-type="bibr" rid="B8">Kang et al., 2015</xref>). To reduce carbon emissions, there are many distributed energy resources connected to the power grid, and they can be integrated into a VPP and participate in dispatch as a single entity (<xref ref-type="bibr" rid="B24">Zhao et al., 2020</xref>). <xref ref-type="bibr" rid="B22">Zhang et al. (2021)</xref> propose a dynamic clustering algorithm that allocates energy storage systems to different virtual power plants to reduce load losses. In <xref ref-type="bibr" rid="B16">Wang et al. (2021)</xref>, network reconfiguration is considered in the aggregation approach to reduce the fluctuations of voltages and power.</p>
<p>These distributed energy sources include wind power, PV, gas turbines, energy storage devices, electric vehicles, and dispatchable loads. Different combinations can serve different purposes. In <xref ref-type="bibr" rid="B12">Luo et al. (2020)</xref>, a bi-level dispatch model of VPP which consists of energy storage devices and dispatchable loads is constructed for the target of load peak shaving and valley filling. <xref ref-type="bibr" rid="B19">Yu et al. (2022)</xref> study the energy management of a VPP considering the comfort of the flexible load users. The impacts of energy storage devices on a VPP are analyzed by <xref ref-type="bibr" rid="B4">Bagchi et al. (2019)</xref>. <xref ref-type="bibr" rid="B17">Yang et al. (2020)</xref> integrate electric vehicles into a VPP to participate in the power market and analyze the function of electric vehicles. In <xref ref-type="bibr" rid="B23">Zhang and Hu (2022)</xref>, the VPP which includes a power network, natural gas network, and power-to-gas device participates in power and gas energy markets with the aim to maximize profit.</p>
<p>Meanwhile, distributed energy resources produce uncertainty in the power grid, and the VPP is a new way to cope with it. A distributed two-stage economic dispatch model for VPP is proposed to decrease the impact of uncertainties (<xref ref-type="bibr" rid="B25">Zheng et al., 2021</xref>). There are many optimization methods to handle uncertainties. The information gap decision theory is used to achieve the minimization of operating costs and carbon emissions (<xref ref-type="bibr" rid="B15">Ren et al., 2023</xref>). <xref ref-type="bibr" rid="B13">Omel&#x10d;enko, (2021)</xref> use the methods of machine learning. In <xref ref-type="bibr" rid="B7">Guo et al. (2021)</xref>, the dynamic capacity optimization strategy is formed by the risk measurement theory. Considering the uncertainty of wind power and market prices, the strategic offering problem of a VPP is formulated as a stochastic adaptive robust optimization model (<xref ref-type="bibr" rid="B5">Baringo and Baringo, 2017</xref>). In <xref ref-type="bibr" rid="B6">Dabbagh and Sheikh-El-Eslami (2016)</xref>, a two-stage stochastic programming approach is adopted for VPP trading. <xref ref-type="bibr" rid="B3">Babaei et al. (2019)</xref> adopt a distributionally robust optimization method that utilizes moment information of random parameters. The distributionally robust optimization deals with uncertainties by finding the worst-case probability distribution and obtaining the optimal decision plan. It avoids assuming a specific uncertainty distribution and makes the best use of limited statistical data to yield less-conservative results, but it has rarely been applied in VPP optimization. Therefore, there is important research value in introducing the distributionally robust optimization into VPP optimization.</p>
<p>On the generation side, carbon capture and carbon trading have become important ways of emission reduction. <xref ref-type="bibr" rid="B14">Reddy K et al. (2017)</xref> model the carbon capture systems in a carbon-constrained environment. In <xref ref-type="bibr" rid="B2">Akbari-Dibavar et al. (2021)</xref>, carbon capture systems are combined with coal power plants to decrease carbon emissions. The carbon capture plant provides a spinning reserve depending on the potential flexibility (<xref ref-type="bibr" rid="B11">Lou et al., 2015</xref>). <xref ref-type="bibr" rid="B21">Zhang et al. (2016)</xref> study how the generation schedule is influenced by the carbon trading mechanism. Priority rules are often used for many load-shedding strategies. <xref ref-type="bibr" rid="B9">Laghari et al. (2015)</xref> present under-frequency load-shedding strategies based on the priority of loads. A user-determined priority schedule for load shedding is proposed by <xref ref-type="bibr" rid="B1">Adamiak et al. (2014)</xref>, but few researchers consider a dispatch priority on the generation side. The above papers provide references for priority rules to achieve carbon reduction.</p>
<p>VPPC is formed as the number of VPPs increase. Therefore, investigating the optimization operation of VPPC is an urgent demand. The VPPC pays close attention to its entire economic cost and profits, and it can realize economic dispatch among DGs that belong to different owners. A virtual cluster control is proposed to achieve coordination operation and local autonomy of VPPs (<xref ref-type="bibr" rid="B10">Liu et al., 2019</xref>). There is also a conflict of interest between the VPPC and the distribution network. It is necessary to separately consider the economic objectives of the VPPC and operational constraints of the distribution network when formulating the optimal operation strategy. <xref ref-type="bibr" rid="B18">Yi et al. (2020)</xref> propose a bi-level model for the active distribution network with multiple VPPs to enhance the security and economic performance of the system. To reduce the peak-valley difference of net load, active distribution networks with VPPs join the energy-reserve market indicating the validation in shaping the load profile and realizing the economical operation (<xref ref-type="bibr" rid="B20">Zhang et al., 2023</xref>).</p>
<p>Most existing research focuses on the optimization operation of a single VPP. Few researchers consider the VPPC a study object; however, it has great potential in carbon emission reduction. Therefore, a distributionally robust optimal model of VPPC considering carbon emission-based dynamic dispatch priority is proposed. The dynamic dispatch priority is constructed to adjust the dispatch sequence of VPPs based on the carbon emissions. The higher the carbon emissions, the lower the dispatch priority. The uncertainty of wind power is considered with the method of distributionally robust optimization. This model is dispatched in the day-ahead stage and intra-day stage. It can be solved by the C&#x26;CG algorithm. A VPPC with four VPPs is used in case studies, which verify the economic benefit and low carbon of the proposed model.</p>
</sec>
<sec id="s2">
<title>2 Mathematical model</title>
<sec id="s2-1">
<title>2.1 Carbon trading mechanism model</title>
<p>The carbon trading mechanism requires the units with carbon emissions to get involved in trading. Carbon emissions are regarded as a commodity. Each carbon emission source has a certain carbon emission quota. When carbon emissions of the carbon emission source exceed the carbon emission quota, the excess part should be purchased from the carbon trading cost. Conversely, the remaining part can be sold to other carbon emission sources.</p>
<p>Gas-fired units, diesel units, and coal-fired units are seen as carbon emission sources in this paper. Each unit has the same carbon emission quota and different carbon emission intensities. The carbon emission intensity of coal-fired units is the highest, and the gas-fired units have the lowest carbon emission intensity. The coal-fired units are equipped with carbon capture devices. The carbon capture device can absorb carbon dioxide generated by the coal-fired units. The carbon trading mechanism model can be expressed as:<disp-formula id="e1">
<mml:math id="m1">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>&#x3bb;</mml:mi>
<mml:mtext>GT</mml:mtext>
</mml:msub>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>GT</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3bb;</mml:mi>
<mml:mtext>die</mml:mtext>
</mml:msub>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>die</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>
<disp-formula id="e2">
<mml:math id="m2">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>&#x3bb;</mml:mi>
<mml:mtext>co</mml:mtext>
</mml:msub>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mtext>cap</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>
<disp-formula id="e3">
<mml:math id="m3">
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mtext>tra</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mtext>tra</mml:mtext>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3bb;</mml:mi>
<mml:mtext>car</mml:mtext>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>GT</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>die</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>where <italic>E</italic>
<sub>VPP,2,<italic>t</italic>
</sub> and <italic>E</italic>
<sub>VPP,3,<italic>t</italic>
</sub> are the carbon emissions of VPP 2 and VPP 3; <italic>&#x3bb;</italic>
<sub>GT</sub>, <italic>&#x3bb;</italic>
<sub>die</sub>, and <italic>&#x3bb;</italic>
<sub>co</sub> are the carbon emission intensity of the gas-fired unit, diesel unit, and coal-fired unit, respectively; <italic>P</italic>
<sub>GT,<italic>t</italic>
</sub>, <italic>P</italic>
<sub>die,<italic>t</italic>
</sub>, and <italic>P</italic>
<sub>co,<italic>t</italic>
</sub> are the power outputs of the units; <italic>&#x3bb;</italic>
<sub>car</sub> is the carbon emission quota; <italic>E</italic>
<sub>cap,<italic>t</italic>
</sub> is the amount of captured carbon dioxide; <italic>&#x3b5;</italic>
<sub>tra</sub> is the carbon trading price; <italic>C</italic>
<sub>tra,<italic>t</italic>
</sub> is the carbon trading cost.</p>
</sec>
<sec id="s2-2">
<title>2.2 Carbon emission-based dynamic dispatch priority</title>
<p>Most existing methods of carbon reduction increase generating costs leading to an increase in electricity users&#x2019; costs. Therefore, a carbon emission-based dynamic dispatch priority model which achieves carbon emission reduction by adjusting the dispatch sequence of VPPs is proposed. We first set the dispatch priority according to carbon emissions which can be presented by the following equations:<disp-formula id="e4">
<mml:math id="m4">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mn>0</mml:mn>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>
<disp-formula id="e5">
<mml:math id="m5">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mn>0</mml:mn>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>where <italic>P</italic>
<sub>VPP,<italic>i</italic>,<italic>t</italic>
</sub> is the power output of VPP <italic>i</italic>; <italic>P</italic>
<sub>1,VPP,<italic>i</italic>,<italic>t</italic>
</sub>, <italic>P</italic>
<sub>2,VPP,<italic>i</italic>,<italic>t</italic>
</sub>
<italic>,</italic> and <italic>P</italic>
<sub>3,VPP,<italic>i</italic>,<italic>t</italic>
</sub> are the power outputs of VPP <italic>i</italic> in different dispatch priorities; <italic>E</italic>
<sub>VPP,<italic>i</italic>,<italic>t</italic>
</sub> is the carbon emissions of VPP <italic>i</italic>; <italic>E</italic>
<sub>1,VPP</sub> and <italic>E</italic>
<sub>2,VPP</sub> are the carbon emission thresholds dividing dispatch priorities; <italic>u</italic>
<sub>VPP,<italic>i</italic>,<italic>t</italic>
</sub> is the status of VPP <italic>i</italic>, 0 is taken when the power output of VPP <italic>i</italic> is 0, otherwise 1 is taken; <italic>u</italic>
<sub>1,VPP,<italic>i</italic>,<italic>t</italic>
</sub>, <italic>u</italic>
<sub>2,VPP,<italic>i</italic>,<italic>t</italic>
</sub>
<italic>,</italic> and <italic>u</italic>
<sub>3,VPP,<italic>i</italic>,<italic>t</italic>
</sub> are the status of VPP <italic>i</italic> in different dispatch priorities. As can be seen above, there are three dispatch priorities in this paper. The higher the carbon emissions, the lower the dispatch priority. When the carbon emissions of the VPP exceed the carbon emission threshold, the power output of the VPP reduces to zero. Therefore, the VPP needs to actively reduce carbon emissions to obtain more profits.</p>
<p>Then, the VPPs with higher dispatch priorities have priority in generation. The dispatch priority rules can be expressed as:<disp-formula id="e6">
<mml:math id="m6">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>max</mml:mi>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>M</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>max</mml:mi>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>
<disp-formula id="e7">
<mml:math id="m7">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>max</mml:mi>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>M</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>max</mml:mi>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>
<disp-formula id="e8">
<mml:math id="m8">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>max</mml:mi>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>M</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>max</mml:mi>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>where <inline-formula id="inf1">
<mml:math id="m9">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf2">
<mml:math id="m10">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> are maximum power outputs of the VPP <italic>i</italic> in the first dispatch priority and the second dispatch priority; <italic>&#x3b4;</italic> is the priority generation proportion from zero to one; <italic>M</italic> is a large real number. These formulas represent that the low-priority VPPs can start up only when the power outputs of the high-priority VPPs reach <italic>&#x3b4;</italic> times of the maximum power outputs. The maximum output power of VPP 2 indicates that the gas-fired unit and the diesel unit reached their maximum output at the same time. The maximum output power of VPP 3 is equal to the maximum output power of the coal-fired unit. The carbon emission reduction effect is better when <italic>&#x3b4;</italic> is closer to one. The operating cost is lower when <italic>&#x3b4;</italic> is closer to zero. This model achieves carbon reduction by changing the dispatch sequence of VPPs.</p>
</sec>
</sec>
<sec id="s3">
<title>3 Distributionally robust optimization considering carbon emission-based dynamic dispatch priority</title>
<sec id="s3-1">
<title>3.1 Two-stage distributionally robust optimal dispatch model of VPPC</title>
<p>A VPPC with four VPPs is considered in this paper. On the generation side, there are clean energy units and conventional units. PV is a typical clean energy unit, but its volatility is not beneficial to the operation of the power system. In order to smooth the output volatility of PV, it is often used in conjunction with energy storage, which forms VPP 1. Gas-fired units, diesel units, and coal-fired units are common conventional units. The carbon emission intensities of the first two units are relatively low. They are aggregated as VPP 2. For emission reduction, the coal-fired units with the highest carbon emissions are equipped with a carbon capture device. The third VPP consists of a coal-fired unit and a carbon capture device. The outputs of VPP 2 and VPP 3 are constrained by the dynamic dispatch priority rules due to the carbon emission of the units. On the load side, the dispatchable loads which include the shiftable loads and interruptible loads are aggregated as VPP 4. VPP 4 is encouraged to participate in power system dispatch by economic compensation and has the effect of peak load shifting. The VPPC is formed by the four VPPs, which can be regarded as a small power system.</p>
<p>Wind power is a representative of distributed resources which is difficult to control. Therefore, wind power is not suitable as a part of the VPP. In this paper, the wind power is in the area powered by the VPPC, but the VPPC does not include wind power. The low-carbon economic operation of the VPPC is influenced by the uncertainty of wind power. Therefore, a two-stage distributionally robust optimal dispatch model is proposed to deal with the uncertainty and improve the absorption of wind power. The dispatch priorities of VPPs are determined in the day-ahead stage, and the outputs of each VPP are determined in the intra-day stage according to the dispatch priorities.</p>
</sec>
<sec id="s3-2">
<title>3.2 Objective function</title>
<p>A distributionally robust optimal model of the VPPC considering carbon emission-based dynamic dispatch priority is proposed in this paper. The objective is to minimize the comprehensive operating costs of VPPC consisting of four VPPs. It can be calculated as follows:<disp-formula id="e9">
<mml:math id="m11">
<mml:mrow>
<mml:mi>min</mml:mi>
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mtext>on</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mtext>off</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="" close="}" separators="|">
<mml:mrow>
<mml:mrow>
<mml:munder>
<mml:mi>max</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="bold-italic">W</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>S</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mi>min</mml:mi>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mtext>wind</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mtext>tra</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>where <italic>C</italic>
<sub>on,<italic>t</italic>
</sub> and <italic>C</italic>
<sub>off,<italic>t</italic>
</sub> are the start-up and shut-down costs of units; <italic>p</italic>
<sub>
<italic>s</italic>
</sub> is the probability value of the <italic>s</italic>th discrete wind power output scenario; <italic>S</italic> is the total number of discrete scenes; <bold>
<italic>W</italic>
</bold> is the set of probabilities for actual wind power output scenarios; <italic>C</italic>
<sub>1,<italic>t</italic>
</sub>, <italic>C</italic>
<sub>2,<italic>t</italic>
</sub>, <italic>C</italic>
<sub>3,<italic>t</italic>
</sub>
<italic>,</italic> and <italic>C</italic>
<sub>4,<italic>t</italic>
</sub> are the operating costs of the four VPPs; <italic>C</italic>
<sub>wind,<italic>t</italic>
</sub> is the punishment cost of wind power curtailment; <italic>T</italic> is the time of dispatch period taking the value of 24. The min form in the outer layer represents the minimization of the total cost in two stages. The max-min form represents the minimization of cost in the intra-day stage under the worst wind power output scenario probability.</p>
<sec id="s3-2-1">
<title>3.2.1 Start-up and shut-down costs</title>
<p>
<disp-formula id="e10">
<mml:math id="m12">
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mtext>on</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2265;</mml:mo>
<mml:msub>
<mml:mi>&#x3c1;</mml:mi>
<mml:mtext>on</mml:mtext>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mtext>on</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
<label>(10)</label>
</disp-formula>
<disp-formula id="e11">
<mml:math id="m13">
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mtext>off</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2265;</mml:mo>
<mml:msub>
<mml:mi>&#x3c1;</mml:mi>
<mml:mtext>off</mml:mtext>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mtext>off</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
<label>(11)</label>
</disp-formula>
</p>
<p>The start-up and shut-down costs of the coal-fired unit are considered in this paper. <italic>u</italic>
<sub>co,<italic>t</italic>
</sub> is a binary variable. Zero is taken when the coal-fired unit is off, while one means the coal-fired unit is on. <italic>&#x3c1;</italic>
<sub>on</sub> and <italic>&#x3c1;</italic>
<sub>off</sub> are the single start-up and shut-down costs.</p>
</sec>
<sec id="s3-2-2">
<title>3.2.2 Operating cost of VPP 1</title>
<p>The operating cost of VPP 1 includes the charging and discharging costs of the energy storage device and the punishment cost of PV curtailment, which can be expressed as:<disp-formula id="e12">
<mml:math id="m14">
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>&#x3c1;</mml:mi>
<mml:mtext>PV</mml:mtext>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>PV</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mn>0</mml:mn>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>PV</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3c1;</mml:mi>
<mml:mtext>bat</mml:mtext>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>dis</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>/</mml:mo>
<mml:mi>&#x3b7;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>ch</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x22c5;</mml:mo>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(12)</label>
</disp-formula>where <italic>&#x3c1;</italic>
<sub>PV</sub> is the unit punishment cost of PV curtailment; <inline-formula id="inf3">
<mml:math id="m15">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>PV</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mn>0</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <italic>P</italic>
<sub>PV,<italic>t</italic>
</sub> are the forecast value and actual value of PV; <italic>&#x3c1;</italic>
<sub>bat</sub> is the unit charge-discharge cost; <italic>&#x3b7;</italic> is the charge-discharge efficiency; <italic>P</italic>
<sub>ch,<italic>t</italic>
</sub> and <italic>P</italic>
<sub>dis,<italic>t</italic>
</sub> are charging power and discharging power, respectively.</p>
</sec>
<sec id="s3-2-3">
<title>3.2.3 Operating cost of VPP 2</title>
<p>The operating costs of the gas-fired unit and the diesel unit are included in the operating cost of VPP 2, which can be expressed as follows:<disp-formula id="e13">
<mml:math id="m16">
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>&#x3c1;</mml:mi>
<mml:mtext>GT</mml:mtext>
</mml:msub>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>GT</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mtext>die</mml:mtext>
</mml:msub>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>die</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mtext>die</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(13)</label>
</disp-formula>where <italic>P</italic>
<sub>GT,<italic>t</italic>
</sub> and <italic>P</italic>
<sub>die,<italic>t</italic>
</sub> are the power outputs of the gas-fired unit and the diesel unit, respectively; <italic>&#x3c1;</italic>
<sub>GT</sub> is the unit generation cost; <italic>a</italic>
<sub>die</sub> and <italic>b</italic>
<sub>die</sub> are generation cost coefficients of the diesel unit.</p>
</sec>
<sec id="s3-2-4">
<title>3.2.4 Operating cost of VPP 3</title>
<p>The coal-fired unit is equipped with a carbon capture device in VPP 4. The carbon capture device can absorb carbon dioxide produced by coal combustion, and the captured carbon dioxide needs to be stored, thus producing the storage cost. The operating costs of the coal-fired unit and the carbon capture device are also included in the operating cost of VPP 3. It can be presented as follows:<disp-formula id="e14">
<mml:math id="m17">
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mtext>co</mml:mtext>
</mml:msub>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mtext>co</mml:mtext>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3c1;</mml:mi>
<mml:mtext>CC</mml:mtext>
</mml:msub>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>CC</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3c1;</mml:mi>
<mml:mtext>cap</mml:mtext>
</mml:msub>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mtext>cap</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(14)</label>
</disp-formula>where <italic>a</italic>
<sub>co</sub> and <italic>b</italic>
<sub>co</sub> are generation cost coefficients of the diesel unit; <italic>&#x3c1;</italic>
<sub>CC</sub> and <italic>&#x3c1;</italic>
<sub>cap</sub> are the unit operation cost of the carbon capture device and unit storage cost of carbon dioxide; <italic>P</italic>
<sub>co,<italic>t</italic>
</sub> and <italic>P</italic>
<sub>CC,<italic>t</italic>
</sub> are power outputs of the coal-fired unit and the carbon capture device, respectively.</p>
</sec>
<sec id="s3-2-5">
<title>3.2.5 Operating cost of VPP 4</title>
<p>The operating cost of VPP 4 includes compensation costs of shiftable loads and interruptible loads. It can be calculated as follows:<disp-formula id="e15">
<mml:math id="m18">
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>&#x3c1;</mml:mi>
<mml:mtext>shif</mml:mtext>
</mml:msub>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>shif</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3c1;</mml:mi>
<mml:mtext>inte</mml:mtext>
</mml:msub>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>inte</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(15)</label>
</disp-formula>where <italic>&#x3c1;</italic>
<sub>shif</sub> and <italic>&#x3c1;</italic>
<sub>inte</sub> are the unit compensation cost of shiftable loads and interruptible loads, respectively; <italic>P</italic>
<sub>shif,<italic>t</italic>
</sub> and <italic>P</italic>
<sub>inte,<italic>t</italic>
</sub> are the response power of shiftable loads and interruptible loads.</p>
</sec>
<sec id="s3-2-6">
<title>3.2.6 Punishment cost of wind power curtailment</title>
<p>
<disp-formula id="e16">
<mml:math id="m19">
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mtext>wind</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>&#x3c1;</mml:mi>
<mml:mtext>wind</mml:mtext>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>wind</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mn>0</mml:mn>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>wind</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(16)</label>
</disp-formula>
</p>
<p>
<italic>&#x3c1;</italic>
<sub>wind</sub> is the unit punishment cost of wind power curtailment; <inline-formula id="inf4">
<mml:math id="m20">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>wind</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mn>0</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <italic>P</italic>
<sub>wind,<italic>t</italic>
</sub> are the forecast value and actual value of wind power, respectively.</p>
</sec>
</sec>
<sec id="s3-3">
<title>3.3 Constraints</title>
<sec id="s3-3-1">
<title>3.3.1 Constraints of VPP 1</title>
<p>The output of PV should be within the limits.<disp-formula id="e17">
<mml:math id="m21">
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>PV</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>PV</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mn>0</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(17)</label>
</disp-formula>
</p>
<p>The energy storage device should meet the following constraints:<disp-formula id="e18">
<mml:math id="m22">
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>dis</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>bat</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>bat</mml:mtext>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(18)</label>
</disp-formula>
<disp-formula id="e19">
<mml:math id="m23">
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>ch</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>bat</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>bat</mml:mtext>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(19)</label>
</disp-formula>
<disp-formula id="e20">
<mml:math id="m24">
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>ch</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>dis</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
<label>(20)</label>
</disp-formula>
<disp-formula id="e21">
<mml:math id="m25">
<mml:mrow>
<mml:msubsup>
<mml:mi>E</mml:mi>
<mml:mtext>bat</mml:mtext>
<mml:mi>min</mml:mi>
</mml:msubsup>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mi>E</mml:mi>
<mml:mtext>bat</mml:mtext>
<mml:mn>0</mml:mn>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b7;</mml:mi>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>ch</mml:mtext>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>dis</mml:mtext>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mi>E</mml:mi>
<mml:mtext>bat</mml:mtext>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(21)</label>
</disp-formula>
</p>
<p>Eqs. <xref ref-type="disp-formula" rid="e18">18</xref> and <xref ref-type="disp-formula" rid="e19">19</xref> are the charging and discharging power constraints of energy storage devices, respectively. <inline-formula id="inf5">
<mml:math id="m26">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>bat</mml:mtext>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> is the maximum charging and discharging power. <italic>u</italic>
<sub>bat,<italic>t</italic>
</sub> is a binary variable. Zero is taken when the energy storage device is discharging, while one means the energy storage device is charging. Equation <xref ref-type="disp-formula" rid="e20">20</xref> ensures that the capacity of the energy storage device is equal at the beginning and end of the dispatch period, which is beneficial to the cycle dispatch. Equation <xref ref-type="disp-formula" rid="e21">21</xref> is the remaining capacity constraint for each period. It can increase the service life of the energy storage device. <inline-formula id="inf6">
<mml:math id="m27">
<mml:mrow>
<mml:msubsup>
<mml:mi>E</mml:mi>
<mml:mtext>bat</mml:mtext>
<mml:mn>0</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> is the initial capacity. <inline-formula id="inf7">
<mml:math id="m28">
<mml:mrow>
<mml:msubsup>
<mml:mi>E</mml:mi>
<mml:mtext>bat</mml:mtext>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf8">
<mml:math id="m29">
<mml:mrow>
<mml:msubsup>
<mml:mi>E</mml:mi>
<mml:mtext>bat</mml:mtext>
<mml:mi>min</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> are the maximum and minimum remaining capacities, respectively.</p>
<p>The total output of VPP 1 <italic>P</italic>
<sub>VPP,1,<italic>t</italic>
</sub> is given by:<disp-formula id="e22">
<mml:math id="m30">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>PV</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>dis</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>ch</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(22)</label>
</disp-formula>
</p>
<p>It can be smoothed by combining PV and energy storage devices, which can be expressed as follows:<disp-formula id="e23">
<mml:math id="m31">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(23)</label>
</disp-formula>where <italic>R</italic>
<sub>VPP,1</sub> is the maximum ramp rate.</p>
</sec>
<sec id="s3-3-2">
<title>3.3.2 Constraints of VPP 2</title>
<p>The gas-fired unit and the diesel unit should meet the power output constraints and ramp rate constraints, which can be expressed as follows:<disp-formula id="e24">
<mml:math id="m32">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>GT</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>GT</mml:mtext>
<mml:mi>min</mml:mi>
</mml:msubsup>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>GT</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>GT</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>GT</mml:mtext>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(24)</label>
</disp-formula>
<disp-formula id="e25">
<mml:math id="m33">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mtext>GT</mml:mtext>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>GT</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>GT</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mtext>GT</mml:mtext>
</mml:msub>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>die</mml:mtext>
<mml:mi>min</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(25)</label>
</disp-formula>
<disp-formula id="e26">
<mml:math id="m34">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>die</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>die</mml:mtext>
<mml:mi>min</mml:mi>
</mml:msubsup>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>die</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>die</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>die</mml:mtext>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(26)</label>
</disp-formula>
<disp-formula id="e27">
<mml:math id="m35">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mtext>die</mml:mtext>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>die</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>die</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mtext>die</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(27)</label>
</disp-formula>where <italic>u</italic>
<sub>GT,<italic>t</italic>
</sub> and <italic>u</italic>
<sub>die,<italic>t</italic>
</sub> are binary variables denoting the on/off status of the gas-fired unit and the diesel unit, zero for off and one for on; <inline-formula id="inf9">
<mml:math id="m36">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>GT</mml:mtext>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf10">
<mml:math id="m37">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>GT</mml:mtext>
<mml:mi>min</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> are the maximum and minimum power outputs of the gas-fired unit; <inline-formula id="inf11">
<mml:math id="m38">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>die</mml:mtext>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf12">
<mml:math id="m39">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>die</mml:mtext>
<mml:mi>min</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> are the maximum and minimum power outputs of the diesel unit; <italic>R</italic>
<sub>GT</sub> and <italic>R</italic>
<sub>die</sub> are the maximum ramp rates of the gas-fired unit and the diesel unit, respectively.</p>
<p>The total power output of VPP 2 <italic>P</italic>
<sub>VPP,2,<italic>t</italic>
</sub> can be calculated as follows:<disp-formula id="e28">
<mml:math id="m40">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>GT</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>die</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(28)</label>
</disp-formula>
</p>
<p>And it meets the following constraint:<disp-formula id="e29">
<mml:math id="m41">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>M</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:math>
<label>(29)</label>
</disp-formula>where <italic>u</italic>
<sub>VPP,2,<italic>t</italic>
</sub> are binary variables denoting the on/off status of the VPP 2; zero for off and one for on.</p>
</sec>
<sec id="s3-3-3">
<title>3.3.3 Constraints of VPP 3</title>
<p>The coal-fired unit should meet the following constraints:<disp-formula id="e30">
<mml:math id="m42">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>co</mml:mtext>
<mml:mi>min</mml:mi>
</mml:msubsup>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>co</mml:mtext>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(30)</label>
</disp-formula>
<disp-formula id="e31">
<mml:math id="m43">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mtext>co</mml:mtext>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mtext>co</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mtext>co</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(31)</label>
</disp-formula>
<disp-formula id="e32">
<mml:math id="m44">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mtext>co</mml:mtext>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mtext>co</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mtext>co</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(32)</label>
</disp-formula>
<disp-formula id="e33">
<mml:math id="m45">
<mml:mrow>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mtext>on</mml:mtext>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mtext>on</mml:mtext>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(33)</label>
</disp-formula>
<disp-formula id="e34">
<mml:math id="m46">
<mml:mrow>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mtext>off</mml:mtext>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mtext>off</mml:mtext>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(34)</label>
</disp-formula>
</p>
<p>Equation <xref ref-type="disp-formula" rid="e30">30</xref> is the power output constraint of a coal-fired unit. <inline-formula id="inf13">
<mml:math id="m47">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>co</mml:mtext>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf14">
<mml:math id="m48">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>co</mml:mtext>
<mml:mi>min</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> are the maximum and minimum power outputs of the coal-fired unit. Eqs. <xref ref-type="disp-formula" rid="e31">31</xref>, and <xref ref-type="disp-formula" rid="e32">32</xref> are the ramp rate constraints. <italic>R</italic>
<sub>co</sub> is the maximum ramp rate and <italic>S</italic>
<sub>up</sub> is the maximum ramp rate when the unit starts up and shut down. Eqs. <xref ref-type="disp-formula" rid="e33">33</xref>, <xref ref-type="disp-formula" rid="e34">34</xref> are running time constraints. <italic>T</italic>
<sub>on</sub> and <italic>T</italic>
<sub>off</sub> are the minimum on and off time of the coal-fired unit.</p>
<p>The constraints of power outputs Eq. <xref ref-type="disp-formula" rid="e35">35</xref> and ramp rates Eq. <xref ref-type="disp-formula" rid="e36">36</xref> are considered for the carbon capture device.<disp-formula id="e35">
<mml:math id="m49">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>CC</mml:mtext>
<mml:mi>min</mml:mi>
</mml:msubsup>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>CC</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>CC</mml:mtext>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(35)</label>
</disp-formula>
<disp-formula id="e36">
<mml:math id="m50">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mtext>CC</mml:mtext>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>CC</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>CC</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mtext>CC</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(36)</label>
</disp-formula>
<inline-formula id="inf15">
<mml:math id="m51">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>CC</mml:mtext>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf16">
<mml:math id="m52">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>CC</mml:mtext>
<mml:mi>min</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> are the maximum and minimum power outputs of the carbon capture device; <italic>R</italic>
<sub>CC</sub> is the maximum ramp rate. The captured carbon dioxide can be calculated as follows:<disp-formula id="e37">
<mml:math id="m53">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mtext>cap</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3bb;</mml:mi>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>CC</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(37)</label>
</disp-formula>where <italic>&#x3bb;</italic> is the amount of carbon dioxide captured by unit power.</p>
<p>Because the carbon capture device does not exchange power with the outside of the VPP 3, the power output of VPP 3 <italic>P</italic>
<sub>VPP,3,<italic>t</italic>
</sub> is given by:<disp-formula id="e38">
<mml:math id="m54">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>co</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(38)</label>
</disp-formula>
</p>
</sec>
<sec id="s3-3-4">
<title>3.3.4 Constraints of VPP 4</title>
<p>The shiftable loads can be presented by the following constraints:<disp-formula id="e39">
<mml:math id="m55">
<mml:mrow>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>shif</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
<label>(39)</label>
</disp-formula>
<disp-formula id="e40">
<mml:math id="m56">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>shif</mml:mtext>
<mml:mi>max</mml:mi>
</mml:msubsup>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>shif</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>shif</mml:mtext>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(40)</label>
</disp-formula>
</p>
<p>Equation <xref ref-type="disp-formula" rid="e39">39</xref> indicates that the shiftable loads remain unchanged during the whole dispatch period. The response power of shiftable loads should be within the limits in Eq. <xref ref-type="disp-formula" rid="e40">40</xref> <inline-formula id="inf17">
<mml:math id="m57">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>shif</mml:mtext>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> is the maximum response power of the shiftable loads.</p>
<p>The interruptible loads should meet the following constraints:<disp-formula id="e41">
<mml:math id="m58">
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>&#x2264;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>inte</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>inte</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mtext>all</mml:mtext>
</mml:mrow>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(41)</label>
</disp-formula>
<disp-formula id="e42">
<mml:math id="m59">
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>inte</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>inte</mml:mtext>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(42)</label>
</disp-formula>
</p>
<p>Equation <xref ref-type="disp-formula" rid="e41">41</xref> indicates that the total response power of interruptible loads is limited during the whole dispatch period. <inline-formula id="inf18">
<mml:math id="m60">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>inte</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mtext>all</mml:mtext>
</mml:mrow>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> is the maximum response power during the whole dispatch period. Equation <xref ref-type="disp-formula" rid="e42">42</xref> indicates that the response power of interruptible loads should be within the limits at each dispatch moment. <inline-formula id="inf19">
<mml:math id="m61">
<mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mtext>inte</mml:mtext>
<mml:mi>max</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> is the maximum response power at each dispatch moment.</p>
<p>The power output of VPP 4 <italic>P</italic>
<sub>VPP,4,<italic>t</italic>
</sub> can be presented by:<disp-formula id="e43">
<mml:math id="m62">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>shif</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>inte</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(43)</label>
</disp-formula>
</p>
</sec>
<sec id="s3-3-5">
<title>3.3.5 Constraints of wind power</title>
<p>
<disp-formula id="e44">
<mml:math id="m63">
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>wind</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>wind</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mn>0</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(44)</label>
</disp-formula>
</p>
</sec>
<sec id="s3-3-6">
<title>3.3.6 Constraints of power balance</title>
<p>
<disp-formula id="e45">
<mml:math id="m64">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>VPP</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>wind</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mtext>load</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(45)</label>
</disp-formula>
</p>
<p>The wind power and the power output of the VPPC with four VPPs supply the load demand.</p>
</sec>
<sec id="s3-3-7">
<title>3.3.7 Ambiguity set construction of wind power</title>
<p>The method of distributionally robust optimization is adopted to deal with the uncertainty of wind power. There is uncertainty in the probability of wind power output scenarios. Therefore, an ambiguous set of wind power output scenarios is constructed by moment information. First, the historical scenarios of wind power output are clustered into several typical scenarios using the K-means algorithm, and the probability of typical scenarios is obtained. Next, the 1-norm and &#x221e;-norm constraints centered around typical scenario probabilities are used to describe the set of actual wind power output scenario probabilities, which can be expressed as follows:<disp-formula id="e46">
<mml:math id="m65">
<mml:mrow>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1,2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>S</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>S</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>p</mml:mi>
<mml:mi>s</mml:mi>
<mml:mn>0</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:munder>
<mml:mi>max</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>p</mml:mi>
<mml:mi>s</mml:mi>
<mml:mn>0</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mi>&#x221e;</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(46)</label>
</disp-formula>where <inline-formula id="inf20">
<mml:math id="m66">
<mml:mrow>
<mml:msubsup>
<mml:mi>p</mml:mi>
<mml:mi>s</mml:mi>
<mml:mn>0</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> is the probability of typical wind power output scenarios; <italic>&#x3b8;</italic>
<sub>1</sub> and <italic>&#x3b8;</italic>
<sub>&#x221e;</sub> are the maximum probability deviation under the 1-norm and &#x221e;-norm constraints.</p>
<p>The probability of wind power output scenarios should meet the following confidence constraints:<disp-formula id="e47">
<mml:math id="m67">
<mml:mrow>
<mml:mi>Pr</mml:mi>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>S</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>p</mml:mi>
<mml:mi>s</mml:mi>
<mml:mn>0</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>S</mml:mi>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>K</mml:mi>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mi>S</mml:mi>
</mml:mfrac>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(47)</label>
</disp-formula>
<disp-formula id="e48">
<mml:math id="m68">
<mml:mrow>
<mml:mi>Pr</mml:mi>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:munder>
<mml:mi>max</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>p</mml:mi>
<mml:mi>s</mml:mi>
<mml:mn>0</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mi>&#x221e;</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>S</mml:mi>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>K</mml:mi>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mi>&#x221e;</mml:mi>
</mml:msub>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(48)</label>
</disp-formula>where <italic>K</italic> is the number of historical wind power output scenarios; Pr{} is the probability of inequality being established in {}.</p>
<p>The right sides of Eqs <xref ref-type="disp-formula" rid="e47">47</xref>, <xref ref-type="disp-formula" rid="e48">48</xref> are confidence levels, which can be presented by <italic>&#x3b2;</italic>
<sub>1</sub> and <italic>&#x3b2;</italic>
<sub>&#x221e;</sub>.<disp-formula id="e49">
<mml:math id="m69">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>K</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mi>ln</mml:mi>
<mml:mfrac>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(49)</label>
</disp-formula>
<disp-formula id="e50">
<mml:math id="m70">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mi>&#x221e;</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>K</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mi>ln</mml:mi>
<mml:mfrac>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mi>&#x221e;</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(50)</label>
</disp-formula>
</p>
<p>When the number of historical scenarios increases or the confidence level approaches one, the probability deviation of wind power output scenarios decreases. The probability of actual wind power output scenarios is closer to the probability of typical scenarios. The operator can balance the economy and robustness of the optimization results by adjusting the confidence level.</p>
</sec>
</sec>
</sec>
<sec id="s4">
<title>4 Solution methodology</title>
<p>The two-stage distributionally robust optimal dispatch model is constructed in this paper. In the day-ahead stage, the variables unrelated to the probability of actual wind power output scenarios are optimized, including the states and dispatch priority of each VPP. In the intra-day stage, the distributionally robust optimal method is used to optimize the operating power of each VPP and the power of wind curtailment under the worst wind power output scenario probability. The C&#x26;CG algorithm is introduced to solve the two-stage distributionally robust optimal dispatch model. It decomposes the model into a main problem (MP) and a sub problem (SP). They can be written in the following compact matrix form:<disp-formula id="e51">
<mml:math id="m71">
<mml:mrow>
<mml:mtext>MP</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:munder>
<mml:mi>min</mml:mi>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:munder>
<mml:mi mathvariant="bold-italic">A</mml:mi>
<mml:mi>x</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="normal">t</mml:mi>
<mml:mo>.</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>&#x3b7;</mml:mi>
<mml:mo>&#x2265;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>S</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">B</mml:mi>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:msub>
<mml:mi>&#x3be;</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mi>x</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">G</mml:mi>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1,2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mi>x</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">J</mml:mi>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1,2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">Q</mml:mi>
<mml:msub>
<mml:mi>&#x3be;</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1,2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(51)</label>
</disp-formula>
<disp-formula id="e52">
<mml:math id="m72">
<mml:mrow>
<mml:mtext>SP</mml:mtext>
<mml:mo>:</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:munder>
<mml:mi>max</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="bold-italic">W</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>S</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
<mml:munder>
<mml:mi>min</mml:mi>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:munder>
<mml:mi mathvariant="bold-italic">B</mml:mi>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:msub>
<mml:mi>&#x3be;</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="normal">t</mml:mi>
<mml:mo>.</mml:mo>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>44</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">G</mml:mi>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1,2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mi>x</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">J</mml:mi>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1,2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">Q</mml:mi>
<mml:msub>
<mml:mi>&#x3be;</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1,2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(52)</label>
</disp-formula>where <italic>x</italic> is the first stage optimization variable; <italic>y</italic>
<sub>
<italic>s</italic>
</sub> is the optimization variable for the <italic>s</italic>th typical scenario in the second stage; <italic>&#x3be;</italic>
<sub>
<italic>s</italic>
</sub> is the predicted wind power output for the <italic>s</italic>th typical scenario; <bold>
<italic>A</italic>
</bold>, <bold>
<italic>B</italic>
</bold>, <bold>
<italic>C</italic>
</bold>, <bold>
<italic>D</italic>
</bold>, <bold>
<italic>G</italic>
</bold>, <bold>
<italic>I</italic>
</bold>, <bold>
<italic>J</italic>
</bold>, <bold>
<italic>P,</italic>
</bold> and <bold>
<italic>Q</italic>
</bold> are coefficient matrices; <italic>d</italic>, <italic>g</italic>, <italic>j,</italic> and <italic>r</italic> are parameter vectors.</p>
<p>The specific solution steps of the C&#x26;CG algorithm are as follows.</p>
<p>
<statement content-type="step" id="Step_1">
<label>Step 1</label>
<p>Set the initial wind power output scenario, scenario probability values, upper bound <italic>UB</italic> &#x3d; &#x2b;&#x221e;, lower bound <italic>LB</italic> &#x3d; &#x2212;&#x221e;, convergence criterion <italic>&#x3b5;</italic> &#x3d; 0.1, and the number of iterations <italic>n</italic> &#x3d; 0.</p>
</statement>
</p>
<p>
<statement content-type="step" id="Step_2">
<label>Step 2</label>
<p>Solve the MP to obtain the first stage decision variables, and the <italic>LB</italic> is updated.</p>
</statement>
</p>
<p>
<statement content-type="step" id="Step_3">
<label>Step 3</label>
<p>Solve the SP with the first-stage decision variables known to obtain the second-stage decision variables and the worst wind power output scenario probability and update the <italic>UB</italic>.</p>
</statement>
</p>
<p>
<statement content-type="step" id="Step_4">
<label>Step 4</label>
<p>If <italic>UB</italic>-<italic>LB</italic>&#x2264;<italic>&#x3b5;</italic>, stop the iteration and output the result. If not, add new second-stage variables and the corresponding constraint based on the wind power output scenario probability obtained by solving the SP to the MP. Next, return to step 2 with iteration number <italic>n</italic> &#x3d; <italic>n</italic>&#x2b;1.</p>
</statement>
</p>
</sec>
<sec id="s5">
<title>5 Case studies</title>
<sec id="s5-1">
<title>5.1 Case description</title>
<p>A VPPC with four VPPs is used to verify the feasibility and effectiveness of the distributionally robust optimal dispatch model proposed in this paper. The composition of each VPP is described in <xref ref-type="sec" rid="s3-1">section 3.1</xref>. The unit curtailment cost of PV and wind power is 50 $/MW. The carbon emission intensities of the gas-fired unit, the diesel unit, and the coal-fired unit are 0.4&#xa0;t/MW, 0.6&#xa0;t/MW, and 1.5&#xa0;t/MW. The amount of carbon dioxide captured by unit power is 4&#xa0;t/MW. The unit charge-discharge cost is 40 $/MW. The unit operation cost of the carbon capture device is 10 $/MW. The unit storage cost of carbon dioxide is 5 $/t. The unit compensation cost of shiftable loads and interruptible loads are 40 $/MW and 50 $/MW, respectively. The paper assumes that the wind power output follows the normal distribution with the predicted wind power output as the mean and 0.5 times the predicted wind power as the variance, and 10,000 historical wind power output scenarios are generated. Five typical wind power output scenarios are clustered using the <italic>K</italic>-means algorithm, as shown in <xref ref-type="fig" rid="F1">Figure 1</xref>. The confidence levels <italic>&#x3b2;</italic>
<sub>1</sub> and <italic>&#x3b2;</italic>
<sub>&#x221e;</sub> are set to 0.99.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Typical wind power output scenarios.</p>
</caption>
<graphic xlink:href="fenrg-11-1214263-g001.tif"/>
</fig>
<p>This model is solved by commercial software CPLEX in MATLAB.</p>
</sec>
<sec id="s5-2">
<title>5.2 Analysis of carbon emission-based dynamic dispatch priority</title>
<p>To verify the impact of carbon emission-based dynamic dispatch priority, the case studies are conducted with and without the dynamic dispatch priority. The power outputs of VPP 2 and VPP 3 are shown in <xref ref-type="fig" rid="F2">Figure 2</xref> because only VPP 2 and VPP 3 follow the dynamic dispatch priority rules. The priority generation proportion is set to one.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Power outputs with and without dynamic dispatch priority: <bold>(A)</bold> VPP 2 <bold>(B)</bold> VPP 3.</p>
</caption>
<graphic xlink:href="fenrg-11-1214263-g002.tif"/>
</fig>
<p>The carbon emission intensity of the coal-fired unit in VPP 3 is higher than the carbon emission intensities of the gas-fired unit and the diesel unit in VPP 2. The power output of VPP 2 increases and the power output of VPP 3 decreases when considering the dynamic dispatch priority. The dispatch priority of VPP decreases when the carbon emissions of VPP exceed a certain value, resulting in delayed power output and achieving carbon reduction. The dispatch sequences are decoupled from the carbon emissions without dynamic dispatch priority. Each VPP participates in dispatch with an economic orientation. The power output of VPP 3 increases because the generation cost is relatively low. By contrast, the power output of VPP 2 decreases.</p>
<p>Carbon emissions with different priority generation proportions are shown in <xref ref-type="fig" rid="F3">Figure 3</xref>. It can be found that the carbon emissions decrease while the priority generation proportion increases because the higher the priority generation proportion, the higher the power generated by the VPP with low carbon emission. It has an inhibitory effect on carbon emissions. Each VPP generates freely when the priority generation proportion is zero. The power output of the coal-fired unit in VPP 3 increases causing an increase in carbon emissions.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Carbon emissions with different priority generation proportions.</p>
</caption>
<graphic xlink:href="fenrg-11-1214263-g003.tif"/>
</fig>
<p>In <xref ref-type="table" rid="T1">Table 1</xref>, the operating cost of VPP 2 increases by 40% and the operating cost of VPP 3, carbon trading cost, and total cost decreases by 20%, 66%, and 6% as the priority generation proportion increases from zero to one. Because VPP 2 has less carbon emissions compared with VPP 3. And the output of the coal-fired unit in VPP 3 decreases resulting in a decrease in the carbon trading cost and the total cost. Therefore, the carbon emission-based dynamic dispatch priority can reduce the carbon emissions and total cost.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Various costs under different priority generation proportions.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Priority generation proportion</th>
<th align="center">Operating cost of VPP 1 ($)</th>
<th align="center">Operating cost of VPP 2 ($)</th>
<th align="center">Operating cost of VPP 3 ($)</th>
<th align="center">Operating cost of VPP 4 ($)</th>
<th align="center">Carbon trading cost ($)</th>
<th align="center">Total cost ($)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">0</td>
<td align="center">41.67</td>
<td align="center">1967.94</td>
<td align="center">2687.35</td>
<td align="center">44.89</td>
<td align="center">811.12</td>
<td align="center">5552.97</td>
</tr>
<tr>
<td align="center">0.2</td>
<td align="center">41.67</td>
<td align="center">2152.29</td>
<td align="center">2502.99</td>
<td align="center">44.89</td>
<td align="center">716.31</td>
<td align="center">5458.16</td>
</tr>
<tr>
<td align="center">0.6</td>
<td align="center">40.78</td>
<td align="center">2174.51</td>
<td align="center">2483.28</td>
<td align="center">45.85</td>
<td align="center">705.77</td>
<td align="center">5450.18</td>
</tr>
<tr>
<td align="center">0.8</td>
<td align="center">23.64</td>
<td align="center">2449.45</td>
<td align="center">2283.32</td>
<td align="center">45.75</td>
<td align="center">561.66</td>
<td align="center">5363.83</td>
</tr>
<tr>
<td align="center">1</td>
<td align="center">23.94</td>
<td align="center">2755.69</td>
<td align="center">2137.35</td>
<td align="center">33</td>
<td align="center">275.57</td>
<td align="center">5225.55</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The amount of carbon captured with different carbon emission thresholds is shown in <xref ref-type="fig" rid="F4">Figure 4</xref>. Each VPP wants to receive higher dispatch priority because they want to gain higher revenue. Therefore, each VPP will try to reduce its carbon emissions as much as possible, but the carbon capture device has power limits. If the amount of carbon dioxide absorbed within the power limit of the carbon capture device can improve the dispatching priority of VPP, the output power of the carbon capture device will be as large as possible. On the contrary, the output power of the carbon capture device will reduce due to the operating costs. Therefore, the amount of carbon captured will increase with the decrease in carbon emission thresholds most of the time, and the output power of the carbon capture device will not increase at some time.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Amount of carbon captured with carbon emission thresholds.</p>
</caption>
<graphic xlink:href="fenrg-11-1214263-g004.tif"/>
</fig>
<p>
<xref ref-type="fig" rid="F5">Figure 5</xref> shows a relation curve between carbon emission thresholds, carbon emissions, and total costs. The carbon emissions decrease when the carbon emission threshold decreases from 1.2 to 1. VPP 3 needs to increase the power output of the carbon capture device to reduce carbon emissions and achieve higher dispatch priority, and the carbon emissions increase when the carbon emission threshold decreases from 1 to 0.7 because the power output of the carbon capture device reaches its limit currently and is unable to increase the dispatch priority of VPP 3. The trend of total cost changes is basically consistent with carbon emissions. The carbon emissions and total cost reach the minimum at the same time. Therefore, the lowest carbon emissions and total cost can be achieved by setting reasonable carbon emission thresholds.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Relation curve between carbon emission thresholds, carbon emissions, and total cost.</p>
</caption>
<graphic xlink:href="fenrg-11-1214263-g005.tif"/>
</fig>
</sec>
<sec id="s5-3">
<title>5.3 Analysis of the carbon trading mechanism</title>
<p>To verify the impact of carbon trading mechanisms, the operating results under different carbon trading prices are analyzed.</p>
<p>The operating costs of VPP 2 and VPP 3 under different carbon trading prices are shown in <xref ref-type="fig" rid="F6">Figure 6</xref>. The operating cost of VPP 2 increases and the operating cost of VPP 3 decreases with the increase in carbon trading prices. When the carbon trading price increases to 50$, the operating cost of VPP 2 increases significantly and the operating cost of VPP 3 decreases significantly. The operating costs of VPP 2 and VPP 3 remain unchanged when the carbon trading price exceeds 80$. Because the carbon trading mechanism increases the generating cost, it has inhibitory effects on VPP with high carbon emissions and encourages the generation of VPP with low carbon emissions. When the carbon trading price is less than 50$, VPP 3 still has economic advantages. When the carbon trading price exceeds 80$, the carbon trading mechanism has the strongest inhibitory effect on VPP 3.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Operating costs of VPP 2 and VPP 3 under different carbon trading prices.</p>
</caption>
<graphic xlink:href="fenrg-11-1214263-g006.tif"/>
</fig>
<p>
<xref ref-type="fig" rid="F7">Figure 7</xref> shows the trend in carbon trading cost with the increase in carbon trading price. When the carbon trading price is less than 40$ or higher than 50$, the carbon trading cost increases with the increase in carbon trading price. When the carbon trading price is 50$, the carbon trading cost significantly decreases. Because the carbon trading cost of VPP 3 is too high, the power output of the coal-fired unit in VPP 3 decreases.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Carbon trading cost under different carbon trading prices.</p>
</caption>
<graphic xlink:href="fenrg-11-1214263-g007.tif"/>
</fig>
<p>In <xref ref-type="fig" rid="F8">Figure 8</xref>, the total cost increases and the carbon emissions decrease with the increase in carbon trading price. Therefore, the carbon trading mechanism can reduce the carbon emissions from the VPPC and increase the total cost in the meantime. The economic and low-carbon performance of the VPPC can be balanced by setting reasonable carbon trading prices.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Relation curve between total cost, carbon emission, and carbon trading price.</p>
</caption>
<graphic xlink:href="fenrg-11-1214263-g008.tif"/>
</fig>
</sec>
<sec id="s5-4">
<title>5.4 Analysis of the distributionally robust optimal method</title>
<sec id="s5-4-1">
<title>5.4.1 Comparison with the deterministic method</title>
<p>The number of historical wind power output scenarios is 10,000. The confidence levels <italic>&#x3b2;</italic>
<sub>1</sub> and <italic>&#x3b2;</italic>
<sub>&#x221e;</sub> are set to 0.99. In this section, the distributionally robust optimal method is compared with the deterministic method. The optimization results are shown in <xref ref-type="table" rid="T2">Table 2</xref>.</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Comparison between different optimal methods.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Method</th>
<th align="center">Operating cost of VPP 1 ($)</th>
<th align="center">Operating cost of VPP 2 ($)</th>
<th align="center">Operating cost of VPP 3 ($)</th>
<th align="center">Operating cost of VPP 4 ($)</th>
<th align="center">Carbon trading cost ($)</th>
<th align="center">Total cost ($)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">Distributionally robust optimization</td>
<td align="center">23.76</td>
<td align="center">2802.20</td>
<td align="center">2280.92</td>
<td align="center">33.45</td>
<td align="center">314.99</td>
<td align="center">5455.31</td>
</tr>
<tr>
<td align="center">Deterministic optimization</td>
<td align="center">23.94</td>
<td align="center">2755.69</td>
<td align="center">2137.35</td>
<td align="center">33</td>
<td align="center">275.57</td>
<td align="center">5225.55</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>In <xref ref-type="table" rid="T2">Table 2</xref>, most costs of the distributionally robust optimal method are higher compared with the deterministic method. Because the probability of the worst wind power output scenario can be obtained through distributionally robust optimization, the carbon emission-based dynamic dispatch priority model is considered. The dispatch priority of VPP 4 is lower because of the substantial carbon emission from the coal-fired unit. The coal-fired unit in VPP 4 has a sufficient adjustment margin. Therefore, the coal-fired unit is the main unit to cope with the uncertainty of wind power. More operating cost of VPP 4 increases leading to an increase in carbon trading cost. The total cost also increases by 4%.</p>
</sec>
<sec id="s5-4-2">
<title>5.4.2 A comparison of different numbers of historical wind power output scenarios</title>
<p>In this section, the confidence levels <italic>&#x3b2;</italic>
<sub>1</sub> and <italic>&#x3b2;</italic>
<sub>&#x221e;</sub> are set to 0.99. 1-norm constraint, &#x221e;-norm constraint, and the comprehensive norm are considered, respectively. The optimization results when selecting different numbers of historical data are compared. The results are calculated based on the number of wind power historical data ranging from 100 to 10,000, as shown in <xref ref-type="table" rid="T3">Table 3</xref>.</p>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Result of comparison under different numbers of historical data.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th rowspan="2" align="center">Numbers</th>
<th colspan="3" align="center">Total cost ($)</th>
</tr>
<tr>
<th align="center">1-norm</th>
<th align="center">&#x221e;-norm</th>
<th align="center">Comprehensive norm</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">10</td>
<td align="center">5760.17</td>
<td align="center">5751.11</td>
<td align="center">5751.11</td>
</tr>
<tr>
<td align="center">1000</td>
<td align="center">5663.32</td>
<td align="center">5655.31</td>
<td align="center">5655.31</td>
</tr>
<tr>
<td align="center">5000</td>
<td align="center">5529.77</td>
<td align="center">5521.46</td>
<td align="center">5521.46</td>
</tr>
<tr>
<td align="center">10,000</td>
<td align="center">5508.73</td>
<td align="center">5455.31</td>
<td align="center">5455.31</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>
<xref ref-type="table" rid="T3">Table 3</xref> shows that the total cost gradually decreases as the historical data increases. The increase in the number of historical data reduces the deviation of scenario probability, thus reducing the conservatism of solving the problem. It also can be seen that the total cost is lower with the comprehensive norm constraint compared to the other two constraints under the same number of historical data, which indicates that the conservatism of the model with the comprehensive norm constraint is lower.</p>
</sec>
<sec id="s5-4-3">
<title>5.4.3 A comparison of different confidence levels</title>
<p>This section analyzes the calculation results by setting different confidence levels <italic>&#x3b2;</italic>
<sub>1</sub> and <italic>&#x3b2;</italic>
<sub>&#x221e;</sub>. The number of historical data is 10,000.</p>
<p>It can be seen from <xref ref-type="table" rid="T4">Table 4</xref> that the total cost increases with increasing confidence levels. As the confidence levels increase, the uncertainty of wind power output increases. The VPPC needs to dispatch more distributed resources resulting in an increase in total costs.</p>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>Result of comparison under different confidence levels.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th rowspan="2" align="center">
<italic>&#x3b2;</italic>
<sub>1</sub>
</th>
<th colspan="3" align="center">Total cost ($)</th>
</tr>
<tr>
<th align="center">
<italic>&#x3b2;</italic>
<sub>&#x221e;</sub> &#x3d; 0.5</th>
<th align="center">
<italic>&#x3b2;</italic>
<sub>&#x221e;</sub> &#x3d; 0.9</th>
<th align="center">
<italic>&#x3b2;</italic>
<sub>&#x221e;</sub> &#x3d; 0.99</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">0.5</td>
<td align="center">5437.92</td>
<td align="center">5440.29</td>
<td align="center">5446.56</td>
</tr>
<tr>
<td align="center">0.9</td>
<td align="center">5444.36</td>
<td align="center">5448.89</td>
<td align="center">5450.21</td>
</tr>
<tr>
<td align="center">0.99</td>
<td align="center">5445.37</td>
<td align="center">5450.21</td>
<td align="center">5455.31</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The confidence level <italic>&#x3b2;</italic>
<sub>&#x221e;</sub> is set to 0.99 and the confidence level <italic>&#x3b2;</italic>
<sub>1</sub> is set to 0.5, 0.9, and 0.99, respectively. The comparison between the results under the comprehensive norm constraint and &#x221e;-norm constraint is shown in <xref ref-type="table" rid="T5">Table 5</xref>. The results under the comprehensive norm constraint are lower because the comprehensive norm constraint takes the 1-norm constraint into account resulting in lower conservatism.</p>
<table-wrap id="T5" position="float">
<label>TABLE 5</label>
<caption>
<p>Comparison between comprehensive norm and &#x221e; norm.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th rowspan="2" align="center">
<italic>&#x3b2;</italic>
<sub>1</sub>
</th>
<th colspan="2" align="center">Total cost ($)</th>
</tr>
<tr>
<th align="center">&#x221e;-norm</th>
<th align="center">Comprehensive norm</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">0.5</td>
<td align="center">5460.24</td>
<td align="center">5445.32</td>
</tr>
<tr>
<td align="center">0.9</td>
<td align="center">5460.24</td>
<td align="center">5450.24</td>
</tr>
<tr>
<td align="center">0.99</td>
<td align="center">5460.24</td>
<td align="center">5455.31</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The confidence level <italic>&#x3b2;</italic>
<sub>1</sub> is set to 0.99 and the confidence level <italic>&#x3b2;</italic>
<sub>&#x221e;</sub> is set to 0.5, 0.9, and 0.99, respectively. The comparison between the results under comprehensive norm constraint and 1-norm constraint is shown in <xref ref-type="table" rid="T6">Table 6</xref>. Similarly, the total cost under the comprehensive norm constraint is lower and less conservative than under the 1-norm constraint.</p>
<table-wrap id="T6" position="float">
<label>TABLE 6</label>
<caption>
<p>Comparison between comprehensive norm and 1 norm.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th rowspan="2" align="center">
<italic>&#x3b2;</italic>
<sub>&#x221e;</sub>
</th>
<th colspan="2" align="center">Total cost ($)</th>
</tr>
<tr>
<th align="center">1-norm</th>
<th align="center">Comprehensive norm</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">0.5</td>
<td align="center">5537.48</td>
<td align="center">5440.56</td>
</tr>
<tr>
<td align="center">0.9</td>
<td align="center">5537.48</td>
<td align="center">5447.58</td>
</tr>
<tr>
<td align="center">0.99</td>
<td align="center">5537.48</td>
<td align="center">5455.31</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
</sec>
<sec sec-type="conclusion" id="s6">
<title>6 Conclusion</title>
<p>A distributionally robust optimal model of the VPPC considering carbon emission-based dynamic dispatch priority is proposed in this paper. The main results of case studies are as follows.<list list-type="simple">
<list-item>
<p>(1) The carbon emission-based dynamic dispatch priority can not only reduce carbon emissions but also reduce the total cost by 6%. It can promote each VPP to operate in a greener way. The higher the priority generation proportion, the stronger the inhibitory effect on carbon emissions. Better economic and low-carbon performance can be achieved by setting reasonable carbon emission thresholds.</p>
</list-item>
<list-item>
<p>(2) The carbon trading mechanism can reduce the carbon emissions in VPPC and increase the total cost at the same time. Therefore, it is necessary to balance the economic and low-carbon performance of the VPPC by setting reasonable carbon trading prices.</p>
</list-item>
<list-item>
<p>(3) When considering the wind power uncertainty, the costs of the distributionally robust optimal method are higher compared with the deterministic method. The increase in the number of historical data reduces the conservatism of this model. The conservatism of this model increases with the increase in confidence levels, and the conservatism of the model with the comprehensive norm constraint is lower.</p>
</list-item>
</list>
</p>
<p>Electrical energy is only considered in the VPPC. The interdependency between natural gas and electrical energy is increasing. Further work will consider multiple forms of energy in the VPPC.</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>JZ contributed to the model, simulation and writing. CX contributed to the method. WW contributed to the editing of the article and discussion. YJ contributed to the literature analysis and provided a critical review. 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 National Key R&#x26;D Program of China (No. 2021YFB2401200).</p>
</sec>
<sec sec-type="COI-statement" id="s10">
<title>Conflict of interest</title>
<p>JZ, CX, WW and YJ were employed by State Grid Shanghai Energy Interconnection Research Institute Co., Ltd.</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>Adamiak</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Schiefen</surname>
<given-names>M. J.</given-names>
</name>
<name>
<surname>Schauerman</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Cable</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Design of a priority-based load shed scheme and operation tests</article-title>. <source>IEEE Trans. Ind. Appl.</source> <volume>50</volume> (<issue>1</issue>), <fpage>182</fpage>&#x2013;<lpage>187</lpage>. <pub-id pub-id-type="doi">10.1109/TIA.2013.2260511</pub-id>
</citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Akbari-Dibavar</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Mohammadi-Ivatloo</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Zare</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Khalili</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Bidram</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Economic-emission dispatch problem in power systems with carbon capture power plants</article-title>. <source>IEEE Trans. Ind. Appl.</source> <volume>57</volume> (<issue>4</issue>), <fpage>3341</fpage>&#x2013;<lpage>3351</lpage>. <pub-id pub-id-type="doi">10.1109/TIA.2021.3079329</pub-id>
</citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Babaei</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Fan</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>A data-driven model of virtual power plants in day-ahead unit commitment</article-title>. <source>IEEE Trans. Power Syst.</source> <volume>34</volume> (<issue>6</issue>), <fpage>5125</fpage>&#x2013;<lpage>5135</lpage>. <pub-id pub-id-type="doi">10.1109/TPWRS.2018.2890714</pub-id>
</citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bagchi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Goel</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Adequacy assessment of generating systems incorporating storage integrated virtual power plants</article-title>. <source>IEEE Trans. Smart Grid</source> <volume>10</volume> (<issue>3</issue>), <fpage>3440</fpage>&#x2013;<lpage>3451</lpage>. <pub-id pub-id-type="doi">10.1109/TSG.2018.2827107</pub-id>
</citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Baringo</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Baringo</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>A stochastic adaptive robust optimization approach for the offering strategy of a virtual power plant</article-title>. <source>IEEE Trans. Power Syst.</source> <volume>32</volume> (<issue>5</issue>), <fpage>3492</fpage>&#x2013;<lpage>3504</lpage>. <pub-id pub-id-type="doi">10.1109/TPWRS.2016.2633546</pub-id>
</citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Dabbagh</surname>
<given-names>S., R.</given-names>
</name>
<name>
<surname>Sheikh-El-Eslami</surname>
<given-names>M., K.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Risk assessment of virtual power plants offering in energy and reserve markets</article-title>. <source>IEEE Trans. Power Syst.</source> <volume>31</volume> (<issue>5</issue>), <fpage>3572</fpage>&#x2013;<lpage>3582</lpage>. <pub-id pub-id-type="doi">10.1109/TPWRS.2015.2493182</pub-id>
</citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Guo</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Guo</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Operation strategy of central air conditioning virtual power plant based on risk measurement method</article-title>. <source>Front. Energy Res.</source> <volume>9</volume>, <fpage>773149</fpage>. <pub-id pub-id-type="doi">10.3389/fenrg.2021.773149</pub-id>
</citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kang</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Xia</surname>
<given-names>Q.</given-names>
</name>
<etal/>
</person-group> (<year>2015</year>). <article-title>Carbon emission flow from generation to demand: A network-based model</article-title>. <source>IEEE Trans. Smart Grid</source> <volume>6</volume> (<issue>5</issue>), <fpage>2386</fpage>&#x2013;<lpage>2394</lpage>. <pub-id pub-id-type="doi">10.1109/TSG.2015.2388695</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Laghari</surname>
<given-names>J. A.</given-names>
</name>
<name>
<surname>Mokhlis</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Karimi</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Abu Bakar</surname>
<given-names>A. H.</given-names>
</name>
<name>
<surname>Mohamad</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>A new under-frequency load shedding technique based on combination of fixed and random priority of loads for smart grid applications</article-title>. <source>IEEE Trans. Power Syst.</source> <volume>30</volume> (<issue>5</issue>), <fpage>2507</fpage>&#x2013;<lpage>2515</lpage>. <pub-id pub-id-type="doi">10.1109/TPWRS.2014.2360520</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Gu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Sheng</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Virtual cluster control for active distribution system using pinning-based distributed secondary control</article-title>. <source>Int. J. Electr. Power Energy Syst.</source> <volume>109</volume>, <fpage>710</fpage>&#x2013;<lpage>718</lpage>. <pub-id pub-id-type="doi">10.1016/j.ijepes.2019.02.017</pub-id>
</citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lou</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Kirschen</surname>
<given-names>D. S.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Optimizing spinning reserve requirement of power system with carbon capture plants</article-title>. <source>IEEE Trans. Power Syst.</source> <volume>30</volume> (<issue>2</issue>), <fpage>1056</fpage>&#x2013;<lpage>1063</lpage>. <pub-id pub-id-type="doi">10.1109/TPWRS.2014.2341691</pub-id>
</citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Luo</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wei</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Yao</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>L.</given-names>
</name>
<etal/>
</person-group> (<year>2020</year>). <article-title>Bi-level load peak shifting and valley filling dispatch model of distribution systems with virtual power plants</article-title>. <source>Front. Energy Res.</source> <volume>8</volume>, <fpage>596817</fpage>. <pub-id pub-id-type="doi">10.3389/fenrg.2020.596817</pub-id>
</citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Omel&#x10d;enko</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Manokhin</surname>
<given-names>V.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Optimal balancing of wind parks with virtual power plants</article-title>. <source>Front. Energy Res.</source> <volume>9</volume>, <fpage>665295</fpage>. <pub-id pub-id-type="doi">10.3389/fenrg.2021.665295</pub-id>
</citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Reddy</surname>
<given-names>K. S.</given-names>
</name>
<name>
<surname>Panwar</surname>
<given-names>L. K.</given-names>
</name>
<name>
<surname>Panigrahi</surname>
<given-names>B. K.</given-names>
</name>
<name>
<surname>Kumar</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Modeling of carbon capture technology attributes for unit commitment in emission-constrained environment</article-title>. <source>IEEE Trans. Power Syst.</source> <volume>32</volume> (<issue>1</issue>), <fpage>662</fpage>&#x2013;<lpage>671</lpage>. <pub-id pub-id-type="doi">10.1109/TPWRS.2016.2558679</pub-id>
</citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ren</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Peng</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Multi-objective optimal dispatching of virtual power plants considering source-load uncertainty in V2G mode</article-title>. <source>Front. Energy Res.</source> <volume>10</volume>, <fpage>983743</fpage>. <pub-id pub-id-type="doi">10.3389/fenrg.2022.983743</pub-id>
</citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Optimal aggregation approach for virtual power plant considering network reconfiguration</article-title>. <source>J. Mod. Power Syst. Clean. Energy</source> <volume>9</volume> (<issue>3</issue>), <fpage>495</fpage>&#x2013;<lpage>501</lpage>. <pub-id pub-id-type="doi">10.35833/MPCE.2020.000625</pub-id>
</citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Pand&#x17e;i&#x107;</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Bidding strategy for virtual power plant considering the large-scale integrations of electric vehicles</article-title>. <source>IEEE Trans. Ind. Appl.</source> <volume>56</volume> (<issue>5</issue>), <fpage>5890</fpage>&#x2013;<lpage>5900</lpage>. <pub-id pub-id-type="doi">10.1109/TIA.2020.2993532</pub-id>
</citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yi</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Bi-level programming for optimal operation of an active distribution network with multiple virtual power plants</article-title>. <source>IEEE Trans. Sustain. Energy</source> <volume>11</volume> (<issue>4</issue>), <fpage>2855</fpage>&#x2013;<lpage>2869</lpage>. <pub-id pub-id-type="doi">10.1109/TSTE.2020.2980317</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yu</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Jiang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Research on energy management of a virtual power plant based on the improved cooperative particle swarm optimization algorithm</article-title>. <source>Front. Energy Res.</source> <volume>10</volume>, <fpage>785569</fpage>. <pub-id pub-id-type="doi">10.3389/fenrg.2022.785569</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Optimal coordinated operation for a distribution network with virtual power plants considering load shaping</article-title>. <source>IEEE Trans. Sustain. Energy</source> <volume>14</volume> (<issue>1</issue>), <fpage>550</fpage>&#x2013;<lpage>562</lpage>. <pub-id pub-id-type="doi">10.1109/TSTE.2022.3220276</pub-id>
</citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Hu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Dai</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Dang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Yao</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Unit commitment model in smart grid environment considering carbon emissions trading</article-title>. <source>IEEE Trans. Smart Grid</source> <volume>7</volume> (<issue>1</issue>), <fpage>420</fpage>&#x2013;<lpage>427</lpage>. <pub-id pub-id-type="doi">10.1109/TSG.2015.2401337</pub-id>
</citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Hredzak</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Fletcher</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Dynamic aggregation of energy storage systems into virtual power plants using distributed real-time clustering algorithm</article-title>. <source>IEEE Trans. Ind. Electron.</source> <volume>68</volume> (<issue>11</issue>), <fpage>11002</fpage>&#x2013;<lpage>11013</lpage>. <pub-id pub-id-type="doi">10.1109/TIE.2020.3038074</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Hu</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Optimal scheduling strategy of virtual power plant with power-to-gas in dual energy markets</article-title>. <source>IEEE Trans. Ind. Appl.</source> <volume>58</volume> (<issue>2</issue>), <fpage>2921</fpage>&#x2013;<lpage>2929</lpage>. <pub-id pub-id-type="doi">10.1109/TIA.2021.3112641</pub-id>
</citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhao</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Pan</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Z.</given-names>
</name>
<etal/>
</person-group> (<year>2020</year>). <article-title>Active dynamic aggregation model for distributed integrated energy system as virtual power plant</article-title>. <source>J. Mod. Power Syst. Clean. Energy</source> <volume>8</volume> (<issue>5</issue>), <fpage>831</fpage>&#x2013;<lpage>840</lpage>. <pub-id pub-id-type="doi">10.35833/MPCE.2020.000202</pub-id>
</citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zheng</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Ju</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>A distributed two-stage economic dispatch for virtual power plant based on an improved exact diffusion algorithm</article-title>. <source>Front. Energy Res.</source> <volume>9</volume>, <fpage>734801</fpage>. <pub-id pub-id-type="doi">10.3389/fenrg.2021.734801</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>