<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Archiving and Interchange DTD v2.3 20070202//EN" "archivearticle.dtd">
<article article-type="methods-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Sig. Proc.</journal-id>
<journal-title>Frontiers in Signal Processing</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Sig. Proc.</abbrev-journal-title>
<issn pub-type="epub">2673-8198</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1357995</article-id>
<article-id pub-id-type="doi">10.3389/frsip.2024.1357995</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Signal Processing</subject>
<subj-group>
<subject>Methods</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Dynamic phasor measurement algorithm based on high-precision time synchronization</article-title>
<alt-title alt-title-type="left-running-head">Zhang 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/frsip.2024.1357995">10.3389/frsip.2024.1357995</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Zhang</surname>
<given-names>Jie</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2607490/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-original-draft/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Li</surname>
<given-names>Fuxin</given-names>
</name>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Chang</surname>
<given-names>Zhengwei</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Hu</surname>
<given-names>Chunhua</given-names>
</name>
<xref ref-type="aff" rid="aff4">
<sup>4</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Liu</surname>
<given-names>Chun</given-names>
</name>
<xref ref-type="aff" rid="aff5">
<sup>5</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Tang</surname>
<given-names>Sihao</given-names>
</name>
<xref ref-type="aff" rid="aff6">
<sup>6</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2524955/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>State Grid Sichuan Electric Power Company</institution>, <institution>Electric Power Science Research Institute</institution>, <addr-line>Chengdu</addr-line>, <country>China</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>Power Internet of Things Key Laboratory of Sichuan Province</institution>, <addr-line>Chengdu</addr-line>, <country>China</country>
</aff>
<aff id="aff3">
<sup>3</sup>
<institution>State Grid Sichuan Electric Power Company</institution>, <addr-line>Chengdu</addr-line>, <country>China</country>
</aff>
<aff id="aff4">
<sup>4</sup>
<institution>Neijiang Power Supply Company of State Grid Sichuan Electric Power Company</institution>, <addr-line>Neijiang</addr-line>, <country>China</country>
</aff>
<aff id="aff5">
<sup>5</sup>
<institution>Leshan Power Supply Company of State Grid Sichuan Electric Power Company</institution>, <addr-line>Leshan</addr-line>, <country>China</country>
</aff>
<aff id="aff6">
<sup>6</sup>
<institution>College of Electrical and Information Engineering</institution>, <institution>Hunan University</institution>, <addr-line>Changsha</addr-line>, <country>China</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1595226/overview">Tao Peng</ext-link>, Soochow University, China</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1264275/overview">Mehdi Korki</ext-link>, Swinburne University of Technology, Australia</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2613880/overview">Jiahuan Ji</ext-link>, Nanjing University of Aeronautics and Astronautics, China</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Sihao Tang, <email>tangsihao@hnu.edu.cn</email>
</corresp>
</author-notes>
<pub-date pub-type="epub">
<day>29</day>
<month>02</month>
<year>2024</year>
</pub-date>
<pub-date pub-type="collection">
<year>2024</year>
</pub-date>
<volume>4</volume>
<elocation-id>1357995</elocation-id>
<history>
<date date-type="received">
<day>19</day>
<month>12</month>
<year>2023</year>
</date>
<date date-type="accepted">
<day>13</day>
<month>02</month>
<year>2024</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2024 Zhang, Li, Chang, Hu, Liu and Tang.</copyright-statement>
<copyright-year>2024</copyright-year>
<copyright-holder>Zhang, Li, Chang, Hu, Liu and Tang</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p>
</license>
</permissions>
<abstract>
<p>Ensuring the swift and precise tracking of power system signal parameters, especially the frequency, is imperative for the secure and stable operation of power grids. In instances of faults within the distribution network, abrupt changes in frequency may occur, presenting a challenge for existing algorithms that struggle to effectively track such signal variations. Addressing the need for enhanced performance in the face of frequency mutations, this paper introduces an innovative approach&#x2014;the Covariance Reconstruction Extended Kalman Filter (CREKF) algorithm. Initially, the dynamic signal model of electric power is meticulously analyzed, establishing a dynamic signal relationship based on high-precision time source sampling tailored to the signal model&#x2019;s characteristics. Subsequently, the filter gain, covariance matrix, and variance iteration equation are determined based on the signal relationship among three sampling points. In a final step, recognizing the impact of the covariance matrix on algorithmic tracking ability, the paper proposes a covariance matrix reset mechanism utilizing hysteresis induced by output errors. Through extensive verification with simulated signals, the results conclusively demonstrate that the CREKF algorithm exhibits superior measurement accuracy and accelerated tracking speed when confronted with mutating signals.</p>
</abstract>
<kwd-group>
<kwd>highly accurate synchronized time source</kwd>
<kwd>adaptive sampling rate</kwd>
<kwd>dynamic phasor measurement</kwd>
<kwd>Kalman filter</kwd>
<kwd>reconstructing the covariance equation</kwd>
</kwd-group>
<custom-meta-wrap>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Signal Processing Theory</meta-value>
</custom-meta>
</custom-meta-wrap>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>1 Introduction</title>
<p>As power systems continue to develop and become more complex <xref ref-type="bibr" rid="B22">Xiao et al. (2023)</xref>-<xref ref-type="bibr" rid="B13">Huangqing Xiao (2023)</xref>, the need for real-time monitoring and accurate estimation of grid status is increasing. As an advanced monitoring method, synchronized phasor measurement unit (PMU) technology plays a key role in power system monitoring and control <xref ref-type="bibr" rid="B4">bin Mohd Nasir et al. (2019)</xref>.</p>
<p>With the increasing scale of large-area interconnected power grids, transmission grids are more prone to dynamic phenomena (low-frequency oscillations, amplitude and phase step changes, frequency fluctuations, etc<italic>.</italic>) <xref ref-type="bibr" rid="B6">de la O Serna et al. (2020)</xref> than in the past. The measurement accuracy of existing phasor estimation algorithms will decrease under dynamic conditions. A sharp decline. With the large-scale access of distributed new energy and the continuous expansion of the scale of distribution network, wide-area monitoring and synchronized phasor measurement of distribution network operating status have attracted people&#x2019;s attention in recent years <xref ref-type="bibr" rid="B1">Aminifar et al. (2013)</xref>. Compared with the transmission network, the electrical signals of the distribution network have higher harmonic content and lower signal-to-noise ratio. Therefore, it is necessary to study dynamic phasor estimation algorithms with better dynamic response performance and strong resistance to harmonics and noise.</p>
<p>In recent years, various studies have been carried out on sampling data processing algorithms. <xref ref-type="bibr" rid="B21">Wang and Sun (2004)</xref> proposed a practical and accurate frequency tracking and phasor estimation method, contributing to fundamental aspects of synchronized measurement algorithms <xref ref-type="bibr" rid="B19">Mohanty et al. (2020)</xref>. <xref ref-type="bibr" rid="B9">Ferrero et al. (2019)</xref> introduces the use of extended Kalman filter (EKF) for dynamic synchrophasor estimation, demonstrating its effectiveness in capturing dynamic system behavior. Subsequent work extended these concepts by introducing the Taylor extended Kalman filter method to improve the accuracy of synchrophasor estimation <xref ref-type="bibr" rid="B10">Ferrero et al. (2020)</xref>. The nonlinear Kalman filter has been reviewed and applied to dynamic phasor estimation, providing insights into its effectiveness and limitations <xref ref-type="bibr" rid="B14">Khodaparast (2022)</xref>. <xref ref-type="bibr" rid="B3">Bashian et al. (2021)</xref> proposed a Kalman filter method with harmonic whitening function, which provides higher accuracy for the phasor measurement unit (PMU) in the power system. <xref ref-type="bibr" rid="B23">Xu et al. (2020)</xref> analyzed and applied them under distorted grid conditions, demonstrating their robustness in challenging operating environments. <xref ref-type="bibr" rid="B8">Fan and Wehbe (2013)</xref>, <xref ref-type="bibr" rid="B7">Fan (2015)</xref> provide an in-depth study of extended Kalman filtering for real-time dynamic state and parameter estimation using synchronized phasor measurements. <xref ref-type="bibr" rid="B12">Huang et al. (2017)</xref> DSTKF (Dynamic State Transition Kalman Filter) is proposed as an improved Kalman filter to meet the needs of phase estimation of power systems under transient conditions. DSTKF takes into account the dynamic transfer of the system state, which better handles the measurement noise and improves the accuracy of phase estimation under transient conditions. <xref ref-type="bibr" rid="B5">Dash et al. (2013)</xref> focused on dynamic phasor and frequency estimation of time-varying power system signals, providing insights into the complexity of accurately tracking dynamic changes in the grid. Literature <xref ref-type="bibr" rid="B16">Liu et al. (2020)</xref> provide a comprehensive comparison of Kalman filter-based dynamic state estimation algorithms, providing a broader perspective on the state-of-the-art in the field. <xref ref-type="bibr" rid="B18">Mai et al. (2011)</xref> proposed an adaptive dynamic phasor estimator considering the applied DC offset of the phasor measurement unit (PMU). <xref ref-type="bibr" rid="B17">Liu et al. (2012)</xref> introduced an improved Taylor-Kalman filter and demonstrated its effectiveness in instantaneous dynamic phasor estimation. These adaptive technologies address the challenges posed by varying operating conditions and non-ideal situations in measurement equipment.</p>
<p>In addition matrix pencil, Taylor weighted least squares methods <xref ref-type="bibr" rid="B15">Khodaparast and Khederzadeh (2017)</xref> and Recursive Discrete Fourier Transform methods <xref ref-type="bibr" rid="B11">Hou et al. (2020)</xref>. <xref ref-type="bibr" rid="B20">Song et al. (2021)</xref> have also been proposed for accurate dynamic phasor estimation, further expanding the range of available techniques. The work of <xref ref-type="bibr" rid="B2">Amirat et al. (2020)</xref> explored the application of least squares and linear Kalman filter phasor estimation in grid power monitoring and conducted a comparative analysis of their performance.</p>
<p>In this paper, leveraging insights from the aforementioned literature, an extended Kalman filtering algorithm is introduced to address nonlinear challenges and enhance the algorithm&#x2019;s robustness and adaptability. This novel algorithm incorporates a hysteresis mechanism coupled with a reset covariance matrix strategy. The covariance matrix is dynamically reconstructed based on the magnitude of the output error. Furthermore, an extended Kalman filter algorithm, employing adaptive linear combiners for frequency estimation, integrates hysteresis, the extent of which is determined by the output error magnitude. Dynamic adjustment based on the hysteresis band involves triggering the reset of the covariance matrix when the error exceeds a predefined higher threshold. Conversely, when the error drops below a lower threshold, the flag is reset to prevent an overly rapid reset of the covariance matrix. This innovative approach serves to reset the covariance matrix, thereby improving the performance of the extended Kalman filter algorithm. To validate the measurement accuracy of the proposed algorithm, comprehensive Matlab simulation experiments are conducted, utilizing signal modeling techniques.</p>
</sec>
<sec id="s2">
<title>2 Description of dynamic electrical signals</title>
<sec id="s2-1">
<title>2.1 Signal analysis based on high-precision time-synchronized sampling</title>
<p>The rapid evolution of high-precision synchronized time sources, such as GPS and 5G signals, has ushered in novel timing concepts for wide-area synchronized measurements. Additionally, these advancements have introduced an innovative signal-triggered sampling mechanism capable of dynamically adjusting the sampling rate based on specific requirements. This mechanism represents a pivotal development in the acquisition and processing of sinusoidal signals. By enabling the dynamic alteration of the sampling rate, applications can seamlessly adapt to diverse signal characteristics and meet varying requirements with enhanced flexibility. This progressive approach not only marks a significant leap forward in synchronized measurements but also underscores the adaptability and efficiency achievable through dynamic sampling rate adjustments.</p>
<p>The output frequency of the crystal oscillator plays a crucial role in determining the synchronized sampling interval. To mitigate the sampling time error outlined in the preceding section, a real-time monitoring approach is employed for the crystal oscillator&#x2019;s output frequency. This real-time monitoring facilitates enhanced control over the accuracy of the sampling interval. Employing a timer, the real-time status of the crystal oscillator is continually monitored and transmitted to the data processing unit. This information is then utilized to dynamically adjust the sampling rate in real-time, thereby achieving adaptive sampling. This meticulous process ensures precise synchronization and contributes to the overall improvement in sampling interval control accuracy.</p>
<p>The frequency of a periodic signal is defined as the number of cycles contained in the periodic signal per unit of time as follow <xref ref-type="disp-formula" rid="e1">Eq. 1</xref>:<disp-formula id="e1">
<mml:math id="m1">
<mml:mi>f</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>n</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>t</mml:mi>
</mml:math>
<label>(1)</label>
</disp-formula>where <italic>n</italic> is the number of cycles of a periodic signal in the time interval <italic>t</italic>.</p>
<p>The crystal oscillator exhibits superior short-term stability, ensuring that its output frequency remains constant within a synchronization signal period. Leveraging this period as a reference, the counting frequency of the timer can be determined by measuring the number of pulses occurring between adjacent pulse signals. Let <italic>f</italic>
<sub>
<italic>osc</italic>
</sub> denote the nominal crystal frequency of the v-bit master chip, and <italic>t</italic>
<sub>max</sub> is calculated as shown in <xref ref-type="disp-formula" rid="e2">Eq. 2</xref>.<disp-formula id="e2">
<mml:math id="m2">
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>/</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">osc</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>Z</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(2)</label>
</disp-formula>where <italic>Z</italic> is octave factor.</p>
<p>When <italic>t</italic>
<sub>max</sub> is less than one synchronization signal cycle, the timer needs to be set to auto clear and restart mode. Use the rise of the pulse signal as the external interrupt signal, and read the values <italic>W</italic>
<sub>1</sub> and <italic>W</italic>
<sub>2</sub> of the counter when the adjacent pulse signal is interrupted. The actual output frequency <italic>f</italic>
<sub>
<italic>t</italic>
</sub> of the crystal can be expressed as follows <xref ref-type="disp-formula" rid="e3">Eq. 3</xref>:<disp-formula id="e3">
<mml:math id="m3">
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>G</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>Z</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pulsar</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(3)</label>
</disp-formula>where <italic>f</italic>
<sub>
<italic>p</italic>
</sub>
<italic>ulsar</italic> is a synchronized signal frequency.</p>
<p>The actual pulse signal is subject to a zero-mean random error characterized by long-term stability. However, in the short term, jitter is inevitable, typically in the order of a few hundred nanoseconds. To mitigate the impact of short-term jitter on crystal frequency measurement, employing multiple pulses as a time reference proves advantageous. This not only extends the counting time of the counter but also provides a more robust time reference. Let the utilization of a continuous set of <italic>m</italic> pulses as a time reference be the approach to ascertain the crystal output frequency as follow <xref ref-type="disp-formula" rid="e4">Eq. 4</xref>:<disp-formula id="e4">
<mml:math id="m4">
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>Z</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pulsar</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(4)</label>
</disp-formula>
</p>
<p>Using high-precision pulse signals, <italic>f</italic>
<sub>
<italic>t</italic>
</sub> can be updated in real time, which will effectively eliminate the influence of crystal frequency offset on synchronized sampling. The corrected sampling control parameter <italic>N</italic>
<sub>(<italic>t</italic>)</sub> at moment t as follows <xref ref-type="disp-formula" rid="e5">Eq. 5</xref>:<disp-formula id="e5">
<mml:math id="m5">
<mml:msub>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(5)</label>
</disp-formula>
</p>
<p>From the aforementioned analysis, it becomes evident that if the crystal frequency is not an integer multiple of the ideal sampling frequency, N(t) will incorporate a fractional part. Compounding this issue, the timer control parameter of the master chip can only be set as an integer, resulting in a residual part due to the non-integer division of N(t, leading to sampling interval errors. To address the challenges posed by the non-integer division inherent in utilizing the high transmission rate of 5G signals, the sampling rate <italic>f</italic>
<sub>
<italic>s</italic>
</sub> is dynamically adjusted based on the crystal frequency derived earlier. This dynamic adjustment effectively compensates for sampling time errors, bringing the equivalent sampling rate in proximity to the ideal sampling rate. The operational principle of variable interval sampling is depicted in <xref ref-type="fig" rid="F1">Figure 1</xref>.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Variable sampling interval control schematic.</p>
</caption>
<graphic xlink:href="frsip-04-1357995-g001.tif"/>
</fig>
<p>Adaptive synchronous sampling method mainly includes: real-time measurement of crystal output frequency, sampling control parameter adjustment, and variable sampling interval sampling. Using high-precision time pulse as a time reference to measure the crystal output frequency and trigger the first sampling command of synchronous sampling, using variable sampling interval control method, according to the real-time monitoring of the crystal output frequency to adaptively adjust the sampling control parameters, the specific steps are as follows in <xref ref-type="fig" rid="F2">Figure 2</xref>.<list list-type="simple">
<list-item>
<p>(1) The real-time crystal output frequency ft is obtained at moment t according to Equation <xref ref-type="disp-formula" rid="e4">(4)</xref>;</p>
</list-item>
<list-item>
<p>(2) The ideal sampling control parameter <italic>N</italic>(<italic>t</italic>) is obtained according to Equation <xref ref-type="disp-formula" rid="e5">(5)</xref>;</p>
</list-item>
<list-item>
<p>(3) Trigger an external interrupt using a high-precision time source to trigger the first sample;</p>
</list-item>
<list-item>
<p>(4) Update <italic>f</italic>
<sub>
<italic>s</italic>
</sub> and return to step 3 until sampling in one second is complete.</p>
</list-item>
</list>
</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Schematic diagram of the adaptive synchronous sampling method.</p>
</caption>
<graphic xlink:href="frsip-04-1357995-g002.tif"/>
</fig>
</sec>
<sec id="s2-2">
<title>2.2 Dynamic signal model</title>
<p>Building upon the preceding section centered on high-precision pulse-sampled signals, the discrete-time signal for power system voltage or current can be expressed as follows <xref ref-type="disp-formula" rid="e6">Eq. 6</xref>:<disp-formula id="e6">
<mml:math id="m6">
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>A</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>cos</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mi>&#x3c9;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(6)</label>
</disp-formula>where <italic>y</italic>
<sub>
<italic>k</italic>
</sub> is instantaneous signal value;<italic>A</italic> is amplitude;<italic>k</italic> is sampling instant;<italic>Ti</italic> is ideal sampling time;<italic>omega</italic>is radian frequency;<italic>&#x3d5;</italic> is phase; <italic>&#x25b;</italic>
<sub>
<italic>k</italic>
</sub> is additive noise(assumed to be zero-mean Gaussian white noise with variance <inline-formula id="inf1">
<mml:math id="m7">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3c5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>). Equation <xref ref-type="disp-formula" rid="e1">1</xref> can be written as <xref ref-type="disp-formula" rid="e7">Eq. 7</xref> <disp-formula id="e7">
<mml:math id="m8">
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(7)</label>
</disp-formula>where <inline-formula id="inf2">
<mml:math id="m9">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> is the estimated signal. It is known that the three consecutive samples of this single sinusoid satisfy the following relationship Equation <xref ref-type="disp-formula" rid="e8">8</xref>.<disp-formula id="e8">
<mml:math id="m10">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mn>2</mml:mn>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>cos</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:math>
<label>(8)</label>
</disp-formula>
</p>
<p>The system frequency can be found by accurately measuring the angular frequency of the voltage model in Eq. <xref ref-type="disp-formula" rid="e8">8</xref>.</p>
<p>The presence of harmonics and DC attenuation distort the fundamental relationship of Equation <xref ref-type="disp-formula" rid="e8">8</xref> derived from the single-sine voltage signal model. <italic>n</italic> the presence of harmonics, the equation can be corrected as <xref ref-type="disp-formula" rid="e9">Eq. 9</xref>:<disp-formula id="e9">
<mml:math id="m11">
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>cos</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>&#x3c9;</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b5;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(9)</label>
</disp-formula>where <italic>m</italic> is harmonic order;<italic>M</italic> is highest frequency component of the signal; <italic>A</italic>
<sub>
<italic>m</italic>
</sub> is amplitude of the <italic>m</italic>th harmonic; <italic>&#x3d5;</italic>
<sub>
<italic>m</italic>
</sub> is phase of the <italic>m</italic>th harmonic.</p>
<p>Relationship between three consecutive samples of the corrected signal as follow <xref ref-type="disp-formula" rid="e10">Eq. 10</xref>:<disp-formula id="e10">
<mml:math id="m12">
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>cos</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x22c5;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close="">
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>cos</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>&#x3c9;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>cos</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mi>sin</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>&#x3c9;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(10)</label>
</disp-formula>
</p>
<p>If the measurement algorithm needs to be modified according to Eq. <xref ref-type="disp-formula" rid="e10">10</xref> in order to estimate the frequency very accurately, but in practice, the experimental results of the model given in Equation <xref ref-type="disp-formula" rid="e8">8</xref> are within reasonable accuracy even in the presence of harmonics.</p>
<p>In actual sampling, the actual sampling time <italic>Ts</italic> has time error with the ideal sampling time <italic>Ti</italic> due to the reasons such as crystal offset of the master control chip&#x394;<italic>T</italic>.The sampling time is corrected as follows <xref ref-type="disp-formula" rid="e11">Eq. 11</xref>:<disp-formula id="e11">
<mml:math id="m13">
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>T</mml:mi>
</mml:math>
<label>(11)</label>
</disp-formula>
</p>
</sec>
</sec>
<sec id="s3">
<title>3 Algorithm inference</title>
<sec id="s3-1">
<title>3.1 Derivation of extended Kalman filter algorithm</title>
<p>In linear systems, Kalman filters serve as indispensable tools for tracking and estimation. However, the realm of engineering practice often encounters nonlinear systems, and for such cases, the extended Kalman filter emerges as a more effective approach compared to the conventional Kalman filter. Despite numerous algorithmic advancements proposed since the 1960s to enhance the Kalman filter&#x2019;s performance, tackling the estimation of state equations for nonlinear state variables remains a challenging problem, crucial for improving algorithmic accuracy. In the context of power system synchronization measurements, various state estimation methods are employed within control systems. For nonlinear state estimation, the Kalman filter is utilized as a linearized model. While it exhibits a favorable response to weakly nonlinear systems, it may fall short in accurately representing highly robust nonlinear systems. Presently, the extended Kalman filter has gained widespread adoption for tracking and state estimation. Within the Kalman filtering algorithm, predictive modeling necessitates the incorporation of actual system and process noise. Meanwhile, updating modeling involves adjusting the predicted values. Consequently, the Kalman filtering algorithm operates as a pre-calibration algorithm, encompassing time update equations (prediction equation) and measurement update equations (calibration equation), as illustrated in <xref ref-type="fig" rid="F3">Figure 3</xref>.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Fundamentals of the Kalman filter algorithm.</p>
</caption>
<graphic xlink:href="frsip-04-1357995-g003.tif"/>
</fig>
<p>The preceding signal model satisfies the following Kalman filtered as follows <xref ref-type="disp-formula" rid="e12">Eq. 12</xref> and as follows <xref ref-type="disp-formula" rid="e13">Eq. 13</xref>.<disp-formula id="e12">
<mml:math id="m14">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mn>2</mml:mn>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>cos</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(12)</label>
</disp-formula>
<disp-formula id="e13">
<mml:math id="m15">
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mn>2</mml:mn>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>cos</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(13)</label>
</disp-formula>
</p>
<p>Based on the power system signal model, designing the ststa variable matrix shown in <xref ref-type="disp-formula" rid="e14">Eq. 14</xref>,<disp-formula id="e14">
<mml:math id="m16">
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mn>2</mml:mn>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>cos</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(14)</label>
</disp-formula>
</p>
<p>From the measurement equations, state equations and state variables of the system; the optimal nonlinear Kalman filtering algorithm as in <xref ref-type="disp-formula" rid="e15">Eqs 15</xref>, <xref ref-type="disp-formula" rid="e16">16</xref> is designed using the basic equations of Kalman filtering.<disp-formula id="e15">
<mml:math id="m17">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>g</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(15)</label>
</disp-formula>
<disp-formula id="e16">
<mml:math id="m18">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(16)</label>
</disp-formula>where<inline-formula id="inf3">
<mml:math id="m19">
<mml:mi>f</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mn>2</mml:mn>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>cos</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mn>2</mml:mn>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>cos</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x22c5;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>;<inline-formula id="inf4">
<mml:math id="m20">
<mml:mi>g</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>cos</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x22c5;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>
</p>
<p>The optimal gain matrix is as follows <xref ref-type="disp-formula" rid="e17">Eq. 17</xref>:<disp-formula id="e17">
<mml:math id="m21">
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mfenced open="" close="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mfenced open="" close="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mfenced open="" close="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(17)</label>
</disp-formula>
</p>
<p>The recursive equation for estimating the error variance matrix is as follows <xref ref-type="disp-formula" rid="e18">Eq. 18</xref>:<disp-formula id="e18">
<mml:math id="m22">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mfenced open="" close="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(18)</label>
</disp-formula>
</p>
<p>The prediction error variance can be expressed as follows <xref ref-type="disp-formula" rid="e19">Eq. 19</xref>:<disp-formula id="e19">
<mml:math id="m23">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
<label>(19)</label>
</disp-formula>where <inline-formula id="inf5">
<mml:math id="m24">
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="" close="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mi>f</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
</inline-formula>; <inline-formula id="inf6">
<mml:math id="m25">
<mml:msub>
<mml:mrow>
<mml:mfenced open="" close="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
</inline-formula>; <inline-formula id="inf7">
<mml:math id="m26">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>E</mml:mi>
<mml:mfenced open="{" close="}">
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
<mml:mo>/</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3bd;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>; <inline-formula id="inf8">
<mml:math id="m27">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>E</mml:mi>
<mml:mfenced open="{" close="}">
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
<mml:mo>/</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3bd;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>; <inline-formula id="inf9">
<mml:math id="m28">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>; <inline-formula id="inf10">
<mml:math id="m29">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>E</mml:mi>
<mml:mfenced open="{" close="}">
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
<mml:mo>/</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3bd;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>.</p>
<p>The filter is nonlinear and therefore, the gain <italic>K</italic>
<sub>
<italic>k</italic>
</sub> and the covariance matrix <inline-formula id="inf11">
<mml:math id="m30">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> depend on the estimate <inline-formula id="inf12">
<mml:math id="m31">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> of the state vector <italic>x</italic>
<sub>
<italic>k</italic>
</sub>.</p>
</sec>
<sec id="s3-2">
<title>3.2 Improvement of extended Kalman filter algorithm with covariance reconstruction</title>
<p>The problem with all Kalman filtering algorithms is resetting the covariance matrix. After initial convergence, the gain <italic>K</italic>
<sub>
<italic>k</italic>
</sub> and the covariance matrix <italic>P</italic>
<sub>
<italic>k</italic>&#x7c;<italic>k</italic>
</sub> stabilise at very small values. Subsequently, when certain parameters of the signal (amplitude, phase and frequency) change, the covariance matrix must be reset to obtain a higher gain in order to track the signal quickly.</p>
<p>The core idea of the covariance reconstruction extended Kalman filter algorithm is that the decision to set the covariance matrix to its initial value is based on a lag-type decision block. The hysteresis band is determined by the amount of noise and the nature of convergence. If the noise estimate is about 10% of the amplitude, then the lag band is chosen to be 20%&#x2013;60% of the amplitude to avoid frequent resetting of the covariance matrix. A flag is set when the error exceeds a higher threshold and reset when the error falls below a lower threshold. If the flag is 1 and either of the Kalman gains is very small, then the covariance is reset and the flag is reset to 0 so that the covariance matrix is not immediately reset.</p>
<p>Calculation of lag band: The hysteresis band is calculated as the ratio of the residual&#x2019;s paradigm to amplitude as shown in <xref ref-type="disp-formula" rid="e20">Eq. 20</xref>:<disp-formula id="e20">
<mml:math id="m32">
<mml:mtext>lag</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3f5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mtext>Amplitude</mml:mtext>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(20)</label>
</disp-formula>
</p>
<p>Decide whether to set the reset flag by comparing the value of the hysteresis band with the preset threshold as shown in <xref ref-type="disp-formula" rid="e21">Eq. 21</xref>:<disp-formula id="e21">
<mml:math id="m33">
<mml:mtext>ResetFlag</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="cases">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mtext>if&#x2009;</mml:mtext>
<mml:mtext>lag</mml:mtext>
<mml:mo>&#x3e;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mtext>Threshold</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mtext>high</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mtext>otherwise</mml:mtext>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(21)</label>
</disp-formula>
</p>
<p>If the flag is 1 and either of the Kalman gains is very small, then the covariance is reset and the flag is reset to 0 so that the covariance matrix is not immediately reset as shown in <xref ref-type="disp-formula" rid="e22">Eq. 22</xref>.<disp-formula id="e22">
<mml:math id="m34">
<mml:mtext>if&#x2009;ResetFlag</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mtext>&#x2009;and&#x2009;</mml:mtext>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:mtext>&#x2009;is&#x2009;very&#x2009;small,&#x2009;then&#x2009;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>initial</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(22)</label>
</disp-formula>
</p>
<p>Generally, the frequency variation in power systems is limited to 5&#xa0;Hz. Therefore, for faster tracking, the measured frequency by the filter is not allowed to vary beyond the 40&#x2013;60&#xa0;Hz band. This results in stable operation of the filter and does not lead the filter wayward.</p>
<p>Based on the above theory, this paper constructs the dynamic synchronous phase measurement algorithm based on EKF as follows in <xref ref-type="fig" rid="F4">Figure 4</xref>.<list list-type="simple">
<list-item>
<p>1. k &#x3d; 0;</p>
</list-item>
<list-item>
<p>2. Project starting estimate <inline-formula id="inf13">
<mml:math id="m35">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>;</p>
</list-item>
<list-item>
<p>3. Calculate Kalman filter gain <inline-formula id="inf14">
<mml:math id="m36">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">K</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>;</p>
</list-item>
<list-item>
<p>4. Calculate the error covariance matrix <bold>P</bold>
<sub>
<italic>k</italic>
</sub>;</p>
</list-item>
<list-item>
<p>5. Determine the state estimation equation<bold>x</bold>
<sub>
<italic>k</italic>
</sub>;</p>
</list-item>
<list-item>
<p>6. Predict the (k&#x2b;1) th state variable</p>
</list-item>
<list-item>
<p>7. k &#x3d; k&#x2b;1;</p>
</list-item>
<list-item>
<p>8. Return to step (3);</p>
</list-item>
</list>
</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Flow chart of the extend Kalman filtering method.</p>
</caption>
<graphic xlink:href="frsip-04-1357995-g004.tif"/>
</fig>
</sec>
</sec>
<sec id="s4">
<title>4 Simulation analysis</title>
<sec id="s4-1">
<title>4.1 Computational complexity analysis</title>
<p>The complexity analysis of the Covariance Reconstruction Extended Kalman Filter (CREKF) algorithm involves its primary steps, encompassing state prediction, state updating, covariance matrix updating, and the computation of the decision block.</p>
<p>The complexity analysis of the state prediction and update steps typically depends on the computational intricacy of the state and observation equations. In this paper, the equations have been linearized, resulting in a complexity denoted by <italic>O</italic>(<italic>N</italic>), where <italic>N</italic> represents the dimension of the state vector. The computation of the Kalman gain involves the Jacobian matrix of the observation equation, and thus its complexity is contingent upon the form of the observation equation, with a complexity denoted by <italic>O</italic>(<italic>N</italic>
<sup>2</sup>). The complexity of the covariance matrix update is <italic>O</italic>(<italic>N</italic>
<sup>3</sup>). The lagged decision block has a low complexity and consists mainly of the judgement and updating of the flags, the complexity of this step is of constant level with a complexity of <italic>O</italic>(1).</p>
</sec>
<sec id="s4-2">
<title>4.2 Measurement accuracy assessment</title>
<sec id="s4-2-1">
<title>4.2.1 Static signal testing</title>
<p>In order to verify the dynamic performance of the algorithm in this article, test signals were set up, and the simulation signals were measured and compared using the CREKF algorithm, the Recursive Discrete Fourier Transform (RDFT) algorithm, and the Matrix pencil algorithm. In this section, the measurement accuracy of the proposed algorithm is evaluated using different types of steady state and dynamic test signals according to IEC/IEEE 60255- 118-1.</p>
<p>The following signals are set up and the simulated signals were measured and compared by three methods. The measurement errors of the three methods are shown in <xref ref-type="fig" rid="F5">Figures 5</xref>&#x2013;<xref ref-type="fig" rid="F7">7</xref>. Testing signal model:<list list-type="simple">
<list-item>
<p>a. Considering that the actual measured electrical signals contain noise, Gaussian white noise is added to the sinusoidal test signal to achieve a signal-to-noise ratio of 40&#xa0;dB. The matrix beam algorithm cannot be measured accurately when the signal contains noise, so the matrix beam algorithm is not considered in the performance comparison.</p>
</list-item>
<list-item>
<p>b. Harmonic noise has always been a major challenge to most power system measurements. Low-order harmonics are not filtered by analog filters, and they usually appear in the waveform entering the measurement device, setting up harmonic signals.</p>
</list-item>
<list-item>
<p>c. During transient states, the voltage waveform of a power system may experience amplitude fluctuations of a certain Chen degree. The mathematical model of signal flicker is as <inline-formula id="inf15">
<mml:math id="m37">
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>A</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>sin</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>&#x3c0;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mi>sin</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>&#x3c0;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:math>
</inline-formula>.For a typical power system model, the modulation index will be less than 10% and the modulation frequency will be around 1&#xa0;Hz. Therefore the generation of the input waveform is set up according to the above power system criteria and the frequency measurement of the input waveform is performed.</p>
</list-item>
</list>
</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Signal contains white noise measurement results.</p>
</caption>
<graphic xlink:href="frsip-04-1357995-g005.tif"/>
</fig>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Results of the harmonic component measurements.</p>
</caption>
<graphic xlink:href="frsip-04-1357995-g006.tif"/>
</fig>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Magnitude modulation test.</p>
</caption>
<graphic xlink:href="frsip-04-1357995-g007.tif"/>
</fig>
<p>The analysis of the results depicted in the figure reveals that the matrix tree algorithm encounters challenges in accurate measurements when the signal contains noise. Similarly, the recursive discrete Fourier transform demonstrates suboptimal measurement efficiency in the presence of noise. However, noteworthy is the observation that the three algorithms exhibit proximity to each other, with errors not exceeding 10<sup>&#x2013;4</sup>, particularly in handling harmonic signals and flicker signals.</p>
</sec>
<sec id="s4-2-2">
<title>4.2.2 Dynamic signal testing</title>
<p>To further assess the dynamic tracking capability of the algorithm, a ramp signal, as defined in (Eq. <xref ref-type="disp-formula" rid="e23">23</xref>), is employed. The algorithm&#x2019;s performance is tested concerning its ability to adapt to frequency variations when the grid signal frequency undergoes gradual changes. The sampling frequency of the algorithm is fixed at <italic>f</italic>
<sub>
<italic>s</italic>
</sub> &#x3d; 1,200&#xa0;Hz. Drawing from the preceding measurements&#x2019; analysis, the influence of white noise is not taken into account in the analysis of the slant wave signal.<disp-formula id="e23">
<mml:math id="m38">
<mml:mi>y</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="cases">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mi>A</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>cos</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>&#x3c0;</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x3c;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mi>A</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>cos</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>&#x3c0;</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>&#x3c0;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(23)</label>
</disp-formula>where <italic>R</italic>
<sub>
<italic>f</italic>
</sub> is rate of change of frequency, set amplitude <italic>A</italic> &#x3d; 1, The normal frequency of the power system is set to <italic>f</italic> &#x3d; 50&#xa0;Hz.</p>
<p>The performance comparison results of each algorithm for the above slant wave signal are shown in <xref ref-type="fig" rid="F7">Figure 7</xref>.</p>
<p>According to the analysis of the results presented in <xref ref-type="fig" rid="F8">Figure 8</xref>, the Kalman filtering algorithm demonstrates rapid tracking capabilities when the signal undergoes a sudden ramp change. In contrast, both the RDFT algorithm and the matrix-pencil algorithm exhibit difficulty accurately tracking the frequency following a recognized change in the signal&#x2019;s frequency during a ramp transition.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Comparison of frequency measurement results.</p>
</caption>
<graphic xlink:href="frsip-04-1357995-g008.tif"/>
</fig>
</sec>
<sec id="s4-2-3">
<title>4.2.3 Grid real signal testing</title>
<p>Utilizing the power grid signal for verification. The grid voltage signal is acquired using UGA, the sampling rate of UGA is set to 6,000&#xa0;Hz and the device is shown in <xref ref-type="fig" rid="F9">Figure 9</xref>. The acquired voltage signals are measured using the algorithm of this paper to verify the performance of the algorithm on a real data set.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>Dynamic phase measurement device.</p>
</caption>
<graphic xlink:href="frsip-04-1357995-g009.tif"/>
</fig>
<p>Based on the analysis of the test results of real grid signals, the proposed algorithm can meet the standard requirements on real data sets. The test results are shown in <xref ref-type="fig" rid="F10">Figure 10</xref>.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>Real signal measurement results.</p>
</caption>
<graphic xlink:href="frsip-04-1357995-g010.tif"/>
</fig>
<p>In terms of real-time performance, <xref ref-type="table" rid="T1">Table 1</xref> illustrates the running time of the algorithm for each of the 10 signal calculations, comparing it with the other two algorithms. It is evident that the average processing time of the algorithm proposed in this paper is approximately 0.0189&#xa0;s, significantly shorter than the processing times observed for the other two algorithms.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Algorithm execution time comparison.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Algorithm</th>
<th align="center">Average time (s)</th>
<th align="center">Maximum time (s)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">RDFT</td>
<td align="center">0.4345</td>
<td align="center">0.4549</td>
</tr>
<tr>
<td align="left">Matrix-pencil</td>
<td align="center">0.1796</td>
<td align="center">0.2030</td>
</tr>
<tr>
<td align="left">CREKF</td>
<td align="center">0.0189</td>
<td align="center">0.0213</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
</sec>
<sec sec-type="conclusion" id="s5">
<title>5 Conclusion</title>
<p>This paper explores the limitations of Kalman filtering in dealing with nonlinear systems and highlights the correlation between the algorithm&#x2019;s tracking ability and the update of the covariance matrix. To this end, this paper proposes an extended Kalman filtering algorithm tailored for synchronized measurements of power system signal frequencies that contains a hysteresis band reset covariance matrix determined by the magnitude of the output error. A signal model based on high-precision time-synchronized sampling is studied in depth, and the control principle of high-precision synchronized signal sampling rate is analyzed. The dynamic characteristics of the signal are studied in depth based on the sampling data, the characteristics of the dynamic signal model are established, and the initial state of the dynamic signal of the grid is determined. Recognizing the inherent challenges of Kalman filtering in nonlinear system scenarios and acknowledging the impact of covariance matrix updating on algorithm tracking, an extended Kalman filtering algorithm is introduced in this paper. The algorithm is designed for synchronized measurements of power system signal frequencies and features a lagband reset covariance matrix, determined by the magnitude of the output error. Practical insight into power system operation guides the development of a corresponding mathematical signal model. A wide range of measurements are performed using the proposed algorithm to verify the accuracy and real-time performance of the algorithm.<list list-type="simple">
<list-item>
<p>1) Construct the extended Kalman filtering algorithm based on adaptive linear combiner to solve the problem that traditional Kalman filtering can not deal with nonlinear systems, and combine it with the hysteresis band updating covariance matrix which is determined by the size of the output error to improve the accuracy and real-time performance of the algorithm.</p>
</list-item>
<list-item>
<p>2) Measurement of various types of power system signal models. Simulation results show that for all types of mathematical signal models, the algorithm proposed in this paper has good accuracy and real-time performance, and can track the system frequency better.</p>
</list-item>
</list>
</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s6">
<title>Data availability statement</title>
<p>The original contributions presented in the study are included in the article/supplementary material, further inquiries can be directed to the corresponding author.</p>
</sec>
<sec id="s7">
<title>Author contributions</title>
<p>JZ: Writing&#x2013;original draft. FL: ZC: CH: CL: ST: Writing&#x2013;review and editing.</p>
</sec>
<sec sec-type="funding-information" id="s8">
<title>Funding</title>
<p>The author(s) declare financial support was received for the research, authorship, and/or publication of this article. This work was funded by the Science and Technology Project of State Grid Co., LTD. Project Name: Research on key technologies and prototype development based on timing pulse characteristics of 5G communication network (No. 52199723008).</p>
</sec>
<sec sec-type="COI-statement" id="s9">
<title>Conflict of interest</title>
<p>Authors JZ and FL were employed by State Grid Sichuan Electric Power Company Electric Power Science Research Institute. Author CH was employed by Neijiang Power Supply Company of State Grid Sichuan Electric Power Company. Author CL was employed by Leshan Power Supply Company of State Grid Sichuan Electric Power Company.</p>
<p>The remaining author declares that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s10">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Aminifar</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Shahidehpour</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Fotuhi-Firuzabad</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Kamalinia</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Power system dynamic state estimation with synchronized phasor measurements</article-title>. <source>IEEE Trans. Instrum. Meas.</source> <volume>63</volume>, <fpage>352</fpage>&#x2013;<lpage>363</lpage>. <pub-id pub-id-type="doi">10.1109/tim.2013.2278595</pub-id>
</citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Amirat</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Oubrahim</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Ahmed</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Benbouzid</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Phasor estimation for grid power monitoring: least square vs linear kalman filter</article-title>. <source>Energies</source> <volume>13</volume>, <fpage>2456</fpage>. <pub-id pub-id-type="doi">10.3390/en13102456</pub-id>
</citation>
</ref>
<ref id="B3">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Bashian</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Macii</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Fontanelli</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Petri</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>Kalman filtering with harmonics whitening for p class phasor measurement units</article-title>,&#x201d; in <conf-name>2021 IEEE 11th International Workshop on Applied Measurements for Power Systems (AMPS)</conf-name>, <conf-loc>Cagliari, Italy</conf-loc>, <conf-date>29 September 2021 - 01 October 2021</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>1</fpage>&#x2013;<lpage>6</lpage>.</citation>
</ref>
<ref id="B4">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>bin Mohd Nasir</surname>
<given-names>M. N.</given-names>
</name>
<name>
<surname>Sabo</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Wahab</surname>
<given-names>N. I. A.</given-names>
</name>
</person-group> (<year>2019</year>). &#x201c;<article-title>A review on synchrophasor technology for power system monitoring</article-title>,&#x201d; in <conf-name>2019 IEEE student conference on research and development (SCOReD) (IEEE)</conf-name>, <conf-loc>Seri Iskandar, Perak, Malaysia</conf-loc>, <conf-date>October 15-17, 2019</conf-date>, <fpage>58</fpage>&#x2013;<lpage>62</lpage>.</citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Dash</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Krishnanand</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Patnaik</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Dynamic phasor and frequency estimation of time-varying power system signals</article-title>. <source>Int. J. Electr. Power and Energy Syst.</source> <volume>44</volume>, <fpage>971</fpage>&#x2013;<lpage>980</lpage>. <pub-id pub-id-type="doi">10.1016/j.ijepes.2012.08.063</pub-id>
</citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>de la O Serna</surname>
<given-names>J. A.</given-names>
</name>
<name>
<surname>Paternina</surname>
<given-names>M. A.</given-names>
</name>
<name>
<surname>Zamora-Mendez</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Assessing synchrophasor estimates of an event captured by a phasor measurement unit</article-title>. <source>IEEE Trans. Power Deliv.</source> <volume>36</volume>, <fpage>3109</fpage>&#x2013;<lpage>3117</lpage>. <pub-id pub-id-type="doi">10.1109/tpwrd.2020.3033755</pub-id>
</citation>
</ref>
<ref id="B7">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Fan</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2015</year>). &#x201c;<article-title>Least squares estimation and kalman filter based dynamic state and parameter estimation</article-title>,&#x201d; in <conf-name>2015 IEEE Power and Energy Society General Meeting (IEEE)</conf-name>, <conf-loc>Denver, Colorado, USA</conf-loc>, <conf-date>26-30 July 2015</conf-date>, <fpage>1</fpage>&#x2013;<lpage>5</lpage>.</citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Fan</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Wehbe</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Extended kalman filtering based real-time dynamic state and parameter estimation using pmu data</article-title>. <source>Electr. Power Syst. Res.</source> <volume>103</volume>, <fpage>168</fpage>&#x2013;<lpage>177</lpage>. <pub-id pub-id-type="doi">10.1016/j.epsr.2013.05.016</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ferrero</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Pegoraro</surname>
<given-names>P. A.</given-names>
</name>
<name>
<surname>Toscani</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Dynamic synchrophasor estimation by extended kalman filter</article-title>. <source>IEEE Trans. Instrum. Meas.</source> <volume>69</volume>, <fpage>4818</fpage>&#x2013;<lpage>4826</lpage>. <pub-id pub-id-type="doi">10.1109/tim.2019.2955797</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ferrero</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Pegoraro</surname>
<given-names>P. A.</given-names>
</name>
<name>
<surname>Toscani</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Synchrophasor estimation for three-phase systems based on taylor extended kalman filtering</article-title>. <source>IEEE Trans. Instrum. Meas.</source> <volume>69</volume>, <fpage>6723</fpage>&#x2013;<lpage>6730</lpage>. <pub-id pub-id-type="doi">10.1109/tim.2020.2983622</pub-id>
</citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hou</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Qu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Applying directly modified rdft method in active power filter for the power quality improvement of the weak power grid</article-title>. <source>Energies</source> <volume>13</volume>, <fpage>4884</fpage>. <pub-id pub-id-type="doi">10.3390/en13184884</pub-id>
</citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Huang</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Xie</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Jiang</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Dynamic phasor estimation through dstkf under transient conditions</article-title>. <source>IEEE Trans. Instrum. Meas.</source> <volume>66</volume>, <fpage>2929</fpage>&#x2013;<lpage>2936</lpage>. <pub-id pub-id-type="doi">10.1109/tim.2017.2713018</pub-id>
</citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Khodaparast</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>A review of dynamic phasor estimation by non-linear kalman filters</article-title>. <source>IEEE Access</source> <volume>10</volume>, <fpage>11090</fpage>&#x2013;<lpage>11109</lpage>. <pub-id pub-id-type="doi">10.1109/access.2022.3146732</pub-id>
</citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Khodaparast</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Khederzadeh</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Least square and kalman based methods for dynamic phasor estimation: a review</article-title>. <source>Prot. Control Mod. Power Syst.</source> <volume>2</volume>, <fpage>1</fpage>&#x2013;<lpage>18</lpage>. <pub-id pub-id-type="doi">10.1186/s41601-016-0032-y</pub-id>
</citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Hu</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Su</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Wei</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Qin</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Comparisons on kalman-filter-based dynamic state estimation algorithms of power systems</article-title>. <source>Ieee Access</source> <volume>8</volume>, <fpage>51035</fpage>&#x2013;<lpage>51043</lpage>. <pub-id pub-id-type="doi">10.1109/access.2020.2979735</pub-id>
</citation>
</ref>
<ref id="B17">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Ni</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Tang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Ponci</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Monti</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2012</year>). &#x201c;<article-title>A modified taylor-kalman filter for instantaneous dynamic phasor estimation</article-title>,&#x201d; in <conf-name>2012 3rd IEEE PES Innovative Smart Grid Technologies Europe (ISGT Europe) (IEEE)</conf-name>, <conf-loc>Berlin, Germany</conf-loc>, <conf-date>14-17 October 2012</conf-date>, <fpage>1</fpage>&#x2013;<lpage>7</lpage>.</citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mai</surname>
<given-names>R. K.</given-names>
</name>
<name>
<surname>Fu</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Dong</surname>
<given-names>Z. Y.</given-names>
</name>
<name>
<surname>Kirby</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Bo</surname>
<given-names>Z. Q.</given-names>
</name>
</person-group> (<year>2011</year>). <article-title>An adaptive dynamic phasor estimator considering dc offset for pmu applications</article-title>. <source>IEEE Trans. Power Deliv.</source> <volume>26</volume>, <fpage>1744</fpage>&#x2013;<lpage>1754</lpage>. <pub-id pub-id-type="doi">10.1109/tpwrd.2011.2119334</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mohanty</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Kant</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Kumar</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Sahu</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Choudhury</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>A brief review on synchro phasor technology and phasor measurement unit</article-title>. <source>Adv. Electr. Control Signal Syst. Sel. Proc. AECSS 2019</source>, <fpage>705</fpage>&#x2013;<lpage>721</lpage>. <pub-id pub-id-type="doi">10.1007/978-981-15-5262-5_53</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Song</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Wen</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Accurate dynamic phasor estimation by matrix pencil and taylor weighted least squares method</article-title>. <source>IEEE Trans. Instrum. Meas.</source> <volume>70</volume>, <fpage>1</fpage>&#x2013;<lpage>11</lpage>. <pub-id pub-id-type="doi">10.1109/tim.2021.3066187</pub-id>
</citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2004</year>). <article-title>A practical, precise method for frequency tracking and phasor estimation</article-title>. <source>IEEE Trans. power Deliv.</source> <volume>19</volume>, <fpage>1547</fpage>&#x2013;<lpage>1552</lpage>. <pub-id pub-id-type="doi">10.1109/tpwrd.2003.822544</pub-id>
</citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xiao</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Gan</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Hao</surname>
<given-names>Q.</given-names>
</name>
<etal/>
</person-group> (<year>2023</year>). <article-title>Robust submodule fault management in modular multilevel converters with nearest level modulation for uninterrupted power transmission</article-title>. <source>IEEE Trans. Power Deliv.</source>, <fpage>1</fpage>&#x2013;<lpage>16</lpage>. <pub-id pub-id-type="doi">10.1109/TPWRD.2023.3343693</pub-id>
</citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xiao</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Adaptive grid-synchronization based grid-forming control for voltage source converters</article-title>. <source>IEEE Trans. Power Syst.</source> <volume>1</volume>, <fpage>1</fpage>&#x2013;<lpage>4</lpage>. <pub-id pub-id-type="doi">10.1109/TPWRS.2023.3338967</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Xie</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Analysis and application of taylor-kalman filters under a distorted grid condition</article-title>. <source>Ieee Access</source> <volume>8</volume>, <fpage>106822</fpage>&#x2013;<lpage>106831</lpage>. <pub-id pub-id-type="doi">10.1109/access.2020.3000258</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>