<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Control. Eng.</journal-id>
<journal-title>Frontiers in Control Engineering</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Control. Eng.</abbrev-journal-title>
<issn pub-type="epub">2673-6268</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1061830</article-id>
<article-id pub-id-type="doi">10.3389/fcteg.2022.1061830</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Control Engineering</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>PID control: Resilience with respect to controller implementation</article-title>
<alt-title alt-title-type="left-running-head">Alfaro and Vilanova</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/fcteg.2022.1061830">10.3389/fcteg.2022.1061830</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Alfaro</surname>
<given-names>V. M.</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Vilanova</surname>
<given-names>R.</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/973195/overview"/>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>Departamento de Autom&#xe1;tica</institution>, <institution>Escuela de Ingenier&#xed;a El&#xe9;ctrica</institution>, <institution>Universidad de Costa Rica</institution>, <addr-line>San Jos&#xe9;</addr-line>, <country>Costa Rica</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>School of Engineering</institution>, <institution>Department Telecommunications and Systems Engineering</institution>, <institution>Universitat Autonoma Barcelona</institution>, <addr-line>Barcelona</addr-line>, <country>Spain</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/997495/overview">Julio Elias Normey-Rico</ext-link>, Federal University of Santa Catarina, Brazil</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/988845/overview">Ruth Bars</ext-link>, Budapest University of Technology and Economics, Hungary</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1013694/overview">Jose Luis Guzman</ext-link>, University of Almeria, Spain</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: V. M. Alfaro, <email>victor.alfaro@ucr.ac.cr</email>; R. Vilanova, <email>ramon.vilanova@uab.cat</email>
</corresp>
<fn fn-type="other">
<p>This article was submitted to Control and Automation Systems, a section of the journal Frontiers in Control Engineering</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>25</day>
<month>11</month>
<year>2022</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>3</volume>
<elocation-id>1061830</elocation-id>
<history>
<date date-type="received">
<day>05</day>
<month>10</month>
<year>2022</year>
</date>
<date date-type="accepted">
<day>08</day>
<month>11</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2022 Alfaro and Vilanova.</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Alfaro and Vilanova</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>One of the major drawbacks of the basic parallel formulations of a PID controller is the effects of proportional and derivative kick. In order to minimize these effects, modified forms of parallel controller structures such as PI-D and I-PD are usually considered in practice. In addition, there is a usual servo/regulation tradeoff regarding closed-loop control system operation. Appropriate tuning is needed for each situation. One way of focusing explicitly on load disturbance is by the appropriate selection of a controller equation. A gap is generated here between the conception of a tuning rule and its final application that may need deployment on different controller equations. There is no <italic>danger</italic> when we go from PI-D to I-PD as we just change reference processing. However, there will be a loss of performance. The potential loss of performance, depending on the final controller equations used, motivates the authors to introduce the idea of resilient PID tuning: minimize the effects of changing the controller equation on the achieved performance/robustness. Today, this can be seen as a complement to the well-known controller fragility concept. On the basis of this scenario, this paper motivates the analysis of a tuning rule from such a point of view and also emphasizes the benefits that a better process model may provide from such an aspect.</p>
</abstract>
<kwd-group>
<kwd>PID</kwd>
<kwd>controller structure</kwd>
<kwd>process industry</kwd>
<kwd>tuning rules</kwd>
<kwd>robustness</kwd>
</kwd-group>
<contract-sponsor id="cn001">Ministerio de Econom&#xed;a y Competitividad<named-content content-type="fundref-id">10.13039/501100003329</named-content>
</contract-sponsor>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>The proportional&#x2013;integral&#x2013;derivative (PID) controller was first proposed in 1922 by <xref ref-type="bibr" rid="B15">Minorsky (1922)</xref> and first applied in industrial applications in 1939 (<xref ref-type="bibr" rid="B12">Bennett, 1993</xref>). Since then, it has been considered an effective tool and is one of the most common control schemes that have dominated the majority of industrial processes and mechanical systems because of its versatility, high reliability, and ease of operation (<xref ref-type="bibr" rid="B11">Astrom and Hagglund, 2006</xref>). PID controllers can be manually tuned appropriately by the operators and control engineers based on the empirical knowledge when the mathematical model of the controlled plant is unknown. Some classical tuning methods, such as Ziegler&#x2013;Nichols method (<xref ref-type="bibr" rid="B25">Ziegler and Nichols, 1942</xref>), Chien&#x2013;Hrones&#x2013;Reswick method (<xref ref-type="bibr" rid="B13">Chien et al., 1952</xref>), IMC (<xref ref-type="bibr" rid="B18">Rivera et al., 1986</xref>), S-IMC (<xref ref-type="bibr" rid="B20">Skogestad, 2003</xref>), robust IMC (<xref ref-type="bibr" rid="B24">Vilanova, 2008</xref>), and MoReRT (<xref ref-type="bibr" rid="B5">Alfaro and Vilanova, 2016</xref>), are applied to the process control, and the performance is then significantly outperformed compared to the one that is manually tuned.</p>
<p>One of the major drawbacks of the basic parallel formulations of PID controllers is the effects of proportional and derivative kick. The changes in the set point cause an impulse signal or sudden change in the controller output as well as in the output response (<xref ref-type="bibr" rid="B14">Johnson, 2005</xref>). The controller output is given to the final control elements like control valve, motor, or electronic circuit in which the spikes create serious problems. In order to minimize these effects, modified forms of parallel controller structures such as ID-P and I-PD are usually considered in practice as suggested by <xref ref-type="bibr" rid="B17">Ogawa and Kano (2008)</xref> and <xref ref-type="bibr" rid="B9">Ang et al. (2005)</xref>.</p>
<p>Another motivation for the appropriate selection of the controller structure comes from the differences that arise depending on the mode of operation of the designed closed-loop. This is a common factor (<xref ref-type="bibr" rid="B16">O&#x2019;Dwyer, 2009</xref>) that all approaches face: the frequently referred topic of set-point tracking vs. disturbance rejection performance. It is well-known (<xref ref-type="bibr" rid="B1">Alcantara et al., 2013</xref>) that there is an inherent tradeoff between both modes of operation in addition to the also well-known performance/robustness tradeoff. This distinction has made available in recent years a number of research works that analyze and provide tuning solutions to each one of the operational modes under a variety of performance indexes as well as control constraints. However, it has also been recognized (<xref ref-type="bibr" rid="B19">Shinskey, 2002</xref>; <xref ref-type="bibr" rid="B21">Vilanova et al., 2017</xref>) that disturbance rejection is much more important than set-point tracking for many process control applications, leading set-point tracking to a secondary level of interest. Therefore, a controller design that emphasizes disturbance rejection rather than set-point tracking is an important design problem that, even if it has been the focus of research, it may have not received the appropriate attention. One way of focusing explicitly on load disturbance is by the appropriate selection of the controller equation. In the ideal PID formulation, all the three modes process the error signal and therefore both the reference and the disturbance signals. However, industrial software packages (<xref ref-type="bibr" rid="B9">Ang et al., 2005</xref>) used to offer a choice menu where different implementations are available. One can choose which controller modes are fed with the reference signal. From this aspect, we can go, for example, from PID to PI-D, where the derivative term just acts on the process output, or the I-PD where the error signal is just seen by the integral term.</p>
<p>On the basis of the previous situation, the authors aim to focus on the idea of resilience of PID tuning rules. This is the idea of tuning rules that guarantee appropriate performance and robustness even when applied on a different PID formulation from the one the tuning rule was conceived for. We do not refer in this work to the problem of not appropriately converting the tuning equations and making them consistent with the controller formulation. This has already been addressed by <xref ref-type="bibr" rid="B2">Alfaro and Vilanova (2012a)</xref> for what matters to the changes in the PID equation. However, a deep analysis of the implications that the signal processed by each controller mode does have on the resulting closed-loop control performance is still needed. This will serve as a basis for evaluating the resilience of the tuning.</p>
<p>
<xref ref-type="bibr" rid="B22">Vilanova et al. (2018a)</xref> presented a robust tuning rule for I-PD controllers from the point of view of solving the servo vs. regulation choice for tuning. From this perspective, the I-PD implementation is conceived as an alternative that provides a structural solution to tradeoff tuning. The proposal states that a direct, simple, and efficient solution is found if the controller tuning is addressed for the servo mode but using the I-PD controller structure. The effects of the usual tuning rules implemented as an I-PD controller are analyzed, and the loss of performance of the usual IMC tuning, for example, is reported. However, it is to be noted that the IMC tuning is essentially a servo tuning. Therefore, when implemented as an I-PD controller, the loss of performance is expected because the proportional term does not process the process output. This analysis, however, even if correct, is not general and does not imply that all tunings will underperform when implemented as an I-PD controller. In other words, the lack of resilience should not be taken for granted.</p>
<p>On the basis of the previous scenario, the purpose of this work is to gain insights into such a resilience concept. We analyze the performance and robustness of the implementation of simple robust tuning (SRT) presented by <xref ref-type="bibr" rid="B4">Alfaro and Vilanova (2013)</xref> when I-PD and PID formulations are considered both a 1-DoF and a 2-DoF controller. The evaluation is confronted with robust tuning explicitly designed for the I-PD controller as presented by <xref ref-type="bibr" rid="B22">Vilanova et al. (2018a</xref>). This comparison is not conducted with the aim of establishing the best tuning but to illustrate the advantages of the resilience with respect to controller implementation.</p>
<p>The following section reviews the concepts of fragility and resilience with respect to robustness and performance as they will be used in the work. Next, the control problem formulation is presented, and the differences between PID controller implementations are stated. Notation is introduced regarding PID implementation in terms of signal processing. Following this, simple robust tuning (SRT) is presented. <xref ref-type="sec" rid="s5">Section 5</xref> presents an evaluation of a benchmark process and different robustness levels, followed by a discussion on the resilience idea and some concluding remarks.</p>
</sec>
<sec id="s2">
<title>2 Fragility evaluation</title>
<p>
<xref ref-type="bibr" rid="B8">Alfaro (2007</xref>) presented the concept of controller fragility. Fragility introduces a measure of the change (in fact, the loss) in the controlled closed-loop system robustness due to a change in the controller parameters (changes up to 20% are usually associated to the final fine-tuning of the controller). The loss of robustness caused because of this change in the controller parameters is evaluated by means of the delta 20 fragility index. Values of this index determine if the tuning is fragile (&#x3e;0.5), non-fragile (&#x2265;0.5), or resilient (&#x2265;0.1).</p>
<p>Two main differences arise in the idea presented here. First of all, the property that may change is not robustness but the performance. Second, the motivation for such a change is not a change in the controller parameters but a change in the equation that implements the controller.</p>
<p>The notion we introduce in this work refers to controller implementation. In fact, the main difference with respect to the notion of the controller&#x2019;s fragility presented by <xref ref-type="bibr" rid="B8">Alfaro (2007</xref>) is the effect generated by an eventual small change on the controller parameters, whereas here the tuning remains fixed, but the controller equations are the ones that may change. The changes in the controller equation that are considered here mainly refer to reference processing. Even one of the degrees of freedom may be lost. What matters here is which controller modes (proportional and/or integral) process the reference signal and in which way (using the set-point weight&#x2014;2-DoF&#x2014;or not&#x2014;1-DoF)<xref ref-type="fn" rid="fn1">
<sup>1</sup>
</xref>. In all such cases, the feedback properties remain unchanged. Therefore, the control system will experience a potential reduction in the tracking performance. Its robustness and regulation properties will remain unchanged.</p>
<p>The classification proposed by <xref ref-type="bibr" rid="B8">Alfaro (2007</xref>) as fragile, non-fragile, or resilient, in terms of the delta 20 fragility index, is chosen because the change in the controller parameters may turn a control system with a highly robust controller (with <italic>M</italic>
<sub>
<italic>s</italic>
</sub> between 1.2 and 1.4) into one with minimum acceptable robustness (<italic>M</italic>
<sub>
<italic>s</italic>
</sub> &#x2248; 2.0)<xref ref-type="fn" rid="fn2">
<sup>2</sup>
</xref>.</p>
<p>In this case, it is not possible to get an idea of relative loss because the change in the controller is structural. It gets difficult to establish a single number as a threshold where we can say whether the performance loss is acceptable or not. This will be process- and application-dependent. In addition, it must be considered that as the effects of the implementation will be just on tracking, the evaluation will depend on the measure that the control system will operate as a regulator or as a servo. There are too many considerations that prevent a single, objective definition to be established. However, even in this different framework, it is the author&#x2019;s opinion to better consider a conceptual extension of the initial fragility index along the same lines as presented by <xref ref-type="bibr" rid="B3">Alfaro and Vilanova (2012b</xref>) for the idea of performance fragility with respect to a small variation in the controller parameters.</p>
<p>Therefore, we propose to extend the same classification of performance-fragile, non-fragile, and resilient controllers as presented by <xref ref-type="bibr" rid="B3">Alfaro and Vilanova (2012b</xref>), but with respect to a change in the controller implementation rather than a 20% change in its parameters. Of course, this adoption is made with the idea of avoiding to introduce other different and subjective measures. Considering a change in the controller&#x2019;s equation implementation, the delta performance-fragility index, <italic>PFI</italic>
<sub>&#x394;</sub>, could define the maximum loss of the control system performance with respect to the original equation the controller was conceived for (<xref ref-type="bibr" rid="B3">Alfaro and Vilanova, 2012b</xref>):<disp-formula id="e1">
<mml:math id="m1">
<mml:mi>P</mml:mi>
<mml:mi>F</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo movablelimits="false" form="prefix">&#x2250;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>o</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
</mml:math>
<label>(1)</label>
</disp-formula>where <inline-formula id="inf1">
<mml:math id="m2">
<mml:msubsup>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>o</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> is the performance measure index evaluated on the nominal system and <inline-formula id="inf2">
<mml:math id="m3">
<mml:msubsup>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> is the extreme value for the same index evaluated when a &#x394; variation in the controller parameters is introduced. This index usually takes the form of an integral criterion such as IAE, ITAE, ISE, and ITSE. However, it does not need to be constrained to this form. Based on the <italic>PFI</italic>
<sub>&#x394;</sub>, the controller&#x2019;s performance, its fragility degree is defined as follows:<list list-type="simple">
<list-item>
<p>&#x2022; Performance-fragile PID controller: A PID controller is performance-fragile if its delta performance fragility index is higher than 0.50, <italic>PFI</italic>
<sub>&#x394;</sub> &#x3e; 0.50.</p>
</list-item>
<list-item>
<p>&#x2022; Performance-non-fragile PID controller: A PID controller is performance-non-fragile if its delta performance fragility index is less than or equal to 0.50, <italic>PFI</italic>
<sub>&#x394;</sub> &#x2264; 0.50.</p>
</list-item>
<list-item>
<p>&#x2022; Performance-resilient PID controller: A PID controller is performance-resilient if its delta performance fragility index is less than or equal to 0.10, <italic>PFI</italic>
<sub>&#x394;</sub> &#x2264; 0.10.</p>
</list-item>
</list>
</p>
</sec>
<sec id="s3">
<title>3 Control problem and PID controller formulation</title>
<p>In this section, we revise the control problem formulation as well as the formulation of the PID controller equation and the different options for error, feedback, and reference signal processing. As some of the concepts, especially what matters to the control problem are well-known, the presentation will be succinct.</p>
<sec id="s3-1">
<title>3.1 Control problem</title>
<p>Consider a closed-loop control system, as shown in <xref ref-type="fig" rid="F1">Figure 1</xref>, where <italic>P</italic>(<italic>s</italic>) is the controlled process model and <italic>C</italic>
<sub>
<italic>r</italic>
</sub>(<italic>s</italic>) and <italic>C</italic>
<sub>
<italic>y</italic>
</sub>(<italic>s</italic>) are the transfer functions of the set-point controller and the feedback controller, respectively. In this system, <italic>r</italic>(<italic>s</italic>) is the set point, <italic>u</italic>(<italic>s</italic>) is the controller output signal, <italic>d</italic>(<italic>s</italic>) is the load disturbance, and <italic>y</italic>(<italic>s</italic>) is the controlled process variable.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Closed-loop control system.</p>
</caption>
<graphic xlink:href="fcteg-03-1061830-g001.tif"/>
</fig>
<p>The control system output is<disp-formula id="e2">
<mml:math id="m4">
<mml:mi>y</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mi>r</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mi>d</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(2)</label>
</disp-formula>where the <italic>servo-control</italic> and the <italic>regulatory control</italic> closed-loop transfer functions are<disp-formula id="e3">
<mml:math id="m5">
<mml:mspace width="0.3333em"/>
<mml:msub>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mi>P</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mi>P</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(3)</label>
</disp-formula>and<disp-formula id="e4">
<mml:math id="m6">
<mml:msub>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mi>P</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:math>
<label>(4)</label>
</disp-formula>respectively, that are related by<disp-formula id="e5">
<mml:math id="m7">
<mml:msub>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:msub>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:math>
<label>(5)</label>
</disp-formula>
</p>
<p>As the control system closed-loop characteristic polynomial is<disp-formula id="e6">
<mml:math id="m8">
<mml:mi>p</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mi>P</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(6)</label>
</disp-formula>the control system relative stability depends on the controlled process model and the feedback controller parameters but not on the set-point controller parameters that are not included in the feedback controller transfer function.</p>
<p>Given a controlled process model <italic>P</italic>(<italic>s</italic>) and the controller <italic>C</italic>(<italic>s</italic>) &#x3d; {<italic>C</italic>
<sub>
<italic>r</italic>
</sub>(<italic>s</italic>), <italic>C</italic>
<sub>
<italic>y</italic>
</sub>(<italic>s</italic>)}, control algorithm parameters must be selected considering the control system robustness&#x2014;relative stability&#x2014;and its performance under a selected design metric.</p>
</sec>
<sec id="s3-2">
<title>3.2 PID controllers</title>
<p>As a general controller, the two-degree-of-freedom (2-DoF) proportional integral derivative control algorithm,<disp-formula id="e7">
<mml:math id="m9">
<mml:mi>u</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="{" close="}">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
<mml:mi>r</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:msubsup>
<mml:mrow>
<mml:mo>&#x222b;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi>&#x3be;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>r</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(7)</label>
</disp-formula>is considered that can be expressed in the <italic>s</italic> domain as<disp-formula id="e8">
<mml:math id="m10">
<mml:mi>u</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="{" close="}">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
<mml:mi>r</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>r</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(8)</label>
</disp-formula>where <italic>K</italic>
<sub>
<italic>p</italic>
</sub> is the controller proportional gain, T<sub>i</sub> is the integral time, T<sub>d</sub> is the derivative time, &#x3b1; is the derivative filter constant, &#x3b2; is the proportional set-point weight factor, and &#x3b3; is the derivative set-point weight factor. It is to be noted that in <xref ref-type="disp-formula" rid="e8">Eq. 8</xref>, as usual practice, a first-order filter has been added to the derivative term.</p>
<p>Controller output <xref ref-type="disp-formula" rid="e8">Eq. 8</xref> can be expressed as<disp-formula id="e9">
<mml:math id="m11">
<mml:mi>u</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mi>r</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mi>y</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(9)</label>
</disp-formula>and the control system error signal is<disp-formula id="e10">
<mml:math id="m12">
<mml:mi>e</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>r</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:math>
<label>(10)</label>
</disp-formula>
</p>
<p>Selection of the set-point weight factors &#xdf; and <italic>&#x3b3;</italic> allows to obtain the different members of the PID controller &#x201c;family&#x201d;: the general 2-DoF PID controller <italic>PID</italic>
<sub>
<italic>e</italic>2</sub>&#x2014;control modes act on different weighted error signals; the 2-DoF PID controller <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub>&#x2014;derivative mode acts only on the feedback signal; the basic one-degree-of-freedom (1-DoF) PID controller <italic>PID</italic>
<sub>
<italic>e</italic>1</sub>&#x2014;all control modes act on the error signal; the 1-DoF <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>1</sub> controller&#x2014;proportional and integral control modes act on the error; and the 1-DoF <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PI</italic>
<sub>
<italic>y</italic>1</sub> controller&#x2014;only the integral control acts on the error signal, as listed in <xref ref-type="table" rid="T1">Table 1</xref>. <xref ref-type="fig" rid="F2">Figure 2</xref> shows a generic block diagram of a 2-DoF PID controller, showing the role of the &#xdf; and <italic>&#x3b3;</italic> weights according to this table.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>PID controller &#x201c;family.&#x201d;</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left"/>
<th align="left">
<italic>&#x3b2;</italic>
</th>
<th align="left">
<italic>&#x393;</italic>
</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">
<italic>PID</italic>
<sub>
<italic>e</italic>2</sub>
</td>
<td align="left">
<inline-formula id="inf3">
<mml:math id="m13">
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:math>
</inline-formula>
</td>
<td align="left">[0&#x22ef;1]</td>
</tr>
<tr>
<td align="left">
<italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub>
</td>
<td align="left">
<inline-formula id="inf4">
<mml:math id="m14">
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:math>
</inline-formula>
</td>
<td align="left">0</td>
</tr>
<tr>
<td align="left">
<italic>PID</italic>
<sub>
<italic>e</italic>1</sub>
</td>
<td align="left">1</td>
<td align="left">1</td>
</tr>
<tr>
<td align="left">
<italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>1</sub>
</td>
<td align="left">1</td>
<td align="left">0</td>
</tr>
<tr>
<td align="left">
<italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub>
</td>
<td align="left">0</td>
<td align="left">0</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Block diagram of a PID controller <xref ref-type="disp-formula" rid="e8">Eq. 8</xref> representing all situations for the PID controller&#x2019;s &#x201c;family&#x201d; shown in <xref ref-type="table" rid="T1">Table 1</xref>.</p>
</caption>
<graphic xlink:href="fcteg-03-1061830-g002.tif"/>
</fig>
<p>From <xref ref-type="disp-formula" rid="e8">Eq. 8</xref> and <xref ref-type="table" rid="T1">Table 1</xref>, it is found that all the aforementioned PID control algorithms provide the same feedback controller but different regulatory controllers as follows&#x2014;considering here only controllers with no derivative &#x201c;kick&#x201d; (<italic>&#x3b3;</italic> &#x3d; 0):<list list-type="simple">
<list-item>
<p>&#x2022; Feedback controller of all the <italic>PID</italic> algorithms:</p>
</list-item>
</list>
<disp-formula id="e11">
<mml:math id="m15">
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:math>
<label>(11)</label>
</disp-formula>
<list list-type="simple">
<list-item>
<p>&#x2022; Set-point controller of the <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub>:</p>
</list-item>
</list>
<disp-formula id="e12">
<mml:math id="m16">
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:math>
<label>(12)</label>
</disp-formula>
<list list-type="simple">
<list-item>
<p>&#x2022; Set-point controller of the <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>1</sub>:</p>
</list-item>
</list>
<disp-formula id="e13">
<mml:math id="m17">
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:math>
<label>(13)</label>
</disp-formula>
<list list-type="simple">
<list-item>
<p>&#x2022; Set-point controller of the <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub>:</p>
</list-item>
</list>
<disp-formula id="e14">
<mml:math id="m18">
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>.</mml:mo>
</mml:math>
<label>(14)</label>
</disp-formula>
</p>
<p>In the I-PD controller structure, all three parameters contribute to the disturbance attenuation as all three parameters process the output signal. On the other hand, only the integral time constant contributes to the tracking performance. Therefore, the final allocation of the controller gains should result in different controller tunings depending on the use of an I-PD or a PID. Questions such as the following ones naturally arise: will the performance of the I-PD degrade significantly from the PID one? Will it be beneficial to elaborate tuning rules specifically for the I-PD configuration?</p>
</sec>
</sec>
<sec id="s4">
<title>4 Simple robust tuning</title>
<p>As presented, the simple robust tuning (SRT) method by <xref ref-type="bibr" rid="B4">Alfaro and Vilanova (2013</xref>) is considered for evaluation with respect to the different PID controller implementations. In this section, the SRT formulation, tuning equations, and robustness characterization are presented. The SRT equations for the 2-DoF PID controllers (<italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub>) are obtained on the basis of a performance/robustness tradeoff analysis.</p>
<p>The SRT method regards a controlled process as a generic SOPDT model, given by the following transfer function:<disp-formula id="e15">
<mml:math id="m19">
<mml:mtable class="align" columnalign="left">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mi>P</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:mn>0</mml:mn>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>a</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mspace width="0.3333em"/>
<mml:mspace width="0.3333em"/>
<mml:mn>0.1</mml:mn>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2264;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(15)</label>
</disp-formula>covering first- and second-order plus dead-time overdamped processes.</p>
<p>The control system performance is optimized under the <italic>integrated absolute error</italic> (IAE) cost functional<disp-formula id="e16">
<mml:math id="m20">
<mml:msub>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo movablelimits="false" form="prefix">&#x2250;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mo>&#x222b;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>e</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mo>&#x222b;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>r</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>y</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
</mml:math>
<label>(16)</label>
</disp-formula>and its robustness is measured with the <italic>maximum sensitivity</italic>
<disp-formula id="e17">
<mml:math id="m21">
<mml:msub>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo movablelimits="false" form="prefix">&#x2250;</mml:mo>
<mml:munder>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>S</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="normal">j</mml:mi>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:munder>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="normal">j</mml:mi>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mi>P</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="normal">j</mml:mi>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo stretchy="false">&#x7c;</mml:mo>
</mml:mrow>
</mml:mfrac>
<mml:mo>.</mml:mo>
</mml:math>
<label>(17)</label>
</disp-formula>
</p>
<p>As additional performance evaluation metrics, the <italic>control effort total variation</italic>
<disp-formula id="e18">
<mml:math id="m22">
<mml:mi>T</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo movablelimits="false" form="prefix">&#x2250;</mml:mo>
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mo>,</mml:mo>
</mml:math>
<label>(18)</label>
</disp-formula>and the <italic>controller output instant change</italic> to a set-point step change<disp-formula id="e19">
<mml:math id="m23">
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo movablelimits="false" form="prefix">&#x2250;</mml:mo>
<mml:mi>&#x3b2;</mml:mi>
<mml:mspace width="0.3333em"/>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="0.3333em"/>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
</mml:math>
<label>(19)</label>
</disp-formula>can be used.</p>
<p>Analysis of the regulatory control performance and robustness shows that for a model with a given time constant ratio <italic>a</italic>, increasing the control system target robustness <inline-formula id="inf5">
<mml:math id="m24">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> results in a substantial reduction in the controller gain <italic>K</italic>
<sub>
<italic>p</italic>
</sub> but has a negligible effect on the controller integral time <italic>T</italic>
<sub>
<italic>i</italic>
</sub> and the derivative time <italic>T</italic>
<sub>
<italic>d</italic>
</sub>. As a result, tuning equations that are independent of the desired robustness are obtained for the <italic>T</italic>
<sub>
<italic>i</italic>
</sub> and <italic>T</italic>
<sub>
<italic>d</italic>
</sub> controller parameters. On the other hand, <italic>K</italic>
<sub>
<italic>p</italic>
</sub> is used to match the control system target robustness level and becomes the only robustness-dependent controller parameter. As the controller gain depends on the control system robustness, the proportional set-point weight factor &#xdf; depends on it as well.</p>
<p>The SRT equations are of the general form<xref ref-type="fn" rid="fn3">
<sup>3</sup>
</xref>:<disp-formula id="e20">
<mml:math id="m25">
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>a</mml:mi>
<mml:mo>;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(20)</label>
</disp-formula>
<disp-formula id="e21">
<mml:math id="m26">
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">F</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>a</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(21)</label>
</disp-formula>
<disp-formula id="e22">
<mml:math id="m27">
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">G</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>a</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(22)</label>
</disp-formula>
<disp-formula id="e23">
<mml:math id="m28">
<mml:mi>&#x3b2;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">Q</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:math>
<label>(23)</label>
</disp-formula>
</p>
<p>SRT equations <italic>H</italic>, <italic>F</italic>, <italic>G</italic>, and <italic>Q</italic> for four target robustness levels, <inline-formula id="inf6">
<mml:math id="m29">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2208;</mml:mo>
</mml:math>
</inline-formula> {minimum (2.0), low (1.8), intermediate (1.6), high (1.4)}, and controlled process models with five time constant ratios, <italic>a</italic> &#x2208; {fopdt (0.0), sopdt (0.25, 0.50, 0.75), dppdt (1.0)}, can be found in <xref ref-type="bibr" rid="B4">Alfaro and Vilanova (2013)</xref>.</p>
</sec>
<sec id="s5">
<title>5 Performance evaluation</title>
<p>Having presented the SRT tuning equations, now it is time to evaluate their performance regarding the operation of the closed-loop control system with the PID controller implemented under different variations, say <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub>, <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>Dy</italic>1, and <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub>. Performance is evaluated with respect to regulatory control and servo-control operation. Also, robustness of the control system should be taken into account. The evaluation will be conducted by considering a usual benchmark process model from <xref ref-type="bibr" rid="B10">&#xc5;str&#xf6;m and H&#xe4;gglund (2000)</xref> and also considering the robust I-PD tuning from <xref ref-type="bibr" rid="B22">Vilanova et al. (2018a</xref>) to have a reference of robust tuning regarding <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub> implementation.</p>
<p>The evaluation is conducted using the following steps: first of all, the process models are obtained, and the corresponding controllers are adjusted according to the presented SRT tuning rule. Next, the regulatory control performance is analyzed, and evaluation of the robustness/performance tradeoff in terms of the process model used (FOPDT and SOPDT) is presented. Next, we proceed with the servo-control performance. The effects of losing the reference signal processing (either because of a 1-DoF or <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub> implementation) are discussed. Those evaluations provide an idea of the effects of changing the controller implementation with respect to the SRT tuning rule itself. As a final step, in order to get an idea of the achievable performance of SRT compared with a specific <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub> tuning, the robustness/performance tradeoff of the SRT tuning is faced with that of the tuning presented by <xref ref-type="bibr" rid="B22">Vilanova et al. (2018a</xref>).</p>
<sec id="s5-1">
<title>5.1 Controlled process and models</title>
<p>As controlled processes, the four-order test system from <xref ref-type="bibr" rid="B10">Astrom and Hagglund (2000</xref>)<disp-formula id="e24">
<mml:math id="m30">
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:math>
<label>(24)</label>
</disp-formula>with <italic>K</italic> &#x3d; 1.25, <italic>T</italic>&#x2032; &#x3d; 10 s, and <italic>a</italic>&#x2032; &#x2208; {0.4, 0.8} is used.</p>
<p>For controller tuning purposes, these processes are approximated by FOPDT and SOPDT models<disp-formula id="e25">
<mml:math id="m31">
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:math>
<label>(25)</label>
</disp-formula>
<disp-formula id="e26">
<mml:math id="m32">
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>K</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:math>
<label>(26)</label>
</disp-formula>using the three-point 123<italic>c</italic> identification method (<xref ref-type="bibr" rid="B7">Alfaro, 2006</xref>). The parameters of the identified low-order models are listed in <xref ref-type="table" rid="T2">Table 2</xref>. At this point, it is important to highlight that both FOPDT and SOPDT are considered, mainly because even though SRT can be based on both FOPDT and SOPDT, the robust <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub> method by <xref ref-type="bibr" rid="B22">Vilanova et al. (2018a</xref>) just considers FOPDT process models.</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>FOPDT and SOPDT models.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">
<italic>K</italic>
</th>
<th align="left">
<italic>T</italic> [s]</th>
<th align="left">
<italic>a</italic>
</th>
<th align="left">
<italic>L</italic> [s]</th>
<th align="left">
<italic>&#x3c4;</italic>
<sub>
<italic>L</italic>
</sub>
</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td colspan="5" align="left">
<italic>a</italic>&#x2032; &#x3d; 0.4</td>
</tr>
<tr>
<td align="left">&#xa0;1.25</td>
<td align="char" char=".">11.49</td>
<td align="left">&#x2014;</td>
<td align="char" char=".">5.17</td>
<td align="char" char=".">0.450</td>
</tr>
<tr>
<td align="left">&#xa0;1.25</td>
<td align="char" char=".">8.56</td>
<td align="char" char=".">0.704</td>
<td align="char" char=".">1.47</td>
<td align="char" char=".">0.172</td>
</tr>
<tr>
<td colspan="5" align="left">
<italic>a</italic>&#x2032; &#x3d; 0.8</td>
</tr>
<tr>
<td align="left">&#xa0;1.25</td>
<td align="char" char=".">17.57</td>
<td align="left">&#x2014;</td>
<td align="char" char=".">13.37</td>
<td align="char" char=".">0.761</td>
</tr>
<tr>
<td align="left">&#xa0;1.25</td>
<td align="char" char=".">11.15</td>
<td align="char" char=".">1.0</td>
<td align="char" char=".">7.71</td>
<td align="char" char=".">0.691</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s5-2">
<title>5.2 SRT controller parameters and regulatory control performance</title>
<p>The SRT <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub> controller parameters for four target robustness levels <inline-formula id="inf7">
<mml:math id="m33">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> using the FOPDT and the SOPDT controlled process models are listed in <xref ref-type="table" rid="T3">Table 3</xref> for the process with the time constant ratio <italic>a</italic>&#x2032; &#x3d; 0.4 and in <xref ref-type="table" rid="T4">Table 4</xref> for the process with <italic>a</italic>&#x2032; &#x3d; 0.8. These tables also include the obtained control system robustness <inline-formula id="inf8">
<mml:math id="m34">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> and the regulatory control behavior&#x2014;performance <italic>J</italic>
<sub>
<italic>ed</italic>
</sub> and controller output total variation <italic>TV</italic>
<sub>
<italic>ud</italic>
</sub>. The control system robustness <inline-formula id="inf9">
<mml:math id="m35">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> is evaluated using the controlled process low-order models <xref ref-type="disp-formula" rid="e25">Eqs. 25</xref>, <xref ref-type="disp-formula" rid="e26">26</xref>, in a real industrial application, and it cannot be obtained directly with the controlled process. However, the system performance in terms of <italic>J</italic>
<sub>
<italic>ed</italic>
</sub> and <italic>TV</italic>
<sub>
<italic>ud</italic>
</sub> is evaluated with the original processes <xref ref-type="disp-formula" rid="e24">Eq. 24</xref> as it may correspond to an application of the tuned controller and the corresponding recording of the closed-loop signals.</p>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>SRT <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub> controllers; process with <italic>a</italic>&#x2032;&#x3d;0.4</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">
<inline-formula id="inf10">
<mml:math id="m36">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>
</th>
<th align="left">2.0</th>
<th align="left">1.8</th>
<th align="left">1.6</th>
<th align="left">1.4</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td colspan="5" align="left">Tuning with the FOPDT model</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>K</italic>
<sub>
<italic>p</italic>
</sub>
</td>
<td align="char" char=".">1.59</td>
<td align="char" char=".">1.41</td>
<td align="char" char=".">1.19</td>
<td align="left">0.90</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>T</italic>
<sub>
<italic>i</italic>
</sub> [s]</td>
<td align="char" char=".">7.88</td>
<td align="left"/>
<td align="left"/>
<td align="left"/>
</tr>
<tr>
<td align="left">&#xa0;<italic>T</italic>
<sub>
<italic>d</italic>
</sub> [s]</td>
<td align="char" char=".">2.28</td>
<td align="left"/>
<td align="left"/>
<td align="left"/>
</tr>
<tr>
<td align="left">&#xa0;&#xdf;</td>
<td align="char" char=".">0.62</td>
<td align="char" char=".">0.67</td>
<td align="char" char=".">0.75</td>
<td align="left">0.95</td>
</tr>
<tr>
<td align="left">&#xa0;<inline-formula id="inf11">
<mml:math id="m37">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">2.01</td>
<td align="char" char=".">1.80</td>
<td align="char" char=".">1.60</td>
<td align="left">1.40</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>J</italic>
<sub>
<italic>ed</italic>
</sub>/&#x394;<italic>d</italic>
</td>
<td align="char" char=".">6.56</td>
<td align="char" char=".">7.39</td>
<td align="char" char=".">8.67</td>
<td align="left">11.11</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>TV</italic>
<sub>
<italic>ud</italic>
</sub>/&#x394;<italic>d</italic>
</td>
<td align="char" char=".">1.53</td>
<td align="char" char=".">1.49</td>
<td align="char" char=".">1.43</td>
<td align="left">1.34</td>
</tr>
<tr>
<td colspan="5" align="left">Tuning with the SOPDT model</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>K</italic>
<sub>
<italic>p</italic>
</sub>
</td>
<td align="char" char=".">5.07</td>
<td align="char" char=".">4.39</td>
<td align="char" char=".">3.56</td>
<td align="left">NA&#x2020;</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>T</italic>
<sub>
<italic>i</italic>
</sub> [s]</td>
<td align="char" char=".">6.72</td>
<td align="left"/>
<td align="left"/>
<td align="left"/>
</tr>
<tr>
<td align="left">&#xa0;<italic>T</italic>
<sub>
<italic>d</italic>
</sub> [s]</td>
<td align="char" char=".">2.85</td>
<td align="left"/>
<td align="left"/>
<td align="left"/>
</tr>
<tr>
<td align="left">&#xa0;&#xdf;</td>
<td align="char" char=".">0.54</td>
<td align="char" char=".">0.56</td>
<td align="char" char=".">0.58</td>
<td align="left">0.71</td>
</tr>
<tr>
<td align="left">&#xa0;<inline-formula id="inf12">
<mml:math id="m38">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">2.00</td>
<td align="char" char=".">1.80</td>
<td align="char" char=".">1.61</td>
<td align="left">&#x2014;</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>J</italic>
<sub>
<italic>ed</italic>
</sub>/&#x394;<italic>d</italic>
</td>
<td align="char" char=".">1.59</td>
<td align="char" char=".">1.93</td>
<td align="char" char=".">2.55</td>
<td align="left">&#x2014;</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>TV</italic>
<sub>
<italic>ud</italic>
</sub>/&#x394;<italic>d</italic>
</td>
<td align="char" char=".">2.07</td>
<td align="char" char=".">1.87</td>
<td align="char" char=".">1.76</td>
<td align="left">&#x2014;</td>
</tr>
<tr>
<td colspan="5" align="left">&#x2020; Valid only for <italic>&#x3c4;</italic>
<sub>
<italic>L</italic>
</sub> &#x2265; 0.25 if <italic>a</italic> &#x2265; 0.50.</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>SRT <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub> controllers; process with <italic>a</italic>&#x2032; &#x3d; 0.8</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">
<inline-formula id="inf13">
<mml:math id="m39">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>
</th>
<th align="left">2.0</th>
<th align="left">1.8</th>
<th align="left">1.6</th>
<th align="left">1.4</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td colspan="5" align="left">Tuning with the FOPDT model</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>K</italic>
<sub>
<italic>p</italic>
</sub>
</td>
<td align="char" char=".">1.05</td>
<td align="char" char=".">0.93</td>
<td align="char" char=".">0.79</td>
<td align="char" char=".">0.60</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>T</italic>
<sub>
<italic>i</italic>
</sub> [s]</td>
<td align="char" char=".">16.37</td>
<td align="left"/>
<td align="left"/>
<td align="left"/>
</tr>
<tr>
<td align="left">&#xa0;<italic>T</italic>
<sub>
<italic>d</italic>
</sub> [s]</td>
<td align="char" char=".">5.46</td>
<td align="left"/>
<td align="left"/>
<td align="left"/>
</tr>
<tr>
<td align="left">&#xa0;&#xdf;</td>
<td align="char" char=".">0.68</td>
<td align="char" char=".">0.76</td>
<td align="char" char=".">0.89</td>
<td align="char" char=".">1.16</td>
</tr>
<tr>
<td align="left">&#xa0;<inline-formula id="inf14">
<mml:math id="m40">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">2.02</td>
<td align="char" char=".">1.81</td>
<td align="char" char=".">1.61</td>
<td align="char" char=".">1.41</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>J</italic>
<sub>
<italic>ed</italic>
</sub>/&#x394;<italic>d</italic>
</td>
<td align="char" char=".">20.08</td>
<td align="char" char=".">22.02</td>
<td align="char" char=".">24.89</td>
<td align="char" char=".">30.58</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>TV</italic>
<sub>
<italic>ud</italic>
</sub>/&#x394;<italic>d</italic>
</td>
<td align="char" char=".">1.46</td>
<td align="char" char=".">1.37</td>
<td align="char" char=".">1.27</td>
<td align="char" char=".">1.14</td>
</tr>
<tr>
<td colspan="5" align="left">Tuning with the SOPDT model</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>K</italic>
<sub>
<italic>p</italic>
</sub>
</td>
<td align="char" char=".">1.37</td>
<td align="char" char=".">1.21</td>
<td align="char" char=".">1.01</td>
<td align="char" char=".">0.77</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>T</italic>
<sub>
<italic>i</italic>
</sub> [s]</td>
<td align="char" char=".">16.19</td>
<td align="left"/>
<td align="left"/>
<td align="left"/>
</tr>
<tr>
<td align="left">&#xa0;<italic>T</italic>
<sub>
<italic>d</italic>
</sub> [s]</td>
<td align="char" char=".">7.56</td>
<td align="left"/>
<td align="left"/>
<td align="left"/>
</tr>
<tr>
<td align="left">&#xa0;&#xdf;</td>
<td align="char" char=".">0.67</td>
<td align="char" char=".">0.74</td>
<td align="char" char=".">0.86</td>
<td align="char" char=".">1.11</td>
</tr>
<tr>
<td align="left">&#xa0;<inline-formula id="inf15">
<mml:math id="m41">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">1.98</td>
<td align="char" char=".">1.79</td>
<td align="char" char=".">1.59</td>
<td align="char" char=".">1.40</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>J</italic>
<sub>
<italic>ed</italic>
</sub>/&#x394;<italic>d</italic>
</td>
<td align="char" char=".">15.17</td>
<td align="char" char=".">17.11</td>
<td align="char" char=".">20.17</td>
<td align="char" char=".">25.35</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>TV</italic>
<sub>
<italic>ud</italic>
</sub>/&#x394;<italic>d</italic>
</td>
<td align="char" char=".">1.41</td>
<td align="char" char=".">1.33</td>
<td align="char" char=".">1.25</td>
<td align="char" char=".">1.18</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Regarding the achieved robustness and its effects on the control system performance, the first thing noticed in these tables is that all the controllers&#x2014;based on four different models&#x2014;achieve the target robustness levels within 1%. It is also noticed that an inverse relation exists between the control system robustness and its performance. If the target robustness is increased <inline-formula id="inf16">
<mml:math id="m42">
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mi>&#x2193;</mml:mi>
<mml:mo>&#x2212;</mml:mo>
</mml:math>
</inline-formula>, the control system performance decreases&#x2014;<italic>J</italic>
<sub>
<italic>ed</italic>
</sub> <italic>&#x2191;</italic>&#x2014;but the control effort is smoother&#x2014;<italic>J</italic>
<sub>
<italic>ud</italic>
</sub> <italic>&#x2193;</italic>. There is a conflict between the control system robustness and its performance, but it cannot be considered an industrial control system design tradeoff. The control system design robustness level is process-dependent. It is a requirement imposed by the controlled process non-linearity&#x2014;changes in the process dynamic characteristics in the control system operation range. Then, the required control system robustness level is a must and its performance should be sacrificed.</p>
<p>As all the controllers considered&#x2014;<italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub>, <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>1</sub>, and <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub>&#x2014;have the same feedback controller transfer function <xref ref-type="disp-formula" rid="e11">Eq. 11</xref>, their closed-loop regulatory control transfer functions as well as their robustness and performance are all the same as listed in <xref ref-type="table" rid="T3">Tables 3</xref>, <xref ref-type="table" rid="T4">4</xref>. In fact, robustness is a feedback property, and having the same closed-loop regulatory control transfer functions, the three controller implementations provide the same robustness.</p>
<p>For both controlled processes&#x2014;<italic>a</italic> &#x2208; {0.4, 0.8}&#x2014;two low-order models were obtained&#x2014;FOPDT and SOPDT&#x2014;and used for tuning purposes. From the control system evaluation, it is clear that for the same robustness level, the control systems designed using the SOPDT models provide better performance, but with a less smooth control effort, than the corresponding systems designed using the FOPDT models.</p>
<p>From the designer&#x2019;s point of view, the marginal extra effort needed to obtain a SOPDT low-order model to represent the controlled process in the controller design procedure pays for itself with the higher performance obtained. The regulatory control responses for the process <xref ref-type="disp-formula" rid="e24">Eq. 24</xref> with <italic>a</italic>&#x2032; &#x3d; 0.4 are shown in <xref ref-type="fig" rid="F3">Figure 3</xref>. It shows the robustness/performance conflict, but more important is the performance increase obtained by designing the control system using the SOPDT model instead of the FOPDT one. As a complementary view of the better regulatory capabilities, we can look at the integral gain. This is defined as <italic>K</italic>
<sub>
<italic>i</italic>
</sub> &#x3d; <italic>K</italic>
<sub>
<italic>p</italic>
</sub>/<italic>T</italic>
<sub>
<italic>i</italic>
</sub>. We can observe that larger values are obtained for designs based on an SOPDT process model. Therefore, better capacity of the controller is needed to reduce the load disturbance effect.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Regulatory control responses, when <italic>a</italic>&#x2032; &#x3d; 0.4.</p>
</caption>
<graphic xlink:href="fcteg-03-1061830-g003.tif"/>
</fig>
</sec>
<sec id="s5-3">
<title>5.3 SRT servo-control performance</title>
<p>The obtained servo-control performance with the three different controllers for the controlled process with <italic>a</italic>&#x2032; &#x3d; 0.4 is listed in <xref ref-type="table" rid="T5">Table 5</xref>&#x2014;tuned with the FOPDT model&#x2014;and in <xref ref-type="table" rid="T6">Table 6</xref>&#x2014;tuned with the SOPDT model.</p>
<table-wrap id="T5" position="float">
<label>TABLE 5</label>
<caption>
<p>Servo-control response; process with <italic>a</italic>&#x2032; &#x3d; 0.4 and tuning using the FOPDT model.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">
<inline-formula id="inf17">
<mml:math id="m43">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>
</th>
<th align="left">2.0</th>
<th align="left">1.8</th>
<th align="left">1.6</th>
<th align="left">1.4</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td colspan="5" align="left">Controller <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub>
</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>J</italic>
<sub>
<italic>er</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">12.40</td>
<td align="char" char=".">12.93</td>
<td align="char" char=".">13.66</td>
<td align="char" char=".">14.71</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>TV</italic>
<sub>
<italic>ur</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">2.57</td>
<td align="char" char=".">2.39</td>
<td align="char" char=".">2.15</td>
<td align="char" char=".">1.87</td>
</tr>
<tr>
<td align="left">&#xa0;&#x394;<italic>u</italic>
<sub>0</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">0.99</td>
<td align="char" char=".">0.94</td>
<td align="char" char=".">0.89</td>
<td align="char" char=".">0.86</td>
</tr>
<tr>
<td colspan="5" align="left">Controller <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>1</sub>
</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>J</italic>
<sub>
<italic>er</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">12.84</td>
<td align="char" char=".">13.24</td>
<td align="char" char=".">13.78</td>
<td align="char" char=".">14.71</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>TV</italic>
<sub>
<italic>ur</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">3.62</td>
<td align="char" char=".">3.16</td>
<td align="char" char=".">2.60</td>
<td align="char" char=".">1.92</td>
</tr>
<tr>
<td align="left">&#xa0;&#x394;<italic>u</italic>
<sub>0</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">1.59</td>
<td align="char" char=".">1.41</td>
<td align="char" char=".">1.19</td>
<td align="char" char=".">0.90</td>
</tr>
<tr>
<td colspan="5" align="left">Controller <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub>
</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>J</italic>
<sub>
<italic>er</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">15.45</td>
<td align="char" char=".">16.20</td>
<td align="char" char=".">17.28</td>
<td align="char" char=".">19.14</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>TV</italic>
<sub>
<italic>ur</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">1.96</td>
<td align="char" char=".">1.83</td>
<td align="char" char=".">1.66</td>
<td align="char" char=".">1.41</td>
</tr>
<tr>
<td align="left">&#xa0;&#x394;<italic>u</italic>
<sub>0</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">0</td>
<td align="char" char=".">0</td>
<td align="char" char=".">0</td>
<td align="char" char=".">0</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T6" position="float">
<label>TABLE 6</label>
<caption>
<p>Servo-control response; process with <italic>a</italic>&#x2032; &#x3d; 0.4 and tuning using the SOPDT model.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">
<inline-formula id="inf18">
<mml:math id="m44">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>
</th>
<th align="left">2.0</th>
<th align="left">1.8</th>
<th align="left">1.6</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td colspan="4" align="left">Controller <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub>
</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>J</italic>
<sub>
<italic>er</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">7.56</td>
<td align="char" char=".">8.15</td>
<td align="char" char=".">9.21</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>TV</italic>
<sub>
<italic>ur</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">8.28</td>
<td align="char" char=".">6.91</td>
<td align="char" char=".">5.67</td>
</tr>
<tr>
<td align="left">&#xa0;&#x394;<italic>u</italic>
<sub>0</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">2.74</td>
<td align="char" char=".">2.56</td>
<td align="char" char=".">2.06</td>
</tr>
<tr>
<td colspan="4" align="left">Controller <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>1</sub>
</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>J</italic>
<sub>
<italic>er</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">8.60</td>
<td align="char" char=".">9.23</td>
<td align="char" char=".">10.30</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>TV</italic>
<sub>
<italic>ur</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">14.63</td>
<td align="char" char=".">11.70</td>
<td align="char" char=".">9.06</td>
</tr>
<tr>
<td align="left">&#xa0;&#x394;<italic>u</italic>
<sub>0</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">5.07</td>
<td align="char" char=".">4.39</td>
<td align="char" char=".">3.56</td>
</tr>
<tr>
<td colspan="4" align="left">Controller <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub>
</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>J</italic>
<sub>
<italic>er</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">9.65</td>
<td align="char" char=".">10.2</td>
<td align="char" char=".">11.26</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>TV</italic>
<sub>
<italic>ur</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">4.29</td>
<td align="char" char=".">3.85</td>
<td align="char" char=".">3.48</td>
</tr>
<tr>
<td align="left">&#xa0;&#x394;<italic>u</italic>
<sub>0</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">0</td>
<td align="char" char=".">0</td>
<td align="char" char=".">0</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Corresponding performance data for the controlled process with <italic>a</italic>&#x2032; &#x3d; 0.8 are listed in <xref ref-type="table" rid="T7">Table 7</xref> (FOPDT) and in <xref ref-type="table" rid="T8">Table 8</xref> (SOPDT).</p>
<table-wrap id="T7" position="float">
<label>TABLE 7</label>
<caption>
<p>Servo-control response; process with <italic>a</italic>&#x2032; &#x3d; 0.8 and tuning using the FOPDT model.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">
<inline-formula id="inf19">
<mml:math id="m45">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>
</th>
<th align="left">2.0</th>
<th align="left">1.8</th>
<th align="left">1.6</th>
<th align="left">1.4</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td colspan="5" align="left">Controller <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub>
</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>J</italic>
<sub>
<italic>er</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">28.74</td>
<td align="char" char=".">29.30</td>
<td align="char" char=".">29.96</td>
<td align="char" char=".">30.90</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>TV</italic>
<sub>
<italic>ur</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">1.89</td>
<td align="char" char=".">1.73</td>
<td align="char" char=".">1.56</td>
<td align="char" char=".">1.34</td>
</tr>
<tr>
<td align="left">&#xa0;&#x394;<italic>u</italic>
<sub>0</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">0.71</td>
<td align="char" char=".">0.71</td>
<td align="char" char=".">0.70</td>
<td align="char" char=".">0.70</td>
</tr>
<tr>
<td colspan="5" align="left">Controller <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>1</sub>
</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>J</italic>
<sub>
<italic>er</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">29.49</td>
<td align="char" char=".">29.66</td>
<td align="char" char=".">30.01</td>
<td align="char" char=".">31.15</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>TV</italic>
<sub>
<italic>ur</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">2.44</td>
<td align="char" char=".">2.07</td>
<td align="char" char=".">1.69</td>
<td align="char" char=".">1.22</td>
</tr>
<tr>
<td align="left">&#xa0;&#x394;<italic>u</italic>
<sub>0</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">1.05</td>
<td align="char" char=".">0.93</td>
<td align="char" char=".">0.79</td>
<td align="char" char=".">0.60</td>
</tr>
<tr>
<td colspan="5" align="left">Controller <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub>
</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>J</italic>
<sub>
<italic>er</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">35.37</td>
<td align="char" char=".">36.72</td>
<td align="char" char=".">38.65</td>
<td align="char" char=".">42.44</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>TV</italic>
<sub>
<italic>ur</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">1.44</td>
<td align="char" char=".">1.30</td>
<td align="char" char=".">1.16</td>
<td align="char" char=".">0.98</td>
</tr>
<tr>
<td align="left">&#xa0;&#x394;<italic>u</italic>
<sub>0</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">0</td>
<td align="char" char=".">0</td>
<td align="char" char=".">0</td>
<td align="char" char=".">0</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T8" position="float">
<label>TABLE 8</label>
<caption>
<p>Servo-control response; process with <italic>a</italic>&#x2032; &#x3d; 0.8 and tuning using the SOPDT model.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">
<inline-formula id="inf20">
<mml:math id="m46">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>
</th>
<th align="left">2.0</th>
<th align="left">1.8</th>
<th align="left">1.6</th>
<th align="left">1.4</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td colspan="5" align="left">Controller <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub>
</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>J</italic>
<sub>
<italic>er</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">26.72</td>
<td align="char" char=".">27.74</td>
<td align="char" char=".">29.08</td>
<td align="char" char=".">30.78</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>TV</italic>
<sub>
<italic>ur</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">2.20</td>
<td align="char" char=".">2.04</td>
<td align="char" char=".">1.86</td>
<td align="char" char=".">1.65</td>
</tr>
<tr>
<td align="left">&#xa0;&#x394;<italic>u</italic>
<sub>0</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">0.92</td>
<td align="char" char=".">0.90</td>
<td align="char" char=".">0.87</td>
<td align="char" char=".">0.85</td>
</tr>
<tr>
<td colspan="5" align="left">Controller <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>1</sub>
</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>J</italic>
<sub>
<italic>er</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">27.71</td>
<td align="char" char=".">28.45</td>
<td align="char" char=".">29.38</td>
<td align="char" char=".">30.65</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>TV</italic>
<sub>
<italic>ur</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">3.01</td>
<td align="char" char=".">2.56</td>
<td align="char" char=".">2.08</td>
<td align="char" char=".">1.52</td>
</tr>
<tr>
<td align="left">&#xa0;&#x394;<italic>u</italic>
<sub>0</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">1.37</td>
<td align="char" char=".">1.21</td>
<td align="char" char=".">1.01</td>
<td align="char" char=".">0.77</td>
</tr>
<tr>
<td colspan="5" align="left">Controller <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub>
</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>J</italic>
<sub>
<italic>er</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">33.07</td>
<td align="char" char=".">34.55</td>
<td align="char" char=".">36.72</td>
<td align="char" char=".">40.08</td>
</tr>
<tr>
<td align="left">&#xa0;<italic>TV</italic>
<sub>
<italic>ur</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">1.52</td>
<td align="char" char=".">1.41</td>
<td align="char" char=".">1.27</td>
<td align="char" char=".">1.10</td>
</tr>
<tr>
<td align="left">&#xa0;&#x394;<italic>u</italic>
<sub>0</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">0</td>
<td align="char" char=".">0</td>
<td align="char" char=".">0</td>
<td align="char" char=".">0</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>As in <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>1</sub> and <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub> controllers, the second degree of freedom of the <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub> controller is lost, and its servo-control performance is lower than the performance obtained with the latter. As shown in <xref ref-type="table" rid="T1">Table 1</xref>, the <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>1</sub> controller is equivalent to a <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub> controller with &#xdf; &#x3d; 1, and the <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub> controller is equivalent to a <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub> controller with &#xdf; &#x3d; 0. The drop in the servo-control performance obtained using the 1-DoF controllers depends on the controlled process, the model used for controller tuning, and its target robustness level can be related with the proportional set-point weight factor &#xdf;.</p>
<p>For the controlled processes used for the evaluation, the set-point weight factor &#xdf;-values vary from 0.54 to 1.16. Then, as the required &#xdf;-value approaches 1.0, the <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>1</sub> servo-control performance losses decrease, but the performance corresponding to the <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub> controller increases (this implementation corresponds to a &#xdf; &#x3d; 0 2-DoF controller).</p>
<p>The SRT proportional set-point weight factor &#xdf; as a function of the normalized model dead-time <italic>&#x3c4;</italic>
<sub>
<italic>L</italic>
</sub> &#x3d; <italic>L</italic>/<italic>T</italic> and the different robustness target levels <inline-formula id="inf21">
<mml:math id="m47">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> are shown in <xref ref-type="fig" rid="F4">Figure 4</xref>. As for all models &#xdf; &#x3e; 0.50, the servo-control performance lost with a <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>1</sub> controller is lower than the one lost with an <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub> controller. A performance reduction in the tracking operation is therefore expected. Some of the robust servo-control responses (<italic>a</italic>&#x2032; &#x3d; 0.4, <inline-formula id="inf22">
<mml:math id="m48">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1.6</mml:mn>
</mml:math>
</inline-formula>) are shown in <xref ref-type="fig" rid="F5">Figure 5</xref>. For a given robustness level, the <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub> controller output is &#x201c;optimal&#x201d;&#x2014;has the lowest <italic>J</italic>
<sub>
<italic>er</italic>
</sub>. The <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub> controller loses 22% less performance than the <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub> controller, but its control effort is smoother&#x2014;has the lowest <italic>TV</italic>
<sub>
<italic>ur</italic>
</sub> and, more importantly, has no proportional &#x201c;kick&#x201d;&#x2014;&#x394;<italic>u</italic>
<sub>0</sub> &#x3d; 0.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>SRT proportional set-point weight factor.</p>
</caption>
<graphic xlink:href="fcteg-03-1061830-g004.tif"/>
</fig>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Servo-control responses, when <italic>a</italic>&#x2032; &#x3d; 0.4 and <inline-formula id="inf23">
<mml:math id="m49">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1.6</mml:mn>
</mml:math>
</inline-formula>.</p>
</caption>
<graphic xlink:href="fcteg-03-1061830-g005.tif"/>
</fig>
</sec>
<sec id="s5-4">
<title>5.4 Robust <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>
</sub> tuning performance</title>
<p>To the best of the authors&#x2019; knowledge, the method proposed by <xref ref-type="bibr" rid="B23">Vilanova et al. (2018b)</xref> is one of the few robust tuning procedures available specifically designed for <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub> controllers. Herein, it is denoted as the VAGG method. It optimizes the <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub> control system servo-control response&#x2014;using the IAE cost functional&#x2014;assuring at the same time a specific robustness level&#x2014;<italic>M</italic>
<sub>
<italic>S</italic>
</sub> &#x2208; {2.0 (<italic>tight</italic>), 1.6 (<italic>smooth</italic>)}&#x2014;for FOPDT-controlled process models. The VAGG controller parameters and performance indices for the controlled process <xref ref-type="disp-formula" rid="e24">Eq. 24</xref> using models <xref ref-type="disp-formula" rid="e25">Eq. 25</xref> are listed in <xref ref-type="table" rid="T9">Table 9</xref>.</p>
<table-wrap id="T9" position="float">
<label>TABLE 9</label>
<caption>
<p>VAGG robust <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>
</sub> tuning.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left"/>
<th colspan="2" align="left">
<italic>a</italic>&#x2032; &#x3d; 0.4</th>
<th colspan="2" align="left">
<italic>a</italic>&#x2032; &#x3d; 0.8</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">
<inline-formula id="inf24">
<mml:math id="m50">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">2.0</td>
<td align="char" char=".">1.6</td>
<td align="char" char=".">2.0</td>
<td align="char" char=".">1.6</td>
</tr>
<tr>
<td align="left">
<italic>K</italic>
<sub>
<italic>p</italic>
</sub>
</td>
<td align="char" char=".">1.81</td>
<td align="char" char=".">1.35</td>
<td align="char" char=".">1.25</td>
<td align="char" char=".">0.94</td>
</tr>
<tr>
<td align="left">
<italic>T</italic>
<sub>
<italic>i</italic>
</sub> [s]</td>
<td align="char" char=".">8.17</td>
<td align="char" char=".">7.80</td>
<td align="char" char=".">17.34</td>
<td align="char" char=".">15.85</td>
</tr>
<tr>
<td align="left">
<italic>T</italic>
<sub>
<italic>d</italic>
</sub> [s]</td>
<td align="char" char=".">1.86</td>
<td align="char" char=".">2.03</td>
<td align="char" char=".">4.13</td>
<td align="char" char=".">4.72</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf25">
<mml:math id="m51">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">2.19</td>
<td align="char" char=".">1.70</td>
<td align="char" char=".">2.35</td>
<td align="char" char=".">1.78</td>
</tr>
<tr>
<td align="left">
<italic>J</italic>
<sub>
<italic>ed</italic>
</sub>/&#x394;<italic>d</italic>
</td>
<td align="char" char=".">5.83</td>
<td align="char" char=".">7.74</td>
<td align="char" char=".">18.80</td>
<td align="char" char=".">22.50</td>
</tr>
<tr>
<td align="left">
<italic>TV</italic>
<sub>
<italic>ud</italic>
</sub>/&#x394;<italic>d</italic>
</td>
<td align="char" char=".">1.65</td>
<td align="char" char=".">1.536</td>
<td align="char" char=".">1.83</td>
<td align="char" char=".">1.52</td>
</tr>
<tr>
<td align="left">
<italic>J</italic>
<sub>
<italic>er</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">14.44</td>
<td align="char" char=".">16.36</td>
<td align="char" char=".">33.75</td>
<td align="char" char=".">36.70</td>
</tr>
<tr>
<td align="left">
<italic>TV</italic>
<sub>
<italic>ur</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">2.14</td>
<td align="char" char=".">1.86</td>
<td align="char" char=".">1.77</td>
<td align="char" char=".">1.52</td>
</tr>
<tr>
<td align="left">&#x394;<italic>u</italic>
<sub>0</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">0</td>
<td align="char" char=".">0</td>
<td align="char" char=".">0</td>
<td align="char" char=".">0</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>As it can be noticed, the obtained closed-loop control system robustness <inline-formula id="inf26">
<mml:math id="m52">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> is in the range of 6.25%&#x2013;11.5% lower than the corresponding target levels. Therefore, the resulting control system is less robust than expected. Then, to have a fair comparison, the VAGG controller proportional gains <italic>K</italic>
<sub>
<italic>p</italic>
</sub> are reduced in the range of 8%&#x2013;15%&#x2014;without changing the controller integral times <italic>T</italic>
<sub>
<italic>i</italic>
</sub> and derivative times <italic>T</italic>
<sub>
<italic>d</italic>
</sub>&#x2014;to increase the control system robustness up to the target levels. The new controller&#x2019;s proportional gains <inline-formula id="inf27">
<mml:math id="m53">
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> and the performance obtained are listed in <xref ref-type="table" rid="T10">Table 10</xref>.</p>
<table-wrap id="T10" position="float">
<label>TABLE 10</label>
<caption>
<p>VAGG robust <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>
</sub> tuning with reduced gain.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left"/>
<th colspan="2" align="left">
<italic>a</italic>&#x2032; &#x3d; 0.4</th>
<th colspan="2" align="left">
<italic>a</italic>&#x2032; &#x3d; 0.8</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">
<inline-formula id="inf28">
<mml:math id="m54">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">2.0</td>
<td align="char" char=".">1.6</td>
<td align="char" char=".">2.0</td>
<td align="char" char=".">1.6</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf29">
<mml:math id="m55">
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">1.67</td>
<td align="char" char=".">1.22</td>
<td align="char" char=".">1.08</td>
<td align="char" char=".">0.80</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf30">
<mml:math id="m56">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>
</td>
<td align="char" char=".">2.01</td>
<td align="char" char=".">1.60</td>
<td align="char" char=".">2.00</td>
<td align="char" char=".">1.60</td>
</tr>
<tr>
<td align="left">
<italic>J</italic>
<sub>
<italic>ed</italic>
</sub>/&#x394;<italic>d</italic>
</td>
<td align="char" char=".">6.31</td>
<td align="char" char=".">8.50</td>
<td align="char" char=".">20.46</td>
<td align="char" char=".">25.00</td>
</tr>
<tr>
<td align="left">
<italic>TV</italic>
<sub>
<italic>ud</italic>
</sub>/&#x394;<italic>d</italic>
</td>
<td align="char" char=".">1.61</td>
<td align="char" char=".">1.49</td>
<td align="char" char=".">1.61</td>
<td align="char" char=".">1.38</td>
</tr>
<tr>
<td align="left">
<italic>J</italic>
<sub>
<italic>er</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">14.92</td>
<td align="char" char=".">16.99</td>
<td align="char" char=".">34.91</td>
<td align="char" char=".">38.31</td>
</tr>
<tr>
<td align="left">
<italic>TV</italic>
<sub>
<italic>ur</italic>
</sub>/&#x394;<italic>r</italic>
</td>
<td align="char" char=".">2.02</td>
<td align="char" char=".">1.75</td>
<td align="char" char=".">1.50</td>
<td align="char" char=".">1.28</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The VAGG <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub> controller performances are very similar to the ones obtained with the FOPDT model-based SRT <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub> controllers, &#x394;<italic>J</italic>
<sub>
<italic>ex%</italic>
</sub> &#x2208; [ &#x2212; 3.8 &#x22ef; &#x2b; 1.9], and with smoother control efforts but not better than the ones obtained with the SOPDT model-based SRT <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub> controllers. Then, additional investigation is needed on the performance of the robustly tuned <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub> controllers using SOPDT models to see if a new tuning rule is needed or if one of the existing optimal and robust regulatory control tunings for 1-DoF or 2-DoF <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>
</sub> controllers can be used with an <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub> controller without a significant loss of performance<xref ref-type="fn" rid="fn4">
<sup>4</sup>
</xref>.</p>
</sec>
<sec id="s5-5">
<title>5.5 Servo-control performance for a controlled variable with noise</title>
<p>As a complementary evaluation, additional controller performance tests are conducted for a controlled process variable corrupted with a measurement noise. The servo-control normalized performances <italic>J</italic>
<sub>
<italic>ern</italic>
</sub> for five simulation runs, and their averages values are listed in <xref ref-type="table" rid="T11">Table 11</xref> for different controller configurations. The servo responses for a noisy signal (Run 2) are shown in <xref ref-type="fig" rid="F6">Figure 6</xref>. As the change in the controller configurations is relevant for what matters to the tracking operation, the load disturbance is not evaluated or shown here. We can see that the effect of the noise with respect to the ideal situation can be considered negligible. <xref ref-type="table" rid="T6">Table 6</xref> shows the values obtained in the ideal case.</p>
<table-wrap id="T11" position="float">
<label>TABLE 11</label>
<caption>
<p>Servo-control performance <italic>J</italic>
<sub>
<italic>er</italic>
</sub>/&#x394;<italic>r</italic> (<italic>a</italic>&#x2032; &#x3d; 0.4, SOPDT model, and <inline-formula id="inf31">
<mml:math id="m57">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1.6</mml:mn>
</mml:math>
</inline-formula>).</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Controller</th>
<th align="left">
<italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub>
</th>
<th align="left">
<italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>1</sub>
</th>
<th align="left">
<italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub>
</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">W/o noise</td>
<td align="char" char=".">9.21</td>
<td align="char" char=".">10.30</td>
<td align="char" char=".">11.26</td>
</tr>
<tr>
<td align="left">Run 1</td>
<td align="char" char=".">9.898</td>
<td align="char" char=".">10.991</td>
<td align="char" char=".">11.767</td>
</tr>
<tr>
<td align="left">Run 2</td>
<td align="char" char=".">9.584</td>
<td align="char" char=".">10.626</td>
<td align="char" char=".">11.755</td>
</tr>
<tr>
<td align="left">Run 3</td>
<td align="char" char=".">9.683</td>
<td align="char" char=".">10.480</td>
<td align="char" char=".">11.998</td>
</tr>
<tr>
<td align="left">Run 4</td>
<td align="char" char=".">9.436</td>
<td align="char" char=".">10.463</td>
<td align="char" char=".">11.697</td>
</tr>
<tr>
<td align="left">Run 5</td>
<td align="char" char=".">9.711</td>
<td align="char" char=".">10.868</td>
<td align="char" char=".">11.375</td>
</tr>
<tr>
<td align="left">Average</td>
<td align="char" char=".">9.62</td>
<td align="char" char=".">10.69</td>
<td align="char" char=".">11.72</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Servo-control, controlled variable w/noise (Run 2), <italic>a</italic>&#x2032; &#x3d; 0.4, SOPDT model, and <inline-formula id="inf32">
<mml:math id="m58">
<mml:msubsup>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1.6</mml:mn>
</mml:math>
</inline-formula>.</p>
</caption>
<graphic xlink:href="fcteg-03-1061830-g006.tif"/>
</fig>
</sec>
</sec>
<sec sec-type="discussion" id="s6">
<title>6 Discussion</title>
<p>The previous section provided the performance evaluation of the SRT under different scenarios. It is evident that the comparison is process- and robustness-dependent. However, some general conclusions can be drawn.</p>
<p>According to the performance measures shown in <xref ref-type="table" rid="T5">Tables 5</xref>, <xref ref-type="table" rid="T6">6</xref>, it is possible to evaluate the performance loss with respect to the following two implementation changes:<list list-type="simple">
<list-item>
<p>&#x2022; <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub> &#x2192; <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>1</sub>: In this case, the second degree of freedom is lost, and a 2-DoF-tuned controller is implemented in a 1-DoF form. If we evaluate the performance losses and the corresponding <italic>PFI</italic>
<sub>&#x394;</sub>, it turns out that they are &#x3c;0.1 for all tunings carried out using an FOPDT model. Therefore, we face resilient tuning. For the design concurred with a better SOPDT model, the <italic>PFI</italic>
<sub>&#x394;</sub> is also &#x3c;0.1 for the process with <italic>a</italic>&#x2032; &#x3d; 0.4 and slightly higher than 0.1 for <italic>a</italic>&#x2032; &#x3d; 0.8 but in any case far from 0.5. Therefore, we can say that SRT tuning is resilient and non-fragile.</p>
</list-item>
<list-item>
<p>&#x2022; <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub> &#x2192; <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub>: As we move to <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub> implementation, the change is more drastic because just the integral term processes the reference signal. Therefore, a larger performance drop is expected for reference changes. In fact, in this case, for both FOPDT and SOPDT-based tuning, the resulting <italic>PFI</italic>
<sub>&#x394;</sub> is very similar: slightly greater than 0.2 but in any case far from 0.5. Therefore, we can say that SRT tuning is non-fragile.</p>
</list-item>
</list>
</p>
<p>The previous classification of the SRT rule as resilient in almost all cases is a rather qualitative evaluation that, in any case, provides an idea of the low sensitivity of the tuning with respect to the implementation of the reference processing term. It is important to bear in mind here that when tuning the three (or four in the 2-DoF case) parameters of a PID controller, distribution of the controller gain is carried out among the different parameters. Therefore, assigning how those gains take care of the two essential signals that do generate the error: the reference signal&#x2014;for tracking purposes&#x2014;and the feedback signal&#x2014;for regulation purposes&#x2014;altered because of potential disturbances. Depending on how those gains are distributed, the loss of performance in one of the operating modes can be really higher. Therefore, even qualitatively, the fact that the SRT tuning rule is almost in all cases resilient stands as a proof of a balanced gain distribution.</p>
<p>If we focus on a more quantitative evaluation, the only option is to compare the achieved performance on the implemented configuration with respect to a tuning designed specifically for such controller implementation. In this respect, we conducted an evaluation of the VAAG tuning (<xref ref-type="bibr" rid="B23">Vilanova et al., 2018b</xref>) performance. As this is a tuning optimized for the <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub> controller implementation and includes at the same time robustness considerations, it provides a perfect scenario to quantitatively evaluate the degraded performance of the SRT tuning.</p>
<p>
<xref ref-type="table" rid="T10">Table 10</xref> shows the VAAG performance for a fair comparison. For the two robustness levels considered in <xref ref-type="bibr" rid="B23">Vilanova et al. (2018b</xref>), as observed in the previous subsection, the results show that the performance of an <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub> controller tuned with the VAGG is very similar to the one obtained with the FOPDT model-based SRT (even SRT is not originally optimized for <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub>). If we start with SOPDT model-based SRT tuning, in this case, even the SRT&#x2019;s degraded performance is better than the one achieved by the VAAG. This quantitative evaluation raises the question about the potential interpretation of the previously categorized non-fragility of SOPDT-based SRT tuning as really resilient with respect to structural changes in the controller implementation.</p>
</sec>
<sec sec-type="conclusion" id="s7">
<title>7 Conclusion</title>
<p>This work has presented a position work regarding the importance of the PID controller structure. Most of the tuning rules are conceived for a PID controller where the reference signal is processed by both the integral and the proportional term (either with or without a reference weighting factor).</p>
<p>One of the major drawbacks of the basic parallel formulations of the PID controllers is the effects of proportional and derivative kick. The changes in the set-point cause an impulse signal or a sudden change in the controller output as well as the output response. The controller output is given to the final control elements like control valve, motor, or electronic circuit in which the spikes create serious problems. In order to minimize these effects, modified forms of parallel controller structures such as PI-D and I-PD are usually considered in practice. Therefore, it turns out that tuning may finally be applied to an I-PD controller.</p>
<p>The considered simple robust tuning (SRT) allows to tune a PI/PID controller for an FOPDT as well as an SOPDT process model. The advantages of using a better process model have been outlined, and the use of SOPDT models instead of FOPDT models is greatly encouraged. This fact may allow minimizing the loss of performance when the final implementation is an I-PD instead of a PID as usual. This fact will make the tuning rule resilient with respect to the PID implementation.</p>
<p>This issue is not usually considered when presenting new tuning rules or when comparing with existing, well-established tunings. Modern tunings use approaches driven by advanced multi-objective algorithms that provide the final tuning values for the controller parameters. The optimality of such a design is not discussed at all. However, other more practical constraints should also be taken into account. This is a similar situation as the one with the fragility of tuning (<xref ref-type="bibr" rid="B8">Alfaro, 2007</xref>). Fragility and resilience, taken together, are concepts of great utility for the final practitioner as this will generate more confidence into the provided tuning.</p>
<p>In this work, only simple robust tuning was evaluated as an example. The purpose was to present a situation where a robust design based on FOPDT and SOPDT process models can be evaluated with respect to different PID controller implementations&#x2014;<italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>D</italic>
<sub>
<italic>y</italic>2</sub>, <italic>PI</italic>
<sub>
<italic>e</italic>
</sub>
<italic>Dy</italic>1, and <italic>I</italic>
<sub>
<italic>e</italic>
</sub>
<italic>PD</italic>
<sub>
<italic>y</italic>1</sub>. This helped shed light on the robustness/performance tradeoff, effect of the process model, and loss of performance because of controller implementation, as well as quite different evaluation issues that are not usually taken into account.</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 authors.</p>
</sec>
<sec id="s9">
<title>Author contributions</title>
<p>All authors listed have made a substantial, direct, and intellectual contribution to the work and approved it for publication.</p>
</sec>
<sec id="s10">
<title>Funding</title>
<p>This work received support from the Catalan government under project 2017 SGR 1202 and also by the Spanish government under project PID 2019-105434RBC33 co-funded by the European Union ERDF.</p>
</sec>
<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>
<fn-group>
<fn id="fn1">
<label>1</label>
<p>A second degree of freedom is understood here as the separate processing of the reference signal, usually with a set-point weight &#xdf; that modifies the usual error signal <italic>e</italic> &#x3d; <italic>r</italic> &#x2212; <italic>y</italic> to <italic>e</italic> &#x3d; <italic>&#x3b2;r</italic> &#x2212; <italic>y</italic>.</p>
</fn>
<fn id="fn2">
<label>2</label>
<p>
<italic>M</italic>
<sub>
<italic>S</italic>
</sub> is the well-known robustness measure of the closed-loop system in terms of the maximum sensitivity function <inline-formula id="inf33">
<mml:math id="m59">
<mml:msub>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mo>&#x3d;</mml:mo>
</mml:mrow>
<mml:mo>&#x307;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="|" close="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>w</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>w</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:math>
</inline-formula>.</p>
</fn>
<fn id="fn3">
<label>3</label>
<p>Derivative filter constant <italic>&#x3b1;</italic> &#x3d; 0.1 is used in all controllers.</p>
</fn>
<fn id="fn4">
<label>4</label>
<p>For example, the RoPe tuning method (<xref ref-type="bibr" rid="B6">Alfaro et al., 2011</xref>).</p>
</fn>
</fn-group>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Alcantara</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Vilanova</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Pedret</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>PID control in terms of robustness/performance and servo/regulator trade-offs: A unifying approach to balanced autotuning</article-title>. <source>J. Process Control</source> <volume>23</volume>, <fpage>527</fpage>&#x2013;<lpage>542</lpage>. <pub-id pub-id-type="doi">10.1016/j.jprocont.2013.01.003</pub-id>
</citation>
</ref>
<ref id="B2">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Alfaro</surname>
<given-names>V. M.</given-names>
</name>
<name>
<surname>Vilanova</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2012a</year>). &#x201c;<article-title>Conversion formulae and performance capabilities of two-degree-of-freedom pid control algorithms</article-title>,&#x201d; in <conf-name>Proceedings of 2012 IEEE 17th International Conference on Emerging Technologies Factory Automation (ETFA)</conf-name>, <conf-loc>Krakov, Poland</conf-loc>, <conf-date>September 17&#x2013;September 21, 2012</conf-date>, <fpage>1</fpage>&#x2013;<lpage>6</lpage>.</citation>
</ref>
<ref id="B3">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Alfaro</surname>
<given-names>V. M.</given-names>
</name>
<name>
<surname>Vilanova</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2012b</year>). &#x201c;<article-title>Chap. Fragility evaluation of PI and PID controllers tuning rules</article-title>,&#x201d; in <source>PID control in the third millenium - lessons learned and new approaches</source> (<publisher-name>Springer-Verlag London Limited</publisher-name>), <fpage>349</fpage>&#x2013;<lpage>380</lpage>.</citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Alfaro</surname>
<given-names>V. M.</given-names>
</name>
<name>
<surname>Vilanova</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Simple robust tuning of 2DoF PID controllers from a performance/robustness trade-off analysis</article-title>. <source>Asian J. Control</source> <volume>15</volume>, <fpage>1700</fpage>&#x2013;<lpage>1713</lpage>. <pub-id pub-id-type="doi">10.1002/asjc.653</pub-id>
</citation>
</ref>
<ref id="B5">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Alfaro</surname>
<given-names>V. M.</given-names>
</name>
<name>
<surname>Vilanova</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2016</year>). &#x201c;<article-title>Model-reference robust tuning of PID controllers</article-title>,&#x201d; in <source>Advances in industrial control series</source> (<publisher-name>Springer-Verlag</publisher-name>).</citation>
</ref>
<ref id="B6">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Alfaro</surname>
<given-names>V. M.</given-names>
</name>
<name>
<surname>M&#xe9;ndez</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Vilanova</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2011</year>). &#x201c;<article-title>Robust-performance tuning od 2DoF PI/PID controllers for first- and second-order-plus-dead-time models</article-title>,&#x201d; in <conf-name>9th IEEE International Conference on Control &#x26; Automation (ICCA11)</conf-name>, <conf-loc>Santiago, Chile</conf-loc>, <conf-date>December 19-21</conf-date>.</citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Alfaro</surname>
<given-names>V. M.</given-names>
</name>
</person-group> (<year>2006</year>). <article-title>Low-order models identification from the process reaction curve</article-title>, <comment>(In Spanish)</comment>. <source>Cienc. Tecnol. (Costa Rica)</source> <volume>24</volume> (<issue>2</issue>), <fpage>197</fpage>&#x2013;<lpage>216</lpage>. <comment>Available at <ext-link ext-link-type="uri" xlink:href="https://revistas.ucr.ac.cr/index.php/cienciaytecnologia/article/view/2647/2598">https://revistas.ucr.ac.cr/index.php/cienciaytecnologia/article/view/2647/2598</ext-link>
</comment>.</citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Alfaro</surname>
<given-names>V. M.</given-names>
</name>
</person-group> (<year>2007</year>). <article-title>PID controllers&#x2019; fragility</article-title>. <source>ISA Trans.</source> <volume>46</volume>, <fpage>555</fpage>&#x2013;<lpage>559</lpage>. <pub-id pub-id-type="doi">10.1016/j.isatra.2007.03.006</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ang</surname>
<given-names>K. H.</given-names>
</name>
<name>
<surname>Chong</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2005</year>). <article-title>Pid control system analysis, design, and technology</article-title>. <source>IEEE Trans. Control Syst. Technol.</source> <volume>13</volume>, <fpage>559</fpage>&#x2013;<lpage>576</lpage>. <pub-id pub-id-type="doi">10.1109/tcst.2005.847331</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>&#xc5;str&#xf6;m</surname>
<given-names>K. J.</given-names>
</name>
<name>
<surname>H&#xe4;gglund</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2000</year>). &#x201c;<article-title>Benchmark systems for PID control</article-title>,&#x201d; in <conf-name>IFAC Digital Control: Past, Present and Future of PID Control (PID&#x2019;00)</conf-name>, <conf-loc>Terrasa, Spain</conf-loc>, <conf-date>5-7 April</conf-date>.</citation>
</ref>
<ref id="B11">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>&#xc5;str&#xf6;m</surname>
<given-names>K. J.</given-names>
</name>
<name>
<surname>H&#xe4;gglund</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2006</year>). &#x201c;<article-title>Advanced PID control</article-title>,&#x201d; in <source>ISA - The instrumentation, systems, and automation society</source>.</citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bennett</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>1993</year>). <article-title>Development of the pid controller</article-title>. <source>IEEE Control Syst. Mag.</source> <volume>13</volume>, <fpage>58</fpage>&#x2013;<lpage>62</lpage>. <pub-id pub-id-type="doi">10.1109/37.248006</pub-id>
</citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chien</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Hrones</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Reswick</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>1952</year>). <article-title>On the automatic Control of generalized passive systems</article-title>. <source>J. Fluids Eng.</source> <volume>74</volume>, <fpage>175</fpage>&#x2013;<lpage>183</lpage>. <pub-id pub-id-type="doi">10.1115/1.4015724</pub-id>
</citation>
</ref>
<ref id="B14">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Johnson</surname>
<given-names>M. A.</given-names>
</name>
</person-group> (<year>2005</year>). &#x201c;<article-title>Chap. PID control technology</article-title>,&#x201d; in <source>PID control - new identification and design methods</source> (<publisher-loc>U.K</publisher-loc>: <publisher-name>Springer-Verlag London Ltd.</publisher-name>), <fpage>1</fpage>&#x2013;<lpage>46</lpage>.</citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Minorsky</surname>
<given-names>N.</given-names>
</name>
</person-group> (<year>1922</year>). <article-title>Directional stability of automatically steered bodies</article-title>. <source>J. Am. Soc. Nav. Eng.</source> <volume>34</volume>, <fpage>280</fpage>&#x2013;<lpage>309</lpage>. <pub-id pub-id-type="doi">10.1111/j.1559-3584.1922.tb04958.x</pub-id>
</citation>
</ref>
<ref id="B16">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>O&#x2019;Dwyer</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2009</year>). <source>Handbook of PI and PID controller tuning rules</source>. <edition>3rd. edn</edition>. <publisher-loc>London, UK</publisher-loc>: <publisher-name>Imperial College Press</publisher-name>.</citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ogawa</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Kano</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2008</year>). <article-title>Practice and challenges in chemical process control applications in Japan</article-title>. <source>IFAC Proc. Vol.</source> <volume>41</volume>, <fpage>10608</fpage>&#x2013;<lpage>10613</lpage>. <pub-id pub-id-type="doi">10.3182/20080706-5-kr-1001.01797</pub-id>
</citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Rivera</surname>
<given-names>D. E.</given-names>
</name>
<name>
<surname>Morari</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Skogestad</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>1986</year>). <article-title>Internal model control: PID controller design</article-title>. <source>Ind. Eng. Chem. Proc. Des. Dev.</source> <volume>25</volume>, <fpage>252</fpage>&#x2013;<lpage>265</lpage>. <pub-id pub-id-type="doi">10.1021/i200032a041</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Shinskey</surname>
<given-names>F. G.</given-names>
</name>
</person-group> (<year>2002</year>). <article-title>Process control:as taught vs as practiced</article-title>. <source>Ind. Eng. Chem. Res.</source> <volume>41</volume>, <fpage>3745</fpage>&#x2013;<lpage>3750</lpage>. <pub-id pub-id-type="doi">10.1021/ie010645n</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Skogestad</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2003</year>). <article-title>Simple analytic rules for model reduction and PID controller tuning</article-title>. <source>J. Process Control</source> <volume>13</volume>, <fpage>291</fpage>&#x2013;<lpage>309</lpage>. <pub-id pub-id-type="doi">10.1016/s0959-1524(02)00062-8</pub-id>
</citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Vilanova</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Sant&#xed;n</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Pedret</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Control and operation of wastewater treatment plants (I)</article-title>. <source>Rev. Iberoam. Autom. Inform. Ind. RIAI</source> <volume>14</volume>, <fpage>217</fpage>&#x2013;<lpage>233</lpage>. <pub-id pub-id-type="doi">10.1016/j.riai.2017.05.004</pub-id>
</citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Vilanova</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Arrieta</surname>
<given-names>O.</given-names>
</name>
<name>
<surname>Gonzalez</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Garrido</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2018a</year>). <article-title>I-pd controller as an structural alternative to servo/regulation tradeoff tuning</article-title>. <source>IFAC-PapersOnLine</source> <volume>51</volume>, <fpage>787</fpage>&#x2013;<lpage>792</lpage>. <pub-id pub-id-type="doi">10.1016/j.ifacol.2018.06.200</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Vilanova</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Arrieta</surname>
<given-names>O.</given-names>
</name>
<name>
<surname>Gonz&#xe1;lez</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Garrido</surname>
<given-names>X. G.</given-names>
</name>
</person-group> (<year>2018b</year>). <article-title>I-PD controller as an structural alternative to servo/regulation tradeoff tuning</article-title>. <source>IFAC-PapersOnLine</source> <volume>51</volume>, <fpage>787</fpage>&#x2013;<lpage>792</lpage>. <pub-id pub-id-type="doi">10.1016/j.ifacol.2018.06.200</pub-id>
</citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Vilanova</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2008</year>). <article-title>Imc based robust PID design: Tuning guidelines and automatic tuning</article-title>. <source>J. Process Control</source> <volume>18</volume>, <fpage>61</fpage>&#x2013;<lpage>70</lpage>. <pub-id pub-id-type="doi">10.1016/j.jprocont.2007.05.004</pub-id>
</citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ziegler</surname>
<given-names>J. G.</given-names>
</name>
<name>
<surname>Nichols</surname>
<given-names>N. B.</given-names>
</name>
</person-group> (<year>1942</year>). <article-title>Optimum settings for automatic controllers</article-title>. <source>Trans. ASME</source> <volume>64</volume>, <fpage>759</fpage>&#x2013;<lpage>768</lpage>.</citation>
</ref>
</ref-list>
</back>
</article>