<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Neurorobot.</journal-id>
<journal-title>Frontiers in Neurorobotics</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Neurorobot.</abbrev-journal-title>
<issn pub-type="epub">1662-5218</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fnbot.2023.1219170</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Neuroscience</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Active fault-tolerant anti-input saturation control of a cross-domain robot based on a human decision search algorithm and RBFNN</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Wang</surname> <given-names>Ke</given-names></name>
<uri xlink:href="http://loop.frontiersin.org/people/2254882/overview"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name><surname>Liu</surname> <given-names>Yong</given-names></name>
<xref ref-type="corresp" rid="c001"><sup>&#x0002A;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/2232372/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Huang</surname> <given-names>Chengwei</given-names></name>
</contrib>
</contrib-group>
<aff><institution>School of Computer Science and Engineering, Nanjing University of Science and Technology</institution>, <addr-line>Nanjing</addr-line>, <country>China</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Long Jin, Lanzhou University, China</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Ruoxi Qin, Henan Key Laboratory of Imaging and Intelligent Processing, China; Hao Xu, Anhui University of Technology, China</p></fn>
<corresp id="c001">&#x0002A;Correspondence: Yong Liu <email>liuy1602&#x00040;njust.edu.cn</email></corresp>
</author-notes>
<pub-date pub-type="epub">
<day>14</day>
<month>07</month>
<year>2023</year>
</pub-date>
<pub-date pub-type="collection">
<year>2023</year>
</pub-date>
<volume>17</volume>
<elocation-id>1219170</elocation-id>
<history>
<date date-type="received">
<day>08</day>
<month>05</month>
<year>2023</year>
</date>
<date date-type="accepted">
<day>26</day>
<month>06</month>
<year>2023</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2023 Wang, Liu and Huang.</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Wang, Liu and Huang</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>This article presents a cross-domain robot (CDR) that experiences drive efficiency degradation when operating on water surfaces, similar to drive faults. Moreover, the CDR mathematical model has uncertain parameters and non-negligible water resistance. To solve these problems, a radial basis function neural network (RBFNN)-based active fault-tolerant control (AFTC) algorithm is proposed for the robot both on land and water surfaces. The proposed algorithm consists of a fast non-singular terminal sliding mode controller (NTSMC) and an RBFNN. The RBFNN is used to estimate the impact of drive faults, water resistance, and model parameter uncertainty on the robot and the output value compensates the controller. Additionally, an anti-input saturation control algorithm is designed to prevent driver saturation. To optimize the controller parameters, a human decision search algorithm (HDSA) is proposed, which mimics the decision-making process of a crowd. Simulation results demonstrate the effectiveness of the proposed control methods.</p></abstract>
<kwd-group>
<kwd>cross-domain robot (CDR)</kwd>
<kwd>radial basis function neural network (RBFNN)</kwd>
<kwd>active fault-tolerant control (AFTC)</kwd>
<kwd>anti-input saturation</kwd>
<kwd>human decision search algorithm (HDSA)</kwd>
</kwd-group>
<contract-sponsor id="cn001">National Natural Science Foundation of China<named-content content-type="fundref-id">10.13039/501100001809</named-content></contract-sponsor>
<counts>
<fig-count count="14"/>
<table-count count="7"/>
<equation-count count="47"/>
<ref-count count="41"/>
<page-count count="19"/>
<word-count count="11023"/>
</counts>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>1. Introduction</title>
<p>In recent years, there has been a growing interest in multi-environment robots as single-environment robots are no longer sufficient to meet various practical needs (Cohen and Zarrouk, <xref ref-type="bibr" rid="B5">2020</xref>). Researchers have proposed different designs to achieve this, such as bionic robots (Chen et al., <xref ref-type="bibr" rid="B2">2021</xref>) and the legged amphibious robot (Xing et al., <xref ref-type="bibr" rid="B34">2021</xref>). Furthermore, with the advancements in rotorcraft unmanned aerial vehicle (UAV) technology, researchers have started exploring the potential of integrating rotorcraft UAVs with wheeled mobile robots (WMRs) (Wang et al., <xref ref-type="bibr" rid="B27">2019a</xref>). To enhance the capabilities of robots, cross-domain robots (CDRs) have been designed, which are capable of operating in multiple environments, including water, land, and air (Guo et al., <xref ref-type="bibr" rid="B11">2019</xref>; Zhong et al., <xref ref-type="bibr" rid="B41">2021</xref>). The robot presented in this paper is a CDR that combines a quadrotor UAV with a WMR equipped with webbed plates. These webbed plates on the wheels enable the robot to generate power at the water surface through their interaction with the water (Wang et al., <xref ref-type="bibr" rid="B28">2022a</xref>,<xref ref-type="bibr" rid="B29">b</xref>).</p>
<p>The CDR presented in this study employs the same drive motors for ground and water surface operations. Assuming proper functionality during ground motion, a driver fault is considered to have occurred during the robot&#x00027;s operation on the water surface. Fault-tolerant controls (FTCs) are control algorithms that effectively deal with system faults (Najafi et al., <xref ref-type="bibr" rid="B22">2022</xref>; Nan et al., <xref ref-type="bibr" rid="B23">2022</xref>). Sliding-mode controllers (SMCs) are commonly employed in passive fault-tolerant algorithms due to their robustness in maintaining control performance when the maximum system fault is known. However, the use of non-singular terminal sliding mode control (NTSMC) and SMC results in jitter problems, and this robust control approach is considered too conservative (Ali et al., <xref ref-type="bibr" rid="B1">2020</xref>; Hou and Ding, <xref ref-type="bibr" rid="B14">2021</xref>; Guo et al., <xref ref-type="bibr" rid="B12">2022</xref>). To address these issues, FTCs frequently employ adaptive sliding mode control (Wu et al., <xref ref-type="bibr" rid="B33">2020</xref>) and integral sliding mode control (Yu et al., <xref ref-type="bibr" rid="B37">2022</xref>). Additionally, observers are commonly used to detect drive faults. In Wang F. et al. (<xref ref-type="bibr" rid="B26">2022</xref>), a disturbance observer (DO) is used to quickly compensate and correct unknown actuator faults of unmanned surface vehicles (USVs). In the context of autonomous underwater vehicles (AUVs), a sliding mode observer-based fault-tolerant control algorithm has been proposed in the literature (Liu et al., <xref ref-type="bibr" rid="B19">2018</xref>). However, the design of higher-order observers requires complex mathematical proofs and the adjustment of many parameters. Neural networks (NNs) are often used to estimate system model parameters and uncertainty terms due to their ability to approximate arbitrary non-linear functions. In Zhang et al. (<xref ref-type="bibr" rid="B38">2022</xref>), NNs are used to rectify the model parameters of a USV, and an NN-based adaptive observer is developed to estimate errors caused by drive faults. As demonstrated in Gao et al. (<xref ref-type="bibr" rid="B9">2022</xref>), NNs can directly estimate system faults by approximating the uncertainty terms in the system. Event-triggered fault-tolerant control is a type of AFTC algorithm that has the potential to reduce system hardware requirements. However, it requires the development of trigger thresholds and corresponding fault control algorithms, which increase the difficulty and complexity of controller design (Huang et al., <xref ref-type="bibr" rid="B15">2019</xref>; Wu et al., <xref ref-type="bibr" rid="B32">2021</xref>; Zhang et al., <xref ref-type="bibr" rid="B39">2021</xref>). Another important consideration in the FTC algorithm is the control of input saturation. One efficient approach for solving this issue is to introduce virtual states in the controller. These virtual states regulate the input error of the controller, thereby suppressing control input saturation (Wang and Deng, <xref ref-type="bibr" rid="B30">2019</xref>). Additionally, designing adaptive laws is an effective way to address control input saturation. In this approach, the adaptive control input decreases as the actual control input approaches the maximum physical constraint (Shen et al., <xref ref-type="bibr" rid="B24">2018</xref>).</p>
<p>The controller design presented above does not involve any optimization of the controller parameters. To address this limitation, reinforcement learning techniques have been developed to optimize control parameters. In Gheisarnejad and Khooban (<xref ref-type="bibr" rid="B10">2020</xref>), a reinforcement learning algorithm is employed to optimize the PID controller parameters. Another study (Zhao et al., <xref ref-type="bibr" rid="B40">2020</xref>) trains the optimal trajectory following controller using deep reinforcement learning. However, reinforcement learning algorithms typically require a significant amount of data and multiple iterations to achieve optimal results. Swarm intelligence (SI) optimization algorithms are a promising approach in practical applications, including data classification, path planning, and controller optimization (Xue and Shen, <xref ref-type="bibr" rid="B35">2020</xref>, <xref ref-type="bibr" rid="B36">2022</xref>). Among the various SI optimization algorithms, particle swarm optimization (PSO) is a classical algorithm known for fast convergence and few parameters (Song and Gu, <xref ref-type="bibr" rid="B25">2004</xref>). However, traditional PSO algorithms tend to fall into local optima. Ant colony optimization (ACO) is another common SI optimization algorithm. ACO can jump out of local optima but has slower convergence (Dorigo et al., <xref ref-type="bibr" rid="B7">1996</xref>). In addition, the gray wolf optimizer (GWO) simulates the predation process of wolves (Mirjalili et al., <xref ref-type="bibr" rid="B21">2014</xref>) and the Harris hawk optimizer (HHO) simulates the predation process of hawks (Heidari et al., <xref ref-type="bibr" rid="B13">2019</xref>). These algorithms have shown improvements in convergence speed and accuracy compared with other animal predation simulation algorithms. Other popular SI optimization algorithms include the firefly algorithm (Fister et al., <xref ref-type="bibr" rid="B8">2013</xref>) and the sine/cosine search algorithm (Mirjalili, <xref ref-type="bibr" rid="B20">2016</xref>). Each SI optimization algorithm has its own strengths and weaknesses and no single algorithm can effectively handle all optimization problems. The goal is to achieve satisfactory results in terms of convergence speed, accuracy, and robustness for a specific optimization problem.</p>
<p>Based on the previous discussion, an AFTC is proposed for the CDR on the ground and on the water surface. This control algorithm consists of three main parts:</p>
<list list-type="simple">
<list-item><p>a. To enhance the robustness of the robot control system, a fast NTSMC is designed based on the concept of passive FTC. Compared with traditional NTSMC and SMC, the proposed NTSMC has reduced control input chatter. Additionally, to reduce controller conservatism, an RBFNN is designed to detect and compensate for drive faults. The adaptive weight control law of the RBFNN is based on the Lyapunov function.</p></list-item>
<list-item><p>b. To prevent drive saturation, an anti-input saturation control algorithm based on the hyperbolic tangent (tanh) function is employed. An adaptive rate is designed to prevent singularities in this algorithm. This method does not require complex mathematical proofs and requires fewer tuning parameters.</p></list-item>
<list-item><p>c. A new SI optimization algorithm named HDSA is proposed for the optimization of the weight update rate parameter of RBFNNs. The proposed algorithm is compared with other SI optimization algorithms, and the test results demonstrate its faster convergence rate and higher accuracy.</p></list-item>
</list></sec>
<sec id="s2">
<title>2. Related work and mathematical models</title>
<sec>
<title>2.1. HDSA&#x00027;s related work</title>
<p>To demonstrate the advantages of the proposed HDSA optimization algorithm, the results of the HDSA tests are shown in this section. The theory of HDSA is discussed in detail in the section entitled &#x0201C;RBFNN-Based Active Fault-Tolerant Control Algorithm&#x0201D;. The effectiveness of the proposed optimization algorithm was evaluated by comparing the test results of HDSA with other popular optimization algorithms, such as particle swarm optimization (PSO) (Song and Gu, <xref ref-type="bibr" rid="B25">2004</xref>), the sine/cosine algorithm (SCA) (Mirjalili, <xref ref-type="bibr" rid="B20">2016</xref>), the gray wolf optimizer (GWO) (Mirjalili et al., <xref ref-type="bibr" rid="B21">2014</xref>), the firefly algorithm (FA) (Fister et al., <xref ref-type="bibr" rid="B8">2013</xref>), and the Harris hawk optimizer (HHO) (Heidari et al., <xref ref-type="bibr" rid="B13">2019</xref>). Twenty standard test functions were used for evaluation, which are presented in <bold>Tables 5</bold>&#x02013;<bold>7</bold> (included in the Simulation Results section).</p>
<p>The number of populations was <italic>pop</italic> &#x0003D; 100 and the maximum number of iterations was <italic>M</italic> &#x0003D; 100. The average fitness over 30 independent runs was considered as the optimization result. The convergence characteristics of the six algorithms in the single-peak function test are depicted in <xref ref-type="fig" rid="F1">Figure 1</xref>, while <xref ref-type="fig" rid="F2">Figure 2</xref> illustrates the convergence characteristics in the multi-peak function test. Furthermore, <xref ref-type="fig" rid="F3">Figure 3</xref> demonstrates the convergence characteristics of the six algorithms on fixed-dimensional multi-peak functions. The test results of the six algorithms, based on 30 independent runs, are summarized in <xref ref-type="table" rid="T1">Tables 1</xref>, <xref ref-type="table" rid="T2">2</xref>. In <xref ref-type="table" rid="T1">Tables 1</xref>, <xref ref-type="table" rid="T2">2</xref>, purple indicates the optimal value of the test functions, pink indicates the mean value of the test functions, and white indicates the mean squared deviation of the test functions.</p>
<fig id="F1" position="float">
<label>Figure 1</label>
<caption><p>Single peak function test results. <bold>(A&#x02013;G)</bold> represent the test results of the six algorithms in functions F1 to F7.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1219170-g0001.tif"/>
</fig>
<fig id="F2" position="float">
<label>Figure 2</label>
<caption><p>Multi-peak function test results. <bold>(A&#x02013;F)</bold> represent the test results of the six algorithms in functions F8 to F13.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1219170-g0002.tif"/>
</fig>
<fig id="F3" position="float">
<label>Figure 3</label>
<caption><p>Fixed dimensional multi-peak function results. <bold>(A&#x02013;G)</bold> represent the test results of the six algorithms in functions F14 to F20.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1219170-g0003.tif"/>
</fig>
<table-wrap position="float" id="T1">
<label>Table 1</label>
<caption><p>Test results of HDSA SCA and PSO algorithms run independently 30 times.</p></caption> 
<table frame="box" rules="all">
<thead>
<tr style="background-color:&#x00023;919498;color:&#x00023;ffffff">
<th/>
<th valign="top" align="center" colspan="3"><bold>HDSA</bold></th>
<th valign="top" align="center" colspan="3"><bold>SCA</bold></th>
<th valign="top" align="center" colspan="3"><bold>PSO</bold></th>
</tr>
<tr style="background-color:&#x00023;919498;color:&#x00023;ffffff">
<td valign="top" align="center"><bold>F</bold></td>
<td valign="top" align="center"><bold>Best</bold></td>
<td valign="top" align="center"><bold>Ave</bold></td>
<td valign="top" align="center"><bold>Std</bold></td>
<td valign="top" align="center"><bold>Best</bold></td>
<td valign="top" align="center"><bold>Ave</bold></td>
<td valign="top" align="center"><bold>Std</bold></td>
<td valign="top" align="center"><bold>Best</bold></td>
<td valign="top" align="center"><bold>Ave</bold></td>
<td valign="top" align="center"><bold>Std</bold></td>
</tr> 
</thead>
<tbody>
<tr>
<td valign="top" align="left">F1</td>
<td valign="top" align="center" style="background-color:#7a54ff">0</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.043621199</td>
<td valign="top" align="center" style="background-color:#ffbaeb">55.2091773</td>
<td valign="top" align="center">36.42876978</td>
<td valign="top" align="center" style="background-color:#7a54ff">4.456913956</td>
<td valign="top" align="center" style="background-color:#ffbaeb">8.976645307</td>
<td valign="top" align="center">46.32264983</td>
</tr> <tr>
<td valign="top" align="left">F2</td>
<td valign="top" align="center" style="background-color:#7a54ff">0</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.010156561</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0.288456338</td>
<td valign="top" align="center">0.399117642</td>
<td valign="top" align="center" style="background-color:#7a54ff">6.86827201</td>
<td valign="top" align="center" style="background-color:#ffbaeb">10.3267055</td>
<td valign="top" align="center">10.28163277</td>
</tr> <tr>
<td valign="top" align="left">F3</td>
<td valign="top" align="center" style="background-color:#7a54ff">0</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center" style="background-color:#7a54ff">9.53E&#x0002B;03</td>
<td valign="top" align="center" style="background-color:#ffbaeb">2.23E&#x0002B;04</td>
<td valign="top" align="center">5.86E&#x0002B;03</td>
<td valign="top" align="center" style="background-color:#7a54ff">2.70E&#x0002B;02</td>
<td valign="top" align="center" style="background-color:#ffbaeb">7.57E&#x0002B;02</td>
<td valign="top" align="center">2.15E&#x0002B;04</td>
</tr> <tr>
<td valign="top" align="left">F4</td>
<td valign="top" align="center" style="background-color:#7a54ff">0</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center" style="background-color:#7a54ff">37.35838437</td>
<td valign="top" align="center" style="background-color:#ffbaeb">59.20677056</td>
<td valign="top" align="center">8.010506582</td>
<td valign="top" align="center" style="background-color:#7a54ff">1.92884739</td>
<td valign="top" align="center" style="background-color:#ffbaeb">3.830868295</td>
<td valign="top" align="center">55.38478266</td>
</tr> <tr>
<td valign="top" align="left">F5</td>
<td valign="top" align="center" style="background-color:#7a54ff">0</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center" style="background-color:#7a54ff">37.92815456</td>
<td valign="top" align="center" style="background-color:#ffbaeb">6.61E&#x0002B;05</td>
<td valign="top" align="center">8.02E&#x0002B;05</td>
<td valign="top" align="center" style="background-color:#7a54ff">5.46E&#x0002B;02</td>
<td valign="top" align="center" style="background-color:#ffbaeb">1.57E&#x0002B;03</td>
<td valign="top" align="center">6.59E&#x0002B;05</td>
</tr> <tr>
<td valign="top" align="left">F6</td>
<td valign="top" align="center" style="background-color:#7a54ff">3.14E&#x02212;05</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0.001383925</td>
<td valign="top" align="center">0.001405319</td>
<td valign="top" align="center" style="background-color:#7a54ff">4.67425676</td>
<td valign="top" align="center" style="background-color:#ffbaeb">1.15E&#x0002B;02</td>
<td valign="top" align="center">1.15E&#x0002B;02</td>
<td valign="top" align="center" style="background-color:#7a54ff">6.428054849</td>
<td valign="top" align="center" style="background-color:#ffbaeb">10.03538963</td>
<td valign="top" align="center">57.17359472</td>
</tr> <tr>
<td valign="top" align="left">F7</td>
<td valign="top" align="center" style="background-color:#7a54ff">5.90E&#x02212;05</td>
<td valign="top" align="center" style="background-color:#ffbaeb">5.11E&#x02212;04</td>
<td valign="top" align="center">4.07E&#x02212;04</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.024658139</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0.341143612</td>
<td valign="top" align="center">0.269446788</td>
<td valign="top" align="center" style="background-color:#7a54ff">45.07882375</td>
<td valign="top" align="center" style="background-color:#ffbaeb">96.08387995</td>
<td valign="top" align="center">98.09394285</td>
</tr> <tr>
<td valign="top" align="left">F8</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;1.26E&#x0002B;04</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;1.07E&#x0002B;04</td>
<td valign="top" align="center">1.97E&#x0002B;03</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;4.81E&#x0002B;03</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;4.37E&#x0002B;03</td>
<td valign="top" align="center">2.21E&#x0002B;02</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;4.12E&#x0002B;03</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;3.49E&#x0002B;03</td>
<td valign="top" align="center">9.36E&#x0002B;02</td>
</tr> <tr>
<td valign="top" align="left">F9</td>
<td valign="top" align="center" style="background-color:#7a54ff">0</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.860127299</td>
<td valign="top" align="center" style="background-color:#ffbaeb">78.49328591</td>
<td valign="top" align="center">70.22545167</td>
<td valign="top" align="center" style="background-color:#7a54ff">30.55768733</td>
<td valign="top" align="center" style="background-color:#ffbaeb">94.82695388</td>
<td valign="top" align="center">34.53524407</td>
</tr> <tr>
<td valign="top" align="left">F10</td>
<td valign="top" align="center" style="background-color:#7a54ff">8.88E&#x02212;16</td>
<td valign="top" align="center" style="background-color:#ffbaeb">8.88E&#x02212;16</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.187682845</td>
<td valign="top" align="center" style="background-color:#ffbaeb">10.65598272</td>
<td valign="top" align="center">8.935131413</td>
<td valign="top" align="center" style="background-color:#7a54ff">2.867362804</td>
<td valign="top" align="center" style="background-color:#ffbaeb">3.884021036</td>
<td valign="top" align="center">6.796254632</td>
</tr> <tr>
<td valign="top" align="left">F11</td>
<td valign="top" align="center" style="background-color:#7a54ff">0</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.513962142</td>
<td valign="top" align="center" style="background-color:#ffbaeb">1.962336683</td>
<td valign="top" align="center">2.819722656</td>
<td valign="top" align="center" style="background-color:#7a54ff">1.72E&#x0002B;02</td>
<td valign="top" align="center" style="background-color:#ffbaeb">2.25E&#x0002B;02</td>
<td valign="top" align="center">2.24E&#x0002B;02</td>
</tr> <tr>
<td valign="top" align="left">F12</td>
<td valign="top" align="center" style="background-color:#7a54ff">1.57E&#x02212;32</td>
<td valign="top" align="center" style="background-color:#ffbaeb">1.57E&#x02212;32</td>
<td valign="top" align="center">5.47E&#x02212;48</td>
<td valign="top" align="center" style="background-color:#7a54ff">1.043279428</td>
<td valign="top" align="center" style="background-color:#ffbaeb">3.39E&#x0002B;05</td>
<td valign="top" align="center">8.56E&#x0002B;05</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.650894524</td>
<td valign="top" align="center" style="background-color:#ffbaeb">1.738034681</td>
<td valign="top" align="center">3.39E&#x0002B;05</td>
</tr> <tr>
<td valign="top" align="left">F13</td>
<td valign="top" align="center" style="background-color:#7a54ff">1.35E&#x02212;32</td>
<td valign="top" align="center" style="background-color:#ffbaeb">1.84E&#x02212;23</td>
<td valign="top" align="center">9.89E&#x02212;23</td>
<td valign="top" align="center" style="background-color:#7a54ff">10.16366581</td>
<td valign="top" align="center" style="background-color:#ffbaeb">2.10E&#x0002B;06</td>
<td valign="top" align="center">2.56E&#x0002B;06</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.62640203</td>
<td valign="top" align="center" style="background-color:#ffbaeb">1.796606655</td>
<td valign="top" align="center">2.10E&#x0002B;06</td>
</tr> <tr>
<td valign="top" align="left">F14</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.998003838</td>
<td valign="top" align="center" style="background-color:#ffbaeb">4.801561855</td>
<td valign="top" align="center">4.696216357</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.998003841</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0.998323781</td>
<td valign="top" align="center">9.29E&#x02212;04</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.998003838</td>
<td valign="top" align="center" style="background-color:#ffbaeb">1.163740602</td>
<td valign="top" align="center">0.405679435</td>
</tr> <tr>
<td valign="top" align="left">F15</td>
<td valign="top" align="center" style="background-color:#7a54ff">3.08E&#x02212;04</td>
<td valign="top" align="center" style="background-color:#ffbaeb">4.82E&#x02212;04</td>
<td valign="top" align="center">2.60E&#x02212;04</td>
<td valign="top" align="center" style="background-color:#7a54ff">4.25E&#x02212;04</td>
<td valign="top" align="center" style="background-color:#ffbaeb">8.05E&#x02212;04</td>
<td valign="top" align="center">1.88E&#x02212;04</td>
<td valign="top" align="center" style="background-color:#7a54ff">5.35E&#x02212;04</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0.003654847</td>
<td valign="top" align="center">0.007160687</td>
</tr> <tr>
<td valign="top" align="left">F16</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;1.031628435</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;1.03162038</td>
<td valign="top" align="center">8.23E&#x02212;06</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;1.031628443</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;1.031626913</td>
<td valign="top" align="center">1.82E&#x02212;06</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;1.031615014</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;1.031069614</td>
<td valign="top" align="center">6.31E&#x02212;04</td>
</tr> <tr>
<td valign="top" align="left">F17</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.397888187</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0.397903308</td>
<td valign="top" align="center">1.88E&#x02212;05</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.397889317</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0.397918592</td>
<td valign="top" align="center">3.12E&#x02212;05</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.397935785</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0.399283994</td>
<td valign="top" align="center">0.001760397</td>
</tr> <tr>
<td valign="top" align="left">F18</td>
<td valign="top" align="center" style="background-color:#7a54ff">3.000000032</td>
<td valign="top" align="center" style="background-color:#ffbaeb">3.000013391</td>
<td valign="top" align="center">1.62E&#x02212;07</td>
<td valign="top" align="center" style="background-color:#7a54ff">3.000000177</td>
<td valign="top" align="center" style="background-color:#ffbaeb">3.000055929</td>
<td valign="top" align="center">8.99E&#x02212;05</td>
<td valign="top" align="center" style="background-color:#7a54ff">3.000002051</td>
<td valign="top" align="center" style="background-color:#ffbaeb">3.007764558</td>
<td valign="top" align="center">0.014062845</td>
</tr> <tr>
<td valign="top" align="left">F19</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;3.862751312</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;3.862443601</td>
<td valign="top" align="center">2.78E&#x02212;04</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;3.86268097</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;3.861957813</td>
<td valign="top" align="center">0.00102005</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;3.849759489</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;3.653030339</td>
<td valign="top" align="center">0.272064362</td>
</tr> <tr>
<td valign="top" align="left">F20</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;3.320685667</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;3.277232199</td>
<td valign="top" align="center">0.056398698</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;3.314075954</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;3.22298511</td>
<td valign="top" align="center">0.922404083</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;2.942883457</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;2.387193028</td>
<td valign="top" align="center">0.041529991</td>
</tr></tbody>
</table>
</table-wrap>
<table-wrap position="float" id="T2">
<label>Table 2</label>
<caption><p>Test results of GWO FA and HHO algorithms run independently 30 times.</p></caption> 
<table frame="box" rules="all">
<thead>
<tr style="background-color:&#x00023;919498;color:&#x00023;ffffff">
<th/>
<th valign="top" align="center" colspan="3"><bold>GWO</bold></th>
<th valign="top" align="center" colspan="3"><bold>FA</bold></th>
<th valign="top" align="center" colspan="3"><bold>HHO</bold></th>
</tr>
<tr style="background-color:&#x00023;919498;color:&#x00023;ffffff">
<td valign="top" align="center"><bold>F</bold></td>
<td valign="top" align="center"><bold>Best</bold></td>
<td valign="top" align="center"><bold>Ave</bold></td>
<td valign="top" align="center"><bold>Std</bold></td>
<td valign="top" align="center"><bold>Best</bold></td>
<td valign="top" align="center"><bold>Ave</bold></td>
<td valign="top" align="center"><bold>Std</bold></td>
<td valign="top" align="center"><bold>Best</bold></td>
<td valign="top" align="center"><bold>Ave</bold></td>
<td valign="top" align="center"><bold>Std</bold></td>
</tr> 
</thead>
<tbody>
<tr>
<td valign="top" align="left">F1</td>
<td valign="top" align="center" style="background-color:#7a54ff">2.69E&#x02212;06</td>
<td valign="top" align="center" style="background-color:#ffbaeb">2.59E&#x02212;05</td>
<td valign="top" align="center">1.52E&#x02212;05</td>
<td valign="top" align="center" style="background-color:#7a54ff">2.29E&#x0002B;04</td>
<td valign="top" align="center" style="background-color:#ffbaeb">4.77E&#x0002B;04</td>
<td valign="top" align="center">9.85E&#x0002B;03</td>
<td valign="top" align="center" style="background-color:#7a54ff">1.08E&#x02212;33</td>
<td valign="top" align="center" style="background-color:#ffbaeb">1.95E&#x02212;26</td>
<td valign="top" align="center">7.53E&#x02212;26</td>
</tr> <tr>
<td valign="top" align="left">F2</td>
<td valign="top" align="center" style="background-color:#7a54ff">4.61E&#x02212;04</td>
<td valign="top" align="center" style="background-color:#ffbaeb">8.55E&#x02212;04</td>
<td valign="top" align="center">2.86E&#x02212;04</td>
<td valign="top" align="center" style="background-color:#7a54ff">53.06138425</td>
<td valign="top" align="center" style="background-color:#ffbaeb">1.06E&#x0002B;02</td>
<td valign="top" align="center">18.47075013</td>
<td valign="top" align="center" style="background-color:#7a54ff">1.08E&#x02212;17</td>
<td valign="top" align="center" style="background-color:#ffbaeb">2.26E&#x02212;14</td>
<td valign="top" align="center">6.46E&#x02212;14</td>
</tr> <tr>
<td valign="top" align="left">F3</td>
<td valign="top" align="center" style="background-color:#7a54ff">2.333236967</td>
<td valign="top" align="center" style="background-color:#ffbaeb">16.15496494</td>
<td valign="top" align="center">16.17029995</td>
<td valign="top" align="center" style="background-color:#7a54ff">3.37E&#x0002B;04</td>
<td valign="top" align="center" style="background-color:#ffbaeb">6.69E&#x0002B;04</td>
<td valign="top" align="center">1.69E&#x0002B;04</td>
<td valign="top" align="center" style="background-color:#7a54ff">6.30E&#x02212;32</td>
<td valign="top" align="center" style="background-color:#ffbaeb">4.03E&#x02212;18</td>
<td valign="top" align="center">2.17E&#x02212;17</td>
</tr> <tr>
<td valign="top" align="left">F4</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.076161242</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0.190101216</td>
<td valign="top" align="center">0.067944463</td>
<td valign="top" align="center" style="background-color:#7a54ff">46.02316618</td>
<td valign="top" align="center" style="background-color:#ffbaeb">63.05292108</td>
<td valign="top" align="center">7.574286394</td>
<td valign="top" align="center" style="background-color:#7a54ff">1.03E&#x02212;17</td>
<td valign="top" align="center" style="background-color:#ffbaeb">4.60E&#x02212;14</td>
<td valign="top" align="center">1.18E&#x02212;13</td>
</tr> <tr>
<td valign="top" align="left">F5</td>
<td valign="top" align="center" style="background-color:#7a54ff">26.18035457</td>
<td valign="top" align="center" style="background-color:#ffbaeb">28.03756308</td>
<td valign="top" align="center">0.956956464</td>
<td valign="top" align="center" style="background-color:#7a54ff">5.84E&#x0002B;07</td>
<td valign="top" align="center" style="background-color:#ffbaeb">1.29E&#x0002B;08</td>
<td valign="top" align="center">3.79E&#x0002B;07</td>
<td valign="top" align="center" style="background-color:#7a54ff">1.17E&#x02212;04</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0.043168201</td>
<td valign="top" align="center">0.061375953</td>
</tr> <tr>
<td valign="top" align="left">F6</td>
<td valign="top" align="center" style="background-color:#7a54ff">3.62E&#x02212;04</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0.996486127</td>
<td valign="top" align="center">0.498192351</td>
<td valign="top" align="center" style="background-color:#7a54ff">3.06E&#x0002B;04</td>
<td valign="top" align="center" style="background-color:#ffbaeb">4.64E&#x0002B;04</td>
<td valign="top" align="center">7.31E&#x0002B;03</td>
<td valign="top" align="center" style="background-color:#7a54ff">2.08E&#x02212;06</td>
<td valign="top" align="center" style="background-color:#ffbaeb">2.68E&#x02212;04</td>
<td valign="top" align="center">3.23E&#x02212;04</td>
</tr> <tr>
<td valign="top" align="left">F7</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.001822731</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0.004742428</td>
<td valign="top" align="center">0.001594265</td>
<td valign="top" align="center" style="background-color:#7a54ff">10.11397979</td>
<td valign="top" align="center" style="background-color:#ffbaeb">48.34775676</td>
<td valign="top" align="center">17.25308781</td>
<td valign="top" align="center" style="background-color:#7a54ff">9.10E&#x02212;06</td>
<td valign="top" align="center" style="background-color:#ffbaeb">1.82E&#x02212;04</td>
<td valign="top" align="center">1.50E&#x02212;04</td>
</tr> <tr>
<td valign="top" align="left">F8</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;8.30E&#x0002B;03</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;6.30E&#x0002B;03</td>
<td valign="top" align="center">1.05E&#x0002B;03</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;5.73E&#x0002B;03</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;4.35E&#x0002B;03</td>
<td valign="top" align="center">6.34E&#x0002B;02</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;1.26E&#x0002B;04</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;1.25E&#x0002B;04</td>
<td valign="top" align="center">2.43E&#x0002B;02</td>
</tr> <tr>
<td valign="top" align="left">F9</td>
<td valign="top" align="center" style="background-color:#7a54ff">10.61773399</td>
<td valign="top" align="center" style="background-color:#ffbaeb">21.78763545</td>
<td valign="top" align="center">6.854472334</td>
<td valign="top" align="center" style="background-color:#7a54ff">2.15E&#x0002B;02</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0.860127299</td>
<td valign="top" align="center">34.00946589</td>
<td valign="top" align="center" style="background-color:#7a54ff">0</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0</td>
<td valign="top" align="center">0</td>
</tr> <tr>
<td valign="top" align="left">F10</td>
<td valign="top" align="center" style="background-color:#7a54ff">6.79E&#x02212;04</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0.001208914</td>
<td valign="top" align="center">4.59E&#x02212;04</td>
<td valign="top" align="center" style="background-color:#7a54ff">19.41517193</td>
<td valign="top" align="center" style="background-color:#ffbaeb">19.96298677</td>
<td valign="top" align="center">0.1314286</td>
<td valign="top" align="center" style="background-color:#7a54ff">8.88E&#x02212;16</td>
<td valign="top" align="center" style="background-color:#ffbaeb">1.33E&#x02212;14</td>
<td valign="top" align="center">2.00E&#x02212;14</td>
</tr> <tr>
<td valign="top" align="left">F11</td>
<td valign="top" align="center" style="background-color:#7a54ff">2.16E&#x02212;05</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0.020113329</td>
<td valign="top" align="center">0.01797284</td>
<td valign="top" align="center" style="background-color:#7a54ff">4.03E&#x0002B;02</td>
<td valign="top" align="center" style="background-color:#ffbaeb">4.93E&#x0002B;02</td>
<td valign="top" align="center">48.66049354</td>
<td valign="top" align="center" style="background-color:#7a54ff">0</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0</td>
<td valign="top" align="center">0</td>
</tr> <tr>
<td valign="top" align="left">F12</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.01735841</td>
<td valign="top" align="center" style="background-color:#ffbaeb">2.091212922</td>
<td valign="top" align="center">0.039891925</td>
<td valign="top" align="center" style="background-color:#7a54ff">5.55E&#x0002B;07</td>
<td valign="top" align="center" style="background-color:#ffbaeb">2.26E&#x0002B;08</td>
<td valign="top" align="center">1.13E&#x0002B;08</td>
<td valign="top" align="center" style="background-color:#7a54ff">2.47E&#x02212;07</td>
<td valign="top" align="center" style="background-color:#ffbaeb">2.25E&#x02212;05</td>
<td valign="top" align="center">2.25E&#x02212;05</td>
</tr> <tr>
<td valign="top" align="left">F13</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.39714087</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0.90669375</td>
<td valign="top" align="center">0.26593137</td>
<td valign="top" align="center" style="background-color:#7a54ff">1.29E&#x0002B;08</td>
<td valign="top" align="center" style="background-color:#ffbaeb">4.74E&#x0002B;08</td>
<td valign="top" align="center">1.87E&#x0002B;08</td>
<td valign="top" align="center" style="background-color:#7a54ff">5.84E&#x02212;11</td>
<td valign="top" align="center" style="background-color:#ffbaeb">3.13E&#x02212;04</td>
<td valign="top" align="center">4.99E&#x02212;04</td>
</tr> <tr>
<td valign="top" align="left">F14</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.998003838</td>
<td valign="top" align="center" style="background-color:#ffbaeb">2.149370759</td>
<td valign="top" align="center">1.977247758</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.998003838</td>
<td valign="top" align="center" style="background-color:#ffbaeb">9.85228046</td>
<td valign="top" align="center">7.376397236</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.998003838</td>
<td valign="top" align="center" style="background-color:#ffbaeb">1.592846754</td>
<td valign="top" align="center">1.007706592</td>
</tr> <tr>
<td valign="top" align="left">F15</td>
<td valign="top" align="center" style="background-color:#7a54ff">3.33E&#x02212;04</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0.002524088</td>
<td valign="top" align="center">0.005948479</td>
<td valign="top" align="center" style="background-color:#7a54ff">5.95E&#x02212;04</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0.009720032</td>
<td valign="top" align="center">0.008406408</td>
<td valign="top" align="center" style="background-color:#7a54ff">3.09E&#x02212;04</td>
<td valign="top" align="center" style="background-color:#ffbaeb">4.19E&#x02212;04</td>
<td valign="top" align="center">2.61E&#x02212;04</td>
</tr> <tr>
<td valign="top" align="left">F16</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;1.031628453</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;1.031628406</td>
<td valign="top" align="center">8.86E&#x02212;04</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;1.031621754</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;1.030900759</td>
<td valign="top" align="center">0.002366781</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;1.031628453</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;1.031628451</td>
<td valign="top" align="center">1.05E&#x02212;08</td>
</tr> <tr>
<td valign="top" align="left">F17</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.397887459</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0.397888965</td>
<td valign="top" align="center">1.47E&#x02212;06</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.397894813</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0.398122914</td>
<td valign="top" align="center">3.37E&#x02212;04</td>
<td valign="top" align="center" style="background-color:#7a54ff">0.397887358</td>
<td valign="top" align="center" style="background-color:#ffbaeb">0.397893418</td>
<td valign="top" align="center">2.30E&#x02212;05</td>
</tr> <tr>
<td valign="top" align="left">F18</td>
<td valign="top" align="center" style="background-color:#7a54ff">3.000000021</td>
<td valign="top" align="center" style="background-color:#ffbaeb">3.000091041</td>
<td valign="top" align="center">9.87E&#x02212;05</td>
<td valign="top" align="center" style="background-color:#7a54ff">3.000120892</td>
<td valign="top" align="center" style="background-color:#ffbaeb">3.027874998</td>
<td valign="top" align="center">0.065760186</td>
<td valign="top" align="center" style="background-color:#7a54ff">3</td>
<td valign="top" align="center" style="background-color:#ffbaeb">3.000000968</td>
<td valign="top" align="center">4.43E&#x02212;06</td>
</tr> <tr>
<td valign="top" align="left">F19</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;3.86278078</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;3.861772215</td>
<td valign="top" align="center">0.00183244</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;3.861890169</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;3.830959144</td>
<td valign="top" align="center">0.086620017</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;3.862769505</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;3.861362289</td>
<td valign="top" align="center">0.001672668</td>
</tr> <tr>
<td valign="top" align="left">F20</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;3.321992055</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;3.265460239</td>
<td valign="top" align="center">0.071106357</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;3.201236207</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;2.894366935</td>
<td valign="top" align="center">0.195231925</td>
<td valign="top" align="center" style="background-color:#7a54ff">&#x02212;3.263585483</td>
<td valign="top" align="center" style="background-color:#ffbaeb">&#x02212;3.123254299</td>
<td valign="top" align="center">0.085277304</td>
</tr></tbody>
</table>
</table-wrap>
<p>The results of the single-peak functions F1&#x02013;F7 test results are presented in <xref ref-type="table" rid="T1">Tables 1</xref>, <xref ref-type="table" rid="T2">2</xref>. In these tests, the mean and optimal values obtained by HDSA in F1&#x02013;F5 are both 0, indicating that HDSA achieves the highest accuracy among the six algorithms. Although the accuracy of HDSA is slightly inferior to HHO in the F6&#x02013;F7 test functions, it still outshines SCA, PSO, GWO, and FA. HDSA has a standard deviation of 0 in tests F1&#x02013;F5, suggesting that HDSA is the most stable algorithm. Although its stability is slightly lower than HHO in tests F6&#x02013;F7, it still outperforms the other four methods. Convergence speed is depicted in <xref ref-type="fig" rid="F2">Figure 2</xref>. HDSA has a significantly faster convergence speed compared with the other five algorithms, but its convergence accuracy in the F6&#x02013;F7 tests is lower than that of HHO.</p>
<p>The test results for the multi-peak functions F8&#x02013;F13 are presented in <xref ref-type="table" rid="T1">Tables 1</xref>, <xref ref-type="table" rid="T2">2</xref>. In the tests from F9 to F13, HDSA exhibits significantly better stability and convergence accuracy compared with the other five algorithms. It achieves higher accuracy and the smallest standard deviation. As depicted in <xref ref-type="fig" rid="F3">Figure 3</xref>, except for the F8 test function, HDSA showcases the fastest convergence speed and highest convergence accuracy among the algorithms.</p>
<p>The results of the fixed dimensional multi-peak functions F14&#x02013;F20 test results are shown in <xref ref-type="table" rid="T1">Tables 1</xref>, <xref ref-type="table" rid="T2">2</xref>. In the F14 test, SCA has the best optimal and average accuracy, while HDSA exhibits slightly lower average accuracy and stability compared with SCA, PSO, and HHO. However, HDSA still manages to find the optimal solution in 30 runs. In the F15&#x02013;F18 test results, HDSA, SCA, GWO, and HHO perform closely, with good stability and accuracy. In the F19&#x02013;F20 tests, HDSA outperforms the other five algorithms significantly in terms of accuracy and stability. As shown in <xref ref-type="fig" rid="F3">Figure 3</xref>, HDSA exhibits the fastest convergence speed among the other test functions, except for F15, F17, and F18. In the F15 test, HDSA is only slightly slower than HHO, while in the F17 and F18 tests, HDSA converges slightly slower than FA.</p></sec>
<sec>
<title>2.2. Mathematical model of the CDR</title>
<p>Before discussing the mathematical model of the CDR, the following assumptions are made: <bold>Assumption 1:</bold> The center of gravity and the geometric center of the robot body coincide. <bold>Assumption 2:</bold> The motor output torque meets the actual performance requirements of the robot during ground and water motion. <bold>Assumption 3:</bold> The robot&#x00027;s vertical swing, horizontal rocking, and longitudinal rocking during its movement on the water surface are ignored. <bold>Assumption 4:</bold> The motion of the robot on the ground is purely rolling, without any sliding motion.</p>
<p>The CDR designed in this study can be seen as a combination of a quadrotor UAV and a WMR. <xref ref-type="fig" rid="F4">Figure 4A</xref> shows the robot moves on the ground. <xref ref-type="fig" rid="F4">Figure 4B</xref> shows the robot moves on the water surface by webbed plates. <xref ref-type="fig" rid="F4">Figure 4C</xref> shows the robot moves on the water surface by propllers. The robot moves in the air in a similar way to the quadrotor UAV as shown in <xref ref-type="fig" rid="F4">Figures 4D</xref>, <xref ref-type="fig" rid="F4">E</xref>. <xref ref-type="fig" rid="F4">Figure 4F</xref> shows the structure of the robot, where webbed plates are mounted on the wheels. These webbed plates generate traction and rotational torque on the water surface by interacting with the water. However, as this paper focuses primarily on the FTC algorithm of the robot on the ground and on the water surface, the discussion does not explore the robot&#x00027;s aerial motion in detail.</p>
<fig id="F4" position="float">
<label>Figure 4</label>
<caption><p><bold>(A)</bold> The robot moves on the ground. <bold>(B)</bold> The robot moves on the water surface by webbed plates. <bold>(C)</bold> The robot moves on the water surface by propllers. <bold>(D)</bold> The robot takes off from water surface. <bold>(E)</bold> The robot flying in the air. <bold>(F)</bold> The structure of robot.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1219170-g0004.tif"/>
</fig>
<p>The robot in the inertial frame and in the body frame is shown in <xref ref-type="fig" rid="F5">Figure 5</xref>.</p>
<fig id="F5" position="float">
<label>Figure 5</label>
<caption><p>Robot in the inertial frame and the body frame.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1219170-g0005.tif"/>
</fig>
<p>In <xref ref-type="fig" rid="F5">Figure 5</xref>, <italic>d</italic> is the distance from the geometric center of the robot <italic>O</italic><sub><italic>b</italic></sub> to the mass center of the robot. <italic>b</italic> is the axis radius and <italic>r</italic> is the wheel radius. <italic>&#x003C9;</italic><sub><italic>l</italic></sub>, <italic>&#x003C9;</italic><sub><italic>r</italic></sub> are the angular velocities of the left and right wheels. <italic>&#x003C8;</italic> is the angle between the robot body coordinate system <italic>b</italic> and the inertial coordinate system <italic>A</italic>, and <italic>&#x003C8;</italic> is the yaw angle of the robot. The kinematic model of the robot on the ground and water surface can be represented as (Liu et al., <xref ref-type="bibr" rid="B18">2020</xref>):</p>
<disp-formula id="E1"><label>(1)</label><mml:math id="M1"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mi>R</mml:mi><mml:mi>&#x003B7;</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M2"><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mi>x</mml:mi></mml:mtd><mml:mtd><mml:mi>y</mml:mi></mml:mtd><mml:mtd><mml:mi>&#x003C8;</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> represents the position and orientation of the robot in the inertial frame, while <inline-formula><mml:math id="M3"><mml:mi>&#x003B7;</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mi>u</mml:mi></mml:mtd><mml:mtd><mml:mi>v</mml:mi></mml:mtd><mml:mtd><mml:mi>r</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> is used to denote the longitudinal velocity, lateral velocity, and yaw angular velocity in the body frame. The coordinate conversion matrix is denoted by <italic>R</italic>, where <inline-formula><mml:math id="M4"><mml:mi>R</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mo class="qopname">cos</mml:mo><mml:mi>&#x003C8;</mml:mi></mml:mtd><mml:mtd><mml:mo class="qopname">sin</mml:mo><mml:mi>&#x003C8;</mml:mi></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>-</mml:mo><mml:mo class="qopname">sin</mml:mo><mml:mi>&#x003C8;</mml:mi></mml:mtd><mml:mtd><mml:mo class="qopname">cos</mml:mo><mml:mi>&#x003C8;</mml:mi></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>. The dynamics model of the robot&#x00027;s motion on the ground can be expressed as</p>
<disp-formula id="E2"><label>(2)</label><mml:math id="M5"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>M</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>q</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mi>F</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>B</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The matrices <italic>M</italic> are symmetric positive definite inertia matrices, while <italic>C</italic><sub><italic>m</italic></sub> represents the centripetal and Coriolis matrix. The term <inline-formula><mml:math id="M6"><mml:mi>F</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> denotes mechanical friction, while &#x003C4;<sub><italic>d</italic></sub> is used to represent external disturbances. The input transformation matrices are denoted as <italic>B</italic>(<italic>q</italic>). Furthermore, the robot drive motors in the left and right wheel output torque are represented by <inline-formula><mml:math id="M7"><mml:mi>&#x003C4;</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>.</p>
<disp-formula id="E3"><mml:math id="M8"><mml:mi>M</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mi>m</mml:mi></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mi>m</mml:mi><mml:mi>d</mml:mi><mml:mo class="qopname">sin</mml:mo><mml:mi>&#x003C8;</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mi>m</mml:mi></mml:mtd><mml:mtd><mml:mo>-</mml:mo><mml:mi>m</mml:mi><mml:mi>d</mml:mi><mml:mo class="qopname">cos</mml:mo><mml:mi>&#x003C8;</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>m</mml:mi><mml:mi>d</mml:mi><mml:mo class="qopname">sin</mml:mo><mml:mi>&#x003C8;</mml:mi></mml:mtd><mml:mtd><mml:mo>-</mml:mo><mml:mi>m</mml:mi><mml:mi>d</mml:mi><mml:mo class="qopname">cos</mml:mo><mml:mi>&#x003C8;</mml:mi></mml:mtd><mml:mtd><mml:mi>I</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:math></disp-formula>
<disp-formula id="E4"><mml:math id="M9"><mml:mi>B</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>r</mml:mi></mml:mrow></mml:mfrac><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mo class="qopname">cos</mml:mo><mml:mi>&#x003C8;</mml:mi></mml:mtd><mml:mtd><mml:mo class="qopname">cos</mml:mo><mml:mi>&#x003C8;</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo class="qopname">sin</mml:mo><mml:mi>&#x003C8;</mml:mi></mml:mtd><mml:mtd><mml:mo class="qopname">sin</mml:mo><mml:mi>&#x003C8;</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>L</mml:mi></mml:mtd><mml:mtd><mml:mo>-</mml:mo><mml:mi>L</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:math></disp-formula>
<disp-formula id="E5"><mml:math id="M10"><mml:msub><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mi>m</mml:mi><mml:mi>d</mml:mi><mml:msup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo class="qopname">cos</mml:mo><mml:mi>&#x003C8;</mml:mi></mml:mtd><mml:mtd><mml:mi>m</mml:mi><mml:mi>d</mml:mi><mml:msup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo class="qopname">sin</mml:mo><mml:mi>&#x003C8;</mml:mi></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup></mml:math></disp-formula>
<p>The mass of the robot is represented by <italic>m</italic>. The <italic>I</italic> is a scalar quantity and represents the rotational inertia of the robot as it rotates in the <italic>X</italic>-<italic>Y</italic> plane. The angular velocity of the robot is assumed to vary smoothly, so that <inline-formula><mml:math id="M11"><mml:mover accent="true"><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>&#x02248;</mml:mo><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">0</mml:mtext></mml:mstyle></mml:math></inline-formula>. According to <bold>assumption 1</bold>, the Coriolis matrix can be assumed to be negligible, resulting in <italic>C</italic><sub>m</sub> &#x02248; 0. According to <bold>assumption 1</bold>, <italic>d</italic> &#x0003D; 0, so the matrix <inline-formula><mml:math id="M12"><mml:mi>M</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>a</mml:mi><mml:mi>g</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mi>m</mml:mi></mml:mtd><mml:mtd><mml:mi>m</mml:mi></mml:mtd><mml:mtd><mml:mi>I</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>. Based on these assumptions, the dynamics model of the robot on the ground can be rewritten as follows:</p>
<disp-formula id="E6"><label>(3)</label><mml:math id="M13"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover><mml:mo>&#x0002B;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mi>q</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mo>&#x0002B;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mi>&#x003C4;</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M14"><mml:mover accent="true"><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">- 1</mml:mtext></mml:mstyle></mml:mrow></mml:msup><mml:msub><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mi>&#x01E58;</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M15"><mml:mover accent="true"><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mi>M</mml:mi><mml:mi>R</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M16"><mml:mover accent="true"><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mi>B</mml:mi></mml:math></inline-formula>. <inline-formula><mml:math id="M17"><mml:mover accent="true"><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>is the mechanical friction and <inline-formula><mml:math id="M18"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> is the external disturbance. Rewriting 3 into algebraic form can be expressed as:</p>
<disp-formula id="E7"><label>(4)</label><mml:math id="M19"><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mover accent='true'><mml:mi>u</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mi>u</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mi>u</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mi>m</mml:mi><mml:mo>+</mml:mo><mml:mi>v</mml:mi><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mover accent='true'><mml:mi>v</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mo>&#x02212;</mml:mo><mml:mi>u</mml:mi><mml:mi>&#x003C9;</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>v</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mi>m</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mi>r</mml:mi></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>
<p>The traction force is represented by <italic>F</italic><sub><italic>u</italic></sub>, while <italic>T</italic><sub><italic>r</italic></sub> represents the torque. To model the dynamics of the robot on the water surface, we can refer to the USV dynamics model (Chen et al., <xref ref-type="bibr" rid="B3">2019</xref>), which can be expressed as follows</p>
<disp-formula id="E8"><label>(5)</label><mml:math id="M20"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x003B7;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>&#x003B7;</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p><italic>M</italic><sub><italic>w</italic></sub> is the inertia matrix. The traction force and torque of the robot at the water surface are <inline-formula><mml:math id="M21"><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>. <inline-formula><mml:math id="M22"><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>is the lumped disturbance and <inline-formula><mml:math id="M23"><mml:msub><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> is the water resistance.</p>
<disp-formula id="E9"><mml:math id="M24"><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>22</mml:mn></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>23</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>32</mml:mn></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>33</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:math></disp-formula>
<disp-formula id="E10"><mml:math id="M25"><mml:msub><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x003B7;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mn>13</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mn>23</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mn>13</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mn>23</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:math></disp-formula>
<disp-formula id="E11"><mml:math id="M26"><mml:msub><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mn>22</mml:mn></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mn>23</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mn>32</mml:mn></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mn>33</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:math></disp-formula>
<p>The disturbances are represented by &#x003C4;<sub><italic>dw</italic></sub>. On the other hand, <italic>D</italic><sub><italic>w</italic></sub>(&#x003B7;) represents the water resistance. The Coriolis force matrix can also be neglected according to <bold>Assumption 1</bold> and <bold>Assumption 3</bold>, so <italic>C</italic><sub><italic>w</italic></sub>(<italic>q</italic>, &#x003B7;) &#x02248; 0. The elements of the non-diagonal matrix in matrix <italic>D</italic><sub><italic>w</italic></sub>(&#x003B7;) and matrix <italic>M</italic><sub><italic>w</italic></sub> are small and can be neglected. This model simplification approach is also more common (Liao et al., <xref ref-type="bibr" rid="B17">2016</xref>; Wang et al., <xref ref-type="bibr" rid="B31">2019b</xref>; Deng et al., <xref ref-type="bibr" rid="B6">2020</xref>), where <inline-formula><mml:math id="M27"><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>X</mml:mi></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula><mml:math id="M28"><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>22</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>Y</mml:mi></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow></mml:msub></mml:math></inline-formula>, and <italic>m</italic><sub>33</sub> &#x0003D; <italic>I</italic><sub><italic>z</italic></sub>&#x02212;<italic>N</italic><sub>&#x01E59;</sub> are the inertia parameters of the three axes and <inline-formula><mml:math id="M29"><mml:msub><mml:mrow><mml:mi>X</mml:mi></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula><mml:math id="M30"><mml:msub><mml:mrow><mml:mi>Y</mml:mi></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow></mml:msub></mml:math></inline-formula>, and <italic>N</italic><sub>&#x01E59;</sub> are the additional inertia parameters due to the wet water of the robot shell and the viscosity of the water. The dynamics model of the robot on the water surface can be expressed as:</p>
<disp-formula id="E12"><label>(6)</label><mml:math id="M31"><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mover accent='true'><mml:mi>u</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>22</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mi>v</mml:mi><mml:mi>&#x003C9;</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mi>u</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>u</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mrow><mml:mo>|</mml:mo><mml:mi>u</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mi>u</mml:mi><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mover accent='true'><mml:mi>v</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mtext>22</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mi>u</mml:mi><mml:mi>&#x003C9;</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mtext>22</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mi>v</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>v</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mtext>22</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mrow><mml:mo>|</mml:mo><mml:mi>v</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mi>v</mml:mi><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mover accent='true'><mml:mi>&#x003C9;</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>22</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>33</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mi>u</mml:mi><mml:mi>&#x003C5;</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>&#x003C9;</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>33</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mi>&#x003C9;</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>&#x003C9;</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>33</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mrow><mml:mo>|</mml:mo><mml:mi>&#x003C9;</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mi>&#x003C9;</mml:mi><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi>r</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>33</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>r</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>33</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>
<p><italic>X</italic><sub><italic>u</italic></sub>, <italic>X</italic><sub>|<italic>u</italic>|<italic>u</italic></sub>, <italic>Y</italic><sub><italic>u</italic></sub>, <italic>Y</italic><sub>|<italic>v</italic>|<italic>v</italic></sub>, and <italic>N</italic><sub><italic>&#x003C9;</italic></sub>, <italic>N</italic><sub>|<italic>&#x003C9;</italic>|<italic>&#x003C9;</italic></sub> are the resistance coefficients. The resistance of the robot moving on the water surface can be approximated as a quadratic function of the velocity and angular velocity.</p>
<p>The mathematical model should be rewritten into a form that better suits the needs of the subsequent controller design. The dynamics model of the robot&#x00027;s motion on the ground is rewritten according to 4 as</p>
<disp-formula id="E13"><label>(7)</label><mml:math id="M32"><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mover accent='true'><mml:mi>u</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mi>u</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mi>m</mml:mi><mml:mo>&#x02212;</mml:mo><mml:munder><mml:munder><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>u</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mi>m</mml:mi><mml:mo>+</mml:mo><mml:mi>v</mml:mi><mml:mi>&#x003C9;</mml:mi></mml:mrow><mml:mo stretchy='true'>&#x0FE38;</mml:mo></mml:munder><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mi>I</mml:mi><mml:mo>&#x02212;</mml:mo><mml:munder><mml:munder><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mi>r</mml:mi></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mi>I</mml:mi></mml:mrow><mml:mo stretchy='true'>&#x0FE38;</mml:mo></mml:munder><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>r</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>
<p>Where <italic>d</italic><sub><italic>ug</italic></sub> is the lumped disturbance and <inline-formula><mml:math id="M33"><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02264;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula><mml:math id="M34"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is the upper limit of the total disturbances. <italic>d</italic><sub><italic>rg</italic></sub> is the lumped disturbance and <inline-formula><mml:math id="M35"><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02264;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula><mml:math id="M36"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is the upper limit of the total disturbances. The dynamics model of the robot on the water surface is</p>
<disp-formula id="E14"><label>(8)</label><mml:math id="M37"><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mover accent='true'><mml:mi>u</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mi>m</mml:mi></mml:mfrac><mml:mo>&#x02212;</mml:mo><mml:munder><mml:munder><mml:mrow><mml:mfrac><mml:mrow><mml:msub><mml:mi>&#x003BE;</mml:mi><mml:mi>u</mml:mi></mml:msub><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mi>u</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>u</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mrow><mml:mo>|</mml:mo><mml:mi>u</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mi>u</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mtext>&#x00394;</mml:mtext><mml:mi>F</mml:mi></mml:msub></mml:mrow><mml:mo stretchy='true'>&#x0FE38;</mml:mo></mml:munder><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x02003;&#x02003;</mml:mtext><mml:mo>+</mml:mo><mml:munder><mml:munder><mml:mrow><mml:mfrac><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>22</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mi>v</mml:mi><mml:mi>&#x003C9;</mml:mi><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow><mml:mo stretchy='true'>&#x0FE38;</mml:mo></mml:munder><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>r</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mi>I</mml:mi></mml:mfrac><mml:mo>&#x02212;</mml:mo><mml:munder><mml:munder><mml:mrow><mml:mfrac><mml:mrow><mml:msub><mml:mi>&#x003BE;</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>r</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>33</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>r</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>&#x003C9;</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>33</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mi>&#x003C9;</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>&#x003C9;</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>33</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mrow><mml:mo>|</mml:mo><mml:mi>&#x003C9;</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mi>&#x003C9;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mtext>&#x00394;</mml:mtext><mml:mi>T</mml:mi></mml:msub></mml:mrow><mml:mo stretchy='true'>&#x0FE38;</mml:mo></mml:munder><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>r</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x02003;&#x02003;</mml:mtext><mml:mo>+</mml:mo><mml:munder><mml:munder><mml:mrow><mml:mfrac><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>22</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>33</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mi>u</mml:mi><mml:mi>v</mml:mi><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>r</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>33</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow><mml:mo stretchy='true'>&#x0FE38;</mml:mo></mml:munder><mml:mrow><mml:mi>d</mml:mi><mml:mi>r</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:munder></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>
<p>where <italic>F</italic><sub><italic>uc</italic></sub> is the desired tractive force and <italic>F</italic><sub><italic>uc</italic></sub> &#x0003D; <italic>F</italic><sub><italic>u</italic></sub> represents no force loss. <inline-formula><mml:math id="M38"><mml:msub><mml:mrow><mml:mi>&#x003BE;</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is the force loss parameter. &#x00394;<sub><italic>F</italic></sub> is the force disturbance due to mass change. <italic>d</italic><sub><italic>uw</italic></sub> is a lumped disturbance, <inline-formula><mml:math id="M39"><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02264;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. <inline-formula><mml:math id="M40"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is the upper bound of <italic>d</italic><sub><italic>uw</italic></sub>. <italic>D</italic><sub><italic>uw</italic></sub> is the uncertainty term when the robot moves on the water surface due to changes in system parameters, water resistance, and driver faults. <italic>T</italic><sub><italic>rc</italic></sub> is the desired torque and <italic>T</italic><sub><italic>rc</italic></sub> &#x0003D; <italic>T</italic><sub><italic>r</italic></sub> represents no force loss. <inline-formula><mml:math id="M41"><mml:msub><mml:mrow><mml:mi>&#x003BE;</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is the power loss parameter. &#x00394;<sub><italic>T</italic></sub> is the torque disturbance due to the change of inertia parameter. <italic>d</italic><sub><italic>rw</italic></sub> is a lumped disturbance, <inline-formula><mml:math id="M42"><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02264;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. <inline-formula><mml:math id="M43"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is the upper bound of <italic>d</italic><sub><italic>rw</italic></sub>. <italic>D</italic><sub><italic>rw</italic></sub> is the uncertainty term due to changes in system parameters, water resistance, and driver faults during robot rotation on the water surface.</p></sec></sec>
<sec id="s3">
<title>3. Active fault tolerance control algorithm and human decision search algorithm</title>
<sec>
<title>3.1. RBFNN-based active fault-tolerant control algorithm</title>
<p>Both the yaw control and the linear velocity control of the robot are essentially single-input single-output (SISO) second-order non-linear affine systems. Without loss of generality, a second-order non-linear affine SISO system with drive faults can be expressed as:</p>
<disp-formula id="E15"><label>(9)</label><mml:math id="M44"><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>x</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>x</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mi>f</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:mi>g</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mtext>c</mml:mtext></mml:msub><mml:mo>+</mml:mo><mml:mi>D</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow><mml:mo>+</mml:mo><mml:mi>d</mml:mi></mml:mrow></mml:math></disp-formula>
<p><italic>u</italic><sub><italic>c</italic></sub> is unconstrained control input, <italic>u</italic><sub><italic>a</italic></sub> is the drive bias, &#x003BE; is the power loss parameter, <inline-formula><mml:math id="M45"><mml:mi>&#x003BE;</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>, 0 represents no power loss, and 1 represents a complete loss of efficiency. <italic>D</italic> &#x0003D; &#x02212;<italic>g</italic>(<italic>x</italic>)&#x003BE;<italic>u</italic><sub><italic>c</italic></sub> &#x0002B; <italic>u</italic><sub><italic>a</italic></sub> is the uncertainty term due to the driver fault. The disturbance <italic>d</italic> has a well-defined upper limit and <inline-formula><mml:math id="M46"><mml:mo>|</mml:mo><mml:mi>d</mml:mi><mml:mo>|</mml:mo><mml:mo>&#x02264;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:math></inline-formula>. <italic>x</italic><sub>1</sub>, <italic>x</italic><sub>2</sub> are system states. <italic>f</italic>(<italic>x</italic>) is the system function and <italic>g</italic>(<italic>x</italic>) is the input function. Owing to the physical constraints of the controlled object, the control input is subject to saturation:</p>
<disp-formula id="E16"><label>(10)</label><mml:math id="M47"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:mi>max</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>&#x0003E;</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:mi>max</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi>c</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi>c</mml:mi></mml:msub><mml:mo>&#x02264;</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:mi>max</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>
<p><italic>u</italic><sub>max</sub> is the physical constraint. To make the control input smoother, the cutoff function is usually replaced by a saturation function, such as <italic>tanh</italic>.</p>
<disp-formula id="E17"><label>(11)</label><mml:math id="M48"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo class="qopname">max</mml:mo></mml:mrow></mml:msub><mml:mo class="qopname">tanh</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo class="qopname">max</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>u</italic><sub><italic>con</italic></sub> is the constrained control input and <italic>u</italic><sub><italic>f</italic></sub> is a function of <italic>u</italic><sub><italic>c</italic></sub>. Thus, the control objective is to design the constrained control law <italic>u</italic><sub><italic>con</italic></sub> so that it satisfies the control requirements even in the presence of drive faults and external disturbances in the controlled object. The steps for designing an AFT controller are the following:</p>
<p><bold>Step 1</bold>: Define the state error <italic>e</italic><sub>1</sub> &#x0003D; <italic>x</italic><sub>1d</sub> &#x02212; <italic>x</italic><sub>1</sub>. Establish the Lyapunov function <inline-formula><mml:math id="M49"><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">1</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">2</mml:mtext></mml:mstyle></mml:mrow></mml:mfrac><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>. Taking the derivative of <italic>V</italic><sub>1</sub> with respect to the time <italic>t</italic> gives</p>
<disp-formula id="E18"><label>(12)</label><mml:math id="M50"><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>V</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:msub><mml:mover accent='true'><mml:mi>e</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mn>1</mml:mn></mml:msub><mml:mtext>=</mml:mtext><mml:msub><mml:mi>e</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>x</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mrow><mml:mn>1</mml:mn><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></disp-formula>
<p>Define the virtual state &#x003B1;<sub><italic>x</italic></sub> &#x0003D; <italic>k</italic><sub>1</sub><italic>e</italic><sub>1</sub> &#x0002B; <italic>&#x01E8B;</italic><sub>1<italic>d</italic></sub> as the desired input of the next step. If <italic>x</italic><sub>2</sub> can follow &#x003B1;<sub><italic>x</italic></sub>, <inline-formula><mml:math id="M51"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>. So, the next step of the control law must ensure that &#x003B1;<sub><italic>x</italic></sub> &#x02212; <italic>x</italic><sub>2</sub> &#x0003D; 0. &#x003B1;<sub><italic>x</italic></sub> is the next desired state <italic>x</italic><sub>2<italic>d</italic></sub>.</p>
<p><bold>Step 2</bold>: Define the state error <italic>e</italic><sub>2</sub> &#x0003D; <italic>x</italic><sub>2d</sub> &#x02212; <italic>x</italic><sub>2</sub>, and the fast NTSMC is designed as</p>
<disp-formula id="E19"><label>(13)</label><mml:math id="M52"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>S</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">2</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003B1;</mml:mi><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">1</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003B2;</mml:mi><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">1</mml:mtext></mml:mrow><mml:mrow><mml:mtext>&#x003BB;</mml:mtext></mml:mrow></mml:msubsup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003B1; and &#x003B2; are positive adjustable parameters and &#x003BB; is a positive odd number. The sliding mode convergence law is</p>
<disp-formula id="E20"><label>(14)</label><mml:math id="M53"><mml:mrow><mml:mover accent='true'><mml:mi>S</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mi>S</mml:mi><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:msup><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x003B3;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:msup><mml:mtext>sgn</mml:mtext><mml:mo stretchy='false'>(</mml:mo><mml:mi>S</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></disp-formula>
<p>where <italic>k</italic><sub>1</sub>, <italic>k</italic><sub>2</sub>, and &#x003B3;<sub>1</sub> are positive adjustable parameters. <italic>sgn</italic> is the symbolic function. The derivation of 13 yields:</p>
<disp-formula id="E21"><label>(15)</label><mml:math id="M54"><mml:mrow><mml:mover accent='true'><mml:mi>S</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>e</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mtext>2</mml:mtext></mml:msub><mml:mo>+</mml:mo><mml:mi>&#x003B1;</mml:mi><mml:msub><mml:mover accent='true'><mml:mi>e</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mtext>1</mml:mtext></mml:msub><mml:mo>+</mml:mo><mml:mtext>&#x003BB;</mml:mtext><mml:mi>&#x003B2;</mml:mi><mml:msub><mml:mi>e</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:msup><mml:mrow><mml:mtext>&#x0200A;</mml:mtext></mml:mrow><mml:mrow><mml:mtext>&#x003BB;-</mml:mtext><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:msub><mml:mover accent='true'><mml:mi>e</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mi>S</mml:mi><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:msup><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x003B3;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:msup><mml:mtext>sgn</mml:mtext><mml:mo stretchy='false'>(</mml:mo><mml:mi>S</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></disp-formula>
<p>where</p>
<disp-formula id="E22"><label>(16)</label><mml:math id="M55"><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>e</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mtext>2</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>x</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mrow><mml:mn>2</mml:mn><mml:mtext>d</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>x</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>&#x003B1;</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mi>x</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mi>f</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:mi>g</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi>c</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mi>d</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mi>D</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mo>=</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mi>S</mml:mi><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:msup><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x003B3;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:msup><mml:mtext>sgn</mml:mtext><mml:mo stretchy='false'>(</mml:mo><mml:mi>S</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>
<p>The controller law can be designed as follows:</p>
<disp-formula id="E23"><label>(17)</label><mml:math id="M56"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>g</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mfrac><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mi>f</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mi>D</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mi>S</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mtext>sgn</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003B1;</mml:mi><mml:msub><mml:mrow><mml:mi>&#x00117;</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">1</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mtext>&#x003BB;</mml:mtext><mml:mi>&#x003B2;</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mtext>&#x003BB;</mml:mtext><mml:mtext class="textrm" mathvariant="normal">-</mml:mtext><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:msub><mml:mrow><mml:mi>&#x00117;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>In 17, the uncertain term due to drive faults <italic>D</italic> is known. Establishing the Lyapunov function <inline-formula><mml:math id="M57"><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:msup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, the derivative of <italic>V</italic><sub>2</sub> yields</p>
<disp-formula id="E24"><label>(18)</label><mml:math id="M58"><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>V</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mi>S</mml:mi><mml:mover accent='true'><mml:mi>S</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mi>S</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>e</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mtext>2</mml:mtext></mml:msub><mml:mtext>+</mml:mtext><mml:mi>&#x003B1;</mml:mi><mml:msub><mml:mover accent='true'><mml:mi>e</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mtext>1</mml:mtext></mml:msub><mml:mtext>+&#x000A0;&#x003BB;</mml:mtext><mml:mi>&#x003B2;</mml:mi><mml:msub><mml:mi>e</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:msup><mml:mrow><mml:mtext>&#x0200A;</mml:mtext></mml:mrow><mml:mrow><mml:mtext>&#x003BB;-</mml:mtext><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:msub><mml:mover accent='true'><mml:mi>e</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mtd><mml:mtd></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mi>S</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>&#x003B1;</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mi>x</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mi>f</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:mi>g</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi>c</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mi>d</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mi>D</mml:mi><mml:mtext>+</mml:mtext><mml:mi>&#x003B1;</mml:mi><mml:msub><mml:mover accent='true'><mml:mi>e</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mtext>1</mml:mtext></mml:msub><mml:mtext>+&#x000A0;&#x000A0;</mml:mtext><mml:msub><mml:mtext>&#x003BB;</mml:mtext><mml:mtext>&#x000A0;1</mml:mtext></mml:msub><mml:mi>&#x003B2;</mml:mi><mml:msub><mml:mi>e</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:msup><mml:mrow><mml:mtext>&#x0200A;</mml:mtext></mml:mrow><mml:mrow><mml:msub><mml:mtext>&#x003BB;</mml:mtext><mml:mn>1</mml:mn></mml:msub><mml:mtext>-</mml:mtext><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:msub><mml:mover accent='true'><mml:mi>e</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>
<p>Bringing 17 into 18 yields</p>
<disp-formula id="E25"><label>(19)</label><mml:math id="M59"><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>V</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mi>S</mml:mi><mml:mover accent='true'><mml:mi>S</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mi>S</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mi>d</mml:mi><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mi>S</mml:mi><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:msup><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x003B3;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:msup><mml:mtext>sgn</mml:mtext><mml:mo stretchy='false'>(</mml:mo><mml:mi>S</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:msup><mml:mi>S</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:msup><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x003B3;</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>+</mml:mtext><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>&#x02212;</mml:mo><mml:mi>S</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x02264;</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:msup><mml:mi>S</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:msup><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x003B3;</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>+</mml:mtext><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mtext>+</mml:mtext><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mover accent='true'><mml:mi>d</mml:mi><mml:mo>&#x000AF;</mml:mo></mml:mover></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:msup><mml:mi>S</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:msup><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x003B3;</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>+</mml:mtext><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mtext>+</mml:mtext><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mover accent='true'><mml:mi>d</mml:mi><mml:mo>&#x000AF;</mml:mo></mml:mover></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:msup><mml:mi>S</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>&#x02212;</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:msup><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x003B3;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:msup><mml:mo>&#x02212;</mml:mo><mml:mover accent='true'><mml:mi>d</mml:mi><mml:mo>&#x000AF;</mml:mo></mml:mover></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>
<p>When <inline-formula><mml:math id="M60"><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0003E;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>/</mml:mo><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:msup><mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula>, <inline-formula><mml:math id="M61"><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:msup><mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mi>&#x003B5;</mml:mi></mml:math></inline-formula>, &#x003B5; &#x0003E; 0, thus:</p>
<disp-formula id="E26"><label>(20)</label><mml:math id="M62"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02264;</mml:mo><mml:mo>-</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mo>&#x02264;</mml:mo><mml:mo>-</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msqrt><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msqrt><mml:mi>&#x003B5;</mml:mi><mml:msubsup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>/</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>&#x0003C;</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>/</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003B1;<sub>1</sub> &#x0003D; 2<italic>k</italic><sub>2</sub>, <inline-formula><mml:math id="M63"><mml:mn>0</mml:mn><mml:mo>&#x0003C;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0003C;</mml:mo><mml:msqrt><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msqrt><mml:mi>&#x003B5;</mml:mi></mml:math></inline-formula>.</p>
<p><sc>Lemma 1</sc> [44] (Jiang and Lin, <xref ref-type="bibr" rid="B16">2020</xref>): Consider a smooth positive definite <italic>V</italic>(<italic>x</italic>), <italic>x</italic> &#x02208; <italic>R</italic><sub><italic>n</italic></sub>. Suppose that real numbers <italic>p</italic><sub>1</sub> &#x02208; (0, 1), &#x003B1; &#x0003E; 0, and &#x003B2; &#x0003E; 0 exist such that <inline-formula><mml:math id="M64"><mml:mi>V</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0003C;</mml:mo><mml:mo>-</mml:mo><mml:mi>&#x003B1;</mml:mi><mml:mi>V</mml:mi><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:mi>&#x003B2;</mml:mi><mml:mi>V</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. Then, an area <italic>U</italic><sub>0</sub> &#x02208; <italic>R</italic><sub><italic>n</italic></sub> exists, such that any <italic>V</italic>(<italic>x</italic>) starting from <italic>U</italic><sub>0</sub> can reach <italic>V</italic>(<italic>x</italic>) &#x0003D; 0 in finite time <italic>T</italic><sub><italic>v</italic></sub>, which is expressed as <inline-formula><mml:math id="M65"><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02264;</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>&#x003B2;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mfrac><mml:mo class="qopname">ln</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:msup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow></mml:mfrac></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
<p>According to <bold>lemma 1</bold>, <italic>V</italic><sub>2</sub> can converge to 0 in finite time. In the above discussion, the uncertainty term <italic>D</italic> is assumed to be known, but the actual uncertain term <italic>D</italic> is unknown. As RBFNN can approximate arbitrary uncertain non-linear functions and does not depend on a mathematical model, it is more suitable for estimating stochastic uncertain terms. Therefore, optimal neural network weights <italic>w</italic><sup>&#x0002A;</sup> must exist such that <inline-formula><mml:math id="M66"><mml:mi>D</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mstyle class="text"><mml:mo>&#x0002B;</mml:mo></mml:mstyle><mml:msup><mml:mrow><mml:msup><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">*</mml:mtext></mml:mstyle></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mi>h</mml:mi></mml:math></inline-formula>, &#x003B5;<sub>0</sub> is the estimated residual and <italic>h</italic> is the neuron. <inline-formula><mml:math id="M67"><mml:mover accent="true"><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mi>&#x00175;</mml:mi><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">*</mml:mtext></mml:mstyle></mml:mrow></mml:msup></mml:math></inline-formula>, &#x00175; is an estimate of <italic>w</italic><sup>&#x0002A;</sup> and <italic>w</italic><sup>&#x0002A;</sup> is a constant, so <inline-formula><mml:math id="M68"><mml:mover accent="true"><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>&#x00175;</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:math></inline-formula>. Rewrite 9 as:</p>
<disp-formula id="E27"><label>(21)</label><mml:math id="M69"><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>x</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>x</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mi>f</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:mi>g</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mtext>c</mml:mtext></mml:msub><mml:mo>+</mml:mo><mml:mi>d</mml:mi><mml:mtext>+</mml:mtext><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mtext>+</mml:mtext><mml:msup><mml:mi>w</mml:mi><mml:mtext>*</mml:mtext></mml:msup><mml:msup><mml:mrow><mml:mtext>&#x0200A;</mml:mtext></mml:mrow><mml:mi>T</mml:mi></mml:msup><mml:mi>h</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>
<p><bold>Step 3</bold>: Establish the Lyapunov function <italic>V</italic><sub>3</sub> as</p>
<disp-formula id="E28"><label>(22)</label><mml:math id="M70"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mtext class="textrm" mathvariant="normal">1</mml:mtext></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">2</mml:mtext></mml:mrow></mml:mfrac><mml:msup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">2</mml:mtext></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mi>&#x00393;</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mover accent="true"><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The derivation of formula 22 yields</p>
<disp-formula id="E29"><label>(23)</label><mml:math id="M71"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>S</mml:mi><mml:mi>&#x01E60;</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mtext>&#x00393;</mml:mtext></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mover accent="true"><mml:mrow><mml:mi>&#x00175;</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mi>S</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mi>f</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mi>g</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mi>d</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:msup><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">*</mml:mtext></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mi>h</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003B1;</mml:mi><mml:msub><mml:mrow><mml:mi>&#x00117;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mtext>&#x003BB;</mml:mtext></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">1</mml:mtext></mml:mrow></mml:msub><mml:mi>&#x003B2;</mml:mi><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">1</mml:mtext></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mtext>&#x003BB;</mml:mtext></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mi>&#x00117;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x0002B;</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mtext>&#x00393;</mml:mtext></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mover accent="true"><mml:mrow><mml:mi>&#x00175;</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The control law is designed to</p>
<disp-formula id="E30"><label>(24)</label><mml:math id="M72"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>g</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mfrac><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mi>f</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mi>&#x00175;</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mi>h</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mi>S</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mtext>sgn</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Bringing formula 24 into 23 yields</p>
<disp-formula id="E31"><label>(25)</label><mml:math id="M73"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mtext>&#x0200A;</mml:mtext></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:mi>S</mml:mi><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>S</mml:mi><mml:mi>h</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mtext>&#x00393;</mml:mtext></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mover accent="true"><mml:mrow><mml:mi>&#x00175;</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003B5;<sub>1</sub> &#x0003D; <italic>d</italic> &#x0002B; &#x003B5;<sub>0</sub>, the upper limit of the estimation error of the neural network is <inline-formula><mml:math id="M74"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> . <inline-formula><mml:math id="M75"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02265;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula><mml:math id="M76"><mml:mover accent="true"><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x02265;</mml:mo><mml:mi>d</mml:mi></mml:math></inline-formula>, so that <inline-formula><mml:math id="M77"><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02264;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> . The update law of the RBFNN weights is designed as</p>
<disp-formula id="E32"><label>(26)</label><mml:math id="M78"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mrow><mml:mi>&#x00175;</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mtext>&#x00393;</mml:mtext><mml:mi>S</mml:mi><mml:mi>h</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Bringing 26 into 25 yields</p>
<disp-formula id="E33"><label>(27)</label><mml:math id="M79"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mtext>&#x0200A;</mml:mtext></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:mi>S</mml:mi><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x02264;</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mtext>&#x0200A;</mml:mtext></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">1</mml:mtext></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x003B3;</mml:mi><mml:mtext class="textrm" mathvariant="normal">1</mml:mtext></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">1</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>when <inline-formula><mml:math id="M80"><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0003E;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>/</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mtext>&#x0200A;</mml:mtext></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula>, <inline-formula><mml:math id="M81"><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mtext>&#x0200A;</mml:mtext></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">2</mml:mtext></mml:mstyle></mml:mrow></mml:msub></mml:math></inline-formula>, where &#x003B5;<sub>2</sub> &#x0003E; 0, thus:</p>
<disp-formula id="E34"><label>(28)</label><mml:math id="M82"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">3</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x02264;</mml:mo><mml:mo>-</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo><mml:mo>&#x02264;</mml:mo><mml:mo>-</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msqrt><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msqrt><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>/</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x02003;</mml:mtext><mml:mo>&#x0003C;</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>/</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0003C;</mml:mo><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>According to <bold>lemma 1</bold>, <italic>V</italic><sub>2</sub> can converge to 0 in finite time.</p>
<p>The control input <italic>u</italic><sub><italic>c</italic></sub> in formula 24 is the unconstrained, to prevent the control input saturation, define <italic>u</italic><sub><italic>d</italic></sub> &#x0003D; <italic>u</italic><sub><italic>c</italic></sub>, where <italic>u</italic><sub><italic>d</italic></sub> is the desired value in the next step, and the state error <italic>e</italic><sub>3</sub> &#x0003D; <italic>u</italic><sub><italic>d</italic></sub>&#x02212;<italic>u</italic><sub><italic>con</italic></sub>. <italic>u</italic><sub><italic>con</italic></sub> satisfies the constrained control input of the saturation function <italic>tanh</italic>; therefore, parameter <italic>u</italic><sub><italic>f</italic></sub> must exist, such that <italic>u</italic><sub><italic>con</italic></sub> &#x0003D; <italic>u</italic><sub>max</sub>tanh(<italic>u</italic><sub><italic>f</italic></sub>/<italic>u</italic><sub>max</sub>), where <italic>u</italic><sub><italic>max</italic></sub> is the maximum input.</p>
<disp-formula id="E35"><label>(29)</label><mml:math id="M84"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mo class="qopname">tanh</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo class="qopname">max</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>f</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p><bold>Step 4:</bold> Establish the Lyapunov function <inline-formula><mml:math id="M85"><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> and derive <italic>V</italic><sub>3</sub> and bring it into 29 to obtain:</p>
<disp-formula id="E36"><label>(30)</label><mml:math id="M86"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>&#x00117;</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">d</mml:mtext></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mo class="qopname">tanh</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo class="qopname">max</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>f</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p><inline-formula><mml:math id="M87"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>f</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is designed as</p>
<disp-formula id="E37"><label>(31)</label><mml:math id="M88"><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>u</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mi>f</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:msub><mml:mi>e</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x003B3;</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:msup><mml:mi>s</mml:mi><mml:mi>g</mml:mi><mml:mi>n</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>u</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mi>d</mml:mi></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:msup><mml:mrow><mml:mi>tanh</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi>f</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:mi>max</mml:mi></mml:mrow></mml:msub><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mtext>&#x0200B;&#x0200B;</mml:mtext></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>,</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mo>&#x02265;</mml:mo><mml:mtext>&#x00394;</mml:mtext></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mi>&#x003B4;</mml:mi><mml:msub><mml:mi>e</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x003B3;</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:msup><mml:mi>s</mml:mi><mml:mi>g</mml:mi><mml:mi>n</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>u</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mi>d</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:msup><mml:mrow><mml:mi>tanh</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi>f</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:mi>max</mml:mi></mml:mrow></mml:msub><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mtext>&#x0200B;&#x0200B;</mml:mtext></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>,</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mo>&#x0003C;</mml:mo><mml:mtext>&#x00394;</mml:mtext></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>
<p>where &#x003B4; &#x0003D; |<italic>u</italic><sub><italic>f</italic></sub>|&#x02212;2<italic>u</italic><sub>max</sub>, &#x00394; is a smaller normal value. &#x003B3;<sub>2</sub> &#x02208; (0, 1). The convergence of the controller is discussed in the following cases. When &#x003B4; &#x02265; &#x00394;, substituting 31 into 30 yields</p>
<disp-formula id="E38"><label>(32)</label><mml:math id="M89"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mo>|</mml:mo><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:msubsup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x0003C;</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M91"><mml:mn>0</mml:mn><mml:mo>&#x0003C;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0003C;</mml:mo><mml:msup><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, 2<italic>k</italic><sub>3</sub> &#x0003D; &#x003B2;<sub>2</sub>. According to <bold>Lemma 1</bold>, <italic>V</italic><sub>4</sub> can converge to 0 in finite time. When &#x003B4; &#x0003C; &#x00394;, substituting 31 into 30 yields</p>
<disp-formula id="E39"><label>(33)</label><mml:math id="M92"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo>|</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mo class="qopname">tanh</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo class="qopname">max</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo>|</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>/</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mo class="qopname">tanh</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo class="qopname">max</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:msubsup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mi>c</mml:mi><mml:msubsup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003B1;<sub>3</sub> &#x0003D; (&#x003B3;<sub>2</sub> &#x0002B; 1)/2, <inline-formula><mml:math id="M93"><mml:mi>c</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mtext>&#x0200A;</mml:mtext></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>/</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mo class="qopname">tanh</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo class="qopname">max</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>, and tanh(<italic>u</italic><sub><italic>c</italic></sub>/<italic>u</italic><sub>max</sub>) &#x0003C; 1, so <italic>c</italic> &#x0003E; 0. According to <bold>Lemma 2</bold>, <italic>V</italic><sub>4</sub> can converge in finite time.</p>
<p><sc>Lemma 2:</sc> Chu et al. (<xref ref-type="bibr" rid="B4">2022</xref>) Suppose that there is a positive definite continuous Lyapunov function <italic>V</italic>(<italic>x, t</italic>) defined on <inline-formula><mml:math id="M94"><mml:msub><mml:mrow><mml:mi>U</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msup><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mo>&#x0002B;</mml:mo></mml:mstyle></mml:mrow></mml:msup></mml:math></inline-formula>, where <italic>U</italic><sub>1</sub> &#x02286; <italic>U</italic> &#x02286; <italic>R</italic><sub>n</sub>. <italic>R</italic><sub><italic>n</italic></sub> is a neighborhood of the origin, and <inline-formula><mml:math id="M95"><mml:mi>V</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02264;</mml:mo><mml:mo>-</mml:mo><mml:mi>c</mml:mi><mml:msup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x02200;</mml:mo><mml:mi>x</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mi>U</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>\</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>0</mml:mn></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>, where <italic>c</italic> &#x0003E; 0, 0 &#x0003C; &#x003B1; &#x0003C; 1. Then, the origin of the system is locally finite time stable. The settling time <inline-formula><mml:math id="M96"><mml:mi>T</mml:mi><mml:mo>&#x02264;</mml:mo><mml:msup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:mi>&#x003B1;</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mi>c</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> satisfies for a given initial condition <italic>x</italic>(<italic>t</italic><sub>0</sub>) &#x02208; <italic>U</italic><sub>1</sub>.</p></sec>
<sec>
<title>3.2. Human decision search algorithm</title>
<p>The human decision search algorithm (HDSA) is a swarm optimization technique that mimics the decision-making process of a human crowd. In many post-apocalyptic survival games or films, the strong group consciousness of humans is often portrayed, but the importance of individual consciousness is also emphasized. In human groups, a small group of individuals called decision-makers make the final decisions based on their experience and personal status. However, the decision of the decision-maker is not necessarily optimal. When the number of individuals in the group is small, it is important to involve more people in the decision-making process to guide the development of the group and to avoid the excessive impact of individual decisions on the group. However, when the number of individuals in the group is large, the proportion of decision-makers should be reduced and only a few elite individuals should be selected to determine the development of the group. This is because too many people involved in the decision-making process may take more time, and the experience of ordinary people may not be as good as that of elite individuals. Because people have emotions, they can think both rationally and emotionally when dealing with problems, and these two opposing ways of thinking must coexist.</p>
<p>Apart from the decision-makers, the rest of the human population is referred to as the executors, consisting of individuals who have no or less ability to make decisions. They carry out the optimal decisions made by the decision-makers. However, individuals among the executors who have some decision-making ability should be encouraged to seek more humane decisions based on the optimal decisions. These decisions should become more adapted to the current environment over time. The number of decision-makers is fixed, and elite individuals in the human population will always be selected as decision-makers. Over time, any individual has the potential to become a decision-maker, and the current decision-maker may become an executor.</p>
<p>In a human population, there are always individuals who question the current decision or believe they have a better one, including the decision-makers themselves. These individuals are known as adventurers, and their numbers and identities are random, making them a source of uncertainty within the population. Although adventurers can lead people to a better life, they can also lead them to disaster. Adventurers, on the other hand, inherit the current optimal choices of the human population and take them into account when making decisions. However, more adventurous individuals will also seek out possible optimal decisions based on their own state. To avoid harming the human population, adventurers must consider whether the decisions they make are more beneficial to their own survival. Additionally, there is a chance that an adventurer will become a decision-maker if they come up with a better or suboptimal decision. Based on the above analysis, the proposed algorithm for optimizing the human decision population consists of three main components: decision updating for decision-makers, decision updating for executors, and decision updating for adventurers.</p>
<sec>
<title>3.2.1. Decision updates for decision makers</title>
<p>The number of decision-makers is fixed in proportion to the total number of people, and the number of decision-makers is 20&#x02013;50% of the total number of people. The decision-makers make their decisions based on individual experience as well as individual characteristics. The sine and cosine functions are used to distinguish between rational and emotional decisions by people, and the individuals are randomly updated due to the random adoption of rational and emotional decisions by people.</p>
<disp-formula id="E40"><label>(34)</label><mml:math id="M97"><mml:mrow><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mi>sin</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mi>t</mml:mi></mml:msubsup><mml:mo>&#x02212;</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>R</mml:mi><mml:mo>&#x0003C;</mml:mo><mml:mn>0.5</mml:mn></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mi>cos</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mi>t</mml:mi></mml:msubsup><mml:mo>&#x02212;</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>R</mml:mi><mml:mo>&#x02265;</mml:mo><mml:mn>0.5</mml:mn></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M98"><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> denotes the <italic>t</italic><sub><italic>th</italic></sub> iteration of the <italic>i</italic><sub><italic>th</italic></sub> human individual. <italic>r</italic><sub>1</sub> is a non-linear term, <italic>r</italic><sub>1</sub> &#x0003D; 2&#x0002A;(1 &#x02212; <italic>i</italic>/(&#x003B1;<sub>1</sub>&#x0002A;<italic>d</italic><sub><italic>num</italic></sub>)). <italic>d</italic><sub><italic>num</italic></sub> is the number of decision-makers. &#x003B1;<sub>1</sub> is a random number between (0, 1). <italic>r</italic><sub>2</sub> &#x0003D; &#x003B1;<sub>2</sub>2&#x003C0; and &#x003B1;<sub>2</sub> is the random number between (0, 1). <italic>r</italic><sub>3</sub> &#x0003D; 2&#x003B1;<sub>3</sub>, &#x003B1;<sub>3</sub> is a random number between (0, 1). <italic>r</italic> is the random number between (0, 1). <inline-formula><mml:math id="M99"><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> is the individual optimal solution for 1 to <italic>t</italic> iterations.</p></sec>
<sec>
<title>3.2.2. Decision updates for executors</title>
<p>Except for the decision-maker, the rest of the individuals are the executors. Among the executors, individuals with a fitness that is higher than the intermediate fitness are ordinary executors that must follow the optimal decision of the decision-maker. Individuals with a fitness below the intermediate fitness are considered as executors with some decision-making ability, and this group can continue to explore the next optimal decision that may exist based on the current optimal decision.</p>
<disp-formula id="E41"><label>(35)</label><mml:math id="M100"><mml:mrow><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mi>t</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B2;</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mo>&#x02212;</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mi>m</mml:mi><mml:mi>t</mml:mi></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mo>&#x02212;</mml:mo><mml:msubsup><mml:mi>f</mml:mi><mml:mi>m</mml:mi><mml:mi>t</mml:mi></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mo>&#x0003E;</mml:mo><mml:msubsup><mml:mi>f</mml:mi><mml:mi>m</mml:mi><mml:mi>t</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mi>s</mml:mi><mml:mi>g</mml:mi><mml:mi>n</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mo stretchy='false'>)</mml:mo><mml:mi>e</mml:mi><mml:mi>x</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mi>t</mml:mi></mml:msubsup><mml:mo>&#x02212;</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:msub><mml:mi>&#x003B2;</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mo>&#x02264;</mml:mo><mml:msubsup><mml:mi>f</mml:mi><mml:mi>m</mml:mi><mml:mi>t</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M101"><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> is the current global best individual and <inline-formula><mml:math id="M102"><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> is the current global worst individual. <inline-formula><mml:math id="M103"><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>. <inline-formula><mml:math id="M104"><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> is the fitness of the <italic>i</italic><sub><italic>th</italic></sub> individual, <inline-formula><mml:math id="M105"><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x0002B;</mml:mo><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mn>2</mml:mn></mml:math></inline-formula>, <inline-formula><mml:math id="M106"><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> is the current best fitness, and <inline-formula><mml:math id="M107"><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> is the current worst fitness. &#x003B2;<sub>1</sub> is the random number of normal distribution with mean 0 and variance 1. The sgn function determines the direction of exploration of individuals. <inline-formula><mml:math id="M108"><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>/</mml:mo><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> indicates that a more favorable decision result can be obtained over time.</p></sec>
<sec>
<title>3.2.3. Decision updates for adventurers</title>
<p>The adventurers are random individuals and the number of adventurers is also random. If the adventurer&#x00027;s fitness is less than the average fitness, the adventurer randomly explores based on the current optimal solution. If the adventurer&#x00027;s fitness is higher than the average fitness, the adventurer will continue to explore in the optimal direction according to the current state of the individual.</p>
<disp-formula id="E42"><label>(36)</label><mml:math id="M109"><mml:mrow><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mi>t</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mi>t</mml:mi></mml:msubsup><mml:mo>&#x02212;</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mo>&#x0003E;</mml:mo><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>r</mml:mi></mml:mrow><mml:mi>t</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mi>c</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy='false'>)</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>x</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msub><mml:mi>s</mml:mi><mml:mi>g</mml:mi><mml:mi>n</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mo stretchy='false'>)</mml:mo><mml:mo>,</mml:mo><mml:msubsup><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mo>&#x02264;</mml:mo><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>r</mml:mi></mml:mrow><mml:mi>t</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>
<p>where <italic>c</italic><sub>1</sub> is a normally distributed random number with mean 0. <italic>c</italic><sub>2</sub> is a random number between (0, 1) with variance 1. <inline-formula><mml:math id="M110"><mml:mo>||</mml:mo><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo>||</mml:mo><mml:msub><mml:mrow><mml:mtext>&#x0200A;</mml:mtext></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> is the Euclidean norm of <inline-formula><mml:math id="M111"><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="M112"><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> is the current mean fitness.</p>
<p>Based on the above discussion, the proposed HDSA has three steps. The first step performs a global random search using the formula 34. In the second step, a local search is performed based on the first step using the formula 35. The third step performs a second global random search using the formula 36 on the basis of the first and second steps. HDSA framework as <xref ref-type="table" rid="T8">Algorithm 1</xref>.</p>
<table-wrap position="float" id="T8">
<label>Algorithm 1</label>
<caption><p>HDSA.</p></caption> 
<table frame="hsides" rules="groups">
<tbody>
<tr>
<td valign="top" align="left"><inline-graphic xlink:href="fnbot-17-1219170-i0001.tif"/></td>
</tr>
</tbody>
</table>
</table-wrap>
</sec></sec>
<sec>
<title>3.3. Yaw controller and linear velocity controller</title>
<p>According to the control algorithm in the &#x0201C;RBFNN-Based Active Fault-Tolerant Control Algorithm&#x0201D; section, the AFTC is used to design controllers in this section to follow the desired yaw angle &#x003C8;<sub><italic>d</italic></sub> and desired linear velocity <italic>v</italic><sub><italic>d</italic></sub>. The robot linear velocity sliding mode surface is: <inline-formula><mml:math id="M113"><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:mstyle class="text"><mml:mo>&#x0002B;</mml:mo></mml:mstyle><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mtext>&#x003BB;</mml:mtext></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula>, where <italic>e</italic><sub><italic>v</italic></sub> &#x0003D; <italic>v</italic><sub><italic>d</italic></sub>&#x02212;<italic>v</italic>. The sliding mode convergence law is <inline-formula><mml:math id="M114"><mml:msub><mml:mrow><mml:mi>&#x01E60;</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>|</mml:mo><mml:mi>S</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mtext>&#x0200A;</mml:mtext></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mtext>sgn</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
<p>The proof of convergence for the velocity controller is similar to that for the general-purpose controller in the &#x0201C;RBFNN-Based Active Fault-Tolerant Control Algorithm&#x00022; section. The unconstrained control law is designed as</p>
<disp-formula id="E43"><label>(37)</label><mml:math id="M115"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>m</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x00175;</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:msub><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mtext>sgn</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The anti-input saturation controller of linear velocity is designed as</p>
<disp-formula id="E44"><label>(38)</label><mml:math id="M116"><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:mstyle displaystyle='true'><mml:mrow><mml:mo>&#x0222B;</mml:mo><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mtext>4</mml:mtext><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>e</mml:mi><mml:mi>F</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mi>F</mml:mi></mml:msub></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x003B3;</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mi>s</mml:mi><mml:mi>g</mml:mi><mml:mi>n</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mi>F</mml:mi></mml:msub><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>F</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mrow><mml:mi>u</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>/</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:msup><mml:mrow><mml:mi>tanh</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>max</mml:mi></mml:mrow></mml:msub><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mi>d</mml:mi><mml:mi>t</mml:mi><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>,</mml:mo><mml:msub><mml:mi>&#x003B4;</mml:mi><mml:mi>v</mml:mi></mml:msub><mml:mo>&#x02265;</mml:mo><mml:msub><mml:mtext>&#x00394;</mml:mtext><mml:mi>v</mml:mi></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle='true'><mml:mrow><mml:mo>&#x0222B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msub><mml:mi>&#x003B4;</mml:mi><mml:mi>v</mml:mi></mml:msub><mml:msub><mml:mi>e</mml:mi><mml:mi>F</mml:mi></mml:msub></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x003B3;</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mi>s</mml:mi><mml:mi>g</mml:mi><mml:mi>n</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mi>F</mml:mi></mml:msub><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>F</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mrow><mml:mi>u</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:msup><mml:mrow><mml:mi>tanh</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>max</mml:mi></mml:mrow></mml:msub><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mi>d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mrow></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mi>&#x003B4;</mml:mi><mml:mi>v</mml:mi></mml:msub><mml:mo>&#x0003C;</mml:mo><mml:msub><mml:mtext>&#x00394;</mml:mtext><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>max</mml:mi></mml:mrow></mml:msub><mml:mi>tanh</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>max</mml:mi></mml:mrow></mml:msub><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>
<p>Where <italic>e</italic><sub><italic>F</italic></sub> &#x0003D; <italic>F</italic><sub><italic>uc</italic></sub>&#x02212;<italic>F</italic><sub><italic>ucon</italic></sub>.</p>
<p>The yaw angle controller is <inline-formula><mml:math id="M117"><mml:msub><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, where <italic>e</italic><sub>&#x003C8;</sub> &#x0003D; &#x003C8;<sub><italic>d</italic></sub> &#x02212; &#x003C8;. The yaw angle sliding mode surface is <inline-formula><mml:math id="M118"><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:mstyle class="text"><mml:mo>&#x0002B;</mml:mo></mml:mstyle><mml:msub><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow></mml:msub><mml:mstyle class="text"><mml:mo>&#x0002B;</mml:mo></mml:mstyle><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mtext>&#x003BB;</mml:mtext></mml:mrow><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula>. The sliding mode convergence law is <inline-formula><mml:math id="M119"><mml:msub><mml:mrow><mml:mi>&#x01E60;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mtext>sgn</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
<p>The unconstrained control law is designed as</p>
<disp-formula id="E45"><label>(39)</label><mml:math id="M120"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>I</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x00175;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:msub><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mtext>sgn</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The anti-input saturation controller of the yaw angle is designed as</p>
<disp-formula id="E46"><label>(40)</label><mml:math id="M121"><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>r</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:mstyle displaystyle='true'><mml:mrow><mml:mo>&#x0222B;</mml:mo><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mn>4</mml:mn><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>e</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x003B3;</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mi>s</mml:mi><mml:mi>g</mml:mi><mml:mi>n</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>T</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mrow><mml:mi>r</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>/</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:msup><mml:mrow><mml:mi>tanh</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>r</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>max</mml:mi></mml:mrow></mml:msub><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mi>d</mml:mi><mml:mi>t</mml:mi><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>,</mml:mo><mml:msub><mml:mi>&#x003B4;</mml:mi><mml:mi>&#x003C9;</mml:mi></mml:msub><mml:mo>&#x02265;</mml:mo><mml:msub><mml:mtext>&#x00394;</mml:mtext><mml:mi>&#x003C9;</mml:mi></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mstyle displaystyle='true'><mml:mrow><mml:mo>&#x0222B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msub><mml:mi>&#x003B4;</mml:mi><mml:mi>&#x003C9;</mml:mi></mml:msub><mml:msub><mml:mi>e</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x003B3;</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mi>s</mml:mi><mml:mi>g</mml:mi><mml:mi>n</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>T</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mrow><mml:mi>r</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:msup><mml:mrow><mml:mi>tanh</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>r</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>max</mml:mi></mml:mrow></mml:msub><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mi>d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mrow></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x02003;</mml:mtext><mml:msub><mml:mi>&#x003B4;</mml:mi><mml:mi>&#x003C9;</mml:mi></mml:msub><mml:mo>&#x0003C;</mml:mo><mml:msub><mml:mtext>&#x00394;</mml:mtext><mml:mi>&#x003C9;</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>r</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>max</mml:mi></mml:mrow></mml:msub><mml:mi>tanh</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>r</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>max</mml:mi></mml:mrow></mml:msub><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>
<p>where <italic>e</italic><sub><italic>T</italic></sub> &#x0003D; <italic>T</italic><sub><italic>rc</italic></sub>&#x02212;<italic>T</italic><sub><italic>rcon</italic></sub>. The controller parameters are not described in this section as they have been discussed in the &#x0201C;RBFNN-Based Active Fault-Tolerant Control Algorithm&#x00022; section.</p>
<p>The input to the angular velocity neural network is both the yaw error and the angular velocity error, and the output is the uncertainty term in the angular velocity control. The coordinate vector matrix of the centroids of the Gaussian basis function neurons in the angular velocity neural network is</p>
<p><inline-formula><mml:math id="M122"><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mo>-</mml:mo><mml:mn>1.6</mml:mn></mml:mtd><mml:mtd><mml:mo>-</mml:mo><mml:mn>0.8</mml:mn></mml:mtd><mml:mtd><mml:mo>-</mml:mo><mml:mn>0.4</mml:mn></mml:mtd><mml:mtd><mml:mo>-</mml:mo><mml:mn>0.2</mml:mn></mml:mtd><mml:mtd><mml:mo>-</mml:mo><mml:mn>0.1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0.1</mml:mn></mml:mtd><mml:mtd><mml:mn>0.2</mml:mn></mml:mtd><mml:mtd><mml:mn>0.4</mml:mn></mml:mtd><mml:mtd><mml:mn>0.8</mml:mn></mml:mtd><mml:mtd><mml:mn>1.6</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>-</mml:mo><mml:mn>1.6</mml:mn></mml:mtd><mml:mtd><mml:mo>-</mml:mo><mml:mn>0.8</mml:mn></mml:mtd><mml:mtd><mml:mo>-</mml:mo><mml:mn>0.4</mml:mn></mml:mtd><mml:mtd><mml:mo>-</mml:mo><mml:mn>0.2</mml:mn></mml:mtd><mml:mtd><mml:mo>-</mml:mo><mml:mn>0.1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0.1</mml:mn></mml:mtd><mml:mtd><mml:mn>0.2</mml:mn></mml:mtd><mml:mtd><mml:mn>0.4</mml:mn></mml:mtd><mml:mtd><mml:mn>0.8</mml:mn></mml:mtd><mml:mtd><mml:mn>1.6</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mtext>&#x0200A;</mml:mtext></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mo>*</mml:mo><mml:mn>11</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula></p>
<p>The width of the Gaussian basis function <italic>b</italic><sub>&#x003C8;</sub> &#x0003D; 0.1, <italic>i</italic> &#x0003D; 1&#x022EF;11.</p>
<p>The input to the linear velocity neural network is the velocity error and the output is the linear velocity control uncertainty term. The coordinate vector matrix of the centroids of the Gaussian basis function of the neurons in the linear velocity neural network is</p>
<p><inline-formula><mml:math id="M123"><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mo>-</mml:mo><mml:mn>1.6</mml:mn></mml:mtd><mml:mtd><mml:mo>-</mml:mo><mml:mn>0.8</mml:mn></mml:mtd><mml:mtd><mml:mo>-</mml:mo><mml:mn>0.4</mml:mn></mml:mtd><mml:mtd><mml:mo>-</mml:mo><mml:mn>0.2</mml:mn></mml:mtd><mml:mtd><mml:mo>-</mml:mo><mml:mn>0.1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0.1</mml:mn></mml:mtd><mml:mtd><mml:mn>0.2</mml:mn></mml:mtd><mml:mtd><mml:mn>0.4</mml:mn></mml:mtd><mml:mtd><mml:mn>0.8</mml:mn></mml:mtd><mml:mtd><mml:mn>1.6</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>*</mml:mo><mml:mn>11</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>. The width of the Gaussian basis function <italic>b</italic><sub><italic>v</italic></sub> &#x0003D; 0.1, <italic>i</italic> &#x0003D; 1&#x022EF;11.</p>
<p>Based on the above discussion, the proposed framework for the AFTC is shown in <xref ref-type="fig" rid="F6">Figure 6</xref>.</p>
<fig id="F6" position="float">
<label>Figure 6</label>
<caption><p>AFTC framework.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1219170-g0006.tif"/>
</fig></sec></sec>
<sec id="s4">
<title>4. Simulation results</title>
<p>In the section entitled &#x0201C;HDSA&#x00027;s Related Work&#x0201D;, we have demonstrated the advantages of the proposed HDSA; therefore, in this section, the HDSA is used to optimize the sliding mode surface parameters of the yaw controller and the linear velocity controller. As the weight update parameters of the RBFNNs are related to the sliding mode parameters, this also indirectly optimizes the RBFNNs.</p>
<p>The parameters to be optimized for yaw angle control are the sliding mode surface coefficients &#x003B1;<sub><italic>&#x003C9;</italic></sub>, &#x003B2;<sub><italic>&#x003C9;</italic></sub> and the neural network update coefficient &#x00393;<sub><italic>&#x003C9;</italic></sub>. According to the idea of AFTC, the presence of &#x02212;3<italic>N</italic>.<italic>m</italic> of disturbance torque in the robot model simulates the worst case. The initialized optimization algorithm parameters are as follows: dimension is 3, the number of populations is 20, the number of max iterations is 10, and the upper limit of parameters is 20 and the lower limit is &#x02212;20.</p>
<p>The evaluation function of the yaw controller is designed as <italic>f</italic><sub><italic>obj</italic></sub> &#x0003D; 0.8&#x0002A;|<italic>e</italic><sub><italic>&#x003C8;</italic></sub>| &#x0002B; 0.1&#x0002A;|<italic>e</italic><sub><italic>&#x003C9;</italic></sub>| &#x0002B; 0.01&#x0002A;|<italic>T</italic><sub><italic>rc</italic></sub>|. For yaw control, we want to reduce both the yaw error and the yaw velocity error with the smallest control input. As the control objective is to eliminate the yaw error, the yaw error is given the largest weight in the evaluation function. To keep the control input and yaw error in the same order, the control input weight is reduced. The optimization parameters for the yaw controller are shown in <xref ref-type="fig" rid="F7">Figure 7</xref>.</p>
<fig id="F7" position="float">
<label>Figure 7</label>
<caption><p>Yaw control parameter optimization and fitness of the yaw controller objective function. <bold>(A)</bold> The optimized parameters of yaw controller. <bold>(B)</bold> The objective function output value.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1219170-g0007.tif"/>
</fig>
<p>As shown in <xref ref-type="fig" rid="F7">Figure 7</xref>, the optimized parameters converge after eight iterations. The values of &#x00393;<sub><italic>&#x003C9;</italic></sub> &#x0003D; 20, &#x003B1;<sub><italic>&#x003C9;</italic></sub> &#x0003D; 7.4407, and &#x003B2;<sub><italic>&#x003C9;</italic></sub> &#x0003D; 2.9369 are obtained through the optimization process.</p>
<p>The optimized parameters are substituted into the AFTC and the control results are compared with the unoptimized AFTC, NTSMC, and SMC. Before 10 s, the yaw angle is influenced by a torque with a mean value of &#x02212;1<italic>N</italic>.<italic>m</italic> and a mean square error of 0.1. After 10 s, the yaw angle is influenced by a torque with a mean value of &#x02212;3<italic>N</italic>.<italic>m</italic> and a mean square error of 0.1. The control parameters are given in <xref ref-type="table" rid="T3">Table 3</xref>.</p>
<table-wrap position="float" id="T3">
<label>Table 3</label>
<caption><p>Parameters of yaw angle controllers.</p></caption> 
<table frame="box" rules="all">
<thead>
<tr style="background-color:&#x00023;919498;color:&#x00023;ffffff">
<th valign="top" align="left"><bold>Controllers</bold></th>
<th valign="top" align="center"><bold>Parameters</bold></th>
<th valign="top" align="center"><bold>Value</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Proposed AFTC</td>
<td valign="top" align="center"><italic>k</italic><sub>1<italic>&#x003C8;</italic></sub></td>
<td valign="top" align="center">2</td>
</tr> <tr>
<td/>
<td valign="top" align="center">&#x003B1;<sub><italic>&#x003C9;</italic></sub>, &#x003B2;<sub><italic>&#x003C9;</italic></sub>, &#x003BB;<sub><italic>&#x003C9;</italic></sub></td>
<td valign="top" align="center">1, 2, 3</td>
</tr> <tr>
<td/>
<td valign="top" align="center"><italic>k</italic><sub>2<italic>&#x003C9;</italic></sub>, <italic>k</italic><sub>3<italic>&#x003C9;</italic></sub>, &#x003B3;<sub><italic>&#x003C9;</italic></sub></td>
<td valign="top" align="center">1, 5, 0.5</td>
</tr> <tr>
<td/>
<td valign="top" align="center"><italic>k</italic><sub>4<italic>&#x003C9;</italic></sub></td>
<td valign="top" align="center">5</td>
</tr> <tr>
<td/>
<td valign="top" align="center">&#x00393;<sub><italic>&#x003C9;</italic></sub></td>
<td valign="top" align="center">10</td>
</tr> <tr>
<td valign="top" align="left">NTSMC</td>
<td valign="top" align="center"><italic>k</italic><sub>1<italic>&#x003C8;</italic></sub></td>
<td valign="top" align="center">2</td>
</tr> <tr>
<td/>
<td valign="top" align="center">&#x003B1;<sub><italic>&#x003C9;</italic></sub>, &#x003B2;<sub><italic>&#x003C9;</italic></sub>, &#x003BB;<sub><italic>&#x003C9;</italic></sub></td>
<td valign="top" align="center">1, 2, 3</td>
</tr> <tr>
<td/>
<td valign="top" align="center"><italic>k</italic><sub>2<italic>&#x003C9;</italic></sub>, <italic>k</italic><sub>3<italic>&#x003C9;</italic></sub>, &#x003B3;<sub><italic>&#x003C9;</italic></sub></td>
<td valign="top" align="center">5, 20, 0.5</td>
</tr> <tr>
<td valign="top" align="left">SMC</td>
<td valign="top" align="center"><italic>k</italic><sub>1<italic>&#x003C8;</italic></sub></td>
<td valign="top" align="center">2</td>
</tr>
<tr>
<td/>
<td valign="top" align="center"><italic>k</italic><sub>2<italic>&#x003C9;</italic></sub>, <italic>k</italic><sub>3<italic>&#x003C9;</italic></sub></td>
<td valign="top" align="center">5, 5</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The results of the yaw angle controller are shown in <xref ref-type="fig" rid="F8">Figure 8</xref>.</p>
<fig id="F8" position="float">
<label>Figure 8</label>
<caption><p><bold>(A)</bold> The yaw angle control results. <bold>(B)</bold> Control input torque. <bold>(C)</bold> Yaw angle RBFNN output value. <bold>(D)</bold> Yaw angle RBFNN weight.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1219170-g0008.tif"/>
</fig>
<p>In <xref ref-type="fig" rid="F8">Figure 8A</xref>, the optimized AFTC has a significantly faster response speed (pink line). Despite being influenced by a &#x02212;1 <italic>N</italic>.<italic>m</italic> torque disturbance in the range of 0&#x02013;10 s, the AFTC, NTSMC (green line), and SMC (red line) maintain their robustness and are not affected by the disturbance. After 10 s, the yaw angle is subjected to a torque of &#x02212;3<italic>N</italic>.<italic>m</italic>, in which case reliance on the robustness of the controller can no longer guarantee yaw angle control performance, as shown in the 10&#x02013;11 s enlargement in <xref ref-type="fig" rid="F8">Figure 8A</xref>. The SMC is unable to follow the desired yaw angle with a static error of &#x0007E;0.05 <italic>rad</italic>, and the NTSMC also has a small static difference.</p>
<p>As shown in <xref ref-type="fig" rid="F8">Figure 8B</xref>, the proposed AFTC (pink line) and the optimized AFTC (orange line) do not enter the driver saturation state. The NTSMC (purple line) and the SMC (green line) enter the driver saturation state. Compared with the conventional SMC (green line) and NTSMC (purple line) control inputs, which have high-frequency input chatter, the control input of the proposed AFTC is more stable. This suggests that the robustness achieved by the conventional SMC comes at the expense of control input performance. In <xref ref-type="fig" rid="F8">Figure 8C</xref>, the output of the radial basis function neural network (RBFNN) is displayed, showing a value of 1 before 10 s and 3 after 10 s. The RBFNN can estimate the unknown yaw disturbances online. The RBFNN weights are updated accordingly, as shown in <xref ref-type="fig" rid="F8">Figure 8</xref>.</p>
<p>The parameters to be optimized for the velocity controller are the sliding mode surface coefficients &#x003B1;<sub><italic>v</italic></sub> and &#x003B2;<sub><italic>v</italic></sub> and the neural network update coefficients &#x00393;<sub><italic>v</italic></sub>. The presence of &#x02212;5<italic>N</italic> force in the robot model simulates the worst case. The initialized optimization algorithm parameters are as follows: the dimension is 3, the number of populations is 20, the number of maximum iterations is 10, and the upper limit of parameters 20 and the lower limit is 20.</p>
<p>The evaluation function is designed as <italic>f</italic><sub><italic>obj</italic></sub> &#x0003D; 0.8&#x0002A;|<italic>e</italic><sub><italic>v</italic></sub>| &#x0002B; 0.02&#x0002A;|<italic>F</italic><sub><italic>uc</italic></sub>|. When controlling the linear velocity, we want to minimize the linear velocity error with the smallest control input. Therefore, the linear velocity error has the largest weight in the evaluation function. The weight of the control input is reduced to keep the control input and the linear velocity error at the same level. The linear velocity controller optimization parameters are shown in <xref ref-type="fig" rid="F9">Figure 9</xref>.</p>
<fig id="F9" position="float">
<label>Figure 9</label>
<caption><p>Velocity control parameter optimization and fitness of the velocity controller objective function. <bold>(A)</bold> The optimized parameters of velocity controller. <bold>(B)</bold> The objective function output value.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1219170-g0009.tif"/>
</fig>
<p>As shown in <xref ref-type="fig" rid="F9">Figure 9</xref>, the optimization parameters converge after two iterations. The optimized parameters are &#x00393;<sub><italic>v</italic></sub> &#x0003D; 15.6467, &#x003B1;<sub><italic>v</italic></sub> &#x0003D; 16.1866, and &#x003B2;<sub><italic>v</italic></sub> &#x0003D; 20.</p>
<p>These parameters are used in the proposed AFTC, and the control results are compared and analyzed with the unoptimized AFTC, NTSMC, and SMC controllers. Before 10 s, the linear velocity is affected by a force with a mean value of &#x02212;2<italic>N</italic> and a mean square error of 0.1. After 10 s, the velocity is influenced by a force with a mean value of &#x02212;5<italic>N</italic> and a mean square error of 0.1. The velocity controller parameters are given in <xref ref-type="table" rid="T4">Table 4</xref>.</p>
<table-wrap position="float" id="T4">
<label>Table 4</label>
<caption><p>The parameters of velocity controllers.</p></caption> 
<table frame="box" rules="all">
<thead>
<tr style="background-color:&#x00023;919498;color:&#x00023;ffffff">
<th valign="top" align="left"><bold>Controllers</bold></th>
<th valign="top" align="center"><bold>Parameters</bold></th>
<th valign="top" align="center"><bold>Value</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Proposed AFTC</td>
<td valign="top" align="center">&#x003B1;<sub><italic>v</italic></sub>, &#x003B2;<sub><italic>v</italic></sub>, &#x003BB;<sub><italic>v</italic></sub></td>
<td valign="top" align="center">1, 2, 3</td>
</tr> <tr>
<td/>
<td valign="top" align="center"><italic>k</italic><sub>2<italic>v</italic></sub>, <italic>k</italic><sub>3<italic>v</italic></sub>, &#x003B3;<sub><italic>v</italic></sub></td>
<td valign="top" align="center">1, 5, 0.5</td>
</tr> <tr>
<td/>
<td valign="top" align="center"><italic>k</italic><sub>4<italic>v</italic></sub></td>
<td valign="top" align="center">5</td>
</tr> <tr>
<td/>
<td valign="top" align="center">&#x00393;<sub><italic>v</italic></sub></td>
<td valign="top" align="center">10</td>
</tr> <tr>
<td valign="top" align="left">NTSMC</td>
<td valign="top" align="center">&#x003B1;<sub><italic>v</italic></sub>, &#x003B2;<sub><italic>v</italic></sub>, &#x003BB;<sub><italic>v</italic></sub></td>
<td valign="top" align="center">1, 2, 3</td>
</tr> <tr>
<td/>
<td valign="top" align="center"><italic>k</italic><sub>2<italic>v</italic></sub>, <italic>k</italic><sub>3<italic>v</italic></sub>, &#x003B3;<sub><italic>v</italic></sub></td>
<td valign="top" align="center">5, 20, 0.5</td>
</tr>
<tr>
<td valign="top" align="left">SMC</td>
<td valign="top" align="center"><italic>k</italic><sub>2<italic>v</italic></sub>, <italic>k</italic><sub>3<italic>v</italic></sub></td>
<td valign="top" align="center">5, 5</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The control results of linear velocity controllers are shown in <xref ref-type="fig" rid="F10">Figure 10</xref>.</p>
<fig id="F10" position="float">
<label>Figure 10</label>
<caption><p>Linear velocity control results. <bold>(A)</bold> Velocity control results. <bold>(B)</bold> Control input force. <bold>(C)</bold> Velocity RBFNN output value. <bold>(D)</bold> Velocity RBFNN weight.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1219170-g0010.tif"/>
</fig>
<p>Similar to the performance of the yaw control, in <xref ref-type="fig" rid="F10">Figure 10A</xref>, the optimized AFTC (pink line) responds faster compared with the proposed AFTC (purple line) and SMC (red line). Between 0 and 10 s, when the line speed is subjected to -2<italic>N</italic> force, AFTC (purple line), NTSMC (green line), and SMC (red line) are not affected by the disturbances. After 10 s, the linear velocity is subjected to a force of &#x02212;5<italic>N</italic> and the velocity control performance cannot be guaranteed by the NTSMC and SMC. There is a static error of &#x0007E;0.05<italic>m</italic>/<italic>s</italic> for the NTSMC and &#x0007E;0.6<italic>m</italic>/<italic>s</italic> for the SMC, as shown in the 9&#x02013;12 s enlargement in <xref ref-type="fig" rid="F10">Figure 10A</xref>. Both the proposed AFTC and the optimized AFTC can follow the desired linear velocity, and the velocity controller is almost unaffected by the &#x02212;5<italic>N</italic> force using the optimized parameters. The proposed AFTC and the optimized AFTC can effectively track the desired linear velocity, with minimal impact from the &#x02212;5<italic>N</italic> force disturbance. The velocity controller of the AFTC is almost unaffected by the disturbance, indicating its robustness and ability to maintain precise control performance.</p>
<p>The previous discussion has highlighted the improved responsiveness and robustness of the optimized AFTC. To further emphasize the advantages of the optimized AFTC, the output value of the evaluation function is used as a criterion to evaluate the performance of the four controllers. A smaller output value of the evaluation function indicates better controller performance. The output values of the evaluation functions for the four controllers are depicted in <xref ref-type="fig" rid="F11">Figure 11</xref>.</p>
<fig id="F11" position="float">
<label>Figure 11</label>
<caption><p>Four control evaluation function outputs. <bold>(A)</bold> Yaw angle evaluation function outputs. <bold>(B)</bold> Velocity evaluation function outputs.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1219170-g0011.tif"/>
</fig>
<p>As shown by the green lines in <xref ref-type="fig" rid="F12">Figures 12A</xref>, <xref ref-type="fig" rid="F12">B</xref>, the optimized AFTC controller exhibits the smallest value of the evaluation function. This signifies that the optimized AFTC achieves the best performance among the four controllers. As the linear velocity and yaw angle are consistently subjected to external disturbances, the output value of the evaluation function continually increases. This is because of the fact that the control inputs are not equal to zero. In the case of large external disturbances, the NTSMC and SMC controllers can no longer eliminate the yaw angle error and the linear velocity error. Consequently, the output value of the evaluation function rapidly increases, as indicated by the red and blue lines.</p>
<fig id="F12" position="float">
<label>Figure 12</label>
<caption><p>The robot tracks the desired trajectory. <bold>(A)</bold> Tracking the circle desired trajectory. <bold>(B)</bold> X-position control. <bold>(C)</bold> Yaw angle control. <bold>(D)</bold> Y-position control.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1219170-g0012.tif"/>
</fig>
<p>To further verify the effectiveness of the proposed algorithm, the AFTC is used to design the yaw angle controller and the velocity controller. The desired yaw angle and the desired linear velocity is planned by the LOS algorithm. The optimized parameters are selected as the controller&#x00027;s parameters. The LOS algorithm and the improved LOS algorithm can be found in the author&#x00027;s previous work (Wang et al., <xref ref-type="bibr" rid="B29">2022b</xref>). The desired trajectory is a circular trajectory with radius <italic>R</italic> &#x0003D; 1<italic>m</italic>, angular velocity <italic>&#x003C9;</italic><sub><italic>r</italic></sub> &#x0003D; 0.5<italic>rad</italic>/<italic>s</italic>, and linear velocity <italic>v</italic><sub><italic>r</italic></sub> &#x0003D; 0.5<italic>m</italic>/<italic>s</italic>. The initial position and pose of the robot is [0m, 0.5m, 0rad]. A drag force of &#x02212;2<italic>N</italic> and a torque of &#x02212;1<italic>N</italic>.<italic>m</italic> are applied to the robot. The LOS algorithm is</p>
<disp-formula id="E47"><label>(41)</label><mml:math id="M124"><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msub><mml:mi>&#x003C8;</mml:mi><mml:mi>L</mml:mi></mml:msub><mml:mtext>=</mml:mtext><mml:msub><mml:mi>&#x003C8;</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mi>&#x003B1;</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mi>&#x003B1;</mml:mi><mml:mo>=</mml:mo><mml:mi>arctan</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:mtext>&#x00394;</mml:mtext><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi>L</mml:mi></mml:msub><mml:mtext>=</mml:mtext><mml:msub><mml:mi>v</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi>k</mml:mi><mml:msub><mml:mi>e</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>
<p>where <italic>&#x003C8;</italic><sub><italic>L</italic></sub>, <italic>v</italic><sub><italic>L</italic></sub> are the desired yaw angle and desired linear velocity planned by the LOS algorithm. <italic>e</italic><sub><italic>x</italic></sub>, <italic>e</italic><sub><italic>y</italic></sub> is the position error in Frenet-Serret (F-S) frame. &#x00394; and <italic>k</italic> are the positive adjustable parameters.</p>
<p>The control results of the robot tracking the desired circle trajectory are shown as <xref ref-type="fig" rid="F12">Figures 12</xref>&#x02013;<xref ref-type="fig" rid="F14">14</xref>. The robot position control and yaw angle control are shown in <xref ref-type="fig" rid="F12">Figure 12</xref>.</p>
<p>The robot can track the desired trajectory. The actual position pose of the robot is consistent with the desired position pose. The linear velocity control and angular velocity control are shown in <xref ref-type="fig" rid="F13">Figure 13</xref>.</p>
<fig id="F13" position="float">
<label>Figure 13</label>
<caption><p>The control results of linear velocity and yaw angular velocity. <bold>(A)</bold> Linear velocity control. <bold>(B)</bold> Yaw angle velocity control.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1219170-g0013.tif"/>
</fig>
<p>In <xref ref-type="fig" rid="F13">Figure 13A</xref>, the linear velocity can track the desired linear velocity of 0.5<italic>m</italic>/<italic>s</italic>. In <xref ref-type="fig" rid="F13">Figure 13B</xref>, the angular velocity can track the desired angular velocity of &#x02212;0.5<italic>rad</italic>/<italic>s</italic>. <xref ref-type="fig" rid="F14">Figure 14</xref> shows the linear velocity control input and yaw angle velocity control input.</p>
<fig id="F14" position="float">
<label>Figure 14</label>
<caption><p>The linear velocity control input and yaw angular velocity control input. <bold>(A)</bold> Control input force. <bold>(B)</bold> Control input torque.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-17-1219170-g0014.tif"/>
</fig>
<p>In <xref ref-type="fig" rid="F14">Figures 14A</xref>, <xref ref-type="fig" rid="F14">B</xref>, the &#x02212;2<italic>N</italic> force and &#x02212;1<italic>N</italic>.<italic>m</italic> torque are applied to the robot. So the control inputs are 2<italic>N</italic> and 1<italic>N</italic>.<italic>m</italic> to counteract the effect of the external force and torque on the robot.</p>
<p>The test functions for swarm intelligence optimization algorithms are shown in <xref ref-type="table" rid="T5">Tables 5</xref>&#x02013;<xref ref-type="table" rid="T7">7</xref>.</p>
<table-wrap position="float" id="T5">
<label>Table 5</label>
<caption><p>The single-peak test functions.</p></caption> 
<table frame="box" rules="all">
<thead>
<tr style="background-color:&#x00023;919498;color:&#x00023;ffffff">
<th valign="top" align="left"><bold>Function</bold></th>
<th valign="top" align="center"><bold>Initial range</bold></th>
<th valign="top" align="center"><bold>Fmin</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left"><inline-formula><mml:math id="M125"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>30</mml:mn></mml:mrow></mml:munderover><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula></td>
<td valign="top" align="center">&#x02212;100 &#x02264; <italic>x</italic><sub><italic>i</italic></sub> &#x02264; 100</td>
<td valign="top" align="center">0</td>
</tr> <tr>
<td valign="top" align="left"><inline-formula><mml:math id="M126"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">2</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>30</mml:mn></mml:mrow></mml:munderover><mml:mo>|</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo><mml:mo>&#x0002B;</mml:mo><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>30</mml:mn></mml:mrow></mml:munderover><mml:mo>|</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:math></inline-formula></td>
<td valign="top" align="center">&#x02212;10 &#x02264; <italic>x</italic><sub><italic>i</italic></sub> &#x02264; 10</td>
<td valign="top" align="center">0</td>
</tr> <tr>
<td valign="top" align="left"><inline-formula><mml:math id="M127"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">3</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>30</mml:mn></mml:mrow></mml:munderover><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:munderover><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula></td>
<td valign="top" align="center">&#x02212;100 &#x02264; <italic>x</italic><sub><italic>i</italic></sub> &#x02264; 100</td>
<td valign="top" align="center">0</td>
</tr> <tr>
<td valign="top" align="left"><italic>f</italic><sub>4</sub>(<italic>x</italic>) &#x0003D; max<sub><italic>i</italic></sub>{|<italic>x</italic><sub><italic>i</italic></sub>|1 &#x02264; <italic>i</italic> &#x02264; 30}</td>
<td valign="top" align="center">&#x02212;100 &#x02264; <italic>x</italic><sub><italic>i</italic></sub> &#x02264; 100</td>
<td valign="top" align="center">0</td>
</tr> <tr>
<td valign="top" align="left"><inline-formula><mml:math id="M128"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">5</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>29</mml:mn></mml:mrow></mml:munderover><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mn>100</mml:mn><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td valign="top" align="center">&#x02212;30 &#x02264; <italic>x</italic><sub><italic>i</italic></sub> &#x02264; 30</td>
<td valign="top" align="center">0</td>
</tr> <tr>
<td valign="top" align="left"><inline-formula><mml:math id="M129"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mn>6</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>29</mml:mn></mml:mrow></mml:munderover><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>5</mml:mn><mml:mo>|</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula></td>
<td valign="top" align="center">&#x02212;100 &#x02264; <italic>x</italic><sub><italic>i</italic></sub> &#x02264; 100</td>
<td valign="top" align="center">0</td>
</tr> <tr>
<td valign="top" align="left"><inline-formula><mml:math id="M130"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mn>7</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>30</mml:mn></mml:mrow></mml:munderover><mml:mi>i</mml:mi><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msubsup><mml:mo>&#x0002B;</mml:mo><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>d</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td valign="top" align="center">&#x02212;1.28 &#x02264; <italic>x</italic><sub><italic>i</italic></sub> &#x02264; 1.28</td>
<td valign="top" align="center">0</td>
</tr></tbody>
</table>
</table-wrap>
<table-wrap position="float" id="T6">
<label>Table 6</label>
<caption><p>The multi-peak test functions.</p></caption> 
<table frame="box" rules="all">
<thead>
<tr style="background-color:&#x00023;919498;color:&#x00023;ffffff">
<th valign="top" align="left"><bold>Function</bold></th>
<th valign="top" align="center"><bold>Initial range</bold></th>
<th valign="top" align="center"><bold>Fmin</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left"><inline-formula><mml:math id="M131"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">8</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>30</mml:mn></mml:mrow></mml:munderover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo class="qopname">sin</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msqrt><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow></mml:msqrt></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td valign="top" align="center">&#x02212;500 &#x02264; <italic>x</italic><sub><italic>i</italic></sub> &#x02264; 500</td>
<td valign="top" align="center">&#x02212;12569.5</td>
</tr> <tr>
<td valign="top" align="left"><inline-formula><mml:math id="M132"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mn>9</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>30</mml:mn></mml:mrow></mml:munderover><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:mn>10</mml:mn><mml:mo class="qopname">cos</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:mi>&#x003C0;</mml:mi><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>10</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td valign="top" align="center">&#x02212;5.12 &#x02264; <italic>x</italic><sub><italic>i</italic></sub> &#x02264; 5.12</td>
<td valign="top" align="center">0</td>
</tr> <tr>
<td valign="top" align="left"><inline-formula><mml:math id="M133"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">10</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mn>20</mml:mn><mml:mi>e</mml:mi><mml:mi>x</mml:mi><mml:msup><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mn>0.2</mml:mn><mml:msqrt><mml:mrow><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>30</mml:mn></mml:mrow></mml:mfrac><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>30</mml:mn></mml:mrow></mml:munderover><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:msqrt></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:mi>e</mml:mi><mml:mi>x</mml:mi><mml:msup><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>30</mml:mn></mml:mrow></mml:mfrac><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>30</mml:mn></mml:mrow></mml:munderover><mml:mo class="qopname">cos</mml:mo><mml:mn>2</mml:mn><mml:mi>&#x003C0;</mml:mi><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:mn>20</mml:mn><mml:mo>&#x0002B;</mml:mo><mml:mi>c</mml:mi></mml:math></inline-formula></td>
<td valign="top" align="center">&#x02212;100 &#x02264; <italic>x</italic><sub><italic>i</italic></sub> &#x02264; 100</td>
<td valign="top" align="center">0</td>
</tr> <tr>
<td valign="top" align="left"><inline-formula><mml:math id="M134"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>4000</mml:mn></mml:mrow></mml:mfrac><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>30</mml:mn></mml:mrow></mml:munderover><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>30</mml:mn></mml:mrow></mml:munderover><mml:mo class="qopname">cos</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msqrt><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msqrt></mml:mrow></mml:mfrac></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula></td>
<td valign="top" align="center">&#x02212;600 &#x02264; <italic>x</italic><sub><italic>i</italic></sub> &#x02264; 600</td>
<td valign="top" align="center">0</td>
</tr> <tr>
<td valign="top" align="left"><inline-formula><mml:math id="M135"><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mn>12</mml:mn></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mi>&#x003C0;</mml:mi><mml:mrow><mml:mn>30</mml:mn></mml:mrow></mml:mfrac><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>100</mml:mn><mml:msup><mml:mrow><mml:mi>sin</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>&#x003C0;</mml:mi><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>29</mml:mn></mml:mrow></mml:munderover><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo>&#x000D7;</mml:mo></mml:mrow></mml:mstyle></mml:mrow></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>+</mml:mo><mml:mn>10</mml:mn><mml:msup><mml:mrow><mml:mi>sin</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>&#x003C0;</mml:mi><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mtext>+</mml:mtext><mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mtext>+</mml:mtext><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mtext>30</mml:mtext></mml:mrow></mml:munderover><mml:mrow><mml:mi>u</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mn>10</mml:mn><mml:mo>,</mml:mo><mml:mn>100</mml:mn><mml:mo>,</mml:mo><mml:mn>4</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mstyle></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></inline-formula></td>
<td valign="top" align="center">&#x02212;50 &#x02264; <italic>x</italic><sub><italic>i</italic></sub> &#x02264; 50</td>
<td valign="top" align="center">0</td>
</tr> <tr>
<td valign="top" align="left"><inline-formula><mml:math id="M136"><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mtext>13</mml:mtext></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:mn>0.1</mml:mn><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>sin</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>&#x003C0;</mml:mi><mml:mn>3</mml:mn><mml:msub><mml:mi>x</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>29</mml:mn></mml:mrow></mml:munderover><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>sin</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>3</mml:mn><mml:mi>&#x003C0;</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow></mml:mstyle></mml:mrow></mml:mrow><mml:mtext>+</mml:mtext></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>+</mml:mo><mml:msup><mml:mrow><mml:mi>sin</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:mi>&#x003C0;</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>30</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>30</mml:mn></mml:mrow></mml:munderover><mml:mrow><mml:mi>u</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mn>5</mml:mn><mml:mo>,</mml:mo><mml:mn>100</mml:mn><mml:mo>,</mml:mo><mml:mn>4</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mstyle></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></inline-formula></td>
<td valign="top" align="center">&#x02212;50 &#x02264; <italic>x</italic><sub><italic>i</italic></sub> &#x02264; 50</td>
<td valign="top" align="center">0</td>
</tr></tbody>
</table>
</table-wrap>
<table-wrap position="float" id="T7">
<label>Table 7</label>
<caption><p>The fixed-dimensional multi-peak test functions.</p></caption> 
<table frame="box" rules="all">
<thead>
<tr style="background-color:&#x00023;919498;color:&#x00023;ffffff">
<th valign="top" align="left"><bold>Function</bold></th>
<th valign="top" align="center"><bold>Initial range</bold></th>
<th valign="top" align="center"><bold>Fmin</bold></th>
</tr>
<tr style="background-color:&#x00023;919498;color:&#x00023;ffffff">
<td valign="top" align="left"><inline-formula><mml:math id="M137"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">14</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">1</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">500</mml:mtext></mml:mstyle></mml:mrow></mml:mfrac><mml:mstyle class="text"><mml:mo>&#x0002B;</mml:mo></mml:mstyle><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>25</mml:mn></mml:mrow></mml:munderover><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:munderover><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>6</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula></td>
<td valign="top" align="center">&#x02212;65.536 &#x02264; <italic>x</italic><sub><italic>i</italic></sub> &#x02264; 65.536</td>
<td valign="top" align="center">1</td>
</tr> 
</thead>
<tbody>
<tr>
<td valign="top" align="left"><inline-formula><mml:math id="M138"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mn>15</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:munderover><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msubsup><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td valign="top" align="center">&#x02212;5 &#x02264; <italic>x</italic><sub><italic>i</italic></sub> &#x02264; 5</td>
<td valign="top" align="center">0.0003075</td>
</tr> <tr>
<td valign="top" align="left"><inline-formula><mml:math id="M139"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">16</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">4</mml:mtext></mml:mstyle><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:mn>2</mml:mn><mml:mo>.</mml:mo><mml:mn>1</mml:mn><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:mfrac><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>6</mml:mn></mml:mrow></mml:msubsup><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mn>4</mml:mn><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>&#x0002B;</mml:mo><mml:mn>4</mml:mn><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula></td>
<td valign="top" align="center">&#x02212;5 &#x02264; <italic>x</italic><sub><italic>i</italic></sub> &#x02264; 5</td>
<td valign="top" align="center">&#x02212;1.0316</td>
</tr>
<tr>
<td valign="top" align="left"><inline-formula><mml:math id="M140"><mml:mtable style="text-align:axis;" equalrows="false" columnlines="false" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mn>17</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mn>5</mml:mn><mml:mo>.</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>4</mml:mn><mml:msup><mml:mrow><mml:mi>&#x003C0;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mfrac><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>&#x0002B;</mml:mo><mml:mfrac><mml:mrow><mml:mn>5</mml:mn></mml:mrow><mml:mrow><mml:mi>&#x003C0;</mml:mi></mml:mrow></mml:mfrac><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mn>6</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>&#x0002B;</mml:mo><mml:mn>10</mml:mn><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>8</mml:mn><mml:mi>&#x003C0;</mml:mi></mml:mrow></mml:mfrac></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo class="qopname">cos</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>10</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></inline-formula></td>
<td valign="top" align="center"><inline-formula><mml:math id="M141"><mml:mtable style="text-align:axis;" equalrows="false" columnlines="false" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mo>-</mml:mo><mml:mn>5</mml:mn><mml:mo>&#x02264;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02264;</mml:mo><mml:mn>10</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn><mml:mo>&#x02264;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">2</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mo>&#x02264;</mml:mo><mml:mn>15</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></inline-formula></td>
<td valign="top" align="center">0.398</td>
</tr> <tr>
<td valign="top" align="left"><inline-formula><mml:math id="M142"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mn>18</mml:mn></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>+</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mrow><mml:mo>&#x000D7;</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>19</mml:mn><mml:mo>&#x02212;</mml:mo><mml:mn>14</mml:mn><mml:msub><mml:mi>x</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:msubsup><mml:mi>x</mml:mi><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:msubsup><mml:mo>&#x02212;</mml:mo><mml:mn>14</mml:mn><mml:msub><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn>6</mml:mn><mml:msub><mml:mi>x</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:msub><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:msubsup><mml:mi>x</mml:mi><mml:mn>2</mml:mn><mml:mn>2</mml:mn></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x000D7;</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mn>30</mml:mn><mml:mo>+</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:msub><mml:mi>x</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mn>3</mml:mn><mml:msub><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo>&#x000D7;</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>18</mml:mn><mml:mo>&#x02212;</mml:mo><mml:mn>32</mml:mn><mml:msub><mml:mi>x</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>+12</mml:mtext><mml:msubsup><mml:mi>x</mml:mi><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:mn>48</mml:mn><mml:msub><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mn>36</mml:mn><mml:msub><mml:mi>x</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:msub><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn>27</mml:mn><mml:msubsup><mml:mi>x</mml:mi><mml:mn>2</mml:mn><mml:mn>2</mml:mn></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></inline-formula></td>
<td valign="top" align="center">&#x02212;2 &#x02264; <italic>x</italic><sub><italic>i</italic></sub> &#x02264; 2</td>
<td valign="top" align="center">3</td>
</tr> <tr>
<td valign="top" align="left"><inline-formula><mml:math id="M143"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">19</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:munderover><mml:mo class="qopname">exp</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo class="qopname">&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:munderover><mml:msub><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td valign="top" align="center">0 &#x02264; <italic>x</italic><sub><italic>i</italic></sub> &#x02264; 1</td>
<td valign="top" align="center">&#x02212;3.86</td>
</tr>
<tr>
<td valign="top" align="left"><inline-formula><mml:math id="M144"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mn>20</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:munderover><mml:mo class="qopname">exp</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo class="qopname">&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:munderover><mml:msub><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td valign="top" align="center">0 &#x02264; <italic>x</italic><sub><italic>i</italic></sub> &#x02264; 1</td>
<td valign="top" align="center">&#x02212;3.32</td>
</tr>
</tbody>
</table>
</table-wrap></sec>
<sec sec-type="conclusions" id="s5">
<title>5. Conclusion</title>
<p>This paper proposes an RBFNN-based anti-input saturation AFTC to solve the problem of degraded control performance of the CDR during movement on the water surface caused by drive faults, uncertain water resistance, and uncertain model parameters. The AFTC incorporates a fast NTSMC, which ensures the robustness of the robot against external disturbances and the effects of uncertain model parameters. The RBFNN is used to estimate drive faults and compensate for the controller output. Additionally, an anti-input saturation control algorithm is introduced to prevent controller input saturation. Furthermore, the traditional approach of manually tuning controller parameters based on the designer&#x00027;s experience and iterative debugging is replaced with an optimization method called HDSA. The HDSA algorithm optimizes the controller parameters to ensure the optimal control performance of the robot.</p>
<p>In further work, adaptive algorithms are necessary for the adjustment of the upper limit of the maximum control input to the robot on the ground and on the water surface.</p></sec>
<sec sec-type="data-availability" id="s6">
<title>Data availability statement</title>
<p>The original contributions presented in the study are included in the article/supplementary material, further inquiries can be directed to the corresponding author.</p></sec>
<sec sec-type="author-contributions" id="s7">
<title>Author contributions</title>
<p>KW implementation and execution of the theory research and experiment and writing of the manuscript. YL theoretical support on the idea and helped write the manuscript. CH preliminary work and revising the manuscript. All authors actively contributed to the preparation of the content of this paper.</p></sec>
</body>
<back>
<sec sec-type="funding-information" id="s8">
<title>Funding</title>
<p>This work was supported in part by the Sharing Technology Project (41412040102), the China National Science Foundation (61473155), the Jiangsu Technology Department under Modern Agriculture (BE2017301), and the Six Talent Peaks Project in Jiangsu Province (GDZB-039).</p>
</sec>
<ack><p>We thank the editors and reviewers of the journal.</p>
</ack>
<sec sec-type="COI-statement" id="conf1">
<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="s9">
<title>Publisher&#x00027;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>


<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ali</surname> <given-names>N.</given-names></name> <name><surname>Tawiah</surname> <given-names>I.</given-names></name> <name><surname>Zhang</surname> <given-names>W.</given-names></name></person-group> (<year>2020</year>). <article-title>Finite-time extended state observer based nonsingular fast terminal sliding mode control of autonomous underwater vehicles</article-title>. <source>Ocean Eng</source>. <volume>218</volume>, <fpage>108179</fpage>. <pub-id pub-id-type="doi">10.1016/j.oceaneng.2020.108179</pub-id></citation>
</ref>
<ref id="B2">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chen</surname> <given-names>G.</given-names></name> <name><surname>Tu</surname> <given-names>J.</given-names></name> <name><surname>Ti</surname> <given-names>X.</given-names></name> <name><surname>Wang</surname> <given-names>Z.</given-names></name> <name><surname>Hu</surname> <given-names>H.</given-names></name></person-group> (<year>2021</year>). <article-title>Hydrodynamic model of the beaver-like bendable webbed foot and paddling characteristics under different flow velocities</article-title>. <source>Ocean Eng</source>. <volume>234</volume>, <fpage>109179</fpage>. <pub-id pub-id-type="doi">10.1016/j.oceaneng.2021.109179</pub-id></citation>
</ref>
<ref id="B3">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chen</surname> <given-names>L.</given-names></name> <name><surname>Cui</surname> <given-names>R.</given-names></name> <name><surname>Yang</surname> <given-names>C.</given-names></name> <name><surname>Yan</surname> <given-names>W.</given-names></name></person-group> (<year>2019</year>). <article-title>Adaptive neural network control of underactuated surface vessels with guaranteed transient performance: theory and experimental results</article-title>. <source>IEEE Transact. Ind. Electron</source>. <volume>67</volume>, <fpage>4024</fpage>&#x02013;<lpage>4035</lpage>. <pub-id pub-id-type="doi">10.1109/TIE.2019.2914631</pub-id></citation>
</ref>
<ref id="B4">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chu</surname> <given-names>R.</given-names></name> <name><surname>Liu</surname> <given-names>Z.</given-names></name> <name><surname>Chu</surname> <given-names>Z.</given-names></name></person-group> (<year>2022</year>). <article-title>Improved super-twisting sliding mode control for ship heading with sideslip angle compensation</article-title>. <source>Ocean Eng</source>. <volume>260</volume>, <fpage>111996</fpage>. <pub-id pub-id-type="doi">10.1016/j.oceaneng.2022.111996</pub-id></citation>
</ref>
<ref id="B5">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Cohen</surname> <given-names>A.</given-names></name> <name><surname>Zarrouk</surname> <given-names>D.</given-names></name></person-group> (<year>2020</year>). <article-title>&#x0201C;The amphistar high speed amphibious sprawl tuned robot: design and experiments,&#x0201D;</article-title> in <source>2020 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)</source> (<publisher-loc>Las Vegas, NV</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>6411</fpage>&#x02013;<lpage>6418</lpage>.</citation>
</ref>
<ref id="B6">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Deng</surname> <given-names>Y.</given-names></name> <name><surname>Zhang</surname> <given-names>X.</given-names></name> <name><surname>Im</surname> <given-names>N.</given-names></name> <name><surname>Zhang</surname> <given-names>G.</given-names></name> <name><surname>Zhang</surname> <given-names>Q.</given-names></name></person-group> (<year>2020</year>). <article-title>Adaptive fuzzy tracking control for underactuated surface vessels with unmodeled dynamics and input saturation</article-title>. <source>ISA Trans</source>. <volume>103</volume>, <fpage>52</fpage>&#x02013;<lpage>62</lpage>. <pub-id pub-id-type="doi">10.1016/j.isatra.2020.04.010</pub-id><pub-id pub-id-type="pmid">32414558</pub-id></citation></ref>
<ref id="B7">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Dorigo</surname> <given-names>M.</given-names></name> <name><surname>Maniezzo</surname> <given-names>V.</given-names></name> <name><surname>Colorni</surname> <given-names>A.</given-names></name></person-group> (<year>1996</year>). <article-title>Ant system: optimization by a colony of cooperating agents</article-title>. <source>IEEE Transact. Syst. Man Cybernet. Part B</source> <volume>26</volume>, <fpage>29</fpage>&#x02013;<lpage>41</lpage>. <pub-id pub-id-type="doi">10.1109/3477.484436</pub-id><pub-id pub-id-type="pmid">18263004</pub-id></citation></ref>
<ref id="B8">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Fister</surname> <given-names>I.</given-names></name> <name><surname>Fister Jr</surname> <given-names>I.</given-names></name> <name><surname>Yang</surname> <given-names>X.-S.</given-names></name> <name><surname>Brest</surname> <given-names>J.</given-names></name></person-group> (<year>2013</year>). <article-title>A comprehensive review of firefly algorithms</article-title>. <source>Swarm Evol. Comput</source>. <volume>13</volume>, <fpage>34</fpage>&#x02013;<lpage>46</lpage>. <pub-id pub-id-type="doi">10.1016/j.swevo.2013.06.001</pub-id><pub-id pub-id-type="pmid">35707203</pub-id></citation></ref>
<ref id="B9">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gao</surname> <given-names>B.</given-names></name> <name><surname>Liu</surname> <given-names>Y.-J.</given-names></name> <name><surname>Liu</surname> <given-names>L.</given-names></name></person-group> (<year>2022</year>). <article-title>Adaptive neural fault-tolerant control of a quadrotor uav via fast terminal sliding mode</article-title>. <source>Aerospace Sci. Technol</source>. 129, 107818. <pub-id pub-id-type="doi">10.1016/j.ast.2022.107818</pub-id></citation>
</ref>
<ref id="B10">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gheisarnejad</surname> <given-names>M.</given-names></name> <name><surname>Khooban</surname> <given-names>M. H.</given-names></name></person-group> (<year>2020</year>). <article-title>An intelligent non-integer pid controller-based deep reinforcement learning: Implementation and experimental results</article-title>. <source>IEEE Transact. Ind. Electron</source>. <volume>68</volume>, <fpage>3609</fpage>&#x02013;<lpage>3618</lpage>. <pub-id pub-id-type="doi">10.1109/TIE.2020.2979561</pub-id></citation>
</ref>
<ref id="B11">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Guo</surname> <given-names>J.</given-names></name> <name><surname>Zhang</surname> <given-names>K.</given-names></name> <name><surname>Guo</surname> <given-names>S.</given-names></name> <name><surname>Li</surname> <given-names>C.</given-names></name> <name><surname>Yang</surname> <given-names>X.</given-names></name></person-group> (<year>2019</year>). <article-title>&#x0201C;Design of a new type of tri-habitat robot,&#x0201D;</article-title> in <source>2019 IEEE International Conference on Mechatronics and Automation (ICMA)</source> (<publisher-loc>Tianjin</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>1508</fpage>&#x02013;<lpage>1513</lpage>.</citation>
</ref>
<ref id="B12">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Guo</surname> <given-names>X.</given-names></name> <name><surname>Huang</surname> <given-names>S.</given-names></name> <name><surname>Lu</surname> <given-names>K.</given-names></name> <name><surname>Peng</surname> <given-names>Y.</given-names></name> <name><surname>Wang</surname> <given-names>H.</given-names></name> <name><surname>Yang</surname> <given-names>J.</given-names></name></person-group> (<year>2022</year>). <article-title>A fast sliding mode speed controller for PMSM based on new compound reaching law with improved sliding mode observer</article-title>. <source>IEEE Trans. Transp. Elect.</source> <volume>9</volume>, <fpage>2955</fpage>&#x02013;<lpage>2968</lpage>.</citation>
</ref>
<ref id="B13">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Heidari</surname> <given-names>A. A.</given-names></name> <name><surname>Mirjalili</surname> <given-names>S.</given-names></name> <name><surname>Faris</surname> <given-names>H.</given-names></name> <name><surname>Aljarah</surname> <given-names>I.</given-names></name> <name><surname>Mafarja</surname> <given-names>M.</given-names></name> <name><surname>Chen</surname> <given-names>H.</given-names></name></person-group> (<year>2019</year>). <article-title>Harris hawks optimization: Algorithm and applications</article-title>. <source>Fut. Gen. Comp. Syst</source>. <volume>97</volume>, <fpage>849</fpage>&#x02013;<lpage>872</lpage>. <pub-id pub-id-type="doi">10.1016/j.future.2019.02.028</pub-id></citation>
</ref>
<ref id="B14">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hou</surname> <given-names>Q.</given-names></name> <name><surname>Ding</surname> <given-names>S.</given-names></name></person-group> (<year>2021</year>). <article-title>Finite-time extended state observer-based super-twisting sliding mode controller for pmsm drives with inertia identification</article-title>. <source>IEEE Transact. Transport. Electrif</source>. <volume>8</volume>, <fpage>1918</fpage>&#x02013;<lpage>1929</lpage>. <pub-id pub-id-type="doi">10.1109/TTE.2021.3123646</pub-id></citation>
</ref>
<ref id="B15">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Huang</surname> <given-names>J.</given-names></name> <name><surname>Wang</surname> <given-names>W.</given-names></name> <name><surname>Wen</surname> <given-names>C.</given-names></name> <name><surname>Li</surname> <given-names>G.</given-names></name></person-group> (<year>2019</year>). <article-title>Adaptive event-triggered control of nonlinear systems with controller and parameter estimator triggering</article-title>. <source>IEEE Trans. Automat. Contr</source>. <volume>65</volume>, <fpage>318</fpage>&#x02013;<lpage>324</lpage>. <pub-id pub-id-type="doi">10.1109/TAC.2019.2912517</pub-id><pub-id pub-id-type="pmid">36336474</pub-id></citation></ref>
<ref id="B16">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Jiang</surname> <given-names>T.</given-names></name> <name><surname>Lin</surname> <given-names>D.</given-names></name></person-group> (<year>2020</year>). <article-title>Fast finite-time backstepping for helicopters under input constraints and perturbations</article-title>. <source>Int. J. Syst. Sci</source>. <volume>51</volume>, <fpage>2868</fpage>&#x02013;<lpage>2882</lpage>. <pub-id pub-id-type="doi">10.1080/00207721.2020.1803438</pub-id></citation>
</ref>
<ref id="B17">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Liao</surname> <given-names>Y.-,l.</given-names></name> <name><surname>Zhang</surname> <given-names>M.-,j.</given-names></name> <name><surname>Wan</surname> <given-names>L.</given-names></name> <name><surname>Li</surname> <given-names>Y.</given-names></name></person-group> (<year>2016</year>). <article-title>Trajectory tracking control for underactuated unmanned surface vehicles with dynamic uncertainties</article-title>. <source>J. Cent. South Univ</source>. <volume>23</volume>, <fpage>370</fpage>&#x02013;<lpage>378</lpage>. <pub-id pub-id-type="doi">10.1007/s11771-016-3082-4</pub-id></citation>
</ref>
<ref id="B18">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Liu</surname> <given-names>K.</given-names></name> <name><surname>Gao</surname> <given-names>H.</given-names></name> <name><surname>Ji</surname> <given-names>H.</given-names></name> <name><surname>Hao</surname> <given-names>Z.</given-names></name></person-group> (<year>2020</year>). <article-title>Adaptive sliding mode based disturbance attenuation tracking control for wheeled mobile robots</article-title>. <source>Int. J. Control Automat. Syst</source>. <volume>18</volume>, <fpage>1288</fpage>&#x02013;<lpage>1298</lpage>. <pub-id pub-id-type="doi">10.1007/s12555-019-0262-7</pub-id><pub-id pub-id-type="pmid">37349191</pub-id></citation></ref>
<ref id="B19">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Liu</surname> <given-names>X.</given-names></name> <name><surname>Zhang</surname> <given-names>M.</given-names></name> <name><surname>Yao</surname> <given-names>F.</given-names></name></person-group> (<year>2018</year>). <article-title>Adaptive fault tolerant control and thruster fault reconstruction for autonomous underwater vehicle</article-title>. <source>Ocean Eng</source>. <volume>155</volume>, <fpage>10</fpage>&#x02013;<lpage>23</lpage>. <pub-id pub-id-type="doi">10.1016/j.oceaneng.2018.02.007</pub-id></citation>
</ref>
<ref id="B20">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Mirjalili</surname> <given-names>S.</given-names></name></person-group> (<year>2016</year>). <article-title>Sca: a sine cosine algorithm for solving optimization problems</article-title>. <source>Knowl. Based Syst</source>. <volume>96</volume>, <fpage>120</fpage>&#x02013;<lpage>133</lpage>. <pub-id pub-id-type="doi">10.1016/j.knosys.2015.12.022</pub-id></citation>
</ref>
<ref id="B21">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Mirjalili</surname> <given-names>S.</given-names></name> <name><surname>Mirjalili</surname> <given-names>S. M.</given-names></name> <name><surname>Lewis</surname> <given-names>A.</given-names></name></person-group> (<year>2014</year>). <article-title>Grey wolf optimizer</article-title>. <source>Adv. Eng. Softw</source>. <volume>69</volume>, <fpage>46</fpage>&#x02013;<lpage>61</lpage>. <pub-id pub-id-type="doi">10.1016/j.advengsoft.2013.12.007</pub-id></citation>
</ref>
<ref id="B22">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Najafi</surname> <given-names>A.</given-names></name> <name><surname>Vu</surname> <given-names>M. T.</given-names></name> <name><surname>Mobayen</surname> <given-names>S.</given-names></name> <name><surname>Asad</surname> <given-names>J. H.</given-names></name> <name><surname>Fekih</surname> <given-names>A.</given-names></name></person-group> (<year>2022</year>). <article-title>Adaptive barrier fast terminal sliding mode actuator fault tolerant control approach for quadrotor uavs</article-title>. <source>Mathematics</source> <volume>10</volume>, <fpage>3009</fpage>. <pub-id pub-id-type="doi">10.3390/math10163009</pub-id></citation>
</ref>
<ref id="B23">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Nan</surname> <given-names>F.</given-names></name> <name><surname>Sun</surname> <given-names>S.</given-names></name> <name><surname>Foehn</surname> <given-names>P.</given-names></name> <name><surname>Scaramuzza</surname> <given-names>D.</given-names></name></person-group> (<year>2022</year>). <article-title>Nonlinear mpc for quadrotor fault-tolerant control</article-title>. <source>IEEE Robot. Automat. Lett</source>. <volume>7</volume>, <fpage>5047</fpage>&#x02013;<lpage>5054</lpage>. <pub-id pub-id-type="doi">10.1109/LRA.2022.3154033</pub-id></citation>
</ref>
<ref id="B24">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Shen</surname> <given-names>Q.</given-names></name> <name><surname>Yue</surname> <given-names>C.</given-names></name> <name><surname>Goh</surname> <given-names>C. H.</given-names></name> <name><surname>Wang</surname> <given-names>D.</given-names></name></person-group> (<year>2018</year>). <article-title>Active fault-tolerant control system design for spacecraft attitude maneuvers with actuator saturation and faults</article-title>. <source>IEEE Transact. Ind. Electron</source>. <volume>66</volume>, <fpage>3763</fpage>&#x02013;<lpage>3772</lpage>. <pub-id pub-id-type="doi">10.1109/TIE.2018.2854602</pub-id></citation>
</ref>
<ref id="B25">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Song</surname> <given-names>M.-P.</given-names></name> <name><surname>Gu</surname> <given-names>G.-C.</given-names></name></person-group> (<year>2004</year>). <article-title>&#x0201C;Research on particle swarm optimization: a review,&#x0201D;</article-title> in <source>Proceedings of 2004 International Conference on Machine Learning and Cybernetics (IEEE Cat. No. 04EX826</source>), (<publisher-loc>Shanghai</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>2236</fpage>&#x02013;<lpage>2241</lpage>.</citation>
</ref>
<ref id="B26">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>F.</given-names></name> <name><surname>Ma</surname> <given-names>Z.</given-names></name> <name><surname>Gao</surname> <given-names>H.</given-names></name> <name><surname>Zhou</surname> <given-names>C.</given-names></name> <name><surname>Hua</surname> <given-names>C.</given-names></name></person-group> (<year>2022</year>). <article-title>Disturbance observer-based nonsingular fast terminal sliding mode fault tolerant control of a quadrotor UAV with external disturbances and actuator faults</article-title>. <source>Int. J. Cont. Autom. Syst</source>. <volume>20</volume>, <fpage>1122</fpage>&#x02013;<lpage>1130</lpage>. <pub-id pub-id-type="doi">10.1007/s12555-020-0773-2</pub-id></citation>
</ref>
<ref id="B27">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>H.</given-names></name> <name><surname>Shi</surname> <given-names>J.</given-names></name> <name><surname>Wang</surname> <given-names>J.</given-names></name> <name><surname>Wang</surname> <given-names>H.</given-names></name> <name><surname>Feng</surname> <given-names>Y.</given-names></name> <name><surname>You</surname> <given-names>Y.</given-names></name></person-group> (<year>2019a</year>). <article-title>Design and modeling of a novel transformable land/air robot</article-title>. <source>Int. J. Aero. Eng</source>. <pub-id pub-id-type="doi">10.1155/2019/2064131</pub-id></citation>
</ref>
<ref id="B28">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>K.</given-names></name> <name><surname>Liu</surname> <given-names>Y.</given-names></name> <name><surname>Huang</surname> <given-names>C.</given-names></name> <name><surname>Bao</surname> <given-names>W.</given-names></name></person-group> (<year>2022a</year>). <article-title>Water surface flight control of a cross domain robot based on an adaptive and robust sliding mode barrier control algorithm</article-title>. <source>Aerospace</source> <volume>9</volume>, <fpage>332</fpage>. <pub-id pub-id-type="doi">10.3390/aerospace9070332</pub-id></citation>
</ref>
<ref id="B29">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>K.</given-names></name> <name><surname>Liu</surname> <given-names>Y.</given-names></name> <name><surname>Huang</surname> <given-names>C.</given-names></name> <name><surname>Cheng</surname> <given-names>P.</given-names></name></person-group> (<year>2022b</year>). <article-title>Water surface and ground control of a small cross-domain robot based on fast line-of-sight algorithm and adaptive sliding mode integral barrier control</article-title>. <source>Appl. Sci</source>. <volume>12</volume>, <fpage>5935</fpage>. <pub-id pub-id-type="doi">10.3390/app12125935</pub-id></citation>
</ref>
<ref id="B30">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>N.</given-names></name> <name><surname>Deng</surname> <given-names>Z.</given-names></name></person-group> (<year>2019</year>). <article-title>Finite-time fault estimator based fault-tolerance control for a surface vehicle with input saturations</article-title>. <source>IEEE Trans. Ind. Informat</source>. <volume>16</volume>, <fpage>1172</fpage>&#x02013;<lpage>1181</lpage>. <pub-id pub-id-type="doi">10.1109/TII.2019.2930471</pub-id></citation>
</ref>
<ref id="B31">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>N.</given-names></name> <name><surname>Xie</surname> <given-names>G.</given-names></name> <name><surname>Pan</surname> <given-names>X.</given-names></name> <name><surname>Su</surname> <given-names>S.-F.</given-names></name></person-group> (<year>2019b</year>). <article-title>Full-state regulation control of asymmetric underactuated surface vehicles</article-title>. <source>IEEE Trans. Ind. Informat</source>. <volume>66</volume>, <fpage>8741</fpage>&#x02013;<lpage>8750</lpage>. <pub-id pub-id-type="doi">10.1109/TIE.2018.2890500</pub-id></citation>
</ref>
<ref id="B32">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wu</surname> <given-names>G.</given-names></name> <name><surname>Chen</surname> <given-names>G.</given-names></name> <name><surname>Zhang</surname> <given-names>H.</given-names></name> <name><surname>Huang</surname> <given-names>C.</given-names></name></person-group> (<year>2021</year>). <article-title>Fully distributed event-triggered vehicular platooning with actuator uncertainties</article-title>. <source>IEEE Transact. Vehic. Technol</source>. <volume>70</volume>, <fpage>6601</fpage>&#x02013;<lpage>6612</lpage>. <pub-id pub-id-type="doi">10.1109/TVT.2021.3086824</pub-id></citation>
</ref>
<ref id="B33">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wu</surname> <given-names>L.-B.</given-names></name> <name><surname>Park</surname> <given-names>J. H.</given-names></name> <name><surname>Xie</surname> <given-names>X.-P.</given-names></name> <name><surname>Gao</surname> <given-names>C.</given-names></name> <name><surname>Zhao</surname> <given-names>N.-N.</given-names></name></person-group> (<year>2020</year>). <article-title>Fuzzy adaptive event-triggered control for a class of uncertain nonaffine nonlinear systems with full state constraints</article-title>. <source>IEEE Transact. Fuzzy Syst</source>. <volume>29</volume>, <fpage>904</fpage>&#x02013;<lpage>916</lpage>. <pub-id pub-id-type="doi">10.1109/TFUZZ.2020.2966185</pub-id></citation>
</ref>
<ref id="B34">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Xing</surname> <given-names>H.</given-names></name> <name><surname>Shi</surname> <given-names>L.</given-names></name> <name><surname>Hou</surname> <given-names>X.</given-names></name> <name><surname>Liu</surname> <given-names>Y.</given-names></name> <name><surname>Hu</surname> <given-names>Y.</given-names></name> <name><surname>Xia</surname> <given-names>D.</given-names></name> <etal/></person-group>. (<year>2021</year>). <article-title>Design, modeling and control of a miniature bio-inspired amphibious spherical robot</article-title>. <source>Mechatronics</source> <volume>77</volume>, <fpage>102574</fpage>. <pub-id pub-id-type="doi">10.1016/j.mechatronics.2021.102574</pub-id></citation>
</ref>
<ref id="B35">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Xue</surname> <given-names>J.</given-names></name> <name><surname>Shen</surname> <given-names>B.</given-names></name></person-group> (<year>2020</year>). <article-title>A novel swarm intelligence optimization approach: sparrow search algorithm</article-title>. <source>Syst. Sci. Control Eng</source>. <volume>8</volume>, <fpage>22</fpage>&#x02013;<lpage>34</lpage>. <pub-id pub-id-type="doi">10.1080/21642583.2019.1708830</pub-id></citation>
</ref>
<ref id="B36">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Xue</surname> <given-names>J.</given-names></name> <name><surname>Shen</surname> <given-names>B.</given-names></name></person-group> (<year>2022</year>). <article-title>Dung beetle optimizer: a new meta-heuristic algorithm for global optimization</article-title>. <source>J. Supercomput</source>. 1&#x02013;32. <pub-id pub-id-type="doi">10.1007/s11227-022-04959-6</pub-id></citation>
</ref>
<ref id="B37">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yu</surname> <given-names>X.-N.</given-names></name> <name><surname>Hao</surname> <given-names>L.-Y.</given-names></name> <name><surname>Wang</surname> <given-names>X.-L.</given-names></name></person-group> (<year>2022</year>). <article-title>Fault tolerant control for an unmanned surface vessel based on integral sliding mode state feedback control</article-title>. <source>Int. J. Control Automat. Syst</source>. <volume>20</volume>, <fpage>2514</fpage>&#x02013;<lpage>2522</lpage>. <pub-id pub-id-type="doi">10.1007/s12555-021-0526-x</pub-id></citation>
</ref>
<ref id="B38">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhang</surname> <given-names>G.</given-names></name> <name><surname>Chu</surname> <given-names>S.</given-names></name> <name><surname>Zhang</surname> <given-names>W.</given-names></name> <name><surname>Liu</surname> <given-names>C.</given-names></name></person-group> (<year>2022</year>). <article-title>Adaptive neural fault-tolerant control for usv with the output-based triggering approach</article-title>. <source>IEEE Transact. Vehic. Technol</source>. <volume>71</volume>, <fpage>6948</fpage>&#x02013;<lpage>6957</lpage>. <pub-id pub-id-type="doi">10.1109/TVT.2022.3167038</pub-id><pub-id pub-id-type="pmid">31265427</pub-id></citation></ref>
<ref id="B39">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhang</surname> <given-names>H.</given-names></name> <name><surname>Xi</surname> <given-names>R.</given-names></name> <name><surname>Wang</surname> <given-names>Y.</given-names></name> <name><surname>Sun</surname> <given-names>S.</given-names></name> <name><surname>Sun</surname> <given-names>J.</given-names></name></person-group> (<year>2021</year>). <article-title>Event-triggered adaptive tracking control for random systems with coexisting parametric uncertainties and severe nonlinearities</article-title>. <source>IEEE Trans. Automat. Contr</source>. <volume>67</volume>, <fpage>2011</fpage>&#x02013;<lpage>2018</lpage>. <pub-id pub-id-type="doi">10.1109/TAC.2021.3079279</pub-id></citation>
</ref>
<ref id="B40">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhao</surname> <given-names>Y.</given-names></name> <name><surname>Qi</surname> <given-names>X.</given-names></name> <name><surname>Ma</surname> <given-names>Y.</given-names></name> <name><surname>Li</surname> <given-names>Z.</given-names></name> <name><surname>Malekian</surname> <given-names>R.</given-names></name> <name><surname>Sotelo</surname> <given-names>M. A.</given-names></name></person-group> (<year>2020</year>). <article-title>Path following optimization for an underactuated usv using smoothly-convergent deep reinforcement learning</article-title>. <source>IEEE Transact. Intell. Transport. Syst</source>. <volume>22</volume>, <fpage>6208</fpage>&#x02013;<lpage>6220</lpage>. <pub-id pub-id-type="doi">10.1109/TITS.2020.2989352</pub-id></citation>
</ref>
<ref id="B41">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhong</surname> <given-names>G.</given-names></name> <name><surname>Cao</surname> <given-names>J.</given-names></name> <name><surname>Chai</surname> <given-names>X.</given-names></name> <name><surname>Bai</surname> <given-names>Y.</given-names></name></person-group> (<year>2021</year>). <article-title>Design and performance analysis of a triphibious robot with tilting-rotor structure</article-title>. <source>IEEE Access</source> <volume>9</volume>, <fpage>10871</fpage>&#x02013;<lpage>10879</lpage>. <pub-id pub-id-type="doi">10.1109/ACCESS.2021.3050182</pub-id></citation>
</ref>
</ref-list> 
</back>
</article> 

