<?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">1393710</article-id>
<article-id pub-id-type="doi">10.3389/fbuil.2024.1393710</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Built Environment</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Adaptive sliding-mode delay compensation for real-time hybrid simulations with multiple actuators</article-title>
<alt-title alt-title-type="left-running-head">Shangguan 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.1393710">10.3389/fbuil.2024.1393710</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Shangguan</surname>
<given-names>Yuekun</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2563514/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/software/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-original-draft/"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Wang</surname>
<given-names>Zhen</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<role content-type="https://credit.niso.org/contributor-roles/methodology/"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Guo</surname>
<given-names>Yu</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/methodology/"/>
<role content-type="https://credit.niso.org/contributor-roles/software/"/>
<role content-type="https://credit.niso.org/contributor-roles/data-curation/"/>
<role content-type="https://credit.niso.org/contributor-roles/investigation/"/>
<role content-type="https://credit.niso.org/contributor-roles/project-administration/"/>
<role content-type="https://credit.niso.org/contributor-roles/resources/"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Chen</surname>
<given-names>Yucai</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/software/"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Zeng</surname>
<given-names>Yunhai</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/software/"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Zhou</surname>
<given-names>Huimeng</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2733595/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>Engineering Seismic Research Center</institution>, <institution>Guangzhou University</institution>, <addr-line>Guangzhou</addr-line>, <country>China</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>School of Civil Engineering and Architecture</institution>, <institution>Wuhan University of Technology</institution>, <addr-line>Wuhan</addr-line>, <addr-line>Hubei Province</addr-line>, <country>China</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2362191/overview">Mariantonieta Gutierrez Soto</ext-link>, The Pennsylvania State University (PSU), United States</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/1023494/overview">Cheng Chen</ext-link>, San Francisco State University, United States</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1011845/overview">Elif Ecem Bas</ext-link>, University of Nevada, Reno, United States</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Zhen Wang, <email>wang_zhen@whut.edu.cn</email>
</corresp>
</author-notes>
<pub-date pub-type="epub">
<day>14</day>
<month>08</month>
<year>2024</year>
</pub-date>
<pub-date pub-type="collection">
<year>2024</year>
</pub-date>
<volume>10</volume>
<elocation-id>1393710</elocation-id>
<history>
<date date-type="received">
<day>29</day>
<month>02</month>
<year>2024</year>
</date>
<date date-type="accepted">
<day>29</day>
<month>07</month>
<year>2024</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2024 Shangguan, Wang, Guo, Chen, Zeng and Zhou.</copyright-statement>
<copyright-year>2024</copyright-year>
<copyright-holder>Shangguan, Wang, Guo, Chen, Zeng and Zhou</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 widely applied test method in structural engineering, which is developed from pseudo-dynamic test. Much of the past work has been centered on one-dimensional RTHS using a single hydraulic actuator. When the complexity of the problem demands to increase the number of degrees of freedom to be enforced on the boundary conditions, more than one hydraulic actuator must be used. Multiple-actuator or multi-axial RTHS (maRTHS) requires that more than one hydraulic actuator exerts the required motion on experimental substructures demanding the implementation of multiple-input multiple-output (MIMO) control strategies. A new maRTHS benchmark control problem has been developed, focusing on a frame subjected to seismic load at the base, substantially transforming and intensifying the complexity of the problem. The time delay generated by the dynamic characteristics of the loading system and the transmission process as well as the high coupling between the hydraulic actuators and the nonlinear kinematics escalates the complexity of the actuator control tracking. A sliding mode adaptive delay compensation method suitable for maRTHS is proposed, which utilizes a MIMO sliding mode method to reduce the coupling effects of actuators and the adaptive compensation method to compensate the residual delay. The effectiveness of the method is verified by numerical simulating different working conditions in the Benchmark Problem Platform.</p>
</abstract>
<kwd-group>
<kwd>multi-axial real-time hybrid simulation</kwd>
<kwd>delay compensation method</kwd>
<kwd>decoupling</kwd>
<kwd>adaptive</kwd>
<kwd>sliding mode</kwd>
</kwd-group>
<custom-meta-wrap>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Earthquake Engineering</meta-value>
</custom-meta>
</custom-meta-wrap>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>In recent years, the application of real-time hybrid simulation (RTHS) has become increasingly widespread in civil and other engineering (<xref ref-type="bibr" rid="B24">Stoten et al., 2016</xref>; <xref ref-type="bibr" rid="B11">Jiang et al., 2020</xref>; <xref ref-type="bibr" rid="B13">Liu, 2020</xref>; <xref ref-type="bibr" rid="B32">Yang et al., 2020</xref>). It divides the overall structure into numerically simulated substructures and experimentally loaded test substructures, combines real-time loading of physical specimens with computer numerical calculations. It requires the realization of boundary coordination between substructures, namely, force balance and deformation coordination at substructure boundaries. Therefore, substructure boundary coordination becomes critical to the success of RTHS (<xref ref-type="bibr" rid="B10">Horiuchi et al., 1999</xref>; <xref ref-type="bibr" rid="B6">Gao, 2012</xref>).</p>
<p>RTHS requires the experimental loading and data transmission to the numerical substructure in real-time, thus system delays will significantly affect the accuracy and stability of RTHS (<xref ref-type="bibr" rid="B8">Gao et al., 2013b</xref>). Additionally, the interactions between loading equipment and experimental substructure during tests will lead to the variations of the time delays. Therefore, the development of adaptive time delay compensation methods has been pursued to ensure the stability and precision of RTHS (<xref ref-type="bibr" rid="B26">Wallace et al., 2005</xref>; <xref ref-type="bibr" rid="B19">Philips and Spencer, 2011</xref>; <xref ref-type="bibr" rid="B4">Chen et al., 2012</xref>; <xref ref-type="bibr" rid="B2">Chae et al., 2013</xref>; <xref ref-type="bibr" rid="B29">Wu et al., 2013</xref>; <xref ref-type="bibr" rid="B17">Ou et al., 2015</xref>; <xref ref-type="bibr" rid="B21">Salvatore and Mario, 2016</xref>; <xref ref-type="bibr" rid="B9">Hayati and Song, 2017</xref>; <xref ref-type="bibr" rid="B36">Zhou et al., 2017</xref>; <xref ref-type="bibr" rid="B3">Chae et al., 2018</xref>; <xref ref-type="bibr" rid="B1">Palacio-Betancur and Gutierrez Soto, 2019</xref>; <xref ref-type="bibr" rid="B27">Wang et al., 2019</xref>; <xref ref-type="bibr" rid="B37">Zhou et al., 2019</xref>; <xref ref-type="bibr" rid="B28">Wang et al., 2020</xref>; <xref ref-type="bibr" rid="B16">Ning et al., 2023</xref>). <xref ref-type="bibr" rid="B27">Wang et al. (2019)</xref> proposes an adaptive Kalman-based noise filter and an adaptive two-stage delay compensation method, which achieves outstanding tracking performance and excellent robustness. <xref ref-type="bibr" rid="B16">Ning et al. (2023)</xref> added a feedback controller to the adaptive feedforward controller to reduce the dependency on the ADM method. Results of virtual and actual RTHS alongside five other compensation strategies revealed the superiority of the proposed compensation method. <xref ref-type="bibr" rid="B28">Wang et al. (2020)</xref> proposes an adaptive delay compensation method based on a discrete model (ADM) of the loading system. On the other side, nonlinear control methods especially sliding mode control (SMC) was used to improve the control accuracy (<xref ref-type="bibr" rid="B30">Wu and Zhou, 2014</xref>; <xref ref-type="bibr" rid="B20">Rajabi et al., 2018</xref>; <xref ref-type="bibr" rid="B31">Xu et al., 2019</xref>; <xref ref-type="bibr" rid="B33">Yang et al., 2021</xref>; <xref ref-type="bibr" rid="B34">Yang et al., 2023</xref>). Wu and Zhou (<xref ref-type="bibr" rid="B30">Wu and Zhou, 2014</xref>) used SMC in RTHS for single degree of freedom structure, incorporating the &#x201c;internal model design&#x201d; approach into the controller to enable asymptotic tracking of various reference input signals with zero steady-state error. <xref ref-type="bibr" rid="B31">Xu et al. (2019)</xref> combined SMC method with improved adaptive polynomial-based forward prediction to improve the robustness of RTHS system. Yang et al. (<xref ref-type="bibr" rid="B33">Yang et al., 2021</xref>; <xref ref-type="bibr" rid="B34">Yang et al., 2023</xref>) applied the slide mode control in acceleration control for shaking table test and shake table real-time hybrid simulation. <xref ref-type="bibr" rid="B20">Rajabi et al. (2018)</xref> combined slide mode control with online state estimations using EKF/UKF to control the shaking table. These adaptive time delay compensation methods and sliding mode control methods are mainly developed for single degree of freedom test, their control effects for maRTHS need to be studied.</p>
<p>Addressing the coupling effects through the intuitive approach of individually compensating for the dynamic characteristics of each actuator may not be very effective. Therefore, a control algorithm tailored for multi-input-multi-output (MIMO) systems is essential in the context of collaborative loading in hybrid tests with multiple actuators. With the development of RTHS, the experimental substructures have become increasingly complex, often exhibiting strong non-linearity and multiple degrees of freedom characteristics. This necessitates the conduct of multi-directional control and delay compensation in RTHS (<xref ref-type="bibr" rid="B7">Gao et al., 2013a</xref>; <xref ref-type="bibr" rid="B5">Fermandois and Spencer, 2017</xref>; <xref ref-type="bibr" rid="B22">Sarebanha et al., 2019</xref>; <xref ref-type="bibr" rid="B15">Najafi and Spencer, 2021</xref>; <xref ref-type="bibr" rid="B25">Tian et al., 2022</xref>; <xref ref-type="bibr" rid="B14">Najafi et al., 2023</xref>). Fermandois and Spencer (<xref ref-type="bibr" rid="B5">Fermandois and Spencer, 2017</xref>) proposed model-based framework control method for multi-axial real-time hybrid simulation testing. Najafi et al. (<xref ref-type="bibr" rid="B15">Najafi and Spencer, 2021</xref>; <xref ref-type="bibr" rid="B14">Najafi et al., 2023</xref>) proposed a multi-axial real-time hybrid simulation framework that could achieve decoupling control for six actuators. This framework was applied to a small-scale specimen, which must be verified on a full-scale specimen. <xref ref-type="bibr" rid="B25">Tian et al. (2022)</xref> proposed an enhanced three variable control method to trace high-frequency force signals of a multi-degree-of-freedom (MDOF) boundary coordinating device. <xref ref-type="bibr" rid="B22">Sarebanha et al. (2019)</xref> applied adaptive time series compensator for real-time hybrid simulation of seismically isolated structures in three degree of freedom. <xref ref-type="bibr" rid="B7">Gao et al. (2013a)</xref> developed generalized robustness control procedure for MDOF real-time hybrid simulation. For such tests involving multiple actuators for cooperative control, there exists coupling between multiple actuators at the same control point. This means that during the control process of multiple degrees of freedom, a controlled quantity is influenced by multiple control variables. The presence of this coupling effects result in the response of a particular degree of freedom being influenced by multiple actuators, creating mutual interactions among different control points through the test specimen. When this coupling effects of actuators is strong and the load capacity of actuators is limited, it significantly diminishes the tracking control effectiveness of the actuators. Consequently, it becomes challenging to ensure boundary coordination between substructures, leading to a reduction in experimental accuracy and even test failure.</p>
<p>In response to the coupling issue arising from the collaborative loading of multiple actuators in RTHS, this paper develops a sliding mode adaptive time-delay compensation method applicable to MDOF loading. Expanding the single-degree-of-freedom sliding mode control method into vector form to accommodate MIMO systems, the MDOF sliding mode control (MSMC) method is employed to reduce or even eliminate coupling effects of actuators, achieving similar effects to decoupling. Since the parameters of the sliding mode controller are fixed once set and cannot adaptively adjust their gains based on actual states, to optimize the compensation algorithm, allowing the controller to adaptively adjust its parameters based on operating conditions and responses, this paper integrates the ADM method for discrete model parameter identification with the MSMC method to reduce coupling effects of actuators. Based on the commands and feedback signals of the actuators, the model parameters are adaptively updated, and the controller gains are changed to reduce errors. Additionally, a distributed compensation strategy is adopted, applying ADM compensation to each degree of freedom&#x2019;s sliding mode controller to address its residual delay, further enhancing the tracking control performance of the actuators.</p>
<p>This paper combines ADM and MSMC to propose a MDOF sliding mode adaptive time-delay compensation (ADM-MSMC) method suitable for maRTHS, aiming to enhance the robustness and accuracy of RTHS. In <xref ref-type="sec" rid="s2">Section 2</xref>, the principles of the ADM-MSMC method are primarily introduced. <xref ref-type="sec" rid="s3">Section 3</xref> defines the benchmark control problem of maRTHS and presents the simulink diagram of the ADM-MSMC method based on the maRTHS Benchmark Problem Platform. <xref ref-type="sec" rid="s4">Section 4</xref> conducts RTHS of the proposed ADM-MSMC method based on the Benchmark Problem Platform to verify its feasibility and robust performance. The conclusions drawn from the numerical simulations are summarized in <xref ref-type="sec" rid="s5">Section 5</xref>.</p>
</sec>
<sec id="s2">
<title>2 Adaptive sliding-mode delay compensation method with MDOF</title>
<p>In response to the issue of mutual coupling during simultaneous multi-actuator loading in RTHS, this section introduces an ADM-MSMC method suitable for MDOF loading. The SMC method is expanded into a vector form to accommodate MIMO systems. The MSMC method is employed to reduce or eliminate coupling effects of actuators, achieving similar effects to decoupling. Building upon this, a distributed compensation strategy is adopted, applying ADM method individually to each actuator to compensate for residual delay, further enhancing the tracking control performance of the actuators. Thus, this section first outlines the principles of the ADM-MSMC method, followed by separate explanations of the MSMC and ADM method.</p>
<sec id="s2-1">
<title>2.1 ADM-MSMC method</title>
<p>The ADM-MSMC method adopts the MSMC method to reduce or eliminate the coupling effects of actuators of the MIMO system. On this basis, a decentralized compensation strategy is adopted, and the discrete model parameter identification ADM method compensates the residual delay of each actuator separately, which alleviates the difficulty of the method to compensate individually and achieves better tracking control effects. The principle of this method is shown in the following figure (taking a two-degree-of-freedom system as an example).</p>
<p>In <xref ref-type="fig" rid="F1">Figure 1</xref>, the superscripts of the variables represent the different actuators. The parameter representation in <xref ref-type="fig" rid="F1">Figure 1</xref> is as shown in <xref ref-type="disp-formula" rid="e1">Equation 1</xref>:<disp-formula id="e1">
<mml:math id="m1">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi>a</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:mtext>&#x2002;</mml:mtext>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mi>a</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:mtext>&#x2002;</mml:mtext>
<mml:msubsup>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>y</mml:mi>
<mml:mi>c</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:mtext>&#x2002;</mml:mtext>
<mml:msubsup>
<mml:mi>y</mml:mi>
<mml:mi>c</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi mathvariant="bold">&#x3be;</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold">K</mml:mi>
<mml:mover accent="true">
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mi>m</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:mtext>&#x2002;</mml:mtext>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mi>m</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>m</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:mtext>&#x2002;</mml:mtext>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>m</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold">e</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold">&#x3be;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x222b;</mml:mo>
<mml:mi mathvariant="bold">e</mml:mi>
<mml:mtext>dt</mml:mtext>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>where: <inline-formula id="inf1">
<mml:math id="m2">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi>a</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the target signal, <inline-formula id="inf2">
<mml:math id="m3">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>i</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> is the target signal of actuator <italic>i</italic>; <inline-formula id="inf3">
<mml:math id="m4">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the actuator response signal, <inline-formula id="inf4">
<mml:math id="m5">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> is the actuator <italic>i</italic> response signal; <inline-formula id="inf5">
<mml:math id="m6">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the compensated command vector of actuator, <inline-formula id="inf6">
<mml:math id="m7">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>i</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> is the compensated command of actuator <italic>i</italic>; <inline-formula id="inf7">
<mml:math id="m8">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the measured actuator output response vector, <inline-formula id="inf8">
<mml:math id="m9">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> is the measured actuator <italic>i</italic> output response; <inline-formula id="inf9">
<mml:math id="m10">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the observe response vector; <inline-formula id="inf10">
<mml:math id="m11">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> is the observe response of actuator <italic>i</italic>; <inline-formula id="inf11">
<mml:math id="m12">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> refers to the integral gain coefficient; <inline-formula id="inf12">
<mml:math id="m13">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> represents the state feedback gain matrix; <inline-formula id="inf13">
<mml:math id="m14">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> is the observed state vector.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>ADM-MSMC method block diagram.</p>
</caption>
<graphic xlink:href="fbuil-10-1393710-g001.tif"/>
</fig>
</sec>
<sec id="s2-2">
<title>2.2 MSMC method</title>
<p>SMC method is a discontinuous control method that introduces any initial state into a stable sliding surface in the phase plane. It allows the system, under certain conditions, to undergo small-amplitude, high-frequency oscillations along a specified state trajectory (the sliding surface), which is also the reason for its insensitivity to parameter variations. Generally, the design of sliding mode (abbreviated as sliding mode) control consists of the following two parts.<list list-type="simple">
<list-item>
<p>(1) Sliding surface design, which ensures that the system&#x2019;s state trajectory exhibits asymptotically stable and other favorable dynamic characteristics after entering the sliding mode;</p>
</list-item>
<list-item>
<p>(2) Sliding mode control law design, which involves selecting different reaching laws to drive the system&#x2019;s state trajectory onto the sliding surface within a finite time and maintain motion on it.</p>
</list-item>
</list>
</p>
<sec id="s2-2-1">
<title>2.2.1 Sliding surface design</title>
<p>The SMC method first needs to determine the sliding surface. Let&#x2019;s denote the spatial state equation of the controlled object as follows:<disp-formula id="e2">
<mml:math id="m15">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>where <inline-formula id="inf14">
<mml:math id="m16">
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> represents the state vector matrix. <inline-formula id="inf15">
<mml:math id="m17">
<mml:mrow>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the input of the controlled system. Assuming the sliding surface is represented as <inline-formula id="inf16">
<mml:math id="m18">
<mml:mrow>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext mathvariant="bold">PY</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula>, the sliding surface equation can be expressed as:<disp-formula id="e3">
<mml:math id="m19">
<mml:mrow>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext mathvariant="bold">PY</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>
</p>
<p>Applying a linear transformation to the system&#x2019;s state:<disp-formula id="e4">
<mml:math id="m20">
<mml:mrow>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">&#x393;</mml:mi>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>where <inline-formula id="inf17">
<mml:math id="m21">
<mml:mrow>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the state transformation matrix, represented as:<disp-formula id="e5">
<mml:math id="m22">
<mml:mrow>
<mml:mi mathvariant="bold">&#x393;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mi mathvariant="normal">n</mml:mi>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msubsup>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mi mathvariant="normal">r</mml:mi>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>
</p>
<p>In <xref ref-type="disp-formula" rid="e5">Equation 5</xref>, <inline-formula id="inf18">
<mml:math id="m23">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is required to be non-singular; the number of elements in <inline-formula id="inf19">
<mml:math id="m24">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf20">
<mml:math id="m25">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are denoted by <inline-formula id="inf21">
<mml:math id="m26">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf22">
<mml:math id="m27">
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, respectively. Here, <inline-formula id="inf23">
<mml:math id="m28">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> represents the number of deterministic or linear elements, while <inline-formula id="inf24">
<mml:math id="m29">
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> represents the number of uncertain or nonlinear elements. In the two-input-two-output servo-hydraulic system discussed in this chapter, <inline-formula id="inf25">
<mml:math id="m30">
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> &#x3d; 2, and <inline-formula id="inf26">
<mml:math id="m31">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> denotes the number of state vectors of the controlled object.</p>
<p>Substituting <xref ref-type="disp-formula" rid="e4">Equations 4</xref>, <xref ref-type="disp-formula" rid="e5">5</xref> into <xref ref-type="disp-formula" rid="e2">Equations 2</xref>, <xref ref-type="disp-formula" rid="e3">3</xref> respectively, one can derive the structural state equations and sliding surfaces denoted by <inline-formula id="inf27">
<mml:math id="m32">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>.<disp-formula id="e6">
<mml:math id="m33">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mover accent="true">
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>
<disp-formula id="e7">
<mml:math id="m34">
<mml:mrow>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mover accent="true">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>where: <inline-formula id="inf28">
<mml:math id="m35">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">&#x393;</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
<mml:msup>
<mml:mi mathvariant="bold">&#x393;</mml:mi>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mover accent="true">
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mover accent="true">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold">&#x393;</mml:mi>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>Decomposing <xref ref-type="disp-formula" rid="e6">Equations 6</xref>, <xref ref-type="disp-formula" rid="e7">7</xref> yields:<disp-formula id="e8">
<mml:math id="m36">
<mml:mrow>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>11</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>21</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>12</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>22</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>where <inline-formula id="inf29">
<mml:math id="m37">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf30">
<mml:math id="m38">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are <inline-formula id="inf31">
<mml:math id="m39">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf32">
<mml:math id="m40">
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> matrices respectively, while the dimensions of other matrices can be determined based on the dimensions of <inline-formula id="inf33">
<mml:math id="m41">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf34">
<mml:math id="m42">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>By <xref ref-type="disp-formula" rid="e6">Equations 6</xref>&#x2013;<xref ref-type="disp-formula" rid="e8">8</xref>, we can obtain:<disp-formula id="e9">
<mml:math id="m43">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>11</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>12</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>
<disp-formula id="e10">
<mml:math id="m44">
<mml:mrow>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mrow>
</mml:math>
<label>(10)</label>
</disp-formula>
</p>
<p>For simplification of calculations, let <inline-formula id="inf35">
<mml:math id="m45">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mi mathvariant="normal">r</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> be an identity matrix. From <xref ref-type="disp-formula" rid="e10">Equation 10</xref>, it follows that:<disp-formula id="e11">
<mml:math id="m46">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(11)</label>
</disp-formula>
</p>
<p>Substituting <xref ref-type="disp-formula" rid="e11">Equation 11</xref> into <xref ref-type="disp-formula" rid="e9">Equation 9</xref>, we can derive the nth-order motion equation for the system when it moves on the sliding surface as shown in <xref ref-type="disp-formula" rid="e12">Equation 12</xref>:<disp-formula id="e12">
<mml:math id="m47">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>11</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>12</mml:mn>
</mml:msub>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(12)</label>
</disp-formula>
</p>
<p>Clearly, the design of the sliding surface <inline-formula id="inf36">
<mml:math id="m48">
<mml:mrow>
<mml:mi mathvariant="bold">S</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> entails determining <inline-formula id="inf37">
<mml:math id="m49">
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. If <inline-formula id="inf38">
<mml:math id="m50">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> can be reasonably determined to ensure the stability of the system&#x2019;s motion on the sliding surface, and with <inline-formula id="inf39">
<mml:math id="m51">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mi mathvariant="normal">r</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the <inline-formula id="inf40">
<mml:math id="m52">
<mml:mrow>
<mml:mi mathvariant="normal">P</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> matrix of the sliding surface can be determined. The principle of using the Linear Quadratic Regulator (LQR) method to determine the matrix <inline-formula id="inf41">
<mml:math id="m53">
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is to minimize the integral quadratic performance index of the state vector, as shown in <xref ref-type="disp-formula" rid="e13">Equation 13</xref>:<disp-formula id="e13">
<mml:math id="m54">
<mml:mrow>
<mml:mi>J</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mo>&#x222b;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="bold">&#x221e;</mml:mi>
</mml:msubsup>
<mml:msup>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="normal">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext mathvariant="bold">QY</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="normal">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>dt</mml:mtext>
</mml:mrow>
</mml:math>
<label>(13)</label>
</disp-formula>where <inline-formula id="inf42">
<mml:math id="m55">
<mml:mrow>
<mml:mi mathvariant="bold">Q</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is a positive definite matrix. Substituting <xref ref-type="disp-formula" rid="e8">Equation 8</xref> into the above equation, we obtain the objective function represented by <inline-formula id="inf43">
<mml:math id="m56">
<mml:mrow>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> as shown in <xref ref-type="disp-formula" rid="e14">Equation 14</xref>:<disp-formula id="e14">
<mml:math id="m57">
<mml:mrow>
<mml:mi>J</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mo>&#x222b;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="bold">&#x221e;</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msubsup>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="bold">T</mml:mi>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>dt</mml:mtext>
</mml:mrow>
</mml:math>
<label>(14)</label>
</disp-formula>where the T is as shown in <xref ref-type="disp-formula" rid="e15">Equation 15</xref>:<disp-formula id="e15">
<mml:math id="m58">
<mml:mrow>
<mml:mi mathvariant="bold">T</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">&#x393;</mml:mi>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="bold">T</mml:mi>
</mml:msup>
<mml:mi mathvariant="bold">Q</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold">&#x393;</mml:mi>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold">T</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">T</mml:mi>
<mml:mn>11</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">T</mml:mi>
<mml:mn>21</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">T</mml:mi>
<mml:mn>12</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">T</mml:mi>
<mml:mn>22</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(15)</label>
</disp-formula>
</p>
<p>To minimize the objective function of <xref ref-type="disp-formula" rid="e14">Equation 14</xref> while satisfying the motion equation constraints of <xref ref-type="disp-formula" rid="e9">Equation 9</xref>, according to the maximum principle, we can obtain <inline-formula id="inf44">
<mml:math id="m59">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> with <inline-formula id="inf45">
<mml:math id="m60">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> as the feedback state.<disp-formula id="e16">
<mml:math id="m61">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>0.5</mml:mn>
<mml:msubsup>
<mml:mi mathvariant="bold">T</mml:mi>
<mml:mn>22</mml:mn>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>12</mml:mn>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mi mathvariant="bold">T</mml:mi>
<mml:mn>21</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(16)</label>
</disp-formula>where <inline-formula id="inf46">
<mml:math id="m62">
<mml:mrow>
<mml:mi mathvariant="bold">H</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the solution to the following Riccati <xref ref-type="disp-formula" rid="e17">Equation 17</xref>:<disp-formula id="e17">
<mml:math id="m63">
<mml:mrow>
<mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>0.5</mml:mn>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>12</mml:mn>
</mml:msub>
<mml:msubsup>
<mml:mi mathvariant="bold">T</mml:mi>
<mml:mn>22</mml:mn>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>12</mml:mn>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">T</mml:mi>
<mml:mn>11</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">T</mml:mi>
<mml:mn>12</mml:mn>
</mml:msub>
<mml:msubsup>
<mml:mi mathvariant="bold">T</mml:mi>
<mml:mn>22</mml:mn>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:msubsup>
<mml:mi mathvariant="bold">T</mml:mi>
<mml:mn>12</mml:mn>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>11</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>12</mml:mn>
</mml:msub>
<mml:msubsup>
<mml:mi mathvariant="bold">T</mml:mi>
<mml:mn>22</mml:mn>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mi mathvariant="bold">T</mml:mi>
<mml:mn>21</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(17)</label>
</disp-formula>
</p>
<p>The well-known Riccati equation can be solved using the LQR function in MATLAB software to obtain the matrix <inline-formula id="inf47">
<mml:math id="m64">
<mml:mrow>
<mml:mi mathvariant="bold">H</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. Combining <xref ref-type="disp-formula" rid="e11">Equations 11</xref>, <xref ref-type="disp-formula" rid="e16">16</xref>, we get the <xref ref-type="disp-formula" rid="e18">Equation 18</xref>:<disp-formula id="e18">
<mml:math id="m65">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.5</mml:mn>
<mml:msubsup>
<mml:mi mathvariant="bold">T</mml:mi>
<mml:mn>22</mml:mn>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>12</mml:mn>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="bold">T</mml:mi>
</mml:mrow>
<mml:mn>21</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(18)</label>
</disp-formula>
</p>
<p>Considering <xref ref-type="disp-formula" rid="e8">Equation 8</xref>, we can get the <xref ref-type="disp-formula" rid="e19">Equation 19</xref>:<disp-formula id="e19">
<mml:math id="m66">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mtext>&#x2003;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mi mathvariant="normal">r</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(19)</label>
</disp-formula>
</p>
<p>At this point, <inline-formula id="inf48">
<mml:math id="m67">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> is determined, and the matrix <inline-formula id="inf49">
<mml:math id="m68">
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mover accent="true">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi mathvariant="bold">&#x393;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> of the slip surface is also determined.</p>
</sec>
<sec id="s2-2-2">
<title>2.2.2 Sliding mode control law design</title>
<p>Using the Lyapunov method directly, the sliding mode control law is designed. Let the Lyapunov function be denoted as:<disp-formula id="e20">
<mml:math id="m69">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.5</mml:mn>
<mml:msup>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.5</mml:mn>
<mml:msup>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:msup>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:math>
<label>(20)</label>
</disp-formula>
</p>
<p>For <inline-formula id="inf50">
<mml:math id="m70">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, as <inline-formula id="inf51">
<mml:math id="m71">
<mml:mrow>
<mml:mi mathvariant="normal">t</mml:mi>
<mml:mo>&#x2192;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, ensuring that the system motion on the sliding surface is asymptotically stable is a sufficient condition when <inline-formula id="inf52">
<mml:math id="m72">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2264;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. Substituting <xref ref-type="disp-formula" rid="e2">Equation 2</xref> into <xref ref-type="disp-formula" rid="e20">Equation 20</xref> and differentiating, we obtain the <xref ref-type="disp-formula" rid="e21">Equation 21</xref>:<disp-formula id="e21">
<mml:math id="m73">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mover accent="true">
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">S</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mtext mathvariant="bold">PY</mml:mtext>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mi mathvariant="bold">&#x3c7;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">G</mml:mi>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:msub>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(21)</label>
</disp-formula>where <inline-formula id="inf53">
<mml:math id="m74">
<mml:mrow>
<mml:mi mathvariant="bold">&#x3c7;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">G</mml:mi>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
<p>Using the continuous control law given by <xref ref-type="disp-formula" rid="e22">Equation 22</xref> ensures the asymptotic stability of the system.<disp-formula id="e22">
<mml:math id="m75">
<mml:mrow>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">G</mml:mi>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold">&#x3b4;</mml:mi>
<mml:msup>
<mml:mi mathvariant="bold">&#x3c7;</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:math>
<label>(22)</label>
</disp-formula>where <inline-formula id="inf54">
<mml:math id="m76">
<mml:mrow>
<mml:mi mathvariant="bold">&#x3b4;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> represents a specified positive constant known as the sliding tolerance. Consequently, <inline-formula id="inf55">
<mml:math id="m77">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mi mathvariant="bold">&#x3c7;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="normal">&#x3b4;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mi mathvariant="bold">&#x3c7;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mo>&#x2264;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> holds throughout the entire control process.</p>
</sec>
<sec id="s2-2-3">
<title>2.2.3 The principle of MSMC</title>
<p>In this benchmark control problem, only the uncertainty of the actuator-specimen system model is considered. A linear actuator-specimen transfer function model (<xref ref-type="bibr" rid="B12">JUC et al., 2023</xref>) is adopted herein for the convenience of the later analysis. For a MIMO system with multiple actuators collaborating in RTHS, the transfer function matrix of the system needs to be discussed. The expression for the transfer function relationship for a MIMO system is given by the <xref ref-type="disp-formula" rid="e23">Equation 23</xref>:<disp-formula id="e23">
<mml:math id="m78">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">Y</mml:mi>
<mml:mi>m</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">Y</mml:mi>
<mml:mi>m</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">Y</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>q</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>G</mml:mi>
<mml:mn>11</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>G</mml:mi>
<mml:mn>21</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>G</mml:mi>
<mml:mn>12</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>G</mml:mi>
<mml:mn>22</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">Y</mml:mi>
<mml:mi>c</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">Y</mml:mi>
<mml:mi>c</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">Y</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>p</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(23)</label>
</disp-formula>where: <inline-formula id="inf56">
<mml:math id="m79">
<mml:mrow>
<mml:msub>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mi>q</mml:mi>
<mml:mo>;</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> denotes the transfer function between the <italic>i</italic>th output quantity and the <italic>j</italic>th input quantity; The <inline-formula id="inf57">
<mml:math id="m80">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">Y</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>i</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf58">
<mml:math id="m81">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">Y</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> is obtained by performing the Laplace transform of <inline-formula id="inf59">
<mml:math id="m82">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>i</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf60">
<mml:math id="m83">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>As shown in <xref ref-type="disp-formula" rid="e23">Equation 23</xref>, the transfer function matrix of a coupled system is generally a non-diagonal array, where each input affects all outputs and each output is affected by all inputs. The presence of mutual coupling effects between actuators then implies that there are no zeros on the non-diagonal terms in the transfer function matrix.</p>
<p>The transfer function of the element of transfer function matrix <inline-formula id="inf61">
<mml:math id="m84">
<mml:mrow>
<mml:msub>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is expressed as<disp-formula id="e24">
<mml:math id="m85">
<mml:mrow>
<mml:msub>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">Y</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">Y</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:msup>
<mml:mi>s</mml:mi>
<mml:mi>n</mml:mi>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
<mml:msup>
<mml:mi>s</mml:mi>
<mml:mi>n</mml:mi>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(24)</label>
</disp-formula>where: <inline-formula id="inf62">
<mml:math id="m86">
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf63">
<mml:math id="m87">
<mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the parameters defined in (<xref ref-type="bibr" rid="B23">Silva et al., 2020</xref>). The variable <italic>z</italic> is defined such as the <xref ref-type="disp-formula" rid="e25">Equation 25</xref>
<disp-formula id="e25">
<mml:math id="m88">
<mml:mrow>
<mml:msup>
<mml:mi>z</mml:mi>
<mml:mi>n</mml:mi>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mover accent="true">
<mml:mi>z</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mi>z</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mover accent="true">
<mml:mi>z</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:math>
<label>(25)</label>
</disp-formula>
</p>
<p>Then the dynamic equations of the vector-matrix form of the transfer function <xref ref-type="disp-formula" rid="e24">Equation 24</xref> are as the <xref ref-type="disp-formula" rid="e26">Equation 26</xref>
<disp-formula id="e26">
<mml:math id="m89">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(26)</label>
</disp-formula>where: <inline-formula id="inf64">
<mml:math id="m90">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mi>z</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mover accent="true">
<mml:mi>z</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi>&#x3b2;</mml:mi>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x22ef;</mml:mo>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>,<disp-formula id="equ1">
<mml:math id="m91">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="equ2">
<mml:math id="m92">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="equ3">
<mml:math id="m93">
<mml:mrow>
<mml:mo>&#x22ee;</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="equ4">
<mml:math id="m94">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b2;</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Similarly, the MSMC method needs to extend the sliding mode method to a vector form method with MDOF. The following is an example of a two-degree-of-freedom system (i &#x3d; j &#x3d; 2) to introduce the MSMC method.</p>
<p>Transform the transfer function matrix into the state space equation, as the <xref ref-type="disp-formula" rid="e27">Equation 27</xref>:<disp-formula id="e27">
<mml:math id="m95">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext mathvariant="bold">AX</mml:mtext>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi mathvariant="normal">m</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext mathvariant="bold">CX</mml:mtext>
</mml:mrow>
</mml:math>
<label>(27)</label>
</disp-formula>where: <inline-formula id="inf65">
<mml:math id="m96">
<mml:mrow>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mn>11</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mn>12</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mn>21</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">X</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:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mn>11</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mn>12</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mn>21</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">A</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:mi mathvariant="bold">B</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mn>11</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mn>21</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mn>12</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">B</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:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mi>c</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mi>c</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi mathvariant="normal">m</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mi>y</mml:mi>
<mml:mi>m</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mi>y</mml:mi>
<mml:mi>m</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mn>11</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mn>12</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mn>21</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mn>22</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>The corresponding state space coefficient matrix is built from a single transfer function <inline-formula id="inf66">
<mml:math id="m97">
<mml:mrow>
<mml:msub>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> using the following form <inline-formula id="inf67">
<mml:math id="m98">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>In the MSMC method in this paper, the &#x2018;internal mode design&#x2019; method is used to introduce the tracking error term into the state vector to construct a new system containing the error term, and the sliding mode control is performed on the new system, which successfully converts the state regulation problem of the sliding mode method into an error tracking problem and is successfully applied to the hydraulic servo system. MSMC control introduces the error matrix of a MDOF system into the state vector, and utilizes the sliding mode approach to regulate the state to the &#x2018;zero state&#x2019; characteristic for error tracking control of the hydraulic servo system.</p>
<p>The tracking error after observation is as the <xref ref-type="disp-formula" rid="e28">Equation 28</xref>:<disp-formula id="e28">
<mml:math id="m99">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">e</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mover accent="true">
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mo>&#x2212;</mml:mo>
<mml:mover accent="true">
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mover accent="true">
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
<label>(28)</label>
</disp-formula>where: <inline-formula id="inf68">
<mml:math id="m100">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mover accent="true">
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>Therefore, by introducing the tracking error term into the state vector, the new system model obtained is:<disp-formula id="e29">
<mml:math id="m101">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mover accent="true">
<mml:mi mathvariant="bold">e</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mover accent="true">
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold">e</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mover accent="true">
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mover accent="true">
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(29)</label>
</disp-formula>
<disp-formula id="e30">
<mml:math id="m102">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mover accent="true">
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold">e</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mover accent="true">
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(30)</label>
</disp-formula>
</p>
<p>Such that <xref ref-type="disp-formula" rid="e29">Equation 29</xref> is stable. This implies that the tracking error <inline-formula id="inf69">
<mml:math id="m103">
<mml:mrow>
<mml:mi mathvariant="bold">e</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is stable, the integral gain coefficient <bold>
<italic>k</italic>
</bold>
<sub>1</sub> and the state feedback gain matrix <bold>K</bold> will be found. The MSMC in the paper uses the LQR method (a pole configuration method) to obtain the integral and state feedback gains (<xref ref-type="bibr" rid="B18">Ou, 2003</xref>). Thus, we will have achieve the objective of asymptiotic tracking with zero steady state error. The control input, found by integrating <xref ref-type="disp-formula" rid="e30">Equation 30</xref>, is:<disp-formula id="e31">
<mml:math id="m104">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x222b;</mml:mo>
<mml:mi mathvariant="bold">e</mml:mi>
<mml:mtext>dt</mml:mtext>
<mml:mo>&#x2212;</mml:mo>
<mml:mtext mathvariant="bold">KX</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi mathvariant="bold">&#x3be;</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mtext mathvariant="bold">KX</mml:mtext>
</mml:mrow>
</mml:math>
<label>(31)</label>
</disp-formula>
</p>
<p>The state vector <inline-formula id="inf70">
<mml:math id="m105">
<mml:mrow>
<mml:mi mathvariant="bold">X</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> in <xref ref-type="disp-formula" rid="e31">Equation 31</xref> is replaced by the observed state vector <inline-formula id="inf71">
<mml:math id="m106">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> in actual controller, which will be discussed later.</p>
<p>Simultaneously, we can express <xref ref-type="disp-formula" rid="e29">Equation 29</xref> in the following form:<disp-formula id="e32">
<mml:math id="m107">
<mml:mrow>
<mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
<mml:msup>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mover accent="true">
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mover accent="true">
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
<mml:msup>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(32)</label>
</disp-formula>where: <inline-formula id="inf72">
<mml:math id="m108">
<mml:mrow>
<mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold">e</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mover accent="true">
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold">e</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mover accent="true">
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mi>c</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mi>c</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mover accent="true">
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mi>m</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mi>m</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mo>;</mml:mo>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>Since the matrix <bold>B</bold>
<sub>2</sub> is required to be non-singular, it is necessary to modify the positions of the elements in the state vector of <xref ref-type="disp-formula" rid="e32">Equation 32</xref>, as the <xref ref-type="disp-formula" rid="e33">Equation 33</xref>:<disp-formula id="e33">
<mml:math id="m109">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<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>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(33)</label>
</disp-formula>
</p>
<p>Therefore, <bold>B</bold>
<sub>2</sub> is a non-singular matrix, if it is a singular matrix, row and column transformations are used for <inline-formula id="inf73">
<mml:math id="m110">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> to render <bold>B</bold>
<sub>2</sub> non-singular. The positions of the elements in <inline-formula id="inf74">
<mml:math id="m111">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
<mml:mtext>and&#x2009;</mml:mtext>
<mml:msup>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> of the <xref ref-type="disp-formula" rid="e32">Equation 32</xref> need to be conducted same row and column transformations.</p>
<p>Thus, the error tracking problem of the hydraulic servo system is transformed into a state regulation control problem using sliding. The control of coupled systems is complex, and in the field of automatic control, appropriate corrections are often introduced to diagonalize the transfer function matrix, known as decoupling, so that a certain output is controlled only by a certain input. The MSMC principle used in this section is not decoupled in the conventional sense and does not diagonalize the transfer function matrix. The design of the sliding surface is aimed at achieving the desired dynamic characteristics for the system. Therefore, the principle of MSMC to reduce or even eliminate the coupling effects of actuators is actually still through the pole configuration method.</p>
<p>In addition, &#x201c;internal mode design&#x201d; requires advance knowledge of the system&#x2019;s state vector <inline-formula id="inf75">
<mml:math id="m112">
<mml:mrow>
<mml:mi mathvariant="bold">X</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. However, since the state vector <inline-formula id="inf76">
<mml:math id="m113">
<mml:mrow>
<mml:mi mathvariant="bold">X</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> contains higher-order derivatives of measurement signals, many state variables cannot be directly measured by sensors. Higher order quantities obtained by direct derivation of the sensor measurement signal are then susceptible to noise. Therefore, the Kalman filtering (KF) method is employed as a state observer to estimate the state vector, obtaining more accurate state signals (the observed state vector <inline-formula id="inf77">
<mml:math id="m114">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>).</p>
<p>The equation for state estimation is as the <xref ref-type="disp-formula" rid="e34">Equation 34</xref>:<disp-formula id="e34">
<mml:math id="m115">
<mml:mrow>
<mml:mover accent="true">
<mml:mover accent="true">
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mover accent="true">
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">K</mml:mi>
<mml:mi mathvariant="normal">e</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi mathvariant="normal">m</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mover accent="true">
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">K</mml:mi>
<mml:mi mathvariant="normal">e</mml:mi>
</mml:msub>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">K</mml:mi>
<mml:mi mathvariant="normal">e</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi mathvariant="normal">m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(34)</label>
</disp-formula>where: <inline-formula id="inf78">
<mml:math id="m116">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">K</mml:mi>
<mml:mi mathvariant="normal">e</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the observer feedback matrix, also known as the observation gain matrix.</p>
<p>When solving for the observer feedback matrix <inline-formula id="inf79">
<mml:math id="m117">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">K</mml:mi>
<mml:mi mathvariant="normal">e</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the Matlab function <italic>lqe</italic>2 can be employed, with the <xref ref-type="disp-formula" rid="e35">Equation 35</xref>:<disp-formula id="e35">
<mml:math id="m118">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">K</mml:mi>
<mml:mi mathvariant="normal">e</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>l</mml:mi>
<mml:mi>q</mml:mi>
<mml:mi>e</mml:mi>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">Q</mml:mi>
<mml:mi mathvariant="normal">e</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">R</mml:mi>
<mml:mi mathvariant="normal">e</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(35)</label>
</disp-formula>where: <inline-formula id="inf80">
<mml:math id="m119">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">Q</mml:mi>
<mml:mi mathvariant="bold">e</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf81">
<mml:math id="m120">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">R</mml:mi>
<mml:mi mathvariant="bold">e</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the covariance matrices of system noise and measurement noise, respectively.</p>
</sec>
</sec>
<sec id="s2-3">
<title>2.3 ADM method</title>
<p>The ADM compensation method can adaptively adjust the parameter <inline-formula id="inf82">
<mml:math id="m121">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and the coefficient <inline-formula id="inf83">
<mml:math id="m122">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">&#x3b8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> in the formula. Firstly, the system model is established, which establishes the relationship between the input and output of the loading system, thereby predicting the response of the system to specified commands based on this foundation. The ADM method employs a difference model, namely,:<disp-formula id="e36">
<mml:math id="m123">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold">&#x3c6;</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b8;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(36)</label>
</disp-formula>where: <inline-formula id="inf84">
<mml:math id="m124">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">&#x3c6;</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mtext>&#x2002;</mml:mtext>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b8;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mtext>&#x2002;</mml:mtext>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mi>p</mml:mi>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3b8;</mml:mi>
<mml:mi>m</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3b8;</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>q</mml:mi>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf85">
<mml:math id="m125">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="normal">&#x3b8;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mi>p</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf86">
<mml:math id="m126">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x3b8;</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>q</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> are the respective model parameters relevant to the command <inline-formula id="inf87">
<mml:math id="m127">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mtext>ac</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and measured displacements <inline-formula id="inf88">
<mml:math id="m128">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mi mathvariant="normal">m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, with <inline-formula id="inf89">
<mml:math id="m129">
<mml:mrow>
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf90">
<mml:math id="m130">
<mml:mrow>
<mml:mi mathvariant="normal">q</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> denoting the numbers of parameters/terms.</p>
<p>After simplifying the experimental system into a discrete model, it is necessary to online estimate the parameters <inline-formula id="inf91">
<mml:math id="m131">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b8;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> in <xref ref-type="disp-formula" rid="e36">Equation 36</xref> during the experiment, and real-time track the changes in system characteristics. The parameters are estimated using a recursive least-squares algorithm (<xref ref-type="bibr" rid="B35">You et al., 2019</xref>) with a forgetting factor, which has the advantages of small storage requirements and computational simplicity. This algorithm is effective in overcoming the &#x201c;data saturation&#x201d; phenomenon and can be expressed as:<disp-formula id="e37">
<mml:math id="m132">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">&#x3b8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">&#x3b8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold">&#x3c6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3bb;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold">&#x3c6;</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
<mml:msub>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold">&#x3c6;</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">&#x3b8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(37)</label>
</disp-formula>
<disp-formula id="e38">
<mml:math id="m133">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3bb;</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold">&#x3c6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3bb;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold">&#x3c6;</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
<mml:msub>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:msubsup>
<mml:mi mathvariant="bold">&#x3c6;</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(38)</label>
</disp-formula>
</p>
<p>In <xref ref-type="disp-formula" rid="e37">Equation 37</xref>, <xref ref-type="disp-formula" rid="e38">38</xref>: <inline-formula id="inf92">
<mml:math id="m134">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3bb;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> represents the forgetting factor, typically set to <inline-formula id="inf93">
<mml:math id="m135">
<mml:mrow>
<mml:mn>0.9</mml:mn>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>&#x3bb;</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>; <inline-formula id="inf94">
<mml:math id="m136">
<mml:mrow>
<mml:mi mathvariant="bold">I</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> denotes the identity matrix. The initial covariance <inline-formula id="inf95">
<mml:math id="m137">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and parameter <inline-formula id="inf96">
<mml:math id="m138">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">&#x3b8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are evaluated by the standard least-squares method with offline test data, as the <xref ref-type="disp-formula" rid="e39">Equations 39</xref>, <xref ref-type="disp-formula" rid="e40">40</xref>
<disp-formula id="e39">
<mml:math id="m139">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">&#x3b8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mi mathvariant="bold">&#x3d5;</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="bold">&#x3d5;</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:math>
<label>(39)</label>
</disp-formula>
<disp-formula id="e40">
<mml:math id="m140">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
<mml:mi mathvariant="bold">&#x3d5;</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:mrow>
</mml:math>
<label>(40)</label>
</disp-formula>with<disp-formula id="equ5">
<mml:math id="m141">
<mml:mrow>
<mml:mi mathvariant="bold">&#x3d5;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3c6;</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">&#x3c6;</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">&#x3c6;</mml:mi>
<mml:mi mathvariant="bold">L</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="equ6">
<mml:math id="m142">
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mi mathvariant="normal">L</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</disp-formula>where L indicates the length of the data.</p>
<p>The determination of initial values <inline-formula id="inf97">
<mml:math id="m143">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf98">
<mml:math id="m144">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">&#x3b8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, requires offline experimental loading, followed by parameter updates for a period of time, and then the converged values are taken as the initial values for the method. Otherwise, the estimated initial values may have significant errors, affecting the precision of the experiment.</p>
<p>The parameters estimated from <xref ref-type="disp-formula" rid="e37">Equation 37</xref>, <xref ref-type="disp-formula" rid="e38">38</xref> can reflect the current state of the system, including its time delay characteristics. If the established system model is effective, it will achieve good time delay compensation effects and automatically track changes in system time delay. The objective of time delay compensation control strategy is to make the measured signal <inline-formula id="inf99">
<mml:math id="m145">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> as close to the target signal <inline-formula id="inf100">
<mml:math id="m146">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>i</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> as possible, and in order to enhance the robustness of the method, the compensation method is as the <xref ref-type="disp-formula" rid="e41">Equation 41</xref>:<disp-formula id="e41">
<mml:math id="m147">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold">&#x3c6;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(41)</label>
</disp-formula>where: <inline-formula id="inf101">
<mml:math id="m148">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">&#x3c6;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mtext>&#x2002;</mml:mtext>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>i</mml:mi>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>q</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>Assuming that the model parameters do not vary significantly within <inline-formula id="inf102">
<mml:math id="m149">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x223c;</mml:mo>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, we can get the <xref ref-type="disp-formula" rid="e42">Equation 42</xref>:<disp-formula id="e42">
<mml:math id="m150">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2248;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">&#x3b8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(42)</label>
</disp-formula>
</p>
<p>In conclusion, the ADM method assumes the system as a difference equation model. It predicts and updates parameters based on the displacement response of the actuator in the initial steps, then compensates by using the updated parameters to predict the next displacement command against the desired system displacement.</p>
</sec>
</sec>
<sec id="s3">
<title>3 Virtual experiment platform</title>
<p>To better validate the feasibility and robustness of the proposed time-delay compensation method in this paper, it is necessary to apply the ADM-MSMC method to conduct RTHS on a Benchmark Problem Platform. Thus, in order to integrate the ADM-MSMC method with the Benchmark Problem Platform effectively, this section firstly introduces the partitioning of experimental and numerical substructures in the platform, along with the transmission system. Finally, the subsequent numerical simulations scheme for the maRTHS simulation is presented.</p>
<sec id="s3-1">
<title>3.1 Structural division</title>
<p>A three-story, three-span steel structure is used as the reference model, divided into numerical substructures and experimental substructures. The middle span of one floor structure is designated as the experimental substructure, as shown in <xref ref-type="fig" rid="F2">Figure 2A</xref>.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Substructure division and partition system. <bold>(A)</bold> Numerical substructure (black). <bold>(B)</bold> Closed-loop partition system experimental substructure (red).</p>
</caption>
<graphic xlink:href="fbuil-10-1393710-g002.tif"/>
</fig>
<p>Taking an example of a three-story experimental substructure, where the experimental substructure is the middle span of the first floor, and the rest is the numerical substructure, as shown in <xref ref-type="fig" rid="F2">Figure 2A</xref>.</p>
<p>The numerical substructure and the experimental substructure are interconnected and synchronized through a feedback loop that allows them to share information at the common interface nodes at each time step during execution (<xref ref-type="bibr" rid="B23">Silva et al., 2020</xref>). <xref ref-type="fig" rid="F2">Figure 2B</xref> shows the main degrees of freedom of the interface nodes and the signals transmitted between the numerical substructure and the experimental substructure. Ideally, at each time interval, the numerical substructure is first excited, then the responses <inline-formula id="inf103">
<mml:math id="m151">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3c8;</mml:mi>
<mml:mrow>
<mml:mtext>ns</mml:mtext>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>16</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>28</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf104">
<mml:math id="m152">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3c8;</mml:mi>
<mml:mrow>
<mml:mtext>ns</mml:mtext>
<mml:mn>7</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mn>7</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>19</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>31</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
<mml:mn>7</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
<mml:mn>7</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
<mml:mn>7</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> of the interface nodes are excited, their derivatives (velocity and acceleration) are added to the experimental substructure. Then, the generated experimental restoring forces <inline-formula id="inf105">
<mml:math id="m153">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">f</mml:mi>
<mml:mrow>
<mml:mtext>es</mml:mtext>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
<mml:mn>4</mml:mn>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
<mml:mn>4</mml:mn>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf106">
<mml:math id="m154">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">f</mml:mi>
<mml:mrow>
<mml:mtext>es</mml:mtext>
<mml:mn>7</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
<mml:mn>7</mml:mn>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
<mml:mn>7</mml:mn>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
<mml:mn>7</mml:mn>
</mml:mrow>
</mml:msub>
</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. In addition, the more critical interface conditions in this paper are represented by vector <inline-formula id="inf107">
<mml:math id="m155">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3c8;</mml:mi>
<mml:mrow>
<mml:mtext>ns</mml:mtext>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mtext>ns</mml:mtext>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mtext>ns</mml:mtext>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mrow>
<mml:mtext>ns</mml:mtext>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">&#x3c8;</mml:mi>
<mml:mrow>
<mml:mtext>ns</mml:mtext>
<mml:mn>7</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mtext>ns</mml:mtext>
<mml:mn>7</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mtext>ns</mml:mtext>
<mml:mn>7</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mrow>
<mml:mtext>ns</mml:mtext>
<mml:mn>7</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">&#x3c8;</mml:mi>
<mml:mrow>
<mml:mtext>es</mml:mtext>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mtext>es</mml:mtext>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mtext>es</mml:mtext>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mrow>
<mml:mtext>es</mml:mtext>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mtext>and</mml:mtext>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold">&#x3c8;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>es</mml:mtext>
<mml:mn>7</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mtext>es</mml:mtext>
<mml:mn>7</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mtext>es</mml:mtext>
<mml:mn>7</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mrow>
<mml:mtext>es</mml:mtext>
<mml:mn>7</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>The experimental substructure framework used in this paper is consists of a horizontal beam and two vertical columns. The beam element is made of a 50&#xa0;mm &#xd7; 6&#xa0;mm plate (web) and two 38&#xa0;mm &#xd7; 6&#xa0;mm plates (flanges), and the column elements are made of A572 Grade 50 structural steel. This experimental substructure framework has been used in the research of Gao and Castaneda (<xref ref-type="bibr" rid="B6">Gao, 2012</xref>; <xref ref-type="bibr" rid="B8">Gao et al., 2013b</xref>), and Silva (<xref ref-type="bibr" rid="B23">Silva et al., 2020</xref>) and others have used this framework to study the benchmark control problem, then the feasibility of this device has been verified.</p>
</sec>
<sec id="s3-2">
<title>3.2 Transmission system</title>
<p>Due to the strong non-linearity and MDOF characteristics of the experimental substructure, RTHS with multi-directional loading are required. In addition, due to the high axial stiffness of the columns, the axial deformation of the columns will be neglected, and the vertical degrees-of-freedom along the entire coordinate <italic>y</italic> direction is not considered. To represent the MDOF response of the experimental substructure in a more realistic way and the hydraulic actuators only provide motion, two hydraulic actuators will be used in the transmission system to equivalently replace the motion of the original frame node 4, as shown in <xref ref-type="fig" rid="F3">Figure 3</xref>. <xref ref-type="fig" rid="F3">Figure 3A</xref> shows that node 4 of the experimental substructure is mainly affected by the rotation and horizontal displacement of the numerical substructure, and <xref ref-type="fig" rid="F3">Figure 3B</xref> shows that at least two hydraulic actuators are required to provide equivalent translational and rotational motion for node 4.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Equivalent multi-actuator action to provide both translational and rotational motion. <bold>(A)</bold> Interface boundary conditions at node 4: rotation and linear displacement. <bold>(B)</bold> Equivalent MDOF motion performed by two hydraulic actuators.</p>
</caption>
<graphic xlink:href="fbuil-10-1393710-g003.tif"/>
</fig>
<p>To better apply these two hydraulic actuators to the experimental substructure, this paper adds a coupler attached to the frame between the actuators and the frame, the specific hydraulic actuator and coupler settings refer to the literature cited in (<xref ref-type="bibr" rid="B12">JUC et al., 2023</xref>). The two hydraulic actuators directly act horizontally on the coupler, causing it to rotate and translate, thereby inducing equivalent MDOF motions in the frame, as shown in <xref ref-type="fig" rid="F4">Figure 4</xref>.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Both hydraulic actuators mounted on the wall (<xref ref-type="bibr" rid="B12">JUC et al., 2023</xref>).</p>
</caption>
<graphic xlink:href="fbuil-10-1393710-g004.tif"/>
</fig>
</sec>
<sec id="s3-3">
<title>3.3 MaRTHS scheme</title>
<p>With the numerical simulations model provided by the Benchmark Problem Platform (<xref ref-type="bibr" rid="B23">Silva et al., 2020</xref>), maRTHS is carried out, and its simulink diagram is shown in <xref ref-type="fig" rid="F5">Figure 5</xref>. The main task of this scheme is to design a control system to make the measured actuator displacement consistent with the response of the numerical substructure in the actuator coordinates, and to evaluate its tracking performance and the overall performance of RTHS (<xref ref-type="bibr" rid="B23">Silva et al., 2020</xref>).</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Simulink diagram of the ADM-MSMC method.</p>
</caption>
<graphic xlink:href="fbuil-10-1393710-g005.tif"/>
</fig>
<p>
<xref ref-type="fig" rid="F5">Figure 5</xref> shows that the numerical substructure outputs a displacement vector <inline-formula id="inf108">
<mml:math id="m156">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3c8;</mml:mi>
<mml:mrow>
<mml:mtext>ns</mml:mtext>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>28</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> under the action of ground motion. It is necessary to use a coordinate transformation function to convert this displacement vector from &#x201c;frame coordinates <inline-formula id="inf109">
<mml:math id="m157">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3c8;</mml:mi>
<mml:mtext>ns</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>&#x201d; to &#x201c;actuator coordinates <inline-formula id="inf110">
<mml:math id="m158">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold">&#x3b7;</mml:mi>
</mml:mrow>
<mml:mtext>ns</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>,&#x201d; and then input the transformed actuator coordinates into the control system to obtain the input vector <inline-formula id="inf111">
<mml:math id="m159">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>y</mml:mi>
<mml:mi>c</mml:mi>
<mml:mn>1</mml:mn>
</mml:msubsup>
<mml:mtext>&#x2002;</mml:mtext>
<mml:msubsup>
<mml:mi>y</mml:mi>
<mml:mi>c</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> for the control actuator. This signal is then transmitted to the corresponding hydraulic actuator, which drives the corresponding experimental substructure and obtains the multi-axis actuator displacement <inline-formula id="inf112">
<mml:math id="m160">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi mathvariant="normal">m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> equivalent to the target displacement vector <inline-formula id="inf113">
<mml:math id="m161">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">&#x3c8;</mml:mi>
<mml:mtext>ns</mml:mtext>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> of the frame node. The multi-axis actuator displacement <inline-formula id="inf114">
<mml:math id="m162">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">y</mml:mi>
<mml:mi mathvariant="normal">m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is then fed back to the control system. <inline-formula id="inf115">
<mml:math id="m163">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold">&#x3c8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the vector of actuator responses transformed in frame coordinates. Similarly, this &#x201c;actuator coordinate&#x201d; is transformed by the coordinate transformation function into &#x201c;frame coordinates,&#x201d; and then the feedback force is calculated to obtain the experimental force vector <inline-formula id="inf116">
<mml:math id="m164">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">f</mml:mi>
<mml:mi mathvariant="normal">m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> required to satisfy the equilibrium condition at the interface nodes of the numerical substructure, and this feedback signal is fed back to the numerical substructure.</p>
</sec>
</sec>
<sec id="s4">
<title>4 Numerical simulation</title>
<p>In this section, numerical simulations will be conducted using MATLAB/Simulink, with a primary focus on the time delay caused by actuators. In the simulation, the existing time delay compensation methods in the Benchmark Problem Platform are replaced with adaptive time series (ATS) (<xref ref-type="bibr" rid="B2">Chae et al., 2013</xref>), ADM, MSMC, and ADM-MSMC time delay compensation methods for RTHS. Experimental and numerical results are provided, followed by a comparison between the experimental and numerical results to validate the feasibility and robustness of the ADM-MSMC time delay compensation method.</p>
<p>In the Benchmark Problem Platform, the inherent actuator model is represented by transfer functions. In order to evaluate the robustness and stability of the proposed control methods, this paper defines partitioning situations by altering the structural parameters of the reference structure, as shown in <xref ref-type="table" rid="T1">Table 1</xref>. The variation of modal damping and mass for each layer of the reference structure is considered, resulting in different stability and performance scenarios. The input to the reference and hybrid system for this simulation is the EI Centro earthquake historic record with a scaling factor of 0.40. As shown in <xref ref-type="fig" rid="F6">Figure 6</xref>, the inner-loop PI controller serves as the controller for the original Benchmark Problem Platform, which is in the transmission system as shown in <xref ref-type="fig" rid="F5">Figure 5</xref>. The proportional gain (k<sub>p</sub>) and integral gain (k<sub>i</sub>) of the PI controller are set to k<sub>p</sub> &#x3d; 2 and k<sub>i</sub> &#x3d; 95, for detailed definitions, please refer to the literature cited in (<xref ref-type="bibr" rid="B23">Silva et al., 2020</xref>).</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>RTHS partitioning cases.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Partitioning configuration</th>
<th align="center">Reference floor mass (kg)</th>
<th align="center">Reference modal damping (%)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">Case 1</td>
<td align="center">1,000</td>
<td align="center">5</td>
</tr>
<tr>
<td align="center">Case 2</td>
<td align="center">1,100</td>
<td align="center">4</td>
</tr>
<tr>
<td align="center">Case 3</td>
<td align="center">1,300</td>
<td align="center">3</td>
</tr>
<tr>
<td align="center">Case 4</td>
<td align="center">1,000</td>
<td align="center">2</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Block diagram of the control plant (<xref ref-type="bibr" rid="B23">Silva et al., 2020</xref>).</p>
</caption>
<graphic xlink:href="fbuil-10-1393710-g006.tif"/>
</fig>
<p>Where s is Laplace operator.</p>
<p>The parameters used herein for the these controllers are determined based on the parameters of the benchmark problem model, as summarized in <xref ref-type="table" rid="T2">Table 2</xref> below. In this simulation, the solver was set to a fixed-step configuration with a base sample time of 1/1,024&#xa0;s. The ODE4 (Runge-Kutta) method was chosen as the solver, providing a balanced approach between computational efficiency and accuracy for the simulation.</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Parameters of the controllers.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Controller</th>
<th colspan="6" align="center">Controller parameters</th>
</tr>
<tr>
<th align="left"/>
<th align="center">
<inline-formula id="inf117">
<mml:math id="m165">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x3b8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
<th align="center">
<inline-formula id="inf118">
<mml:math id="m166">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">P</mml:mi>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
<th align="center">
<inline-formula id="inf119">
<mml:math id="m167">
<mml:mrow>
<mml:mi mathvariant="normal">Q</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
<th align="center">
<inline-formula id="inf120">
<mml:math id="m168">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3b4;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
<th align="center">
<inline-formula id="inf121">
<mml:math id="m169">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">Q</mml:mi>
<mml:mi mathvariant="normal">e</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
<th align="center">
<inline-formula id="inf122">
<mml:math id="m170">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">R</mml:mi>
<mml:mi mathvariant="normal">e</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">ADM</td>
<td align="center">[100 4.5&#x2013;4]<break/>[100&#x2013;1.5 0.1]</td>
<td align="center">100&#x2a; <inline-formula id="inf123">
<mml:math id="m171">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
<break/>100&#x2a; <inline-formula id="inf124">
<mml:math id="m172">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">NA</td>
<td align="center">NA</td>
<td align="center">NA</td>
<td align="center">NA</td>
</tr>
<tr>
<td align="center">MSMC</td>
<td align="center">NA</td>
<td align="center">NA</td>
<td align="center">
<inline-formula id="inf125">
<mml:math id="m173">
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn>500</mml:mn>
<mml:mo>&#x2a;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn>0.002</mml:mn>
<mml:mo>&#x2a;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mn>14</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>14</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn>0.00004</mml:mn>
<mml:mo>&#x2a;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">220<break/>70.2</td>
<td align="center">0.01</td>
<td align="center">1,000</td>
</tr>
<tr>
<td align="center">ADM-MSMC</td>
<td align="center">[165&#x2013;2 &#x2013;1.5]<break/>[98&#x2013;1.5&#x2013;7]</td>
<td align="center">100&#x2a; <inline-formula id="inf126">
<mml:math id="m174">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
<break/>100&#x2a; <inline-formula id="inf127">
<mml:math id="m175">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">
<inline-formula id="inf128">
<mml:math id="m176">
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn>500</mml:mn>
<mml:mo>&#x2a;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn>0.002</mml:mn>
<mml:mo>&#x2a;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mn>14</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>14</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn>0.00004</mml:mn>
<mml:mo>&#x2a;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">I</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">220<break/>70.2</td>
<td align="center">0.01</td>
<td align="center">1,000</td>
</tr>
</tbody>
</table>
</table-wrap>
<sec id="s4-1">
<title>4.1 Displacement response</title>
<p>Due to space limitations, this paper only presents the displacement time-history comparison graphs for Case 1 and Case 4. <xref ref-type="fig" rid="F7">Figures 7</xref>, <xref ref-type="fig" rid="F8">8</xref> depict the displacement time-history curves for the different compensation methods in Case 1 and Case 4, respectively. The curves represent a comparison between the displacement time-history curves in the original Benchmark Problem Platform and the ones obtained by replacing the time-delay compensation method with ATS, ADM, MSMC, and ADM-MSMC methods. From <xref ref-type="fig" rid="F7">Figures 7</xref>, <xref ref-type="fig" rid="F8">8</xref>, it is evident that replacing the original time delay compensation method in the Benchmark Problem Platform with the ADM-MSMC compensation method results in the actual displacement responses of actuator 1 and actuator 2 closely matching the desired displacement responses. Furthermore, compared to replacing with ATS, ADM, and MSMC methods, the actual displacement response curve of the ADM-MSMC method aligns more closely with the desired displacement response curve. This indicates that the proposed ADM-MSMC method exhibits higher compensation accuracy in maRTHS.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Displacement time-history comparison of Case 1. <bold>(A)</bold> Desired displacement and actual displacement response of actuator 1. <bold>(B)</bold> Desired displacement and actual displacement response of actuator 2.</p>
</caption>
<graphic xlink:href="fbuil-10-1393710-g007.tif"/>
</fig>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Displacement time-history comparison of Case 4. <bold>(A)</bold> Desired displacement and actual displacement response of actuator 1. <bold>(B)</bold> Desired displacement and actual displacement response of actuator 2.</p>
</caption>
<graphic xlink:href="fbuil-10-1393710-g008.tif"/>
</fig>
</sec>
<sec id="s4-2">
<title>4.2 Evaluation criteria values</title>
<p>To quantitatively assess the overall performance of maRTHS, this paper considers: 1) tracking control performance (minimization of error between target displacement and measured displacement); and 2) global RTHS experimental performance (minimization of error between reference structural response and hybrid system response). This simulation instance involves a set of 10 evaluation criteria, with the J<sub>1</sub> to J<sub>6</sub> assessing the tracking performance of the control system, and the J<sub>7</sub> to J<sub>10</sub> calculating the global performance of RTHS. The definitions and computation formulas of these criteria are detailed in reference (<xref ref-type="bibr" rid="B12">JUC et al., 2023</xref>).</p>
<p>The values of these ten evaluation criteria for four case are computed based on the numerical simulations responses, listed as A1-A4 in <xref ref-type="sec" rid="s11">Supplementary Appendix SA</xref>, with the minimum value in each row bold for easier observation. This section presents line graphs of evaluation indicators analysis for four cases, as depicted in <xref ref-type="fig" rid="F9">Figure 9</xref>, based on the four tables in <xref ref-type="sec" rid="s11">Supplementary Appendix SA</xref>. In the graph, the horizontal axis ranging from 1 to 24 corresponds to performance indicators <bold>
<italic>J</italic>
</bold>
<sub>1,1</sub> to <bold>
<italic>J</italic>
</bold>
<sub>10,27</sub>, with the specific numerical values of the performance indicators represented on the vertical axis. From <xref ref-type="fig" rid="F9">Figure 9</xref>, it is evident that the values of J<sub>1</sub> to J<sub>10</sub> are relatively large without compensation, but show improvement after the application of compensation methods. Furthermore, it will be observed from <xref ref-type="fig" rid="F9">Figure 9</xref> that, except for the MSMC method and without compensation, other compensation methods exhibit smaller time delay between the desired and actual actuator displacements (J<sub>1</sub>). Additionally, the ADM-MSMC method demonstrates relatively smaller normalized tracking error (J<sub>2</sub>) and maximum peak tracking error (J<sub>3</sub>) compared to other methods, indicating that the tracking performance of the ADM-MSMC method is more reliable than the other compensation methods considered in this paper. Moreover, the values of J<sub>4</sub> to J<sub>10</sub> for the ADM-MSMC method are smaller than those for the other four compensation methods. This suggests that the errors between the displacement responses of the ADM-MSMC method and the computed results of the reference model are also smaller, further validating the feasibility and robustness of the ADM-MSMC method.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>Evaluation indices for cases 1, 2, 3, and 4. <bold>(A)</bold> Evaluation indices for cases 1. <bold>(B)</bold> Evaluation indices for cases 2. <bold>(C)</bold> Evaluation indices for cases 3. <bold>(D)</bold> Evaluation indices for cases 4.</p>
</caption>
<graphic xlink:href="fbuil-10-1393710-g009.tif"/>
</fig>
</sec>
</sec>
<sec sec-type="conclusion" id="s5">
<title>5 Conclusion</title>
<p>This paper proposes an ADM-MSMC method to compensate for the delay inherent in maRTHS, applied to the benchmark control problem of maRTHS. The principle and design of the ADM-MSMC method is introduced, with a focus on integrating ADM with MSMC. Numerical simulations of RTHS are conducted on the Benchmark Problem Platform, comparing the results of the ADM-MSMC compensated system with those of the original Benchmark Problem Platform, as well as those compensated using ATS, ADM, and MSMC methods. The numerical and simulation results demonstrate that when the ADM-MSMC method is applied to the maRTHS, the responses after ADM-MSMC compensation are more accurate and closely match the desired responses. Furthermore, the ADM-MSMC method exhibits greater feasibility and robustness compared to the other four compensation methods. Therefore, this method demonstrates a certain level of effectiveness in maRTHS.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s6">
<title>Data availability statement</title>
<p>The datasets presented in this study can be found in online repositories. The names of the repository/repositories and accession number(s) can be found in the article/<xref ref-type="sec" rid="s11">Supplementary Material</xref>.</p>
</sec>
<sec sec-type="author-contributions" id="s7">
<title>Author contributions</title>
<p>YS: Software, Writing&#x2013;original draft, Writing&#x2013;review and editing. ZW: Methodology, Writing&#x2013;review and editing. YG: Methodology, Software, Data curation, Investigation, Project administration, Resources, Writing&#x2013;review and editing. YC: Software, Writing&#x2013;review and editing. YZ: Software, Writing&#x2013;review and editing. HZ: Writing&#x2013;review and editing.</p>
</sec>
<sec sec-type="funding-information" id="s8">
<title>Funding</title>
<p>The author(s) declare that financial support was received for the research, authorship, and/or publication of this article. Thanks to the National Key Research and Development Program (2022YFC3801201), the National Natural Science Foundation of China (51878630, 52078398), and the Natural Science Foundation of Guangdong Province (2022A1515010500, 2022A1515010338).</p>
</sec>
<sec sec-type="COI-statement" id="s9">
<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="s10">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<sec id="s11">
<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.1393710/full#supplementary-material">https://www.frontiersin.org/articles/10.3389/fbuil.2024.1393710/full&#x23;supplementary-material</ext-link>
</p>
<supplementary-material xlink:href="DataSheet1.docx" id="SM1" mimetype="application/docx" xmlns:xlink="http://www.w3.org/1999/xlink"/>
</sec>
<ref-list>
<title>References</title>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chae</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Kazemibidokhti</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Ricles</surname>
<given-names>J. M.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Adaptive time series compensator for delay compensation of servo-hydraulic actuator systems for real-time hybrid simulation</article-title>. <source>Earthq. Engng Struct. Dyn.</source> <volume>42</volume> (<issue>11</issue>), <fpage>1697</fpage>&#x2013;<lpage>1715</lpage>. <pub-id pub-id-type="doi">10.1002/eqe.2294</pub-id>
</citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chae</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Rabiee</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Dursun</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Kim</surname>
<given-names>C. Y.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Real-time force control for servo-hydraulic actuator systems using adaptive time series compensator and compliance springs</article-title>. <source>Earthq. Engng Struct. Dyn.</source> <volume>47</volume>, <fpage>854</fpage>&#x2013;<lpage>871</lpage>. <pub-id pub-id-type="doi">10.1002/eqe.2994</pub-id>
</citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Ricles</surname>
<given-names>J. M.</given-names>
</name>
<name>
<surname>Guo</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>Improved adaptive inverse compensation technique for Real-Time Hybrid Simulation</article-title>. <source>J. Eng. Mech.</source> <volume>138</volume> (<issue>12</issue>), <fpage>1432</fpage>&#x2013;<lpage>1446</lpage>. <pub-id pub-id-type="doi">10.1061/(asce)em.1943-7889.0000450</pub-id>
</citation>
</ref>
<ref id="B5">
<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="B6">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Gao</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2012</year>). &#x201c;<article-title>Development of a robust framework for real-time hybrid simulation: from dynamical system</article-title>,&#x201d; in <source>Motion control to experimental error verification</source>. <publisher-name>Purdue University ProQuest Dissertations Publishing</publisher-name>, <fpage>3556206</fpage>.</citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Gao</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Castaneda</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Dyke</surname>
<given-names>J. S.</given-names>
</name>
</person-group> (<year>2013a</year>). <article-title>Experimental validation of a generalized procedure for mDOF real-time hybrid simulation</article-title>. <source>J. Eng. Mech.</source> <volume>140</volume> (<issue>4</issue>), <fpage>04013006</fpage>. <pub-id pub-id-type="doi">10.1061/(asce)em.1943-7889.0000696</pub-id>
</citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Gao</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Castaneda</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Dyke</surname>
<given-names>S. J.</given-names>
</name>
</person-group> (<year>2013b</year>). <article-title>Real time hybrid simulation: from dynamic system, motion control to experimental error</article-title>. <source>Earthg Eng. Struct. Dyn.</source> <volume>42</volume>, <fpage>815</fpage>&#x2013;<lpage>832</lpage>. <pub-id pub-id-type="doi">10.1002/eqe.2246</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hayati</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>An optimal discrete-time feedforward compensator for real-time hybrid simulation</article-title>. <source>Smart Struct. Syst.</source> <volume>20</volume> (<issue>4</issue>), <fpage>483</fpage>&#x2013;<lpage>498</lpage>. <pub-id pub-id-type="doi">10.12989/sss.2017.20.4.483</pub-id>
</citation>
</ref>
<ref id="B10">
<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. Engng Struct. Dyn.</source> <volume>28</volume>, <fpage>1121</fpage>&#x2013;<lpage>1141</lpage>. <pub-id pub-id-type="doi">10.1002/(sici)1096-9845(199910)28:10&#x3c;1121::aid-eqe858&#x3e;3.3.co;2-f</pub-id>
</citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jiang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Jian</surname>
<given-names>Z. Q.</given-names>
</name>
<name>
<surname>Cheng</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Dong</surname>
<given-names>S. M.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Three-dimensional scene construction based on missile semi-physical simulation</article-title>. <source>Electron. Des. Eng.</source> <volume>28</volume> (<issue>15</issue>), <fpage>83</fpage>&#x2013;<lpage>87</lpage>. <pub-id pub-id-type="doi">10.14022/j.issn1674-6236.2020.15.019</pub-id>
</citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Juc</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Manuel</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Edwin</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Montoya</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Dyke</surname>
<given-names>S. J.</given-names>
</name>
<name>
<surname>Silva</surname>
<given-names>C. E.</given-names>
</name>
<etal/>
</person-group> (<year>2023</year>). <article-title>Experimental benchmark control problem for multi-axial real-time hybrid simulation</article-title>. <source>Front. Built Environ.</source> <volume>9</volume>. <pub-id pub-id-type="doi">10.3389/fbuil.2023.1270996</pub-id>
</citation>
</ref>
<ref id="B13">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2020</year>). <source>Real-time hybrid test method and hybrid simulation study of axle vibration system</source>. <publisher-name>Harbin Institute of Technology</publisher-name>.</citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Najafi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Fermandois</surname>
<given-names>G. A.</given-names>
</name>
<name>
<surname>Dyke</surname>
<given-names>S. J.</given-names>
</name>
<name>
<surname>Spencer</surname>
<given-names>B. F.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Hybrid simulation with multiple actuators: a state-of-the-art review</article-title>. <source>Eng. Struct.</source> <volume>276</volume>, <fpage>115284</fpage>. <pub-id pub-id-type="doi">10.1016/j.engstruct.2022.115284</pub-id>
</citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Najafi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Spencer</surname>
<given-names>B. F.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Multiaxial real-time hybrid simulation for substructuring with multiple boundary Points</article-title>. <source>J. Struct. Eng.</source> <volume>147</volume> (<issue>11</issue>). <pub-id pub-id-type="doi">10.1061/(asce)st.1943-541x.0003138</pub-id>
</citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ning</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>N. W.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>G. S.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Zheng</surname>
<given-names>L.</given-names>
</name>
<etal/>
</person-group> (<year>2023</year>). <article-title>A novel model-based adaptive feedforward-feedback control method for real-time hybrid simulation considering additive error model</article-title>. <source>Struct. Control Health Monit.</source> <volume>2023</volume>, <fpage>1</fpage>&#x2013;<lpage>25</lpage>. <pub-id pub-id-type="doi">10.1155/2023/5550580</pub-id>
</citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ou</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Ozdagli</surname>
<given-names>A. I.</given-names>
</name>
<name>
<surname>Dyke</surname>
<given-names>S. J.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Robust integrated actuator control: experimental verification and real-time hybrid-simulation implementation</article-title>. <source>Earthq. Engng Struct. Dyn.</source> <volume>44</volume> (<issue>3</issue>), <fpage>441</fpage>&#x2013;<lpage>460</lpage>. <pub-id pub-id-type="doi">10.1002/eqe.2479</pub-id>
</citation>
</ref>
<ref id="B18">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Ou</surname>
<given-names>J. P.</given-names>
</name>
</person-group> (<year>2003</year>). <source>Structural vibration control - active, semi-active and intelligent control</source>. <publisher-loc>Beijing</publisher-loc>: <publisher-name>Science Publishing House</publisher-name>, <fpage>71</fpage>&#x2013;<lpage>74</lpage>.</citation>
</ref>
<ref id="B1">
<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> (<issue>12</issue>), <fpage>106345</fpage>. <pub-id pub-id-type="doi">10.1016/j.ymssp.2019.106345</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Philips</surname>
<given-names>B. M.</given-names>
</name>
<name>
<surname>Spencer</surname>
<given-names>B. F.</given-names>
</name>
</person-group> (<year>2011</year>). <article-title>Model-based feedforward-feedback tracking control for real-time hybrid simulation</article-title>. <source>NSEL Rep. Ser</source>. <pub-id pub-id-type="doi">10.1061/(ASCE)ST.1943-541X.0000606</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Rajabi</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Abolmasoumi</surname>
<given-names>H. A.</given-names>
</name>
<name>
<surname>Soleymani</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Sliding mode trajectory tracking control of a ball&#x2010;screw&#x2010;driven shake table based on online state estimations using EKF/UKF</article-title>. <source>Struct. Control Health Monit.</source> <volume>25</volume> (<issue>4</issue>), <fpage>e2133</fpage>. <pub-id pub-id-type="doi">10.1002/stc.2133</pub-id>
</citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Salvatore</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Mario</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Actuator dynamics compensation for real-time hybrid simulation: an adaptive approach by means of a nonlinear estimator</article-title>. <source>Nonlinear Dyn.</source> <volume>85</volume> (<issue>4</issue>), <fpage>2353</fpage>&#x2013;<lpage>2368</lpage>. <pub-id pub-id-type="doi">10.1007/s11071-016-2831-0</pub-id>
</citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sarebanha</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Schellenberg</surname>
<given-names>H. A.</given-names>
</name>
<name>
<surname>Schoettler</surname>
<given-names>J. M.</given-names>
</name>
<name>
<surname>Mosqueda</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>A. Mahin</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Real-time hybrid simulation of seismically isolated structures with full-scale bearings and large computational models</article-title>. <source>Comput. Model. Eng. Sci.</source> <volume>120</volume> (<issue>3</issue>), <fpage>693</fpage>&#x2013;<lpage>717</lpage>. <pub-id pub-id-type="doi">10.32604/cmes.2019.04846</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Silva</surname>
<given-names>C. E.</given-names>
</name>
<name>
<surname>Gomez</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Maghareh</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Dyke</surname>
<given-names>S. J.</given-names>
</name>
<name>
<surname>Spencer</surname>
<given-names>B. F.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Benchmark control problem for real-time hybrid simulation</article-title>. <source>Mech. Syst. Signal Process.</source> <volume>135</volume>, <fpage>106381</fpage>. <pub-id pub-id-type="doi">10.1016/j.ymssp.2019.106381</pub-id>
</citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Stoten</surname>
<given-names>D. P.</given-names>
</name>
<name>
<surname>Yamaguchi</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Yamashita</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Dynamically substructured system testing for railway vehicle pantographs</article-title>. <source>J. Phys. Conf. Ser.</source> <volume>744</volume>, <fpage>012204</fpage>. <pub-id pub-id-type="doi">10.1088/1742-6596/744/1/012204</pub-id>
</citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tian</surname>
<given-names>Y. P.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>H. M.</given-names>
</name>
<name>
<surname>Du</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Shaking&#x2010;table substructure test using a MDOF boundary&#x2010;coordinating device</article-title>. <source>Earthq. Eng. Struct. Dyn.</source> <volume>51</volume> (<issue>15</issue>), <fpage>3658</fpage>&#x2013;<lpage>3679</lpage>. <pub-id pub-id-type="doi">10.1002/eqe.3741</pub-id>
</citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wallace</surname>
<given-names>M. I.</given-names>
</name>
<name>
<surname>Wagg</surname>
<given-names>D. J.</given-names>
</name>
<name>
<surname>Neild</surname>
<given-names>S. A.</given-names>
</name>
</person-group> (<year>2005</year>). <article-title>An adaptive polynomial based forward prediction algorithm for multi-actuator real-time dynamic substructuring</article-title>. <source>Proc. R. Soc. A</source> <volume>461</volume> (<issue>2064</issue>), <fpage>3807</fpage>&#x2013;<lpage>3826</lpage>. <pub-id pub-id-type="doi">10.1098/rspa.2005.1532</pub-id>
</citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Ning</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>High performance compensation using an adaptive strategy for real-time hybrid simulation</article-title>. <source>Mech. Syst. Signal Process.</source> <volume>133</volume>, <fpage>106262</fpage>. <pub-id pub-id-type="doi">10.1016/j.ymssp.2019.106262</pub-id>
</citation>
</ref>
<ref id="B28">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>An adaptive delay compensation 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="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Bursi</surname>
<given-names>O. S.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Actuator dynamics compensation based on upper bound delay for real-time hybrid simulation</article-title>. <source>Earthq. Engng Struct. Dyn.</source> <volume>42</volume> (<issue>12</issue>), <fpage>1749</fpage>&#x2013;<lpage>1765</lpage>. <pub-id pub-id-type="doi">10.1002/eqe.2296</pub-id>
</citation>
</ref>
<ref id="B30">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Sliding mode for equivalent force control in real-time substructure testing</article-title>. <source>Struct. Control Health Monit.</source> <volume>21</volume>, <fpage>1284</fpage>&#x2013;<lpage>1303</lpage>. <pub-id pub-id-type="doi">10.1002/stc.1648</pub-id>
</citation>
</ref>
<ref id="B31">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>T. S.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Performance study of sliding mode controller with improved adaptive polynomial-based forward prediction</article-title>. <source>Mech. Syst. Signal Process.</source> <volume>133</volume>, <fpage>106263</fpage>. <pub-id pub-id-type="doi">10.1016/j.ymssp.2019.106263</pub-id>
</citation>
</ref>
<ref id="B32">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>B. Q.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Yao</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Progress and prospect of research on semi-physical simulation equipment for flight vehicles</article-title>. <source>Astronautical J.</source> <volume>41</volume> (<issue>06</issue>), <fpage>657</fpage>&#x2013;<lpage>665</lpage>. <pub-id pub-id-type="doi">10.3873/j.issn.1000-1328.2020.06.003</pub-id>
</citation>
</ref>
<ref id="B33">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>H. C.</given-names>
</name>
<name>
<surname>Tan</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>T. Y.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>F. L.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Acceleration&#x2010;based sliding mode hierarchical control algorithm for shake table tests</article-title>. <source>Earthq. Eng. Struct. Dyn.</source> <volume>50</volume> (<issue>13</issue>), <fpage>3670</fpage>&#x2013;<lpage>3691</lpage>. <pub-id pub-id-type="doi">10.1002/eqe.3527</pub-id>
</citation>
</ref>
<ref id="B34">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>H. C.</given-names>
</name>
<name>
<surname>Tan</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>T. Y.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>F. L.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Shake table real-time hybrid testing for shear buildings based on sliding mode acceleration control method</article-title>. <source>Structures</source> <volume>52</volume>, <fpage>230</fpage>&#x2013;<lpage>240</lpage>. <pub-id pub-id-type="doi">10.1016/j.istruc.2023.03.140</pub-id>
</citation>
</ref>
<ref id="B35">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>You</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Nelson</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2019</year>). &#x201c;<article-title>Breaking the testing pyramid with virtual testing and hybrid simulation</article-title>,&#x201d; in <source>Fatigue of aircraft structures</source>, <fpage>1</fpage>&#x2013;<lpage>10</lpage>.</citation>
</ref>
<ref id="B36">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Wagg</surname>
<given-names>D. J.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Equivalent force control combined with adaptive polynomial-based forward prediction for real-time hybrid simulation</article-title>. <source>Struct. Control Health Monit.</source> <volume>24</volume> (<issue>11</issue>), <fpage>e2018</fpage>. <pub-id pub-id-type="doi">10.1002/stc.2018</pub-id>
</citation>
</ref>
<ref id="B37">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Shao</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Ning</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>A robust linear-quadratic-Gaussian controller for the real-time hybrid simulation on a benchmark problem</article-title>. <source>Mech. Eng. Signal Process.</source> <volume>133</volume> (<issue>1</issue>), <fpage>106260</fpage>. <pub-id pub-id-type="doi">10.1016/j.ymssp.2019.106260</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>