<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3-mathml3.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ali="http://www.niso.org/schemas/ali/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="1.3" xml:lang="EN">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Electron.</journal-id>
<journal-title-group>
<journal-title>Frontiers in Electronics</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Electron.</abbrev-journal-title>
</journal-title-group>
<issn pub-type="epub">2673-5857</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1656864</article-id>
<article-id pub-id-type="doi">10.3389/felec.2025.1656864</article-id>
<article-version article-version-type="Version of Record" vocab="NISO-RP-8-2008"/>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Original Research</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>A high-precision fault diagnosis method for photovoltaic arrays considering the effect of missing data</article-title>
<alt-title alt-title-type="left-running-head">Liu 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/felec.2025.1656864">10.3389/felec.2025.1656864</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Liu</surname>
<given-names>Di</given-names>
</name>
<xref ref-type="aff" rid="aff1"/>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/3085640"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="conceptualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/conceptualization/">Conceptualization</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Data curation" vocab-term-identifier="https://credit.niso.org/contributor-roles/data-curation/">Data curation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Funding acquisition" vocab-term-identifier="https://credit.niso.org/contributor-roles/funding-acquisition/">Funding acquisition</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &amp; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-review-editing/">Writing &#x2013; review &amp; editing</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="software" vocab-term-identifier="https://credit.niso.org/contributor-roles/software/">Software</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; original draft" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-original-draft/">Writing &#x2013; original draft</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="resources" vocab-term-identifier="https://credit.niso.org/contributor-roles/resources/">Resources</role>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Zhu</surname>
<given-names>Xiaojuan</given-names>
</name>
<xref ref-type="aff" rid="aff1"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="investigation" vocab-term-identifier="https://credit.niso.org/contributor-roles/investigation/">Investigation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="supervision" vocab-term-identifier="https://credit.niso.org/contributor-roles/supervision/">Supervision</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &amp; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-review-editing/">Writing &#x2013; review &amp; editing</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="methodology" vocab-term-identifier="https://credit.niso.org/contributor-roles/methodology/">Methodology</role>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Du</surname>
<given-names>Changyu</given-names>
</name>
<xref ref-type="aff" rid="aff1"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="validation" vocab-term-identifier="https://credit.niso.org/contributor-roles/validation/">Validation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &amp; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-review-editing/">Writing &#x2013; review &amp; editing</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="software" vocab-term-identifier="https://credit.niso.org/contributor-roles/software/">Software</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="supervision" vocab-term-identifier="https://credit.niso.org/contributor-roles/supervision/">Supervision</role>
</contrib>
</contrib-group>
<aff id="aff1">
<institution>Beijing Fibrlink Communications Co., LTD.</institution>, <city>Beijing</city>, <country country="CN">China</country>
</aff>
<author-notes>
<corresp id="c001">
<label>&#x2a;</label>Correspondence: Di Liu, <email xlink:href="13691589741@163.com">13691589741@163.com</email>
</corresp>
</author-notes>
<pub-date publication-format="electronic" date-type="pub" iso-8601-date="2025-11-12">
<day>12</day>
<month>11</month>
<year>2025</year>
</pub-date>
<pub-date publication-format="electronic" date-type="collection">
<year>2025</year>
</pub-date>
<volume>6</volume>
<elocation-id>1656864</elocation-id>
<history>
<date date-type="received">
<day>10</day>
<month>07</month>
<year>2025</year>
</date>
<date date-type="rev-recd">
<day>27</day>
<month>08</month>
<year>2025</year>
</date>
<date date-type="accepted">
<day>17</day>
<month>09</month>
<year>2025</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2025 Liu, Zhu and Du.</copyright-statement>
<copyright-year>2025</copyright-year>
<copyright-holder>Liu, Zhu and Du</copyright-holder>
<license>
<ali:license_ref start_date="2025-11-12">https://creativecommons.org/licenses/by/4.0/</ali:license_ref>
<license-p>This is an open-access article distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution License (CC BY)</ext-link>. 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.</license-p>
</license>
</permissions>
<abstract>
<p>With the increasing penetration of photovoltaic (PV) systems into power grids, the accurate diagnosis of PV array health has become critical for ensuring the stable operation of power systems. To address the problem of missing data collected from PV arrays and reduced diagnostic accuracy when compound faults occur, we propose a high-precision fault diagnosis model for PV arrays based on Tucker decomposition-sparrow search algorithm (SSA)-Informer-MSCNet. First, a tensor Tucker decomposition-based method is proposed to complete the missing data. Then, an informer network is employed to fully extract the global features. Next, an MSCNet model is proposed to extract multi-scale key features. The SSA is then used to optimize the model&#x2019;s global parameters. We use the fault dataset to realize the missing data completion and fault diagnosis tests of PV arrays. The results show that the complementary algorithm thus designed has some accuracy. The proposed fault diagnostic model is able to achieve 98.73% and 97.46% accuracy in case of single and compound faults in PV arrays, respectively, and maintains 96.12% accuracy at 30&#xa0;dB noise.</p>
</abstract>
<kwd-group>
<kwd>power system</kwd>
<kwd>Tucker decomposition</kwd>
<kwd>missing data</kwd>
<kwd>informer</kwd>
<kwd>fault diagnosis</kwd>
</kwd-group>
<funding-group>
<funding-statement>The author(s) declare that financial support was received for the research and/or publication of this article. This paper is supported by the project &#x201c;Key Technology Research and Product Development of Digital Enhancement of New active Distribution Network with Source Network Load and Storage Coordination&#x201d; of Beijing Fibrlink Communications Co., LTD. (Project number: 546826240038).</funding-statement>
</funding-group>
<counts>
<fig-count count="10"/>
<table-count count="4"/>
<equation-count count="22"/>
<ref-count count="27"/>
<page-count count="11"/>
</counts>
<custom-meta-group>
<custom-meta>
<meta-name>section-in-acceptance</meta-name>
<meta-value>Power Electronics</meta-value>
</custom-meta>
</custom-meta-group>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<label>1</label>
<title>Introduction</title>
<p>With the acceleration of global energy transition, photovoltaic (PV) power generation is a core component of clean renewable energy. Its installed capacity has shown explosive growth (<xref ref-type="bibr" rid="B1">Agoua et al., 2018</xref>; <xref ref-type="bibr" rid="B16">Parenti et al., 2024</xref>). However, PV systems are exposed long-term to complex outdoor environments (e.g., high temperature, sand, dust, and rain). The frequent occurrence of problems such as aging of PV equipment, module failure, and inverter failure can lead to large losses in system power generation (<xref ref-type="bibr" rid="B2">Ahadi et al., 2016a</xref>; <xref ref-type="bibr" rid="B3">Ahadi et al., 2016b</xref>; <xref ref-type="bibr" rid="B17">Peng et al., 2024</xref>). This seriously affects the reliability and economy of energy supply.</p>
<p>With the rapid development of artificial intelligence technology, deep learning is widely being used in PV fault diagnosis (<xref ref-type="bibr" rid="B5">Emanuele et al., 2021</xref>; <xref ref-type="bibr" rid="B18">Ren et al., 2025</xref>). In response to the above problems, a series of studies have been launched into PV fault diagnosis. <xref ref-type="bibr" rid="B19">Saravanan et al. (2025)</xref> proposed the Binary Greylag Goose Optimization (BGGO) methodology for diagnosing six shadows and other single faults in 9 &#xd7; 9 panel PV arrays. <xref ref-type="bibr" rid="B21">Wang et al. (2019)</xref> proposed a fault diagnosis algorithm based on support vector machine (SVM) to achieve short circuit, open circuit, and shadowing fault detection in PV arrays by researching the I-V characteristic curves of faulty PV arrays. <xref ref-type="bibr" rid="B7">Guo et al. (2025)</xref> proposed a neural network model incorporating multi-channel one-dimensional convolution to capture multi-scale information to improve feature representation; they then used LSTM, AdaBoost, and logistic regression methods to construct a stacked model to categorize a single fault type of PV arrays. <xref ref-type="bibr" rid="B6">Gong et al. (2024)</xref> proposed a multi-source information fusion network (MSIFN) and then used the multi-strategy fusion whale optimization algorithm (MSFWOA) to optimize the global parameters with good diagnostic results in three types of noise experiments at 15 dB, 25 dB, and 30&#xa0;dB. <xref ref-type="bibr" rid="B13">Lu et al. (2019)</xref> transformed the time series currents and voltages of PV arrays into two-dimensional electrical time series diagrams to visualize the characteristics of the time series data; they then proposed a convolutional neural network structure incorporating multiple convolutional layers and multiple pooling layers for PV array fault diagnosis. <xref ref-type="bibr" rid="B22">Xi et al. (2021)</xref> proposed a sparse representation of the Fisher discriminant dictionary learning (FDDL) method to diagnose PV array faults, interline faults, open-circuit faults, and partially shaded faults. <xref ref-type="bibr" rid="B12">Liu et al. (2019)</xref> proposed a primitive clustering method based on expansion and erosion theory to diagnose PV array faults by using an unsupervised learning method which does not need to pre-determine the number of clusters and has high adaptability and effectiveness under multi-dimensional meteorological data input. <xref ref-type="bibr" rid="B10">Lu et al. (2021)</xref> proposed a dual-channel convolutional neural network and designed a novel feature selection structure to improve the accuracy of PV fault diagnosis.</p>
<p>However, PV equipment operation can result in missing data due to factors such as blocked communication, environmental factors, and poor inverter quality. Existing fault diagnosis methods based on PV operation data do not account for the above problem of missing data in actual working conditions. The long-term operation of PV equipment can lead to wear and tear in multiple areas. Multiple damages from extreme weather (strong winds/rainstorms/lightning strikes) can also cause PV failures. In addition, when multiple small faults are not dealt with in time, they can easily develop into compound faults.</p>
<p>All of the above studies diagnose for a single fault type of PV. However, there has been no research into fault detection for PV equipment composite faults. Therefore, a PV equipment fault diagnosis method based on the Tucker decomposition-SSA-Informer-MSCNet model is proposed to accurately identify multiple composite faults in PV arrays. This will promote the development of smart grids and the construction of digital grids.</p>
</sec>
<sec id="s2">
<label>2</label>
<title>PV array failure analysis and causes of missing data</title>
<sec id="s2-1">
<label>2.1</label>
<title>Causes of missing data collected from PV equipment</title>
<p>Typically, PV power plants monitor real-time voltage, current, and power along with environmental data such as temperature and irradiance. For fault detection, performance evaluation, or maintenance, this study establishes a practical PV simulation platform to collect operational data. The hardware components include PV panels, resistance boxes, temperature sensors, and electricity meters.</p>
<p>The PV data acquisition platform established here operates as a remote data collection system. During PV system testing and analysis, simulated datasets that are collected may experience data gaps due to a number of reasons. (1) Equipment failure or configuration errors: malfunctions in electricity meters or sensors may prevent data collection during specific periods. (2) Trigger desynchronization: asynchronous triggering signals between multiple devices (e.g., light sources and acquisition systems) may cause data misalignment or loss. (3) Irradiation instability: fluctuations in natural sunlight or unstable output from artificial light sources may interrupt measurements or trigger anomalies. (4) Temperature drift: significant component temperature changes during prolonged measurements can distort data. Without real-time temperature compensation, data within specific ranges may become invalid or distorted. (5) Component defects: hidden cracks, poor soldering, or cell failures may cause open circuits or short circuits within specific voltage/current ranges, interrupting data collection. (6) Data transmission errors: signal interference, communication blockages, or poor connections in wired/wireless transmission systems may cause data loss. (7) Operational errors: incorrect device calibration (leading to distorted low-current data), loose wiring, or poor probe contact may cause measurement interruptions.</p>
<p>When missing data occurs due to the above factors, repeating the measurement or repairing the equipment will waste time and resources Therefore, it is necessary to fill in the missing data of PV arrays.</p>
</sec>
<sec id="s2-2">
<label>2.2</label>
<title>PV array fault cause analysis and simulation</title>
<p>Long-term PV operation induces array failures such as short circuits, aging, shading, and cell degradation due to equipment wear and environmental stressors. Undetected minor faults propagate into multiple simultaneous failures through insufficient detection sensitivity and delayed intervention. These compound faults critically compromise power system stability. We simulated PV array failures using actual equipment. <xref ref-type="fig" rid="F1">Figure 1</xref> shows a schematic diagram of the measurement principle.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>PV fault simulation structure.</p>
</caption>
<graphic xlink:href="felec-06-1656864-g001.tif">
<alt-text content-type="machine-generated">Diagram of a solar panel array illustrating various faults and measurements. Panels are connected in series, showing open circuit faults, short circuit failure, abnormal aging, and partial shadow effects. The circuit includes voltage and current measurement systems leading to power measurement.</alt-text>
</graphic>
</fig>
<p>Currently, the characteristics and causes of PV faults are widely agreed (<xref ref-type="bibr" rid="B11">Liu and Wu, 2025</xref>). (1) Aging faults are mainly due to the wear and tear of PV arrays caused by long operation time, which can be realized here by changing the resistance value. (2) Short circuit is the phenomenon of shorting at different points in the PV string, which can be realized by controlling the shunt resistance. (3) Localized shading refers to the fact that some modules are not able to receive sunlight due to shading by external objects, which leads to uneven output current of PV modules and reduces the overall power generation efficiency. This can be studied by controlling the input irradiance. (4) Open-circuit faults are caused by false soldering, desoldering, or breakage, which can be realized by controlling the respective branching structure. When two or more faults occur, they evolve into compound faults.</p>
<p>The data collected on PV operating voltage, current, power, and irradiance and temperature were obtained from an actual simulation platform consisting of eight PV modules connected in series and parallel. The model includes two series units, each comprising four PV modules connected in series. Thus, the total array configuration is 4 series &#xd7; 2 parallel. Through fault simulation, operational data for various typical faults in the PV array were obtained and annotated under standard operating conditions.</p>
</sec>
</sec>
<sec id="s3">
<label>3</label>
<title>Diagnosis of PV faulty arrays based on Tucker decomposition-SSA-informer-MSCNET models</title>
<sec id="s3-1">
<label>3.1</label>
<title>Tucker decomposition and structure tensor based missing data recovery method for PV array acquisitions</title>
<p>PV data such as power (P), voltage (V), current (I), irradiance intensity, and timestamps represent typical high-dimensional data. Tensors, as computational tools capable of handling high-dimensional data, possess an inherent spatial structure. We use a Hankel tensor that can effectively improve data recovery accuracy (<xref ref-type="bibr" rid="B25">Yang et al., 2025</xref>). Taking the PV power data as an example, the MDT technique is used to construct the Hankel tensor.</p>
<p>We first designed a folding transformation operator as shown in <xref ref-type="disp-formula" rid="e1">Equation 1</xref>:<disp-formula id="e1">
<mml:math id="m1">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>l</mml:mi>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>L</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:msup>
<mml:mi>R</mml:mi>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2192;</mml:mo>
<mml:msup>
<mml:mi>R</mml:mi>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>&#x2014;where <inline-formula id="inf1">
<mml:math id="m2">
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the delay window size, <italic>L</italic> is the vector length of PV data collection, and <italic>fold</italic> represents the fold operator.</p>
<p>Photovoltaic data acquisition requires standard delay transformation (also known as &#x201C;Hankification&#x201d;) to obtain the Hank form matrix, as shown in <xref ref-type="disp-formula" rid="e2">Equation 2</xref>:<disp-formula id="e2">
<mml:math id="m3">
<mml:mrow>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mi>&#x3c4;</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>l</mml:mi>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>L</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x22f1;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>&#x3c4;</mml:mi>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi>R</mml:mi>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>&#x2014;where <italic>x</italic> is the input PV data sequence, and <inline-formula id="inf2">
<mml:math id="m4">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is a repetition matrix that satisfies (<xref ref-type="disp-formula" rid="e3">Equation 3</xref>)<disp-formula id="e3">
<mml:math id="m5">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mi>&#x3c4;</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>
</p>
<p>Then, the matrices are subjected to stacking operation to change into Hankel tensors.</p>
<p>The Hankel tensor filling model based on Tucker decomposition is established as shown in <xref ref-type="disp-formula" rid="e4">Equation 4</xref>:<disp-formula id="e4">
<mml:math id="m6">
<mml:mrow>
<mml:munder>
<mml:mi>min</mml:mi>
<mml:mrow>
<mml:mi mathvariant="script">G</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">U</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">V</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">Y</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mtext>&#xa0;</mml:mtext>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:msubsup>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="script">P</mml:mi>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:msub>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="script">H</mml:mi>
<mml:mi mathvariant="script">T</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="script">X</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi mathvariant="script">H</mml:mi>
<mml:mi mathvariant="script">T</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="script">G</mml:mi>
<mml:msub>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi mathvariant="script">U</mml:mi>
<mml:msub>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi mathvariant="script">V</mml:mi>
<mml:msub>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mi mathvariant="script">Y</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>F</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="|">
<mml:mrow>
<mml:mi mathvariant="script">G</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>F</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="|">
<mml:mrow>
<mml:mi mathvariant="script">U</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>F</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="|">
<mml:mrow>
<mml:mi mathvariant="script">V</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>F</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="|">
<mml:mrow>
<mml:mi mathvariant="script">Y</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>F</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>&#x2014;where <inline-formula id="inf3">
<mml:math id="m7">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="script">P</mml:mi>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the index of the non-missing data consisting of 0 and 1, <inline-formula id="inf4">
<mml:math id="m8">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="script">H</mml:mi>
<mml:mi mathvariant="script">T</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="script">X</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the original tensor, <inline-formula id="inf5">
<mml:math id="m9">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="script">H</mml:mi>
<mml:mi mathvariant="script">T</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="script">G</mml:mi>
<mml:msub>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi mathvariant="script">U</mml:mi>
<mml:msub>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi mathvariant="script">V</mml:mi>
<mml:msub>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mi mathvariant="script">Y</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the reconstruction tensor, <inline-formula id="inf6">
<mml:math id="m10">
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the regularization coefficient, <inline-formula id="inf7">
<mml:math id="m11">
<mml:mrow>
<mml:mi mathvariant="script">G</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the core tensor, and <inline-formula id="inf8">
<mml:math id="m12">
<mml:mrow>
<mml:mi mathvariant="script">U</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>&#x3001;<inline-formula id="inf9">
<mml:math id="m13">
<mml:mrow>
<mml:mi mathvariant="script">V</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>&#x3001; <inline-formula id="inf10">
<mml:math id="m14">
<mml:mrow>
<mml:mi mathvariant="script">Y</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> are the factor matrices.</p>
<p>The alternating least squares method is used to solve the problem. Denoting the objective function as <italic>f</italic>, the partial derivatives for the core tensor <inline-formula id="inf11">
<mml:math id="m15">
<mml:mrow>
<mml:mi mathvariant="script">G</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> are given as <xref ref-type="disp-formula" rid="e5">Equation 5</xref>:<disp-formula id="e5">
<mml:math id="m16">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mi mathvariant="script">G</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="script">H</mml:mi>
<mml:mi mathvariant="script">T</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="script">X</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi mathvariant="script">H</mml:mi>
<mml:mi mathvariant="script">T</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="script">G</mml:mi>
<mml:msub>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi mathvariant="script">U</mml:mi>
<mml:msub>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi mathvariant="script">V</mml:mi>
<mml:msub>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mi mathvariant="script">Y</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msup>
<mml:mi mathvariant="script">U</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:msub>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:msup>
<mml:mi mathvariant="script">V</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:msub>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:msup>
<mml:mi mathvariant="script">Y</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3bb;</mml:mi>
<mml:mi mathvariant="script">G</mml:mi>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>
</p>
<p>The partial derivation of the factor matrix <inline-formula id="inf12">
<mml:math id="m17">
<mml:mrow>
<mml:mi mathvariant="script">U</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is given as <xref ref-type="disp-formula" rid="e6">Equation 6</xref>:<disp-formula id="e6">
<mml:math id="m18">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mi mathvariant="script">U</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mi mathvariant="script">H</mml:mi>
<mml:mi mathvariant="script">T</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="script">X</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi mathvariant="script">H</mml:mi>
<mml:mi mathvariant="script">T</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">U</mml:mi>
<mml:mi mathvariant="script">G</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="script">Y</mml:mi>
<mml:mo>&#x2297;</mml:mo>
<mml:mi mathvariant="script">V</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="script">Y</mml:mi>
<mml:mo>&#x2297;</mml:mo>
<mml:mi mathvariant="script">V</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msup>
<mml:mi mathvariant="script">G</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3bb;</mml:mi>
<mml:mi mathvariant="script">U</mml:mi>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>
</p>
<p>Similarly, the factor matrices <inline-formula id="inf13">
<mml:math id="m19">
<mml:mrow>
<mml:mi mathvariant="script">V</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf14">
<mml:math id="m20">
<mml:mrow>
<mml:mi mathvariant="script">Y</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> have the same form. Alternate solving is performed.</p>
<p>After obtaining the final solved Hankel, the complete data are output after passing through the delayed inverse transformation, as shown in <xref ref-type="disp-formula" rid="e7">Equation 7</xref>:<disp-formula id="e7">
<mml:math id="m21">
<mml:mrow>
<mml:msubsup>
<mml:mi>H</mml:mi>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x2020;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="script">X</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>u</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>l</mml:mi>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>L</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="script">X</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msup>
<mml:mi>S</mml:mi>
<mml:mo>&#x2020;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>&#x2014;where <inline-formula id="inf15">
<mml:math id="m22">
<mml:mrow>
<mml:msup>
<mml:mi>S</mml:mi>
<mml:mo>&#x2020;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msup>
<mml:mi>S</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mi>S</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is the Moore&#x2013;Penrose pseudo-inverse transformation, and <inline-formula id="inf16">
<mml:math id="m23">
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>l</mml:mi>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>L</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the inverse operation.</p>
</sec>
<sec id="s3-2">
<label>3.2</label>
<title>Feature extraction method based on Informer-MSCNET</title>
<p>The Informer network outperforms the Transformer network in long time-series feature extraction. The model also uses an encoder&#x2013;decoder architecture, where the encoder converts the input information into dense vectors of fixed dimensions and extracts features from the elements in order to generate a mapping of the features (<xref ref-type="bibr" rid="B27">Zhou et al., 2021</xref>). The Informer model mainly consists of an input representation, an encoder, and a decoder, the structure of which is shown in <xref ref-type="fig" rid="F2">Figure 2</xref>.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Informer structure diagram.</p>
</caption>
<graphic xlink:href="felec-06-1656864-g002.tif">
<alt-text content-type="machine-generated">Diagram of an encoder-decoder architecture for a transformer model. The encoder, on the left, features multi-head ProbSparse self-attention layers. The decoder, on the right, includes multi-head attention and masked multi-head ProbSparse self-attention. Inputs, indicated by green bars, undergo position embedding before entering both the encoder and decoder. Outputs, shown as a series of red and white squares, follow the fully connected layer. A concatenated feature map connects the encoder and decoder.</alt-text>
</graphic>
</fig>
<p>The core of the Informer model consists of a probabilistic sparse self-attention mechanism and distillation.</p>
<p>The main effect of the probabilistic sparse self-attention mechanism is to make key focus only on the first n queries with high relevance, as shown in <xref ref-type="disp-formula" rid="e8">Equation 8</xref>:<disp-formula id="e8">
<mml:math id="m24">
<mml:mrow>
<mml:mi>Pr</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>o</mml:mi>
<mml:mi>b</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>max</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>Q</mml:mi>
<mml:mo>&#x2212;</mml:mo>
</mml:mover>
<mml:msup>
<mml:mi>K</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
<mml:msqrt>
<mml:mi>d</mml:mi>
</mml:msqrt>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>&#x2014;where <italic>softmax</italic> (&#xb7;) stands for the normalization operation, <italic>V</italic> stands for the value matrix, <italic>K</italic>
<sup>
<italic>T</italic>
</sup> stands for the transpose of the key matrix, and <italic>d</italic> is the input dimension. <inline-formula id="inf17">
<mml:math id="m25">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>Q</mml:mi>
<mml:mo>&#x2212;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> is a sparse matrix containing only the first <italic>n</italic> queries.</p>
<p>The use of the Informer network can better capture the global information in the long-term operation data of PV equipment. This will enable the extraction of global features.</p>
<p>Current PV fault diagnosis methods exhibit limited noise robustness due to inadequate multi-scale feature extraction capabilities. This study proposes MSCNet to simultaneously achieve granular local channel feature extraction and adaptive multiscale feature fusion.</p>
<p>First, based on the given input feature <italic>F</italic>, global max pooling and global average pooling operations are performed, as shown in <xref ref-type="disp-formula" rid="e9">Equation 9</xref>:<disp-formula id="e9">
<mml:math id="m26">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>v</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>A</mml:mi>
<mml:mi>v</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>l</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>max</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>M</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>x</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>l</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>
</p>
<p>In the formula, <italic>AvgPool</italic> (&#xb7;) represents average pooling calculation, and <italic>MaxPool</italic> (&#xb7;) represents maximum pooling calculation.</p>
<p>Then, after nonlinear mapping through the fully connected layer, the final output is obtained through a gating mechanism, as shown in <xref ref-type="disp-formula" rid="e10">Equation 10</xref>:<disp-formula id="e10">
<mml:math id="m27">
<mml:mrow>
<mml:msup>
<mml:mi>F</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mi>L</mml:mi>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>v</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>M</mml:mi>
<mml:mi>L</mml:mi>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi mathvariant="italic">Max</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(10)</label>
</disp-formula>
</p>
<p>In the formula, <italic>sigmoid</italic> (&#xb7;) represents the activation function, and <italic>MLP</italic> (&#xb7;) represents multilayer linear layer computation.</p>
<p>Meanwhile, another branch first expands the number of channels and solves the gradient vanishing problem through the convolution layer, normalization layer, and ReLU activation function, as shown in <xref ref-type="disp-formula" rid="e11">Equation 11</xref>:<disp-formula id="e11">
<mml:math id="m28">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>u</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>Re</mml:mtext>
<mml:mi>L</mml:mi>
<mml:mi>U</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(11)</label>
</disp-formula>
</p>
<p>In the formula, <italic>ReLU</italic>(&#xb7;) represents the activation function, <italic>BN</italic>(&#xb7;)the normalization layer, and <italic>Conv</italic> (&#xb7;) the convolution operation.</p>
<p>Then, we used the MSDC module to extract multiscale features, as shown in <xref ref-type="disp-formula" rid="e12">Equation 12</xref>:<disp-formula id="e12">
<mml:math id="m29">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>Re</mml:mtext>
<mml:mi>L</mml:mi>
<mml:mi>U</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>D</mml:mi>
<mml:mi>W</mml:mi>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>u</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>Re</mml:mtext>
<mml:mi>L</mml:mi>
<mml:mi>U</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>D</mml:mi>
<mml:mi>W</mml:mi>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>u</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>Re</mml:mtext>
<mml:mi>L</mml:mi>
<mml:mi>U</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>D</mml:mi>
<mml:mi>W</mml:mi>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mn>5</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>5</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>u</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(12)</label>
</disp-formula>
</p>
<p>In the formula, <italic>DWC</italic>(&#xb7;) stands for depthwise separable convolution.</p>
<p>Since depthwise separable convolutions ignore the relationships between channels, a channel shuffling operation is performed, as shown in <xref ref-type="disp-formula" rid="e13">Equation 13</xref>:<disp-formula id="e13">
<mml:math id="m30">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>o</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>C</mml:mi>
<mml:mi>h</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>S</mml:mi>
<mml:mi>h</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(13)</label>
</disp-formula>
</p>
<p>In the formula, <italic>channelshuffle</italic> (&#xb7;) refers to channel recombination operation, and <italic>F</italic>
<sub>
<italic>u1</italic>
</sub>, <italic>F</italic>
<sub>
<italic>u2</italic>
</sub>, and <italic>F</italic>
<sub>
<italic>u3</italic>
</sub> are the outputs after deep separable convolution.</p>
<p>Finally, we merged the two branches and obtained the final result through the fully connected layer, as shown in <xref ref-type="disp-formula" rid="e14">Equation 14</xref>:<disp-formula id="e14">
<mml:math id="m31">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>M</mml:mi>
<mml:mi>L</mml:mi>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msup>
<mml:mi>F</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi>F</mml:mi>
<mml:mo>&#x2033;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(14)</label>
</disp-formula>
</p>
<p>In the formula, <italic>Out</italic> is the final output.</p>
<p>MSCNet can capture the relationships between features in different channels of PV data. By recalibrating the weights of feature channels, the model can more effectively fuse multichannel information and improve overall feature representation capabilities. In our study, MSCNet is embedded after the convolutional pooling layer of the Informer encoder for feature enhancement. The MSCNet module enhances important features and suppresses irrelevant or redundant features by adaptively adjusting the weights of each channel feature in the PV data. This mechanism enhances the model&#x2019;s sensitivity to key features of PV array fault signals, thereby improving the accuracy of PV fault diagnosis in noisy environments.</p>
<p>The final global model of the Informer-MSCNet network is shown in <xref ref-type="fig" rid="F3">Figure 3</xref>.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>General model architecture diagram.</p>
</caption>
<graphic xlink:href="felec-06-1656864-g003.tif">
<alt-text content-type="machine-generated">Overall structure diagram of a model showcasing the workflow from inputs to outputs. Includes processes like position embedding, self-attention distilling, and MSCNet, with a focus on attention mechanisms. The bottom section details the MSCNet and MSDC components, illustrating the flow through convolutional layers, batch normalization, pooling, and ReLU activation, ending with a sigmoid function and multi-layer perceptron. Channel shuffle is also depicted.</alt-text>
</graphic>
</fig>
</sec>
<sec id="s3-3">
<label>3.3</label>
<title>Global parameter optimization based on the sparrow optimization algorithm</title>
<p>The SSA algorithm is a mathematical model built by simulating the foraging and anti-predatory behavior of sparrows (<xref ref-type="bibr" rid="B24">Xue and Shen, 2020</xref>). Its core idea is that sparrows are divided into two groups: discoverers and joiners. The discoverers mainly find food and lead other sparrows. The joiners follow the discoverers to get food. In addition, the algorithm is designed with vigilantes, which are mainly responsible for monitoring the surroundings and alerting when danger is detected.</p>
<p>The steps of the algorithm are as follows:<list list-type="order">
<list-item>
<p>initialize the population and related parameters and calculate the fitness value of the initial population;</p>
</list-item>
<list-item>
<p>update the finder position, as shown in <xref ref-type="disp-formula" rid="e15">Equation 15</xref>:</p>
</list-item>
</list>
<disp-formula id="e15">
<mml:math id="m32">
<mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<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:msubsup>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
<mml:mo>&#xb7;</mml:mo>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>exp</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
<mml:mo>&#xb7;</mml:mo>
<mml:mi>i</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>e</mml:mi>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>max</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2002;if&#xa0;</mml:mtext>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x3c;</mml:mo>
<mml:mi>S</mml:mi>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>Q</mml:mi>
<mml:mo>&#xb7;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mtext>&#x2003;if&#xa0;</mml:mtext>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x3e;</mml:mo>
<mml:mi>S</mml:mi>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(15)</label>
</disp-formula>&#x2014;where <italic>R</italic>
<sub>
<italic>2</italic>
</sub> is the warning value, and ST is the safety value. When R<sub>2</sub>&#x3c;<italic>ST</italic>, it means it is safe. When R<sub>2</sub>&#x3e;&#x3d;<italic>ST</italic>, it indicates that there is some safety risk and it is necessary to move to a safe area.<list list-type="order">
<list-item>
<p>Updating of accessionist positions, as shown in <xref ref-type="disp-formula" rid="e16">Equation 16</xref>:</p>
</list-item>
</list>
<disp-formula id="e16">
<mml:math id="m33">
<mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mo>&#xb7;</mml:mo>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>exp</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mi>w</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
</mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2002;if&#xa0;</mml:mtext>
<mml:mi>i</mml:mi>
<mml:mo>&#x3e;</mml:mo>
<mml:mfrac bevelled="true">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#xb7;</mml:mo>
<mml:msup>
<mml:mi>A</mml:mi>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
<mml:mo>&#xb7;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mtext>&#x2003;otherwise</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(16)</label>
</disp-formula>&#x2014;where <italic>X</italic>
<sub>
<italic>p</italic>
</sub> is the position of the optimal explorer in the sparrow population, <italic>X</italic>
<sub>
<italic>worst</italic>
</sub> is the current global worst position, and <italic>n</italic> is the population size. <italic>A</italic> is a 1&#xd7;d matrix with random amplitude 1 or &#x2212;1 for each element, where A<sup>&#x2b;</sup> is defined as <xref ref-type="disp-formula" rid="e17">Equation 17</xref>:<disp-formula id="e17">
<mml:math id="m34">
<mml:mrow>
<mml:msup>
<mml:mi>A</mml:mi>
<mml:mo>&#x2b;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi>A</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:msup>
<mml:mi>A</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(17)</label>
</disp-formula>
<list list-type="order">
<list-item>
<p>In case of danger, there is a need to update the location, in a timely manner, of the sparrows that are aware of the danger, as shown in <xref ref-type="disp-formula" rid="e18">Equation 18</xref>:</p>
</list-item>
</list>
<disp-formula id="e18">
<mml:math id="m35">
<mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<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:msubsup>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b2;</mml:mi>
<mml:mo>&#xb7;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mi>f</mml:mi>
<mml:mtext>&#xa0;</mml:mtext>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3e;</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>g</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>&#xb7;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mrow>
<mml:mi>w</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>t</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>w</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mi>f</mml:mi>
<mml:mtext>&#xa0;</mml:mtext>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>g</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(18)</label>
</disp-formula>&#x2014;where <italic>X</italic>
<sub>best</sub> is the current global optimal position, <italic>&#x3b2;</italic> is a parameter whose main function is to control the step size and obeys a normal distribution with mean 0 and variance 1, <italic>K</italic> is a random number in [&#x2212;1,1], <italic>f</italic> is the fitness value, <italic>f</italic>
<sub>
<italic>g</italic>
</sub> and <italic>f</italic>
<sub>
<italic>w</italic>
</sub> are the current optimal and worst fitness values, respectively, and &#x3b5; is a constant to avoid the denominator being 0.<list list-type="order">
<list-item>
<p>Determine whether the stop condition is satisfied; if so, output the optimal sparrow position; otherwise, continue to update the finder position.</p>
</list-item>
</list>
</p>
</sec>
</sec>
<sec id="s4">
<label>4</label>
<title>Experimental analysis</title>
<p>We conducted a simulation experiment to collect real PV data in a city in northern China. The simulation system comprised real PV modules, a resistor box, an electricity meter, temperature sensors, an irradiance meter, and other equipment. Data were collected at 15-min intervals, resulting in a final dataset containing 4320 &#xd7; 5 sampling points. Furthermore, the ambient temperature in the dataset ranged from 25.47&#xa0;&#xb0;C to 34.69&#xa0;&#xb0;C, and the irradiance ranged from 527.25&#xa0;W/m<sup>2</sup> to 765.14&#xa0;W/m<sup>2</sup>. This was based on the simulation under different environmental conditions and operating states and to establish the PV array simulation fault data set. Then, based on pytorch1.8 framework, a python3.10 program is written.</p>
<p>For convenience of presentation, all fault types and labels used in this paper are shown in <xref ref-type="table" rid="T1">Table 1</xref>.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Fault types and labeling.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Label</th>
<th align="center">Classification</th>
<th align="center">Explicit description</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">Normal</td>
<td align="center">Trouble-free</td>
<td align="center">Normal operation</td>
</tr>
<tr>
<td align="center">S1</td>
<td rowspan="4" align="center">Single-type fault</td>
<td align="center">Open-circuit fault</td>
</tr>
<tr>
<td align="center">S2</td>
<td align="center">Line short-circuit fault</td>
</tr>
<tr>
<td align="center">S3</td>
<td align="center">Abnormal aging</td>
</tr>
<tr>
<td align="center">S4</td>
<td align="center">Partial shadows</td>
</tr>
<tr>
<td align="center">M1</td>
<td rowspan="4" align="center">Composite fault</td>
<td align="center">PV string open circuit &#x2b; module short-circuit</td>
</tr>
<tr>
<td align="center">M2</td>
<td align="center">PV module short-circuit and aging</td>
</tr>
<tr>
<td align="center">M3</td>
<td align="center">PV module open circuit and aging</td>
</tr>
<tr>
<td align="center">M4</td>
<td align="center">PV module short circuit and partial shadow masking</td>
</tr>
</tbody>
</table>
</table-wrap>
<sec id="s4-1">
<label>4.1</label>
<title>PV array acquisition data missing fill experiment</title>
<p>The simulated data were subjected to missing simulation, and two common scenarios&#x2014;random missing and continuous missing of current data&#x2014;were set up. Cubic spline interpolation, KNN (<xref ref-type="bibr" rid="B20">Song et al., 2025</xref>), SVM (<xref ref-type="bibr" rid="B4">Chao et al., 2021</xref>), and low-rank matrix filling (<xref ref-type="bibr" rid="B15">Miao and Kou, 2022</xref>) were selected as comparison methods. RSE was adopted as the evaluation index of different methods. The formulas are as shown in <xref ref-type="disp-formula" rid="e19">Equation 19</xref>:<disp-formula id="e19">
<mml:math id="m39">
<mml:mrow>
<mml:mtext>RSE</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="script">X</mml:mi>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi mathvariant="script">X</mml:mi>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="normal">F</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="script">X</mml:mi>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="normal">F</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>100</mml:mn>
<mml:mo>%</mml:mo>
</mml:mrow>
</mml:math>
<label>(19)</label>
</disp-formula>where <inline-formula id="inf3561">
<mml:math id="m2555">
<mml:mrow>
<mml:mi mathvariant="script">X</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the original complete tensor, <inline-formula id="inf3562">
<mml:math id="m2556">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="script">X</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is the post-completion complete tensor, and &#x7c;&#x7c;&#xb7;&#x7c;&#x7c;<sub>F</sub> denotes the F-paradigm.</p>
<p>In randomized missing recovery experiments, a single random missing datum is arbitrarily selected. We set the proportion of missing data in steps of 5% and step from 5% to 50% for 50 sets of experiments. The experimental results are shown in <xref ref-type="fig" rid="F4">Figure 4</xref>.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Completion effect of random missing data.</p>
</caption>
<graphic xlink:href="felec-06-1656864-g004.tif">
<alt-text content-type="machine-generated">Line graph comparing methods on random missing data rate percentage against RSE percentage. Four methods are plotted: &#x22;Our Method&#x22; in red squares, KNN in gray circles, low-rank matrix factorization in purple triangles, and SVM in blue triangles. &#x22;Our Method&#x22; consistently shows lower RSE across different data missing rates, performing best at lower percentages. KNN has the highest RSE, worsening with more missing data. Low-rank matrix factorization and SVM follow an increasing trend in RSE with higher missing data rates.</alt-text>
</graphic>
</fig>
<p>It can be seen that using this method has good results for the current missing data filling collected from PV arrays. Specifically analyzed, in the case of 50% random missing rate, the RSE is 3.51% using our method. This method is 3.74%, 2.77%, and 1.28% lower than KNN, low-rank matrix padding, and SVM, respectively, which shows the good results of the proposed algorithm.</p>
<p>Since we use an actual remote measurement system, continuous data loss occurs when problems such as remote device communication failures, unstable connections, and sensor failures occur. We considered data filling experiments with current data loss rates of 5%, 10%, 15%, 20%, 25%, and 30%. The comparison results are as follows.</p>
<p>As analyzed from this figure, the RSE of the proposed algorithm in this study is 5.27% with 30% continuous missing ratio. The KNN, low-rank matrix, and SVM-based algorithms are 9.93%, 10.28%, and 7.98%, respectively. Moreover, the RSE of this study&#x2019;s algorithm is lower than that of the comparison algorithms, regardless of any percentage where the continuous missing rate is set.</p>
</sec>
<sec id="s4-2">
<label>4.2</label>
<title>Photovoltaic array single-fault comparison experiment</title>
<p>This study simulates four single types of fault: short-circuit, aging, open circuit, and localized shadow; these are prone to occur in PV arrays under real working conditions. CNN (<xref ref-type="bibr" rid="B23">Xie et al., 2022</xref>), SVM (<xref ref-type="bibr" rid="B9">Koloko et al., 2022</xref>), TCN (<xref ref-type="bibr" rid="B26">Yating et al., 2021</xref>), Transformer (<xref ref-type="bibr" rid="B8">Khalil et al., 2024</xref>), and Informer (<xref ref-type="bibr" rid="B14">Ma et al., 2025</xref>) are selected for comparison tests. Classification accuracy, check accuracy, and recall are used as the evaluation indexes of single fault diagnosis accuracy. As shown in <xref ref-type="disp-formula" rid="e18">Equations 20</xref>&#x2013;<xref ref-type="disp-formula" rid="e22">22</xref>.<disp-formula id="e20">
<mml:math id="m36">
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>c</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mi>A</mml:mi>
<mml:mi>c</mml:mi>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mfrac>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>T</mml:mi>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>T</mml:mi>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>F</mml:mi>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>F</mml:mi>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(20)</label>
</disp-formula>
<disp-formula id="e21">
<mml:math id="m37">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>F</mml:mi>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(21)</label>
</disp-formula>
<disp-formula id="e22">
<mml:math id="m38">
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>F</mml:mi>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(22)</label>
</disp-formula>
</p>
<p>where <italic>N</italic> is the total number of categories, <italic>ACC</italic>
<sub>
<italic>i</italic>
</sub> represents the classification accuracy of faults in category <italic>i</italic>, <italic>TP</italic>
<sub>
<italic>i</italic>
</sub> and <italic>TN</italic>
<sub>
<italic>i</italic>
</sub> denote the number of samples correctly classified by the model as category <italic>i</italic> and non-<italic>i</italic>, respectively, and <italic>FP</italic>
<sub>
<italic>i</italic>
</sub> and <italic>FNi</italic> denote the number of samples incorrectly classified as category <italic>i</italic> and non-<italic>i</italic>. The confusion matrix is shown in <xref ref-type="table" rid="T3">Table 2</xref>.</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Confusion matrix.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th colspan="3" align="center">Forecast category</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td rowspan="2" align="center">Reference</td>
<td align="center">True positive (TP)</td>
<td align="center">False negative (FN)</td>
</tr>
<tr>
<td align="center">False positive (FP)</td>
<td align="center">True negative (TN)</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>In the case of the consecutively missing 30% of data, the experimental results of fault detection accuracy after obtaining the SVM method of complementation and after using our method are shown in <xref ref-type="table" rid="T3">Tables 3</xref> and <xref ref-type="table" rid="T4">4</xref>.</p>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Comparison of the effect of PV single-fault detection after using SVM complementation.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Method</th>
<th align="center">ACC%</th>
<th align="center">Precision%</th>
<th align="center">Recall%</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">CNN</td>
<td align="center">83.33</td>
<td align="center">84.69</td>
<td align="center">84.27</td>
</tr>
<tr>
<td align="center">SVM</td>
<td align="center">89.15</td>
<td align="center">88.2</td>
<td align="center">89.05</td>
</tr>
<tr>
<td align="center">TCN</td>
<td align="center">91.04</td>
<td align="center">91.95</td>
<td align="center">91.62</td>
</tr>
<tr>
<td align="center">Transformer</td>
<td align="center">94.53</td>
<td align="center">94.12</td>
<td align="center">94.41</td>
</tr>
<tr>
<td align="center">Informer</td>
<td align="center">94.57</td>
<td align="center">95.06</td>
<td align="center">95.24</td>
</tr>
<tr>
<td align="center">Our method</td>
<td align="center">97.21</td>
<td align="center">97.54</td>
<td align="center">97.87</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>Comparison of photovoltaic single-fault detection effect after complementation using the method of this study.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Method</th>
<th align="center">ACC%</th>
<th align="center">Precision%</th>
<th align="center">Recall%</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">CNN</td>
<td align="center">85.03</td>
<td align="center">85.87</td>
<td align="center">85.26</td>
</tr>
<tr>
<td align="center">SVM</td>
<td align="center">89.43</td>
<td align="center">88.62</td>
<td align="center">89.17</td>
</tr>
<tr>
<td align="center">TCN</td>
<td align="center">91.67</td>
<td align="center">92.11</td>
<td align="center">91.73</td>
</tr>
<tr>
<td align="center">Transformer</td>
<td align="center">94.53</td>
<td align="center">94.12</td>
<td align="center">94.41</td>
</tr>
<tr>
<td align="center">Informer</td>
<td align="center">95.68</td>
<td align="center">96.32</td>
<td align="center">95.75</td>
</tr>
<tr>
<td align="center">Our method</td>
<td align="center">98.73</td>
<td align="center">98.94</td>
<td align="center">98.61</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>It can be seen that the accuracy of data filling has an impact on the accuracy of different fault detection algorithms. Among these, the most influential is the CNN algorithm, which can improve the ACC by 1.7%. When using the fault detection algorithm in this study, the fault detection ACC is improved by 1.52%, the check accuracy is improved by 1.4%, and the recall rate is improved by 1.24%. Therefore, it is able to demonstrate the impact of data filling accuracy on PV array fault diagnosis.</p>
<p>We further analyzed the fault diagnosis accuracy of different algorithms. The algorithm we propose is effective in several evaluation indexes. The Informer model is effective in PV array single-fault detection with ACC of 95.68%, while the model built here has an ACC of 98.73%&#x2014;an improvement of 3.05% compared to the ACC of the Informer model. At the same time, the checking accuracy percentage (precision) is 98.92% compared with Informer, Transformer, TCN, SVM, CNN improvements of 2.62%, 3.82%, 6.83%, 10.32%, and 13.07%, respectively. The recall of the model we propose is 98.61%, compared with Informer, Transformer, TCN, SVM, and CNN at 2.86%, 3.2%, 6.88%, 9.44%, and 13.35%, respectively. The effectiveness of our method in single PV fault diagnosis is thus demonstrated.</p>
</sec>
<sec id="s4-3">
<label>4.3</label>
<title>Performance evaluation and analysis of single-fault diagnosis models under the influence of noise</title>
<p>In the actual operation of PV equipment, noise is an indispensable component in real measurement data. In this study, 30 dB and 40&#xa0;dB of noise are added to simulate the real measurement environment for comparison tests. The comparison algorithm selects the Informer and Transformer models that perform well in the single fault of PV array. The relevant results are shown in <xref ref-type="fig" rid="F6">Figures 6</xref>, <xref ref-type="fig" rid="F7">7</xref>.</p>
<p>As can be seen from <xref ref-type="fig" rid="F5">Figure 5</xref>, our algorithm performs well in the simulated real scenario, with an average recognition accuracy of 98.4%&#x2014;2.8% and 5% higher than that of Informer and Transformer, respectively&#x2014;further illustrating that our algorithm has good ability to be applied in engineering.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Completion effect of continuous missing data.</p>
</caption>
<graphic xlink:href="felec-06-1656864-g005.tif">
<alt-text content-type="machine-generated">Line graph comparing four methods: &#x22;Our Method&#x22; (red squares), &#x22;KNN&#x22; (gray circles), &#x22;low-rank matrix factorization&#x22; (purple triangles), and &#x22;SVM&#x22; (blue triangles). The x-axis shows the percentage of continuous missing data, ranging from 5% to 30%. The y-axis represents the RSE percentage, from 0% to 12%. &#x22;Our Method&#x22; consistently shows the lowest RSE, while &#x22;low-rank matrix factorization&#x22; indicates the highest. As the percentage of missing data increases, RSE rises across all methods.</alt-text>
</graphic>
</fig>
<p>The results of the associated fault classification when adding 40&#xa0;dB of noise are shown in the heat map below.</p>
<p>From <xref ref-type="fig" rid="F6">Figures 6</xref>, <xref ref-type="fig" rid="F7">7</xref> it can be seen that in the face of 40&#xa0;dB noise, the proposed algorithm in this study only reduces the recognition accuracy of localized shadow faults and aging faults of PV equipment by nearly 2% and 1%, respectively, compared with when 30&#xa0;dB noise is applied. For other types of faults, the recognition accuracy is basically unchanged. Transformer and Informer are affected to different degrees. For specific analysis, the accuracy of the Informer model in recognizing open circuit, short circuit, and aging decreases by nearly 2%, 3%, and 6%, respectively, compared with when 30&#xa0;dB noise is applied, while the accuracy of the Transformer model in recognizing normal operation, open circuit, short circuit, and aging decreases by nearly 6%, 5%, 1%, and 5%, respectively, compared with when 30&#xa0;dB noise is applied. This demonstrates the good robustness of our algorithm, and further shows that it has good application in engineering.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Single-fault identification accuracy of PV devices under 30&#xa0;dB noise.</p>
</caption>
<graphic xlink:href="felec-06-1656864-g006.tif">
<alt-text content-type="machine-generated">Three confusion matrices compare predicted labels to actual health states. Blue squares highlight higher accuracy values. From left to right, matrix accuracies vary: the left matrix has notable values like 0.91 for Health-Health and 0.95 for S1-S1; the middle shows 0.96 for Health-Health and 0.97 for S1-S1; the right has high values like 0.99 for Health-Health and 1.0 for S3-S3. The diagonal dominance indicates accurate predictions for most categories.</alt-text>
</graphic>
</fig>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Single-fault identification accuracy of PV devices under 40&#xa0;dB noise.</p>
</caption>
<graphic xlink:href="felec-06-1656864-g007.tif">
<alt-text content-type="machine-generated">Three confusion matrices compare predicted labels versus actual labels for health conditions. The first matrix shows high accuracy for Health and S2. The second matrix improves on S4 predictions. The third matrix achieves near-perfect accuracy for S3 classification. Each condition is labeled Health, S1, S2, S3, and S4, with higher values highlighted in blue.</alt-text>
</graphic>
</fig>
</sec>
<sec id="s4-4">
<label>4.4</label>
<title>Performance evaluation and analysis of composite fault diagnosis models under the influence of noise</title>
<p>When a single fault is not removed in time, it evolves into a compound fault. According to the model proposed here, several experiments were carried out based on the addition of four composite fault types, and the experimental results were obtained as shown in <xref ref-type="fig" rid="F8">Figure 8</xref>.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Photovoltaic complex fault training set and test set accuracy.</p>
</caption>
<graphic xlink:href="felec-06-1656864-g008.tif">
<alt-text content-type="machine-generated">Radar chart displaying average recognition accuracy for training and test sets across eight categories: M1 to M4 and S1 to S4. Accuracy values range from 88 to 100. The blue line indicates training set accuracy, and the red line represents test set accuracy, highlighting the performance differences.</alt-text>
</graphic>
</fig>
<p>It can be seen that the PV fault diagnosis model we propose still has good recognition accuracy after adding the four new faults. Specifically analyzed, both the average training and test set accuracy still have good recognition accuracy for single-PV fault diagnosis accuracy. In the case of composite faults, the average training set accuracy of M1-fault-type recognition is 98.92%, the average test set accuracy is 97.46%, and the average training and test set accuracy of M2, M3, and M4 faults are close to each other. Therefore, the algorithm proposed in this study still has high diagnostic accuracy for PV arrays with compound faults.</p>
<p>We also simulated a real engineering scenario when a compound fault occurs. A noise of 30&#xa0;dB was added to the occurrence of the compound fault. The experimental results we obtained are shown in <xref ref-type="fig" rid="F9">Figure 9</xref>.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>Composite fault recognition accuracy of different algorithms.</p>
</caption>
<graphic xlink:href="felec-06-1656864-g009.tif">
<alt-text content-type="machine-generated">Bar chart comparing accuracy and recall of different algorithms: CNN, SVM, TCN, Transformer, Informer, and a proposed algorithm. Both accuracy and recall increase, with the proposed algorithm performing best.</alt-text>
</graphic>
</fig>
<p>It can be seen that the ACC of the algorithm proposed in this paper is 96.12% with the addition of four composite faults and the addition of 30&#xa0;dB of noise effects. It improves 4.61%, 5.9%, 11.51%, 13.96%, and 17.88% compared to Informer, Transformer, TCN, SVM, and CNN. The Recall algorithm proposed in this paper is 96.76% compared to the Informer, Transformer, TCN, SVM, CNN improvements of 3.9%, 7.19%, 11.6%, 15.72%, and 19.45%, respectively. This illustrates that our algorithm still shows effective and robust results under the occurrence of compound faults and the addition of 30&#xa0;dB noise.</p>
</sec>
<sec id="s4-5">
<label>4.5</label>
<title>Ablation experiment</title>
<p>To validate the effectiveness of the proposed MSCNet, this section conducts ablation experiments. These comprehensively identify single and composite faults. The experimental results are shown in <xref ref-type="fig" rid="F10">Figure 10</xref> (the left figure shows TCN-Informer-SSA, and the right figure shows the proposed algorithm).</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>Heat map comparing ablation experiments.</p>
</caption>
<graphic xlink:href="felec-06-1656864-g010.tif">
<alt-text content-type="machine-generated">Two heatmaps display data comparisons between health metrics and columns labeled S1 to S4 and M1 to M4. Each heatmap shows color-coded values from yellow to dark blue, indicating variations in numerical values. Dark blue represents higher values, while yellow indicates lower ones. Both heatmaps have a similar structure, but the specific numerical values vary, showing different transition levels between metrics.</alt-text>
</graphic>
</fig>
<p>As shown in the experimental results figure, the use of MSCNet significantly improves the detection accuracy of both single and composite faults in photovoltaic arrays. Overall, the accuracy of the algorithm proposed in this study for PV fault diagnosis exceeds 95%. In contrast, the TCN-Informer-SSA algorithm achieves an accuracy of over 95% only when identifying the health status of PV equipment and S4 faults, while its accuracy falls below 90% when identifying healthy PV equipment, S1 faults, and M2 faults. Specifically, when an S1-type fault occurs, the identification accuracy of the algorithm we propose is 0.99, while the TCN-Informer-SSA algorithm achieves only 0.83, which is 16% lower than our algorithm. This further validates the effectiveness of the MSCNet proposed here for multi-scale feature extraction.</p>
</sec>
</sec>
<sec sec-type="conclusion" id="s5">
<label>5</label>
<title>Conclusion</title>
<p>This study proposes a photovoltaic (PV) fault diagnosis model based on Tucker decomposition-SSA-Informer-MSCNet. The model can effectively identify single and composite faults in PV arrays and withstand the influence of 30 dB and 40&#xa0;dB noise. It has important application value in engineering practice and also has good diagnostic effects for composite faults. The specific conclusions are as follows.<list list-type="order">
<list-item>
<p>This study proposes the Tucker decomposition method to fill missing data. It provides good data inputs to the subsequently constructed model, which is important for improving fault identification accuracy.</p>
</list-item>
<list-item>
<p>The Informer-MSCNet model is proposed to fully extract data features. By embedding MSCNet into the Informer network, multiscale key features were extracted, greatly improving fault diagnosis accuracy.</p>
</list-item>
<list-item>
<p>For the problem of many parameters of the Informer-MSCNet model, this study uses the sparrow search algorithm (SSA) to optimize the global parameters, thus accelerating the convergence of the model.</p>
</list-item>
<list-item>
<p>PV single fault and composite fault, containing 30&#xa0;dB noise impact of data simulation and using the model we propose for PV array fault diagnosis experiments are shown to be effective by our results.</p>
</list-item>
</list>
</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s6">
<title>Data availability statement</title>
<p>The raw data supporting the conclusions of this article will be made available by the authors without undue reservation.</p>
</sec>
<sec sec-type="author-contributions" id="s7">
<title>Author contributions</title>
<p>DL: Conceptualization, Data curation, Funding acquisition, Writing &#x2013; review and editing, Software, Writing &#x2013; original draft, Resources. XZ: Investigation, Supervision, Writing &#x2013; review and editing, Methodology. CD: Validation, Writing &#x2013; review and editing, Software, Supervision.</p>
</sec>
<sec sec-type="COI-statement" id="s9">
<title>Conflict of interest</title>
<p>Authors DL, XZ, and CD were employed by Beijing Fibrlink Communications Co., LTD.</p>
<p>The authors declare that this study received funding from the project &#x201c;Key Technology Research and Product Development of digital Enhancement of New active Distribution Network with Source Network load and storage Coordination&#x201d; of Beijing Fibrlink Communications Co., LTD.(Project number:546826240038). The funder had the following involvement in the study: data collection and analysis,decision to publish.</p>
</sec>
<sec sec-type="ai-statement" id="s10">
<title>Generative AI statement</title>
<p>The author(s) declare that no Generative AI was used in the creation of this manuscript.</p>
<p>Any alternative text (alt text) provided alongside figures in this article has been generated by Frontiers with the support of artificial intelligence and reasonable efforts have been made to ensure accuracy, including review by the authors wherever possible. If you identify any issues, please contact us.</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>
<fn-group>
<fn fn-type="custom" custom-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1670159/overview">Isabel M. Moreno-Garcia</ext-link>, Universidad de C&#xf3;rdoba, Spain</p>
</fn>
<fn fn-type="custom" custom-type="reviewed-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1911028/overview">Sidharth Sabyasachi</ext-link>, Yeungnam University, Republic of Korea</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/3131188/overview">Isabel Santiago</ext-link>, University of Cordoba, Spain</p>
</fn>
</fn-group>
<ref-list>
<title>References</title>
<ref id="B1">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Agoua</surname>
<given-names>X. G.</given-names>
</name>
<name>
<surname>Girard</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Kariniotakis</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Short-term spatio-temporal forecasting of photovoltaic power production</article-title>. <source>IEEE Trans. Sustain. Energy</source> <volume>9</volume> (<issue>2</issue>), <fpage>538</fpage>&#x2013;<lpage>546</lpage>. <pub-id pub-id-type="doi">10.1109/TSTE.2017.2747765</pub-id>
</mixed-citation>
</ref>
<ref id="B2">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ahadi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Miryousefi Aval</surname>
<given-names>S. M.</given-names>
</name>
<name>
<surname>Hayati</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2016a</year>). <article-title>Generating capacity adequacy evaluation of large-scale, grid-connected photovoltaic systems</article-title>. <source>Front. Energy</source> <volume>10</volume>, <fpage>308</fpage>&#x2013;<lpage>318</lpage>. <pub-id pub-id-type="doi">10.1007/s11708-016-0415-9</pub-id>
</mixed-citation>
</ref>
<ref id="B3">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ahadi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Hayati</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Mitra</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Abbasi-Asl</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Awodele</surname>
<given-names>K.</given-names>
</name>
</person-group> (<year>2016b</year>). <article-title>A new method for estimating the longevity and degradation of photovoltaic systems considering weather states</article-title>. <source>Front. Energy</source> <volume>10</volume>, <fpage>277</fpage>&#x2013;<lpage>285</lpage>. <pub-id pub-id-type="doi">10.1007/s11708-016-0400-3</pub-id>
</mixed-citation>
</ref>
<ref id="B4">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chao</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Ziwei</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Yining</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Peng</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Shan</surname>
<given-names>S.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <article-title>Online monitoring data processing method of transformer oil chromatogram based on association rules</article-title>. <source>IEEJ Trans. Electr. Electron. Eng.</source> <volume>17</volume>(<issue>3</issue>):<fpage>354</fpage>&#x2013;<lpage>360</lpage>. <pub-id pub-id-type="doi">10.1002/tee.23518</pub-id>
</mixed-citation>
</ref>
<ref id="B5">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Emanuele</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Kumar</surname>
<given-names>A. J.</given-names>
</name>
<name>
<surname>Ioannis</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Valastro</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Sanzaro</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Mannino</surname>
<given-names>G.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <article-title>MAPbI3 Deposition by LV-PSE on TiO2 for photovoltaic application</article-title>. <source>Front. Electron.</source> <volume>2</volume>, <fpage>726171</fpage>. <pub-id pub-id-type="doi">10.3389/felec.2021.726171</pub-id>
</mixed-citation>
</ref>
<ref id="B6">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Gong</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>An</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Shi</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Jia</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>Fault diagnosis of photovoltaic array with multi-module fusion under hyperparameter optimization</article-title>. <source>Energy Convers. Manag.</source> <volume>319</volume> (<issue>2024</issue>), <fpage>118974</fpage>. <pub-id pub-id-type="doi">10.1016/j.enconman.2024.118974</pub-id>
</mixed-citation>
</ref>
<ref id="B7">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Guo</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Fu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2025</year>). <article-title>Research on fault diagnosis method for photovoltaic array based on model fusion</article-title>. <source>Electr. Eng.</source>, <volume>107</volume>, <fpage>8189</fpage>&#x2013;<lpage>8199</lpage>. <pub-id pub-id-type="doi">10.1007/s00202-025-02963-6</pub-id>
</mixed-citation>
</ref>
<ref id="B8">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Khalil</surname>
<given-names>I. U.</given-names>
</name>
<name>
<surname>Ul Haq</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Islam</surname>
<given-names>N.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>A deep learning-based transformer model for photovoltaic fault forecasting and classification</article-title>. <source>Electr. Power Syst. Res.</source> <volume>228</volume>. <pub-id pub-id-type="doi">10.1016/j.epsr.2023.110063</pub-id>
</mixed-citation>
</ref>
<ref id="B9">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Koloko</surname>
<given-names>J. R. K.</given-names>
</name>
<name>
<surname>E</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Wamkeue</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Melingui</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Fault detection and classification of a photovoltaic generator using the BES optimization algorithm associated with SVM</article-title>. <source>Int. J. Photoenergy</source>, <fpage>1</fpage>, <lpage>14</lpage>. <pub-id pub-id-type="doi">10.1155/2022/6841861</pub-id>
</mixed-citation>
</ref>
<ref id="B10">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Lin</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Cheng</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Fang</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>Z.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <article-title>Fault diagnosis model for photovoltaic array using a dual-channels convolutional neural network with a feature selection structure</article-title>. <source>Energy Convers. Manag.</source> <volume>248</volume> (<issue>2021</issue>), <fpage>114777</fpage>. <pub-id pub-id-type="doi">10.1016/j.enconman.2021.114777</pub-id>
</mixed-citation>
</ref>
<ref id="B11">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2025</year>). <article-title>Fault diagnosis of photovoltaic modules: a review</article-title>. <source>Sol. Energy</source> <volume>293</volume>, <fpage>113489</fpage>. <pub-id pub-id-type="doi">10.1016/j.solener.2025.113489</pub-id>
</mixed-citation>
</ref>
<ref id="B12">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Dong</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Liao</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Hao</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Cao</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>A Dilation and erosion-based clustering approach for fault diagnosis of photovoltaic arrays</article-title>. <source>IEEE Sensors J.</source> <volume>19</volume> (<issue>11</issue>), <fpage>4123</fpage>&#x2013;<lpage>4137</lpage>. <pub-id pub-id-type="doi">10.1109/JSEN.2019.2896236</pub-id>
</mixed-citation>
</ref>
<ref id="B13">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Lin</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Cheng</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Lin</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>L.</given-names>
</name>
<etal/>
</person-group> (<year>2019</year>). <article-title>Fault diagnosis for photovoltaic array based on convolutional neural network and electrical time series graph</article-title>. <source>Energy Convers. Manag.</source> <volume>196</volume> (<issue>2019</issue>), <fpage>950</fpage>&#x2013;<lpage>965</lpage>. <pub-id pub-id-type="doi">10.1016/j.enconman.2019.06.062</pub-id>
</mixed-citation>
</ref>
<ref id="B14">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ma</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Shi</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2025</year>). <article-title>A High-precision method for detecting rolling bearing faultis in unmanned aerial vehicle based on improved 1DCNN-Informer model</article-title>. <source>Measurement</source> <volume>256</volume>, <fpage>118200</fpage>. <pub-id pub-id-type="doi">10.1016/j.measurement.2025.118200</pub-id>
</mixed-citation>
</ref>
<ref id="B15">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Miao</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Kou</surname>
<given-names>K. I.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Color image recovery using low-rank Quaternion matrix completion algorithm</article-title>. <source>IEEE Trans. Image Process.</source> <volume>31</volume>, <fpage>190</fpage>&#x2013;<lpage>201</lpage>. <pub-id pub-id-type="doi">10.1109/TIP.2021.3128321</pub-id>
<pub-id pub-id-type="pmid">34807825</pub-id>
</mixed-citation>
</ref>
<ref id="B16">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Parenti</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Fossa</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Delucchi</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>A model for energy predictions and diagnostics of large-scale photovoltaic systems based on electric data and thermal imaging of the PV fields</article-title>. <source>Renew. Sustain. Energy Rev.</source> <volume>206</volume>, <fpage>114858</fpage>. <pub-id pub-id-type="doi">10.1016/j.rser.2024.114858</pub-id>
</mixed-citation>
</ref>
<ref id="B17">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Peng</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Feng</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>Stable operating limits and improvement methods for hydropower and photovoltaic integration through MMC-HVDC systems</article-title>. <source>Front. Electron.</source> <volume>4</volume>, <fpage>1342795</fpage>. <pub-id pub-id-type="doi">10.3389/felec.2023.1342795</pub-id>
</mixed-citation>
</ref>
<ref id="B18">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ren</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Luo</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Mao</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2025</year>). <article-title>Performance evaluation of photovoltaic scenario generation</article-title>. <source>Front. Phys.</source> <volume>13</volume>, <fpage>131534629</fpage>&#x2013;<lpage>1534629</lpage>. <pub-id pub-id-type="doi">10.3389/fphy.2025.1534629</pub-id>
</mixed-citation>
</ref>
<ref id="B19">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Saravanan</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Senthil Kumar</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Balakumar</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Prabaharan</surname>
<given-names>N.</given-names>
</name>
</person-group> (<year>2025</year>). <article-title>Optimal power harvesting under partial shading: Binary Greylag Goose optimization for reconfiguration and Machine learning-Based fault diagnosis in solar PV arrays</article-title>. <source>Energy Convers. Manag.</source> <volume>333</volume>, <fpage>119808</fpage>. <pub-id pub-id-type="doi">10.1016/j.enconman.2025.119808</pub-id>
</mixed-citation>
</ref>
<ref id="B20">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Song</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2025</year>). <article-title>Demand-driven kNN classification</article-title>. <source>Knowledge-Based Syst.</source> <volume>327</volume>, <fpage>114090</fpage>. <pub-id pub-id-type="doi">10.1016/j.knosys.2025.114090</pub-id>
</mixed-citation>
</ref>
<ref id="B21">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Fault diagnosis method of photovoltaic array based on support vector machine</article-title>. <source>Energy Sources, Part A Recovery, Util. Environ. Eff.</source> <volume>45</volume> (<issue>2</issue>), <fpage>5380</fpage>&#x2013;<lpage>5395</lpage>. <pub-id pub-id-type="doi">10.1080/15567036.2019.1671557</pub-id>
</mixed-citation>
</ref>
<ref id="B22">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xi</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Lin</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Lin</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Cheng</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>Z.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <article-title>Online Fault diagnosis for photovoltaic arrays based on Fisher Discrimination Dictionary learning for sparse representation</article-title>. <source>IEEE Access</source> <volume>9</volume>, <fpage>30180</fpage>&#x2013;<lpage>30192</lpage>. <pub-id pub-id-type="doi">10.1109/ACCESS.2021.3059431</pub-id>
</mixed-citation>
</ref>
<ref id="B23">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xie</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Gardoni</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Evaluation of different bearing fault Classifiers in Utilizing CNN feature extraction ability</article-title>. <source>Sensors</source> <volume>22</volume>, <fpage>3314</fpage>. <pub-id pub-id-type="doi">10.3390/s22093314</pub-id>
<pub-id pub-id-type="pmid">35591006</pub-id>
</mixed-citation>
</ref>
<ref id="B24">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xue</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Shen</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>A novel swarm intelligence optimization approach: sparrow search algorithm</article-title>. <source>Syst. Sci. and Control Eng.</source> <volume>8</volume> (<issue>1</issue>), <fpage>22</fpage>&#x2013;<lpage>34</lpage>. <pub-id pub-id-type="doi">10.1080/21642583.2019.1708830</pub-id>
</mixed-citation>
</ref>
<ref id="B25">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Suo</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2025</year>). <article-title>A tensor completion algorithm for missing user data in spot trading of electricity market</article-title>. <source>Comput. Electr. Eng.</source> <volume>122</volume>, <fpage>109988</fpage>. <pub-id pub-id-type="doi">10.1016/j.compeleceng.2024.109988</pub-id>
</mixed-citation>
</ref>
<ref id="B26">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yating</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Qiongbin</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Fenghuang</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Qinqin</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Fault diagnosis for power Converters based on optimized Temporal convolutional network</article-title>. <source>IEEE Trans. Instrum. Meas.</source> <volume>70</volume>, <fpage>1</fpage>&#x2013;<lpage>10</lpage>. <pub-id pub-id-type="doi">10.1109/TIM.2020.3021110</pub-id>
<pub-id pub-id-type="pmid">33776080</pub-id>
</mixed-citation>
</ref>
<ref id="B27">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Peng</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Xiong</surname>
<given-names>H.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <article-title>Informer: beyond Efficient transformer for long sequence time-series forecasting</article-title>. <source>Proc. AAAI Conf. Artif. Intell.</source> <volume>35</volume> (<issue>12</issue>), <fpage>11106</fpage>&#x2013;<lpage>11115</lpage>. <pub-id pub-id-type="doi">10.1609/aaai.v35i12.17325</pub-id>
</mixed-citation>
</ref>
</ref-list>
</back>
</article>