<?xml version="1.0" encoding="us-ascii"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Robot. AI</journal-id>
<journal-title>Frontiers in Robotics and AI</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Robot. AI</abbrev-journal-title>
<issn pub-type="epub">2296-9144</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1386968</article-id>
<article-id pub-id-type="doi">10.3389/frobt.2024.1386968</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Robotics and AI</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Hybrid controller with neural network PID/FOPID operations for two-link rigid robot manipulator based on the zebra optimization algorithm</article-title>
<alt-title alt-title-type="left-running-head">Jasim Mohamed et al.</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/frobt.2024.1386968">10.3389/frobt.2024.1386968</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Jasim Mohamed</surname>
<given-names>Mohamed</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/conceptualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/formal-analysis/"/>
<role content-type="https://credit.niso.org/contributor-roles/methodology/"/>
<role content-type="https://credit.niso.org/contributor-roles/resources/"/>
<role content-type="https://credit.niso.org/contributor-roles/software/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-original-draft/"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Oleiwi</surname>
<given-names>Bashra Kadhim</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2744676/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/conceptualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/formal-analysis/"/>
<role content-type="https://credit.niso.org/contributor-roles/methodology/"/>
<role content-type="https://credit.niso.org/contributor-roles/resources/"/>
<role content-type="https://credit.niso.org/contributor-roles/software/"/>
<role content-type="https://credit.niso.org/contributor-roles/validation/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-original-draft/"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Azar</surname>
<given-names>Ahmad Taher</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<xref ref-type="aff" rid="aff4">
<sup>4</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2646660/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/conceptualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/formal-analysis/"/>
<role content-type="https://credit.niso.org/contributor-roles/investigation/"/>
<role content-type="https://credit.niso.org/contributor-roles/methodology/"/>
<role content-type="https://credit.niso.org/contributor-roles/resources/"/>
<role content-type="https://credit.niso.org/contributor-roles/validation/"/>
<role content-type="https://credit.niso.org/contributor-roles/visualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Mahlous</surname>
<given-names>Ahmed Redha</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2054718/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/funding-acquisition/"/>
<role content-type="https://credit.niso.org/contributor-roles/investigation/"/>
<role content-type="https://credit.niso.org/contributor-roles/methodology/"/>
<role content-type="https://credit.niso.org/contributor-roles/resources/"/>
<role content-type="https://credit.niso.org/contributor-roles/validation/"/>
<role content-type="https://credit.niso.org/contributor-roles/visualization/"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>Control and Systems Engineering Department</institution>, <institution>University of Technology-Iraq</institution>, <addr-line>Baghdad</addr-line>, <country>Iraq</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>College of Computer and Information Sciences</institution>, <institution>Prince Sultan University</institution>, <addr-line>Riyadh</addr-line>, <country>Saudi Arabia</country>
</aff>
<aff id="aff3">
<sup>3</sup>
<institution>Automated Systems and Soft Computing Lab (ASSCL)</institution>, <institution>Prince Sultan University</institution>, <addr-line>Riyadh</addr-line>, <country>Saudi Arabia</country>
</aff>
<aff id="aff4">
<sup>4</sup>
<institution>Faculty of Computers and Artificial Intelligence</institution>, <institution>Benha University</institution>, <addr-line>Benha</addr-line>, <country>Egypt</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/753046/overview">Yanan Li</ext-link>, University of Sussex, United Kingdom</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2673685/overview">Chengzhi Zhu</ext-link>, South China University of Technology, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/821414/overview">Hass&#xe8;ne Gritli</ext-link>, Carthage University, Tunisia</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Ahmad Taher Azar, <email>aazar@psu.edu.sa</email>, <email>ahmad.azar@fci.bu.edu.eg</email>
</corresp>
</author-notes>
<pub-date pub-type="epub">
<day>14</day>
<month>06</month>
<year>2024</year>
</pub-date>
<pub-date pub-type="collection">
<year>2024</year>
</pub-date>
<volume>11</volume>
<elocation-id>1386968</elocation-id>
<history>
<date date-type="received">
<day>16</day>
<month>02</month>
<year>2024</year>
</date>
<date date-type="accepted">
<day>25</day>
<month>04</month>
<year>2024</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2024 Jasim Mohamed, Oleiwi, Azar and Mahlous.</copyright-statement>
<copyright-year>2024</copyright-year>
<copyright-holder>Jasim Mohamed, Oleiwi, Azar and Mahlous</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>The performance of the robotic manipulator is negatively impacted by outside disturbances and uncertain parameters. The system&#x2019;s variables are also highly coupled, complex, and nonlinear, indicating that it is a multi-input, multi-output system. Therefore, it is necessary to develop a controller that can control the variables in the system in order to handle these complications. This work proposes six control structures based on neural networks (NNs) with proportional integral derivative (PID) and fractional-order PID (FOPID) controllers to operate a 2-link rigid robot manipulator (2-LRRM) for trajectory tracking. These are named as set-point-weighted PID (W-PID), set-point weighted FOPID (W-FOPID), recurrent neural network (RNN)-like PID (RNNPID), RNN-like FOPID (RNN-FOPID), NN&#x002B;PID, and NN&#x2b;FOPID controllers. The zebra optimization algorithm (ZOA) was used to adjust the parameters of the proposed controllers while reducing the integral-time-square error (ITSE). A new objective function was proposed for tuning to generate controllers with minimal chattering in the control signal. After implementing the proposed controller designs, a comparative robustness study was conducted among these controllers by altering the initial conditions, disturbances, and model uncertainties. The simulation results demonstrate that the NN&#x002B;FOPID controller has the best trajectory tracking performance with the minimum ITSE and best robustness against changes in the initial states, external disturbances, and parameter uncertainties compared to the other controllers.</p>
</abstract>
<kwd-group>
<kwd>neural network</kwd>
<kwd>recurrent neural network</kwd>
<kwd>set-point controller</kwd>
<kwd>proportional integral derivative controller</kwd>
<kwd>fractional-order PID controller</kwd>
<kwd>2-link rigid robot manipulator</kwd>
<kwd>zebra optimization algorithm</kwd>
</kwd-group>
<contract-num rid="cn001">TBA</contract-num>
<contract-sponsor id="cn001">Prince Sultan University<named-content content-type="fundref-id">10.13039/501100012639</named-content>
</contract-sponsor>
<custom-meta-wrap>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Robot Learning and Evolution</meta-value>
</custom-meta>
</custom-meta-wrap>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>The field of robotics mainly focuses on problems related to visualization, modeling, and control. Robots are used in many daily tasks and occupations in every aspect of modern life. Robotic manipulators are increasingly required in factories and industries as they play important roles in the operations instead of humans, especially when these operations involve risky, repetitive, and complex activities (<xref ref-type="bibr" rid="B23">Oleiwi et al., 2021</xref>). The use of robots has also become necessary to ensure efficient, quick, and accurate operations. Traditional robots are large and bulky since they contain stiff linkages throughout their construction; most industries need upgrades to the current classical robots to lower the building costs, minimize energy consumption brought on by the large actuators, and boost production (<xref ref-type="bibr" rid="B3">Alandoli and Tian, 2020</xref>). Since robotic manipulators are well-suited for many applications, particularly in the industrial field, they have been widely used for many years. The trajectory tracking control is an important issue from the viewpoint of automatic control because various applications, such as welding, screwing, moving cars or equipment parts, and painting, demand precise trajectory tracking to accomplish their objectives (<xref ref-type="bibr" rid="B4">Azar and Fernando, 2019</xref>). The complexity and non-linearity of a robotic manipulator make it impossible for proportional integral derivative (PID) controllers to provide effective trajectory tracking and constant force/twist control simultaneously. The robotic manipulator also experiences a number of uncertainties, external disturbances, payload variations, and parameter variations during operation (<xref ref-type="bibr" rid="B8">Dachang et al., 2020</xref>; <xref ref-type="bibr" rid="B1">Abdulameer and Mohamed, 2022</xref>). To design controllers that can handle the dynamics of the manipulator robot for controlling and trajectory tracking, many solutions have been proposed using traditional control systems (<xref ref-type="bibr" rid="B2">Ajeil et al., 2020</xref>; <xref ref-type="bibr" rid="B12">Ibraheem et al., 2020</xref>; <xref ref-type="bibr" rid="B20">Najm et al., 2020</xref>). <xref ref-type="bibr" rid="B27">Sharma et al. (2015)</xref> described the design and analysis of a fractional-order PID (FOPID) controller with two degrees of freedom (DOFs) based on the cuckoo search algorithm for a two-link rigid robot manipulator (2-LRRM) with a payload; their results indicated that the suggested strategy improves the performance of the closed-loop system by resolving robustness and disturbance rejection issues. <xref ref-type="bibr" rid="B16">Kumar (2017)</xref> proposed an interval type-2 fuzzy proportional derivative plus integral controller based on the genetic algorithm for a 5-DOF redundant robot manipulator. <xref ref-type="bibr" rid="B6">Cao et al. (2021)</xref> introduced an invariant control structure for manipulator robot trajectory tracking with input saturation and uncertainty by combining reinforcement learning and non-singular terminal sliding-mode control. <xref ref-type="bibr" rid="B29">Shuyang and John (2021)</xref> applied a neural network (NN) as a multilayer perceptron structure based on the iterative process of learning; here, the desired robot joint was employed as the input, and the desired robot motion was related to the output; the movement of the robot with respect to the intended set of joint paths is determined by the iterative learning control. <xref ref-type="bibr" rid="B28">Shojaei et al. (2020)</xref> suggested a specific performance-based adaptive neural control system for manipulator robots without considering the input current, acceleration, or velocity; this scheme includes the actuator dynamics under model uncertainty, and an acceleration velocity observer was coupled with a neural adaptive second-order PID controller. <xref ref-type="bibr" rid="B21">Nohooji (2020)</xref> addressed the unknown dynamics and outside disturbances of a manipulator robot to design a control approach utilizing NN-based radial basis activation functions and self-tuning PID control. <xref ref-type="bibr" rid="B32">Zhou et al. (2020)</xref> and <xref ref-type="bibr" rid="B14">Kareem et al. (2023)</xref> introduced fractional-order sliding-mode control using a deep convolutional NN for controlling trajectory tracking in manipulator robots; here, the controller switching gain decreased drastically since the NN corrects the uncertainty of the system without knowledge of the upper boundaries. Four distinguished non-linear control structures were studied by <xref ref-type="bibr" rid="B13">Jenhani et al. (2022)</xref> to address the problem of controlling and stabilizing robotic systems to predefined positions. To control the position and velocity of the 2-link robot, classical and adaptive sliding-mode controllers were introduced by <xref ref-type="bibr" rid="B9">Al-Hadithy and Hammoudi (2020)</xref> as well as <xref ref-type="bibr" rid="B10">Hameed and Hamoudi (2023)</xref>. <xref ref-type="bibr" rid="B11">Hamoudi and Rasheed (2023)</xref> used particle swarm optimization to study the effectiveness of adaptive and classical backstepping control schemes for non-linear systems.</p>
<p>It is well-known in intelligent control that the NN controller can be used to solve various control issues, particularly when the controlled plant displays non-linearity and/or uncertainties in the model parameters. The advantage of the NN is that it has solid capability for mapping. Conversely, the PID controller is the most widely used controller in the industry because of its robust performance under numerous operating conditions and straightforward design. Therefore, in our proposed controllers, we merge the advantages of NNs with those of the PID and FOPID controllers to obtain hybrid controllers based on the zebra optimization algorithm (ZOA) to control a 2-LRRM.</p>
<p>The following are the main contributions of this work:<list list-type="simple">
<list-item>
<p>1. Six control structures are proposed based on NNs with PID/FOPID operations.</p>
</list-item>
<list-item>
<p>2. ZOA is used to adjust the gains of the proposed control structures on the basis of reducing the integral-time-square error (ITSE) performance index.</p>
</list-item>
<list-item>
<p>3. A comparative robustness study is conducted among the proposed control structures by altering the initial conditions, disturbances, and model uncertainties.</p>
</list-item>
<list-item>
<p>4. A new objective function is proposed for the tuning process to obtain controllers with minimal chattering in the control signals.</p>
</list-item>
</list>
</p>
<p>The remainder of this paper is structured as follows: the 2-LRRM&#x2019;s mathematical model is described in <xref ref-type="sec" rid="s2">Section 2</xref>. The proposed controller structures are discussed in <xref ref-type="sec" rid="s3">Section 3</xref>. The ZOA is explained in <xref ref-type="sec" rid="s4">Section 4</xref>. The simulation results are shown in <xref ref-type="sec" rid="s5">Section 5</xref>; the robustness tests are presented in <xref ref-type="sec" rid="s6">Section 6</xref>, and the conclusions are presented in <xref ref-type="sec" rid="s7">Section 7</xref>.</p>
</sec>
<sec id="s2">
<title>2 Mathematical model of the 2-LRRM</title>
<p>The 2-LRRM structure is illustrated in <xref ref-type="fig" rid="F1">Figure 1</xref>. It is composed of two links with lengths <inline-formula id="inf1">
<mml:math id="m1">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf257">
<mml:math id="m257">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and two mass centers <inline-formula id="inf2">
<mml:math id="m2">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf3">
<mml:math id="m3">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> that are at the distal ends of the links. Encoders determine the angular positions of the links (<inline-formula id="inf4">
<mml:math id="m4">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf5">
<mml:math id="m5">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>) and velocities (<inline-formula id="inf6">
<mml:math id="m6">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf7">
<mml:math id="m7">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
<bold>)</bold>, while the regulating torque is produced at points A and B by DC motors (<xref ref-type="bibr" rid="B19">Mohan et al., 2018</xref>). In robotics, the fundamental control equations are constructed using the dynamic equation of robot motion. In a robotic system, the actuator torque is employed to produce the dynamic motion of the manipulator arm. The dynamic modeling of a robotic system is characterized by the connections between the temporal rates of change and input torques of the robot arm component configurations. The primary goal here is to determine how to calculate the robot&#x2019;s motion equations given the moments and forces exerted on it. Therefore, a part of the robot manipulator&#x2019;s dynamic modeling describes the joint locations, velocities, and accelerations in addition to the functions mapping the forces acting on the structures (<xref ref-type="bibr" rid="B26">Raafat and Raheem, 2017</xref>).</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Structure of the 2-LRRM.</p>
</caption>
<graphic xlink:href="frobt-11-1386968-g001.tif"/>
</fig>
<p>The equations describing the x and y positions of <inline-formula id="inf8">
<mml:math id="m8">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">j</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf9">
<mml:math id="m9">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">j</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the equation for the kinetic and potential energies, and the two derived coupled non-linear differential equations based on the Euler&#x2013;Lagrange equation are presented in <xref ref-type="bibr" rid="B17">Lewis et al. (2004)</xref> and <xref ref-type="bibr" rid="B26">Raafat and Raheem (2017)</xref>.</p>
<p>The conventional form can be applied to the manipulator dynamics as indicated in Eqs. (<xref ref-type="disp-formula" rid="e1">1</xref>
<xref ref-type="disp-formula" rid="e10">-10</xref>)<disp-formula id="e1">
<mml:math id="m10">
<mml:mrow>
<mml:mi mathvariant="bold-italic">M</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">g</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold-italic">T</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>
</p>
<p>where <inline-formula id="inf10">
<mml:math id="m11">
<mml:mrow>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the Coriolis/centripetal vector, <inline-formula id="inf11">
<mml:math id="m12">
<mml:mrow>
<mml:mi mathvariant="bold-italic">M</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the inertia matrix that exhibits symmetry, and <inline-formula id="inf12">
<mml:math id="m13">
<mml:mrow>
<mml:mi mathvariant="bold-italic">g</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the gravity vector.<disp-formula id="e2">
<mml:math id="m14">
<mml:mrow>
<mml:mi mathvariant="bold-italic">M</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">M</mml:mi>
<mml:mn mathvariant="bold">11</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">M</mml:mi>
<mml:mn mathvariant="bold">12</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">M</mml:mi>
<mml:mn mathvariant="bold">21</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">M</mml:mi>
<mml:mn mathvariant="bold">22</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>
<disp-formula id="e3">
<mml:math id="m15">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">M</mml:mi>
<mml:mn mathvariant="bold">11</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="bold-italic">cos</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>
<disp-formula id="e4">
<mml:math id="m16">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">M</mml:mi>
<mml:mn mathvariant="bold">12</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="bold-italic">cos</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>
<disp-formula id="e5">
<mml:math id="m17">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">M</mml:mi>
<mml:mn mathvariant="bold">12</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">M</mml:mi>
<mml:mn mathvariant="bold">21</mml:mn>
</mml:msub>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mo>&#x26;</mml:mo>
<mml:mtext>&#x2002;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold-italic">M</mml:mi>
<mml:mn mathvariant="bold">22</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>
</p>
<p>The Coriolis/centrifugal vector denoted by <bold>
<italic>V</italic>
</bold> is of the form<disp-formula id="e6">
<mml:math id="m18">
<mml:mrow>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>
<disp-formula id="e7">
<mml:math id="m19">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>
<disp-formula id="e8">
<mml:math id="m20">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="bold-italic">sin</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>
</p>
<p>The gravity vector <inline-formula id="inf13">
<mml:math id="m21">
<mml:mrow>
<mml:mi mathvariant="bold-italic">g</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="bold">12</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">g</mml:mi>
<mml:mrow>
<mml:mn mathvariant="bold">21</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="bold-italic">T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is defined using<disp-formula id="e9">
<mml:math id="m22">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">g</mml:mi>
<mml:mn mathvariant="bold">12</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="bold-italic">g</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="bold-italic">cos</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="bold-italic">g</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="bold-italic">cos</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>
<disp-formula id="e10">
<mml:math id="m23">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">g</mml:mi>
<mml:mn mathvariant="bold">21</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="bold-italic">g</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="bold-italic">cos</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(10)</label>
</disp-formula>
</p>
<p>The 2-LRRM parameter specifications are as listed in <xref ref-type="table" rid="T1">Table 1</xref> (<xref ref-type="bibr" rid="B18">Mohamed et al., 2023</xref>).</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Specifications of the 2-LRRM.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Parameter</th>
<th align="center">Nominal value</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">
<inline-formula id="inf14">
<mml:math id="m24">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">0.1 kg</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf15">
<mml:math id="m25">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">m</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">0.1 kg</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf16">
<mml:math id="m26">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">0.8 m</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf17">
<mml:math id="m27">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">0.4 m</td>
</tr>
<tr>
<td align="center">
<inline-formula id="inf18">
<mml:math id="m28">
<mml:mrow>
<mml:mi mathvariant="bold-italic">g</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="center">9.81 m/<inline-formula id="inf19">
<mml:math id="m29">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="normal">s</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s3">
<title>3 Structures of the proposed hybrid controllers</title>
<p>This section provides the descriptions of the proposed controllers below.</p>
<sec id="s3-1">
<title>3.1 Set-point-weighted PID and FOPID controllers</title>
<p>This section discusses set-point-weighted PID and FOPID controllers. The block diagram of this feedback control system is indicated in <xref ref-type="fig" rid="F2">Figure 2</xref>.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Set-point-weighted controller block diagram.</p>
</caption>
<graphic xlink:href="frobt-11-1386968-g002.tif"/>
</fig>
<p>The equation describing the set-point-weighted PID (W-PID) controller is presented in Eq. <xref ref-type="disp-formula" rid="e11">(11)</xref>:<disp-formula id="e11">
<mml:math id="m30">
<mml:mtable class="align" columnalign="left">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:msub>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">T</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mi mathvariant="bold-italic">D</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">p</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3b2;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">a</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mo>&#x222b;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">a</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">d</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:mspace width="1em"/>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">d</mml:mi>
</mml:msub>
<mml:mfrac>
<mml:mi mathvariant="bold-italic">d</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">d</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3b1;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">a</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(11)</label>
</disp-formula>where <inline-formula id="inf20">
<mml:math id="m31">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">a</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mo>&#x3c;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3b2;</mml:mi>
<mml:mo>&#x3c;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> <bold>
<italic>,</italic>
</bold> <inline-formula id="inf21">
<mml:math id="m32">
<mml:mrow>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mo>&#x3c;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3b1;</mml:mi>
<mml:mo>&#x3c;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>Here, <inline-formula id="inf22">
<mml:math id="m33">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the error between the required and calculated positions, <inline-formula id="inf23">
<mml:math id="m34">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf24">
<mml:math id="m35">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">a</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, respectively, of the <inline-formula id="inf25">
<mml:math id="m36">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> th link; <inline-formula id="inf26">
<mml:math id="m37">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">p</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf27">
<mml:math id="m38">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the proportional, integral, and derivative gains of the PID controller, respectively; <inline-formula id="inf28">
<mml:math id="m39">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">T</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the control signal (torque) of the <inline-formula id="inf29">
<mml:math id="m40">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> th link; <inline-formula id="inf30">
<mml:math id="m41">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b2;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf31">
<mml:math id="m42">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b1;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> are constants. The equation of the set-point-weighted FOPID (W-FOPID) controller contains two additional parameters (<inline-formula id="inf32">
<mml:math id="m43">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3bb;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>
<bold>
<italic>,</italic>
</bold> <inline-formula id="inf33">
<mml:math id="m44">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3bc;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>) with fractional values, as shown in Eq. <xref ref-type="disp-formula" rid="e12">(12)</xref>:<disp-formula id="e12">
<mml:math id="m45">
<mml:mtable class="align" columnalign="left">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:msub>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">T</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mi mathvariant="bold-italic">D</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">p</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3b2;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">a</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:msup>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3bb;</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">a</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:mspace width="1em"/>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">d</mml:mi>
</mml:msub>
<mml:msup>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mi mathvariant="bold-italic">&#x3bc;</mml:mi>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3b1;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">a</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(12)</label>
</disp-formula>where <inline-formula id="inf34">
<mml:math id="m46">
<mml:mrow>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mo>&#x3c;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3bb;</mml:mi>
<mml:mo>&#x3c;</mml:mo>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> <bold>
<italic>,</italic>
</bold> <inline-formula id="inf35">
<mml:math id="m47">
<mml:mrow>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mo>&#x3c;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3bc;</mml:mi>
<mml:mo>&#x3c;</mml:mo>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>
<bold>
<italic>,</italic>
</bold> and <bold>
<italic>D</italic>
</bold> represents the Laplace variable.</p>
<p>In Eqs. <xref ref-type="disp-formula" rid="e11">(11</xref>, <xref ref-type="disp-formula" rid="e12">12)</xref>, <inline-formula id="inf36">
<mml:math id="m48">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3b1;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf37">
<mml:math id="m49">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3b2;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> are used to adjust the set-point values before comparing with the output to calculate the error signal for each control action. Here, <inline-formula id="inf38">
<mml:math id="m50">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3b2;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is used to attenuate the set-point signal before computing the corresponding error for the proportional action and <inline-formula id="inf39">
<mml:math id="m51">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3b1;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is used similarly for the derivative action, while the set-point signal attenuation is not used for the integral action. This PID configuration is unconventional, famous, and used in many works. </p>
<p>The set-point-weighted PID and FOPID controller structures are demonstrated in <xref ref-type="fig" rid="F3">Figure 3</xref>.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Set-point-weighted controller structures: <bold>(A)</bold> W-PID and <bold>(B)</bold> W-FOPID.</p>
</caption>
<graphic xlink:href="frobt-11-1386968-g003.tif"/>
</fig>
</sec>
<sec id="s3-2">
<title>3.2 Recurrent neural network (RNN)-like PID and FOPID controllers</title>
<p>In these two controllers, RNN-like PID and FOPID are adopted. The block diagram of the feedback control system for this type of hybrid controller is shown in <xref ref-type="fig" rid="F4">Figure 4</xref>. The common structure of the RNN-PID and RNN-FOPID controllers is shown in <xref ref-type="fig" rid="F5">Figure 5</xref>. For the conventional PID controller, the order variables have integer values <inline-formula id="inf40">
<mml:math id="m52">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3bb;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf41">
<mml:math id="m53">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3bc;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>
<bold>.</bold> <inline-formula id="inf42">
<mml:math id="m54">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the error between the required and actual positions <inline-formula id="inf43">
<mml:math id="m55">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf44">
<mml:math id="m56">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">a</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, respectively, of the <inline-formula id="inf45">
<mml:math id="m57">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mtext>th</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> link.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Recurrent-neural-network-like PID and FOPID controller block diagrams (RNN-PID and RNN-FOPID).</p>
</caption>
<graphic xlink:href="frobt-11-1386968-g004.tif"/>
</fig>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Recurrent-neural-network-like PID and FOPID structures (RNN-PID and RNN-FOPID controllers).</p>
</caption>
<graphic xlink:href="frobt-11-1386968-g005.tif"/>
</fig>
<p>In the RNN-PID controller, the input layer has a single neuron <inline-formula id="inf46">
<mml:math id="m58">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. The first hidden layer has three neurons <bold>
<italic>P</italic>
</bold>, <bold>
<italic>I</italic>
</bold>, and <bold>
<italic>D</italic>
</bold> that are defined in Eqs <xref ref-type="disp-formula" rid="e13">(13</xref>&#x2013;<xref ref-type="disp-formula" rid="e15">15)</xref>:<disp-formula id="e13">
<mml:math id="m59">
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">p</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">p</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(13)</label>
</disp-formula>
<disp-formula id="e14">
<mml:math id="m60">
<mml:mrow>
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mo>&#x222b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">d</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">e</mml:mi>
</mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(14)</label>
</disp-formula>
<disp-formula id="e15">
<mml:math id="m61">
<mml:mrow>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">d</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mfrac>
<mml:mi mathvariant="bold-italic">d</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">d</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">d</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mi mathvariant="bold-italic">h</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(15)</label>
</disp-formula>where, the feedback and processing elements in the second hidden layer are defined in Eqs. <xref ref-type="disp-formula" rid="e16">(16</xref>
<xref ref-type="disp-formula" rid="e17">-17)</xref>
<disp-formula id="e16">
<mml:math id="m62">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">11</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">12</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">13</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">21</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">22</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">23</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">31</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">32</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">33</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(16)</label>
</disp-formula>and<disp-formula id="e17">
<mml:math id="m63">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi mathvariant="bold-italic">C</mml:mi>
</mml:mrow>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi mathvariant="bold-italic">C</mml:mi>
</mml:mrow>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">O</mml:mi>
</mml:mrow>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msubsup>
<mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">C</mml:mi>
</mml:mrow>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(17)</label>
</disp-formula>
</p>
<p>The output of the second hidden layer is given by Eq. <xref ref-type="disp-formula" rid="e18">(18)</xref>:<disp-formula id="e18">
<mml:math id="m64">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">O</mml:mi>
</mml:mrow>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfenced open="" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">H</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close="" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">N</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfenced open="" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">H</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close="" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">N</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mn mathvariant="bold">11</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mn mathvariant="bold">12</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mn mathvariant="bold">13</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mn mathvariant="bold">21</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mn mathvariant="bold">22</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mn mathvariant="bold">23</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mn mathvariant="bold">31</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mn mathvariant="bold">32</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mn mathvariant="bold">33</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(18)</label>
</disp-formula>
</p>
<p>The activation function used is a sigmoid function, as shown in Eq. <xref ref-type="disp-formula" rid="e19">(19)</xref>:<disp-formula id="e19">
<mml:math id="m65">
<mml:mrow>
<mml:mi mathvariant="bold-italic">H</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold-italic">n</mml:mi>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(19)</label>
</disp-formula>
</p>
<p>where, the feedback elements in the third hidden layer are defined in Eq. <xref ref-type="disp-formula" rid="e20">(20)</xref>
<disp-formula id="e20">
<mml:math id="m66">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">O</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold">O</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(20)</label>
</disp-formula>
</p>
<p>The output of the third hidden layer is expressed in Eq. <xref ref-type="disp-formula" rid="e21">(21)</xref>:<disp-formula id="equ1">
<mml:math id="m67">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">O</mml:mi>
</mml:mrow>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">11</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">12</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">13</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">21</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">22</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">23</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">31</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">32</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">33</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">O</mml:mi>
</mml:mrow>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="e21">
<mml:math id="m68">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mn mathvariant="bold">11</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mn mathvariant="bold">12</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mn mathvariant="bold">13</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mn mathvariant="bold">21</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mn mathvariant="bold">22</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mn mathvariant="bold">23</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mn mathvariant="bold">31</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mn mathvariant="bold">32</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mn mathvariant="bold">33</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(21)</label>
</disp-formula>The output of the single neuron in the output layer is given in Eq. <xref ref-type="disp-formula" rid="e22">(22)</xref>:<disp-formula id="e22">
<mml:math id="m69">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">T</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">w</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">w</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">w</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(22)</label>
</disp-formula>where <inline-formula id="inf47">
<mml:math id="m70">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">p</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">w</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mtext>and&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:msub>
<mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are all parameters.</p>
<p>In the RNN-FOPID controller, the input layer again has a single neuron <inline-formula id="inf48">
<mml:math id="m71">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
<bold>.</bold> The first hidden layer has three neurons <bold>
<italic>P, I,</italic>
</bold> and <bold>
<italic>D</italic>
</bold>, where the order variables <inline-formula id="inf49">
<mml:math id="m72">
<mml:mrow>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mo>&#x3c;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3bb;</mml:mi>
<mml:mo>&#x3c;</mml:mo>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf50">
<mml:math id="m73">
<mml:mrow>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mo>&#x3c;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3bc;</mml:mi>
<mml:mo>&#x3c;</mml:mo>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> are fractions instead of integers, and the <bold>
<italic>P, I,</italic>
</bold> and <bold>
<italic>D</italic>
</bold> neurons of this hidden layer are shown in Eqs <xref ref-type="disp-formula" rid="e23">(23</xref>&#x2013;<xref ref-type="disp-formula" rid="e25">25)</xref>. All the remaining hidden layers and output layer are the same as in the RNN-PID controller.<disp-formula id="e23">
<mml:math id="m74">
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">p</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(23)</label>
</disp-formula>
<disp-formula id="e24">
<mml:math id="m75">
<mml:mrow>
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3bb;</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(24)</label>
</disp-formula>
<disp-formula id="e25">
<mml:math id="m76">
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold">K</mml:mi>
<mml:mi mathvariant="bold">d</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msup>
<mml:mi mathvariant="bold">D</mml:mi>
<mml:mi mathvariant="normal">&#x3bc;</mml:mi>
</mml:msup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(25)</label>
</disp-formula>
</p>
</sec>
<sec id="s3-3">
<title>3.3 NN-based PID and FOPID controllers</title>
<p>In this type of controller, the NN and PID/FOPID controllers both contribute to the production of the control signal. <xref ref-type="fig" rid="F6">Figure 6</xref> displays the feedback control system block diagram for this type of controller. </p>
<p>The common structure for these two controllers is indicated in <xref ref-type="fig" rid="F7">Figure 7</xref>.</p>
<p>For the conventional PID controller, the order variables have integer values <inline-formula id="inf51">
<mml:math id="m77">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3bb;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf52">
<mml:math id="m78">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3bc;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. There are three neurons in the input layer of the NN &#x2b; PID controller structure, namely, <inline-formula id="inf53">
<mml:math id="m79">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mtext>and&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> or A, B, and C.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Block diagram of a neural network combined with PID and FOPID controllers.</p>
</caption>
<graphic xlink:href="frobt-11-1386968-g006.tif"/>
</fig>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Neural network combined with PID and FOPID controller structures (NN &#x2b; PID and NN &#x2b; FOPID).</p>
</caption>
<graphic xlink:href="frobt-11-1386968-g007.tif"/>
</fig>
<p>Thus, the first layer of hidden neurons is given by Eq. <xref ref-type="disp-formula" rid="e26">(26)</xref>:<disp-formula id="e26">
<mml:math id="m80">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">11</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">12</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">13</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">21</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">22</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">23</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">31</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">32</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">33</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(26)</label>
</disp-formula>
</p>
<p>The output of the first hidden layer is given by Eq. <xref ref-type="disp-formula" rid="e27">(27)</xref>:<disp-formula id="e27">
<mml:math id="m81">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfenced open="" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">H</mml:mi>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold-italic">N</mml:mi>
</mml:mrow>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">H</mml:mi>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold-italic">N</mml:mi>
</mml:mrow>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>)</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(27)</label>
</disp-formula>
<disp-formula id="e28">
<mml:math id="m82">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">11</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">12</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">13</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">21</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">22</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">23</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">31</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">32</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mn mathvariant="bold">33</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(28)</label>
</disp-formula>
</p>
<p>The input and output of the second hidden layer are given by Eqs <xref ref-type="disp-formula" rid="e29">(28, 29)</xref>, respectively.<disp-formula id="e29">
<mml:math id="m83">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfenced open="" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">H</mml:mi>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold-italic">N</mml:mi>
</mml:mrow>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(29)</label>
</disp-formula>
</p>
<p>The activation function used is a sigmoid function, as shown in Eq. <xref ref-type="disp-formula" rid="e30">(30)</xref>:<disp-formula id="e30">
<mml:math id="m84">
<mml:mrow>
<mml:mi mathvariant="bold-italic">H</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold-italic">n</mml:mi>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(30)</label>
</disp-formula>
</p>
<p>The output of the third hidden layer is given by Eq. <xref ref-type="disp-formula" rid="e31">(31):</xref>
<disp-formula id="e31">
<mml:math id="m85">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">3</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">3</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">3</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">3</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">3</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">3</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">w</mml:mi>
<mml:mn mathvariant="bold">11</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">w</mml:mi>
<mml:mn mathvariant="bold">12</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">w</mml:mi>
<mml:mn mathvariant="bold">13</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">w</mml:mi>
<mml:mn mathvariant="bold">21</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">w</mml:mi>
<mml:mn mathvariant="bold">22</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi mathvariant="bold-italic">w</mml:mi>
<mml:mn mathvariant="bold">23</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">w</mml:mi>
<mml:mn mathvariant="bold">31</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">w</mml:mi>
<mml:mn mathvariant="bold">32</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">w</mml:mi>
<mml:mn mathvariant="bold">33</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(31)</label>
</disp-formula>
</p>
<p>Equations <xref ref-type="disp-formula" rid="e32">(32</xref>&#x2013;<xref ref-type="disp-formula" rid="e34">34)</xref> define the three control actions of the PID controller, and each of these control actions is added to one of the neuron outputs of the NN, as shown in Eqs. <xref ref-type="disp-formula" rid="e35">(35</xref>&#x2013;<xref ref-type="disp-formula" rid="e37">37)</xref>.<disp-formula id="e32">
<mml:math id="m86">
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(32)</label>
</disp-formula>
<disp-formula id="e33">
<mml:math id="m87">
<mml:mrow>
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x222b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">d</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:msubsup>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:msubsup>
</mml:mstyle>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(33)</label>
</disp-formula>
<disp-formula id="e34">
<mml:math id="m88">
<mml:mrow>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mi mathvariant="bold-italic">d</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">d</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mtext>&#x2003;</mml:mtext>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mi mathvariant="bold-italic">h</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(34)</label>
</disp-formula>
<disp-formula id="e35">
<mml:math id="m89">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold-italic">K</mml:mi>
</mml:mrow>
<mml:mi mathvariant="bold-italic">p</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">3</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(35)</label>
</disp-formula>
<disp-formula id="e36">
<mml:math id="m90">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold-italic">K</mml:mi>
</mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">3</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:msubsup>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn mathvariant="bold">0</mml:mn>
</mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:msubsup>
</mml:mstyle>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(36)</label>
</disp-formula>
<disp-formula id="e37">
<mml:math id="m91">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold-italic">K</mml:mi>
</mml:mrow>
<mml:mi mathvariant="bold-italic">d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">3</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mi mathvariant="bold-italic">h</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(37)</label>
</disp-formula>
</p>
<p>The equation of the control signal is expressed by Eq. <xref ref-type="disp-formula" rid="e38">(38)</xref>:<disp-formula id="e38">
<mml:math id="m92">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">T</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(38)</label>
</disp-formula>
</p>
<p>The structure of the NN &#x2b; FOPID controller is the same as that of the NN &#x2b; PID controller, with the difference being fractional-order operations of the integral and derivative functions given by <inline-formula id="inf54">
<mml:math id="m93">
<mml:mrow>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mo>&#x3c;</mml:mo>
<mml:mi mathvariant="bold">&#x3bb;</mml:mi>
<mml:mo>&#x3c;</mml:mo>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf55">
<mml:math id="m94">
<mml:mrow>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mo>&#x3c;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3bc;</mml:mi>
<mml:mo>&#x3c;</mml:mo>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, respectively, as illustrated in Eqs. <xref ref-type="disp-formula" rid="e39">(39</xref>&#x2013;<xref ref-type="disp-formula" rid="e44">44)</xref>.<disp-formula id="e39">
<mml:math id="m95">
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(39)</label>
</disp-formula>
<disp-formula id="e40">
<mml:math id="m96">
<mml:mrow>
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3bb;</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(40)</label>
</disp-formula>
<disp-formula id="e41">
<mml:math id="m97">
<mml:mrow>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mi mathvariant="bold-italic">&#x3bc;</mml:mi>
</mml:msup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(41)</label>
</disp-formula>
<disp-formula id="e42">
<mml:math id="m98">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold-italic">K</mml:mi>
</mml:mrow>
<mml:mi mathvariant="bold-italic">p</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">3</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(42)</label>
</disp-formula>
<disp-formula id="e43">
<mml:math id="m99">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold-italic">K</mml:mi>
</mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">3</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3bb;</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(43)</label>
</disp-formula>
<disp-formula id="e44">
<mml:math id="m100">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold-italic">K</mml:mi>
</mml:mrow>
<mml:mi mathvariant="bold-italic">d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">O</mml:mi>
</mml:mrow>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mn mathvariant="bold">3</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mi mathvariant="bold-italic">&#x3bc;</mml:mi>
</mml:msup>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(44)</label>
</disp-formula>
</p>
<p>The equation of the control signal is given by Eq. <xref ref-type="disp-formula" rid="e45">(45)</xref>:<disp-formula id="e45">
<mml:math id="m101">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">T</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
</mml:msub>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(45)</label>
</disp-formula>
</p>
</sec>
</sec>
<sec id="s4">
<title>4 Zebra optimization algorithm</title>
<p>The ZOA is a nature-inspired metaheuristic algorithm and is presented mathematically in this section (<xref ref-type="bibr" rid="B30">Trojovsk&#xe1; et al., 2022</xref>). The actions of zebras in the wild serve as the primary source of inspiration for the ZOA, where the foraging behaviors and defense mechanisms against predator attacks are simulated. The description is provided first, followed by the mathematical modeling of the ZOA steps. Effective real-world optimization issues can be resolved by the ZOA by achieving an appropriate balance between exploration and exploitation.<list list-type="simple">
<list-item>
<p>&#x2022; Initialization</p>
</list-item>
</list>
</p>
<p>The population of zebras that provide a solution to the problem can be numerically modeled using a matrix, in addition to the plain where the zebras are located inside the search space. Within the search area, the zebras are positioned randomly at their starting positions. Equation <xref ref-type="disp-formula" rid="e46">(46)</xref> provides the structure of the ZOA population matrix.<disp-formula id="e46">
<mml:math id="m102">
<mml:mrow>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi mathvariant="bold-italic">N</mml:mi>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi mathvariant="bold-italic">m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi mathvariant="bold-italic">m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(46)</label>
</disp-formula>where <bold>
<italic>X</italic>
</bold> is the population, <italic>N</italic> is the total number of initial solutions in the population, and <italic>m</italic> is the number of variables in each solution; <inline-formula id="inf56">
<mml:math id="m103">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the <inline-formula id="inf57">
<mml:math id="m104">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mtext>th</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> solution, and <inline-formula id="inf58">
<mml:math id="m105">
<mml:mrow>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the value of the <inline-formula id="inf59">
<mml:math id="m106">
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mtext>th</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> problem variable proposed by the <inline-formula id="inf60">
<mml:math id="m107">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mtext>th</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> solution. The values produced in the form of a vector for the objective function are specified by Eq. <xref ref-type="disp-formula" rid="e47">(47)</xref>.<disp-formula id="e47">
<mml:math id="m108">
<mml:mrow>
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mi mathvariant="bold-italic">N</mml:mi>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfenced open="" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold-italic">X</mml:mi>
</mml:mrow>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfenced open="" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold-italic">X</mml:mi>
</mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfenced open="" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold-italic">X</mml:mi>
</mml:mrow>
<mml:mi mathvariant="bold-italic">N</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">N</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(47)</label>
</disp-formula>where <bold>
<italic>F</italic>
</bold> represents the vector of objective function values and <bold>
<italic>Fi</italic>
</bold> denotes the value of the objective function for the <inline-formula id="inf61">
<mml:math id="m109">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mtext>th</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> solution. Each iteration involves two updates for the ZOA population members.</p>
<p>Phase 1: Foraging behavior</p>
<p>Zebra behavior models through forage seeking are employed to update the population members during the first phase (<xref ref-type="bibr" rid="B25">Pastor et al., 2006</xref>). Equations <xref ref-type="disp-formula" rid="e48">(48</xref>, <xref ref-type="disp-formula" rid="e49">49)</xref> can be used in the mathematical model to update the positions of the zebras during the foraging phase.<disp-formula id="e48">
<mml:math id="m110">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">n</mml:mi>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mi mathvariant="bold-italic">w</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mo>&#xb7;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mi mathvariant="bold-italic">Z</mml:mi>
</mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mo>&#xb7;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(48)</label>
</disp-formula>
<disp-formula id="e49">
<mml:math id="m111">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">n</mml:mi>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mi mathvariant="bold-italic">w</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">n</mml:mi>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mi mathvariant="bold-italic">w</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">p</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>;</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mi mathvariant="bold-italic">s</mml:mi>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(49)</label>
</disp-formula>where <inline-formula id="inf62">
<mml:math id="m112">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">n</mml:mi>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mi mathvariant="bold-italic">w</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> is the objective function value<bold>
<italic>;</italic>
</bold> <inline-formula id="inf63">
<mml:math id="m113">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">n</mml:mi>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mi mathvariant="bold-italic">w</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> is <inline-formula id="inf64">
<mml:math id="m114">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mtext>th</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> zebra&#x2019;s new status based on the first phase; <italic>r</italic> is a random number in the interval [0,1]. The best member is <bold>
<italic>PZ</italic>
</bold>, the pioneer zebra; its <italic>j</italic>th dimension is <inline-formula id="inf65">
<mml:math id="m115">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mi mathvariant="bold-italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>; <bold>
<italic>I &#x3d; round</italic>
</bold>(<bold>
<italic>1&#x2b;rand</italic>
</bold>) is provided; and rand is a random value within the interval [0,1]. Thus, <bold>
<italic>I</italic>
</bold> &#x2208; {1, 2}, and the population movement changes more noticeably if I &#x3d; 2.</p>
<p>Phase 2: Predator defense strategies</p>
<p>The initial strategy for defense involves lions attacking the zebras, but the zebras move away from their current locations to escape (<xref ref-type="bibr" rid="B25">Pastor et al., 2006</xref>). Therefore, the mode S1 in Eq. <xref ref-type="disp-formula" rid="e50">(50)</xref> can be used to mathematically represent this strategy. In the second technique, when other predators attack one of the zebras, the other zebras in the herd move toward the attacked zebra in an attempt to confuse and intimidate the predator by forming a protective structure (<xref ref-type="bibr" rid="B7">Caro et al., 2014</xref>). Mode S2 in Eq. <xref ref-type="disp-formula" rid="e50">(50)</xref> is used to formally represent the zebra behaviors. When a zebra is updated, its new location is accepted if its objective function has a better value (<xref ref-type="bibr" rid="B15">Kennedy and Kennedy, 2013</xref>). This update scenario is represented using Eq. <xref ref-type="disp-formula" rid="e51">(51)</xref>.<disp-formula id="e50">
<mml:math id="m116">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">n</mml:mi>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mi mathvariant="bold-italic">w</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">R</mml:mi>
<mml:mo>&#xb7;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#xb7;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">T</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#xb7;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mi mathvariant="bold-italic">s</mml:mi>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mn mathvariant="bold">0.5</mml:mn>
<mml:mo>;</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mo>&#xb7;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">A</mml:mi>
<mml:mi mathvariant="bold-italic">Z</mml:mi>
</mml:mrow>
<mml:mi mathvariant="bold-italic">j</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mi mathvariant="bold-italic">s</mml:mi>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(50)</label>
</disp-formula>
<disp-formula id="e51">
<mml:math id="m117">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">n</mml:mi>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mi mathvariant="bold-italic">w</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">n</mml:mi>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mi mathvariant="bold-italic">w</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">P</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3c;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mo>;</mml:mo>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mi mathvariant="bold-italic">s</mml:mi>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(51)</label>
</disp-formula>where <italic>Ps</italic> is the probability of choosing one of two randomly generated strategies in the interval [0, 1], <italic>AZ</italic> is the status of the attacked zebra and <inline-formula id="inf66">
<mml:math id="m118">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>Z</mml:mi>
</mml:mrow>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is its <italic>j</italic>th dimension value, <inline-formula id="inf67">
<mml:math id="m119">
<mml:mrow>
<mml:msubsup>
<mml:mi>F</mml:mi>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>w</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>P</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> is its objective function value, and <inline-formula id="inf68">
<mml:math id="m120">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">X</mml:mi>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mrow>
<mml:mtext>new</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">P</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> is the new status of the <italic>i</italic>th zebra based on the second phase. The iteration contour is denoted by <bold>
<italic>t</italic>
</bold>, maximum number of iterations is given by <bold>
<italic>T</italic>
</bold>, and constant number <bold>
<italic>R</italic>
</bold> is set to 0.01. The value of its <italic>j</italic>th dimension is <inline-formula id="inf69">
<mml:math id="m121">
<mml:mrow>
<mml:msubsup>
<mml:mi>X</mml:mi>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>w</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>P</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>. The population members are updated depending on the first and second phases in each ZOA iteration. Until the time the algorithm is completely implemented, the population is updated based on Eqs. <xref ref-type="disp-formula" rid="e48">(48</xref>&#x2013;<xref ref-type="disp-formula" rid="e51">51)</xref>. During subsequent iterations, the best candidate solution is updated and preserved. When the ZOA is fully operational, the best potential answer is made available as the ideal response, as shown in the pseudocode and flowchart representations of the ZOA phases in <xref ref-type="fig" rid="F8">Figure 8</xref>.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Flowchart of the ZOA.</p>
</caption>
<graphic xlink:href="frobt-11-1386968-g008.tif"/>
</fig>
<sec id="s4-1">
<title>4.1 Pseudocode of the proposed ZOA</title>
<p>Begin ZOA.</p>
<p>Input: Information regarding the optimization issue.</p>
<p>Calculate the population size (<bold>
<italic>N</italic>
</bold>) and total number of iterations (<bold>
<italic>T</italic>
</bold>).</p>
<p>Evaluate the objective function based on the initial solution.</p>
<p>For <bold>
<italic>t &#x3d; 1: T</italic>
</bold>, update <bold>
<italic>PZ</italic>
</bold>.</p>
<p>For <bold>
<italic>i &#x3d; 1: N</italic>
</bold>
</p>
<p>Phase 1: Foraging behavior</p>
<p>Use Eq. <xref ref-type="disp-formula" rid="e48">(48)</xref> to determine the new <inline-formula id="inf70">
<mml:math id="m122">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mtext>th</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> solution.</p>
<p>Use Eq. <xref ref-type="disp-formula" rid="e49">(49)</xref> to update the <inline-formula id="inf71">
<mml:math id="m123">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mtext>th</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> solution.</p>
<p>Phase 2: Predator defense strategies</p>
<p>Ps &#x3d; rand if <italic>Ps</italic> &#x3c; 0.5.</p>
<p>Strategy one: Lion-fighting phase</p>
<p>Use mode <italic>S1</italic> in Eq. <xref ref-type="disp-formula" rid="e50">(50)</xref> to determine the new <inline-formula id="inf72">
<mml:math id="m124">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mtext>th</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> solution.</p>
<p>Else</p>
<p>Strategy two: Exploratory phase against other predators</p>
<p>Determine the <inline-formula id="inf73">
<mml:math id="m125">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mtext>th</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> zebra as a new status using mode <italic>S2</italic> in Eq. <xref ref-type="disp-formula" rid="e50">(50)</xref>.</p>
<p>End if</p>
<p>Use Eq. <xref ref-type="disp-formula" rid="e51">(51)</xref> to update the <inline-formula id="inf74">
<mml:math id="m126">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mtext>th</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> solution.</p>
<p>Ending for <italic>i</italic> &#x3d; 1: <italic>N</italic>
</p>
<p>Save the best possible candidate solution.</p>
<p>Ending for <italic>t</italic> &#x3d; 1: <italic>T</italic>
</p>
<p>Display the optimal ZOA solution as the output for the given optimization problem.</p>
<p>Stop <inline-formula id="inf75">
<mml:math id="m127">
<mml:mrow>
<mml:mtext>ZOA</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>The five key components for tuning a PID controller are the fitness function, <inline-formula id="inf76">
<mml:math id="m128">
<mml:mtext>ZOA</mml:mtext>
</mml:math>
</inline-formula> optimization method, PID controller, process, and sensor (feedback). Any controller type can be built using various optimum control parameters (<xref ref-type="bibr" rid="B31">Wilson et al., 2018</xref>). For the objective function (fitness function) to be minimized, some parameters must be calculated (<xref ref-type="bibr" rid="B24">Oleiwi, 2014</xref>). The optimization problem can be expressed using the following concepts that minimize the objective function and applied to the following constraints: <inline-formula id="inf77">
<mml:math id="m129">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">K</mml:mi>
</mml:mrow>
<mml:mi mathvariant="bold-italic">p</mml:mi>
</mml:msub>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="bold-italic">min</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mo>&#x3c;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">p</mml:mi>
</mml:msub>
<mml:mo>&#x3c;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">p</mml:mi>
</mml:msub>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="bold-italic">max</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf78">
<mml:math id="m130">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="bold-italic">min</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mo>&#x3c;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mo>&#x3c;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="bold-italic">max</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf79">
<mml:math id="m131">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">d</mml:mi>
</mml:msub>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="bold-italic">min</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mo>&#x3c;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">d</mml:mi>
</mml:msub>
<mml:mo>&#x3c;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">K</mml:mi>
<mml:mi mathvariant="bold-italic">d</mml:mi>
</mml:msub>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="bold-italic">max</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> (<xref ref-type="bibr" rid="B5">Baruh et al., 2002</xref>). The <inline-formula id="inf80">
<mml:math id="m132">
<mml:mrow>
<mml:mtext>ZOA</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> is used to modify the parameters of each proposed controller to minimize tracking errors between the actual and projected 2-LRRM trajectories. <xref ref-type="fig" rid="F9">Figure 9</xref> shows a block diagram of a tuned PID controller.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>Block schematic diagram for tuning of a PID controller.</p>
</caption>
<graphic xlink:href="frobt-11-1386968-g009.tif"/>
</fig>
</sec>
</sec>
<sec id="s5">
<title>5 Simulation and results</title>
<p>The performances of the 2-LRRM with the proposed controllers for trajectory tracking are examined and discussed in this section. The six proposed controllers, namely W-PID, W-FOPID, RNN-PID, RNN-FOPID, NN &#x2b; PID, and NN &#x2b; FOPID controllers, are compared against each other to minimize the performance index when the nominal model is used. Two starting points are used for <inline-formula id="inf81">
<mml:math id="m133">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (Theta-1: 0.1745, 0.1745) and <inline-formula id="inf82">
<mml:math id="m134">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (Theta-2: &#x2212;0.1745, &#x2013;0.1745) to increase the learning of the controllers. The <inline-formula id="inf83">
<mml:math id="m135">
<mml:mrow>
<mml:mtext>ZOA</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> is used to find the optimal controller&#x2019;s parameters that minimize the ITSE between the calculated and reference trajectories of the 2-LRRM. The settings for the ZOA are population size &#x3d; 100 and maximum number of iterations &#x3d; 1000. The optimal solution obtained from the last iteration is regarded as the final solution. The step size for simulation is taken as h &#x3d; 0.001 s, and the simulation time is taken as 4 s. There are several ways to represent the fractional differentiation and integration components mathematically. The approximation of a fractional operator used in the design of the FOPID controller is Oustaloup&#x2019;s approximation of the fifth order (N &#x3d; 5) with a frequency range of [0.001, 1000] rad/s. Each link&#x2019;s trajectory tracking is determined previously to allow following by the manipulator. The controller with the lowest ITSE value is considered as the best one, and the ITSE is calculated using Eq. <xref ref-type="disp-formula" rid="e52">(52)</xref>.<disp-formula id="e52">
<mml:math id="m136">
<mml:mrow>
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mi mathvariant="bold-italic">T</mml:mi>
<mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mi mathvariant="bold-italic">E</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x222b;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="bold-italic">d</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:math>
<label>(52)</label>
</disp-formula>
</p>
<p>where <inline-formula id="inf84">
<mml:math id="m137">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf85">
<mml:math id="m138">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> are the differences between the reference trajectories for link1 <inline-formula id="inf86">
<mml:math id="m139">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and calculated trajectories for link2 <inline-formula id="inf87">
<mml:math id="m140">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>One of the important advantages of a NN is its flexibility to capturing complex underlying data structures. In the design of NN controllers, this allows production of the most complex control signals with high frequencies (i.e., chattering). In fact, a chattering signal cannot be applied practically, and the optimal solution obtained is not a feasible solution. Therefore, the objective function is modified as demonstrated in Eq. <xref ref-type="disp-formula" rid="e53">(53)</xref>
<disp-formula id="e53">
<mml:math id="m141">
<mml:mrow>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mi mathvariant="bold-italic">b</mml:mi>
<mml:mi mathvariant="bold-italic">j</mml:mi>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi mathvariant="bold-italic">n</mml:mi>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">n</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mi mathvariant="bold-italic">a</mml:mi>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">F</mml:mi>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mi mathvariant="bold-italic">n</mml:mi>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mi mathvariant="bold-italic">s</mml:mi>
<mml:mi mathvariant="bold-italic">s</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mi mathvariant="bold-italic">a</mml:mi>
<mml:mi mathvariant="bold-italic">l</mml:mi>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi mathvariant="bold-italic">e</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mi mathvariant="bold-italic">T</mml:mi>
<mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mi mathvariant="bold-italic">E</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3c1;</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mi mathvariant="bold-italic">n</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(53)</label>
</disp-formula>
</p>
<p>where <bold>
<italic>Sn</italic>
</bold> is the number of times that the control signal&#x2019;s slope changes signs, and <inline-formula id="inf88">
<mml:math id="m142">
<mml:mrow>
<mml:mi mathvariant="bold-italic">&#x3c1;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is a small constant number chosen as <inline-formula id="inf89">
<mml:math id="m143">
<mml:mrow>
<mml:msup>
<mml:mn>10</mml:mn>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>8</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> in this work.</p>
<p>This modified objective function excludes any solutions that contain high chattering control signals from among the candidate solutions. The desired trajectories <inline-formula id="inf90">
<mml:math id="m144">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf91">
<mml:math id="m145">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> for link1 and link2 are given in Eqs <xref ref-type="disp-formula" rid="e54">(54</xref>, <xref ref-type="disp-formula" rid="e55">55)</xref>, respectively:<disp-formula id="e54">
<mml:math id="m146">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn mathvariant="bold">0.75</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">0.25</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mrow>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mo>&#x3c;</mml:mo>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mo>&#x3c;</mml:mo>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1.5</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mn mathvariant="bold">3</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">1.125</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mn mathvariant="bold">0.125</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mo>&#x3c;</mml:mo>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mo>&#x3c;</mml:mo>
<mml:mn mathvariant="bold">4</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(54)</label>
</disp-formula>
<disp-formula id="e55">
<mml:math id="m147">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn mathvariant="bold">1.5</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">0.5</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mo>&#x3c;</mml:mo>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mo>&#x3c;</mml:mo>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn mathvariant="bold">12</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">12</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn mathvariant="bold">4.5</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:mn mathvariant="bold">0.5</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:msup>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mn mathvariant="bold">3</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mn mathvariant="bold">2</mml:mn>
<mml:mo>&#x3c;</mml:mo>
<mml:mi mathvariant="bold-italic">t</mml:mi>
<mml:mo>&#x3c;</mml:mo>
<mml:mn mathvariant="bold">4</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(55)</label>
</disp-formula>
</p>
<p>Now that all details about the simulation and nominal model are available and known, we start applying the ZOA optimizer to adjust the gains of all the suggested controllers based on the nominal model to minimize the ITSE. Since the ZOA is a stochastic algorithm, each controller is simulated 10 times to derive the best results. <xref ref-type="table" rid="T2">Table 2</xref> shows the ITSE values for all proposed control structures when applied to a nominal plant and executed with two initial positions.</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>ITSE values of the suggested controllers for a nominal plant when using two initial positions [0.1745, 0.1745] and [&#x2212;0.1745, &#x2013;0.1745].</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Controller</th>
<th align="center">ITSE</th>
<th align="center">Controller</th>
<th align="center">ITSE</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">W-PID</td>
<td align="center">9.4864 &#xd7; 10<sup>&#x2212;5</sup>
</td>
<td align="center">W-FOPID</td>
<td align="center">8.1697 &#xd7; 10<sup>&#x2212;5</sup>
</td>
</tr>
<tr>
<td align="center">RNN-PID</td>
<td align="center">9.0165 &#xd7; 10<sup>&#x2212;5</sup>
</td>
<td align="center">RNN-FOPID</td>
<td align="center">8.6837 &#xd7; 10<sup>&#x2212;5</sup>
</td>
</tr>
<tr>
<td align="center">NN &#x2b; PID</td>
<td align="center">9.0259 &#xd7; 10<sup>&#x2212;5</sup>
</td>
<td align="center">NN &#x2b; FOPID</td>
<td align="center">7.9676 &#xd7; 10<sup>&#x2212;5</sup>
</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Overall, the findings show that in terms of the ITSE, the suggested controllers with fractional-order integral and derivative actions perform better than those with corresponding integer-order actions. This is attributed to the fact that the tuning parameters of the controller are increased by the FOPID, which in turn increases the number of DOFs, controller capabilities, and robustness. Despite the results being very close to each other, as seen from <xref ref-type="table" rid="T2">Table 2</xref>, the findings indicate that the hybrid NN &#x2b; FOPID structure has the highest ITSE of 7.9676 &#xd7; 10<sup>&#x2212;5</sup> while the W-PID controller has the lowest ITSE of 9.4864 &#xd7; 10<sup>&#x2212;5</sup>. <xref ref-type="fig" rid="F10">Figure 10</xref> shows the trajectory tracking performances of <inline-formula id="inf92">
<mml:math id="m148">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mn mathvariant="bold">1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
<bold>,</bold> <inline-formula id="inf93">
<mml:math id="m149">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b8;</mml:mi>
<mml:mn mathvariant="bold">2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (the paths followed by the 2-LRRM&#x2019;s end effectors), and the suggested controllers&#x2019; torques <bold>&#x1d447;</bold>
<sub>
<bold>1</bold>
</sub> and &#x1d47b;<sub>
<bold>2</bold>
</sub>.</p>
<p>Based on the results, it is concluded that the NN &#x2b; FOPID controller performs better than all the other suggested controllers and that it is the best controller among them.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>
<bold>(A)</bold> Desired and calculated <inline-formula id="inf94">
<mml:math id="m150">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="normal">&#x3b8;</mml:mi>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <bold>(B)</bold> desired and calculated <inline-formula id="inf95">
<mml:math id="m151">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3b8;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <bold>(C)</bold> torque <inline-formula id="inf96">
<mml:math id="m152">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <bold>(D)</bold> torque <inline-formula id="inf97">
<mml:math id="m153">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and <bold>(E)</bold> end-effector trajectories of the 2-LRRM.</p>
</caption>
<graphic xlink:href="frobt-11-1386968-g010.tif"/>
</fig>
</sec>
<sec id="s6">
<title>6 Robustness tests</title>
<p>This section presents the results of the proposed controllers that are subjected to robustness tests. To show the capabilities of each controller, the following experiments are implemented in MATLAB without adjusting the gains or retuning the gains of the proposed controllers.</p>
<sec id="s6-1">
<title>6.1 Initial condition changes</title>
<p>In this test, another set of initial conditions [0.15, 0.15] was considered for [<inline-formula id="inf100">
<mml:math id="m156">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf101">
<mml:math id="m157">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>] to evaluate each controller&#x2019;s robustness and test its ability to follow the required trajectory of the 2-LRRM. <xref ref-type="table" rid="T3">Table 3</xref> presents the ITSE values for each of the suggested controllers. <xref ref-type="fig" rid="F11">Figure 11</xref> depicts the trajectory tracking of <italic>&#x03B8;<sub>1</sub>
</italic> and <italic>&#x03B8;<sub>2</sub>
</italic> and the end-effector of the 2-LRRM by changing the initial location for all suggested controllers.</p>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>ITSE values of the proposed controllers for an initial position of [0.15, 0.15].</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Controller</th>
<th align="center">ITSE</th>
<th align="center">Controller</th>
<th align="center">ITSE</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">W-PID</td>
<td align="center">3.6563 &#xd7; 10<sup>&#x2212;5</sup>
</td>
<td align="center">W-FOPID</td>
<td align="center">2.5491 &#xd7; 10<sup>&#x2212;5</sup>
</td>
</tr>
<tr>
<td align="center">RNN-PID</td>
<td align="center">2.5536 &#xd7; 10<sup>&#x2212;5</sup>
</td>
<td align="center">RNN-FOPID</td>
<td align="center">2.6496 &#xd7; 10<sup>&#x2212;5</sup>
</td>
</tr>
<tr>
<td align="center">NN &#x2b; PID</td>
<td align="center">3.1708 &#xd7; 10<sup>&#x2212;5</sup>
</td>
<td align="center">NN &#x2b; FOPID</td>
<td align="center">2.3871 &#xd7; 10<sup>&#x2212;5</sup>
</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F11" position="float">
<label>FIGURE 11</label>
<caption>
<p>
<bold>(A)</bold>Desired and calculated <inline-formula id="inf98">
<mml:math id="m154">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="normal">&#x3b8;</mml:mi>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <bold>(B)</bold>desired and calculated <inline-formula id="inf99">
<mml:math id="m155">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="normal">&#x3b8;</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and <bold>(C)</bold>2-LRRM end effector trajectories when the starting point is [0.15, 0.15].</p>
</caption>
<graphic xlink:href="frobt-11-1386968-g011.tif"/>
</fig>
<p>Despite altering the starting position, the NN &#x2b; FOPID controller performs better than the other suggested controllers, where the ITSE &#x3d; 2.3871 &#xd7; 10<sup>&#x2212;5</sup> of the NN &#x2b; FOPID controller is the optimal among them. Furthermore, in the trajectory response, NN &#x2b; FOPID has the least amount of overshoot and fastest settling time for <inline-formula id="inf102">
<mml:math id="m158">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> as well as a good overshoot and good settling time for <inline-formula id="inf103">
<mml:math id="m159">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. The W-PID has the worst ITSE of 3.6563 &#xd7; 10<sup>&#x2212;5</sup>, and its responses are poor owing to its large overshoot and lengthy settling times for the<inline-formula id="inf104">
<mml:math id="m160">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf105">
<mml:math id="m161">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> responses. Furthermore, the trajectory of the 2-LRRM end effector for the NN &#x2b; FOPID controller still follows the most similar path as the desired trajectory.</p>
</sec>
<sec id="s6-2">
<title>6.2 Parameter variations</title>
<p>In this test, the parameter variations of the 2-LRRM model are investigated for the suggested control structures by incrementing the mass of each link by 5%. <xref ref-type="table" rid="T4">Table 4</xref> shows the ITSE value of each controller. The RNN-PID controller has the best performance index of ITSE &#x3d; 0.1418 &#xd7; 10<sup>&#x2212;5</sup>, and the tracked trajectories for <inline-formula id="inf106">
<mml:math id="m162">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf107">
<mml:math id="m163">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are closest to the required trajectories of <inline-formula id="inf108">
<mml:math id="m164">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2002;</mml:mtext>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf109">
<mml:math id="m165">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> than the other suggested control structures. Consequently, when using the RNN-PID controller, the trajectory followed by the 2-LRRM end effector with parameter variations is very close to the desired trajectory. The second-best controller is the NN &#x2b; FOPID, with a performance index of ITSE &#x3d; 0.3139 &#xd7; 10<sup>&#x2212;5</sup> and good trajectory tracking for <inline-formula id="inf110">
<mml:math id="m166">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf111">
<mml:math id="m167">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>; the worst controller is the W-PID with ITSE &#x3d; 1.0759 &#xd7; 10<sup>&#x2212;5</sup>, and its trajectory tracking has large overshoots and lengthy settling times. <xref ref-type="fig" rid="F12">Figure 12</xref> shows the trajectories tracked for <inline-formula id="inf112">
<mml:math id="m168">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf113">
<mml:math id="m169">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> as well as the 2-LRRM end effector when the link masses are changed for each controller.</p>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>ITSE values of the proposed controllers when adding 5% to the masses of both links and setting the starting position to [0.0, 0.0].</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Controller</th>
<th align="center">ITSE</th>
<th align="center">Controller</th>
<th align="center">ITSE</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">W-PID</td>
<td align="center">1.0759 &#xd7; 10<sup>&#x2212;5</sup>
</td>
<td align="center">W-FOPID</td>
<td align="center">0.4012 &#xd7; 10<sup>&#x2212;5</sup>
</td>
</tr>
<tr>
<td align="center">RNN-PID</td>
<td align="center">0.1418 &#xd7; 10<sup>&#x2212;5</sup>
</td>
<td align="center">RNN-FOPID</td>
<td align="center">0.3324 &#xd7; 10<sup>&#x2212;5</sup>
</td>
</tr>
<tr>
<td align="center">NN &#x2b; PID</td>
<td align="center">0.7397 &#xd7; 10<sup>&#x2212;5</sup>
</td>
<td align="center">NN &#x2b; FOPID</td>
<td align="center">0.3139 &#xd7; 10<sup>&#x2212;5</sup>
</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F12" position="float">
<label>FIGURE 12</label>
<caption>
<p>Desired and calculated trajectories for <bold>(A)</bold> <inline-formula id="inf114">
<mml:math id="m170">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="normal">&#x3b8;</mml:mi>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <bold>(B)</bold> <inline-formula id="inf115">
<mml:math id="m171">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="normal">&#x3b8;</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and <bold>(C)</bold> 5% added masses to both links for a starting position of [0, 0].</p>
</caption>
<graphic xlink:href="frobt-11-1386968-g012.tif"/>
</fig>
</sec>
<sec id="s6-3">
<title>6.3 Disturbance addition</title>
<p>Another test was conducted to determine the robustness of the proposed control structures by increasing the disturbance terms [sin (50t), sin (50t)] in the control actions [<inline-formula id="inf116">
<mml:math id="m172">
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf117">
<mml:math id="m173">
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>] and setting the initial positions as [0.15,0.15] for [<inline-formula id="inf118">
<mml:math id="m174">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf119">
<mml:math id="m175">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>]. <xref ref-type="table" rid="T5">Table 5</xref> shows the obtained ITSE values of the proposed controllers. The trajectories tracked for <inline-formula id="inf120">
<mml:math id="m176">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf121">
<mml:math id="m177">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>&#x3b8;</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> as well as the end effector of the 2-LRRM by increasing the disturbance term by sin(50t) N&#x2219;m in both links are demonstrated in <xref ref-type="fig" rid="F13">Figure 13</xref>. From the results, it is concluded that the NN &#x2b; FOPID controller performs the best in terms of disturbance rejection when compared to the other controllers. The NN &#x2b; FOPID controller is also the best in terms of the ITSE and has the smallest overshoot during trajectory tracking.</p>
<table-wrap id="T5" position="float">
<label>TABLE 5</label>
<caption>
<p>ITSE values of the suggested controllers with added disturbance of sin(50t) to both links and a starting position of [0.15, 0.15].</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Controller</th>
<th align="center">ITSE</th>
<th align="center">Controller</th>
<th align="center">ITSE</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">W-PID</td>
<td align="center">4.7128 &#xd7; 10<sup>&#x2212;5</sup>
</td>
<td align="center">W_FOPID</td>
<td align="center">3.7435 &#xd7; 10<sup>&#x2212;5</sup>
</td>
</tr>
<tr>
<td align="center">RNN-PID</td>
<td align="center">4.2479 &#xd7; 10<sup>&#x2212;5</sup>
</td>
<td align="center">RNN-FOPID</td>
<td align="center">4.9497 &#xd7; 10<sup>&#x2212;5</sup>
</td>
</tr>
<tr>
<td align="center">NN &#x2b; PID</td>
<td align="center">4.0179 &#xd7; 10<sup>&#x2212;5</sup>
</td>
<td align="center">NN &#x2b; FOPID</td>
<td align="center">3.4328 &#xd7; 10<sup>&#x2212;5</sup>
</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F13" position="float">
<label>FIGURE 13</label>
<caption>
<p>Desired and calculated trajectories for <bold>(A)</bold> <inline-formula id="inf122">
<mml:math id="m178">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="normal">&#x3b8;</mml:mi>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <bold>(B)</bold> <inline-formula id="inf123">
<mml:math id="m179">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3b8;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and <bold>(C)</bold> end effector for an added disturbance of [sin(50t), sin(50t)] and starting point of [0.15, 0.15].</p>
</caption>
<graphic xlink:href="frobt-11-1386968-g013.tif"/>
</fig>
</sec>
<sec id="s6-4">
<title>6.4 All tests conducted simultaneously</title>
<p>This combined test is crucial when evaluating robustness since it determines which of the proposed controllers can be used as the best controller. All suggested controllers are subjected to the combined impacts of added disturbance of sin(50t) to the control signals [<inline-formula id="inf124">
<mml:math id="m180">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf125">
<mml:math id="m181">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>], increasing the masses of the two links by 5%, as well as altering the starting points to [0.15, 0.15]. <xref ref-type="table" rid="T6">Table 6</xref> displays the ITSE value of each controller based on the results attained. Among all the suggested controllers, the lowest ITSE is observed for the NN &#x2b; FOPID controller. <xref ref-type="fig" rid="F14">Figure 14</xref> shows the trajectories tracked for <inline-formula id="inf126">
<mml:math id="m182">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3b8;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf127">
<mml:math id="m183">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="normal">&#x3b8;</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> as well as the end effector of the 2-LRRM for disturbance additions, parameter variations, and initial position changes for all proposed controllers. The NN &#x2b; FOPID controller still shows optimal results and performs better than all the other proposed controllers because the trajectory followed by the 2-LRRM end effector and tracked the trajectories of <inline-formula id="inf128">
<mml:math id="m184">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3b8;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf129">
<mml:math id="m185">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="normal">&#x3b8;</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> for the NN &#x2b; FOPID controller are all close to the required trajectories.</p>
<table-wrap id="T6" position="float">
<label>TABLE 6</label>
<caption>
<p>ITSE between the desired and calculated paths when using a starting point of [0.15, 0.15] with added disturbances of [sin(50t), sin(50t)] and added masses of 5% to both links.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Controller</th>
<th align="center">ITSE</th>
<th align="center">Controller</th>
<th align="center">ITSE</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">W-PID</td>
<td align="center">4.9523 &#xd7; 10<sup>&#x2212;5</sup>
</td>
<td align="center">W-FOPID</td>
<td align="center">3.7390 &#xd7; 10<sup>&#x2212;5</sup>
</td>
</tr>
<tr>
<td align="center">RNN-PID</td>
<td align="center">4.8589 &#xd7; 10<sup>&#x2212;5</sup>
</td>
<td align="center">RNN-FOPID</td>
<td align="center">5.1111 &#xd7; 10<sup>&#x2212;5</sup>
</td>
</tr>
<tr>
<td align="center">NN &#x2b; PID</td>
<td align="center">4.2179 &#xd7; 10<sup>&#x2212;5</sup>
</td>
<td align="center">NN &#x2b; FOPID</td>
<td align="center">3.5742 &#xd7; 10<sup>&#x2212;5</sup>
</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F14" position="float">
<label>FIGURE 14</label>
<caption>
<p>Desired and calculated trajectories for <bold>(A)</bold> <inline-formula id="inf130">
<mml:math id="m186">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="normal">&#x3b8;</mml:mi>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <bold>(B)</bold> <inline-formula id="inf131">
<mml:math id="m187">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3b8;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and <bold>(C)</bold> end effector when using a starting point of [0.15, 0.15], adding a disturbance of sin(50t) to the torques of both links, and adding 5% to the masses of both links.</p>
</caption>
<graphic xlink:href="frobt-11-1386968-g014.tif"/>
</fig>
</sec>
</sec>
<sec sec-type="conclusion" id="s7">
<title>7 Conclusion</title>
<p>In this study, six PID- and FOPID-based control structures are proposed for a 2-LRRM for trajectory tracking; these are named W-PID, W-FOPID, RNN-PID, RNN-FOPID, NN &#x2b; PID, and NN &#x2b; FOPID controllers. To optimize the controller parameters, the ZOA was used offline to minimize the performance index ITSE. The MATLAB simulation results show that all proposed controllers have the ability to quickly reduce the errors between the real and desired paths before tracking the required path. By altering the initial state values, adding disturbances to the control signals, and increasing the masses of the two links, the robustness of each suggested controller was examined. According to the results of the nominal system tuning test and all robustness tests, the NN &#x2b; FOPID has the best control structure among the suggested controllers. The combination of NN with fractional-order integration and differentiation affords high performance and efficient responses, which are reflected in the results. In addition, the modified objective or fitness function allowed ZOA-based tuning of the controller parameters to determine stable responses with fewer fluctuations in the control signals. The trajectory tracking responses for Theta-1 and Theta-2 have the smallest overshoots, shortest settling times, and lowest ITSE values. Moreover, the NN &#x2b; FOPID controller outperformed all the other controllers in the robustness tests. This work also highlights the capacity of the ZOA for fine-tuning the controller parameters. Finally, as a future work, this study can be extended using other optimization techniques instead of the ZOA, such as the firebug swarm optimization algorithm, chimp optimization algorithm, mayfly optimization algorithm, and gazelle optimization algorithm to adjust the controller gains. In addition, a real robot manipulator equipped with all required hardware may be employed to practically implement and verify the suggested controllers.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s8">
<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 id="s9">
<title>Author contributions</title>
<p>MJ: conceptualization, formal analysis, methodology, resources, software, writing&#x2013;original draft, and writing&#x2013;review and editing. BO: conceptualization, formal analysis, methodology, resources, software, validation, writing&#x2013;original draft, and writing&#x2013;review and editing. ATA: conceptualization, formal analysis, investigation, methodology, resources, validation, visualization, and writing&#x2013;review and editing. AM: funding acquisition, investigation, methodology, resources, validation, visualization, and writing&#x2013;review and editing.</p>
</sec>
<sec sec-type="funding-information" id="s10">
<title>Funding</title>
<p>The author(s) declare that financial support was received for the research, authorship, and/or publication of this article. This research was funded by Prince Sultan University, Riyadh, Saudi Arabia. This research was also supported by the Automated Systems and Soft Computing Lab (ASSCL), Prince Sultan University, Riyadh, Saudi Arabia.</p>
</sec>
<ack>
<p>The authors would like to thank Prince Sultan University, Riyadh, Saudi Arabia, for support with the article processing charges (APC) of this publication. The authors specially acknowledge the Automated Systems and Soft Computing Lab (ASSCL) at Prince Sultan University, Riyadh, Saudi Arabia. The authors wish to acknowledge the editor and reviewers for their insightful comments, which have improved the quality of this publication.</p>
</ack>
<sec sec-type="COI-statement" id="s11">
<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="s12">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors, and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Abdulameer</surname>
<given-names>H. I.</given-names>
</name>
<name>
<surname>Mohamed</surname>
<given-names>M. J.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Fractional order fuzzy PID controller design for 2-Link rigid robot manipulator</article-title>. <source>Int. J. Intelligent Eng. Syst.</source> <volume>15</volume> (<issue>3</issue>), <fpage>103</fpage>&#x2013;<lpage>117</lpage>. <pub-id pub-id-type="doi">10.22266/ijies2022.0630.10</pub-id>
</citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ajeil</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Ibraheem</surname>
<given-names>I. K.</given-names>
</name>
<name>
<surname>Azar</surname>
<given-names>A. T.</given-names>
</name>
<name>
<surname>Humaidi</surname>
<given-names>A. J.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Autonomous navigation and obstacle avoidance of an omnidirectional mobile robot using swarm optimization and sensors deployment</article-title>. <source>Int. J. Adv. Robotic Syst.</source> <volume>17</volume> (<issue>3</issue>), <fpage>172988142092949</fpage>&#x2013;<lpage>15</lpage>. <pub-id pub-id-type="doi">10.1177/1729881420929498</pub-id>
</citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Alandoli</surname>
<given-names>E. A.</given-names>
</name>
<name>
<surname>Tian</surname>
<given-names>S. L.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>A critical review of control techniques for flexible and rigid link manipulators</article-title>. <source>Robotica</source> <volume>38</volume> (<issue>12</issue>), <fpage>2239</fpage>&#x2013;<lpage>2265</lpage>. <pub-id pub-id-type="doi">10.1017/S0263574720000223</pub-id>
</citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Azar</surname>
<given-names>A. T.</given-names>
</name>
<name>
<surname>Fernando</surname>
<given-names>E. S.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Fractional order two degree of freedom pid controller for a robotic manipulator with a fuzzy type-2 compensator</article-title>. <source>Proc. Int. Conf. Adv. Intelligent Syst. Inf.</source> <volume>845</volume>, <fpage>77</fpage>&#x2013;<lpage>88</lpage>. <comment>Springer International Publishing</comment>. <pub-id pub-id-type="doi">10.1007/978-3-319-99010-1_7</pub-id>
</citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Baruh</surname>
<given-names>A. M.</given-names>
</name>
<name>
<surname>Nenkova</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2002</year>). <article-title>Adaptive neural control with integral-plus-state action</article-title>. <source>Cybern. Inf. Technol.</source> <volume>2</volume> (<issue>1</issue>), <fpage>37</fpage>&#x2013;<lpage>48</lpage>. <comment>Sofia</comment>.</citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Cao</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Jiang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zuo</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Reinforcement learning-based fixed-time trajectory tracking control for uncertain robotic manipulators with input saturation</article-title>. <source>IEEE Trans. Neural Netw. Learn. Syst.</source> <volume>34</volume> (<issue>8</issue>), <fpage>4584</fpage>&#x2013;<lpage>4595</lpage>. <pub-id pub-id-type="doi">10.1109/TNNLS.2021.3116713</pub-id>
</citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Caro</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Izzo</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Reiner</surname>
<given-names>R. C.</given-names>
</name>
<name>
<surname>Walker</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Stankowich</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>The function of zebra stripes</article-title>. <source>Nat. Commun.</source> <volume>5</volume> (<issue>1</issue>), <fpage>3535</fpage>&#x2013;<lpage>10</lpage>. <pub-id pub-id-type="doi">10.1038/ncomms4535</pub-id>
</citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Dachang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Baolin</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Puchen</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Shouyan</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Constant force PID control for robotic manipulator based on fuzzy neural network algorithm</article-title>. <source>Complexity</source> <volume>2020</volume>, <fpage>1</fpage>&#x2013;<lpage>11</lpage>. <comment>Article ID 3491845</comment>. <pub-id pub-id-type="doi">10.1155/2020/3491845</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Al-Hadithy</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Hammoudi</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2020</year>). &#x201c;<article-title>Two- link robot through strong and stable adaptive sliding mode controller</article-title>,&#x201d; in <conf-name>IEEE 13th International Conference on Developments in eSystems Engineering (DeSE)</conf-name>, <conf-loc>Liverpool, United Kingdom</conf-loc>, <conf-date>December 14-17, 2020</conf-date>.</citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hameed</surname>
<given-names>A. M.</given-names>
</name>
<name>
<surname>Hamoudi</surname>
<given-names>A. K.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>A 2-link robot with adaptive sliding mode controlled by barrier function</article-title>. <source>J. Eur. des Syst&#xe8;mes Automatis&#xe9;s</source> <volume>56</volume> (<issue>6</issue>), <fpage>1105</fpage>&#x2013;<lpage>1113</lpage>. <pub-id pub-id-type="doi">10.18280/jesa.560620</pub-id>
</citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hamoudi</surname>
<given-names>A. K.</given-names>
</name>
<name>
<surname>Rasheed</surname>
<given-names>L. T.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Design and implementation of adaptive backstepping control for position control of propeller-driven pendulum system</article-title>. <source>J. Eur. des Syst&#xe8;mes Automatis&#xe9;s</source> <volume>56</volume> (<issue>2</issue>), <fpage>281</fpage>&#x2013;<lpage>289</lpage>. <pub-id pub-id-type="doi">10.18280/jesa.560213</pub-id>
</citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ibraheem</surname>
<given-names>G. A. R.</given-names>
</name>
<name>
<surname>Azar</surname>
<given-names>A. T.</given-names>
</name>
<name>
<surname>Ibraheem</surname>
<given-names>I. K.</given-names>
</name>
<name>
<surname>Humaidi</surname>
<given-names>A. J.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>A novel design of a neural network-based fractional PID controller for mobile robots using hybridized fruit fly and particle swarm optimization</article-title>. <source>Complexity</source> <volume>2020</volume>, <fpage>1</fpage>&#x2013;<lpage>18</lpage>. <comment>Article ID 3067024</comment>. <pub-id pub-id-type="doi">10.1155/2020/3067024</pub-id>
</citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jenhani</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Gritli</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Carbone</surname>
<given-names>P. G.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Comparison between some nonlinear controllers for the position control of Lagrangian-type robotic systems</article-title>. <source>Chaos Theory Appl.</source> <volume>4</volume>, <fpage>179</fpage>&#x2013;<lpage>196</lpage>. <pub-id pub-id-type="doi">10.51537/chaos.1184952</pub-id>
</citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kareem</surname>
<given-names>A. A.</given-names>
</name>
<name>
<surname>Oleiwi</surname>
<given-names>B. K.</given-names>
</name>
<name>
<surname>Mohamed</surname>
<given-names>J. M.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Planning the optimal 3D quadcopter trajectory using a delivery system-based hybrid algorithm</article-title>. <source>Int. J. Intelligent Eng. Syst.</source> <volume>16</volume> (<issue>2</issue>), <fpage>427</fpage>&#x2013;<lpage>439</lpage>.</citation>
</ref>
<ref id="B15">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Kennedy</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Kennedy</surname>
<given-names>V.</given-names>
</name>
</person-group> (<year>2013</year>). <source>Animals of the masai mara</source>. <publisher-loc>Princeton, NJ, USA</publisher-loc>: <publisher-name>Princeton Univ. Press</publisher-name>.</citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kumar</surname>
<given-names>V.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Evolving an interval type-2 fuzzy PID controller for the redundant robotic manipulator</article-title>. <source>Expert Syst. Appl.</source> <volume>73</volume>, <fpage>161</fpage>&#x2013;<lpage>177</lpage>. <pub-id pub-id-type="doi">10.1016/j.eswa.2016.12.029</pub-id>
</citation>
</ref>
<ref id="B17">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Lewis</surname>
<given-names>F. L.</given-names>
</name>
<name>
<surname>Dawson</surname>
<given-names>D. M.</given-names>
</name>
<name>
<surname>Abdallah</surname>
<given-names>C. T.</given-names>
</name>
</person-group> (<year>2004</year>). <source>Robot manipulator control theory and practice</source>. <publisher-loc>Florida, United States</publisher-loc>: <publisher-name>CRC Press</publisher-name>, <fpage>1</fpage>&#x2013;<lpage>632</lpage>. <pub-id pub-id-type="doi">10.1201/9780203026953</pub-id>
</citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mohamed</surname>
<given-names>M. J.</given-names>
</name>
<name>
<surname>Oleiwi</surname>
<given-names>B. K.</given-names>
</name>
<name>
<surname>Abood</surname>
<given-names>L. H.</given-names>
</name>
<name>
<surname>Azar</surname>
<given-names>A. T.</given-names>
</name>
<name>
<surname>Hameed</surname>
<given-names>I. A.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Neural fractional order PID controllers design for 2-link rigid robot manipulator</article-title>. <source>Fractal Fract.</source> <volume>7</volume> (<issue>9</issue>), <fpage>693</fpage>. <pub-id pub-id-type="doi">10.3390/fractalfract7090693</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mohan</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Chhabra</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Rani</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Singh</surname>
<given-names>V.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>An expert 2DOF fractional order fuzzy PID controller for nonlinear systems</article-title>. <source>Neural Comput. Appl.</source> <volume>31</volume> (<issue>8</issue>), <fpage>4253</fpage>&#x2013;<lpage>4270</lpage>. <pub-id pub-id-type="doi">10.1007/s00521-017-3330-z</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Najm</surname>
<given-names>A. A.</given-names>
</name>
<name>
<surname>Ibraheem</surname>
<given-names>I. K.</given-names>
</name>
<name>
<surname>Azar</surname>
<given-names>A. T.</given-names>
</name>
<name>
<surname>Humaidi</surname>
<given-names>A. J.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Genetic optimization-based consensus control of multi-agent 6-DoF UAV system</article-title>. <source>Sensors</source> <volume>20</volume> (<issue>12</issue>), <fpage>3576</fpage>. <pub-id pub-id-type="doi">10.3390/s20123576</pub-id>
</citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Nohooji</surname>
<given-names>H. R.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Constrained neural adaptive PID control for robot manipulators</article-title>. <source>J. Frankl. Inst.</source> <volume>357</volume> (<issue>7</issue>), <fpage>3907</fpage>&#x2013;<lpage>3923</lpage>. <pub-id pub-id-type="doi">10.1016/j.jfranklin.2019.12.042</pub-id>
</citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Oleiwi</surname>
<given-names>B. K.</given-names>
</name>
<name>
<surname>Al-Jarrah</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Roth</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Kazem</surname>
<given-names>B. I.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Integrated motion planning and control for multi objectives optimization and multi robots navigation</article-title>. <source>IFAC-PapersOnLine</source> <volume>48</volume> (<issue>10</issue>), <fpage>99</fpage>&#x2013;<lpage>104</lpage>. <pub-id pub-id-type="doi">10.1016/j.ifacol.2015.08.115</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Oleiwi</surname>
<given-names>B. K.</given-names>
</name>
<name>
<surname>Mahfuz</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Roth</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>Application of fuzzy logic for collision avoidance of mobile robots in dynamic-indoor environments</article-title>,&#x201d; in <conf-name>Proceedings of the 2nd International Conference on Robotics, Electrical and Signal Processing Techniques (ICREST)</conf-name>, <conf-loc>Dhaka, Bangladesh</conf-loc>, <conf-date>5-7 January, 2021</conf-date>, <fpage>131</fpage>&#x2013;<lpage>136</lpage>.</citation>
</ref>
<ref id="B24">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Oleiwi</surname>
<given-names>B. K.</given-names>
</name>
<name>
<surname>Roth</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Kazem</surname>
<given-names>B. I.</given-names>
</name>
</person-group> (<year>2014</year>). &#x201c;<article-title>Multi objective optimization of path and trajectory planning for non-holonomic mobile robot using enhanced genetic algorithm</article-title>,&#x201d; in <source>Neural networks and artificial intelligence. ICNNAI 2014. Communications in computer and information science, vol 440</source>. Editors <person-group person-group-type="editor">
<name>
<surname>Golovko</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Imada</surname>
<given-names>A.</given-names>
</name>
</person-group> (<publisher-loc>Cham</publisher-loc>: <publisher-name>Springer</publisher-name>). <pub-id pub-id-type="doi">10.1007/978-3-319-08201-1_6</pub-id>
</citation>
</ref>
<ref id="B25">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Pastor</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Cohen</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Hobbs</surname>
<given-names>N. T.</given-names>
</name>
</person-group> (<year>2006</year>). &#x201c;<article-title>The roles of large herbivores in ecosystem nutrient cycles</article-title>,&#x201d; in <source>Large herbivore ecology ecosystem dynamics and conservation conservation biology</source> (<publisher-loc>Cambridge, UK</publisher-loc>: <publisher-name>Cambridge Univ. Press</publisher-name>), <fpage>289</fpage>&#x2013;<lpage>325</lpage>.</citation>
</ref>
<ref id="B26">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Raafat</surname>
<given-names>S. M.</given-names>
</name>
<name>
<surname>Raheem</surname>
<given-names>F. A.</given-names>
</name>
</person-group> (<year>2017</year>). &#x201c;<article-title>Introduction to robotics-mathematical issues</article-title>,&#x201d; in <source>Mathematical advances towards sustainable environmental systems</source> (<publisher-loc>&#x200f;</publisher-loc>
<publisher-name>Springer</publisher-name>), <fpage>261</fpage>&#x2013;<lpage>289</lpage>. <pub-id pub-id-type="doi">10.1007/978-3-319-43901-3_12</pub-id>
</citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sharma</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Gaur</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Mittal</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Performance analysis of two-degree of freedom fractional order PID controllers for robotic manipulator with payload</article-title>. <source>ISA Trans.</source> <volume>58</volume>, <fpage>279</fpage>&#x2013;<lpage>291</lpage>. <pub-id pub-id-type="doi">10.1016/j.isatra.2015.03.013</pub-id>
</citation>
</ref>
<ref id="B28">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Shojaei</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Kazemy</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Chatraei</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>An observer-based neural adaptive PID2 controller for robot manipulators including motor dynamics with a prescribed performance</article-title>. <source>IEEE/ASME Trans. Mechatronics</source> <volume>269</volume> (<issue>3</issue>), <fpage>1689</fpage>&#x2013;<lpage>1699</lpage>. <pub-id pub-id-type="doi">10.1109/TMECH.2020.3028968</pub-id>
</citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Shuyang</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>John</surname>
<given-names>T. W.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Industrial robot trajectory tracking control using multi-layer neural networks trained by iterative learning control</article-title>. <source>Robotics</source> <volume>10</volume> (<issue>1</issue>), <fpage>50</fpage>. <pub-id pub-id-type="doi">10.3390/robotics10010050</pub-id>
</citation>
</ref>
<ref id="B30">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Trojovsk&#xe1;</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Dehghani</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Trojovsk&#xfd;</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Zebra optimization algorithm: a new bio-inspired optimization algorithm for solving optimization algorithm</article-title>. <source>IEEE Access</source> <volume>10</volume>, <fpage>49445</fpage>&#x2013;<lpage>49473</lpage>. <pub-id pub-id-type="doi">10.1109/access.2022.3172789</pub-id>
</citation>
</ref>
<ref id="B31">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wilson</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Hubel</surname>
<given-names>T. Y.</given-names>
</name>
<name>
<surname>Wilshin</surname>
<given-names>S. D.</given-names>
</name>
<name>
<surname>Lowe</surname>
<given-names>J. C.</given-names>
</name>
<name>
<surname>Lorenc</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Dewhirst</surname>
<given-names>O. P.</given-names>
</name>
<etal/>
</person-group> (<year>2018</year>). <article-title>Biomechanics of predator&#x2013;prey arms race in lion zebra cheetah and impala</article-title>. <source>Nature</source> <volume>554</volume> (<issue>7691</issue>), <fpage>183</fpage>&#x2013;<lpage>188</lpage>. <pub-id pub-id-type="doi">10.1038/nature25479</pub-id>
</citation>
</ref>
<ref id="B32">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Feng</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Xue</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Han</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Deep convolutional neural network based fractional-order terminal sliding-mode control for robotic manipulators</article-title>. <source>Neurocomputing</source> <volume>416</volume> (<issue>27</issue>), <fpage>143</fpage>&#x2013;<lpage>151</lpage>. <pub-id pub-id-type="doi">10.1016/j.neucom.2019.04.087</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>