<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1 20151215//EN" "http://jats.nlm.nih.gov/publishing/1.1/JATS-journalpublishing1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xml:lang="en" article-type="research-article" dtd-version="1.1">
<front>
<journal-meta>
<journal-id journal-id-type="pmc">CMC</journal-id>
<journal-id journal-id-type="nlm-ta">CMC</journal-id>
<journal-id journal-id-type="publisher-id">CMC</journal-id>
<journal-title-group>
<journal-title>Computers, Materials &#x0026; Continua</journal-title>
</journal-title-group>
<issn pub-type="epub">1546-2226</issn>
<issn pub-type="ppub">1546-2218</issn>
<publisher>
<publisher-name>Tech Science Press</publisher-name>
<publisher-loc>USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">34308</article-id>
<article-id pub-id-type="doi">10.32604/cmc.2023.034308</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Notes on Convergence and Modeling for the Extended Kalman Filter</article-title>
<alt-title alt-title-type="left-running-head">Notes on Convergence and Modeling for the Extended Kalman Filter</alt-title>
<alt-title alt-title-type="right-running-head">Notes on Convergence and Modeling for the Extended Kalman Filter</alt-title>
</title-group>
<contrib-group>
<contrib id="author-1" contrib-type="author" corresp="yes">
<name name-style="western"><surname>Jwo</surname><given-names>Dah-Jing</given-names></name><email>djjwo@mail.ntou.edu.tw</email></contrib>
<aff id="aff-1"><institution>Department of Communications, Navigation and Control Engineering, National Taiwan Ocean University</institution>, <addr-line>Keelung, 202301</addr-line>, <country>Taiwan</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>&#x002A;</label>Corresponding Author: Dah-Jing Jwo. Email: <email>djjwo@mail.ntou.edu.tw</email></corresp>
</author-notes>
<pub-date date-type="collection" publication-format="electronic"><year>2023</year></pub-date>
<pub-date date-type="pub" publication-format="electronic"><day>29</day><month>11</month><year>2023</year></pub-date>
<volume>77</volume>
<issue>2</issue>
<fpage>2137</fpage>
<lpage>2155</lpage>
<history>
<date date-type="received"><day>13</day><month>7</month><year>2022</year></date>
<date date-type="accepted"><day>03</day><month>10</month><year>2022</year></date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2022 Jwo</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Jwo</copyright-holder>
<license xlink:href="https://creativecommons.org/licenses/by/4.0/">
<license-p>This work is licensed under a <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
</license>
</permissions>
<self-uri content-type="pdf" xlink:href="TSP_CMC_34308.pdf"></self-uri>
<abstract>
<p>The goal of this work is to provide an understanding of estimation technology for both linear and nonlinear dynamical systems. A critical analysis of both the Kalman filter (KF) and the extended Kalman filter (EKF) will be provided, along with examples to illustrate some important issues related to filtering convergence due to system modeling. A conceptual explanation of the topic with illustrative examples provided in the paper can help the readers capture the essential principles and avoid making mistakes while implementing the algorithms. Adding fictitious process noise to the system model assumed by the filter designers for convergence assurance is being investigated. A comparison of estimation accuracy with linear and nonlinear measurements is made. Parameter identification by the state estimation method through the augmentation of the state vector is also discussed. The intended readers of this article may include researchers, working engineers, or engineering students. This article can serve as a better understanding of the topic as well as a further connection to probability, stochastic process, and system theory. The lesson learned enables the readers to interpret the theory and algorithms appropriately and precisely implement the computer codes that nicely match the estimation algorithms related to the mathematical equations. This is especially helpful for those readers with less experience or background in optimal estimation theory, as it provides a solid foundation for further study on the theory and applications of the topic.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Kalman filter</kwd>
<kwd>extended kalman filter</kwd>
<kwd>convergence</kwd>
<kwd>modeling</kwd>
<kwd>optimization</kwd>
</kwd-group>
<funding-group>
<award-group id="awg1">
<funding-source>Ministry of Science and Technology</funding-source>
<award-id>MOST 110-2221-E-019-042</award-id>
</award-group>
</funding-group>
</article-meta>
</front>
<body>
<sec id="s1"><label>1</label><title>Introduction</title>
<p>Rudolf E. Kalman published his paper [<xref ref-type="bibr" rid="ref-1">1</xref>] describing a recursive solution to the discrete-data linear filtering problem, referred to as the Kalman filter (KF) [<xref ref-type="bibr" rid="ref-2">2</xref>&#x2013;<xref ref-type="bibr" rid="ref-6">6</xref>], which is one of the most common optimal estimation techniques widely used today. Optimal estimation techniques have revolutionized state estimation for potential systems in mechanical, electrical, chemical, and medical applications. Most physical processes have been developed and represented in the form of some mathematical system models, which are categorized as deterministic and stochastic models. Deterministic models are easy to describe and compute, but they may not provide sufficient information, and the need for stochastic models becomes essential. The estimation techniques typically make assumptions that the dynamic processes and measurements are modeled as linear, and the corresponding input noises are modeled as Gaussian. Unfortunately, there is a large class of potential systems that are non-linear, non-Gaussian, or both. One type of divergence or non-convergence problem may arise because of inaccurate modeling. Since perfect mathematical modeling is challenging, only dominant modes of the system are usually depicted in the model. When approximated by the mathematical models, many effects with uncertainties also degrade the estimation accuracy to some extent.</p>
<p>The Kalman filter is a collection of mathematical equations that provide an efficient computational (recursive) method for estimating the states of a process while minimizing the mean squared error. It provides a convenient framework for supporting estimations of past, present, and even future states. It can do so even when the precise nature of the modeled system is unknown. The KF is an optimal recursive data processing algorithm that combines all available measurement data plus prior knowledge about the design and measuring devices to produce an estimate of the desired variables in such a manner that the estimation error is minimized statistically. It processes all available measurements, regardless of their precision, to estimate the current value of the variables of interest. Besides, it does not require all previous data to be stored and reprocessed every time a new measurement is taken. While linear stochastic equations can well model many systems, most real-world applications are nonlinear at some level. As an extension of the KF for dealing with nonlinear problems, the extended Kalman filter (EKF) [<xref ref-type="bibr" rid="ref-4">4</xref>&#x2013;<xref ref-type="bibr" rid="ref-6">6</xref>] design is based on the linearization of the system and measurement models using a first order Taylor series expansion. There are many types of nonlinearities to consider. If the degree of nonlinearity is relatively tiny, the EKF can provide acceptable results.</p>
<p>Due to advances in digital computing, the Kalman filter has been a valuable tool for various applications [<xref ref-type="bibr" rid="ref-7">7</xref>&#x2013;<xref ref-type="bibr" rid="ref-9">9</xref>]. More recently, the approach has been applied to the work on machine learning and deep learning [<xref ref-type="bibr" rid="ref-10">10</xref>&#x2013;<xref ref-type="bibr" rid="ref-12">12</xref>] to derive a time-varying estimate of the process [<xref ref-type="bibr" rid="ref-13">13</xref>]. However, this technique is sometimes not easily accessible to some readers from existing publications. The Kalman filter algorithm is one of the most common estimation techniques used today, yet engineers do not encounter it until they have begun their graduate or professional careers. While there are some excellent references detailing the derivation and theory behind the Kalman filter and extended Kalman filter, this article aims to take a more tutorial-based exposition [<xref ref-type="bibr" rid="ref-14">14</xref>&#x2013;<xref ref-type="bibr" rid="ref-19">19</xref>] to present the topics from a practical perspective. A detailed description with examples of problems offers readers better exposition and understanding of this topic. The examples in this work provide a step-by-step illustration and explanation. Using supporting examples captures the interest of some readers unfamiliar with the issue. The lesson is expected to motivate them to develop and explore using the Kalman filter to estimate system states. After grasping the important issues offered in this paper, the goal is to point out some confusing phenomena and enable the readers to use this guide to develop their own Kalman filters suitable for specific applications.</p>
<p>Numerical simulation and stability are essential in engineering applications both theoretically and practically and have attracted the interest of many researchers. Recent developments in the field and their applications can be found [<xref ref-type="bibr" rid="ref-20">20</xref>&#x2013;<xref ref-type="bibr" rid="ref-22">22</xref>]. The EKF is subject to linearization errors, resulting in incorrect state estimates and covariance estimates and leading to an unstable operation, known as filter divergence or non-convergence. Note that EKFs can be sensitive to this effect during periods of relatively high state uncertainty, such as initialization and start-up. The problems that result from poor initial estimates are not covered in this work. It may not be practical to expect working engineers to obtain a deep and thorough understanding of the stochastic theory behind Kalman filtering techniques. Still, it is reasonable to expect working engineers to be capable of using this computational tool for different applications. Proper interpretation and realization of the KF and EKF algorithms is necessary before conducting more complex systems using advanced filtering methodology.</p>
<p>The present investigation intends to extend the previous studies by developing a step-by-step procedure to build a solid foundation for the topic. Several vital issues related to the modeling and convergence of Kalman filtering implementation are emphasized with illustrative examples. The significant contributions in this article are documented as follows:
<list list-type="bullet">
<list-item><p>The basic requirements for system design are system stability and convergence. Furthermore, performance evaluation on filtering optimality should be carried out with caution to verify. The material covered in this work attempts to delineate the theory behind linear and nonlinear estimation techniques with supporting examples for discussing some essential issues in convergence and modeling.</p></list-item>
<list-item><p>This article elaborates on several important issues and highlights the checkpoints to ensure the algorithms are appropriately implemented. Once the KF and EKF algorithms can be accurately implemented, other advanced designs dealing with highly nonlinear and sophisticated systems using advanced estimators such as the unscented Kalman filter (UKF), cubature Kalman filter (CKF) [<xref ref-type="bibr" rid="ref-23">23</xref>], adaptive Kalman filter [<xref ref-type="bibr" rid="ref-24">24</xref>,<xref ref-type="bibr" rid="ref-25">25</xref>], and the robust filter [<xref ref-type="bibr" rid="ref-26">26</xref>] will be possible.</p></list-item>
<list-item><p>Although this paper does not focus on specific applications, providing essential guidelines to clarify the confusing portions is valuable. The selected illustrative examples provide a step-by-step procedure to build a solid foundation for the topic. When dealing with modeling of observation and process errors, the materials introduced in this article can be extended to several applications, such as the design of position tracking and control for robots, inertial navigation, the Global Positioning System (GPS), and orbit determination problems, among others.</p></list-item>
</list></p>
<p>The remainder of this paper proceeds as follows. First, a brief review of the Kalman filter and the extended Kalman filter is given in <xref ref-type="sec" rid="s2">Section 2</xref>. Then, in <xref ref-type="sec" rid="s3">Section 3</xref>, the system models involved in this paper are briefly introduced. In <xref ref-type="sec" rid="s4">Section 4</xref>, illustrative examples are presented to address essential convergence and modeling issues. Finally, conclusions are given in <xref ref-type="sec" rid="s5">Section 5</xref>.</p>
</sec>
<sec id="s2"><label>2</label><title>Kalman Filter and an Extended Kalman Filter</title>
<p>This section reviews the preliminary background on the Kalman filter and the extended Kalman filter. This paper focuses on the discrete-time version of the Kalman filter since the majority of Kalman filtering applications are implemented on digital computers. The extended Kalman filter is the nonlinear version of the Kalman filter and is used for the nonlinear dynamics model and measurement model.</p>
<sec id="s2_1"><label>2.1</label><title>The Kalman Filter</title>
<p>Consider a dynamical system described by a linear vector differential equation. The process model and measurement model are represented as
<disp-formula id="eqn-1"><label>(1)</label><mml:math id="mml-eqn-1" display="block"><mml:msub><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03A6;</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mspace width="thinmathspace" /><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msub><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x223C;</mml:mo><mml:mrow><mml:mtext>N</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn mathvariant="bold">0</mml:mn></mml:mrow><mml:mrow><mml:mo mathvariant="bold">,</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="bold">Q</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula>
<disp-formula id="eqn-2"><label>(2)</label><mml:math id="mml-eqn-2" display="block"><mml:msub><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">v</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mspace width="thinmathspace" /><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msub><mml:mrow><mml:mi mathvariant="bold">v</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x223C;</mml:mo><mml:mrow><mml:mtext>N</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn mathvariant="bold">0</mml:mn></mml:mrow><mml:mrow><mml:mo mathvariant="bold">,</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="bold">R</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula></p>
<p>The discrete Kalman filter equations are summarized in <xref ref-type="table" rid="table-1">Table 1</xref>.</p>
<table-wrap id="table-1"><label>Table 1</label><caption><title>Implementation algorithm for the discrete Kalman filter (KF) equations</title></caption>
<table frame="hsides">
<colgroup>
<col align="left"/>
</colgroup>
<thead>
<tr>
<th align="left">- Initialization: Initialize state vector <inline-formula id="ieqn-1"><mml:math id="mml-ieqn-1"><mml:msub><mml:mrow><mml:mover><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> and state covariance matrix <inline-formula id="ieqn-2"><mml:math id="mml-ieqn-2"><mml:msub><mml:mrow><mml:mi mathvariant="bold">P</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></th>
</tr>
<tr>
<th align="left">- Time update</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">(1) State propagation</td>
</tr>
<tr>
<td align="left"><inline-formula id="ieqn-3"><mml:math id="mml-ieqn-3"><mml:msubsup><mml:mrow><mml:mrow><mml:mover><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03A6;</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mover><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
</tr>
<tr>
<td align="left">(2) Error covariance propagation</td>
</tr>
<tr>
<td align="left"><inline-formula id="ieqn-4"><mml:math id="mml-ieqn-4"><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">P</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">&#x03A6;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi mathvariant="bold">P</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x03A6;</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">Q</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
</tr>
<tr>
<td align="left"><bold>- Measurement update</bold></td>
</tr>
<tr>
<td align="left">(3) Evaluation of Kalman gain matrix</td>
</tr>
<tr>
<td align="left"><inline-formula id="ieqn-5"><mml:math id="mml-ieqn-5"><mml:msub><mml:mrow><mml:mi mathvariant="bold">K</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">P</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msubsup><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">P</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msubsup><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">R</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mo stretchy="false">]</mml:mo><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula></td>
</tr>
<tr>
<td align="left">(4) State estimate update</td>
</tr>
<tr>
<td align="left"><inline-formula id="ieqn-6"><mml:math id="mml-ieqn-6"><mml:msub><mml:mrow><mml:mover><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mover><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">K</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">z</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:mi mathvariant="bold">H</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mrow><mml:mover><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msubsup><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td align="left">(5) Error covariance update</td>
</tr>
<tr>
<td align="left"><inline-formula id="ieqn-7"><mml:math id="mml-ieqn-7"><mml:msub><mml:mrow><mml:mi mathvariant="bold">P</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi mathvariant="bold">I</mml:mi></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">K</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>]</mml:mo></mml:mrow><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">P</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
<p>On the other hand, consider a dynamical system described by a linear vector differential equation. The process model and measurement model are represented as
<disp-formula id="eqn-3"><label>(3)</label><mml:math id="mml-eqn-3" display="block"><mml:mrow><mml:mtext>Process model:</mml:mtext></mml:mrow><mml:mtext>&#x00A0;</mml:mtext><mml:mrow><mml:mover><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="bold">F</mml:mi><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mi mathvariant="bold">G</mml:mi><mml:mi mathvariant="bold">u</mml:mi></mml:mrow></mml:math></disp-formula>
<disp-formula id="eqn-4"><label>(4)</label><mml:math id="mml-eqn-4" display="block"><mml:mrow><mml:mtext>Measurement model:</mml:mtext></mml:mrow><mml:mtext>&#x00A0;</mml:mtext><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="bold">H</mml:mi><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mi mathvariant="bold">v</mml:mi></mml:mrow></mml:math></disp-formula></p>
<p>where the vectors <inline-formula id="ieqn-8"><mml:math id="mml-ieqn-8"><mml:mrow><mml:mi mathvariant="bold">u</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-9"><mml:math id="mml-ieqn-9"><mml:mrow><mml:mi mathvariant="bold">v</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> are white noise sequences with zero means and are mutually independent:</p>
<disp-formula id="eqn-5"><label>(5)</label><mml:math id="mml-eqn-5" display="block"><mml:mi>E</mml:mi><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:mi mathvariant="bold">u</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="bold">u</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:mrow></mml:msup><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="bold">Q</mml:mi></mml:mrow><mml:mi>&#x03B4;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>;</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>E</mml:mi><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:mi mathvariant="bold">v</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="bold">v</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:mrow></mml:msup><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="bold">R</mml:mi></mml:mrow><mml:mi>&#x03B4;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>;</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>E</mml:mi><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:mi mathvariant="bold">u</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="bold">v</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:mrow></mml:msup><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mn mathvariant="bold">0</mml:mn></mml:mrow></mml:math></disp-formula><p>where <inline-formula id="ieqn-10"><mml:math id="mml-ieqn-10"><mml:mi>&#x03B4;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is the Dirac delta function, <inline-formula id="ieqn-11"><mml:math id="mml-ieqn-11"><mml:mi>E</mml:mi><mml:mo stretchy="false">[</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula> represents expectation, and superscript &#x201C;T&#x201D; denotes matrix transpose.</p>
<p>Discretisation of the continuous time system given by <xref ref-type="disp-formula" rid="eqn-3">Eq. (3)</xref> into discrete-time equivalent form leads to
<disp-formula id="eqn-6"><label>(6)</label><mml:math id="mml-eqn-6" display="block"><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="bold">&#x03A6;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msubsup><mml:mo>&#x222B;</mml:mo><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mrow><mml:mi mathvariant="bold">&#x03A6;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mi mathvariant="bold">G</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mi mathvariant="bold">u</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mi>d</mml:mi><mml:mi>&#x03C4;</mml:mi></mml:math></disp-formula></p>
<p>Using the abbreviated notation as in <xref ref-type="disp-formula" rid="eqn-1">Eq. (1)</xref>, the state transition matrix, using the Taylor&#x2019;s series expansion, can be represented as
<disp-formula id="eqn-7"><label>(7)</label><mml:math id="mml-eqn-7" display="block"><mml:msub><mml:mrow><mml:mi mathvariant="bold">&#x03A6;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">F</mml:mi></mml:mrow><mml:mi>&#x0394;</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="bold">I</mml:mi></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mi mathvariant="bold">F</mml:mi></mml:mrow><mml:mi>&#x0394;</mml:mi><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:msup><mml:mrow><mml:mi mathvariant="bold">F</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mi>&#x0394;</mml:mi><mml:msup><mml:mi>t</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mo>!</mml:mo></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:msup><mml:mrow><mml:mi mathvariant="bold">F</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msup><mml:mi>&#x0394;</mml:mi><mml:msup><mml:mi>t</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mn>3</mml:mn><mml:mo>!</mml:mo></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mo>&#x22EF;</mml:mo></mml:math></disp-formula></p>
<p>The noise input in the process model of <xref ref-type="disp-formula" rid="eqn-6">Eq. (6)</xref> is given by
<disp-formula id="eqn-8"><label>(8)</label><mml:math id="mml-eqn-8" display="block"><mml:msub><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mo>&#x222B;</mml:mo><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mrow><mml:mi mathvariant="bold">&#x03A6;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mi mathvariant="bold">G</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mi mathvariant="bold">u</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mi>d</mml:mi><mml:mi>&#x03C4;</mml:mi></mml:math></disp-formula></p>
<p>where <inline-formula id="ieqn-12"><mml:math id="mml-ieqn-12"><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2261;</mml:mo><mml:mi>k</mml:mi><mml:mi>&#x0394;</mml:mi><mml:mi>t</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-13"><mml:math id="mml-ieqn-13"><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2261;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mi>&#x0394;</mml:mi><mml:mi>t</mml:mi></mml:math></inline-formula>. Calculation of process noise covariance leads to
<disp-formula id="eqn-9"><label>(9)</label><mml:math id="mml-eqn-9" display="block"><mml:msub><mml:mrow><mml:mi mathvariant="bold">Q</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>E</mml:mi><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msubsup><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:msubsup><mml:mo>&#x222B;</mml:mo><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mrow><mml:mi mathvariant="bold">&#x03A6;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>&#x03B7;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mi mathvariant="bold">G</mml:mi><mml:mi mathvariant="bold">Q</mml:mi></mml:mrow><mml:msup><mml:mrow><mml:mi mathvariant="bold">G</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mi mathvariant="bold">&#x03A6;</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>&#x03B7;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mi>d</mml:mi><mml:mi>&#x03B7;</mml:mi></mml:math></disp-formula></p>
<p>The first-order approximation is obtained by setting <inline-formula id="ieqn-14"><mml:math id="mml-ieqn-14"><mml:msub><mml:mrow><mml:mi mathvariant="bold">&#x03A6;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2248;</mml:mo><mml:mrow><mml:mi mathvariant="bold">I</mml:mi></mml:mrow></mml:math></inline-formula>
<disp-formula id="eqn-10"><label>(10)</label><mml:math id="mml-eqn-10" display="block"><mml:msub><mml:mrow><mml:mi mathvariant="bold">Q</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2248;</mml:mo><mml:mrow><mml:mi mathvariant="bold">G</mml:mi><mml:mi mathvariant="bold">Q</mml:mi></mml:mrow><mml:msup><mml:mrow><mml:mi mathvariant="bold">G</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mi>&#x0394;</mml:mi><mml:mi>t</mml:mi></mml:math></disp-formula></p>
</sec>
<sec id="s2_2"><label>2.2</label><title>The Extended Kalman Filter</title>
<p>Consider a dynamical system described by a nonlinear vector difference equation. Assuming the process is to be estimated and the associated measurement relationship may be written in the form:
<disp-formula id="eqn-11"><label>(11)</label><mml:math id="mml-eqn-11" display="block"><mml:msub><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="bold">f</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></disp-formula>
<disp-formula id="eqn-12"><label>(12)</label><mml:math id="mml-eqn-12" display="block"><mml:msub><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="bold">h</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">v</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></disp-formula></p>
<p>where <inline-formula id="ieqn-15"><mml:math id="mml-ieqn-15"><mml:msub><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi mathvariant="normal">&#x211C;</mml:mi><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, is the state vector, <inline-formula id="ieqn-16"><mml:math id="mml-ieqn-16"><mml:msub><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi mathvariant="normal">&#x211C;</mml:mi><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, is the process noise vector, <inline-formula id="ieqn-17"><mml:math id="mml-ieqn-17"><mml:msub><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi mathvariant="normal">&#x211C;</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, is the measurement vector, and <inline-formula id="ieqn-18"><mml:math id="mml-ieqn-18"><mml:msub><mml:mrow><mml:mi mathvariant="bold">v</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi mathvariant="normal">&#x211C;</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> is the measurement noise vector. The vectors <inline-formula id="ieqn-19"><mml:math id="mml-ieqn-19"><mml:msub><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-20"><mml:math id="mml-ieqn-20"><mml:msub><mml:mrow><mml:mi mathvariant="bold">v</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> are zero mean Gaussian white sequences having zero cross-correlation with each other:
<disp-formula id="ueqn-1">
<mml:math id="mml-ueqn-1" display="block"><mml:mrow><mml:mi mathvariant="bold">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">Q</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>&#x03B4;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mspace width="thinmathspace" /><mml:mo>;</mml:mo><mml:mspace width="thinmathspace" /><mml:mrow><mml:mi mathvariant="bold">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">v</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">v</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">R</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>&#x03B4;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mspace width="thinmathspace" /><mml:mo>;</mml:mo><mml:mspace width="thinmathspace" /><mml:mrow><mml:mi mathvariant="bold">E</mml:mi></mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">v</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mn mathvariant="bold">0</mml:mn></mml:mrow></mml:math></disp-formula></p>
<p>where <inline-formula id="ieqn-21"><mml:math id="mml-ieqn-21"><mml:msub><mml:mrow><mml:mi mathvariant="bold">Q</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is the process noise covariance matrix, and <inline-formula id="ieqn-22"><mml:math id="mml-ieqn-22"><mml:msub><mml:mrow><mml:mi mathvariant="bold">R</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is the measurement noise covariance matrix. The symbol <inline-formula id="ieqn-23"><mml:math id="mml-ieqn-23"><mml:msub><mml:mi>&#x03B4;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> stands for the Kronecker delta function:
<disp-formula id="ueqn-2">
<mml:math id="mml-ueqn-2" display="block"><mml:msub><mml:mi>&#x03B4;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mtable columnalign="left left" rowspacing=".2em" columnspacing="1em" displaystyle="false"><mml:mtr><mml:mtd><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mtable columnalign="center center" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd /><mml:mtd><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mi>k</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mtable columnalign="center center" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd /><mml:mtd><mml:mi>i</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mi>k</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mtd></mml:mtr></mml:mtable><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>The discrete extended Kalman filter equations are summarized in <xref ref-type="table" rid="table-2">Table 2</xref>.</p>
<table-wrap id="table-2"><label>Table 2</label><caption><title>Implementation algorithm for the discrete extended Kalman filter (EKF) equations</title></caption>
<table frame="hsides">
<colgroup>
<col align="left"/>
</colgroup>
<thead>
<tr>
<th align="left">- Initialization: Initialize state vector <inline-formula id="ieqn-24"><mml:math id="mml-ieqn-24"><mml:msub><mml:mrow><mml:mover><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> and state covariance matrix <inline-formula id="ieqn-25"><mml:math id="mml-ieqn-25"><mml:msub><mml:mrow><mml:mi mathvariant="bold">P</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></th>
</tr>
<tr>
<th align="left">- Time update</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">(1) State propagation</td>
</tr>
<tr>
<td align="left"><inline-formula id="ieqn-26"><mml:math id="mml-ieqn-26"><mml:msubsup><mml:mrow><mml:mrow><mml:mover><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="bold">f</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td align="left">(2) Error covariance propagation</td>
</tr>
<tr>
<td align="left"><inline-formula id="ieqn-27"><mml:math id="mml-ieqn-27"><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">P</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">&#x03A6;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi mathvariant="bold">P</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x03A6;</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">Q</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
</tr>
<tr>
<td align="left"><bold>- Measurement update</bold></td>
</tr>
<tr>
<td align="left">(3) Evaluation of Kalman gain matrix</td>
</tr>
<tr>
<td align="left"><inline-formula id="ieqn-28"><mml:math id="mml-ieqn-28"><mml:msub><mml:mrow><mml:mi mathvariant="bold">K</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">P</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msubsup><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">P</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msubsup><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">R</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mo stretchy="false">]</mml:mo><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula></td>
</tr>
<tr>
<td align="left">(4) State estimate update</td>
</tr>
<tr>
<td align="left"><inline-formula id="ieqn-29"><mml:math id="mml-ieqn-29"><mml:msub><mml:mrow><mml:mover><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mover><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">K</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mi mathvariant="bold">h</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mover><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td align="left">(5) Error covariance update</td>
</tr>
<tr>
<td align="left"><inline-formula id="ieqn-30"><mml:math id="mml-ieqn-30"><mml:msub><mml:mrow><mml:mi mathvariant="bold">P</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi mathvariant="bold">I</mml:mi></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">K</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>]</mml:mo></mml:mrow><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">P</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula></td>
</tr>
<tr>
<td align="left">where the linear approximation equations for system and measurement matrices are obtained through the relations</td>
</tr>
<tr>
<td align="left">
<disp-formula id="ueqn-13">
<mml:math id="mml-ueqn-13" display="block"><mml:mrow><mml:msub><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mrow><mml:mtext>&#x03A6;</mml:mtext></mml:mrow></mml:mrow></mml:mrow><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">f</mml:mi></mml:mrow></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow></mml:mrow></mml:mfrac></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold">x</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x2212;</mml:mo></mml:msubsup></mml:mrow></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable columnalign="center center center center" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mo>&#x22EF;</mml:mo></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mo>&#x22EF;</mml:mo></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>&#x22EE;</mml:mo></mml:mtd><mml:mtd><mml:mo>&#x22EE;</mml:mo></mml:mtd><mml:mtd><mml:mo>&#x22F1;</mml:mo></mml:mtd><mml:mtd><mml:mo>&#x22EE;</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mo>&#x22EF;</mml:mo></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold">x</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x2212;</mml:mo></mml:msubsup></mml:mrow></mml:msub></mml:mrow><mml:mo>;</mml:mo><mml:mspace width="thinmathspace" /><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">h</mml:mi></mml:mrow></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold">x</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x2212;</mml:mo></mml:msubsup></mml:mrow></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable columnalign="center center center center" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mo>&#x22EF;</mml:mo></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mo>&#x22EF;</mml:mo></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>&#x22EE;</mml:mo></mml:mtd><mml:mtd><mml:mo>&#x22EE;</mml:mo></mml:mtd><mml:mtd><mml:mo>&#x22F1;</mml:mo></mml:mtd><mml:mtd><mml:mo>&#x22EE;</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mo>&#x22EF;</mml:mo></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold">x</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x2212;</mml:mo></mml:msubsup></mml:mrow></mml:msub></mml:mrow></mml:math></disp-formula>
</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
<sec id="s3"><label>3</label><title>System Models Discussed in This Work</title>
<p>The employment of proper system models enables us to analyze the behavior of the process to some extent effectively. Dynamic systems are also driven by disturbances that can neither be controlled nor modeled deterministically. The KF and EKF can be extremely sensitive to this effect during periods of relatively high state uncertainty, such as initialization and start-up. The problems that result from wrong initial estimates of <bold>x</bold> and <bold>P</bold> have been addressed and are not covered in this work. One type of divergence may arise because of inaccurate modeling of the process being estimated. Some critical issues relating to the modeling and convergence of the implementation of the Kalman filter family are of importance. Although the best cure for non-convergence caused by unmodeled states is to correct the model, this is not always easy. Additional &#x201C;fictitious&#x201D; process noise added to the system model assumed by the Kalman filter is an <italic>ad hoc</italic> fix. This remedy can be considering &#x201C;lying&#x201D; to the Kalman filter model. In addition, there are some issues with linear and nonlinear measurements of estimation performance. Parameter identification by state vector augmentation is also covered.</p>
<p>This article selects five models for discussion: the random constant, the random walk, the scalar Gauss-Markov process, the scalar nonlinear dynamic system, and the Van der Pol oscillator (VPO) model. The selected models are adopted to highlight the critical issues with an emphasis on convergence and modeling a step-by-step verification procedure for correct realization of the algorithms.</p>
<p>(1) Random constant</p>
<p>The random constant is a non-dynamic quality with a fixed, albeit random, amplitude. The random constant is described by the differential equation
<disp-formula id="eqn-13"><label>(13)</label><mml:math id="mml-eqn-13" display="block"><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mtext>constant</mml:mtext></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mtext>&#xA0;namely</mml:mtext></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mtext mathvariant="italic">x</mml:mtext></mml:mrow><mml:mtext>&#x00A0;</mml:mtext><mml:mrow><mml:mtext>has zero slope</mml:mtext></mml:mrow><mml:mo>.</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>which can be discretized as
<disp-formula id="ueqn-3">
<mml:math id="mml-ueqn-3" display="block"><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></disp-formula></p><p>(2) Random walk</p>
<p>The random walk process results when uncorrelated signals are integrated. It derives its name from the example of a man who takes fixed-length steps in arbitrary directions. At the limit, when the number of steps is large and the individual steps are short in length, the distance travelled in a particular direction resembles the random walk process. The differential equation for the random walk process is
<disp-formula id="eqn-14"><label>(14)</label><mml:math id="mml-eqn-14" display="block"><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mi>u</mml:mi><mml:mspace width="thinmathspace" /><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>u</mml:mi><mml:mo>&#x223C;</mml:mo><mml:mi>N</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>which can be discretized as</p>
<disp-formula id="ueqn-4">
<mml:math id="mml-ueqn-4" display="block"><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x223C;</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula><p>(3) Scalar Gauss-Markov process</p>
<p>A Gauss-Markov process is a stochastic process that satisfies the requirements for both Gaussian and Markov processes. The scalar Gauss-Markov process has the form:</p>
<disp-formula id="eqn-15"><label>(15)</label><mml:math id="mml-eqn-15" display="block"><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03B2;</mml:mi><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>u</mml:mi></mml:math></disp-formula><p>(4) Scalar nonlinear dynamic system</p>
<p>The scalar nonlinear dynamic system used in this example is given by
<disp-formula id="eqn-16"><label>(16)</label><mml:math id="mml-eqn-16" display="block"><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mn>4</mml:mn><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula></p><p>(5) Van der Pol oscillator</p>
<p>The Van der Pol oscillator is a non-conservative oscillator with non-linear damping. It evolves in time according to the second-order differential equation:
<disp-formula id="eqn-17"><label>(17)</label><mml:math id="mml-eqn-17" display="block"><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x00A8;</mml:mo></mml:mover></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>+</mml:mo><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></disp-formula></p>
<p>where <italic>x</italic> is the position coordinate, which is a function of the time <italic>t</italic>, and <italic>&#x03BC;</italic> is a scalar parameter indicating the nonlinearity and the strength of the damping and can be written in the two-dimensional form:
<disp-formula id="eqn-18"><label>(18a)</label><mml:math id="mml-eqn-18" display="block"><mml:msub><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></disp-formula>
<disp-formula id="eqn-19"><label>(18b)</label><mml:math id="mml-eqn-19" display="block"><mml:msub><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></disp-formula></p>
</sec>
<sec id="s4"><label>4</label><title>Illustrative Examples</title>
<p>Appropriate modeling for the dynamic system is critical to its accuracy improvement and convergence assurance. Several vital issues concerning state estimation using the KF and EKF approaches will be addressed in this section. Four supporting examples are provided for illustration. <xref ref-type="table" rid="table-3">Table 3</xref> summarizes the objectives and meaningful insights from the examples.</p>
<table-wrap id="table-3"><label>Table 3</label><caption><title>Objectives and meaningful insights from the illustrative examples</title></caption>
<table frame="hsides">
<colgroup>
<col align="left"/>
<col align="left"/>
</colgroup>
<thead>
<tr>
<th align="left">Examples</th>
<th align="left">Insights to be delivered</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Example 1</td>
<td align="left">&#x2022; A comparison of the estimation errors for the random constant and random walk models due to mismodeling is investigated.</td>
</tr>
<tr>
<td/>
<td align="left">&#x2022; Estimation accuracies based on both linear and nonlinear measurements are discussed.</td>
</tr>
<tr>
<td align="left">Example 2</td>
<td align="left">&#x2022; Estimation performance due to incorrect modeling of a scalar nonlinear system based on various process models is presented.</td>
</tr>
<tr>
<td align="left">Example 3</td>
<td align="left">&#x2022; State estimation using the vector EKF for the Van der Pol oscillator with system parameter identification is illustrated.</td>
</tr>
<tr>
<td align="left">Example 4</td>
<td align="left">&#x2022; The scalar Gauss-Markov process with parameter identification and adaptation of noise covariance is shown.</td>
</tr>
</tbody>
</table>
</table-wrap>
<sec id="s4_1"><label>4.1</label><title>Example 1: Random Constant <italic>vs.</italic> Random Walk</title>
<p>In the first example, state estimation processing for a random constant and a random walk will be discussed under various situations.</p>
<sec id="s4_1_1"><label>4.1.1</label><title>Estimation of a Random Constant</title>
<p>Firstly, consider a system dynamic that is actually a random constant but is inaccurately modeled as a random walk, where the linear measurement <inline-formula id="ieqn-31"><mml:math id="mml-ieqn-31"><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>v</mml:mi></mml:math></inline-formula> is involved, as shown in <xref ref-type="table" rid="table-4">Table 4</xref>. <xref ref-type="fig" rid="fig-1">Fig. 1</xref> presents the estimation result for the random constant (<inline-formula id="ieqn-32"><mml:math id="mml-ieqn-32"><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>, <inline-formula id="ieqn-33"><mml:math id="mml-ieqn-33"><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn>6.6</mml:mn></mml:math></inline-formula> in this work) using the KF with various noise strengths (<italic>q</italic>&#x2019;s) in the process model, which is a random walk model. Three <italic>q</italic> values (0, 0.001, and 0.01, respectively) are utilized. It can be seen that an increase of <italic>q</italic> decreases the estimation accuracy. In this case, the random constant model is appropriate to capture the system dynamics well. However, an increase in noise strength will decrease the estimation accuracy caused by the model mismatch. This phenomenon can be the overfitting of the system model when additional noise is introduced.</p>
<table-wrap id="table-4"><label>Table 4</label><caption><title>Estimation of the random constant due to model mismatch</title></caption>
<table frame="hsides">
<colgroup>
<col align="left"/>
<col align="left"/>
<col align="left"/>
</colgroup>
<thead>
<tr>
<th align="left">Dynamic in real world</th>
<th align="left">Process model in Kalman filter</th>
<th align="left">Measurement model</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Random constant <inline-formula id="ieqn-34"><mml:math id="mml-ieqn-34"><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula></td>
<td align="left">Random walk <inline-formula id="ieqn-35"><mml:math id="mml-ieqn-35"><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mi>u</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-36"><mml:math id="mml-ieqn-36"><mml:mi>u</mml:mi><mml:mo>&#x223C;</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></td>
<td align="left">Linear in the KF: <inline-formula id="ieqn-37"><mml:math id="mml-ieqn-37"><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>v</mml:mi></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap><fig id="fig-1"><label>Figure 1</label><caption><title>Estimation of the random constant using the KF with various noise strengths in the process model</title></caption><graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_34308-fig-1.tif"/></fig>
<p>In the following cases, the KF using a linear measurement model <italic>vs.</italic> the EKF using two types of nonlinear measurement models are investigated. First, the state estimation for a random constant with the following measurement models is involved:
<list list-type="order">
<list-item><p>The linear measurement <inline-formula id="ieqn-38"><mml:math id="mml-ieqn-38"><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>v</mml:mi></mml:math></inline-formula>, referred to as the KF approach.</p></list-item>
<list-item><p>Nonlinear measurement <inline-formula id="ieqn-39"><mml:math id="mml-ieqn-39"><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mi>v</mml:mi></mml:math></inline-formula>, referred to as the EKF1 approach.</p></list-item>
<list-item><p>Nonlinear measurement <inline-formula id="ieqn-40"><mml:math id="mml-ieqn-40"><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mi>v</mml:mi></mml:math></inline-formula>, referred to as the EKF2 approach.</p></list-item>
</list></p>
<p>Which is summarized in <xref ref-type="table" rid="table-5">Table 5</xref>.</p>
<table-wrap id="table-5"><label>Table 5</label><caption><title>Estimation of random constant based on various measurement models</title></caption>
<table frame="hsides">
<colgroup>
<col align="left"/>
<col align="left"/>
<col align="left"/>
</colgroup>
<thead>
<tr>
<th align="left">Dynamic in real world</th>
<th align="left">Process model</th>
<th align="left">Measurement models</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" rowspan="3">Random<break/>constant <inline-formula id="ieqn-41"><mml:math id="mml-ieqn-41"><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula></td>
<td align="left" rowspan="3">Random constant<break/><inline-formula id="ieqn-42"><mml:math id="mml-ieqn-42"><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula><break/>(same as the dynamic in real world)</td>
<td align="left">KF: <inline-formula id="ieqn-43"><mml:math id="mml-ieqn-43"><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>v</mml:mi></mml:math></inline-formula></td>
</tr>
<tr>
<td align="left">EKF1: <inline-formula id="ieqn-44"><mml:math id="mml-ieqn-44"><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mi>v</mml:mi></mml:math></inline-formula></td>
</tr>
<tr>
<td align="left">EKF2: <inline-formula id="ieqn-45"><mml:math id="mml-ieqn-45"><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mi>v</mml:mi></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
<p>For the EKF1 approach, the Jacobian related to the measurement is given by
<disp-formula id="eqn-20"><label>(19)</label><mml:math id="mml-eqn-20" display="block"><mml:mi>H</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mn>3</mml:mn></mml:mfrac><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msup></mml:math></disp-formula>and for the EKF2 approach, it is given by
<disp-formula id="eqn-21"><label>(20)</label><mml:math id="mml-eqn-21" display="block"><mml:mi>H</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mn>3</mml:mn><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:math></disp-formula>for the two types of nonlinear measurement models. The process noise is set as <inline-formula id="ieqn-46"><mml:math id="mml-ieqn-46"><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula> for all cases, and the same measurement noise strength has been applied for all three types of measurement models. <xref ref-type="fig" rid="fig-2">Fig. 2</xref> shows the estimation results of a random constant using the KF compared to the EKF utilizing the other two types of nonlinear measurements. The subplot on the right provides a closer look at their behaviors near the truth value. For EKF1 involving <inline-formula id="ieqn-47"><mml:math id="mml-ieqn-47"><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mi>v</mml:mi></mml:math></inline-formula>, the noise is relatively more substantial as compared to the state <bold>x</bold> in magnitude, leading to worse precision in state estimation; on the contrary, for EKF2 involving <inline-formula id="ieqn-48"><mml:math id="mml-ieqn-48"><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mi>v</mml:mi></mml:math></inline-formula>, the noise is relatively weaker as compared to the magnitude of <bold>x</bold>, leading to better/improved results.</p>
<fig id="fig-2"><label>Figure 2</label><caption><title>Estimation of the random constant using the KF and EKF utilizing two types of nonlinear measurements. The plot on the right provides a closer look at their behaviors near the truth value</title></caption><graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_34308-fig-2.tif"/></fig>
</sec>
<sec id="s4_1_2"><label>4.1.2</label><title>Estimation of a Random Walk</title>
<p>The following demonstration considers a process that is actually a random walk process but is incorrectly modeled as a random constant, namely,</p>
<p>- Correct Kalman filter model: <inline-formula id="ieqn-49"><mml:math id="mml-ieqn-49"><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mi>u</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-50"><mml:math id="mml-ieqn-50"><mml:mi>u</mml:mi><mml:mo>&#x223C;</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>;</p>
<p>- Incorrect Kalman filter model: <inline-formula id="ieqn-51"><mml:math id="mml-ieqn-51"><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>.</p>
<p>This process was first processed using an incorrect model (i.e., <inline-formula id="ieqn-52"><mml:math id="mml-ieqn-52"><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>), and then using the correct model (i.e., <inline-formula id="ieqn-53"><mml:math id="mml-ieqn-53"><mml:mi>q</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>). The estimates by the filter with a correctly modeled process follow the random walk quite well. On the other hand, an incorrect process model leads to degraded results. It occurs simply because the designer &#x201C;told&#x201D; the Kalman filter that the process behaved differently, whereas it behaves another way. In this case, the filter is told that the process is a random constant with zero slopes. Still, the process has a nonzero slope, and the filter tries to fit the wrong curve to the measurement data. As a result, the filter with an incorrectly modeled process does very poorly due to the filter&#x2019;s gain becoming less and less with each subsequent step. The Kalman gain and the covariance matrix <bold>P</bold> are correct if the models used in computing them are correct. However, the <bold>P</bold> matrix can be erroneous and of little use in detecting non-convergence in the case of mismodeling. <bold>P</bold> can even converge to zero while the state estimation error is actually diverging. <xref ref-type="fig" rid="fig-3">Fig. 3</xref> shows estimates of the state and the corresponding errors due to unmodeled system driving noise.</p>
<fig id="fig-3"><label>Figure 3</label><caption><title>(a) The states and (b) the corresponding errors due to unmodeled system driving noise</title></caption><graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_34308-fig-3.tif"/></fig>
</sec>
</sec>
<sec id="s4_2"><label>4.2</label><title>Example 2: Scalar Nonlinear Dynamic System</title>
<p>In the second example, consider the scalar nonlinear dynamic system
<disp-formula id="ueqn-5">
<mml:math id="mml-ueqn-5" display="block"><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mn>4</mml:mn><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>x</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn>0</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn></mml:math></disp-formula></p>
<p>where the actual solution is given by <inline-formula id="ieqn-54"><mml:math id="mml-ieqn-54"><mml:mi>x</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mn>3</mml:mn><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo>+</mml:mo><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>.</p>
<p>The process model will be ideally modeled as its actual nonlinear dynamic and then incorrectly modeled as a linear model, including the random walk and the random constant:
<list list-type="order">
<list-item><p>Nonlinear process model: <inline-formula id="ieqn-55"><mml:math id="mml-ieqn-55"><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mi>u</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-56"><mml:math id="mml-ieqn-56"><mml:mi>u</mml:mi><mml:mo>&#x223C;</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.</p></list-item>
<list-item><p>Random walk model: <inline-formula id="ieqn-57"><mml:math id="mml-ieqn-57"><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mi>u</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-58"><mml:math id="mml-ieqn-58"><mml:mi>u</mml:mi><mml:mo>&#x223C;</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.</p></list-item>
<list-item><p>Random constant model: <inline-formula id="ieqn-59"><mml:math id="mml-ieqn-59"><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>.</p></list-item>
</list></p><p>Summarized in <xref ref-type="table" rid="table-6">Table 6</xref>. The estimation performance with linear measurement (<inline-formula id="ieqn-60"><mml:math id="mml-ieqn-60"><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>v</mml:mi></mml:math></inline-formula>) using the process models mentioned above will be evaluated.</p>
<table-wrap id="table-6">
<label>Table 6</label><caption><title>Estimation of the scalar nonlinear dynamic system with various process models</title></caption>
<table frame="hsides">
<colgroup>
<col align="left"/>
<col align="left"/>
</colgroup>
<thead>
<tr>
<th align="left">Real world</th>
<th align="left">Process models utilized in the filter</th>
</tr>
</thead>
<tbody>
<tr>
<td>Scalar nonlinear dynamic system <inline-formula id="ieqn-61"><mml:math id="mml-ieqn-61"><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td align="left">Nonlinear process model: <inline-formula id="ieqn-62"><mml:math id="mml-ieqn-62"><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mi>u</mml:mi></mml:math></inline-formula></td>
</tr>
<tr>
<td/>
<td align="left">Random walk: <inline-formula id="ieqn-63"><mml:math id="mml-ieqn-63"><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mi>u</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-64"><mml:math id="mml-ieqn-64"><mml:mi>u</mml:mi><mml:mo>&#x223C;</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></td>
</tr>
<tr>
<td/>
<td align="left">Random constant: <inline-formula id="ieqn-65"><mml:math id="mml-ieqn-65"><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
<p>State estimation results for this nonlinear dynamic system with the process model using the (ideal) nonlinear model (<inline-formula id="ieqn-66"><mml:math id="mml-ieqn-66"><mml:mi>q</mml:mi><mml:mo>&#x2248;</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>, meaning that the model is perfectly described except for the numerical error due to discretization, which can be cured by adding a small amount of noise) in comparison with the linear process model of random walk (<inline-formula id="ieqn-67"><mml:math id="mml-ieqn-67"><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mn>0.01</mml:mn></mml:math></inline-formula>). The Jacobian related to the nonlinear dynamic process model is given by
<disp-formula id="eqn-22"><label>(21)</label><mml:math id="mml-eqn-22" display="block"><mml:mi>F</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn><mml:mi>x</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>4</mml:mn></mml:math></disp-formula>
<disp-formula id="eqn-23"><label>(22)</label><mml:math id="mml-eqn-23" display="block"><mml:msub><mml:mi>&#x03A6;</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mi>F</mml:mi><mml:mi>&#x0394;</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2248;</mml:mo><mml:mn>1</mml:mn><mml:mo>+</mml:mo><mml:mi>F</mml:mi><mml:mi>&#x0394;</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>+</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn><mml:mi>x</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>4</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mi>&#x0394;</mml:mi><mml:mi>t</mml:mi></mml:math></disp-formula></p>
<p><xref ref-type="fig" rid="fig-4">Fig. 4</xref> presents the estimation errors of this scalar nonlinear dynamic system using the KF with <inline-formula id="ieqn-68"><mml:math id="mml-ieqn-68"><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mn>0.01</mml:mn></mml:math></inline-formula> compared to the EKF with <inline-formula id="ieqn-69"><mml:math id="mml-ieqn-69"><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>. The truth model in this example is nonlinear but is incorrectly modeled in the process model of KF. As a result, non-convergence appears due to mismodeling. However, &#x201C;lying&#x201D; to the filter by adding fictitious process noise to the KF model can appropriately cure this problem. <xref ref-type="fig" rid="fig-5">Fig. 5</xref> provides the estimation performance using the KF and EKF. In <xref ref-type="fig" rid="fig-5">Fig. 5</xref>, the estimation errors based on the process models using the linear ones (with <inline-formula id="ieqn-70"><mml:math id="mml-ieqn-70"><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>, 0.0001, and 0.01, respectively) and the (ideal) nonlinear model (with <inline-formula id="ieqn-71"><mml:math id="mml-ieqn-71"><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>, 0.001, and 0.01, respectively) are presented. When the additional fictitious <italic>q</italic> introduced is not sufficient to compensate for the system mismodeling, non-convergence will occur, as shown in the subplot (a) of <xref ref-type="fig" rid="fig-5">Fig. 5</xref>. On the other hand, the case that <italic>q</italic> is more than necessary (and thus presents the phenomenon of overfitting) will lead to noisy results, as shown in the subplot (b) of <xref ref-type="fig" rid="fig-5">Fig. 5</xref>.</p>
<fig id="fig-4"><label>Figure 4</label><caption><title>Estimation for the nonlinear dynamic system using KF with <inline-formula id="ieqn-80"><mml:math id="mml-ieqn-80"><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mn>0.01</mml:mn></mml:math></inline-formula> and EKF with <inline-formula id="ieqn-81"><mml:math id="mml-ieqn-81"><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula></title></caption><graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_34308-fig-4.tif"/></fig><fig id="fig-5"><label>Figure 5</label><caption><title>Estimation errors based on the (a) KF and (b) EKF with various <italic>q</italic> values</title></caption><graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_34308-fig-5.tif"/></fig>
</sec>
<sec id="s4_3"><label>4.3</label><title>Example 3: The Van der Pol Oscillator with Parameter Identification</title>
<p>The nonlinear dynamic system of the Van der Pol oscillator is considered in the third example. It is a non-conservative oscillator with non-linear damping, evolving in time according to a second-order differential equation, and can be written in the two-dimensional form:
<disp-formula id="ueqn-6">
<mml:math id="mml-ueqn-6" display="block"><mml:msub><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></disp-formula>
<disp-formula id="ueqn-7">
<mml:math id="mml-ueqn-7" display="block"><mml:msub><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></disp-formula>where <inline-formula id="ieqn-72"><mml:math id="mml-ieqn-72"><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> is the position coordinate, a function of the time <italic>t</italic>, and <inline-formula id="ieqn-73"><mml:math id="mml-ieqn-73"><mml:mi>&#x03BC;</mml:mi></mml:math></inline-formula> is a scalar parameter, indicating the strength of the damping. The analytical solution of the VPO is, in general, not available or difficult to obtain. In this work, the fourth-order Runge-Kutta integrator with a sampling interval of <inline-formula id="ieqn-74"><mml:math id="mml-ieqn-74"><mml:mi>&#x0394;</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn>0.001</mml:mn><mml:mtext>&#xA0;</mml:mtext><mml:mi>s</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-75"><mml:math id="mml-ieqn-75"><mml:msub><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mo>[</mml:mo><mml:mtable columnalign="center center" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mo>&#x2212;</mml:mo><mml:mn>0.5</mml:mn></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> is used to numerically calculate the states, which is a perfect approximation of the true states. <xref ref-type="fig" rid="fig-6">Fig. 6</xref> provides the simulation results for the <inline-formula id="ieqn-76"><mml:math id="mml-ieqn-76"><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-77"><mml:math id="mml-ieqn-77"><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>, and the phase portraits of the VPO model. The fourth-order Runge-Kutta integrator with a sampling interval of <inline-formula id="ieqn-78"><mml:math id="mml-ieqn-78"><mml:mi>&#x0394;</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn>0.001</mml:mn><mml:mtext>&#xA0;</mml:mtext><mml:mi>s</mml:mi></mml:math></inline-formula> (in blue) and the Euler integrator with a sampling interval of <inline-formula id="ieqn-79"><mml:math id="mml-ieqn-79"><mml:mi>&#x0394;</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn>0.1</mml:mn><mml:mtext>&#xA0;</mml:mtext><mml:mi>s</mml:mi></mml:math></inline-formula> (in green), respectively, are utilized.</p>
<fig id="fig-6"><label>Figure 6</label><caption><title>Simulation for the Van der Pol oscillator (VPO): (a) <inline-formula id="ieqn-83"><mml:math id="mml-ieqn-83"><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>; (b) <inline-formula id="ieqn-84"><mml:math id="mml-ieqn-84"><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> and (c) the phase portrait</title></caption><graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_34308-fig-6.tif"/></fig>
<p>Even though a continuous-time model can precisely describe the system, the discretization of the continuous-time model may encounter non-convergence issues. It can be seen that the sampling interval for the discrete-time model derived from the continuous-time model remarkably influences the accuracy, especially for a system with relatively high nonlinearity, like this example. The error caused by numerical approximation directly reflects the estimation accuracy, which can be seen by comparing the two sets of curves. When the discrete-time version of the filter is employed, applying appropriate fictitious noise by adding <inline-formula id="ieqn-82"><mml:math id="mml-ieqn-82"><mml:msub><mml:mrow><mml:mi mathvariant="bold">Q</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> to cure the non-convergence is helpful.
<disp-formula id="eqn-24"><label>(23)</label><mml:math id="mml-eqn-24" display="block"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:mi mathvariant="bold">f</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mtable columnalign="center center" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd><mml:mtd><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd><mml:mtd><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mtable columnalign="center center" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn><mml:mi>&#x03BC;</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mi>&#x03BC;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>If the estimation is performed using the ideal nonlinear process model, namely,
<disp-formula id="ueqn-8">
<mml:math id="mml-ueqn-8" display="block"><mml:msub><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></disp-formula>
<disp-formula id="ueqn-9">
<mml:math id="mml-ueqn-9" display="block"><mml:msub><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi>u</mml:mi></mml:math></disp-formula></p>
<p>In the case that the nonlinearity parameter is unknown and is to be identified, the state variables for this problem are designated as
<disp-formula id="eqn-25"><label>(24)</label><mml:math id="mml-eqn-25" display="block"><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>x</mml:mi><mml:mspace width="thinmathspace" /><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>&#x03BC;</mml:mi></mml:math></disp-formula>we then have <inline-formula id="ieqn-85"><mml:math id="mml-ieqn-85"><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mo>[</mml:mo><mml:mtable columnalign="center center center" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mo>[</mml:mo><mml:mtable columnalign="center center center" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mi>x</mml:mi></mml:mtd><mml:mtd><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow></mml:mtd><mml:mtd><mml:mi>&#x03BC;</mml:mi></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>. A parameter problem is then converted to a nonlinear state estimation problem. The equation of motion involving three states for the plant then becomes
<disp-formula id="eqn-26"><label>(25)</label><mml:math id="mml-eqn-26" display="block"><mml:mfrac><mml:mi>d</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac><mml:mrow><mml:mo>[</mml:mo><mml:mtable rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mtable rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mtable rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>1</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mi>u</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>With the process model mentioned above, the corresponding Jacobian matrix is given by
<disp-formula id="eqn-27"><label>(26)</label><mml:math id="mml-eqn-27" display="block"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:mi mathvariant="bold">f</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mtable columnalign="center center center" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd><mml:mtd><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd><mml:mtd><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd><mml:mtd><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd><mml:mtd><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd><mml:mtd><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd><mml:mtd><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mtable columnalign="center center center" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msup><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo></mml:mtd><mml:mtd><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>The observation equation is assumed to be available in either of the linear forms:
<list list-type="order">
<list-item><p><inline-formula id="ieqn-86"><mml:math id="mml-ieqn-86"><mml:mi>z</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-87"><mml:math id="mml-ieqn-87"><mml:msub><mml:mi>v</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x223C;</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>;</p></list-item>
<list-item><p><inline-formula id="ieqn-88"><mml:math id="mml-ieqn-88"><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mtable columnalign="center center" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mtable rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mtable rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:msub><mml:mi>v</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>v</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-89"><mml:math id="mml-ieqn-89"><mml:msub><mml:mi>v</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x223C;</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-90"><mml:math id="mml-ieqn-90"><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn></mml:math></inline-formula></p></list-item>
</list></p>
<p>The estimation accuracy of the states highly relies on the measurement quality and is essential to the identification performance of the unknown parameter. <xref ref-type="fig" rid="fig-7">Figs. 7</xref> and <xref ref-type="fig" rid="fig-8">8</xref> show the state estimates and the corresponding errors of <inline-formula id="ieqn-91"><mml:math id="mml-ieqn-91"><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-92"><mml:math id="mml-ieqn-92"><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>, respectively, for the VPO model, where the results are compared based on one and two measurements. In addition, the triangles in <xref ref-type="fig" rid="fig-7">Fig. 7</xref> denote the measurements. Identification of the nonlinearity parameter <inline-formula id="ieqn-93"><mml:math id="mml-ieqn-93"><mml:mi>&#x03BC;</mml:mi></mml:math></inline-formula> is shown in <xref ref-type="fig" rid="fig-9">Fig. 9</xref>. The performance based on two measurements outperforms that of one.</p>
<fig id="fig-7"><label>Figure 7</label><caption><title>Estimation of (a) the state <inline-formula id="ieqn-94"><mml:math id="mml-ieqn-94"><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> and (b) the corresponding errors based on one and two measurements, respectively</title></caption><graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_34308-fig-7.tif"/></fig><fig id="fig-8"><label>Figure 8</label><caption><title>Estimation of (a) the state <inline-formula id="ieqn-95"><mml:math id="mml-ieqn-95"><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> and (b) the corresponding errors based on one and two measurements, respectively</title></caption><graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_34308-fig-8.tif"/></fig><fig id="fig-9"><label>Figure 9</label><caption><title>Identification results for the nonlinearity parameter <inline-formula id="ieqn-96"><mml:math id="mml-ieqn-96"><mml:mi>&#x03BC;</mml:mi></mml:math></inline-formula> are based on one and two measurements, respectively</title></caption><graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_34308-fig-9.tif"/></fig>
</sec>
<sec id="s4_4"><label>4.4</label><title>Example 4: Scalar Gauss-Markov Process Involving Adaptation of Noise Covariance</title>
<p>The scalar Gauss-Markov process, as described by the differential equation
<disp-formula id="ueqn-10">
<mml:math id="mml-ueqn-10" display="block"><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03B2;</mml:mi><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>u</mml:mi><mml:mspace width="thinmathspace" /><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>u</mml:mi><mml:mo>&#x223C;</mml:mo><mml:mi>N</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>can be represented by the transfer function
<disp-formula id="ueqn-11">
<mml:math id="mml-ueqn-11" display="block"><mml:mfrac><mml:mi>x</mml:mi><mml:mi>u</mml:mi></mml:mfrac><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mi>s</mml:mi><mml:mo>+</mml:mo><mml:mi>&#x03B2;</mml:mi></mml:mrow></mml:mfrac></mml:math></disp-formula></p>
<p>The continuous-time equation can be discretized as
<disp-formula id="eqn-28"><label>(27)</label><mml:math id="mml-eqn-28" display="block"><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03B2;</mml:mi><mml:mi>&#x0394;</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mspace width="thinmathspace" /><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x223C;</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula>where the covariance
<disp-formula id="eqn-29"><label>(28)</label><mml:math id="mml-eqn-29" display="block"><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mi>q</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mi>&#x03B2;</mml:mi></mml:mrow></mml:mfrac><mml:mrow><mml:mo>(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn><mml:mi>&#x03B2;</mml:mi><mml:mi>&#x0394;</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>Initially linear, the process model becomes nonlinear when performing the state estimation for the scalar Gauss-Markov process with an unknown parameter <inline-formula id="ieqn-97"><mml:math id="mml-ieqn-97"><mml:mi>&#x03B2;</mml:mi></mml:math></inline-formula>. Notice that in this case, there are now two state variables involved:
<disp-formula id="eqn-30"><label>(29)</label><mml:math id="mml-eqn-30" display="block"><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mo>[</mml:mo><mml:mtable columnalign="center center" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mo>[</mml:mo><mml:mtable columnalign="center center" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mi>x</mml:mi></mml:mtd><mml:mtd><mml:mi>&#x03B2;</mml:mi></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup></mml:math></disp-formula></p>
<p>Since the state dynamic for this problem is given by
<disp-formula id="eqn-31"><label>(30)</label><mml:math id="mml-eqn-31" display="block"><mml:msub><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi>u</mml:mi><mml:mspace width="thinmathspace" /><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msub><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>u</mml:mi><mml:mo>&#x223C;</mml:mo><mml:mi>N</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>the process model can be represented as
<disp-formula id="eqn-32"><label>(31)</label><mml:math id="mml-eqn-32" display="block"><mml:mrow><mml:mo>[</mml:mo><mml:mtable rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>&#x02D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mtable rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mtable rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mn>1</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mi>u</mml:mi></mml:math></disp-formula></p>
<p>The problem now becomes a state estimation problem using the vector EKF. Since the two states are closely coupled, the state&#x2019;s estimation accuracy will influence the parameter identification performance. In this case, the noise strength is related to the parameter to be identified, so better modeling involving <inline-formula id="ieqn-98"><mml:math id="mml-ieqn-98"><mml:msub><mml:mrow><mml:mi mathvariant="bold">Q</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> adaptation results in improved estimation accuracy.</p>
<p>In this example, the linear measurement is again assumed to be available in continuous form
<disp-formula id="ueqn-12">
<mml:math id="mml-ueqn-12" display="block"><mml:mi>z</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mi>v</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>v</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x223C;</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mi>r</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula></p>
<p>The process noise covariance matrix in the discrete-time model can be written as
<disp-formula id="eqn-33"><label>(32)</label><mml:math id="mml-eqn-33" display="block"><mml:msub><mml:mrow><mml:mi mathvariant="bold">Q</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mtable columnalign="center center" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mi>q</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mrow><mml:mo>(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mi>&#x0394;</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p><xref ref-type="fig" rid="fig-10">Fig. 10</xref> shows the results of identifying parameter <inline-formula id="ieqn-99"><mml:math id="mml-ieqn-99"><mml:mi>&#x03B2;</mml:mi></mml:math></inline-formula> for the scalar Gauss-Markov process. In the numerical experiment, three values of <inline-formula id="ieqn-100"><mml:math id="mml-ieqn-100"><mml:mi>&#x03B2;</mml:mi></mml:math></inline-formula> (0.5, 1.0, and 1.5, respectively) were tested, and perfect results were obtained for all the cases. The EKF can identify the parameter <inline-formula id="ieqn-101"><mml:math id="mml-ieqn-101"><mml:mi>&#x03B2;</mml:mi></mml:math></inline-formula> very well if the adaptation of noise statistics is included and updated in the estimation process. On the other hand, if the noise adaptation procedure is not included, the estimation error, as indicated by the curve in green, clearly shows performance degradation.</p>
<fig id="fig-10"><label>Figure 10</label><caption><title>Identification of parameter <inline-formula id="ieqn-102"><mml:math id="mml-ieqn-102"><mml:mi>&#x03B2;</mml:mi></mml:math></inline-formula> for the scalar Gauss-Markov process</title></caption><graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_34308-fig-10.tif"/></fig>
</sec>
</sec>
<sec id="s5"><label>5</label><title>Conclusion</title>
<p>This paper presents an introductory critical exposition of the state estimation based on the Kalman filter and the extended Kalman filter algorithms, both qualitatively and quantitatively. The article conveys an excellent conceptual explanation of the topic with illustrative examples so that the readers can grasp the proper interpretation and realization of the KF and EKF algorithms before conducting more complex systems using advanced filtering methodologies. The material covered in this work delineates the theory behind linear and nonlinear estimation with supporting examples for the discussion of important issues with emphasis on convergence and modeling. The article can help better interpret and apply the topic and make a proper connection to probability, stochastic processes, and system theory.</p>
<p>System stability and convergence are the basic requirements for the system design, while the performance of filtering optimality requires subtle examination for verification. One non-convergence problem may arise due to inaccurate modeling of the estimated process. Although the best cure for non-convergence caused by unmodeled states is to correct the model, this is not always easy. Some critical issues related to the modeling and convergence of implementing the Kalman filter and extended Kalman filters are emphasized with supporting examples. Adding fictitious process noise to the system model assumed by the Kalman filter for convergence assurance is discussed. Details of dynamic modeling have been discussed, accompanied by selected examples for a clear illustration. Some issues related to linear and nonlinear measurements are involved. Parameter identification by state vector augmentation is also demonstrated. A detailed description with examples of problems is offered to gives readers a better understanding of this topic. This work provides a step-by-step illustration, explanation and verification. The lesson learned in this paper enables the readers to appropriately interpret the theory and algorithms, and precisely implement the computer codes that nicely match the estimation algorithms related to the mathematical equations. This is especially helpful for those readers with less experience or background in optimal estimation theory, as it provides a solid foundation for further study on the theory and applications of the topic.</p>
<p>This article elaborates on several important issues and highlights the checkpoints to ensure the algorithms are appropriately implemented. Future work may be extended to the design of position tracking and control for robots, the navigation processing for inertial navigation and the Global Positioning System, etc. Once the KF and EKF algorithms can be accurately and precisely implemented, further advanced designs dealing with highly nonlinear and sophisticated systems using advanced estimators such as the UKF and CKF, as well as robust filters become possible and reliable.</p>
</sec>
</body>
<back>
<ack>
<p>Thanks to Dr. Ta-Shun Cho of Asia University, Taiwan for his assistance in the course of this research.</p>
</ack>
<sec><title>Funding Statement</title>
<p>This work has been partially supported by the Ministry of Science and Technology, Taiwan (Grant Number MOST 110-2221-E-019-042).</p></sec>
<sec><title>Author Contributions</title>
<p>The author confirms contribution to the paper as follows: study conception and design: D.-J. Jwo; data collection: D.-J. Jwo; analysis and interpretation of results: D.-J. Jwo; draft manuscript preparation: D.-J. Jwo. The author reviewed the results and approved the final version of the manuscript.</p></sec>
<sec sec-type="data-availability"><title>Availability of Data and Materials</title>
<p>The data used in this paper can be requested from the author upon request.</p></sec>
<sec sec-type="COI-statement"><title>Conflicts of Interest</title>
<p>The author declares that they have no conflicts of interest to report regarding the present study.</p></sec>
<ref-list content-type="authoryear">
<title>References</title>
<ref id="ref-1"><label>[1]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>R. E.</given-names> <surname>Kalman</surname></string-name></person-group>, &#x201C;<article-title>A new approach to linear filtering and prediction problems</article-title>,&#x201D; <source>Transactions of the ASME&#x2013;Journal of Basic Engineering</source>, vol. <volume>82</volume>, no. <issue>1</issue>, pp. <fpage>35</fpage>&#x2013;<lpage>45</lpage>, <year>1960</year>.</mixed-citation></ref>
<ref id="ref-2"><label>[2]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>R. G.</given-names> <surname>Brown</surname></string-name> and <string-name><given-names>P. Y. C.</given-names> <surname>Hwang</surname></string-name></person-group>, <source>Introduction to Random Signals and Applied Kalman Filtering</source>. <publisher-loc>New York, NY, USA</publisher-loc>: <publisher-name>John Wiley &#x0026; Sons, Inc.</publisher-name>, pp. <fpage>214</fpage>&#x2013;<lpage>225</lpage>, <year>1997</year>.</mixed-citation></ref>
<ref id="ref-3"><label>[3]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>M. S.</given-names> <surname>Grewal</surname></string-name> and <string-name><given-names>A. P.</given-names> <surname>Andrews</surname></string-name></person-group>, <source>Kalman Filtering, Theory and Practice Using MATLAB</source>, <edition>2<sup>nd</sup> ed.</edition>, <publisher-loc>New York, NY, USA</publisher-loc>: <publisher-name>John Wiley &#x0026; Sons, Inc.</publisher-name>, pp. <fpage>114</fpage>&#x2013;<lpage>201</lpage>, <year>2001</year>.</mixed-citation></ref>
<ref id="ref-4"><label>[4]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Gelb</surname></string-name></person-group>, <source>Applied Optimal Estimation</source>. <publisher-loc>Cambridge, MA, USA</publisher-loc>: <publisher-name>M.I.T. Press</publisher-name>, pp. <fpage>102</fpage>&#x2013;<lpage>228</lpage>, <year>1974</year>.</mixed-citation></ref>
<ref id="ref-5"><label>[5]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>F. L.</given-names> <surname>Lewis</surname></string-name>, <string-name><given-names>L.</given-names> <surname>Xie</surname></string-name> and <string-name><given-names>D.</given-names> <surname>Popa</surname></string-name></person-group>, <source>Optimal and Robust Estimation, with an Introduction to Stochastic Control Theory</source>, <edition>2<sup>nd</sup> ed.</edition>, <publisher-loc>Boca Raton, FL, USA</publisher-loc>: <publisher-name>CRC Press</publisher-name>, pp. <fpage>3</fpage>&#x2013;<lpage>312</lpage>, <year>2008</year>.</mixed-citation></ref>
<ref id="ref-6"><label>[6]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>S. P.</given-names> <surname>Maybeck</surname></string-name></person-group>, <source>Stochastic Models, Estimation, and Control</source>, vol. <volume>2</volume>. <publisher-loc>New York, NY, USA</publisher-loc>: <publisher-name>Academic Press</publisher-name>, pp. <fpage>29</fpage>&#x2013;<lpage>67</lpage>, <year>1982</year>.</mixed-citation></ref>
<ref id="ref-7"><label>[7]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>Y.</given-names> <surname>Bar-Shalom</surname></string-name>, <string-name><given-names>X. R.</given-names> <surname>Li</surname></string-name> and <string-name><given-names>T.</given-names> <surname>Kirubarajan</surname></string-name></person-group>, <source>Estimation with Applications to Tracking and Navigation</source>. <publisher-loc>New York, NY, USA</publisher-loc>: <publisher-name>John Wiley &#x0026; Sons, Inc.</publisher-name>, pp. <fpage>491</fpage>&#x2013;<lpage>535</lpage>, <year>2001</year>.</mixed-citation></ref>
<ref id="ref-8"><label>[8]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>J. A.</given-names> <surname>Farrell</surname></string-name> and <string-name><given-names>M.</given-names> <surname>Barth</surname></string-name></person-group>, <source>The Global Positioning System &#x0026; Inertial Navigation</source>. <publisher-loc>New York, NY, USA</publisher-loc>: <publisher-name>McCraw-Hill</publisher-name>, pp. <fpage>141</fpage>&#x2013;<lpage>186</lpage>, <year>1999</year>.</mixed-citation></ref>
<ref id="ref-9"><label>[9]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Karthik</surname></string-name>, <string-name><given-names>R. S.</given-names> <surname>Bhadoria</surname></string-name>, <string-name><given-names>J. G.</given-names> <surname>Lee</surname></string-name>, <string-name><given-names>A. K.</given-names> <surname>Sivaraman</surname></string-name>, <string-name><given-names>S.</given-names> <surname>Samanta</surname></string-name> <etal>et al.,</etal></person-group> &#x201C;<article-title>Prognostic kalman filter based Bayesian learning model for data accuracy prediction</article-title>,&#x201D; <source>Computers, Materials &#x0026; Continua</source>, vol. <volume>72</volume>, no. <issue>1</issue>, pp. <fpage>243</fpage>&#x2013;<lpage>259</lpage>, <year>2022</year>.</mixed-citation></ref>
<ref id="ref-10"><label>[10]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Mustaqeem</surname></string-name> and <string-name><given-names>S.</given-names> <surname>Kwon</surname></string-name></person-group>, &#x201C;<article-title>A CNN-assisted enhanced audio signal processing for speech emotion recognition</article-title>,&#x201D; <source>Sensors</source>, vol. <volume>20</volume>, no. <issue>1</issue>, pp. <fpage>183</fpage>, <year>2020</year>.</mixed-citation></ref>
<ref id="ref-11"><label>[11]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Mustaqeem</surname>, <given-names>M.</given-names></string-name> <string-name><surname>Ishaq</surname> <given-names>S.</given-names></string-name> and <string-name><surname>Kwon</surname></string-name></person-group>, &#x201C;<article-title>Short-term energy forecasting framework using an ensemble deep learning approach</article-title>,&#x201D; <source>IEEE Access</source>, vol. <volume>9</volume>, no. <issue>1</issue>, pp. <fpage>94262</fpage>&#x2013;<lpage>94271</lpage>, <year>2021</year>.</mixed-citation></ref>
<ref id="ref-12"><label>[12]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>B.</given-names> <surname>Maji</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Swain</surname></string-name> and <string-name><surname>Mustaqeem</surname></string-name></person-group>, &#x201C;<article-title>Advanced fusion-based speech emotion recognition system using a dual-attention mechanism with Conv-Caps and Bi-GRU features</article-title>,&#x201D; <source>Electronics</source>, vol. <volume>11</volume>, no. <issue>9</issue>, pp. <fpage>1328</fpage>, <year>2022</year>.</mixed-citation></ref>
<ref id="ref-13"><label>[13]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Sund</surname></string-name>, <string-name><given-names>L. H.</given-names> <surname>Sendstad</surname></string-name> and <string-name><given-names>J. J. J.</given-names> <surname>Thijssen</surname></string-name></person-group>, &#x201C;<article-title>Kalman filter approach to real options with active learning</article-title>,&#x201D; <source>Computational Management Science</source>, vol. <volume>19</volume>, no. <issue>3</issue>, pp. <fpage>457</fpage>&#x2013;<lpage>490</lpage>, <year>2022</year>; <pub-id pub-id-type="pmid">37520892</pub-id></mixed-citation></ref>
<ref id="ref-14"><label>[14]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><given-names>G.</given-names> <surname>Welch</surname></string-name> and <string-name><given-names>G.</given-names> <surname>Bishop</surname></string-name></person-group>, &#x201C;<article-title>An introduction to the kalman filter</article-title>,&#x201D; <source>Technical Report TR 95-041</source>, <publisher-name>University of North Carolina, Department of Computer Science</publisher-name>, <publisher-loc>Chapel Hill, NC, USA</publisher-loc>, <year>2006</year>. [Online]. Available: <ext-link ext-link-type="uri" xlink:href="https://www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdf">https://www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdf</ext-link></mixed-citation></ref>
<ref id="ref-15"><label>[15]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>C. M.</given-names> <surname>Kwan</surname></string-name> and <string-name><given-names>F. L.</given-names> <surname>Lewis</surname></string-name></person-group>, &#x201C;<article-title>A note on kalman filtering</article-title>,&#x201D; <source>IEEE Transactions on Education</source>, vol. <volume>42</volume>, no. <issue>3</issue>, pp. <fpage>225</fpage>&#x2013;<lpage>228</lpage>, <year>1999</year>.</mixed-citation></ref>
<ref id="ref-16"><label>[16]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>K.</given-names> <surname>Wang</surname></string-name></person-group>, &#x201C;<article-title>Textbook design of kalman filter for undergraduates</article-title>,&#x201D; in <conf-name>Proc. of the Int. Conf. on Information, Business and Education Technology (ICIBET 2013)</conf-name>, <conf-loc>Beijing, China</conf-loc>, pp. <fpage>891</fpage>&#x2013;<lpage>894</lpage>, <year>2013</year>.</mixed-citation></ref>
<ref id="ref-17"><label>[17]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>Y.</given-names> <surname>Kim</surname></string-name> and <string-name><given-names>H.</given-names> <surname>Bang</surname></string-name></person-group>, &#x201C;<chapter-title>Introduction to Kalman filter and its applications</chapter-title>,&#x201D; in <source>Introduction and Implementations of the Kalman Filter</source>. <publisher-loc>London, UK</publisher-loc>: <publisher-name>IntechOpen</publisher-name>, pp. <fpage>1</fpage>&#x2013;<lpage>16</lpage>, <year>2018</year>. [Online]. Available: <ext-link ext-link-type="uri" xlink:href="https://cdn.intechopen.com/pdfs/63164.pdf">https://cdn.intechopen.com/pdfs/63164.pdf</ext-link></mixed-citation></ref>
<ref id="ref-18"><label>[18]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>M. B.</given-names> <surname>Rhudy</surname></string-name>, <string-name><given-names>R. A.</given-names> <surname>Salguero</surname></string-name> and <string-name><given-names>K.</given-names> <surname>Holappa</surname></string-name></person-group>, &#x201C;<article-title>A kalman filtering tutorial for undergraduate students</article-title>,&#x201D; <source>International Journal of Computer Science &#x0026; Engineering Survey (IJCSES)</source>, vol. <volume>8</volume>, no. <issue>1</issue>, pp. <fpage>1</fpage>&#x2013;<lpage>18</lpage>, <year>2017</year>.</mixed-citation></ref>
<ref id="ref-19"><label>[19]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Love</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Aburdene</surname></string-name> and <string-name><given-names>R. W.</given-names> <surname>Zarrouk</surname></string-name></person-group>, &#x201C;<article-title>Teaching kalman filters to undergraduate students</article-title>,&#x201D; in <conf-name>Proc. of the 2001 American Society for Engineering Education Annual Conf. &#x0026; Exposition</conf-name>, <conf-loc>Albuquerque, NM, USA</conf-loc>, pp. <fpage>6.950.1</fpage>&#x2013;<lpage>6.950.19</lpage>, <year>2001</year>.</mixed-citation></ref>
<ref id="ref-20"><label>[20]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>A. M. S.</given-names> <surname>Mahdy</surname></string-name></person-group>, &#x201C;<article-title>Numerical studies for solving fractional integro-differential equations</article-title>,&#x201D; <source>Journal of Ocean Engineering and Science</source>, vol. <volume>3</volume>, no. <issue>2</issue>, pp. <fpage>127</fpage>&#x2013;<lpage>132</lpage>, <year>2018</year>.</mixed-citation></ref>
<ref id="ref-21"><label>[21]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>A. M. S.</given-names> <surname>Mahdy</surname></string-name>, <string-name><given-names>Y. A. E.</given-names> <surname>Amer</surname></string-name>, <string-name><given-names>M. S.</given-names> <surname>Mohamed</surname></string-name> and <string-name><given-names>E.</given-names> <surname>Sobhy</surname></string-name></person-group>, &#x201C;<article-title>General fractional financial models of awareness with Caputo&#x2013;Fabrizio derivative</article-title>,&#x201D; <source>Advances in Mechanical Engineering</source>, vol. <volume>12</volume>, no. <issue>11</issue>, pp. <fpage>1</fpage>&#x2013;<lpage>9</lpage>, <year>2020</year>.</mixed-citation></ref>
<ref id="ref-22"><label>[22]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>A. M. S.</given-names> <surname>Mahdy</surname></string-name></person-group>, &#x201C;<article-title>Numerical solutions for solving model time-fractional Fokker-Planck equation</article-title>,&#x201D; <source>Numerical Methods for Partial Differential Equations</source>, vol. <volume>37</volume>, no. <issue>2</issue>, pp. <fpage>1120</fpage>&#x2013;<lpage>1135</lpage>, <year>2021</year>.</mixed-citation></ref>
<ref id="ref-23"><label>[23]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Chen</surname></string-name></person-group>, &#x201C;<article-title>The SLAM algorithm for multiple robots based on parameter estimation</article-title>,&#x201D; <source>Intelligent Automation &#x0026; Soft Computing</source>, vol. <volume>24</volume>, no. <issue>3</issue>, pp. <fpage>593</fpage>&#x2013;<lpage>602</lpage>, <year>2018</year>.</mixed-citation></ref>
<ref id="ref-24"><label>[24]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>A. A.</given-names> <surname>Afonin</surname></string-name>, <string-name><given-names>D. A.</given-names> <surname>Mikhaylin</surname></string-name>, <string-name><given-names>A. S.</given-names> <surname>Sulakov</surname></string-name> and <string-name><given-names>A. P.</given-names> <surname>Moskalev</surname></string-name></person-group>, &#x201C;<article-title>The adaptive kalman filter in aircraft control and navigation systems</article-title>,&#x201D; in <conf-name>Proc. of the 2nd Int. Conf. on Control Systems, Mathematical Modeling, Automation and Energy Efficiency (SUMMA)</conf-name>, <conf-loc>Lipetsk, Russia</conf-loc>, pp. <fpage>121</fpage>&#x2013;<lpage>124</lpage>, <year>2020</year>.</mixed-citation></ref>
<ref id="ref-25"><label>[25]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>Y.</given-names> <surname>Huang</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Bai</surname></string-name>, <string-name><given-names>Y.</given-names> <surname>Li</surname></string-name>, <string-name><given-names>Y.</given-names> <surname>Zhang</surname></string-name> and <string-name><given-names>J.</given-names> <surname>Chambers</surname></string-name></person-group>, &#x201C;<article-title>An improved variational adaptive kalman filter for cooperative localization</article-title>,&#x201D; <source>IEEE Sensors Journal</source>, vol. <volume>21</volume>, no. <issue>9</issue>, pp. <fpage>10775</fpage>&#x2013;<lpage>10786</lpage>, <year>2021</year>.</mixed-citation></ref>
<ref id="ref-26"><label>[26]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>N.</given-names> <surname>Arulmozhi</surname></string-name> and <string-name><given-names>T.</given-names> <surname>Aruldoss Albert Victorie</surname></string-name></person-group>, &#x201C;<article-title>Kalman filter and H<sub>&#x221E;</sub> filter based linear quadratic regulator for furuta pendulum</article-title>,&#x201D; <source>Computer Systems Science and Engineering</source>, vol. <volume>43</volume>, no. <issue>2</issue>, pp. <fpage>605</fpage>&#x2013;<lpage>623</lpage>, <year>2022</year>.</mixed-citation></ref>
</ref-list>
</back></article>

