<?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">1394952</article-id>
<article-id pub-id-type="doi">10.3389/fbuil.2024.1394952</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>Robust decentralized adaptive compensation for the multi-axial real-time hybrid simulation benchmark</article-title>
<alt-title alt-title-type="left-running-head">Quiroz et al.</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/fbuil.2024.1394952">10.3389/fbuil.2024.1394952</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Quiroz</surname>
<given-names>Mar&#xed;a</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2771471/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-original-draft/"/>
<role content-type="https://credit.niso.org/contributor-roles/visualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/validation/"/>
<role content-type="https://credit.niso.org/contributor-roles/software/"/>
<role content-type="https://credit.niso.org/contributor-roles/methodology/"/>
<role content-type="https://credit.niso.org/contributor-roles/investigation/"/>
<role content-type="https://credit.niso.org/contributor-roles/formal-analysis/"/>
<role content-type="https://credit.niso.org/contributor-roles/data-curation/"/>
<role content-type="https://credit.niso.org/contributor-roles/conceptualization/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>G&#xe1;lmez</surname>
<given-names>Crist&#xf3;bal</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/988295/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
<role content-type="https://credit.niso.org/contributor-roles/validation/"/>
<role content-type="https://credit.niso.org/contributor-roles/software/"/>
<role content-type="https://credit.niso.org/contributor-roles/resources/"/>
<role content-type="https://credit.niso.org/contributor-roles/methodology/"/>
<role content-type="https://credit.niso.org/contributor-roles/conceptualization/"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Fermandois</surname>
<given-names>Gast&#xf3;n A.</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/841940/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
<role content-type="https://credit.niso.org/contributor-roles/validation/"/>
<role content-type="https://credit.niso.org/contributor-roles/supervision/"/>
<role content-type="https://credit.niso.org/contributor-roles/resources/"/>
<role content-type="https://credit.niso.org/contributor-roles/methodology/"/>
<role content-type="https://credit.niso.org/contributor-roles/conceptualization/"/>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>Departamento de Obras Civiles</institution>, <institution>Universidad T&#xe9;cnica Federico Santa Mar&#xed;a</institution>, <addr-line>Valpara&#xed;so</addr-line>, <country>Chile</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>Department of Engineering</institution>, <institution>City, University of London</institution>, <addr-line>London</addr-line>, <country>United Kingdom</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/247299/overview">Eleni N. Chatzi</ext-link>, ETH Z&#xfc;rich, Switzerland</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/994806/overview">Giuseppe Abbiati</ext-link>, Aarhus University, Denmark</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1087365/overview">Arturo Montoya</ext-link>, University of Texas at San Antonio, United States</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Gast&#xf3;n A. Fermandois, <email>gaston.fermandois@usm.cl</email>
</corresp>
</author-notes>
<pub-date pub-type="epub">
<day>08</day>
<month>07</month>
<year>2024</year>
</pub-date>
<pub-date pub-type="collection">
<year>2024</year>
</pub-date>
<volume>10</volume>
<elocation-id>1394952</elocation-id>
<history>
<date date-type="received">
<day>02</day>
<month>03</month>
<year>2024</year>
</date>
<date date-type="accepted">
<day>03</day>
<month>06</month>
<year>2024</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2024 Quiroz, G&#xe1;lmez and Fermandois.</copyright-statement>
<copyright-year>2024</copyright-year>
<copyright-holder>Quiroz, G&#xe1;lmez and Fermandois</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>Real-time hybrid simulation (RTHS) is a powerful and highly reliable technique integrating experimental testing with numerical modeling for studying rate-dependent components under realistic conditions. One of its key advantages is its cost-effectiveness compared to large-scale shake table testing, which is attained by selectively conducting experimental testing on critical parts of the analyzed structure, thus avoiding the assembly of the entire system. One of the fundamental advancements in RTHS methods is the development of multi-dimensional dynamic testing. In particular, multi-axial RTHS (maRTHS) aims to prescribe multi-degree-of-freedom (MDOF) loading from the numerical substructure over the test specimen. Under these conditions, synchronization is a significant challenge in multiple actuator loading assemblies. This study proposes a robust and decentralized adaptive compensation (RoDeAC) method for the next-generation maRTHS benchmark problem. An initial calibration of the dynamic compensator is carried out through offline numerical simulations. Subsequently, the compensator parameters are updated in real-time during the test using a recursive least squares adaptive algorithm. The results demonstrate outstanding performance in experiment synchronization, even in uncertain conditions, due to the variability of reference structures, seismic loading, and multi-actuator properties. Notably, this achievement is accomplished without needing detailed information about the test specimen, streamlining the procedure and reducing the risk of specimen deterioration. Additionally, the tracking performance of the tests closely aligns with the reference structure, further affirming the excellence of the outcomes.</p>
</abstract>
<kwd-group>
<kwd>real-time hybrid simulation</kwd>
<kwd>multiple actuators</kwd>
<kwd>adaptive compensation</kwd>
<kwd>decentralized control</kwd>
<kwd>dynamic coupling</kwd>
<kwd>benchmark</kwd>
</kwd-group>
<contract-sponsor id="cn001">Fondo Nacional de Desarrollo Cient&#xed;fico y Tecnol&#xf3;gico<named-content content-type="fundref-id">10.13039/501100002850</named-content>
</contract-sponsor>
<custom-meta-wrap>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Computational Methods in Structural 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 a powerful and highly reliable technique that integrates experimental testing with numerical modeling (<xref ref-type="bibr" rid="B18">Nakashima et al., 1992</xref>). As a real-time variant of pseudo-dynamic testing, RTHS enables studying rate-dependent components under realistic conditions. One of its key advantages is its cost-effectiveness, which is achieved by selectively conducting experimental testing on critical parts of the analyzed structure, thus avoiding the assembly of the entire system. The laboratory essays primarily focus on the experimental substructure, while the well-known portions are accurately represented through numerical modeling within a computer interface. This innovative approach offers a practical and efficient means of evaluating structural behavior and performance, making RTHS a valuable tool for various engineering applications (<xref ref-type="bibr" rid="B1">Asai et al., 2013</xref>; <xref ref-type="bibr" rid="B2">Botelho and Christenson, 2014</xref>; <xref ref-type="bibr" rid="B12">Ghaffary and Mohammadi, 2019</xref>).</p>
<p>In RTHS, actuators are typically utilized to impose the numerical response over the experimental parts. Simultaneously, the experimental forces are measured and fed back into the numerical substructure. However, the procedure must enforce real-time compatibility and equilibrium at the hybrid interface (<xref ref-type="bibr" rid="B8">Dermitzakis and Mahin, 1985</xref>). Therefore, seamless synchronization between the numerical and experimental components demands meticulous time management to avoid inaccurate and unstable responses (<xref ref-type="bibr" rid="B14">Horiuchi et al., 1996</xref>). Several challenges arise in this process, including the time required for calculations, the precise application of displacements using actuators, and the digital acquisition of measured forces within extremely small time increments. As a consequence, researchers have developed control techniques to compensate for the actuator&#x2019;s dynamics and minimize tracking errors to address the synchronization challenge. Early methods are based on polynomial extrapolation, assuming a constant delay (<xref ref-type="bibr" rid="B13">Horiuchi et al., 1999</xref>). Other methods are based on the inverse of the first-order transfer function, which represents the transfer system (<xref ref-type="bibr" rid="B5">Chen and Ricles, 2010</xref>). Models with higher-order transfer functions are used for model-based techniques (<xref ref-type="bibr" rid="B3">Carrion and Spencer, 2007</xref>). Model-based feedforward and feedback compensation (<xref ref-type="bibr" rid="B21">Phillips and Spencer Jr, 2012</xref>) have excellent results if a good plant model is available to design the controller. However, there are no guarantees of accuracy or stability when significant uncertainty exists in the model.</p>
<p>An alternative to traditional dynamic compensators is the adaptive compensation algorithm, which has been proposed to address the uncertainty or significant non-linearity in the control plant. Some of them use a first-order transfer function with adapting parameters to represent the transfer system, where the adaptation depends on a frequency-domain evaluation index (FEI) analysis of commanded and measured signals, such as adaptive phase-lead compensation (<xref ref-type="bibr" rid="B24">Tao and Mercan, 2019</xref>) or windowed FEI compensation (<xref ref-type="bibr" rid="B26">Xu et al., 2019</xref>). Other methods, like adaptive time series (<xref ref-type="bibr" rid="B4">Chae et al., 2013</xref>) and conditional adaptive time series (<xref ref-type="bibr" rid="B20">Palacio-Betancur and Gutierrez Soto, 2019</xref>), estimate the plant through Taylor series expansion and adjust the parameters in the time domain. Adaptive model-based compensation (<xref ref-type="bibr" rid="B6">Chen et al., 2015)</xref> consists of an estimate of the plant in the frequency domain; then, compensation is implemented in the time domain using numeric derivatives of the commanded signal and adaptation based on the gradient. <xref ref-type="bibr" rid="B25">Wang et al. (2020)</xref> used adaptive delay compensation based on a discrete system model where the compensation commands are generated using the target, measured, and previous displacements. <xref ref-type="bibr" rid="B19">Ning et al. (2020)</xref> used an adaptive model-based control strategy with feedforward and feedback control and added a Kalman filter for parameter estimation.</p>
<p>The necessity of carrying out realistic experiments has been the principal factor that led to the development of multi-dimensional testing in RTHS, giving way to multi-axial RTHS (maRTHS). These tests prescribe multiple-degree-of-freedom (MDOF) responses from the numerical substructure into the test specimen, which requires multiple hydraulic actuators to prescribe all the motions over the experimental substructure (<xref ref-type="bibr" rid="B10">Fermandois and Spencer, 2017</xref>). As the complexity of the problem increases, enforcing a higher number of degrees of freedom (DOFs) at a given interface boundary condition may require incorporating supplementary physical components or multi-axial loading systems, such as high-stiff links or couplers. The assemblage of multi-axial hydraulic actuators demands nonlinear coordinate transformations, adding complexity due to nonlinearities, uncertainties, and internal coupling, among other complexities. Consequently, conducting experiments with such multi-axial setups and achieving precise synchronization remain a considerable challenge, making developing and validating effective multiple-input multiple-output (MIMO) control strategies urgently necessary (<xref ref-type="bibr" rid="B16">Najafi et al., 2023</xref>). Moreover, most of the previously mentioned compensation algorithms have been tested only on single-actuator problems (<xref ref-type="bibr" rid="B22">Silva et al., 2020</xref>).</p>
<p>Meanwhile, the compensation algorithms in RTHS predominantly use displacement control. Two primary real-time control approaches are employed for multi-actuator devices: centralized and decentralized (<xref ref-type="bibr" rid="B16">Najafi et al., 2023</xref>). The former adopts a more comprehensive approach concerning the interaction between actuators, treating multiple actuator loading platforms as MIMO systems in Cartesian coordinates and addressing system-wide actuator dynamics (<xref ref-type="bibr" rid="B10">Fermandois and Spencer, 2017</xref>). However, the design and implementation of centralized controllers can pose challenges due to the many parameters requiring fine-tuning. On the contrary, decentralized control is preferred due to its comparatively simple design, enabling dynamic compensators initially crafted for single-input, single-output systems in actuator coordinates (<xref ref-type="bibr" rid="B17">Najafi et al., 2020</xref>). However, it should be noted that such controllers may exhibit limitations when grappling with experiments characterized by significant multi-actuator and specimen dynamic coupling.</p>
<p>Hence, this study proposes a robust and decentralized adaptive compensation (RoDeAC) method for maRTHS experimental tests and is developed and validated through the next-generation maRTHS benchmark problem (<xref ref-type="bibr" rid="B7">Condori et al., 2023</xref>). The proposed method can be designed independently from the experimental substructure, avoiding unnecessary initial identification testing that may cause premature damage to the physical specimens before the maRTHS test. By incorporating adaptation over the compensation layer, this technique maintains excellent synchronization even in the presence of uncertain and time-varying properties of the specimen. We propose defining the initial conditions and parameters of the controller using only knowledge of the transfer system through a model of the multi-actuator loading assembly, including the interaction with the test specimen. The initial calibration of the controller is carried out through offline simulations, where the decentralized multi-actuator is trained with assumed perturbed structural loading and coupling values.</p>
<p>This study is structured as follows: <xref ref-type="sec" rid="s2">Section 2</xref> presents the problem formulation corresponding to the virtual maRTHS benchmark problem. <xref ref-type="sec" rid="s3">Section 3</xref> describes the methodology employed to compensate the actuators involved in maRTHS using a recursive least squares (RLS) adaptive compensator. <xref ref-type="sec" rid="s4">Section 4</xref> details the initial calibration of RoDeAC for the benchmark problem. <xref ref-type="sec" rid="s5">Section 5</xref> provides the results of the numerical simulations and their comparisons regarding the benchmark. Finally, <xref ref-type="sec" rid="s6">Section 6</xref> discusses the principal findings and final remarks of this study.</p>
</sec>
<sec id="s2">
<title>2 Problem description</title>
<sec id="s2-1">
<title>2.1 Reference structure</title>
<p>The maRTHS benchmark problem (<xref ref-type="bibr" rid="B7">Condori et al., 2023</xref>) is considered in this study for the development and validation of a proposed robust compensation algorithm that is capable of rejecting uncertainties mainly due to specimen-multiactuator interactions. In this benchmark problem, a three-story, three-bay, planar steel moment frame is chosen as the reference structure, as shown in <xref ref-type="fig" rid="F1">Figure 1</xref>. Steel shapes and tributary gravity loads are provided to compute masses for dynamic transient analyses.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Reference structure considered for the maRTHS benchmark problem (<xref ref-type="bibr" rid="B7">Condori et al., 2023</xref>).</p>
</caption>
<graphic xlink:href="fbuil-10-1394952-g001.tif"/>
</fig>
<p>A multi-degree-of-freedom (MDOF) linear-time-invariant (LTI) numerical model is provided for the reference structure. The structural system has linear-elastic behavior and three degrees of freedom (DOFs) per node: two translational DOFs along the global <inline-formula id="inf1">
<mml:math id="m1">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>- and <inline-formula id="inf2">
<mml:math id="m2">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>-axes and one rotational DOF <inline-formula id="inf3">
<mml:math id="m3">
<mml:mrow>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> around the <inline-formula id="inf4">
<mml:math id="m4">
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>-axis, perpendicular to the <inline-formula id="inf5">
<mml:math id="m5">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>-plane. Therefore, the total number of DOFs in this model is 38, arranged in a displacement vector <inline-formula id="inf6">
<mml:math id="m6">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> according to the numeration in <xref ref-type="fig" rid="F2">Figure 2</xref>, i.e., <inline-formula id="inf7">
<mml:math id="m7">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2026;</mml:mo>
<mml:msub>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mn>38</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. Numeration begins with the horizontal displacements, followed by the vertical displacements, and finally, the rotations of each node. Moreover, only seismic loading in the horizontal direction is considered for this maRTHS study (i.e., no gravity loads are applied over the structural system).</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Numeration of DOF of the reference structure (adapted from <xref ref-type="bibr" rid="B7">Condori et al., 2023</xref>).</p>
</caption>
<graphic xlink:href="fbuil-10-1394952-g002.tif"/>
</fig>
<p>The equation of motion (EOM) is given by Eq. <xref ref-type="disp-formula" rid="e1">1</xref>:<disp-formula id="e1">
<mml:math id="m8">
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>C</mml:mi>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>K</mml:mi>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>M</mml:mi>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:msub>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
<mml:mi>g</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>where <inline-formula id="inf8">
<mml:math id="m9">
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf9">
<mml:math id="m10">
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf10">
<mml:math id="m11">
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> are the mass, damping, and stiffness matrices of the reference structure, respectively. <inline-formula id="inf11">
<mml:math id="m12">
<mml:mrow>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is an influence vector that describes the inertial effects of the seismic excitation on the masses of the system, where a value of one is defined in the horizontal directions (i.e., the direction of the ground motion) and zero in the rest. <inline-formula id="inf12">
<mml:math id="m13">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
<mml:mi>g</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is a scalar function associated with the ground acceleration in the <inline-formula id="inf13">
<mml:math id="m14">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>-direction. Finally, <inline-formula id="inf14">
<mml:math id="m15">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf15">
<mml:math id="m16">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf16">
<mml:math id="m17">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> are the relative acceleration, velocity, and displacement vectors with respect to the ground for each DOF, respectively. Initial rest conditions are considered for this problem (i.e., <inline-formula id="inf17">
<mml:math id="m18">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf18">
<mml:math id="m19">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>38</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>).</p>
<p>As a consequence, the first five natural frequencies are <inline-formula id="inf19">
<mml:math id="m20">
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2.29</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> Hz, <inline-formula id="inf20">
<mml:math id="m21">
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>12.74</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> Hz, <inline-formula id="inf21">
<mml:math id="m22">
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>26.28</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> Hz, <inline-formula id="inf22">
<mml:math id="m23">
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>26.53</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> Hz, and <inline-formula id="inf23">
<mml:math id="m24">
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>5</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>29.91</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> Hz. Meanwhile, the damping matrix is calculated using the Rayleigh damping method with a damping ratio of 5% specified for the first and third modes, assumed to be proportional to the sum of the mass and stiffness matrices of the reference system.</p>
</sec>
<sec id="s2-2">
<title>2.2 Substructuring</title>
<p>In the context of RTHS, instead of solving the EOM for the entire reference domain, a process known as <italic>substructuring</italic> can be employed to subdivide the domain into smaller subdomains, such that the order of large and complex structural systems is reduced for efficient computations (<xref ref-type="bibr" rid="B8">Dermitzakis and Mahin, 1985</xref>). Each subdomain can be solved independently, provided that coupling between components is enforced through compatibility and equilibrium conditions at their interfaces.</p>
<p>In the benchmark case, the domain is decomposed into two non-overlapping subdomains, i.e., <inline-formula id="inf24">
<mml:math id="m25">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
<mml:mi>N</mml:mi>
</mml:msup>
<mml:mo>&#x222a;</mml:mo>
<mml:msup>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
<mml:mi>E</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf25">
<mml:math id="m26">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
<mml:mi>N</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is called the numerical substructure and <inline-formula id="inf26">
<mml:math id="m27">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
<mml:mi>E</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is the experimental substructure, as shown in <xref ref-type="fig" rid="F3">Figure 3</xref>. The first-story central frame is selected as the experimental substructure, which is assumed to be the less-understood part of the entire structure.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Partition considered for the maRTHS benchmark problem. (adapted from <xref ref-type="bibr" rid="B7">Condori et al., 2023</xref>).</p>
</caption>
<graphic xlink:href="fbuil-10-1394952-g003.tif"/>
</fig>
<p>If we assume the frame exhibits linear elastic behavior, the matrices for partitioned mass, damping, and stiffness can be expressed as the combination of numerical components (denoted with the superscript &#x201c;<inline-formula id="inf27">
<mml:math id="m28">
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>&#x201d;) and experimental components (denoted with the superscript &#x201c;<inline-formula id="inf28">
<mml:math id="m29">
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>&#x201d;): as shown in Eqs <xref ref-type="disp-formula" rid="e2">2</xref>, <xref ref-type="disp-formula" rid="e3">3</xref>:<disp-formula id="e2">
<mml:math id="m30">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msup>
<mml:mi>M</mml:mi>
<mml:mi>N</mml:mi>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi>M</mml:mi>
<mml:mi>E</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msup>
<mml:mi>C</mml:mi>
<mml:mi>N</mml:mi>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi>C</mml:mi>
<mml:mi>E</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msup>
<mml:mi>K</mml:mi>
<mml:mi>N</mml:mi>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi>K</mml:mi>
<mml:mi>E</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>M</mml:mi>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:msub>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
<mml:mi>g</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>
<disp-formula id="e3">
<mml:math id="m31">
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi>M</mml:mi>
<mml:mi>N</mml:mi>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi>M</mml:mi>
<mml:mi>E</mml:mi>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mi>C</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi>C</mml:mi>
<mml:mi>N</mml:mi>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi>C</mml:mi>
<mml:mi>E</mml:mi>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mi>K</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi>K</mml:mi>
<mml:mi>N</mml:mi>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi>K</mml:mi>
<mml:mi>E</mml:mi>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>
</p>
<p>The terms associated with the experimental substructure can be arranged into the right-hand side of the EOM as described in Eqs <xref ref-type="disp-formula" rid="e4">4</xref>, <xref ref-type="disp-formula" rid="e5">5</xref>:<disp-formula id="e4">
<mml:math id="m32">
<mml:mrow>
<mml:msup>
<mml:mi>M</mml:mi>
<mml:mi>N</mml:mi>
</mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi>C</mml:mi>
<mml:mi>N</mml:mi>
</mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi>K</mml:mi>
<mml:mi>N</mml:mi>
</mml:msup>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>M</mml:mi>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:msub>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
<mml:mi>g</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mi>f</mml:mi>
<mml:mi>E</mml:mi>
</mml:msup>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>
<disp-formula id="e5">
<mml:math id="m33">
<mml:mrow>
<mml:msup>
<mml:mi>f</mml:mi>
<mml:mi>E</mml:mi>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi>M</mml:mi>
<mml:mi>E</mml:mi>
</mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi>C</mml:mi>
<mml:mi>E</mml:mi>
</mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi>K</mml:mi>
<mml:mi>E</mml:mi>
</mml:msup>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>
</p>
<p>Here, <inline-formula id="inf29">
<mml:math id="m34">
<mml:mrow>
<mml:msup>
<mml:mi>f</mml:mi>
<mml:mi>E</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is the feedback force vector produced by the experimental substructure during the dynamic testing, directly measured or estimated using measured data from the experimental domain.</p>
<p>Due to boundary conditions, both compatibility and equilibrium must be satisfied, as mentioned previously in this section. The first condition assures that the displacements at the interface of the subdomains are the same, allowing maRTHS to impose the numerical displacements (and their time derivatives) into the experimental substructure. In this case, they are given by the following DOFs: <inline-formula id="inf30">
<mml:math id="m35">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mi>N</mml:mi>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mn>4</mml:mn>
<mml:mi>N</mml:mi>
</mml:msubsup>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mn>7</mml:mn>
<mml:mi>N</mml:mi>
</mml:msubsup>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mn>16</mml:mn>
<mml:mi>N</mml:mi>
</mml:msubsup>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mn>19</mml:mn>
<mml:mi>N</mml:mi>
</mml:msubsup>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mn>28</mml:mn>
<mml:mi>N</mml:mi>
</mml:msubsup>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mn>31</mml:mn>
<mml:mi>N</mml:mi>
</mml:msubsup>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. The second condition establishes the relationship between the numerical and experimental forces as their sum at the interface must equal zero (i.e., force equilibrium). Then, in maRTHS, the generated physical restoring forces <inline-formula id="inf31">
<mml:math id="m36">
<mml:mrow>
<mml:msup>
<mml:mi>f</mml:mi>
<mml:mi>E</mml:mi>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:msubsup>
<mml:mi>F</mml:mi>
<mml:mn>4</mml:mn>
<mml:mi>E</mml:mi>
</mml:msubsup>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msubsup>
<mml:mi>F</mml:mi>
<mml:mn>7</mml:mn>
<mml:mi>E</mml:mi>
</mml:msubsup>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msubsup>
<mml:mi>F</mml:mi>
<mml:mn>16</mml:mn>
<mml:mi>E</mml:mi>
</mml:msubsup>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msubsup>
<mml:mi>F</mml:mi>
<mml:mn>19</mml:mn>
<mml:mi>E</mml:mi>
</mml:msubsup>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msubsup>
<mml:mi>M</mml:mi>
<mml:mn>28</mml:mn>
<mml:mi>E</mml:mi>
</mml:msubsup>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msubsup>
<mml:mi>M</mml:mi>
<mml:mn>31</mml:mn>
<mml:mi>E</mml:mi>
</mml:msubsup>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> are measured and fed back to the numerical substructure. Both conditions are illustrated in <xref ref-type="fig" rid="F3">Figure 3</xref>.</p>
<p>In maRTHS, the previously mentioned process is repeated until the simulation reaches the final simulation time <inline-formula id="inf32">
<mml:math id="m37">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, with real-time constraints. In that regard, <xref ref-type="fig" rid="F3">Figure 3</xref> can be considered the ideal maRTHS since there are no additional components such as hydraulic actuators, inertial effects (e.g., the mass of loading connectors), or measured signals contaminated with high-frequency noise. In an actual RTHS implementation, the experimental substructure is physically built and connected to the numerical substructure through a <italic>transfer system</italic> (i.e., loading assembly) to ensure dynamic synchronized motion at the substructure interface nodes during the real-time experiment. The insertion of the transfer system in the experimental domain changes the dynamic properties of the experimental substructure, and a control approach must be included to compensate for these added dynamic and other negative effects. The virtual simulation of this realistic computational implementation is called virtual RTHS (vRTHS), which is considered the closest realization of an actual RTHS for training and development purposes.</p>
<p>In this benchmark problem, the EOM is integrated using the fourth-order Runge&#x2013;Kutta integration scheme incorporated in Simulink (ode4), and the sampling frequency <inline-formula id="inf33">
<mml:math id="m38">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is fixed at 1024&#xa0;Hz.</p>
</sec>
<sec id="s2-3">
<title>2.3 Transfer system</title>
<p>In this section, we explain the transfer system, which consists of a set of servo-hydraulic actuators. First, the vertical DOFs along the global coordinate <inline-formula id="inf34">
<mml:math id="m39">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> are ignored due to their insignificant values compared to the horizontal displacements. The main reason for this assumption is the negligible axial deformations in columns since gravity loads are not incorporated in the maRTHS simulation and columns show high axial stiffness. On the other hand, due to experimental setup limitations, only the boundary conditions for node 4 of the experimental substructure are prescribed and implemented in the maRTHS benchmark problem. Therefore, only two actuators provide translational and rotational motion to node 4 of the experimental substructure with the aid of a coupler system. The experimental setup is shown in <xref ref-type="fig" rid="F4">Figure 4</xref>, assembled in the Intelligent Infrastructure Systems Laboratory (IISL) at Purdue University (<xref ref-type="bibr" rid="B7">Condori et al., 2023</xref>). It should be noted that DOF <inline-formula id="inf35">
<mml:math id="m40">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mn>16</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, which represents the vertical displacement of node 4, has been excluded from this study, as elucidated earlier, and consequently is not depicted in <xref ref-type="fig" rid="F4">Figure 4</xref>. In addition, node 7 DOFs should be measured in practice. However, in this virtual implementation, they are estimated from the ideal properties of the experimental substructure and the estimated node 4 DOFs from the displacements of the actuators.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Description of the experimental setup employed for the maRTHS benchmark problem (adapted from <xref ref-type="bibr" rid="B7">Condori et al., 2023</xref>).</p>
</caption>
<graphic xlink:href="fbuil-10-1394952-g004.tif"/>
</fig>
<p>The servo-hydraulic actuators are Shore Western 910D series, with a nominal force capacity of 9.34&#xa0;kN and a stroke of &#xb1;63&#xa0;mm, with a built-in linear variable differential transformer (LVDT) transducer that collects measurements of linear displacements, and two load cells (Interface, 1000 series) with a nominal force capacity of 11.2 kN, providing instantaneous force measurements. These hydraulic actuators operate with a hydraulic power supply (MTS pump) with a capacity of up to 680&#xa0;L/min at 206 Bar. Meanwhile, the coupler, made from SAE 1018 low-carbon steel plates, has a mass of 17.9&#xa0;kg. Furthermore, it is worth mentioning that the benchmark problem statement does not explicitly report the moment of inertia with respect to the center of mass of the coupler since it is assumed that these inertial effects were indeed incorporated when they conducted system identification of the control plant (i.e., transfer system connected to the test specimen).</p>
<sec id="s2-3-1">
<title>2.3.1 Coupler coordinate transformation</title>
<p>The actuators enforce translations into the physical specimen. Therefore, a coordinate transformation is required between the translational and rotational DOFs of the numerical substructure in Cartesian coordinates and the displacements on actuator coordinates. The following four important assumptions are made:<list list-type="simple">
<list-item>
<p>i. The coupler deformations are negligible (i.e., rigid body motion).</p>
</list-item>
<list-item>
<p>ii. The vertical motion of the nodes is neglected.</p>
</list-item>
<list-item>
<p>iii. The rotations of the column-beam joints are small because the behavior of the frame is limited to linear elasticity.</p>
</list-item>
<list-item>
<p>iv. The connection of the coupler to the column-beam joint provided by the high-strength bolts is rigid; hence, the deformations are negligible.</p>
</list-item>
</list>
</p>
<p>
<xref ref-type="fig" rid="F5">Figure 5</xref> shows the kinematics of the rigid coupler, illustrated by the blue dashed triangle in the default position and with a green continuous triangle for finite rotations. Considering the geometry shown in <xref ref-type="fig" rid="F5">Figure 5</xref>, the coordinate transformation can be calculated from Eq. <xref ref-type="disp-formula" rid="e6">6</xref>:<disp-formula id="e6">
<mml:math id="m41">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mn>4</mml:mn>
<mml:mi mathvariant="normal">N</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>295.39</mml:mn>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>cos</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mn>28</mml:mn>
<mml:mi mathvariant="normal">N</mml:mi>
</mml:msubsup>
<mml:mo>&#x2010;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>25.46</mml:mn>
<mml:mi mathvariant="normal">&#x3c0;</mml:mi>
</mml:mrow>
<mml:mn>180</mml:mn>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>cos</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>25.46</mml:mn>
<mml:mi mathvariant="normal">&#x3c0;</mml:mi>
</mml:mrow>
<mml:mn>180</mml:mn>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>cos</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mn>28</mml:mn>
<mml:mi mathvariant="normal">N</mml:mi>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>25.46</mml:mn>
<mml:mi mathvariant="normal">&#x3c0;</mml:mi>
</mml:mrow>
<mml:mn>180</mml:mn>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2010;</mml:mo>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>cos</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>25.46</mml:mn>
<mml:mi mathvariant="normal">&#x3c0;</mml:mi>
</mml:mrow>
<mml:mn>180</mml:mn>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>where <inline-formula id="inf36">
<mml:math id="m42">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> are the target displacements obtained from the geometric transformations of the numerical substructure, <inline-formula id="inf37">
<mml:math id="m43">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> are the actual displacements from each actuator, where subscript 1 and 2 represent the bottom and top actuators, respectively (hence, they are in &#x201c;actuator coordinates&#x201d;).</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Rigid coupler kinematics (adapted from <xref ref-type="bibr" rid="B7">Condori et al., 2023</xref>).</p>
</caption>
<graphic xlink:href="fbuil-10-1394952-g005.tif"/>
</fig>
<p>Meanwhile, <inline-formula id="inf38">
<mml:math id="m44">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>4</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf39">
<mml:math id="m45">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>28</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the estimated DOFs of translation and rotation of node 4 in frame coordinates from the geometric transformations of the measured actuator displacements <inline-formula id="inf40">
<mml:math id="m46">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> provided in Eqs <xref ref-type="disp-formula" rid="e7">7</xref>, <xref ref-type="disp-formula" rid="e8">8</xref>:<disp-formula id="e7">
<mml:math id="m47">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>28</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>295.39</mml:mn>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="normal">sin</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>25.46</mml:mn>
<mml:mi>&#x3c0;</mml:mi>
</mml:mrow>
<mml:mn>180</mml:mn>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>
<disp-formula id="e8">
<mml:math id="m48">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>195.39</mml:mn>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi mathvariant="normal">cos</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>28</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>25.46</mml:mn>
<mml:mi>&#x3c0;</mml:mi>
</mml:mrow>
<mml:mn>180</mml:mn>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2212;</mml:mo>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="normal">cos</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>25.46</mml:mn>
<mml:mi>&#x3c0;</mml:mi>
</mml:mrow>
<mml:mn>180</mml:mn>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>
</p>
</sec>
<sec id="s2-3-2">
<title>2.3.2 Control plant dynamics</title>
<p>The control plant (i.e., transfer system &#x002B; specimen) has two inputs <inline-formula id="inf41">
<mml:math id="m49">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> and two outputs <inline-formula id="inf42">
<mml:math id="m50">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> representing the control inputs and measured displacements, respectively. Therefore, a compact 2 &#xd7; 2 transfer matrix description of the control plant is convenient, as expressed in Eq. <xref ref-type="disp-formula" rid="e9">9</xref>:<disp-formula id="e9">
<mml:math id="m51">
<mml:mrow>
<mml:mi>H</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<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:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>where <inline-formula id="inf43">
<mml:math id="m52">
<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:math>
</inline-formula> is the transfer function for output <inline-formula id="inf44">
<mml:math id="m53">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, given input <inline-formula id="inf45">
<mml:math id="m54">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. The diagonal terms describe the direct relationship between the input and output of a specific actuator when this is commanded. In contrast, the off-diagonal terms provide the internal coupling behavior of one actuator when the other is commanded. Therefore, the control plant is rewritten in Eq. <xref ref-type="disp-formula" rid="e10">10</xref>:<disp-formula id="e10">
<mml:math id="m55">
<mml:mrow>
<mml:mi>H</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mn>11</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mn>11</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mtd>
<mml:mtd>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mn>12</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mn>12</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mn>21</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mn>21</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mtd>
<mml:mtd>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mn>22</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mn>22</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2219;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(10)</label>
</disp-formula>where <inline-formula id="inf46">
<mml:math id="m56">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>u</mml:mi>
<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 open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>e</mml:mi>
<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="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</inline-formula> represents the numerator and denominator of the transfer function <inline-formula id="inf47">
<mml:math id="m57">
<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:math>
</inline-formula> and <inline-formula id="inf48">
<mml:math id="m58">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>u</mml:mi>
<mml:msub>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>e</mml:mi>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</inline-formula> characterizes the poles and zeros of the frame (experimental substructure).</p>
<p>The nominal values for the transfer function parameters of Eq. <xref ref-type="disp-formula" rid="e10">10</xref> are identified using experimental data using four spectral densities of band-limited white noise (BLWN) signals as inputs to the control plant. The first two tests were implemented using a 0&#x2013;100&#xa0;Hz BLWN signal to only one of the actuators while setting zero for the other one, thus allowing the calculation of the columns of the experimental transfer matrix. Then, a two-pole transfer function model is fitted to the experimental frequency response functions (FRFs) (<xref ref-type="bibr" rid="B7">Condori et al., 2023</xref>). Then, transfer function parameters are modeled as random variables with a normal distribution to consider uncertainty in the system (e.g., geometry, material properties, eccentricity, and nonlinearities). Random variations in the poles and zeros of the nominal plant model generate these differences by introducing changes from a standard normal distribution sampling process, which creates a family of FRFs where any FRF member represents a potential control plant. Finally, the nominal values and standard deviation of each parameter are presented in <xref ref-type="table" rid="T1">Table 1</xref> and drawn in <xref ref-type="fig" rid="F6">Figure 6</xref>.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Parameter uncertainty definition (<xref ref-type="bibr" rid="B7">Condori et al., 2023</xref>).</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Component (see Eq. <xref ref-type="disp-formula" rid="e10">10</xref>)</th>
<th align="center">Parameter</th>
<th align="center">Nominal value (&#x3bc;)</th>
<th align="center">Standard deviation (&#x3c3;)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td rowspan="4" align="center">
<inline-formula id="inf49">
<mml:math id="m59">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>u</mml:mi>
<mml:msub>
<mml:mi>m</mml:mi>
<mml:mn>11</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>e</mml:mi>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mn>11</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf50">
<mml:math id="m60">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>u</mml:mi>
<mml:msub>
<mml:mi>m</mml:mi>
<mml:mn>21</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>e</mml:mi>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mn>21</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">Zero 1</td>
<td align="center">&#x2212;753.98</td>
<td align="center">41.47</td>
</tr>
<tr>
<td align="center">Zero 2</td>
<td align="center">&#x2212;565.48</td>
<td align="center">31.1</td>
</tr>
<tr>
<td align="center">Pole 1</td>
<td align="center">&#x2212;16.65</td>
<td align="center">1.00</td>
</tr>
<tr>
<td align="center">Pole 2</td>
<td align="center">&#x2212;251.32</td>
<td align="center">15.08</td>
</tr>
<tr>
<td rowspan="4" align="center">
<inline-formula id="inf51">
<mml:math id="m61">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>u</mml:mi>
<mml:msub>
<mml:mi>m</mml:mi>
<mml:mn>12</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>e</mml:mi>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mn>12</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf52">
<mml:math id="m62">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>u</mml:mi>
<mml:msub>
<mml:mi>m</mml:mi>
<mml:mn>22</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>e</mml:mi>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mn>22</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">Zero 1</td>
<td align="center">&#x2212;18.85</td>
<td align="center">0.57</td>
</tr>
<tr>
<td align="center">Zero 2</td>
<td align="center">&#x2212;31.42</td>
<td align="center">0.94</td>
</tr>
<tr>
<td align="center">Pole 1</td>
<td align="center">&#x2212;21.99</td>
<td align="center">0.66</td>
</tr>
<tr>
<td align="center">Pole 2</td>
<td align="center">&#x2212;116.24</td>
<td align="center">&#x2212;3.49</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf53">
<mml:math id="m63">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>u</mml:mi>
<mml:msub>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>e</mml:mi>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">Pole 1 and 2</td>
<td align="center">&#x2212;314.16 &#xb1; 395.84i</td>
<td align="center">15.71 &#x2b; 19.79i</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>FRF regions for the plant model uncertainty. (adapted from <xref ref-type="bibr" rid="B7">Condori et al., 2023</xref>).</p>
</caption>
<graphic xlink:href="fbuil-10-1394952-g006.tif"/>
</fig>
</sec>
</sec>
</sec>
<sec sec-type="methods" id="s3">
<title>3 Methodology</title>
<sec id="s3-1">
<title>3.1 Recursive least squares adaptive compensation</title>
<p>In this study, the recursive least squares adaptive compensation (RLS-AC) initially proposed by <xref ref-type="bibr" rid="B11">Galmez and Fermandois (2022)</xref> for maRTHS systems is considered for application in the context of the maRTHS benchmark problem to provide a detailed comparison in terms of its performance and robustness with the benchmark results. The compensation is employed in a decentralized manner for reference tracking of multiple actuators in maRTHS. In this way, each actuator is treated as an independent control plant, and the goal of each compensator is to minimize the tracking error between a target signal <inline-formula id="inf54">
<mml:math id="m64">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and the measured signal <inline-formula id="inf55">
<mml:math id="m65">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> for a single actuator, i.e., <inline-formula id="inf56">
<mml:math id="m66">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="" close="|" separators="&#x7c;">
<mml:mrow>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mo>&#x3d;</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="|" close="" separators="&#x7c;">
<mml:mrow>
<mml:mrow>
<mml:mo>&#x2248;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>The RLS-AC technique consists of the design of two fundamental components: (i) a feedforward compensator, responsible for reference-tracking performance; and (ii) a recursive parameter estimator, which aims to provide sufficient robustness to the closed-loop system under unwanted disturbances and measurement noises. Both the feedforward and parameter estimators are designed independently, based on the nominal control plant model defined in Section 2.3. A schematic representation of the RLS-AC architecture employed in RTHS is presented in <xref ref-type="fig" rid="F7">Figure 7</xref>.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Main architecture of RLS adaptive compensation.</p>
</caption>
<graphic xlink:href="fbuil-10-1394952-g007.tif"/>
</fig>
<p>In this study, three discrete-time signals are considered in the RLS-AC architecture: (i) target signal <inline-formula id="inf57">
<mml:math id="m67">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> coming from the numerical substructure; (ii) command signal <inline-formula id="inf58">
<mml:math id="m68">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> that is generated from a feedforward controller and applied to the control plant; and (iii) measured signal <inline-formula id="inf59">
<mml:math id="m69">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> from the control plant, including the specimen-actuator interaction and sensor noise. Note that the relationship between continuous and discrete time is given by <inline-formula id="inf60">
<mml:math id="m70">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>i</mml:mi>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf61">
<mml:math id="m71">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the discrete-time index and <inline-formula id="inf62">
<mml:math id="m72">
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>/</mml:mo>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>s</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the sampling time. The adaptation process is made through four adaptive parameters represented by the vector <inline-formula id="inf63">
<mml:math id="m73">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="&#x7c;">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>f</mml:mi>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>f</mml:mi>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi>f</mml:mi>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Thus, the RLS-AC cost function is built considering only four tapped delays of the present time signals. Indeed, sampling time and size in RLS-AC may have an influence on the performance of the controller. However, this study does not consider the effects of different sampling times and sizes on the adaptive parameters&#x2019; evolution.</p>
<p>Here, the command signal to the actuator can be obtained from the Eq. <xref ref-type="disp-formula" rid="e11">11</xref>:<disp-formula id="e11">
<mml:math id="m74">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="italic">F</mml:mi>
<mml:mi mathvariant="italic">F</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>t</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(11)</label>
</disp-formula>where <inline-formula id="inf64">
<mml:math id="m75">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the command signal at the time step <inline-formula id="inf65">
<mml:math id="m76">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf66">
<mml:math id="m77">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> are the adaptive parameters updated during the test with a recursive least squares (RLS) method (<xref ref-type="bibr" rid="B23">S&#xf6;derstr&#xf6;m and Stoica, 1988</xref>), and <inline-formula id="inf67">
<mml:math id="m78">
<mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>t</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> are the tapped target displacements. The parameters <inline-formula id="inf68">
<mml:math id="m79">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> are updated using the adaptation law provided in Eqs <xref ref-type="disp-formula" rid="e12">12</xref>, <xref ref-type="disp-formula" rid="e13">13</xref>:<disp-formula id="e12">
<mml:math id="m80">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3c1;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(12)</label>
</disp-formula>
<disp-formula id="e13">
<mml:math id="m81">
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(13)</label>
</disp-formula>where <inline-formula id="inf69">
<mml:math id="m82">
<mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the tapped measured displacement, <inline-formula id="inf70">
<mml:math id="m83">
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the compensator error, <inline-formula id="inf71">
<mml:math id="m84">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the forgetting factor (see <xref ref-type="sec" rid="s4-2">Section 4.2</xref>), and <inline-formula id="inf72">
<mml:math id="m85">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the <inline-formula id="inf73">
<mml:math id="m86">
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> covariance matrix, which is updated according to the difference equation in Eq. <xref ref-type="disp-formula" rid="e14">14</xref>:<disp-formula id="e14">
<mml:math id="m87">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3c1;</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="&#x7c;">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3c1;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(14)</label>
</disp-formula>where <inline-formula id="inf74">
<mml:math id="m88">
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the <inline-formula id="inf75">
<mml:math id="m89">
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> identity matrix.</p>
<p>The initial adaptive parameter <inline-formula id="inf76">
<mml:math id="m90">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and covariance matrix <inline-formula id="inf77">
<mml:math id="m91">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> must be defined to initialize the RLS method. A standard least-squares method with offline test data is employed to evaluate the initial parameters according to <xref ref-type="bibr" rid="B23">S&#xf6;derstr&#xf6;m and Stoica (1988)</xref> and <xref ref-type="bibr" rid="B25">Wang et al. (2020)</xref>, as described in Eqs <xref ref-type="disp-formula" rid="e15">15</xref>&#x2013;<xref ref-type="disp-formula" rid="e18">18</xref>:<disp-formula id="e15">
<mml:math id="m92">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(15)</label>
</disp-formula>
<disp-formula id="e16">
<mml:math id="m93">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi>Y</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(16)</label>
</disp-formula>
<disp-formula id="e17">
<mml:math id="m94">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(17)</label>
</disp-formula>
<disp-formula id="e18">
<mml:math id="m95">
<mml:mrow>
<mml:mi>Y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(18)</label>
</disp-formula>where <inline-formula id="inf78">
<mml:math id="m96">
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> indicates the length of the data sequence employed for the initial calibration. To obtain the offline test data, one can evaluate and impose the response of the numerical substructure on the control plant, with or without a specimen. In addition, a fourth-order Butterworth filter with a cut-off frequency of 20&#xa0;Hz is chosen for noise rejection. Note that the associated time delay only affects the adaptation process and does not affect compensation directly. The previously mentioned process is schematized in <xref ref-type="fig" rid="F8">Figure 8</xref>.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Flowchart of the RLS adaptive compensator.</p>
</caption>
<graphic xlink:href="fbuil-10-1394952-g008.tif"/>
</fig>
</sec>
<sec id="s3-2">
<title>3.2 Decentralized adaptive compensator for maRTHS testing</title>
<p>The algorithm mentioned before is applied to each actuator in a decentralized manner; this means that for each actuator, there is a different compensator that works independently from each other, with unique initial parameters and adaptation processes, as shown in the Simulink diagram in <xref ref-type="fig" rid="F9">Figure 9A</xref>. The independence of this compensation algorithm in maRTHS, even assuming identical actuators, is proved by <xref ref-type="bibr" rid="B11">Galmez and Fermandois (2022)</xref> as the parameter adaptation process is different for each one of the actuators. <xref ref-type="fig" rid="F9">Figure 9B</xref> shows a block diagram of the implemented RoDeAC for virtual maRTHS.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>Block diagram of the RoDeAC in actuator coordinates: <bold>(A)</bold> maRTHS implementation and <bold>(B)</bold> subsystem considered for each actuator.</p>
</caption>
<graphic xlink:href="fbuil-10-1394952-g009.tif"/>
</fig>
</sec>
</sec>
<sec id="s4">
<title>4 Calibration of robust decentralized adaptive compensators</title>
<sec id="s4-1">
<title>4.1 Initial parameters <inline-formula id="inf79">
<mml:math id="m97">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf80">
<mml:math id="m98">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</title>
<p>Offline tests are required to provide the necessary data for initializing the RLS-AC method and assessing the method&#x2019;s performance for prescribed desired displacement loading. Then, a Simulink implementation is used, as shown in <xref ref-type="fig" rid="F10">Figure 10</xref>, where the structural response is measured in an open-loop system without the feedback of the experimental forces back to the numerical substructure. In this case, we use the multi-actuator models described in <xref ref-type="sec" rid="s2-3-2">Section 2.3.2</xref>, which provides information about the control system with the numerical substructure subjected to seismic excitation. Notably, this process can be carried out even without any interaction with the test specimen. Then, the structural response is imposed on the specimen (<inline-formula id="inf81">
<mml:math id="m99">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>), and the displacement response is measured (<inline-formula id="inf82">
<mml:math id="m100">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>). Finally, the values of the parameters <inline-formula id="inf83">
<mml:math id="m101">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf84">
<mml:math id="m102">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> are obtained using Eqs <xref ref-type="disp-formula" rid="e15">15</xref> and <xref ref-type="disp-formula" rid="e16">16</xref>.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>Block diagram of the offline calibration testing.</p>
</caption>
<graphic xlink:href="fbuil-10-1394952-g010.tif"/>
</fig>
<p>Different scenarios are used to analyze the initial parameters&#x2019; dispersion for the offline calibration. Therefore, three different earthquakes (El Centro, 1940; Kobe, 1995; and Morgan, 1984) with different seismic intensity measures (20%, 40%, and 60% PGA scales) are used to calculate different <inline-formula id="inf85">
<mml:math id="m103">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf86">
<mml:math id="m104">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> parameters. Furthermore, we considered uncertainty in the control plant as described in Section 2.2.2, with 10 simulations for each combination of earthquake ground motion and intensity measure. The uncertainty propagation in <inline-formula id="inf87">
<mml:math id="m105">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf88">
<mml:math id="m106">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> initial parameters is shown in boxplots in <xref ref-type="fig" rid="F11">Figures 11</xref>, <xref ref-type="fig" rid="F12">12</xref>.</p>
<fig id="F11" position="float">
<label>FIGURE 11</label>
<caption>
<p>Statistical dispersion of the initial values for parameter <inline-formula id="inf89">
<mml:math id="m107">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> of RoDeAC for different earthquake ground motions and seismic intensity measures.</p>
</caption>
<graphic xlink:href="fbuil-10-1394952-g011.tif"/>
</fig>
<fig id="F12" position="float">
<label>FIGURE 12</label>
<caption>
<p>Statistical dispersion of the initial values for parameter <inline-formula id="inf90">
<mml:math id="m108">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> of RoDeAC for different earthquakes and intensity measures. (Note: <inline-formula id="inf91">
<mml:math id="m109">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is symmetric, so only non-redundant values are shown.).</p>
</caption>
<graphic xlink:href="fbuil-10-1394952-g012.tif"/>
</fig>
<p>Note that, under the assumption of different conditions, the values for the initial parameter values change. Moreover, in this case, different values for parameters <inline-formula id="inf185">
<mml:math id="m173">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf186">
<mml:math id="m174">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> are obtained for slightly different actuators modeled as described in Section 2.2.2.</p>
<p>Finally, the mean values are considered in this study for the initialization of each parameter and are presented in Eqs <xref ref-type="disp-formula" rid="e19">19</xref>&#x2013;<xref ref-type="disp-formula" rid="e22">22</xref>.<list list-type="simple">
<list-item>
<p>&#x2022; Actuator 1:</p>
</list-item>
</list>
<disp-formula id="e19">
<mml:math id="m112">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn>83906</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>45046</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>27999</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>10761</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>45046</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mn>106713</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>33590</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>28000</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>27999</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>33590</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mn>106713</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>45047</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>10761</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>28000</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>45047</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mn>83908</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(19)</label>
</disp-formula>
<disp-formula id="e20">
<mml:math id="m113">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>5.41</mml:mn>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mn>1.96</mml:mn>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1.5</mml:mn>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>4.96</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(20)</label>
</disp-formula>
<list list-type="simple">
<list-item>
<p>&#x2022; Actuator 2:</p>
</list-item>
</list>
<disp-formula id="e21">
<mml:math id="m114">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn>64773</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>51448</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>21630</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mn>8377</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>51448</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mn>104561</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>31474</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>21630</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>21630</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>31474</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mn>104561</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>51449</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>8337</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>21630</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>51449</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mn>64774</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(21)</label>
</disp-formula>
<disp-formula id="e22">
<mml:math id="m115">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mn>6.06</mml:mn>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mn>2.20</mml:mn>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1.67</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>5.54</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(22)</label>
</disp-formula>
</p>
</sec>
<sec id="s4-2">
<title>4.2 Forgetting factor</title>
<p>The forgetting factor is used to weaken the influence of older data on the estimated parameter values. This means that as simulation time increases, the old data are discarded exponentially by the parameter estimator of the adaptive compensator (<xref ref-type="bibr" rid="B15">Ioannou and Sun, 2012</xref>). A small forgetting factor decreases the impact of older data on the identified parameters and is thus more suitable for time-varying systems. However, small forgetting factors may cause serious fluctuations in the identified parameters (<xref ref-type="bibr" rid="B25">Wang et al., 2020</xref>). To observe how this parameter affects our virtual maRTHS, graphs illustrating the <inline-formula id="inf94">
<mml:math id="m116">
<mml:mrow>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf95">
<mml:math id="m117">
<mml:mrow>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mn>5</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> error indicators (defined in Appendix A of the <xref ref-type="sec" rid="s12">Supplementary Material</xref>) are presented in <xref ref-type="fig" rid="F13">Figure 13</xref>. As reflected in these graphs, the lowest error is achieved with a fixed value of the forgetting factor <inline-formula id="inf96">
<mml:math id="m118">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> since lower values seem to cause instabilities and fluctuations in this approach, indicating that the identified parameters depend heavily on the older data. Therefore, a forgetting factor <inline-formula id="inf97">
<mml:math id="m119">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> is adopted in this study.</p>
<fig id="F13" position="float">
<label>FIGURE 13</label>
<caption>
<p>Influence of the forgetting factor on the performance of virtual maRTHS, ranging from <bold>(A)</bold> 0.9 to 1; and <bold>(B)</bold> 0.99 to 1.</p>
</caption>
<graphic xlink:href="fbuil-10-1394952-g013.tif"/>
</fig>
</sec>
</sec>
<sec sec-type="results" id="s5">
<title>5 Results</title>
<p>The tracking controller was implemented in Simulink using a reference model block provided by the benchmark problem (<xref ref-type="bibr" rid="B7">Condori et al., 2023</xref>). Simulations were conducted in real-time using <italic>MATLAB and Simulink</italic> R2021a with <italic>Simulink Desktop Real-Time</italic> version 5.12.0, running on a 64-bit computer with an Intel i7-9750H CPU, 16&#xa0;GB of RAM, and the Windows 10 version 22H2 operating system. The nominal and 100 perturbed control plants were studied to assess the performance and robustness of the controller employed.</p>
<sec id="s5-1">
<title>5.1 Compensation of multi-actuator dynamics</title>
<p>To study the tracking performance of the RoDeAC in the time domain, the seismic excitation chosen was the 1940&#xa0;EL Centro earthquake, with 40% scaled PGA intensity. <xref ref-type="fig" rid="F14">Figure 14</xref> shows the target (<inline-formula id="inf98">
<mml:math id="m120">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>) and measured (<inline-formula id="inf99">
<mml:math id="m121">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>) displacements. It can be observed that both target and measured displacements have an excellent match at all simulation times, especially for significant time reversals. In the same way, <xref ref-type="fig" rid="F15">Figure 15</xref> shows the estimation RTHS accuracy of the interface node. Small differences between calculated and actual signals can be appreciated, which could be attributed to the non-linear nature of the equations for the coupler coordinate transformations or a deficiency in the proposed algorithm. More information on the accuracy of the RoDeAC (measured compared to reference signals) can be found in Appendix B of the <xref ref-type="sec" rid="s12">Supplementary Material</xref>.</p>
<fig id="F14" position="float">
<label>FIGURE 14</label>
<caption>
<p>maRTHS tracking performance in actuator coordinates. Target and measured actuator displacement for <bold>(A)</bold> actuator 1 and <bold>(B)</bold> actuator 2.</p>
</caption>
<graphic xlink:href="fbuil-10-1394952-g014.tif"/>
</fig>
<fig id="F15" position="float">
<label>FIGURE 15</label>
<caption>
<p>maRTHS tracking performance at the interface node (frame coordinates). Target numerical substructure vs. estimated experimental responses for <bold>(A)</bold> translational DOF (<inline-formula id="inf100">
<mml:math id="m122">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mn mathvariant="bold">4</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>) and <bold>(B)</bold> rotational DOF (<inline-formula id="inf101">
<mml:math id="m123">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mn mathvariant="bold">28</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>).</p>
</caption>
<graphic xlink:href="fbuil-10-1394952-g015.tif"/>
</fig>
<p>Furthermore, <xref ref-type="fig" rid="F16">Figure 16</xref> presents the evolution of parameter <inline-formula id="inf102">
<mml:math id="m124">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mi>F</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> for each actuator. These results provide evidence of different evolutions in decentralized adaptive compensation and fast adaptation at the beginning of the earthquake (i.e., after 5 [sec]), allowing us to estimate the plant dynamics and achieve reasonable compensation.</p>
<fig id="F16" position="float">
<label>FIGURE 16</label>
<caption>
<p>Evolution of RoDeAC adaptive parameters for the virtual maRTHS.</p>
</caption>
<graphic xlink:href="fbuil-10-1394952-g016.tif"/>
</fig>
</sec>
<sec id="s5-2">
<title>5.2 Evaluation criteria of RoDeAC</title>
<p>To evaluate the accuracy and efficacy of the tracking control, 10 performance indices were defined in the benchmark problem (<xref ref-type="bibr" rid="B7">Condori et al., 2023</xref>), which are divided into two groups: (1) the tracking control performance indices and (2) the global RTHS experiment performance indices. The first three criteria (<inline-formula id="inf103">
<mml:math id="m125">
<mml:mrow>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf104">
<mml:math id="m126">
<mml:mrow>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>) are measures of the reference tracking properties of the chosen controller, comparing the measured and target displacements. On the other hand, criteria <inline-formula id="inf105">
<mml:math id="m127">
<mml:mrow>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to <inline-formula id="inf106">
<mml:math id="m128">
<mml:mrow>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mn>6</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> compare the target and commanded displacements. Meanwhile, criteria <inline-formula id="inf107">
<mml:math id="m129">
<mml:mrow>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mn>7</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to <inline-formula id="inf108">
<mml:math id="m130">
<mml:mrow>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mn>10</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> establish the error between the measured displacement responses of the hybrid system, compared to the reference structure, at all floor locations of the three-story moment frame. The performance indices <inline-formula id="inf109">
<mml:math id="m131">
<mml:mrow>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf110">
<mml:math id="m132">
<mml:mrow>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> have units of time (ms), while the rest are in percentages. Lower scores on all performance indices are desired. Due to the MDOF characteristic of the problem, each performance index is a vector and could be related to the number of the actuator or the node at which it is evaluated. All the equations for the performance indices are included in Appendix A of the <xref ref-type="sec" rid="s12">Supplementary Material</xref>.</p>
<p>
<xref ref-type="table" rid="T2">Table 2</xref> summarizes the mean calculated indices (<inline-formula id="inf111">
<mml:math id="m133">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>J</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>) of 100 consecutive experiments of the proposed method compared with the values declared in the benchmark problem. It is assumed that 100 realizations are a sufficient sample space for a high return rate and to ensure higher robustness on the problem. Moreover, it should be noticed that some differences were encountered between the uncertainty declared on the benchmark problem and the actual MATLAB codes. Therefore, high instabilities are obtained using the benchmark controller with the stated uncertainty.</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Virtual maRTHS evaluation criteria (100 realizations).</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Performance criterion</th>
<th align="center">Criterion</th>
<th align="center">Mean performance index</th>
<th align="center">Unit</th>
<th align="center">RTHS&#x2013;benchmark</th>
<th align="center">vRTHS&#x2014;benchmark</th>
<th align="center">Proposed RoDeAC</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="inf112">
<mml:math id="m134">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">&#x2212;13.7</td>
<td align="center">2.0</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf113">
<mml:math id="m135">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">2.9</td>
<td align="center">0</td>
</tr>
<tr>
<td rowspan="2" align="center">Normalized tracking error</td>
<td align="center">
<inline-formula id="inf114">
<mml:math id="m136">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">23.8</td>
<td align="center">4.8</td>
<td align="center">3.0</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf115">
<mml:math id="m137">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">13.2</td>
<td align="center">9.4</td>
<td align="center">1.7</td>
</tr>
<tr>
<td rowspan="2" align="center">Maximum peak tracking error</td>
<td align="center">
<inline-formula id="inf116">
<mml:math id="m138">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">26.9</td>
<td align="center">5.3</td>
<td align="center">4.2</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf117">
<mml:math id="m139">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">13.7</td>
<td align="center">10.3</td>
<td align="center">2.5</td>
</tr>
<tr>
<td rowspan="6" align="center">Estimation</td>
<td rowspan="2" align="center">Time delay</td>
<td align="center">
<inline-formula id="inf118">
<mml:math id="m140">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">1.9</td>
<td align="center">0</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf119">
<mml:math id="m141">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">4.9</td>
<td align="center">2.9</td>
<td align="center">0</td>
</tr>
<tr>
<td rowspan="2" align="center">Normalized estimation error</td>
<td align="center">
<inline-formula id="inf120">
<mml:math id="m142">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">8.1</td>
<td align="center">6.7</td>
<td align="center">2.0</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf121">
<mml:math id="m143">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">27.8</td>
<td align="center">17.8</td>
<td align="center">2.7</td>
</tr>
<tr>
<td rowspan="2" align="center">Maximum peak estimation error</td>
<td align="center">
<inline-formula id="inf122">
<mml:math id="m144">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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.2</td>
<td align="center">7.4</td>
<td align="center">2.3</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf123">
<mml:math id="m145">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">28.6</td>
<td align="center">18.8</td>
<td align="center">5</td>
</tr>
<tr>
<td rowspan="12" align="center">Global RTHS Accuracy</td>
<td rowspan="2" align="center">Normalized RTHS error</td>
<td align="center">
<inline-formula id="inf124">
<mml:math id="m146">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">12.2</td>
<td align="center">10.6</td>
<td align="center">9.7</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf125">
<mml:math id="m147">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">26.2</td>
<td align="center">16.8</td>
<td align="center">7.7</td>
</tr>
<tr>
<td rowspan="4" align="center">Normalized RTHS error at upper levels</td>
<td align="center">
<inline-formula id="inf126">
<mml:math id="m148">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">12.5</td>
<td align="center">1.8</td>
<td align="center">6.6</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf127">
<mml:math id="m149">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">12.7</td>
<td align="center">3.4</td>
<td align="center">5.8</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf128">
<mml:math id="m150">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">12.4</td>
<td align="center">2.1</td>
<td align="center">6.2</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf129">
<mml:math id="m151">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">12.5</td>
<td align="center">3</td>
<td align="center">5.9</td>
</tr>
<tr>
<td rowspan="2" align="center">Maximum peak RTHS error</td>
<td align="center">
<inline-formula id="inf130">
<mml:math id="m152">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">13.2</td>
<td align="center">11.9</td>
<td align="center">8.3</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf131">
<mml:math id="m153">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">27.3</td>
<td align="center">18.1</td>
<td align="center">7.1</td>
</tr>
<tr>
<td rowspan="4" align="center">Maximum peak RTHS error at upper levels</td>
<td align="center">
<inline-formula id="inf132">
<mml:math id="m154">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">13.1</td>
<td align="center">1.8</td>
<td align="center">4.9</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf133">
<mml:math id="m155">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">13.4</td>
<td align="center">2.7</td>
<td align="center">4.6</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf134">
<mml:math id="m156">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">12.8</td>
<td align="center">1.8</td>
<td align="center">4.6</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf135">
<mml:math id="m157">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x00AF;</mml:mo>
<mml:mi>J</mml:mi>
</mml:mrow>
<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">13.2</td>
<td align="center">2.4</td>
<td align="center">4.6</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The median value of the performance indices of 100 consecutive experiments using RoDeAC, along with the interquartile range, for the El Centro earthquake, scaled to 40% of the PGA intensity, and compared with 100 consecutive experiments with the benchmark controller, are plotted in <xref ref-type="fig" rid="F17">Figure 17A</xref>. Tracking control and estimation indices show that RoDeAC has lower errors than the benchmark controller. For the global RTHS accuracy, the normalized and peak errors are lower at the controlled levels but slightly higher at the upper levels. Along with its high level of robustness, RoDeAC demonstrates excellent overall performance. More information on the performance comparison of the RoDeAC with the benchmark controller for other ground motions can be found in Appendix B of the <xref ref-type="sec" rid="s12">Supplementary Material</xref>. Finally, <xref ref-type="fig" rid="F17">Figure 17B</xref> summarizes the performance indices for the proposed RoDeAC, showing the controller&#x2019;s stable and consistent behavior for the three chosen earthquakes and with 100 different perturbations of the control plant. In particular, the worst performance indices were obtained from the Morgan earthquake with 40% PGA.</p>
<fig id="F17" position="float">
<label>FIGURE 17</label>
<caption>
<p>Comparison of evaluation criteria between benchmark and RoDeAC with 100 perturbed systems (median and interquartile range): <bold>(A)</bold> El Centro 40% PGA scaled and <bold>(B)</bold> summary of evaluation criteria for the three analyzed earthquakes.</p>
</caption>
<graphic xlink:href="fbuil-10-1394952-g017.tif"/>
</fig>
<p>On the other hand, the synchronization subspace plots (SSPs) of displacements comparing the benchmark and RoDeAC controllers are shown in <xref ref-type="fig" rid="F18">Figure 18</xref> for all three earthquakes as inputs of the systems scaled to 40% of the PGA intensity. This visualization allows us to directly compare the system&#x2019;s synchronization, where a straight line with a 1:1 slope represents a perfect synchronization. The plots show that the best synchronization is achieved for the RoDeAC controller in all cases with thinner SSPs. Nevertheless, the Cartesian SSPs show slightly worse tracking performance compared with the actuator SSPs, especially for the rotation degree of freedom.</p>
<fig id="F18" position="float">
<label>FIGURE 18</label>
<caption>
<p>Synchronization subspace plots for benchmark and RoDeAC controllers (nominal plant): <bold>(A)</bold> actuator coordinates and <bold>(B)</bold> Cartesian coordinates <inline-formula id="inf136">
<mml:math id="m158">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf137">
<mml:math id="m159">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3c8;</mml:mi>
<mml:mn>28</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</caption>
<graphic xlink:href="fbuil-10-1394952-g018.tif"/>
</fig>
</sec>
</sec>
<sec sec-type="conclusion" id="s6">
<title>6 Conclusion</title>
<p>A robust decentralized adaptive compensator (RoDeAC) was proposed and examined through the next-generation multi-axial real-time hybrid simulation (maRTHS) benchmark problem. In particular, the reference structure corresponds to a three-story, three-bay planar frame where one central frame is the experimental substructure and the rest is the numerical substructure. Displacement and rotation are commanded as target signals at the interface between substructures. Two almost identical actuators are utilized to impose the numerical response; therefore, displacement and rotation are transformed into actuator coordinates to obtain one target signal for each actuator. Then, a decentralized recursive least squares adaptive compensator is employed over the multi-actuator loading assembly. In the virtual implementation, the actuator dynamics are modeled as a family of frequency response function (FRF) models with random parameters to consider actual uncertainty properly during experimental testing. The simulations show excellent tracking results for maRTHS tests and proper robustness even against the uncertainties in the modeled control plant for the three considered earthquake ground motions. It should be noticed that the relatively easy calibration algorithm required for the RoDeAC enables faster implementation of a compensation algorithm, even for more complex problems with a higher number of actuators. Future studies will consider the effect of sampling time and size on the RLS adaptive compensator, and experimental validation of this framework will be conducted on a physical testbed.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s7">
<title>Data availability statement</title>
<p>The models and datasets presented in this study can be found in the following online repository: <ext-link ext-link-type="uri" xlink:href="https://github.com/FermandoisLab/maRTHS-bmk-RoDeAC">https://github.com/FermandoisLab/maRTHS-bmk-RoDeAC</ext-link>.</p>
</sec>
<sec id="s8">
<title>Author contributions</title>
<p>MQ: writing&#x2013;review and editing, writing&#x2013;original draft, visualization, validation, software, methodology, investigation, formal analysis, data curation, and conceptualization. CG: writing&#x2013;review and editing, validation, software, resources, methodology, and conceptualization. GF: writing&#x2013;review and editing, validation, supervision, resources, methodology, and conceptualization.</p>
</sec>
<sec sec-type="funding-information" id="s9">
<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 <italic>Agencia Nacional de Investigaci&#xf3;n y Desarrollo</italic> (ANID, Chile) through the Fondecyt Iniciacion Grant No. 11190774.</p>
</sec>
<sec sec-type="COI-statement" id="s10">
<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>
</sec>
<sec sec-type="disclaimer" id="s11">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors, and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<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.1394952/full#supplementary-material">https://www.frontiersin.org/articles/10.3389/fbuil.2024.1394952/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>Asai</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Chang</surname>
<given-names>C. M.</given-names>
</name>
<name>
<surname>Phillips</surname>
<given-names>B. M.</given-names>
</name>
<name>
<surname>Spencer</surname>
<given-names>B. F.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Real-time hybrid simulation of a smart outrigger damping system for high-rise buildings</article-title>. <source>Eng. Struct.</source> <volume>57</volume>, <fpage>177</fpage>&#x2013;<lpage>188</lpage>. <pub-id pub-id-type="doi">10.1016/j.engstruct.2013.09.016</pub-id>
</citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Botelho</surname>
<given-names>R. M.</given-names>
</name>
<name>
<surname>Christenson</surname>
<given-names>R. E.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Mathematical framework for real-time hybrid substructuring of marine structural systems</article-title>. <source>Conf. Proc. Soc. Exp. Mech. Ser.</source> <volume>4</volume> (<issue>February</issue>), <fpage>175</fpage>&#x2013;<lpage>185</lpage>. <pub-id pub-id-type="doi">10.1007/978-3-319-04546-7_21</pub-id>
</citation>
</ref>
<ref id="B3">
<citation citation-type="web">
<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>
</person-group> (<year>2007</year>). <article-title>Model-based strategies for real-time hybrid testing</article-title>. <comment>Newmark Structural Engineering Laboratory Report Series No. 006</comment>. <publisher-loc>Urbana, IL</publisher-loc>: <publisher-name>Department of Civil and Environmental Engineering, University of Illinois at Urbana-Champaign</publisher-name>. <comment>URL: <ext-link ext-link-type="uri" xlink:href="http://hdl.handle.net/2142/3629">http://hdl.handle.net/2142/3629</ext-link>
</comment>.</citation>
</ref>
<ref id="B4">
<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-hydraulic systems for real-time hybrid simulation</article-title>. <source>Earthq. Eng. Struct. Dyn.</source> <volume>42</volume>, <fpage>1967</fpage>&#x2013;<lpage>1715</lpage>. <pub-id pub-id-type="doi">10.1002/eqe.2294</pub-id>
</citation>
</ref>
<ref id="B5">
<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>2010</year>). <article-title>Tracking error-based servohydraulic actuator adaptive compensation for real-time hybrid simulation</article-title>. <source>J. Struct. Eng.</source> <volume>136</volume> (<issue>4</issue>), <fpage>432</fpage>&#x2013;<lpage>440</lpage>. <pub-id pub-id-type="doi">10.1061/(ASCE)ST.1943-541X.0000124</pub-id>
</citation>
</ref>
<ref id="B6">
<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> (<issue>6</issue>), <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="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Condori</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. S.</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>. <pub-id pub-id-type="doi">10.3389/fbuil.2023.1270996</pub-id>
</citation>
</ref>
<ref id="B8">
<citation citation-type="web">
<person-group person-group-type="author">
<name>
<surname>Dermitzakis</surname>
<given-names>S. N.</given-names>
</name>
<name>
<surname>Mahin</surname>
<given-names>S. A.</given-names>
</name>
</person-group> (<year>1985</year>). <article-title>Development of substructuring techniques for on-line computer controlled seismic performance testing</article-title>. <comment>Report No. UCB/EERC-85/04</comment>. <publisher-loc>Berkeley, California</publisher-loc>: <publisher-name>Earthquake Engineering Research Center, University of California</publisher-name>.</citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Fermandois</surname>
<given-names>G. A.</given-names>
</name>
<name>
<surname>Spencer</surname>
<given-names>B. F.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Model-based framework for multi-axial real-time hybrid simulation testing</article-title>. <source>Earthq. Eng. Eng. Vib.</source> <volume>16</volume> (<issue>4</issue>), <fpage>671</fpage>&#x2013;<lpage>691</lpage>. <pub-id pub-id-type="doi">10.1007/s11803-017-0407-8</pub-id>
</citation>
</ref>
<ref id="B11">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Galmez</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Fermandois</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2022</year>). &#x201c;<article-title>Recent developments on robust adaptive compensation in multi-axial real-time hybrid simulation</article-title>,&#x201d; in <conf-name>Proceedings of the 8th World Conference on Structural Control and Health Monitoring</conf-name>, <conf-loc>Orlando, FL</conf-loc>, <conf-date>5-8 June, 2022</conf-date>.</citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ghaffary</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Mohammadi</surname>
<given-names>R. K.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Comprehensive nonlinear seismic performance assessment of MR damper controlled systems using virtual real-time hybrid simulation</article-title>. <source>Struct. Des. Tall Special Build.</source> <volume>28</volume> (<issue>8</issue>), <fpage>1</fpage>&#x2013;<lpage>18</lpage>. <pub-id pub-id-type="doi">10.1002/tal.1606</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> (<issue>10</issue>), <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>Horiuchi</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Nakagawa</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Sugano</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Konno</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>1996</year>). <article-title>Development of a real-time hybrid experimental system with actuator delay compensation</article-title>. <conf-name>Proc. of 11th World Conf. Earthquake Engineering</conf-name>, <conf-loc>Acapulco, Mexico</conf-loc>, <conf-date>June 23&#x2013;28.</conf-date>
</citation>
</ref>
<ref id="B15">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Ioannou</surname>
<given-names>P. A.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2012</year>). <source>Robust adaptive control</source>. <publisher-loc>Mineola, NY</publisher-loc>: <publisher-name>Dover Publications</publisher-name>.</citation>
</ref>
<ref id="B16">
<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> (<issue>2022</issue>), <fpage>115284</fpage>. <pub-id pub-id-type="doi">10.1016/j.engstruct.2022.115284</pub-id>
</citation>
</ref>
<ref id="B17">
<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>Spencer</surname>
<given-names>B. F.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Decoupled model-based real-time hybrid simulation with multi-axial load and boundary condition boxes</article-title>. <source>Eng. Struct.</source> <volume>219</volume> (<issue>May</issue>), <fpage>110868</fpage>. <pub-id pub-id-type="doi">10.1016/j.engstruct.2020.110868</pub-id>
</citation>
</ref>
<ref id="B18">
<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> (<issue>1</issue>), <fpage>79</fpage>&#x2013;<lpage>92</lpage>. <pub-id pub-id-type="doi">10.1002/eqe.4290210106</pub-id>
</citation>
</ref>
<ref id="B19">
<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> (<issue>20</issue>), <fpage>7101</fpage>. <pub-id pub-id-type="doi">10.3390/app10207101</pub-id>
</citation>
</ref>
<ref id="B20">
<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="B21">
<citation citation-type="web">
<person-group person-group-type="author">
<name>
<surname>Phillips</surname>
<given-names>B. M.</given-names>
</name>
<name>
<surname>Spencer</surname>
<given-names>B. F.</given-names>
<suffix>Jr.</suffix>
</name>
</person-group> (<year>2012</year>). <article-title>Model-based framework for real-time dynamic structural performance evaluation</article-title>. <comment>Newmark Structural Engineering Laboratory Report Series No. 031</comment>. <publisher-name>University of Illinois at Urbana-Champaign</publisher-name> <volume>31</volume> (<issue>August</issue>), <fpage>46</fpage>&#x2013;<lpage>59</lpage>. <comment>URL: <ext-link ext-link-type="uri" xlink:href="http://hdl.handle.net/2142/33794">http://hdl.handle.net/2142/33794</ext-link>
</comment>.</citation>
</ref>
<ref id="B22">
<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>Amin</surname>
<given-names>M.</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="B23">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>S&#xf6;derstr&#xf6;m</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Stoica</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>1988</year>). <source>System identification</source>. <publisher-loc>United States</publisher-loc>: <publisher-name>Prentice-Hall, Inc.</publisher-name>
</citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tao</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Mercan</surname>
<given-names>O.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>A study on a benchmark control problem for real-time hybrid simulation with a tracking error-based adaptive compensator combined with a supplementary proportional-integral-derivative controller</article-title>. <source>Mech. Syst. Signal Process.</source> <volume>134</volume>, <fpage>106346</fpage>. <pub-id pub-id-type="doi">10.1016/j.ymssp.2019.106346</pub-id>
</citation>
</ref>
<ref id="B25">
<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>Xu</given-names>
</name>
<name>
<surname>Qiang</surname>
<given-names>Li</given-names>
</name>
<name>
<surname>Bin</surname>
<given-names>Wu</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> <volume>25</volume> (<issue>5</issue>), <fpage>569</fpage>&#x2013;<lpage>580</lpage>. <pub-id pub-id-type="doi">10.12989/sss.2020.25.5.569</pub-id>
</citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Guo</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Evaluation of frequency evaluation index based compensation for benchmark study in real-time hybrid simulation</article-title>. <source>Mech. Syst. Signal Process.</source> <volume>130</volume>, <fpage>649</fpage>&#x2013;<lpage>663</lpage>. <pub-id pub-id-type="doi">10.1016/j.ymssp.2019.05.039</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>