<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Built Environ.</journal-id>
<journal-title>Frontiers in Built Environment</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Built Environ.</abbrev-journal-title>
<issn pub-type="epub">2297-3362</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1477804</article-id>
<article-id pub-id-type="doi">10.3389/fbuil.2024.1477804</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Built Environment</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Adaptive compensation for multi-axial real-time hybrid simulation via nonlinear parameter estimation</article-title>
<alt-title alt-title-type="left-running-head">Ruiz and Song</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/fbuil.2024.1477804">10.3389/fbuil.2024.1477804</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Ruiz</surname>
<given-names>Santiago</given-names>
</name>
<uri xlink:href="https://loop.frontiersin.org/people/2821116/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/methodology/"/>
<role content-type="https://credit.niso.org/contributor-roles/data-curation/"/>
<role content-type="https://credit.niso.org/contributor-roles/formal-analysis/"/>
<role content-type="https://credit.niso.org/contributor-roles/investigation/"/>
<role content-type="https://credit.niso.org/contributor-roles/software/"/>
<role content-type="https://credit.niso.org/contributor-roles/visualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-original-draft/"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Song</surname>
<given-names>Wei</given-names>
</name>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/262523/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/methodology/"/>
<role content-type="https://credit.niso.org/contributor-roles/conceptualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/funding-acquisition/"/>
<role content-type="https://credit.niso.org/contributor-roles/project-administration/"/>
<role content-type="https://credit.niso.org/contributor-roles/resources/"/>
<role content-type="https://credit.niso.org/contributor-roles/supervision/"/>
<role content-type="https://credit.niso.org/contributor-roles/validation/"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
</contrib-group>
<aff>
<institution>Department of Civil, Construction and Environmental Engineering</institution>, <institution>The University of Alabama</institution>, <addr-line>Tuscaloosa</addr-line>, <addr-line>AL</addr-line>, <country>United States</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1410626/overview">Cheng Fang</ext-link>, Tongji University, China</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/893547/overview">James Michael Ricles</ext-link>, Lehigh University, United States</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2814523/overview">Baiping Dong</ext-link>, Tongji University, China</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Wei Song, <email>wsong@eng.ua.edu</email>
</corresp>
</author-notes>
<pub-date pub-type="epub">
<day>17</day>
<month>12</month>
<year>2024</year>
</pub-date>
<pub-date pub-type="collection">
<year>2024</year>
</pub-date>
<volume>10</volume>
<elocation-id>1477804</elocation-id>
<history>
<date date-type="received">
<day>08</day>
<month>08</month>
<year>2024</year>
</date>
<date date-type="accepted">
<day>26</day>
<month>11</month>
<year>2024</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2024 Ruiz and Song.</copyright-statement>
<copyright-year>2024</copyright-year>
<copyright-holder>Ruiz and Song</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p>
</license>
</permissions>
<abstract>
<p>For Real-time hybrid simulation (RTHS) to be stable and accurate, it is essential to address the time desynchronization issue between the numerical and physical substructures. Desynchronization is primarily caused by time delays, inherent dynamics of the control plant, system uncertainties, and noises. While existing adaptive compensators have shown effective tracking performance in single-input single-output (SISO) RTHS, their effectiveness in multi-input multi-output (MIMO) RTHS has not been fully demonstrated. MIMO-RTHS presents additional challenges due to its larger solution space, and significant dynamic coupling between actuators. To address these challenges, this study introduces an adaptive compensation framework for MIMO-RTHS. The proposed framework utilizes a control law based on the inverse dynamics of the control plant, incorporating real-time adaptive parameter updates through Extended Kalman Filter (EKF) and Unscented Kalman Filter (UKF) methods. Both the transfer function (TF) and discrete-time state-space (SS) models of the plant are employed in distinct parameter estimation cases. The performance of the proposed compensation is validated through a multi-axial RTHS (maRTHS) benchmark problem. Extensive simulations on the maRTHS incorporating various earthquake inputs, sensor noise, and model uncertainties, demonstrated an excellent tracking performance and strong robustness across four parameter estimation cases (EKF-TF, UKF-TF, EKF-SS, and UKF-SS). The use of UKF with SS model (UKF-SS) achieved superior performance, effectively managing nonlinearities and noise without requiring low-pass filtering.</p>
</abstract>
<kwd-group>
<kwd>real-time hybrid simulation</kwd>
<kwd>MIMO control</kwd>
<kwd>adaptive compensation</kwd>
<kwd>actuator tracking</kwd>
<kwd>uncertainty</kwd>
<kwd>hydraulic actuator</kwd>
<kwd>extended Kalman filter</kwd>
<kwd>unscented Kalman filter</kwd>
</kwd-group>
<custom-meta-wrap>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Earthquake Engineering</meta-value>
</custom-meta>
</custom-meta-wrap>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>Real-time hybrid simulation (RTHS) is an experimental technique to perform dynamic evaluation of complex structural systems (<xref ref-type="bibr" rid="B20">Nakashima et al., 1992</xref>). This technique divides the emulated structure into two parts: the numerical substructure (NS), which is simulated by a computer program, and the physical substructure (PS), which is tested in a laboratory. The interface between the NS and the PS is imposed by a transfer system (e.g., servo hydraulic actuator) in real-time. The transfer system along with the PS is often refer to as the control plant. While RTHS offers a cost-effective and spatially economical alternative to traditional structural tests (<xref ref-type="bibr" rid="B10">Gomez et al., 2014</xref>), it faces a critical issue of desynchronization at the NS-PS interface. This issue can cause significant experimental errors or even failure, impacting the accuracy and stability of RTHS (<xref ref-type="bibr" rid="B7">Darby et al., 1999</xref>; <xref ref-type="bibr" rid="B13">Horiuchi et al., 1999</xref>; <xref ref-type="bibr" rid="B38">Zhao et al., 2003</xref>). A primary cause of desynchronization is &#x201c;actuator time delay&#x201d; or simply &#x201c;time delay&#x201d;, which originates from the closed-loop nature of RTHS, inherent dynamics of the control plant, and data acquisition limitations (<xref ref-type="bibr" rid="B11">Hayati and Song, 2017</xref>; <xref ref-type="bibr" rid="B12">Hayati and Song, 2018</xref>). This issue is further exacerbated by system modeling uncertainties (<xref ref-type="bibr" rid="B27">Silva et al., 2020</xref>), and process and measurement noises (<xref ref-type="bibr" rid="B30">Song and Dyke, 2013</xref>; <xref ref-type="bibr" rid="B29">Song, 2018</xref>; <xref ref-type="bibr" rid="B33">Song et al., 2020</xref>).</p>
<p>To mitigate the desynchronization issue, numerous compensation strategies have been developed. Traditional strategies assume constant time delay and rely on pre-estimations of system parameters. These strategies include polynomial extrapolation (<xref ref-type="bibr" rid="B13">Horiuchi et al., 1999</xref>; <xref ref-type="bibr" rid="B21">Nakashima and Masaoka, 1999</xref>; <xref ref-type="bibr" rid="B8">Darby et al., 2002</xref>), phase lead compensation (<xref ref-type="bibr" rid="B38">Zhao et al., 2003</xref>; <xref ref-type="bibr" rid="B16">Jung et al., 2007</xref>), and inverse compensation (<xref ref-type="bibr" rid="B4">Chen et al., 2009</xref>; <xref ref-type="bibr" rid="B3">Chen and Ricles, 2009</xref>). However, in RTHS, time delays are not constant due to frequency-dependent uncertainties in actuator dynamics and specimen characteristics (<xref ref-type="bibr" rid="B9">Dyke et al., 1995</xref>; <xref ref-type="bibr" rid="B8">Darby et al., 2002</xref>; <xref ref-type="bibr" rid="B11">Hayati and Song, 2017</xref>; <xref ref-type="bibr" rid="B12">Hayati and Song, 2018</xref>). Consequently, traditional compensation strategies fall short when dealing with significant system uncertainties (<xref ref-type="bibr" rid="B27">Silva et al., 2020</xref>; <xref ref-type="bibr" rid="B6">Condori Uribe et al., 2023</xref>). Recently, adaptive compensation strategies have gained considerable attention due to their ability to dynamically adjust their parameters in real-time, responding to changes and uncertainties in the system (<xref ref-type="bibr" rid="B2">Chae et al., 2013</xref>; <xref ref-type="bibr" rid="B5">Chen et al., 2015</xref>; <xref ref-type="bibr" rid="B24">Ouyang et al., 2019</xref>).</p>
<p>Parameter estimation method is a popular and effective adaptive control approach, and it has already been introduced into RTHS compensation domain. <xref ref-type="bibr" rid="B2">Chae et al. (2013)</xref> developed the adaptive time series (ATS) compensation, which updates the coefficients of a transfer system using the least squares (LS) method for single-input single-output (SISO) RTHS. <xref ref-type="bibr" rid="B25">Palacio-Betancur and Gutierrez Soto (2019)</xref> extended this method by implementing recursive least squares (RLS) for parameter estimation in SISO-RTHS. Further studies by <xref ref-type="bibr" rid="B37">Wang et al. (2020)</xref> and <xref ref-type="bibr" rid="B22">Ning et al. (2022)</xref> explored adaptive control schemes for SISO-RTHS based on discrete system models with time-varying coefficients using the LS method, while <xref ref-type="bibr" rid="B23">Ning et al. (2020)</xref> implemented Kalman filter (KF) as the parameter estimator. To enhance the robustness of adaptive control in SISO-RTHS, nonlinear parameter estimators, such as the Extended Kalman Filter (EKF) and Unscented Kalman Filter (UKF) have been employed. The EKF linearizes the system around the current estimate to handle nonlinearities, while the UKF uses a deterministic sampling approach to capture the mean and covariance more accurately (<xref ref-type="bibr" rid="B35">Wan and Van Der Merwe, 2000</xref>). The computational efficiency, ability to provide timely updates, and robustness against nonlinearities and noises of EKF and UKF, make these estimators suitable for real-time nonlinear model updating (<xref ref-type="bibr" rid="B30">Song and Dyke, 2013</xref>; <xref ref-type="bibr" rid="B31">Song and Dyke, 2014</xref>). <xref ref-type="bibr" rid="B34">Strano and Terzo (2016)</xref> developed an adaptive compensation scheme based on EKF, to continuously adjust system parameters, enhancing the accuracy and stability of hydraulic actuator control in RTHS. <xref ref-type="bibr" rid="B14">Huang et al. (2023)</xref> and <xref ref-type="bibr" rid="B36">Wang et al. (2024)</xref> investigated adaptive compensation with UKF, exhibiting good robustness.</p>
<p>Despite the demonstrated effectiveness of adaptive control using nonlinear parameter estimation methods in SISO-RTHS, its application to multi-input multi-output (MIMO) RTHS remains unverified. The transition from SISO- to MIMO-RTHS enables the simulation of more realistic loading scenarios and complex structural responses; however, it introduces unique challenges. In MIMO-RTHS, control actions applied to one actuator can affect responses in other actuators due to interdependencies across the MIMO control plant, creating cross-coupling effects that prevent the direct application of existing SISO strategies. Furthermore, the development of MIMO-RTHS involves a higher level of complexities than the SISO counterparts, including a larger and more intricate solution space, complex actuator kinematics, and increased computational demand (<xref ref-type="bibr" rid="B18">Mercan et al., 2009</xref>; <xref ref-type="bibr" rid="B6">Condori Uribe et al., 2023</xref>; <xref ref-type="bibr" rid="B19">Najafi et al., 2023</xref>). To address these challenges and achieve effective compensation, this study presents a robust adaptive compensation strategy for MIMO-RTHS, validated through a multi-axial RTHS (maRTHS) benchmark problem (<xref ref-type="bibr" rid="B6">Condori Uribe et al., 2023</xref>). The contributions of this work are twofold: (<italic>i</italic>) the development of a comprehensive adaptive compensation framework based on nonlinear parameter estimations (EKF and UKF), which provides a systematic approach for MIMO-RTHS; (<italic>ii</italic>) the system formulation for parameter estimation, which considers the control plant in two commonly-adopted dynamic system models, namely the transfer function (TF) and the discrete-time state-space (SS) models, resulting in four distinct parameter estimation cases: EKF-TF, UKF-TF, EKF-SS, and UKF-SS. The proposed framework allows for implementation flexibility and performance comparison among the different estimation techniques and system formulations. Through a comparative study using the maRTHS benchmark problem (<xref ref-type="bibr" rid="B6">Condori Uribe et al., 2023</xref>), it is shown that the proposed compensation framework can account for the interactions and dependencies between multiple inputs and outputs, effectively managing the dynamic coupling between actuators during MIMO-RTHS.</p>
<p>The remainder of this paper is organized as follows. <xref ref-type="sec" rid="s2">Section 2</xref> presents the proposed adaptive compensation methodology. <xref ref-type="sec" rid="s3">Section 3</xref> details the implementation and results of the virtual maRTHS. Finally, <xref ref-type="sec" rid="s4">Section 4</xref> summarizes the main findings and conclusions of this research.</p>
</sec>
<sec sec-type="methods" id="s2">
<title>2 Methodology</title>
<p>In this section, the proposed adaptive compensation framework for MIMO-RTHS is presented, to mitigate the desynchronization between the NS and PS, such that the output of the control plant tracks the &#x201c;<italic>desired</italic>&#x201d; (or &#x201c;<italic>target</italic>&#x201d;) signals. This compensator employs a control law based on the inverse dynamics of the control plant, which aims to cancel the plant dynamics. Thus, the control plant model is a key aspect for the formulation of the presented methodology. This work explores two distinct models of the control plant: (a) a transfer function model; (b) a discrete-time state-space model. Both models are utilized for parameter estimation in distinct cases. However, only the transfer function model is used during the command generation (control law).</p>
<sec id="s2-1">
<title>2.1 Control plant</title>
<sec id="s2-1-1">
<title>2.1.1 Transfer function model</title>
<p>The control plant that comprises the PS in a MIMO problem can be generally represented by a matrix of transfer functions (TFs) as,<disp-formula id="e1">
<mml:math id="m1">
<mml:mrow>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mn>11</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<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:msub>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x2026;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>where <inline-formula id="inf1">
<mml:math id="m2">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> denotes the Laplace variable, and <inline-formula id="inf2">
<mml:math id="m3">
<mml:mrow>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the <inline-formula id="inf3">
<mml:math id="m4">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>-th transfer function entry for the different input (<inline-formula id="inf4">
<mml:math id="m5">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>)-output (<inline-formula id="inf5">
<mml:math id="m6">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>) pairs of <inline-formula id="inf6">
<mml:math id="m7">
<mml:mrow>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Each transfer function <inline-formula id="inf7">
<mml:math id="m8">
<mml:mrow>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is a fraction with a numerator polynomial <inline-formula id="inf8">
<mml:math id="m9">
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and a denominator polynomial <inline-formula id="inf9">
<mml:math id="m10">
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, expressed in factored form as,<disp-formula id="e2">
<mml:math id="m11">
<mml:mrow>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2026;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2026;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>where <inline-formula id="inf10">
<mml:math id="m12">
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf11">
<mml:math id="m13">
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are scaling coefficients, <inline-formula id="inf12">
<mml:math id="m14">
<mml:mrow>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (for <inline-formula id="inf13">
<mml:math id="m15">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>) and <inline-formula id="inf14">
<mml:math id="m16">
<mml:mrow>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mtext>for&#x2009;</mml:mtext>
<mml:mi>l</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> are respectively the zeros and poles of the transfer function, which generally can be identified through a system identification process. Note that, to ensure that the system is physically realizable, the transfer function <inline-formula id="inf15">
<mml:math id="m17">
<mml:mrow>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> must be proper, i.e., the order of the numerator polynomial must be less than or equal to the order of the denominator polynomial (<inline-formula id="inf16">
<mml:math id="m18">
<mml:mrow>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>).</p>
<p>In this work, the zeros and poles from <xref ref-type="disp-formula" rid="e2">Equation 2</xref> are expressed as a parameter vector, <inline-formula id="inf17">
<mml:math id="m19">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. According to the benchmark problem definition (<xref ref-type="bibr" rid="B6">Condori Uribe et al., 2023</xref>), uncertainties, represented as <inline-formula id="inf18">
<mml:math id="m20">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
<bold>,</bold> are introduced to <inline-formula id="inf19">
<mml:math id="m21">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> due to model imprecisions in the control plant. These uncertainties effectively modify the transfer function matrix in <xref ref-type="disp-formula" rid="e1">Equation 1</xref> as <inline-formula id="inf20">
<mml:math id="m22">
<mml:mrow>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="" close="|" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mo>&#x394;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</sec>
<sec id="s2-1-2">
<title>2.1.2 Discrete-time state-space model</title>
<p>The identified transfer function of the plant from <xref ref-type="disp-formula" rid="e1">Equation 1</xref> can be used to obtain a state-space (SS) realization in discrete time as,<disp-formula id="e3">
<mml:math id="m23">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>
<disp-formula id="e4">
<mml:math id="m24">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold">D</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>where <inline-formula id="inf21">
<mml:math id="m25">
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf22">
<mml:math id="m26">
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> are the state-space matrices derived in terms of the plant parameters <inline-formula id="inf23">
<mml:math id="m27">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>; <inline-formula id="inf24">
<mml:math id="m28">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the state vector at time step <inline-formula id="inf25">
<mml:math id="m29">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, determined by the chosen realization; <inline-formula id="inf26">
<mml:math id="m30">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the system input, i.e., the command signal sent to the plant; and <inline-formula id="inf27">
<mml:math id="m31">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the plant output. Here, <inline-formula id="inf28">
<mml:math id="m32">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> follows the same definition from <xref ref-type="disp-formula" rid="e2">Equation 2</xref>, along with the associated uncertainties, <inline-formula id="inf29">
<mml:math id="m33">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</sec>
</sec>
<sec id="s2-2">
<title>2.2 Adaptive compensation framework</title>
<p>While adaptive control schemes have been developed for SISO-RTHS (e.g., <xref ref-type="bibr" rid="B34">Strano and Terzo (2016)</xref>, <xref ref-type="bibr" rid="B14">Huang et al. (2023)</xref>), they have yet to be applied in MIMO-RTHS. In this work, the proposed adaptive compensation framework is realized for coupled MIMO systems, such as those presented in <xref ref-type="disp-formula" rid="e1">Equations 1</xref>&#x2013;<xref ref-type="disp-formula" rid="e4">4</xref>, accounting for system uncertainties (<inline-formula id="inf30">
<mml:math id="m34">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>) and capturing cross-coupling effects between actuators. A typical maRTHS scheme incorporating the proposed adaptive compensation framework is shown in <xref ref-type="fig" rid="F1">Figure 1</xref>. The input signal to the system (i.e., external force), is denoted by <inline-formula id="inf31">
<mml:math id="m35">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>; the restoring force vector from the experimental substructure is denoted as <inline-formula id="inf32">
<mml:math id="m36">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>; the desired and measured signal vectors are <inline-formula id="inf33">
<mml:math id="m37">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf34">
<mml:math id="m38">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, respectively; <inline-formula id="inf35">
<mml:math id="m39">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the command signal vector; and the control plant is represented in Laplace domain as <inline-formula id="inf36">
<mml:math id="m40">
<mml:mrow>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="" close="|" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mo>&#x394;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> [as shown in <xref ref-type="sec" rid="s2-1">Section 2.1</xref>]. Hereafter, the control plant is simply denoted as <inline-formula id="inf37">
<mml:math id="m41">
<mml:mrow>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>maRTHS scheme and proposed adaptive compensator.</p>
</caption>
<graphic xlink:href="fbuil-10-1477804-g001.tif"/>
</fig>
<p>The collection of blocks (I), (II), and (III) in <xref ref-type="fig" rid="F1">Figure 1</xref> generates the control law, which is realized by utilizing the inverse dynamics of the control plant derived from the transfer function in <xref ref-type="disp-formula" rid="e1">Equation 1</xref>. The control law incorporates adaptive parameters that are estimated by block (IV) at each time step. The parameter estimation process is described in <xref ref-type="sec" rid="s2-3">Section 2.3</xref>. The remainder of this section explains the control generation process.</p>
<p>The transfer function matrices <inline-formula id="inf38">
<mml:math id="m42">
<mml:mrow>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf39">
<mml:math id="m43">
<mml:mrow>
<mml:mi mathvariant="bold">G</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> relate the desired signal <inline-formula id="inf40">
<mml:math id="m44">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to the command <inline-formula id="inf41">
<mml:math id="m45">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and the measured signal <inline-formula id="inf42">
<mml:math id="m46">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> as follows,<disp-formula id="e5">
<mml:math id="m47">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">U</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>
<disp-formula id="e6">
<mml:math id="m48">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">U</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">G</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>where <inline-formula id="inf43">
<mml:math id="m49">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf44">
<mml:math id="m50">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf45">
<mml:math id="m51">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">U</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denote the signals <inline-formula id="inf46">
<mml:math id="m52">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf47">
<mml:math id="m53">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf48">
<mml:math id="m54">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> in Laplace domain, respectively. From <xref ref-type="disp-formula" rid="e5">Equation 5</xref> and <xref ref-type="disp-formula" rid="e6">Equation 6</xref>, it can be seen that the plant dynamics are cancelled when <inline-formula id="inf49">
<mml:math id="m55">
<mml:mrow>
<mml:mi mathvariant="bold">G</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, leading to the measured signal matching the desired signal <inline-formula id="inf50">
<mml:math id="m56">
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>. However, a direct inverse of <inline-formula id="inf51">
<mml:math id="m57">
<mml:mrow>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> results in improper transfer functions for <inline-formula id="inf52">
<mml:math id="m58">
<mml:mrow>
<mml:mi mathvariant="bold">G</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> (<xref ref-type="bibr" rid="B1">Carrion et al., 2009</xref>; <xref ref-type="bibr" rid="B26">Phillips et al., 2014</xref>). To compute this inverse effectively, the proposed compensator makes use of the time derivatives of the desired signal. First, a common denominator polynomial of <inline-formula id="inf53">
<mml:math id="m59">
<mml:mrow>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is found and denoted as <inline-formula id="inf54">
<mml:math id="m60">
<mml:mrow>
<mml:mo>&#x2206;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. The polynomial <inline-formula id="inf55">
<mml:math id="m61">
<mml:mrow>
<mml:mo>&#x2206;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> incorporates poles and zeros from each actuator (2 actuators in this benchmark problem&#x2013;see <xref ref-type="sec" rid="s3-1">Section 3.1</xref>), capturing the coupling dynamics in the MIMO system. Then, by introducing <inline-formula id="inf56">
<mml:math id="m62">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf57">
<mml:math id="m63">
<mml:mrow>
<mml:mi mathvariant="bold">G</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <xref ref-type="disp-formula" rid="e5">Equation 5</xref> can be rewritten as,<disp-formula id="e7">
<mml:math id="m64">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">G</mml:mi>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">U</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
<mml:mover accent="true">
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">U</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>where <inline-formula id="inf58">
<mml:math id="m65">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x394;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and thanks to <inline-formula id="inf59">
<mml:math id="m66">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, the <inline-formula id="inf60">
<mml:math id="m67">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>-th entry of <inline-formula id="inf61">
<mml:math id="m68">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf62">
<mml:math id="m69">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>H</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, is a polynomial rather than a fraction and its inverse can be properly realized. It should be noted that the output in <xref ref-type="disp-formula" rid="e7">Equation 7</xref> is now considered as <inline-formula id="inf63">
<mml:math id="m70">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, under the assumption that the desired and measured signals match (<inline-formula id="inf64">
<mml:math id="m71">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>). Further manipulation of <xref ref-type="disp-formula" rid="e7">Equation 7</xref> yields the command signal vector <inline-formula id="inf65">
<mml:math id="m72">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">U</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to the plant, expressed as,<disp-formula id="e8">
<mml:math id="m73">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">U</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">R</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="" close="|" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">R</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="" close="|" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3a8;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>where <inline-formula id="inf66">
<mml:math id="m74">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">R</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="" close="|" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mover accent="true">
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is a matrix of transfer functions that can be properly realized. The term <inline-formula id="inf67">
<mml:math id="m75">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is realized in the time domain by computing the function <inline-formula id="inf68">
<mml:math id="m76">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3c8;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">g</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b3;</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, shown as the block (II) in <xref ref-type="fig" rid="F1">Figure 1</xref>, where <inline-formula id="inf69">
<mml:math id="m77">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b3;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> denotes the collection of the time derivatives of <inline-formula id="inf70">
<mml:math id="m78">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> [see block (I)]. The number of required time derivatives is determined by the order of the polynomial <inline-formula id="inf71">
<mml:math id="m79">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. <inline-formula id="inf72">
<mml:math id="m80">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denotes the estimated plant parameters at time step <inline-formula id="inf73">
<mml:math id="m81">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf74">
<mml:math id="m82">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3a8;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denotes the Laplace transform of the signal <inline-formula id="inf75">
<mml:math id="m83">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3c8;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>The presented approach addresses the issue of improper transfer functions in <inline-formula id="inf76">
<mml:math id="m84">
<mml:mrow>
<mml:mi mathvariant="bold">G</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and facilitates the command generation. The following section describes the parameter estimation process for the updating of the plant poles and zeros (<inline-formula id="inf77">
<mml:math id="m85">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>) used in the control law of <xref ref-type="disp-formula" rid="e8">Equation 8</xref>.</p>
</sec>
<sec id="s2-3">
<title>2.3 Nonlinear parameter estimation</title>
<p>The physical domain of RTHS is subject to disturbances such as imprecisions in experimental setup, unmodeled process and dynamics (e.g., friction), and process and measurement noises, which introduce uncertainties to the plant (<inline-formula id="inf78">
<mml:math id="m86">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>) during RTHS, as indicated in <xref ref-type="sec" rid="s2-1">Section 2.1</xref>. To address the desynchronization issues caused by these uncertainties, this work employs online parameter estimation to update the plant parameters in real-time during the command generation. As observed from the two control plant formulations from <xref ref-type="disp-formula" rid="e1">Equations 1</xref>, <xref ref-type="disp-formula" rid="e2">2</xref> (for the TF model) and <xref ref-type="disp-formula" rid="e3">Equations 3</xref>, <xref ref-type="disp-formula" rid="e4">4</xref> (for the discrete-time SS model), the system formulations are nonlinear with respect to <inline-formula id="inf79">
<mml:math id="m87">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. Therefore, nonlinear estimators, EKF and UKF, are employed to estimate <inline-formula id="inf80">
<mml:math id="m88">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> with the two introduced control plant models (see <xref ref-type="sec" rid="s2-1">Section 2.1</xref>).</p>
<p>Both EKF and UKF are formulated for a general discrete-time system model expressed as,<disp-formula id="e9">
<mml:math id="m89">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>e</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>t</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>:</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
</mml:mrow>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">&#x3bc;</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">w</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>
<disp-formula id="e10">
<mml:math id="m90">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>b</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>v</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>m</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>l</mml:mi>
<mml:mo>:</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold">y</mml:mi>
</mml:mrow>
<mml:mi mathvariant="normal">k</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">h</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">&#x3bc;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(10)</label>
</disp-formula>where <inline-formula id="inf81">
<mml:math id="m91">
<mml:mrow>
<mml:mi mathvariant="bold">f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">&#x3bc;</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the process function; <inline-formula id="inf82">
<mml:math id="m92">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the state vector; <inline-formula id="inf83">
<mml:math id="m93">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3bc;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the system input vector; <inline-formula id="inf84">
<mml:math id="m94">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">w</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is a white noise with zero mean and covariance matrix <bold>Q</bold>; <inline-formula id="inf85">
<mml:math id="m95">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the system output vector; <inline-formula id="inf86">
<mml:math id="m96">
<mml:mrow>
<mml:mi mathvariant="bold">h</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">&#x3bc;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the observation function; and <inline-formula id="inf87">
<mml:math id="m97">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is a white noise with zero mean and covariance matrix <bold>R</bold>. It should be noted from <xref ref-type="disp-formula" rid="e9">Equations 9</xref>, <xref ref-type="disp-formula" rid="e10">10</xref>, that both process and measurement noises are considered as additive in this work.</p>
<p>Depending on the plant model employed for the application of EKF or UKF, the corresponding estimation system models are explained below.<list list-type="simple">
<list-item>
<p>a) Transfer function model</p>
</list-item>
</list>
</p>
<p>For the control plant in transfer function (TF) form, the state vector and process function at time step <inline-formula id="inf88">
<mml:math id="m98">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> in <xref ref-type="disp-formula" rid="e9">Equations 9</xref>, <xref ref-type="disp-formula" rid="e10">10</xref> are defined as the plant parameters at that time step, resulting in the following state transition function,<disp-formula id="e11">
<mml:math id="m99">
<mml:mrow>
<mml:munder>
<mml:munder>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo stretchy="true">&#x23df;</mml:mo>
</mml:munder>
<mml:msub>
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:munder>
<mml:mo>&#x3d;</mml:mo>
<mml:munder>
<mml:munder>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="true">&#x23df;</mml:mo>
</mml:munder>
<mml:mrow>
<mml:mi mathvariant="bold">f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">&#x3bc;</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:munder>
<mml:mo>&#x2b;</mml:mo>
<mml:munder>
<mml:munder>
<mml:msubsup>
<mml:mi mathvariant="bold">w</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mtext>TF</mml:mtext>
</mml:msubsup>
<mml:mo stretchy="true">&#x23df;</mml:mo>
</mml:munder>
<mml:msub>
<mml:mi mathvariant="bold">w</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:munder>
</mml:mrow>
</mml:math>
<label>(11)</label>
</disp-formula>
</p>
<p>The observation function is set as the command signal <inline-formula id="inf89">
<mml:math id="m100">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to the control plant. Therefore, <xref ref-type="disp-formula" rid="e10">Equation 10</xref> becomes,<disp-formula id="e12">
<mml:math id="m101">
<mml:mrow>
<mml:munder>
<mml:munder>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="true">&#x23df;</mml:mo>
</mml:munder>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:munder>
<mml:mo>&#x3d;</mml:mo>
<mml:munder>
<mml:munder>
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b3;</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="true">&#x23df;</mml:mo>
</mml:munder>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold">h</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">&#x3bc;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:munder>
<mml:mo>&#x2b;</mml:mo>
<mml:munder>
<mml:munder>
<mml:msubsup>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mi>k</mml:mi>
<mml:mtext>TF</mml:mtext>
</mml:msubsup>
<mml:mo stretchy="true">&#x23df;</mml:mo>
</mml:munder>
<mml:msub>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:munder>
</mml:mrow>
</mml:math>
<label>(12)</label>
</disp-formula>
</p>
<p>In this formulation, the nonlinearity arises from <xref ref-type="disp-formula" rid="e12">Equation 12</xref>, where the computation of the system output vector <inline-formula id="inf90">
<mml:math id="m102">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (<inline-formula id="inf91">
<mml:math id="m103">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> at the <inline-formula id="inf92">
<mml:math id="m104">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>-th time step) involves the polynomial expansion of the plant poles and zeros, as described in <xref ref-type="sec" rid="s2-2">Section 2.2</xref> (<xref ref-type="disp-formula" rid="e8">Equation 8</xref>). Note that <inline-formula id="inf93">
<mml:math id="m105">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denotes the observation function for <inline-formula id="inf94">
<mml:math id="m106">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf95">
<mml:math id="m107">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">w</mml:mi>
<mml:mi>k</mml:mi>
<mml:mtext>TF</mml:mtext>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf96">
<mml:math id="m108">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mi>k</mml:mi>
<mml:mtext>TF</mml:mtext>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> are the additive noise vectors for the state vector (i.e., parameter <inline-formula id="inf97">
<mml:math id="m109">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>) and observation vector (i.e., command signal <inline-formula id="inf98">
<mml:math id="m110">
<mml:mrow>
<mml:mfenced open="" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>, respectively. Additionally, unlike in <xref ref-type="sec" rid="s2-2">Section 2.2</xref> where <inline-formula id="inf99">
<mml:math id="m111">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is used to calculate <inline-formula id="inf100">
<mml:math id="m112">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the parameter estimation step utilizes the measured signal <inline-formula id="inf101">
<mml:math id="m113">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and its respective time derivatives <inline-formula id="inf102">
<mml:math id="m114">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b3;</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> [<inline-formula id="inf103">
<mml:math id="m115">
<mml:mrow>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="normal">e</mml:mi>
<mml:mo>.</mml:mo>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>; <inline-formula id="inf104">
<mml:math id="m116">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b3;</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>].<list list-type="simple">
<list-item>
<p>b) Discrete-time state-space model</p>
</list-item>
</list>
</p>
<p>When the discrete-time state-space (SS) model of the control plant is used for parameter estimation, the original states of the system from <xref ref-type="disp-formula" rid="e3">Equations 3</xref>, <xref ref-type="disp-formula" rid="e4">4</xref> are augmented with the parameters that need to be estimated. Thus, the state transition and observation functions for the augmented discrete-time SS model are formulated as,<disp-formula id="e13">
<mml:math id="m117">
<mml:mrow>
<mml:munder>
<mml:munder>
<mml:msub>
<mml:msub>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi mathvariant="bold">a</mml:mi>
</mml:msub>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo stretchy="true">&#x23df;</mml:mo>
</mml:munder>
<mml:msub>
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:munder>
<mml:mo>&#x3d;</mml:mo>
<mml:munder>
<mml:munder>
<mml:mrow>
<mml:msub>
<mml:msub>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mi mathvariant="bold">a</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:msub>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi mathvariant="bold">a</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mi mathvariant="bold">a</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true">&#x23df;</mml:mo>
</mml:munder>
<mml:mrow>
<mml:mi mathvariant="bold">f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">&#x3bc;</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:munder>
<mml:mo>&#x2b;</mml:mo>
<mml:munder>
<mml:munder>
<mml:msubsup>
<mml:mi mathvariant="bold">w</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mtext>SS</mml:mtext>
</mml:msubsup>
<mml:mo stretchy="true">&#x23df;</mml:mo>
</mml:munder>
<mml:msub>
<mml:mi mathvariant="bold">w</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:munder>
</mml:mrow>
</mml:math>
<label>(13)</label>
</disp-formula>
<disp-formula id="e14">
<mml:math id="m118">
<mml:mrow>
<mml:munder>
<mml:munder>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="true">&#x23df;</mml:mo>
</mml:munder>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:munder>
<mml:mo>&#x3d;</mml:mo>
<mml:munder>
<mml:munder>
<mml:mrow>
<mml:msub>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mi mathvariant="bold">a</mml:mi>
</mml:msub>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:msub>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi mathvariant="bold">a</mml:mi>
</mml:msub>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:msub>
<mml:mi mathvariant="bold">D</mml:mi>
<mml:mi mathvariant="bold">a</mml:mi>
</mml:msub>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true">&#x23df;</mml:mo>
</mml:munder>
<mml:mrow>
<mml:mi mathvariant="bold">h</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">&#x3bc;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:munder>
<mml:mo>&#x2b;</mml:mo>
<mml:munder>
<mml:munder>
<mml:msubsup>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mi>k</mml:mi>
<mml:mtext>SS</mml:mtext>
</mml:msubsup>
<mml:mo stretchy="true">&#x23df;</mml:mo>
</mml:munder>
<mml:msub>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:munder>
</mml:mrow>
</mml:math>
<label>(14)</label>
</disp-formula>where <inline-formula id="inf105">
<mml:math id="m119">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold">a</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the augmented state vector at the <inline-formula id="inf106">
<mml:math id="m120">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>-th time step, i.e., <inline-formula id="inf107">
<mml:math id="m121">
<mml:mrow>
<mml:msub>
<mml:msub>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi mathvariant="bold">a</mml:mi>
</mml:msub>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, of dimension <inline-formula id="inf108">
<mml:math id="m122">
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>, with <inline-formula id="inf109">
<mml:math id="m123">
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf110">
<mml:math id="m124">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> being the dimensions of the original state-space vector <inline-formula id="inf111">
<mml:math id="m125">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and the parameter vector <inline-formula id="inf112">
<mml:math id="m126">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, respectively. The input and output system vectors correspond to the command and measured signals <inline-formula id="inf113">
<mml:math id="m127">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf114">
<mml:math id="m128">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. The additive noise vectors for <inline-formula id="inf115">
<mml:math id="m129">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">z</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold">a</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf116">
<mml:math id="m130">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are denoted as <inline-formula id="inf117">
<mml:math id="m131">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">w</mml:mi>
<mml:mi>k</mml:mi>
<mml:mtext>SS</mml:mtext>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf118">
<mml:math id="m132">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mi>k</mml:mi>
<mml:mtext>SS</mml:mtext>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, respectively. <inline-formula id="inf119">
<mml:math id="m133">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold">a</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf120">
<mml:math id="m134">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold">a</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf121">
<mml:math id="m135">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold">a</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf122">
<mml:math id="m136">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">D</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold">a</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the augmented state-space matrices at the <inline-formula id="inf123">
<mml:math id="m137">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>-th time step, computed using the forward Euler method as,<disp-formula id="e15">
<mml:math id="m138">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold">a</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mo>&#x394;</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">A</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(15)</label>
</disp-formula>
<disp-formula id="e16">
<mml:math id="m139">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold">a</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x394;</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(16)</label>
</disp-formula>
<disp-formula id="e17">
<mml:math id="m140">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold">a</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(17)</label>
</disp-formula>
<disp-formula id="e18">
<mml:math id="m141">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">D</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold">a</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">D</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(18)</label>
</disp-formula>where <inline-formula id="inf124">
<mml:math id="m142">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the sampling time of the RTHS, and <inline-formula id="inf125">
<mml:math id="m143">
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the dimension of <inline-formula id="inf126">
<mml:math id="m144">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> or <inline-formula id="inf127">
<mml:math id="m145">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, which is assumed to be the same. This formulation introduces the nonlinearity through the dependence of the state-space matrices on <inline-formula id="inf128">
<mml:math id="m146">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, as indicated in <xref ref-type="disp-formula" rid="e13">Equations 13</xref>&#x2013;<xref ref-type="disp-formula" rid="e18">18</xref>.</p>
<p>Regardless of the selected system model (TF or SS), both EKF and UKF can be applied for parameter estimation. The estimation methods are depicted in <xref ref-type="fig" rid="F2">Figure 2</xref> utilizing the general system formulation of <xref ref-type="disp-formula" rid="e9">Equations 9</xref>, <xref ref-type="disp-formula" rid="e10">10</xref>.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>EKF and UKF state estimation.</p>
</caption>
<graphic xlink:href="fbuil-10-1477804-g002.tif"/>
</fig>
<p>EKF and UKF are extensions of the standard Kalman filter, designed to handle nonlinear systems (Song, 2011). Both methods consist of two recursive steps: the prediction step and the update step, as shown in <xref ref-type="fig" rid="F2">Figure 2</xref>. In the prediction step, the process function <inline-formula id="inf129">
<mml:math id="m147">
<mml:mrow>
<mml:mi mathvariant="bold">f</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is used to predict the prior state estimate (<inline-formula id="inf130">
<mml:math id="m148">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>) and its covariance (<inline-formula id="inf131">
<mml:math id="m149">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>). In the update step, this prediction is updated by incorporating the observation function <inline-formula id="inf132">
<mml:math id="m150">
<mml:mrow>
<mml:mi mathvariant="bold">h</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> to obtain the posterior state estimate (<inline-formula id="inf133">
<mml:math id="m151">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>) and its covariance (<inline-formula id="inf134">
<mml:math id="m152">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>), while minimizing the mean square error of the estimates with the Kalman gain <inline-formula id="inf135">
<mml:math id="m153">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-script">K</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. The details for the implementing EKF and UFK algorithms are omitted here, but can be found in (<xref ref-type="bibr" rid="B28">Song, 2011</xref>; <xref ref-type="bibr" rid="B30">Song and Dyke, 2013</xref>; <xref ref-type="bibr" rid="B31">Song and Dyke, 2014</xref>).</p>
<p>The primary difference between these estimation methods lies in handling the nonlinearities of the process and observation functions. The EKF approximates the nonlinear functions by linearizing them around the current state estimate using a first-order Taylor series expansion, which involves calculating their respective Jacobians <inline-formula id="inf136">
<mml:math id="m154">
<mml:mrow>
<mml:mo>&#x2207;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">f</mml:mi>
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf137">
<mml:math id="m155">
<mml:mrow>
<mml:mo>&#x2207;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">h</mml:mi>
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (see <xref ref-type="fig" rid="F2">Figure 2</xref>). The calculation of the Jacobians is omitted here for succinctness. In contrast, UKF uses a deterministic sampling scheme known as the Unscented Transform (UT) to generate a set of &#x201c;<italic>sigma points</italic>&#x201d; that capture the mean (e.g., <inline-formula id="inf138">
<mml:math id="m156">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>) and covariance of the state distribution (e.g., <inline-formula id="inf139">
<mml:math id="m157">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>) without the Jacobian calculations (<xref ref-type="bibr" rid="B15">Julier, 2002</xref>). The sigma points, indicated in <xref ref-type="fig" rid="F2">Figure 2</xref> with the superscript &#x201c;<inline-formula id="inf140">
<mml:math id="m158">
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>P</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>&#x201d;, are carefully chosen to accurately reflect the state distribution. These sigma points are directly propagated through the nonlinear functions, resulting in transformed points <inline-formula id="inf141">
<mml:math id="m159">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf142">
<mml:math id="m160">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> for the state and output, respectively. The mean and covariance of the predicted state and observation are then computed as a weighted sum of their respective transformed sigma points (<xref ref-type="bibr" rid="B35">Wan and Van Der Merwe, 2000</xref>). Additionally, both EKF and UKF require an initialization of the state and covariance, indicated in <xref ref-type="fig" rid="F2">Figure 2</xref> as <inline-formula id="inf143">
<mml:math id="m161">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf144">
<mml:math id="m162">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, respectively, along with the selection of appropriate covariances <inline-formula id="inf145">
<mml:math id="m163">
<mml:mrow>
<mml:mi mathvariant="bold">Q</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf146">
<mml:math id="m164">
<mml:mrow>
<mml:mi mathvariant="bold">R</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, which involves a search process (<xref ref-type="bibr" rid="B32">Song et al., 2017</xref>; <xref ref-type="bibr" rid="B29">Song, 2018</xref>).</p>
<p>By replacing the general system formulation of <xref ref-type="disp-formula" rid="e9">Equations 9</xref>, <xref ref-type="disp-formula" rid="e10">10</xref> in <xref ref-type="fig" rid="F2">Figure 2</xref> with the selected control plant formulations from <xref ref-type="disp-formula" rid="e11">Equations 11</xref>, <xref ref-type="disp-formula" rid="e12">12</xref> (for the TF model) or <xref ref-type="disp-formula" rid="e13">Equations 13</xref>, <xref ref-type="disp-formula" rid="e14">14</xref> (for the discrete-time SS model), four (4) parameter estimation cases can be obtained: EKF-TF, UKF-TF, EKF-SS, and UKF-SS. These cases are illustrated in <xref ref-type="fig" rid="F3">Figure 3</xref>, showing the architecture inside of block IV from <xref ref-type="fig" rid="F1">Figure 1</xref>.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>maRTHS nonlinear parameter estimation cases.</p>
</caption>
<graphic xlink:href="fbuil-10-1477804-g003.tif"/>
</fig>
<p>As shown in <xref ref-type="fig" rid="F3">Figure 3</xref>, the same low-pass filter is applied to the signals <inline-formula id="inf147">
<mml:math id="m165">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf148">
<mml:math id="m166">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. The low-pass filter is indicated with dashed lines in block (<inline-formula id="inf149">
<mml:math id="m167">
<mml:mrow>
<mml:mtext>IV</mml:mtext>
<mml:mo>.</mml:mo>
<mml:mi>b</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>) because this work also explores the option of not applying low-pass filtering for the SS model case (see <xref ref-type="sec" rid="s3-4">Section 3.4</xref>). A difference between the TF and SS approaches is the definition of the system input and output vectors, <inline-formula id="inf150">
<mml:math id="m168">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3bc;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf151">
<mml:math id="m169">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. In the TF model (see <xref ref-type="disp-formula" rid="e11">Equations 11</xref>, <xref ref-type="disp-formula" rid="e12">12</xref>), the input is <inline-formula id="inf152">
<mml:math id="m170">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b3;</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> [<inline-formula id="inf153">
<mml:math id="m171">
<mml:mrow>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="normal">e</mml:mi>
<mml:mo>.</mml:mo>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>; <inline-formula id="inf154">
<mml:math id="m172">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b3;</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>], which is related to the measured displacement of the plant <inline-formula id="inf155">
<mml:math id="m173">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and its time derivatives, and the output is the command signal <inline-formula id="inf156">
<mml:math id="m174">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. In contrast, the SS model (see <xref ref-type="disp-formula" rid="e13">Equations 13</xref>, <xref ref-type="disp-formula" rid="e14">14</xref>) swaps the two with <inline-formula id="inf157">
<mml:math id="m175">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> as the input and <inline-formula id="inf158">
<mml:math id="m176">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> as the output, and therefore without the need for its time derivatives.</p>
</sec>
</sec>
<sec sec-type="results" id="s3">
<title>3 Results</title>
<sec id="s3-1">
<title>3.1 maRTHS benchmark problem</title>
<p>The proposed methodology is applied to the maRTHS benchmark developed by <xref ref-type="bibr" rid="B6">Condori Uribe et al. (2023)</xref>, which provides a virtual RTHS (vRTHS) platform that allows the implementation of customized compensators. In this benchmark problem a three-story, three-bay moment resisting frame is subjected to seismic base excitation corresponding to scaled ground acceleration records of El Centro 1940, Kobe 1995, and Morgan Hill 1984. The central frame of the structure (one-story, one-bay, simply supported) acts as the experimental substructure (see <xref ref-type="fig" rid="F4">Figure 4</xref>), and the remaining structure is the numerical substructure. Displacement and rotational degrees of freedom (DOFs) are used as target signals at the NS-PS interface (control node). These DOFs are refer to as &#x201c;<italic>frame coordinates</italic>&#x201d;, and are represented in <xref ref-type="fig" rid="F4">Figure 4</xref> as <inline-formula id="inf159">
<mml:math id="m177">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c8;</mml:mi>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>28</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf160">
<mml:math id="m178">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c8;</mml:mi>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, where the subscripts <inline-formula id="inf161">
<mml:math id="m179">
<mml:mrow>
<mml:mn>28</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf162">
<mml:math id="m180">
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> denote the corresponding rotational and translational DOFs defined by <xref ref-type="bibr" rid="B6">Condori Uribe et al. (2023)</xref>. The NS-PS connection is accomplished through a transfer system that consists of two hydraulic actuators and a steel coupler (see <xref ref-type="fig" rid="F4">Figure 4</xref>). The coupler transfers the linear displacement of the two actuators to produce the desired frame coordinates. The desired and measured actuator linear displacement vectors are referred to as &#x201c;<italic>actuator coordinates</italic>&#x201d;. Thus, a coordinate transformation is performed during the simulation to transition between these two coordinate systems. The virtual RTHS is run with a fixed sampling frequency of <inline-formula id="inf163">
<mml:math id="m181">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>024</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> <inline-formula id="inf164">
<mml:math id="m182">
<mml:mrow>
<mml:mtext>Hz</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> (i.e., the sampling period <inline-formula id="inf165">
<mml:math id="m183">
<mml:mrow>
<mml:mfenced open="" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.976</mml:mn>
<mml:mtext>&#x2009;ms</mml:mtext>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Experimental substructure. Adapted from <xref ref-type="bibr" rid="B6">Condori Uribe et al. (2023)</xref>.</p>
</caption>
<graphic xlink:href="fbuil-10-1477804-g004.tif"/>
</fig>
<p>In this work, the compensation is performed in the actuator coordinates domain. Therefore, the desired signal is specified as <inline-formula id="inf166">
<mml:math id="m184">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>&#x3b7;</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi>&#x3b7;</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf167">
<mml:math id="m185">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b7;</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf168">
<mml:math id="m186">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b7;</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denote the desired linear displacements for actuators 1 and 2, respectively. The command signal is set as <inline-formula id="inf169">
<mml:math id="m187">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mi mathvariant="normal">c</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf170">
<mml:math id="m188">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf171">
<mml:math id="m189">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> correspond to the linear displacement commands to actuators 1 and 2, respectively. Likewise, the measured signal is indicated as <inline-formula id="inf172">
<mml:math id="m190">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>&#x3b7;</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi>&#x3b7;</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf173">
<mml:math id="m191">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b7;</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf174">
<mml:math id="m192">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b7;</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denote the measured linear displacements of actuators 1 and 2, respectively, as shown in <xref ref-type="fig" rid="F4">Figure 4</xref>.</p>
<p>The control plant model for the maRTHS benchmark problem is given as <xref ref-type="disp-formula" rid="e19">Equation 19</xref>,<disp-formula id="e19">
<mml:math id="m193">
<mml:mrow>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mn>11</mml:mn>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mn>12</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mn>21</mml:mn>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mn>22</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(19)</label>
</disp-formula>where the subscripts represent the input-output pairs for actuator 1 and actuator 2, respectively. Specifically, <inline-formula id="inf175">
<mml:math id="m194">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf176">
<mml:math id="m195">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the inputs to the system, while <inline-formula id="inf177">
<mml:math id="m196">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b7;</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are <inline-formula id="inf178">
<mml:math id="m197">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b7;</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the outputs. The adaptive compensator is designed considering the nominal plant model identified by <xref ref-type="bibr" rid="B6">Condori Uribe et al. (2023)</xref>, which has the following transfer functions,<disp-formula id="e20">
<mml:math id="m198">
<mml:mrow>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mn>11</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mn>11</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(20)</label>
</disp-formula>
<disp-formula id="e21">
<mml:math id="m199">
<mml:mrow>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mn>12</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mn>12</mml:mn>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(21)</label>
</disp-formula>
<disp-formula id="e22">
<mml:math id="m200">
<mml:mrow>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mn>21</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mn>21</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(22)</label>
</disp-formula>
<disp-formula id="e23">
<mml:math id="m201">
<mml:mrow>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mn>22</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mn>12</mml:mn>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(23)</label>
</disp-formula>
</p>
<p>From <xref ref-type="disp-formula" rid="e20">Equations 20</xref>&#x2013;<xref ref-type="disp-formula" rid="e23">23</xref>, <inline-formula id="inf179">
<mml:math id="m202">
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf180">
<mml:math id="m203">
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denote the poles of the numerical substructure; <inline-formula id="inf181">
<mml:math id="m204">
<mml:mrow>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf182">
<mml:math id="m205">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represent the zeros of the transfer functions of the transfer system (i.e., actuators and steel coupler); <inline-formula id="inf183">
<mml:math id="m206">
<mml:mrow>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf184">
<mml:math id="m207">
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denote the poles of the transfer functions of the transfer system; and <inline-formula id="inf185">
<mml:math id="m208">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mn>11</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mn>12</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mn>21</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf186">
<mml:math id="m209">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mn>22</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the corresponding transfer function gains.</p>
</sec>
<sec id="s3-2">
<title>3.2 Parameter estimation settings</title>
<p>The parameters in <xref ref-type="disp-formula" rid="e20">Equations 20</xref>&#x2013;<xref ref-type="disp-formula" rid="e23">23</xref> are updated in real-time during RTHS, while the transfer function gains are considered as constants. This approach results in the definition of <inline-formula id="inf187">
<mml:math id="m210">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, as shown in <xref ref-type="disp-formula" rid="e24">Equation 24</xref>.<disp-formula id="e24">
<mml:math id="m211">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(24)</label>
</disp-formula>
</p>
<p>Once the control plant model <inline-formula id="inf188">
<mml:math id="m212">
<mml:mrow>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and the nominal parameter <inline-formula id="inf189">
<mml:math id="m213">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> are established, the four parameter estimation cases are formulated as described in <xref ref-type="sec" rid="s2-3">Section 2.3</xref>.</p>
<p>As indicated in <xref ref-type="sec" rid="s2-3">Section 2.3</xref>, a search process is performed to select the initial values of <inline-formula id="inf190">
<mml:math id="m214">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf191">
<mml:math id="m215">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and the covariances <inline-formula id="inf192">
<mml:math id="m216">
<mml:mrow>
<mml:mi mathvariant="bold">Q</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf193">
<mml:math id="m217">
<mml:mrow>
<mml:mi mathvariant="bold">R</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. The details of the search are omitted here but readers can refer to (<xref ref-type="bibr" rid="B28">Song, 2011</xref>; <xref ref-type="bibr" rid="B32">Song et al., 2017</xref>; <xref ref-type="bibr" rid="B29">Song, 2018</xref>) for more information. This search process may not guarantee to yield the optimal selection, and other search methods can be also considered. The selected EKF and UKF parameters (covariances) are presented in <xref ref-type="table" rid="T1">Table 1</xref>.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Tuned EKF and UKF parameters for maRTHS Benchmark Problem.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Parameter estimation scenario</th>
<th align="center">
<inline-formula id="inf194">
<mml:math id="m218">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
<th align="center">
<inline-formula id="inf195">
<mml:math id="m219">
<mml:mrow>
<mml:mi mathvariant="bold">Q</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
<th align="center">
<inline-formula id="inf196">
<mml:math id="m220">
<mml:mrow>
<mml:mi mathvariant="bold">R</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">EKF-TF</td>
<td align="center">
<inline-formula id="inf197">
<mml:math id="m221">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>10</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">
<inline-formula id="inf198">
<mml:math id="m222">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:msup>
<mml:mn>0</mml:mn>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>5</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x22c5;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>10</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">
<inline-formula id="inf199">
<mml:math id="m223">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:msup>
<mml:mn>0</mml:mn>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x22c5;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="center">UKF-TF</td>
<td align="center">
<inline-formula id="inf200">
<mml:math id="m224">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>10</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">
<inline-formula id="inf201">
<mml:math id="m225">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:msup>
<mml:mn>0</mml:mn>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x22c5;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>10</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">
<inline-formula id="inf202">
<mml:math id="m226">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:msup>
<mml:mn>0</mml:mn>
<mml:mn>1</mml:mn>
</mml:msup>
<mml:mo>&#x22c5;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="center">EKF-SS</td>
<td align="center">
<inline-formula id="inf203">
<mml:math id="m227">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mn>22</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>22</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">
<inline-formula id="inf204">
<mml:math id="m228">
<mml:mrow>
<mml:msub>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mrow>
<mml:mn>22</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>22</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">
<inline-formula id="inf205">
<mml:math id="m229">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:msup>
<mml:mn>0</mml:mn>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x22c5;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="center">UKF-SS</td>
<td align="center">
<inline-formula id="inf206">
<mml:math id="m230">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mn>22</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>22</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">
<inline-formula id="inf207">
<mml:math id="m231">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:msup>
<mml:mn>0</mml:mn>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>11</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x22c5;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mn>22</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>22</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">
<inline-formula id="inf208">
<mml:math id="m232">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:msup>
<mml:mn>0</mml:mn>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x22c5;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>In addition to the covariances presented in <xref ref-type="table" rid="T1">Table 1</xref>, scaling parameters used during the sigma points computation in UKF were adjusted to enhance the estimation performance. The values for these scaling parameters are set as follows: <inline-formula id="inf209">
<mml:math id="m233">
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.4</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf210">
<mml:math id="m234">
<mml:mrow>
<mml:mi>&#x3ba;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf211">
<mml:math id="m235">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. Details on how these parameters influence the sigma points distribution can be found in <xref ref-type="bibr" rid="B35">Wan and Van Der Merwe (2000)</xref> and <xref ref-type="bibr" rid="B28">Song (2011)</xref>.</p>
</sec>
<sec id="s3-3">
<title>3.3 Adaptive compensator performance in maRTHS</title>
<p>The proposed adaptive compensator is validated through the vRTHS platform in MATLAB/Simulink R2023b (<xref ref-type="bibr" rid="B17">Mathworks, 2024</xref>). The performance is evaluated with a set of 10 performance criteria defined in <xref ref-type="bibr" rid="B6">Condori Uribe et al. (2023)</xref>. Performance indices (PI), <inline-formula id="inf212">
<mml:math id="m236">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mi mathvariant="script">n</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, are utilized for each criterion, where <inline-formula id="inf213">
<mml:math id="m237">
<mml:mrow>
<mml:mi mathvariant="script">n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> indicates the criteria number and <inline-formula id="inf214">
<mml:math id="m238">
<mml:mrow>
<mml:mi mathvariant="script">m</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> depends on the type of evaluation. For example, PIs from <inline-formula id="inf215">
<mml:math id="m239">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to <inline-formula id="inf216">
<mml:math id="m240">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> evaluate the tracking performance in actuators coordinates (<inline-formula id="inf217">
<mml:math id="m241">
<mml:mrow>
<mml:mi mathvariant="script">m</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> denotes the actuator number). PIs <inline-formula id="inf218">
<mml:math id="m242">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>5</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf219">
<mml:math id="m243">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>6</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> indicate the tracking performance in frame coordinates (<inline-formula id="inf220">
<mml:math id="m244">
<mml:mrow>
<mml:mi mathvariant="script">m</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> denotes the DOFs of the control node). PIs from <inline-formula id="inf221">
<mml:math id="m245">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>7</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf222">
<mml:math id="m246">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> indicate the global RTHS performance, which seek to minimize the error between the reference structure response and the hybrid system response (<inline-formula id="inf223">
<mml:math id="m247">
<mml:mrow>
<mml:mi mathvariant="script">m</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> denotes the DOFs of the control node and upper stories levels). Lower PIs values indicate better compensation performance, as they correspond to smaller errors in both tracking and global performance.</p>
<p>A total of 1,000 vRTHS simulations were executed to demonstrate the control robustness, each incorporating system uncertainties (<inline-formula id="inf224">
<mml:math id="m248">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>) through random variations in the plant parameters (i.e., poles and zeros), which were modeled as normal random variables. Details in generating the above random variations are described in the benchmark problem definition in <xref ref-type="bibr" rid="B6">Condori Uribe et al. (2023)</xref>. The initial values of the estimated parameters are set to the values of the nominal plant provided in <xref ref-type="bibr" rid="B6">Condori Uribe et al. (2023)</xref>. All simulations were performed on a personal computer equipped with an Intel Core i7-14700 processor and 64 GB of RAM, running Microsoft Windows 11.</p>
<p>The mean and standard deviation (SD) for each performance indicator (PI) across the four parameter estimation cases using 0.4 scaled El Centro Earthquake as input, are presented in <xref ref-type="table" rid="T2">Table 2</xref>. Additionally, the results from the linear quadratic regulator (LQR) controller presented in the benchmark (BM) by <xref ref-type="bibr" rid="B6">Condori Uribe et al. (2023)</xref> are included in the table for comparison. Results utilizing 0.4 scaled Kobe and 0.4 scaled Morgan earthquakes are presented in the Supplementary Material. Furthermore, <xref ref-type="table" rid="T3">Table 3</xref> presents the average simulation time for each earthquake input to evaluate computational efficiency.</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Evaluation criteria of maRTHS subjected to 0.4 scaled El Centro Earthquake (1,000 simulations).</p>
</caption>
<table>
<thead valign="top">
<tr>
<th rowspan="2" colspan="2" align="center">Performance criteria</th>
<th rowspan="2" align="center">PI <inline-formula id="inf225">
<mml:math id="m249">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mi mathvariant="script">n</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
<th rowspan="2" align="center">Units</th>
<th rowspan="2" align="center">BM-LQG</th>
<th colspan="2" align="center">EKF&#x2013;TF</th>
<th colspan="2" align="center">UKF&#x2013;TF</th>
<th colspan="2" align="center">EKF&#x2013;SS</th>
<th colspan="2" align="center">UKF&#x2013;SS</th>
</tr>
<tr>
<th align="center">Mean</th>
<th align="center">SD</th>
<th align="center">Mean</th>
<th align="center">SD</th>
<th align="center">Mean</th>
<th align="center">SD</th>
<th align="center">Mean</th>
<th align="center">SD</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td rowspan="6" align="center">Tracking control</td>
<td rowspan="2" align="center">Time delay</td>
<td align="center">
<inline-formula id="inf226">
<mml:math id="m250">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">ms</td>
<td align="center">2.0</td>
<td align="center">0.00</td>
<td align="center">0.05</td>
<td align="center">0.41</td>
<td align="center">0.88</td>
<td align="center">0.00</td>
<td align="center">0.00</td>
<td align="center">0.00</td>
<td align="center">0.00</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf227">
<mml:math id="m251">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">ms</td>
<td align="center">2.9</td>
<td align="center">0.00</td>
<td align="center">0.00</td>
<td align="center">0.47</td>
<td align="center">0.51</td>
<td align="center">0.00</td>
<td align="center">0.00</td>
<td align="center">0.00</td>
<td align="center">0.00</td>
</tr>
<tr>
<td rowspan="2" align="center">Normalized tracking error</td>
<td align="center">
<inline-formula id="inf228">
<mml:math id="m252">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">4.8</td>
<td align="center">2.71</td>
<td align="center">0.05</td>
<td align="center">3.16</td>
<td align="center">0.40</td>
<td align="center">2.87</td>
<td align="center">0.02</td>
<td align="center">2.68</td>
<td align="center">0.02</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf229">
<mml:math id="m253">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">9.4</td>
<td align="center">1.48</td>
<td align="center">0.04</td>
<td align="center">1.79</td>
<td align="center">0.16</td>
<td align="center">1.68</td>
<td align="center">0.02</td>
<td align="center">1.42</td>
<td align="center">0.01</td>
</tr>
<tr>
<td rowspan="2" align="center">Max. peak tracking error</td>
<td align="center">
<inline-formula id="inf230">
<mml:math id="m254">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">5.3</td>
<td align="center">2.50</td>
<td align="center">0.26</td>
<td align="center">3.55</td>
<td align="center">0.75</td>
<td align="center">2.91</td>
<td align="center">0.26</td>
<td align="center">2.45</td>
<td align="center">0.22</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf231">
<mml:math id="m255">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">10.3</td>
<td align="center">1.62</td>
<td align="center">0.22</td>
<td align="center">2.07</td>
<td align="center">0.42</td>
<td align="center">1.99</td>
<td align="center">0.16</td>
<td align="center">1.76</td>
<td align="center">0.16</td>
</tr>
<tr>
<td rowspan="6" align="center">Estimation</td>
<td rowspan="2" align="center">Time delay</td>
<td align="center">
<inline-formula id="inf232">
<mml:math id="m256">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">ms</td>
<td align="center">1.9</td>
<td align="center">0.00</td>
<td align="center">0.05</td>
<td align="center">0.41</td>
<td align="center">0.88</td>
<td align="center">0.00</td>
<td align="center">0.00</td>
<td align="center">0.00</td>
<td align="center">0.00</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf233">
<mml:math id="m257">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">ms</td>
<td align="center">2.9</td>
<td align="center">0.00</td>
<td align="center">0.00</td>
<td align="center">0.47</td>
<td align="center">0.51</td>
<td align="center">0.00</td>
<td align="center">0.00</td>
<td align="center">0.00</td>
<td align="center">0.00</td>
</tr>
<tr>
<td rowspan="2" align="center">Normalized estimation error</td>
<td align="center">
<inline-formula id="inf234">
<mml:math id="m258">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>5</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">6.7</td>
<td align="center">1.85</td>
<td align="center">0.03</td>
<td align="center">2.18</td>
<td align="center">0.18</td>
<td align="center">2.06</td>
<td align="center">0.01</td>
<td align="center">1.82</td>
<td align="center">0.01</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf235">
<mml:math id="m259">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>5</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>28</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">17.8</td>
<td align="center">1.17</td>
<td align="center">0.21</td>
<td align="center">1.79</td>
<td align="center">0.62</td>
<td align="center">1.03</td>
<td align="center">0.08</td>
<td align="center">0.85</td>
<td align="center">0.03</td>
</tr>
<tr>
<td rowspan="2" align="center">Max. peak estimation error</td>
<td align="center">
<inline-formula id="inf236">
<mml:math id="m260">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>6</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">7.4</td>
<td align="center">1.82</td>
<td align="center">0.21</td>
<td align="center">2.43</td>
<td align="center">0.50</td>
<td align="center">2.30</td>
<td align="center">0.18</td>
<td align="center">1.93</td>
<td align="center">0.18</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf237">
<mml:math id="m261">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>6</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>28</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">18.8</td>
<td align="center">1.57</td>
<td align="center">0.49</td>
<td align="center">2.34</td>
<td align="center">0.49</td>
<td align="center">1.38</td>
<td align="center">0.18</td>
<td align="center">1.61</td>
<td align="center">0.10</td>
</tr>
<tr>
<td rowspan="12" align="center">Global RTHS Performance</td>
<td rowspan="2" align="center">Normalized RTHS error</td>
<td align="center">
<inline-formula id="inf238">
<mml:math id="m262">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>7</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">10.6</td>
<td align="center">9.69</td>
<td align="center">0.06</td>
<td align="center">9.69</td>
<td align="center">0.34</td>
<td align="center">9.61</td>
<td align="center">0.01</td>
<td align="center">10.00</td>
<td align="center">0.01</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf239">
<mml:math id="m263">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>7</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>28</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">16.8</td>
<td align="center">7.38</td>
<td align="center">0.06</td>
<td align="center">7.34</td>
<td align="center">0.52</td>
<td align="center">7.80</td>
<td align="center">0.01</td>
<td align="center">7.96</td>
<td align="center">0.01</td>
</tr>
<tr>
<td rowspan="4" align="center">Normalized RTHS error at upper levels</td>
<td align="center">
<inline-formula id="inf240">
<mml:math id="m264">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>8</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">1.8</td>
<td align="center">6.86</td>
<td align="center">0.05</td>
<td align="center">7.31</td>
<td align="center">0.33</td>
<td align="center">7.38</td>
<td align="center">0.03</td>
<td align="center">7.19</td>
<td align="center">0.01</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf241">
<mml:math id="m265">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>8</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>26</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">3.4</td>
<td align="center">6.19</td>
<td align="center">0.08</td>
<td align="center">6.67</td>
<td align="center">0.25</td>
<td align="center">6.63</td>
<td align="center">0.04</td>
<td align="center">6.40</td>
<td align="center">0.01</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf242">
<mml:math id="m266">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>8</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">2.1</td>
<td align="center">6.51</td>
<td align="center">0.06</td>
<td align="center">6.97</td>
<td align="center">0.30</td>
<td align="center">7.01</td>
<td align="center">0.03</td>
<td align="center">6.80</td>
<td align="center">0.01</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf243">
<mml:math id="m267">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>8</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>27</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">3.0</td>
<td align="center">6.24</td>
<td align="center">0.07</td>
<td align="center">6.71</td>
<td align="center">0.26</td>
<td align="center">6.70</td>
<td align="center">0.04</td>
<td align="center">6.48</td>
<td align="center">0.01</td>
</tr>
<tr>
<td rowspan="2" align="center">Max. peak RTHS error</td>
<td align="center">
<inline-formula id="inf244">
<mml:math id="m268">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>9</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">11.9</td>
<td align="center">8.12</td>
<td align="center">0.36</td>
<td align="center">9.28</td>
<td align="center">0.55</td>
<td align="center">7.93</td>
<td align="center">0.14</td>
<td align="center">8.16</td>
<td align="center">0.15</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf245">
<mml:math id="m269">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>9</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>28</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">18.1</td>
<td align="center">5.89</td>
<td align="center">0.29</td>
<td align="center">6.02</td>
<td align="center">0.26</td>
<td align="center">6.00</td>
<td align="center">0.11</td>
<td align="center">6.13</td>
<td align="center">0.05</td>
</tr>
<tr>
<td rowspan="4" align="center">Max. peak RTHS error at upper levels</td>
<td align="center">
<inline-formula id="inf246">
<mml:math id="m270">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">1.8</td>
<td align="center">5.16</td>
<td align="center">0.12</td>
<td align="center">5.55</td>
<td align="center">0.25</td>
<td align="center">5.59</td>
<td align="center">0.04</td>
<td align="center">5.48</td>
<td align="center">0.02</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf247">
<mml:math id="m271">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>26</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">2.7</td>
<td align="center">5.05</td>
<td align="center">0.14</td>
<td align="center">5.43</td>
<td align="center">0.21</td>
<td align="center">5.45</td>
<td align="center">0.04</td>
<td align="center">5.36</td>
<td align="center">0.02</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf248">
<mml:math id="m272">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">1.8</td>
<td align="center">5.01</td>
<td align="center">0.12</td>
<td align="center">5.41</td>
<td align="center">0.25</td>
<td align="center">5.46</td>
<td align="center">0.04</td>
<td align="center">5.35</td>
<td align="center">0.02</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf249">
<mml:math id="m273">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>27</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">2.4</td>
<td align="center">5.08</td>
<td align="center">0.13</td>
<td align="center">5.44</td>
<td align="center">0.23</td>
<td align="center">5.50</td>
<td align="center">0.04</td>
<td align="center">5.40</td>
<td align="center">0.02</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Average simulation time for each earthquake input case (1,000 simulations).</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Scaled earthquake input [duration (s)]</th>
<th align="center">EKF&#x2013;TF</th>
<th align="center">UKF&#x2013;TF</th>
<th align="center">EKF&#x2013;SS</th>
<th align="center">UKF&#x2013;SS</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">El Centro [41.2 s]</td>
<td align="center">7.7</td>
<td align="center">42.7</td>
<td align="center">2.6</td>
<td align="center">28.8</td>
</tr>
<tr>
<td align="center">Kobe [50.9 s]</td>
<td align="center">9.4</td>
<td align="center">52.1</td>
<td align="center">7.8</td>
<td align="center">35.3</td>
</tr>
<tr>
<td align="center">Morgan [40.0 s]</td>
<td align="center">3.0</td>
<td align="center">68.4</td>
<td align="center">2.8</td>
<td align="center">27.7</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The results from <xref ref-type="table" rid="T2">Table 2</xref> demonstrate the effectiveness and robustness of the parameter estimation cases for the proposed compensator using the 0.4 scaled El Centro Earthquake as input. The robustness is confirmed by the performance across the 1,000 simulations, which resulted in small PIs with small standard deviations. For time delay, all cases were effective, with the highest mean time delay of <inline-formula id="inf250">
<mml:math id="m274">
<mml:mrow>
<mml:mn>0.47</mml:mn>
<mml:mtext>&#x2009;ms</mml:mtext>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> obtained in the UKF-TF case. The tracking performance was effective in both actuator and frame coordinates (<inline-formula id="inf251">
<mml:math id="m275">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to <inline-formula id="inf252">
<mml:math id="m276">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>6</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>) with the largest PIs obtained for the UKF-TF case. For the global RTHS evaluation, all performance estimation cases outperformed the BM-LQG for the degrees of freedom at the control node, although higher errors were obtained at DOFs of the upper levels of the reference structure. Overall, the UKF-SS case exhibited the best tracking performance with PIs values of <inline-formula id="inf253">
<mml:math id="m277">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2.68</mml:mn>
<mml:mo>&#xb1;</mml:mo>
<mml:mn>0.02</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf254">
<mml:math id="m278">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1.42</mml:mn>
<mml:mo>&#xb1;</mml:mo>
<mml:mn>0.01</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> (actuator coordinates), and with <inline-formula id="inf255">
<mml:math id="m279">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>5</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1.82</mml:mn>
<mml:mo>&#xb1;</mml:mo>
<mml:mn>0.01</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf256">
<mml:math id="m280">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>5</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>28</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.85</mml:mn>
<mml:mo>&#xb1;</mml:mo>
<mml:mn>0.03</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> (frame coordinates). The largest obtained PIs from the 1,000 simulations for the same UKF-SS case were <inline-formula id="inf257">
<mml:math id="m281">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2.75</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf258">
<mml:math id="m282">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1.47</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> (actuator coordinates), and with <inline-formula id="inf259">
<mml:math id="m283">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>5</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1.86</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf260">
<mml:math id="m284">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>5</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>28</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.96</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> (frame coordinates). <xref ref-type="fig" rid="F5">Figure 5</xref> shows the desired and measured displacements in actuator coordinates of actuator 1 for the UKF-SS case with the largest <inline-formula id="inf261">
<mml:math id="m285">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, demonstrating the close match of the signals over time. Similar tracking performance is observed for actuator 2 and for signals in frame coordinates. Therefore, the time history plots for these signals are not included here. <xref ref-type="fig" rid="F6">Figure 6</xref> illustrates the parameters tracking history (all normalized to the initial nominal values) across the four parameter estimation cases, with the 0.4 scaled El Centro Earthquake as input. This figure demonstrates that meaningful parameter estimation begins around 5 s, when the earthquake input starts (see <xref ref-type="fig" rid="F5">Figure 5</xref>). Parameters continue to update until reaching a stable value to minimize the estimation error. Although starting with the same initial values, the updating histories among the four cases are not consistent. For example, among all the parameters, <inline-formula id="inf262">
<mml:math id="m286">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> shows the largest variation in the EKF cases, with changes of <inline-formula id="inf263">
<mml:math id="m287">
<mml:mrow>
<mml:mo>&#x223c;</mml:mo>
<mml:mn>12</mml:mn>
<mml:mo>%</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> in EKF-SS and <inline-formula id="inf264">
<mml:math id="m288">
<mml:mrow>
<mml:mo>&#x223c;</mml:mo>
<mml:mn>30</mml:mn>
<mml:mo>%</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> in EKF-TF. In contrast, the UKF cases exhibit the largest variations with <inline-formula id="inf265">
<mml:math id="m289">
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (<inline-formula id="inf266">
<mml:math id="m290">
<mml:mrow>
<mml:mo>&#x223c;</mml:mo>
<mml:mn>10</mml:mn>
<mml:mo>%</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>) in UKF-SS and with <inline-formula id="inf267">
<mml:math id="m291">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (<inline-formula id="inf268">
<mml:math id="m292">
<mml:mrow>
<mml:mo>&#x223c;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>%</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>) in UKF-TF. <xref ref-type="fig" rid="F7">Figure 7</xref> illustrates the tracking performance of the proposed compensation for all three input earthquakes in both actuator and frame coordinates. The height of each bar represents the mean value of the PI for the respective parameter estimation case, while the error bars indicate one standard deviation (&#x2b;SD) of the corresponding PI value. Overall, the small PIs values in the bar graph demonstrates the effectiveness and robustness of the compensator across the three earthquake input scenarios. For each earthquake input, the UKF-SS yields the smallest PIs among all compensation cases, while UKF-TF shows the largest PIs and standard deviations, likely due to its less active updating in parameter tracking (see <xref ref-type="fig" rid="F6">Figure 6D</xref>).</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>maRTHS tracking performance in actuator coordinates (actuator 1) for UKF-SS case with the largest <inline-formula id="inf269">
<mml:math id="m293">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (0.4 scaled El Centro Earthquake as input).</p>
</caption>
<graphic xlink:href="fbuil-10-1477804-g005.tif"/>
</fig>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Parameter tracking with 0.4 scaled El Centro Earthquake as input and control plant with uncertainties. <bold>(A)</bold> EKF-SS <bold>(B)</bold> UKF-SS. <bold>(C)</bold> EKF-TF <bold>(D)</bold> UKF-TF.</p>
</caption>
<graphic xlink:href="fbuil-10-1477804-g006.tif"/>
</fig>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Tracking performance in actuator and frame coordinates for all input earthquakes. Mean PIs obtained from 1,000 simulations for each earthquake input.</p>
</caption>
<graphic xlink:href="fbuil-10-1477804-g007.tif"/>
</fig>
<p>Although the UKF-SS shows superior tracking performance compared to the other cases studied, it is also more computationally expensive, as shown in <xref ref-type="table" rid="T3">Table 3</xref>. This increased computational cost is likely due to the requirement for the UKF algorithm to generate and propagate multiple sigma points, which involves additional matrix operations. Note that, the simulation time indicated in <xref ref-type="table" rid="T3">Table 3</xref> is measured during the numerical simulations in MATLAB under Windows environment, not in a real-time computing environment. But by considering the same computational environment, <xref ref-type="table" rid="T3">Table 3</xref> can still offer a relative comparison of the computational efficiency of each algorithm.</p>
</sec>
<sec id="s3-4">
<title>3.4 Effect of low-pass filter in state-space formulation</title>
<p>Results presented in <xref ref-type="sec" rid="s3-3">Section 3.3</xref> are obtained with the use of a 6th-order Butterworth low-pass filter with a cutoff frequency of 20 Hz, applied to <inline-formula id="inf270">
<mml:math id="m294">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf271">
<mml:math id="m295">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (see <xref ref-type="fig" rid="F3">Figure 3</xref>). The low-pass filter helps attenuate high-frequency noise present in the measured signals. This noise is exacerbated during time differentiation when using the TF model, making the use of the low-pass filter crucial to ensure the stability of EKF-TF and UKF-TF cases. In contrast, the discrete-time SS model does not involve time derivatives of the signals and only deals with measurement and process noises. Therefore, the low-pass filter can potentially be removed when using the discrete-time SS model. <xref ref-type="table" rid="T4">Table 4</xref> presents the tracking performance PIs (<inline-formula id="inf272">
<mml:math id="m296">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to <inline-formula id="inf273">
<mml:math id="m297">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>6</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>) for EKF-SS and UKF-SS cases without low-pass filtering, using 0.4 scaled El Centro earthquake as input in 1,000 simulations. The EKF-SS results, compared to those in <xref ref-type="table" rid="T2">Table 2</xref>, showed significant decrease in performance, leading to large SDs in <xref ref-type="table" rid="T4">Table 4</xref>. However, for the UKF-SS case, the obtained PIs are consistent with the values in <xref ref-type="table" rid="T2">Table 2</xref>, with only a small increase in the PIs. Additionally, <xref ref-type="fig" rid="F8">Figure 8</xref> shows the bar charts for <inline-formula id="inf274">
<mml:math id="m298">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf275">
<mml:math id="m299">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (values from <xref ref-type="table" rid="T2">Tables 2</xref>, <xref ref-type="table" rid="T4">4</xref>) for the mentioned EKF-SS and UKF-SS cases with and without low-pass filter. The bar height shows the mean PI value, while the error bars indicate one standard deviation (&#x2b;SD) of the corresponding PI.</p>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>Tracking performance criteria of maRTHS subjected to 0.4 scaled El Centro Earthquake (1,000 simulations)&#x2013;SS formulation without low-pass filter.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th rowspan="2" colspan="2" align="center">Performance criteria</th>
<th rowspan="2" align="center">PI<break/>
<inline-formula id="inf276">
<mml:math id="m300">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mi mathvariant="script">n</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
<th rowspan="2" align="center">Units</th>
<th colspan="2" align="center">EKF&#x2013;SS<break/>(No low-pass)</th>
<th colspan="2" align="center">UKF&#x2013;SS<break/>(No low-pass)</th>
</tr>
<tr>
<th align="center">Mean</th>
<th align="center">SD</th>
<th align="center">Mean</th>
<th align="center">SD</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td rowspan="6" align="center">Tracking control</td>
<td rowspan="2" align="center">Time delay</td>
<td align="center">
<inline-formula id="inf277">
<mml:math id="m301">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">ms</td>
<td align="center">1.55</td>
<td align="center">20.70</td>
<td align="center">0.00</td>
<td align="center">0.00</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf278">
<mml:math id="m302">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">ms</td>
<td align="center">&#x2212;0.38</td>
<td align="center">9.58</td>
<td align="center">0.00</td>
<td align="center">0.00</td>
</tr>
<tr>
<td rowspan="2" align="center">Normalized tracking error</td>
<td align="center">
<inline-formula id="inf279">
<mml:math id="m303">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">7.65</td>
<td align="center">27.64</td>
<td align="center">2.76</td>
<td align="center">0.02</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf280">
<mml:math id="m304">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">3.03</td>
<td align="center">7.98</td>
<td align="center">1.64</td>
<td align="center">0.01</td>
</tr>
<tr>
<td rowspan="2" align="center">Max. peak tracking error</td>
<td align="center">
<inline-formula id="inf281">
<mml:math id="m305">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">15.64</td>
<td align="center">54.54</td>
<td align="center">2.64</td>
<td align="center">0.22</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf282">
<mml:math id="m306">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">4.33</td>
<td align="center">10.53</td>
<td align="center">2.18</td>
<td align="center">0.16</td>
</tr>
<tr>
<td rowspan="6" align="center">Estimation</td>
<td rowspan="2" align="center">Time delay</td>
<td align="center">
<inline-formula id="inf283">
<mml:math id="m307">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">ms</td>
<td align="center">1.55</td>
<td align="center">20.70</td>
<td align="center">0.00</td>
<td align="center">0.00</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf284">
<mml:math id="m308">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">ms</td>
<td align="center">&#x2212;0.38</td>
<td align="center">9.58</td>
<td align="center">0.00</td>
<td align="center">0.00</td>
</tr>
<tr>
<td rowspan="2" align="center">Normalized estimation error</td>
<td align="center">
<inline-formula id="inf285">
<mml:math id="m309">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>5</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">4.52</td>
<td align="center">16.22</td>
<td align="center">1.96</td>
<td align="center">0.01</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf286">
<mml:math id="m310">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>5</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>28</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">6.20</td>
<td align="center">24.63</td>
<td align="center">1.46</td>
<td align="center">0.05</td>
</tr>
<tr>
<td rowspan="2" align="center">Max. peak estimation error</td>
<td align="center">
<inline-formula id="inf287">
<mml:math id="m311">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>6</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">8.54</td>
<td align="center">39.11</td>
<td align="center">2.31</td>
<td align="center">0.19</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf288">
<mml:math id="m312">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">J</mml:mi>
<mml:mrow>
<mml:mn>6</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>28</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">%</td>
<td align="center">14.09</td>
<td align="center">49.43</td>
<td align="center">2.16</td>
<td align="center">0.17</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Tracking performance criteria for EKF-SS and UKF-SS with and without low-pass filtering.</p>
</caption>
<graphic xlink:href="fbuil-10-1477804-g008.tif"/>
</fig>
<p>These results reveal that UKF can handle noises and nonlinearities in the system model more effectively than EKF when low-pass filter is not present. This capability is advantageous in RTHS because the use of low-pass filter can potentially introduce signal distortion leading to unwanted dynamics with potentially nonlinear systems, and therefore compromise the compensation performance and the accuracy of the simulated response.</p>
</sec>
</sec>
<sec sec-type="conclusion" id="s4">
<title>4 Conclusion</title>
<p>An adaptive compensation framework for MIMO-RTHS is proposed in this paper. The proposed methodology employs a control law based on the inverse dynamics of the control plant, with adaptive parameters updated in real-time. Parameter estimation utilizes the plant model in TF and discrete-time SS forms, combined with nonlinear parameter estimators EKF and UKF, leading to four proposed estimation cases: EKF-TF, UKF-TF, EKF-SS, and UKF-SS.</p>
<p>The proposed compensation has been examined in a maRTHS benchmark problem, through RTHS simulations incorporating sensor noise, uncertainties in the plant model, and three earthquake inputs. The results for the four parameter estimation cases of the proposed compensation framework showed effective tracking performance at the NS-PS interface node in both actuator and frame coordinates, and strong robustness against uncertainties and noises, with the UKF-SS case exhibiting the best performance in compensation tracking (see <xref ref-type="table" rid="T2">Table 2</xref>; <xref ref-type="fig" rid="F7">Figure 7</xref>) and robustness against uncertainties and noises (see <xref ref-type="table" rid="T4">Table 4</xref>; <xref ref-type="fig" rid="F8">Figure 8</xref>). From the implementation of the proposed adaptive compensation, the following additional observations are listed:<list list-type="simple">
<list-item>
<p>&#x2022; EKF exhibits a higher computational efficiency than UKF, which is reflected by the shorter simulation times of EKF-TF and EFK-SS cases in comparison to UKF-TF and UKF-SS cases (see <xref ref-type="table" rid="T3">Table 3</xref>). The higher computational complexity of the UKF might pose a challenge in meeting real-time constraints. Therefore, based on the results from <xref ref-type="table" rid="T3">Table 3</xref>, the EKF-SS case is an efficient choice when the system does not exhibit nonlinearities.</p>
</list-item>
<list-item>
<p>&#x2022; Utilizing the TF model for parameter estimation (cases EKF-TF and UKF-TF) resulted in a smaller solution space compared to the SS model, but its implementation was more computationally expensive because of the calculations of time derivatives, as indicated by <inline-formula id="inf289">
<mml:math id="m313">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b3;</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> in <xref ref-type="disp-formula" rid="e12">Equation 12</xref>.</p>
</list-item>
<list-item>
<p>&#x2022; From the results in <xref ref-type="sec" rid="s3-4">Section 3.4</xref>, it is shown that the UKF-SS case maintains good tracking performance without the need of low-pass filtering. Therefore, when RTHS system exhibits strong nonlinearities where low-pass filtering is not suitable, the UKF-SS is the preferred choice due to its robust tracking performance against uncertainties and noises with or without low-pass filtering.</p>
</list-item>
<list-item>
<p>&#x2022; The implementation of EKF was more involved than UKF, because the high nonlinearity in the system formulations (see <xref ref-type="sec" rid="s2-3">Section 2.3</xref>) makes the derivation of the Jacobians cumbersome and prone to errors.</p>
</list-item>
</list>
</p>
<p>The proposed adaptive compensation framework shows significant potential for tracking performance and robustness in MIMO-RTHS. Future research will focus on strengthening the efficiency and robustness of this framework by investigating alternative system formulations and exploring more advanced parameter estimation methods.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s5">
<title>Data availability statement</title>
<p>The raw data supporting the conclusions of this article will be made available by the authors, without undue reservation.</p>
</sec>
<sec sec-type="author-contributions" id="s6">
<title>Author contributions</title>
<p>SR: Methodology, Data curation, Formal Analysis, Investigation, Software, Visualization, Writing&#x2013;original draft. WS: Methodology, Conceptualization, Funding acquisition, Project administration, Resources, Supervision, Validation, Writing&#x2013;review and editing.</p>
</sec>
<sec sec-type="funding-information" id="s7">
<title>Funding</title>
<p>The author(s) declare that financial support was received for the research, authorship, and/or publication of this article. This research was supported by National Science Foundation (NSF) through Grant CMMI 2011423.</p>
</sec>
<sec sec-type="COI-statement" id="s8">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
<p>The author(s) declared that they were an editorial board member of Frontiers, at the time of submission. This had no impact on the peer review process and the final decision.</p>
</sec>
<sec sec-type="disclaimer" id="s9">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<sec id="s12">
<title>Supplementary material</title>
<p>The Supplementary Material for this article can be found online at: <ext-link ext-link-type="uri" xlink:href="https://www.frontiersin.org/articles/10.3389/fbuil.2024.1477804/full#supplementary-material">https://www.frontiersin.org/articles/10.3389/fbuil.2024.1477804/full&#x23;supplementary-material</ext-link>
</p>
<supplementary-material xlink:href="DataSheet1.pdf" id="SM1" mimetype="application/pdf" xmlns:xlink="http://www.w3.org/1999/xlink"/>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Carrion</surname>
<given-names>J. E.</given-names>
</name>
<name>
<surname>Spencer</surname>
<given-names>B. F.</given-names>
</name>
<name>
<surname>Phillips</surname>
<given-names>B. M.</given-names>
</name>
</person-group> (<year>2009</year>). <article-title>Real-time hybrid simulation for structural control performance assessment</article-title>. <source>Earthq. Eng. Eng. Vib.</source> <volume>8</volume>, <fpage>481</fpage>&#x2013;<lpage>492</lpage>. <pub-id pub-id-type="doi">10.1007/s11803-009-9122-4</pub-id>
</citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chae</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Kazemibidokhti</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Ricles</surname>
<given-names>J. M.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Adaptive time series compensator for delay compensation of servo&#x2010;hydraulic actuator systems for real&#x2010;time hybrid simulation</article-title>. <source>Earthq. Eng. Struct. Dyn.</source> <volume>42</volume>, <fpage>1697</fpage>&#x2013;<lpage>1715</lpage>. <pub-id pub-id-type="doi">10.1002/eqe.2294</pub-id>
</citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Ricles</surname>
<given-names>J. M.</given-names>
</name>
</person-group> (<year>2009</year>). <article-title>Analysis of actuator delay compensation methods for real-time testing</article-title>. <source>Eng. Struct.</source> <volume>31</volume>, <fpage>2643</fpage>&#x2013;<lpage>2655</lpage>. <pub-id pub-id-type="doi">10.1016/j.engstruct.2009.06.012</pub-id>
</citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Ricles</surname>
<given-names>J. M.</given-names>
</name>
<name>
<surname>Marullo</surname>
<given-names>T. M.</given-names>
</name>
<name>
<surname>Mercan</surname>
<given-names>O.</given-names>
</name>
</person-group> (<year>2009</year>). <article-title>Real-time hybrid testing using the unconditionally stable explicit CR integration algorithm</article-title>. <source>Earthq. Eng. Struct. Dyn.</source> <volume>38</volume>, <fpage>23</fpage>&#x2013;<lpage>44</lpage>. <pub-id pub-id-type="doi">10.1002/eqe.838</pub-id>
</citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>P.-C.</given-names>
</name>
<name>
<surname>Chang</surname>
<given-names>C.-M.</given-names>
</name>
<name>
<surname>Spencer</surname>
<given-names>B. F.</given-names>
</name>
<name>
<surname>Tsai</surname>
<given-names>K.-C.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Adaptive model-based tracking control for real-time hybrid simulation</article-title>. <source>Bull. Earthq. Eng.</source> <volume>13</volume>, <fpage>1633</fpage>&#x2013;<lpage>1653</lpage>. <pub-id pub-id-type="doi">10.1007/s10518-014-9681-2</pub-id>
</citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Condori Uribe</surname>
<given-names>J. W.</given-names>
</name>
<name>
<surname>Salmeron</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Patino</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Montoya</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Dyke</surname>
<given-names>S. J.</given-names>
</name>
<name>
<surname>Silva</surname>
<given-names>C. E.</given-names>
</name>
<etal/>
</person-group> (<year>2023</year>). <article-title>Experimental benchmark control problem for multi-axial real-time hybrid simulation</article-title>. <source>Front. Built Environ.</source> <volume>9</volume>, <fpage>1270996</fpage>. <pub-id pub-id-type="doi">10.3389/fbuil.2023.1270996</pub-id>
</citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Darby</surname>
<given-names>A. P.</given-names>
</name>
<name>
<surname>Blakeborough</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Williams</surname>
<given-names>M. S.</given-names>
</name>
</person-group> (<year>1999</year>). <article-title>Real-time substructure tests using hydraulic actuator</article-title>. <source>J. Eng. Mech.</source> <volume>125</volume>, <fpage>1133</fpage>&#x2013;<lpage>1139</lpage>. <pub-id pub-id-type="doi">10.1061/(ASCE)0733-9399(1999)125:10(1133)</pub-id>
</citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Darby</surname>
<given-names>A. P.</given-names>
</name>
<name>
<surname>Williams</surname>
<given-names>M. S.</given-names>
</name>
<name>
<surname>Blakeborough</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2002</year>). <article-title>Stability and delay compensation for real-time substructure testing</article-title>. <source>J. Eng. Mech.</source> <volume>128</volume>, <fpage>1276</fpage>&#x2013;<lpage>1284</lpage>. <pub-id pub-id-type="doi">10.1061/(ASCE)0733-9399(2002)128:12(1276)</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Dyke</surname>
<given-names>S. J.</given-names>
</name>
<name>
<surname>Spencer</surname>
<given-names>B. F.</given-names>
</name>
<name>
<surname>Quast</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Sain</surname>
<given-names>M. K.</given-names>
</name>
</person-group> (<year>1995</year>). <article-title>Role of control-structure interaction in protective system design</article-title>. <source>J. Eng. Mech.</source> <volume>121</volume>, <fpage>322</fpage>&#x2013;<lpage>338</lpage>. <pub-id pub-id-type="doi">10.1061/(ASCE)0733-9399(1995)121:2(322)</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Gomez</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Dyke</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Maghareh</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2014</year>). <source>Enabling role of hybrid simulation within the NEES infrastructure in advancing earthquake engineering practice and research</source>. <pub-id pub-id-type="doi">10.13140/2.1.1828.6886</pub-id>
</citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hayati</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>An optimal discrete-time feedforward compensator for real-time hybrid simulation</article-title>. <source>Smart Struct. Syst.</source> <volume>20</volume>, <fpage>483</fpage>&#x2013;<lpage>498</lpage>. <pub-id pub-id-type="doi">10.12989/SSS.2017.20.4.483</pub-id>
</citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hayati</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Design and performance evaluation of an optimal discrete-time feedforward controller for servo-hydraulic compensation</article-title>. <source>J. Eng. Mech.</source> <volume>144</volume>, <fpage>04017163</fpage>. <pub-id pub-id-type="doi">10.1061/(ASCE)EM.1943-7889.0001399</pub-id>
</citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Horiuchi</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Inoue</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Konno</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Namita</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>1999</year>). <article-title>Real-time hybrid experimental system with actuator delay compensation and its application to a piping system with energy absorber</article-title>. <source>Earthq. Eng. Struct. Dyn.</source> <volume>28</volume>, <fpage>1121</fpage>&#x2013;<lpage>1141</lpage>. <pub-id pub-id-type="doi">10.1002/(SICI)1096-9845(199910)28:10&#x3c;1121::AID-EQE858&#x3e;3.0.CO;2-O</pub-id>
</citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Huang</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Ning</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Ding</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>A novel actuation dynamics adaptive compensation strategy for real-time hybrid simulation based on unscented kalman filter</article-title>. <source>Int. J. Struct. Stab. Dyn.</source> <volume>23</volume>, <fpage>2350107</fpage>. <pub-id pub-id-type="doi">10.1142/S0219455423501079</pub-id>
</citation>
</ref>
<ref id="B15">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Julier</surname>
<given-names>S. J.</given-names>
</name>
</person-group> (<year>2002</year>). &#x201c;<article-title>The scaled unscented transformation</article-title>,&#x201d; in <conf-name>Proceedings of the 2002 American Control Conference (IEEE Cat. No.CH37301). Presented at the Proceedings of 2002 American Control Conference</conf-name>, <conf-loc>Anchorage, AK, USA</conf-loc>, <conf-date>08-10 May 2002</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>4555</fpage>&#x2013;<lpage>4559</lpage>. <pub-id pub-id-type="doi">10.1109/ACC.2002.1025369</pub-id>
</citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jung</surname>
<given-names>R.-Y.</given-names>
</name>
<name>
<surname>Benson Shing</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Stauffer</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Thoen</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2007</year>). <article-title>Performance of a real-time pseudodynamic test system considering nonlinear structural response</article-title>. <source>Earthq. Eng. Struct. Dyn.</source> <volume>36</volume>, <fpage>1785</fpage>&#x2013;<lpage>1809</lpage>. <pub-id pub-id-type="doi">10.1002/eqe.722</pub-id>
</citation>
</ref>
<ref id="B17">
<citation citation-type="web">
<collab>Mathworks</collab> (<year>2024</year>). <article-title>MATLAB</article-title>. <comment>Available at: <ext-link ext-link-type="uri" xlink:href="https://www.mathworks.com/products/matlab.html">https://www.mathworks.com/products/matlab.html</ext-link> (Accessed July 27, 2024)</comment>.</citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mercan</surname>
<given-names>O.</given-names>
</name>
<name>
<surname>Ricles</surname>
<given-names>J. M.</given-names>
</name>
<name>
<surname>Sause</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Marullo</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2009</year>). <article-title>Kinematic transformations for planar multi&#x2010;directional pseudodynamic testing</article-title>. <source>Earthq. Eng. Struct. Dyn.</source> <volume>38</volume>, <fpage>1093</fpage>&#x2013;<lpage>1119</lpage>. <pub-id pub-id-type="doi">10.1002/eqe.886</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Najafi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Fermandois</surname>
<given-names>G. A.</given-names>
</name>
<name>
<surname>Dyke</surname>
<given-names>S. J.</given-names>
</name>
<name>
<surname>Spencer</surname>
<given-names>B. F.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Hybrid simulation with multiple actuators: a state-of-the-art review</article-title>. <source>Eng. Struct.</source> <volume>276</volume>, <fpage>115284</fpage>. <pub-id pub-id-type="doi">10.1016/j.engstruct.2022.115284</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Nakashima</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Kato</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Takaoka</surname>
<given-names>E.</given-names>
</name>
</person-group> (<year>1992</year>). <article-title>Development of real&#x2010;time pseudo dynamic testing</article-title>. <source>Earthq. Eng. Struct. Dyn.</source> <volume>21</volume>, <fpage>79</fpage>&#x2013;<lpage>92</lpage>. <pub-id pub-id-type="doi">10.1002/eqe.4290210106</pub-id>
</citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Nakashima</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Masaoka</surname>
<given-names>N.</given-names>
</name>
</person-group> (<year>1999</year>). <article-title>Real-time on-line test for MDOF systems</article-title>. <source>Earthq. Eng. Struct. Dyn.</source> <volume>28</volume>, <fpage>393</fpage>&#x2013;<lpage>420</lpage>. <pub-id pub-id-type="doi">10.1002/(SICI)1096-9845(199904)28:4&#x3c;393::AID-EQE823&#x3e;3.0.CO;2-C</pub-id>
</citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ning</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Adaptive feedforward and feedback compensation method for real-time hybrid simulation based on a discrete physical testing system model</article-title>. <source>J. Earthq. Eng.</source> <volume>26</volume>, <fpage>3841</fpage>&#x2013;<lpage>3863</lpage>. <pub-id pub-id-type="doi">10.1080/13632469.2020.1823912</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ning</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Kalman filter-based adaptive delay compensation for benchmark problem in real-time hybrid simulation</article-title>. <source>Appl. Sci.</source> <volume>10</volume>, <fpage>7101</fpage>. <pub-id pub-id-type="doi">10.3390/app10207101</pub-id>
</citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ouyang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Shi</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Shan</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Spencer</surname>
<given-names>B. F.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Backstepping adaptive control for real-time hybrid simulation including servo-hydraulic dynamics</article-title>. <source>Mech. Syst. Signal Process.</source> <volume>130</volume>, <fpage>732</fpage>&#x2013;<lpage>754</lpage>. <pub-id pub-id-type="doi">10.1016/j.ymssp.2019.05.042</pub-id>
</citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Palacio-Betancur</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Gutierrez Soto</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Adaptive tracking control for real-time hybrid simulation of structures subjected to seismic loading</article-title>. <source>Mech. Syst. Signal Process.</source> <volume>134</volume>, <fpage>106345</fpage>. <pub-id pub-id-type="doi">10.1016/j.ymssp.2019.106345</pub-id>
</citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Phillips</surname>
<given-names>B. M.</given-names>
</name>
<name>
<surname>Takada</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Spencer</surname>
<given-names>B. F.</given-names>
</name>
<name>
<surname>Fujino</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Feedforward actuator controller development using the backward-difference method for real-time hybrid simulation</article-title>. <source>Smart Struct. Syst.</source> <volume>14</volume>, <fpage>1081</fpage>&#x2013;<lpage>1103</lpage>. <pub-id pub-id-type="doi">10.12989/sss.2014.14.6.1081</pub-id>
</citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Silva</surname>
<given-names>C. E.</given-names>
</name>
<name>
<surname>Gomez</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Maghareh</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Dyke</surname>
<given-names>S. J.</given-names>
</name>
<name>
<surname>Spencer</surname>
<given-names>B. F.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Benchmark control problem for real-time hybrid simulation</article-title>. <source>Mech. Syst. Signal Process.</source> <volume>135</volume>, <fpage>106381</fpage>. <pub-id pub-id-type="doi">10.1016/j.ymssp.2019.106381</pub-id>
</citation>
</ref>
<ref id="B28">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Song</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2011</year>). <source>Dynamic model updating with applications in structural and damping systems: from linear to nonlinear, from off-line to real-time</source>. <comment>PhD Thesis</comment>.</citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Song</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Generalized minimum variance unbiased joint input-state estimation and its unscented scheme for dynamic systems with direct feedthrough</article-title>. <source>Mech. Syst. Signal Process.</source> <volume>99</volume>, <fpage>886</fpage>&#x2013;<lpage>920</lpage>. <pub-id pub-id-type="doi">10.1016/j.ymssp.2017.06.032</pub-id>
</citation>
</ref>
<ref id="B30">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Song</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Dyke</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Development of a cyber-physical experimental platform for real-time dynamic model updating</article-title>. <source>Mech. Syst. Signal Process.</source> <volume>37</volume>, <fpage>388</fpage>&#x2013;<lpage>402</lpage>. <pub-id pub-id-type="doi">10.1016/j.ymssp.2012.12.007</pub-id>
</citation>
</ref>
<ref id="B31">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Song</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Dyke</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Real-time dynamic model updating of a hysteretic structural system</article-title>. <source>J. Struct. Eng.</source> <volume>140</volume>, <fpage>04013082</fpage>. <pub-id pub-id-type="doi">10.1061/(ASCE)ST.1943-541X.0000857</pub-id>
</citation>
</ref>
<ref id="B32">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Song</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Hayati</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Real-time model updating for magnetorheological damper identification: an experimental study</article-title>. <source>Smart Struct. Syst.</source> <volume>20</volume>, <fpage>619</fpage>&#x2013;<lpage>636</lpage>. <pub-id pub-id-type="doi">10.12989/SSS.2017.20.5.619</pub-id>
</citation>
</ref>
<ref id="B33">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Song</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Zuo</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Jahangiri</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Han</surname>
<given-names>Q.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Conceptual study of a real-time hybrid simulation framework for monopile offshore wind turbines under wind and wave loads</article-title>. <source>Front. Built Environ.</source> <volume>6</volume>, <fpage>129</fpage>. <pub-id pub-id-type="doi">10.3389/fbuil.2020.00129</pub-id>
</citation>
</ref>
<ref id="B34">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Strano</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Terzo</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Actuator dynamics compensation for real-time hybrid simulation: an adaptive approach by means of a nonlinear estimator</article-title>. <source>Nonlinear Dyn.</source> <volume>85</volume>, <fpage>2353</fpage>&#x2013;<lpage>2368</lpage>. <pub-id pub-id-type="doi">10.1007/s11071-016-2831-0</pub-id>
</citation>
</ref>
<ref id="B35">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Wan</surname>
<given-names>E. A.</given-names>
</name>
<name>
<surname>Van Der Merwe</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2000</year>). &#x201c;<article-title>The unscented Kalman filter for nonlinear estimation</article-title>,&#x201d; in <conf-name>Proceedings of the IEEE 2000 Adaptive Systems for Signal Processing, Communications, and Control Symposium (Cat. No.00EX373). Presented at the Symposium on Adaptive Systems for Signal Processing Communications and Control</conf-name>, <conf-loc>Lake Louise, Alta., Canada</conf-loc>, <conf-date>04-04 October 2000</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>153</fpage>&#x2013;<lpage>158</lpage>. <pub-id pub-id-type="doi">10.1109/ASSPCC.2000.882463</pub-id>
</citation>
</ref>
<ref id="B36">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Gong</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>Unscented kalman filter-based two-stage adaptive compensation method for real-time hybrid simulation</article-title>. <source>J. Earthq. Eng.</source> <volume>28</volume>, <fpage>3221</fpage>&#x2013;<lpage>3255</lpage>. <pub-id pub-id-type="doi">10.1080/13632469.2024.2335346</pub-id>
</citation>
</ref>
<ref id="B37">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Guoshan</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Qiang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Bin</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>An adaptive delay compensation method based on a discrete system model for real-time hybrid simulation</article-title>. <source>SMART Struct. Syst</source>. <pub-id pub-id-type="doi">10.12989/sss.2020.25.5.569</pub-id>
</citation>
</ref>
<ref id="B38">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhao</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>French</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Shield</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Posbergh</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2003</year>). <article-title>Considerations for the development of real-time dynamic testing using servo-hydraulic actuation</article-title>. <source>Earthq. Eng. Struct. Dyn.</source> <volume>32</volume>, <fpage>1773</fpage>&#x2013;<lpage>1794</lpage>. <pub-id pub-id-type="doi">10.1002/eqe.301</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>