<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.0 20120330//EN" "JATS-journalpublishing1.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">INFORMATICA</journal-id>
<journal-title-group><journal-title>Informatica</journal-title></journal-title-group>
<issn pub-type="epub">1822-8844</issn><issn pub-type="ppub">0868-4952</issn><issn-l>0868-4952</issn-l>
<publisher>
<publisher-name>Vilnius University</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">INFO1158</article-id>
<article-id pub-id-type="doi">10.15388/Informatica.2017.154</article-id>
<article-categories><subj-group subj-group-type="heading">
<subject>Research Article</subject></subj-group></article-categories>
<title-group>
<article-title>A Model-Free Neuro-Fuzzy Predictive Controller for Compensation of Nonlinear Plant Inertia and Time Delay</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Yordanova</surname><given-names>Snejana</given-names></name><email xlink:href="sty@tu-sofia.bg">sty@tu-sofia.bg</email><xref ref-type="aff" rid="j_info1158_aff_001"/><xref ref-type="corresp" rid="cor1">∗</xref><bio>
<p><bold>S. Yordanova</bold> is a full-time professor of intelligent control systems at the Faculty of Automation of the Technical University of Sofia. She has received her MEng and PhD from the same university. Her research interests are related to the application of robust, fuzzy logic, neural networks and genetic algorithms approaches to modelling, control and prediction of processes in different industries – ecology, power engineering, soda production, etc. She has authored and co-authored one monograph, one chapter in a Springer book, a number of textbooks and manuals and over 130 research papers.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Ichtev</surname><given-names>Alexandar</given-names></name><email xlink:href="ichtev@tu-sofia.bg">ichtev@tu-sofia.bg</email><xref ref-type="aff" rid="j_info1158_aff_001"/><bio>
<p><bold>A. Ichtev</bold> is an associate professor in control theory at the Faculty of Automation of the Technical University of Sofia. He received his MEng and PhD degrees from the same university. His scientific interests are in the field of classical control systems, fault detection and isolation, fault tolerant control, fuzzy control, adaptive control and robust control. He has authored and co-authored one chapter in a book, a number of textbooks and laboratory manuals and over 60 research papers.</p></bio>
</contrib>
<aff id="j_info1158_aff_001"><label>1</label>Faculty of Automation, <institution>Technical University of Sofia</institution>, 8 Kliment Ohridski Blvd., Sofia 1000, <country>Bulgaria</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>∗</label>Corresponding author.</corresp>
</author-notes>
<pub-date pub-type="ppub"><year>2017</year></pub-date><pub-date pub-type="epub"><day>1</day><month>1</month><year>2017</year></pub-date><volume>28</volume><issue>4</issue><fpage>749</fpage><lpage>766</lpage><history><date date-type="received"><month>12</month><year>2016</year></date><date date-type="accepted"><month>5</month><year>2017</year></date></history>
<permissions><copyright-statement>© 2017 Vilnius University</copyright-statement><copyright-year>2017</copyright-year>
<license license-type="open-access" xlink:href="http://creativecommons.org/licenses/by/4.0/">
<license-p>Open access article under the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/">CC BY</ext-link> license.</license-p></license></permissions>
<abstract>
<p>The aim is to develop simple for industrial use neuro-fuzzy (NF) predictive controllers (NFPCs) that improve the system performance and stability compensating the nonlinear plant inertia and time delay. A NF plant predictor is trained from real time plant control data and validated to supply a main model-free fuzzy logic controller with predicted plant information. A proper prediction horizon is determined via simulation investigations. The NFPC closed loop system stability is validated based on a parallel distributed compensation (PDC) approximation of the NFPC. The PDC can easily be embedded in industrial controllers. The proposed approach is applied for the real time air temperature control in a laboratory dryer. The improvements are reduced overshoot and settling time.</p>
</abstract>
<kwd-group>
<label>Key words</label>
<kwd>fuzzy logic control</kwd>
<kwd>genetic algorithms</kwd>
<kwd>Lyapunov stability</kwd>
<kwd>fuzzy logic plant predictor</kwd>
<kwd>real time temperature control</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="j_info1158_s_001">
<label>1</label>
<title>Introduction</title>
<p>Industrial processes are immanently nonlinear, inertial, with time delays and variable parameters (Stephanopoulos, <xref ref-type="bibr" rid="j_info1158_ref_026">1984</xref>), and hence difficult to be modelled and controlled. The fuzzy logic controllers (FLCs) are successful in ensuring of robust and high performance control for various processes (Driankov and Hellendoorn, <xref ref-type="bibr" rid="j_info1158_ref_006">2001</xref>; Kosko, <xref ref-type="bibr" rid="j_info1158_ref_013">1992</xref>) without explicit mathematical plant model. However, the bad impact of a high plant time delay on the system performance and stability requires a special compensation.</p>
<p>There are two ways to compensate the high plant time delay – by Smith predictor controllers and by plant predictors. The classical Smith predictor is developed for linear time-invariant plants (Stephanopoulos, <xref ref-type="bibr" rid="j_info1158_ref_026">1984</xref>). In Yordanova (<xref ref-type="bibr" rid="j_info1158_ref_031">2011</xref>), Yordanova (<xref ref-type="bibr" rid="j_info1158_ref_032">2012</xref>) this technique is extended for nonlinear plants on the basis of a Takagi-Sugeno-Kang (TSK) fuzzy dynamic plant model and a TSK fuzzy logic controller on the principle of parallel distributed compensation (PDC), suggested first in Tanaka and Wang (<xref ref-type="bibr" rid="j_info1158_ref_027">2001</xref>). The TSK model ensures soft switching among several linear models, valid for different operation zones. The fuzzy PDC is built of local linear controllers in the rule conclusions, Smith predictors in this case. Each local Smith predictor is designed for each local linear plant with time delay using the well mastered linear control technique. The TSK-PDC concept enables the study of the global PDC-Smith predictor system stability by application of the Lyapunov indirect method and the linear matrix inequalities (LMIs) numerical technique (Yordanova, <xref ref-type="bibr" rid="j_info1158_ref_031">2011</xref>). Various plant predictors are suggested in Flores <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1158_ref_007">2005</xref>), Mahfouf <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1158_ref_015">2001</xref>), Yahsunobu and Hasegawa (<xref ref-type="bibr" rid="j_info1158_ref_029">1986</xref>), Yordanova (<xref ref-type="bibr" rid="j_info1158_ref_031">2011</xref>), Yordanova <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1158_ref_035">2006</xref>). They are based on fuzzy, neural and neuro–fuzzy (NF) integrated techniques (Jang, <xref ref-type="bibr" rid="j_info1158_ref_011">1993</xref>; Jang <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1158_ref_012">1997</xref>; Kosko, <xref ref-type="bibr" rid="j_info1158_ref_013">1992</xref>) for easy mapping of nonlinear relationships, robustness to imprecision and uncertainties, learning from experience (experimental data) and adaptation. The training of the predictor is off–line and facilitated greatly by the large number of developed software (Fuzzy Logic Toolbox, <xref ref-type="bibr" rid="j_info1158_ref_008">1992</xref>; IEC, <xref ref-type="bibr" rid="j_info1158_ref_010">1999</xref>; Jang, <xref ref-type="bibr" rid="j_info1158_ref_011">1993</xref>; SIMATIC S7, <xref ref-type="bibr" rid="j_info1158_ref_024">2002</xref>). In Babuška <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1158_ref_001">1999</xref>), Castellano (<xref ref-type="bibr" rid="j_info1158_ref_004">2000</xref>), Mendonça <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1158_ref_019">2004</xref>) a Sugeno or a NF predictor is used in the generalized model predictive control (GMPC) scheme (Camacho and Bordons, <xref ref-type="bibr" rid="j_info1158_ref_003">2004</xref>; Clarke <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1158_ref_005">1987</xref>; Rawlings and Mayne, <xref ref-type="bibr" rid="j_info1158_ref_021">2009</xref>). Predictive FLCs are demonstrated for different applications. In Mahfouf <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1158_ref_015">2001</xref>) a predictive FLC is developed for level control on the basis of a TSK plant model. In Mazinan and Sadati (<xref ref-type="bibr" rid="j_info1158_ref_018">2010</xref>) a multi-model linear predictive control on local FLCs and one–step fuzzy predictors in series is suggested for tubular heat exchanger. A predictive FLC is applied for air-conditioning with an internal plant model in Sousa <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1158_ref_025">1997</xref>) and with a Sugeno neuro-fuzzy plant predictor (NFPP) in Thompson and Dexter (<xref ref-type="bibr" rid="j_info1158_ref_028">2005</xref>). In Yahsunobu and Hasegawa (<xref ref-type="bibr" rid="j_info1158_ref_029">1986</xref>) a predictive FLC is designed for crane control and in Marsili-Libelli and Colzi (<xref ref-type="bibr" rid="j_info1158_ref_016">1998</xref>) – for diffusion processes, where the rate of error is substituted by a NF error prediction. A NFPP is trained from plant simulation data and a FLC is designed based on an inverse cause–result relationship for the metal position control in sinter strand process in Hu and Rose (<xref ref-type="bibr" rid="j_info1158_ref_009">1997</xref>). An optimization of fuzzy model predictive controller using genetic algorithms (GAs) is presented in Sarimveis and Bafas (<xref ref-type="bibr" rid="j_info1158_ref_023">2003</xref>).</p>
<p>All existing approaches suffer the following common problems. The design methodology is complicated, application–bound and incomplete. It requires much initial data about the plant. No closed loop system stability analysis, validation of the models, theoretical justification of the parameters tuning and estimation of the proper prediction horizon are considered. The algorithms are computationally heavy, thus restricting their large scale real time industrial implementation via PLCs or embedded technique. The estimation of the improvements resulting from the effective compensation of the plant inertia and the high relative time delay is based mainly on simulations. The impact of important factors, observed in real time control and in industrial environment, such as noise, disturbances, sample time, restrictions on real signals (Kuo, <xref ref-type="bibr" rid="j_info1158_ref_014">1995</xref>; Randall, <xref ref-type="bibr" rid="j_info1158_ref_020">2002</xref>), plant nonlinearities, uncertainties, etc., related with the process, the measuring devices and the final control elements (Stephanopoulos, <xref ref-type="bibr" rid="j_info1158_ref_026">1984</xref>), etc. are not accounted for.</p>
<p>Partial solution of the above problems is suggested in Yordanova <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1158_ref_035">2006</xref>), Yordanova and Mladenov (<xref ref-type="bibr" rid="j_info1158_ref_033">2008</xref>) where the algorithm and the design are simplified by the introduction of a Sugeno NFPP in the system feedback. The NFPP is trained from simulation based on an approximate plant nonlinear model or experimental data using the MATLAB™ application Adaptive Neuro–Fuzzy Inference System (ANFIS) (Jang, <xref ref-type="bibr" rid="j_info1158_ref_011">1993</xref>). The designed NF predictive controller (NFPC) can be easily programmed in an industrial programmable logic controller (PLC) (SIMATIC S7, <xref ref-type="bibr" rid="j_info1158_ref_024">2002</xref>). A NFPC with a Sugeno NF main controller is developed for the processes of anaerobic digestion of organic waste in wastewater treatment in Yordanova <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1158_ref_035">2006</xref>), and the closed loop system stability and performance improvement studied by simulation from the linguistic phase trajectories and the step responses to reference, disturbance and model parameter changes. A NFPC with a linear PI main controller is developed and implemented for the real time liquid temperature control in a laboratory tank in Yordanova and Mladenov (<xref ref-type="bibr" rid="j_info1158_ref_033">2008</xref>). The Sugeno NFPP is trained and validated using experimental data from the real time PI temperature control. The PI controller is empirically tuned using average for the range of operation plant model parameters estimated by plant identification or experts. The performance improvement – a reduced overshoot of the PI-NFPC system in regard to the PI control system, is assessed from one step response in real time control.</p>
<p>The aim of the present investigation is to develop a general, application–independent and experimentation–based methodology for the design of simple NF predictive controllers for compensation of the inertia and the high relative time delay of a nonlinear plant. The controller is built of a main FLC and a feedback Sugeno NFPP and is PLC feasible for real time industrial implementation. Its model-free design is based on selection of a proper prediction horizon, system stability analysis, GAs optimization, validation and assessment of the NFPC system performance improvement using data from real time control.</p>
<fig id="j_info1158_fig_001">
<label>Fig. 1</label>
<caption>
<p>Closed loop system with main FLC and feedback Sugeno NF plant predictor.</p>
</caption>
<graphic xlink:href="info1158_g001.jpg"/>
</fig>
<p>The closed loop system to be designed is shown in Fig. <xref rid="j_info1158_fig_001">1</xref>. It consists of a Sugeno NF predictive controller of type FLC-NFPP for the control of a nonlinear inertial plant with time delay. The notations are: <inline-formula id="j_info1158_ineq_001"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${y_{r}}$]]></tex-math></alternatives></inline-formula> is the reference; <inline-formula id="j_info1158_ineq_002"><alternatives><mml:math>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$y(t)$]]></tex-math></alternatives></inline-formula> – the plant output controlled variable; <inline-formula id="j_info1158_ineq_003"><alternatives><mml:math>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$u(t)$]]></tex-math></alternatives></inline-formula> – the control action; <inline-formula id="j_info1158_ineq_004"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${y_{k}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1158_ineq_005"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${u_{k}}$]]></tex-math></alternatives></inline-formula> are their values at discrete time <inline-formula id="j_info1158_ineq_006"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{k}}$]]></tex-math></alternatives></inline-formula>; <inline-formula id="j_info1158_ineq_007"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${y_{k+{H_{p}}}}$]]></tex-math></alternatives></inline-formula> – the predicted plant output for a prediction horizon <inline-formula id="j_info1158_ineq_008"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{p}}$]]></tex-math></alternatives></inline-formula>; <inline-formula id="j_info1158_ineq_009"><alternatives><mml:math>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$e(t)={y_{r}}-{y_{k+{H_{p}}}}$]]></tex-math></alternatives></inline-formula> – the system error. The existence of a plant time delay <italic>τ</italic> means that the current measured control <inline-formula id="j_info1158_ineq_010"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${u_{k}}$]]></tex-math></alternatives></inline-formula> will be felt at the plant output after <italic>d</italic> sample periods <inline-formula id="j_info1158_ineq_011"><alternatives><mml:math>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\Delta t-{y_{k+d}}$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_info1158_ineq_012"><alternatives><mml:math>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo stretchy="false">≈</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi mathvariant="italic">t</mml:mi></mml:math><tex-math><![CDATA[$\tau \approx d\Delta t$]]></tex-math></alternatives></inline-formula>, or the current measured output <inline-formula id="j_info1158_ineq_013"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${y_{k}}$]]></tex-math></alternatives></inline-formula> is a result of a previous control <inline-formula id="j_info1158_ineq_014"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${u_{k-d}}$]]></tex-math></alternatives></inline-formula>. A nonlinear plant determines a nonlinear plant predictor. A general approach for modelling of a nonlinear element – a plant predictor or a plant, is training of a neural network or a more economic in structure Sugeno NF system from pre-processed experimental plant input-output data. Sugeno models can model any nonlinearity with a small number of rules and membership functions (MFs). The plant time delay <italic>τ</italic> can be compensated by selection of a proper prediction horizon <inline-formula id="j_info1158_ineq_015"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{p}}$]]></tex-math></alternatives></inline-formula> even when <italic>τ</italic> and all other nonlinear plant model parameters change with the operation point, defined by the plant inputs – control and disturbances, and the plant output. The role of the NFPP is to predict the expected after the time delay plant output.</p>
<p>The main tasks to be solved in the present research are:</p>
<list>
<list-item id="j_info1158_li_001">
<label>–</label>
<p>a TSK plant modelling and validation based on data from the real time plant control by an empirically designed model–free FLC;</p>
</list-item>
<list-item id="j_info1158_li_002">
<label>–</label>
<p>a Sugeno NFPP training and validation using experimental data from the FLC real time plant control and selection of a proper prediction horizon via investigations based on system simulations;</p>
</list-item>
<list-item id="j_info1158_li_003">
<label>–</label>
<p>stability analysis of the FLC-NFPP closed loop system using Lyapunov-LMIs approach and the TSK-PDC system representation based on a PDC GAs approximation of the FLC-NFPP and PDC validation using data from the FLC-NFPP real time control; the simpler PDC enables a PLC implementation;</p>
</list-item>
<list-item id="j_info1158_li_004">
<label>–</label>
<p>an assessment of the NFPC system performance improvement in regard to the performance of the FLC system from their real time operation for various reference changes. A comparison with alternative existing approaches is incorrect because of the more complex algorithms used which may not fit the real time control limitations, and the more sophisticated design based on a plant model and specific software.</p>
</list-item>
</list>
<p>The solutions of the above problems outline a novel general systematic approach for the design of computationally simple and experimentally proven FLC-NFPP. The design is illustrated for the air temperature in a laboratory dryer.</p>
<p>The input data is minimal initial empirical and/or expert information about the nonlinear inertial plant and its linear operation ranges needed for the design of a model-free Mamdani FLC and a TSK plant model.</p>
<p>The GAs are selected as a proper gradient-free optimization technique for random parallel search of global extremum of a nonlinear multimodal cost function of many parameters, defined often on experimental data and combining several criteria and constraints. They are frequently employed for tuning of FLCs, PDCs and other controllers from experimental data (Sarimveis and Bafas, <xref ref-type="bibr" rid="j_info1158_ref_023">2003</xref>; Yordanova and Sivchev, <xref ref-type="bibr" rid="j_info1158_ref_034">2014</xref>). A TSK model and a PDC are accepted to approximate the plant and the designed compound NFPC of a main FLC and a NFPP respectively. The grounds are that a TSK model can describe with desired accuracy any smooth sector–bounded, continuous nonlinear function and for each TSK plant model there always can be designed a corresponding PDC controller (Tanaka and Wang, <xref ref-type="bibr" rid="j_info1158_ref_027">2001</xref>).</p>
<p>The investigations are carried out by the help of MATLAB™ and its toolboxes Simulink, Fuzzy logic, ANFIS (Fuzzy Logic Toolbox, <xref ref-type="bibr" rid="j_info1158_ref_008">1992</xref>; Jang, <xref ref-type="bibr" rid="j_info1158_ref_011">1993</xref>), Genetic algorithms (MATLAB – Genetic Algorithm, <xref ref-type="bibr" rid="j_info1158_ref_017">2004</xref>), Real time (Real– Time Workshop, <xref ref-type="bibr" rid="j_info1158_ref_022">2002</xref>) and Robust control with LMIs (Balas <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1158_ref_002">2005</xref>).</p>
<p>The rest of the paper is organized as follows. Section <xref rid="j_info1158_s_002">2</xref> is devoted to the derivation and the validation of a TSK plant model based on GAs parameter optimization and data from the real time control of a plant by a designed model-free main FLC. In Section <xref rid="j_info1158_s_003">3</xref> a NFPP is trained and validated, and a proper prediction horizon selected via simulation investigations. The NFPC system stability analysis, based on a PDC approximation of the NFPC, is presented in Section <xref rid="j_info1158_s_004">4</xref>. In Section <xref rid="j_info1158_s_005">5</xref> the performance of the FLC-NFPP real time temperature control is assessed in regard to the performance of the FLC real time control. The conclusion and the future research are outlined in Section <xref rid="j_info1158_s_006">6</xref>.</p>
</sec>
<sec id="j_info1158_s_002">
<label>2</label>
<title>TSK Plant Modelling and Validation</title>
<p>First, a model-free FLC is designed and implemented for the real time control of the existing plant (pilot or industrial) to collect data for the TSK plant modelling.</p>
<p>The plant used to illustrate the developed approach is a small-scale laboratory tunnel dryer (Yordanova, <xref ref-type="bibr" rid="j_info1158_ref_031">2011</xref>). The controlled variable <italic>y</italic> is the air temperature in the tunnel, measured by the help of an industrial transducer platinum 100 for temperatures <inline-formula id="j_info1158_ineq_016"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>200</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>∘</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${[0,200]^{\circ }}$]]></tex-math></alternatives></inline-formula>C with a three-wired connection to a transmitter with voltage output in the range <inline-formula id="j_info1158_ineq_017"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>10</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$[0,10]$]]></tex-math></alternatives></inline-formula> V. The industrial final control elements are an electrical heater, a fan and a solid state relay (SSR) to connect them to the nets voltage supply during the pulses of a Pulse-Width-Modulator (PWM). The cooling is by natural convection. The plant is smoothly nonlinear and inertial. A data acquisition board (DAQ) with an Analog-to-Digital Converter (ADC) and a Digital Output (DO) constitutes the interface between the dryer and a computer. A MATLAB™-Simulink model performs the real time control at each discrete time moment reading via the ADC of the DAQ the voltage of the temperature transmitter, converting it to measured temperature, computing the system error, evaluating the control action <italic>u</italic> according to the configured algorithm, passing it to a software PWM and via the DO of the DAQ to the SSR. It also provides graph scopes for plotting of different signals and generators for the necessary references. An industrial PLC can replace the computer with the DAQ.</p>
<p><bold>The input data are</bold> empirical or expert knowledge about: the ranges of operation of the plant – temperature range <inline-formula id="j_info1158_ineq_018"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mn>15</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>65</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>∘</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${[15,65]^{\circ }}$]]></tex-math></alternatives></inline-formula>C, of the expected maximal absolute system error – <inline-formula id="j_info1158_ineq_019"><alternatives><mml:math>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo></mml:math><tex-math><![CDATA[$|{e_{\max }}|$]]></tex-math></alternatives></inline-formula> of <inline-formula id="j_info1158_ineq_020"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>∘</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${10^{\circ }}$]]></tex-math></alternatives></inline-formula>C, of the control action <inline-formula id="j_info1158_ineq_021"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>10</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$[0,10]$]]></tex-math></alternatives></inline-formula>, of the plant time delay <inline-formula id="j_info1158_ineq_022"><alternatives><mml:math>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo>−</mml:mo>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>15</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$\tau -[3,15]$]]></tex-math></alternatives></inline-formula> s; the number of zones (operation ranges) <italic>N</italic> where the plant can be represented by <italic>N</italic> different linear models, here <inline-formula id="j_info1158_ineq_023"><alternatives><mml:math>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>3</mml:mn></mml:math><tex-math><![CDATA[$N=3$]]></tex-math></alternatives></inline-formula>.</p>
<p>Different types of FLCs can be model-free designed – an incremental or positional PID (or PI, PD, etc.), FLC with two inputs (2I FLC) to the fuzzy unit (FU) or a single input, etc. Here the incremental PI-2I FLC with standard MFs, rules and control surface, shown in Fig. <xref rid="j_info1158_fig_002">2</xref>, is selected for illustration of the design methodology. The FU has inputs – the system error <inline-formula id="j_info1158_ineq_024"><alternatives><mml:math>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$e(t)$]]></tex-math></alternatives></inline-formula> and its derivative <inline-formula id="j_info1158_ineq_025"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\dot{e}(t)$]]></tex-math></alternatives></inline-formula> or the rate of error <inline-formula id="j_info1158_ineq_026"><alternatives><mml:math>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$de(t)$]]></tex-math></alternatives></inline-formula>. The output is the rate of control <inline-formula id="j_info1158_ineq_027"><alternatives><mml:math>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$du(t)$]]></tex-math></alternatives></inline-formula>. The inputs and the output are represented by standard MFs, defined in normalized universes of discourse <inline-formula id="j_info1158_ineq_028"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$[-1,1]$]]></tex-math></alternatives></inline-formula>, connected in standard rules. The pre-processing includes a differentiator <inline-formula id="j_info1158_ineq_029"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${W_{d}}(s)$]]></tex-math></alternatives></inline-formula> usually of first order <inline-formula id="j_info1158_ineq_030"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo>.</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${W_{d}}(s)={K_{d}}.{T_{d}}.s.{({T_{d}}.s+1)^{-1}}$]]></tex-math></alternatives></inline-formula> to compute <inline-formula id="j_info1158_ineq_031"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\dot{e}(t)$]]></tex-math></alternatives></inline-formula> and also to filter measurement noise, and scaling factors (ScFs) for inputs normalization <inline-formula id="j_info1158_ineq_032"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${K_{e}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1158_ineq_033"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${K_{de}}$]]></tex-math></alternatives></inline-formula>. The post-processing depends on the type of the fuzzy algorithm – PID, PI, PD or other. For PI it includes an integrator and a denormalization ScF <inline-formula id="j_info1158_ineq_034"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${K_{du}}$]]></tex-math></alternatives></inline-formula>. All ScFs and differentiator’s parameters are empirically tuned for a determined sample period from <inline-formula id="j_info1158_ineq_035"><alternatives><mml:math>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0.1</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">τ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">min</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0.3</mml:mn></mml:math><tex-math><![CDATA[$\Delta t=0.1{\tau _{\min }}=0.3$]]></tex-math></alternatives></inline-formula> s, where <inline-formula id="j_info1158_ineq_036"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">τ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">min</mml:mo>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\tau _{\min }}$]]></tex-math></alternatives></inline-formula> is the minimal expected plant time delay (Yordanova, <xref ref-type="bibr" rid="j_info1158_ref_031">2011</xref>), or from the PLC defined cycle time. The differentiator has a high gain <inline-formula id="j_info1158_ineq_037"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${K_{d}}$]]></tex-math></alternatives></inline-formula> and a small time constant <inline-formula id="j_info1158_ineq_038"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>÷</mml:mo>
<mml:mn>10</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi mathvariant="italic">t</mml:mi></mml:math><tex-math><![CDATA[${T_{d}}=(2\div 10)\Delta t$]]></tex-math></alternatives></inline-formula>. Here <inline-formula id="j_info1158_ineq_039"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>5</mml:mn></mml:math><tex-math><![CDATA[${K_{d}}=5$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1158_ineq_040"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[${T_{d}}=1$]]></tex-math></alternatives></inline-formula> are accepted. The ScFs <inline-formula id="j_info1158_ineq_041"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${K_{e}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1158_ineq_042"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${K_{de}}$]]></tex-math></alternatives></inline-formula> are computed on the basis of the maximal or average expected system error – <inline-formula id="j_info1158_ineq_043"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0.1</mml:mn></mml:math><tex-math><![CDATA[${K_{e}}=0.1$]]></tex-math></alternatives></inline-formula> since <inline-formula id="j_info1158_ineq_044"><alternatives><mml:math>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>10</mml:mn></mml:math><tex-math><![CDATA[$|{e_{\max }}|=10$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1158_ineq_045"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\dot{e}(t)$]]></tex-math></alternatives></inline-formula> is not scaled but bounded in the range <inline-formula id="j_info1158_ineq_046"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$[-1,1]$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1158_ineq_047"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0.05</mml:mn></mml:math><tex-math><![CDATA[${K_{du}}=0.05$]]></tex-math></alternatives></inline-formula> on the basis of the control action range.</p>
<fig id="j_info1158_fig_002">
<label>Fig. 2</label>
<caption>
<p>Incremental PI-2I FLC with FU membership functions, fuzzy rules and control surface.</p>
</caption>
<graphic xlink:href="info1158_g002.jpg"/>
</fig>
<p>The designed PI-2I FLC is used in real time control of the air temperature. The temperature step responses to various reference changes from different operation points and the corresponding control is shown in Fig. <xref rid="j_info1158_fig_003">3</xref> and further used in the TSK plant modelling and the NFPP training. The experiments are planned with respect to references and disturbances that ensure measurement data for the plant output <inline-formula id="j_info1158_ineq_048"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${y_{i}}$]]></tex-math></alternatives></inline-formula> in the whole range of its operation. The data should also be rich in magnitudes and frequencies to best reflect the system nonlinearity. They are split into a part <inline-formula id="j_info1158_ineq_049"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({u_{k}^{1}},{y_{k}^{1}})$]]></tex-math></alternatives></inline-formula> (<inline-formula id="j_info1158_ineq_050"><alternatives><mml:math>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>3</mml:mn></mml:math><tex-math><![CDATA[$2/3$]]></tex-math></alternatives></inline-formula> of all data) used for the TSK plant modelling and the NFPP training, and a part <inline-formula id="j_info1158_ineq_051"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({u_{k}^{2}},{y_{k}^{2}})$]]></tex-math></alternatives></inline-formula> for validation of the TSK model and the NFPP. The data samples <inline-formula id="j_info1158_ineq_052"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({u_{k}^{1}},{y_{k}^{1}})$]]></tex-math></alternatives></inline-formula> are first pre-processed. Noise is filtered by smoothing. Correlation and size are reduced by dilution in time – the dilution sample time is <inline-formula id="j_info1158_ineq_053"><alternatives><mml:math>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi mathvariant="italic">t</mml:mi></mml:math><tex-math><![CDATA[$k\Delta t$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_info1158_ineq_054"><alternatives><mml:math>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>÷</mml:mo>
<mml:mn>10</mml:mn></mml:math><tex-math><![CDATA[$k=4\div 10$]]></tex-math></alternatives></inline-formula> is chosen to preserve the data pattern. Non-informative measurements are neglected. The data are also standardized or normalized in the range <inline-formula id="j_info1158_ineq_055"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$[-1,1]$]]></tex-math></alternatives></inline-formula> or <inline-formula id="j_info1158_ineq_056"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$[0,1]$]]></tex-math></alternatives></inline-formula>. The pre-processed data is denoted as <inline-formula id="j_info1158_ineq_057"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({u_{kn}^{1}},{y_{kn}^{1}})$]]></tex-math></alternatives></inline-formula>.</p>
<fig id="j_info1158_fig_003">
<label>Fig. 3</label>
<caption>
<p>Step responses of temperature and control action from real time PI-2I FLC plant control.</p>
</caption>
<graphic xlink:href="info1158_g003.jpg"/>
</fig>
<p>The standard TSK plant model consists of a FU with defined usually by experts <italic>N</italic> linear zones as input MFs. The input(s) <italic>z</italic> are measured or computed on the basis of measured variable(s). The current <italic>z</italic> is mapped into the MFs values <inline-formula id="j_info1158_ineq_058"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mu _{j}}$]]></tex-math></alternatives></inline-formula> <inline-formula id="j_info1158_ineq_059"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>÷</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(j=1\div N)$]]></tex-math></alternatives></inline-formula> of belonging to the defined zones. The conclusions of the <italic>N</italic> fuzzy rules contain state space local linear dynamic models that describe the plant behaviour in the different operation zones. The TSK model output <italic>y</italic> is computed as a soft fuzzy blending (e.g. weighted average) of the current local plants outputs – <inline-formula id="j_info1158_ineq_060"><alternatives><mml:math>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mo largeop="false" movablelimits="false">∑</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mo largeop="false" movablelimits="false">∑</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$y={\textstyle\sum _{j=1}^{N}}{\mu _{j}}{y_{j}}/{\textstyle\sum _{j=1}^{N}}{\mu _{j}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>In the present research a modified TSK plant model is suggested and shown in Fig. <xref rid="j_info1158_fig_004">4</xref> for <inline-formula id="j_info1158_ineq_061"><alternatives><mml:math>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>3</mml:mn></mml:math><tex-math><![CDATA[$N=3$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1158_ineq_062"><alternatives><mml:math>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi></mml:math><tex-math><![CDATA[$z=y$]]></tex-math></alternatives></inline-formula>. It consists of a zero order Sugeno Model and a separate dynamic part. The Sugeno Model is built of a FU with input <italic>y</italic> and <italic>N</italic> outputs with singletons as MFs and fuzzy rules that yield outputs equal to <inline-formula id="j_info1158_ineq_063"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mu _{j}}$]]></tex-math></alternatives></inline-formula>. The FU input MFs like in the standard TSK model map the linear ranges (zones) according to expert information and are orthogonal, standard, defined in absolute universes of discourse. In Fig. <xref rid="j_info1158_fig_004">4</xref> they are defined as <italic>S</italic> for small <italic>y</italic>, <italic>M</italic> for medium <italic>y</italic>, corresponding to the nominal linear operation zone, and <italic>B</italic> for big <italic>y</italic>. The dynamic part is based on transfer functions with easily estimated by experts type. It consists of <italic>N</italic> parallel local linear models with the plant input <inline-formula id="j_info1158_ineq_064"><alternatives><mml:math>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$u(t)$]]></tex-math></alternatives></inline-formula> as input and outputs <inline-formula id="j_info1158_ineq_065"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${y_{j}}(t)$]]></tex-math></alternatives></inline-formula> which are scaled by <inline-formula id="j_info1158_ineq_066"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mu _{j}}$]]></tex-math></alternatives></inline-formula> in fuzzy blending to yield the TSK plant model defuzzyfied output (Yordanova, <xref ref-type="bibr" rid="j_info1158_ref_031">2011</xref>; Yordanova and Sivchev, <xref ref-type="bibr" rid="j_info1158_ref_034">2014</xref>). The linear plant model in the <italic>j</italic>-th zone in Fig. <xref rid="j_info1158_fig_004">4</xref> is described by the transfer function <inline-formula id="j_info1158_ineq_067"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${P_{j}}(s)={K_{j}}{[{T_{j}}{T_{j+3}}{s^{2}}+({T_{j}}+{T_{j+3}})s+1]^{-1}}$]]></tex-math></alternatives></inline-formula>, which can reflect the behaviour of many linear inertial plants with time delay from the engineering practice.</p>
<fig id="j_info1158_fig_004">
<label>Fig. 4</label>
<caption>
<p>Modified TSK plant model.</p>
</caption>
<graphic xlink:href="info1158_g004.jpg"/>
</fig>
<p>In general the parameters of the MFs and of the transfer functions of the local linear dynamic models in the modified TSK model can be computed via an optimization procedure for minimization of the modelling error. Here only the parameters <inline-formula id="j_info1158_ineq_068"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">TSK</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>5</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>6</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[${\mathbf{q}_{\mathrm{TSK}}}=[{K_{1}},{T_{1}},{T_{4}};{K_{2}},{T_{2}},{T_{5}};{K_{3}},{T_{3}},{T_{6}}]$]]></tex-math></alternatives></inline-formula> of the local dynamic models in Fig. <xref rid="j_info1158_fig_004">4</xref> are optimized by GAs minimization of the following fitness function: 
<disp-formula id="j_info1158_eq_001">
<label>(1)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">F</mml:mi>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∫</mml:mo></mml:mstyle>
<mml:msup>
<mml:mrow>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">[</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mspace width="0.1667em"/>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{F}=\int {\big[E(t)/y(t)\big]^{2}}\hspace{0.1667em}dt\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_info1158_ineq_069"><alternatives><mml:math>
<mml:mi mathvariant="italic">E</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">TSK</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$E(t)=y(t)-{y_{\mathrm{TSK}}}(t)$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1158_ineq_070"><alternatives><mml:math>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$y(t)$]]></tex-math></alternatives></inline-formula> is the plant output in Fig. <xref rid="j_info1158_fig_003">3</xref> from the real time plant control and <inline-formula id="j_info1158_ineq_071"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">TSK</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${y_{\mathrm{TSK}}}(t)$]]></tex-math></alternatives></inline-formula> is the output of the TSK plant model in Fig. <xref rid="j_info1158_fig_004">4</xref> from simulations of the closed loop system with the designed PI-2I FLC.</p>
<p>The GAs parameter optimization is based on a data sample of control action <inline-formula id="j_info1158_ineq_072"><alternatives><mml:math>
<mml:mi mathvariant="italic">U</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>4.7</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$U\in [0,4.7]$]]></tex-math></alternatives></inline-formula> and temperature <italic>y</italic> in the range between the ambient temperature <inline-formula id="j_info1158_ineq_073"><alternatives><mml:math>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>19.7</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>∘</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$y(0)={19.7^{\circ }}$]]></tex-math></alternatives></inline-formula>C and the maximal <inline-formula id="j_info1158_ineq_074"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>53</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>∘</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${y_{\max }}={53^{\circ }}$]]></tex-math></alternatives></inline-formula>C. The bounds for the tuning parameters <inline-formula id="j_info1158_ineq_075"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">TSK</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{q}_{\mathrm{TSK}}}$]]></tex-math></alternatives></inline-formula> are estimated on the basis of initial expert information about the plant.</p>
<p>The optimal parameters of the local linear plants computed are: 
<disp-formula id="j_info1158_eq_002">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">TSK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∘</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>15.8</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>116</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>7</mml:mn>
<mml:mo>;</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>10.7</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>106</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>5</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>6</mml:mn>
<mml:mo>;</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>7.4</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>110</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>6</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}{\mathbf{q}_{\mathrm{TSK}}^{\circ }}=& [{K_{1}}=15.8,\hspace{2.5pt}{T_{1}}=116,\hspace{2.5pt}{T_{4}}=7;\hspace{2.5pt}{K_{2}}=10.7,\hspace{2.5pt}{T_{2}}=106,\hspace{2.5pt}{T_{5}}=6;\hspace{2.5pt}{K_{3}}=7.4,\\ {} & {T_{3}}=110,\hspace{2.5pt}{T_{6}}=3].\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>The reference step responses of the simulated system with the TSK plant model for <inline-formula id="j_info1158_ineq_076"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">TSK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∘</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathbf{q}_{\mathrm{TSK}}^{\circ }}$]]></tex-math></alternatives></inline-formula> <inline-formula id="j_info1158_ineq_077"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">TSK</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${y_{\mathrm{TSK}}}{^{(t)}}$]]></tex-math></alternatives></inline-formula> and the real plant output <inline-formula id="j_info1158_ineq_078"><alternatives><mml:math>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$y(t)$]]></tex-math></alternatives></inline-formula> from the FLC real time temperature control are close as seen in Fig. <xref rid="j_info1158_fig_003">3</xref>.</p>
<p>The TSK plant model is ready for use and can ensure reliable results from simulations and system stability analysis after a successful validation. Therefore, the real time control system and the simulated system with the TSK plant model are subjected to reference changes different from the ones used in the TSK modelling. The step responses of the TSK plant model <inline-formula id="j_info1158_ineq_079"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">TSK</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${y_{\mathrm{TSK}}}(t)$]]></tex-math></alternatives></inline-formula> and the real plant <inline-formula id="j_info1158_ineq_080"><alternatives><mml:math>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$y(t)$]]></tex-math></alternatives></inline-formula> are shown in Fig. <xref rid="j_info1158_fig_005">5</xref>. They are also close for <inline-formula id="j_info1158_ineq_081"><alternatives><mml:math>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo>⩽</mml:mo>
<mml:mn>53</mml:mn></mml:math><tex-math><![CDATA[$y\leqslant 53$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1158_ineq_082"><alternatives><mml:math>
<mml:mi mathvariant="italic">U</mml:mi>
<mml:mo>⩽</mml:mo>
<mml:mn>4.7</mml:mn></mml:math><tex-math><![CDATA[$U\leqslant 4.7$]]></tex-math></alternatives></inline-formula> for which the TSK plant model is derived. This proves that the TSK plant model is adequate and accurate for all possible inputs in the defined ranges for <italic>y</italic> and <italic>U</italic>. In case the validation fails, a new GAs optimization should be started from different random values for the model parameters, changed bounds for them, or different GAs parameters – number of generations, mating and crossover method, mutation rate, etc.</p>
<fig id="j_info1158_fig_005">
<label>Fig. 5</label>
<caption>
<p>TSK plant model validation for different references.</p>
</caption>
<graphic xlink:href="info1158_g005.jpg"/>
</fig>
</sec>
<sec id="j_info1158_s_003">
<label>3</label>
<title>Design of a Neuro-Fuzzy Plant Predictor with Proper Prediction Horizon</title>
<p>The NFPP design, suggested here, consists of the following steps.</p>
<p><bold>Step 1.</bold> Preparation of the training data. The training input–target couples <inline-formula id="j_info1158_ineq_083"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$[({u_{kn}^{1}},{y_{kn}^{1}}),{y_{kn+Hp}^{1}}]$]]></tex-math></alternatives></inline-formula> are obtained from the data <inline-formula id="j_info1158_ineq_084"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">U</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(U,y)$]]></tex-math></alternatives></inline-formula> from PI-2I FLC real time plant control, shown in Fig. <xref rid="j_info1158_fig_003">3</xref>. The data is filtered from noise, normalized for <inline-formula id="j_info1158_ineq_085"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>4.7</mml:mn></mml:math><tex-math><![CDATA[${U_{\max }}=4.7$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1158_ineq_086"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>53</mml:mn></mml:math><tex-math><![CDATA[${y_{\max }}=53$]]></tex-math></alternatives></inline-formula> and with reduced correlation and size by taking every <italic>k</italic>th element, <inline-formula id="j_info1158_ineq_087"><alternatives><mml:math>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>4</mml:mn></mml:math><tex-math><![CDATA[$k=4$]]></tex-math></alternatives></inline-formula>. The training data sample period becomes <inline-formula id="j_info1158_ineq_088"><alternatives><mml:math>
<mml:mn>4</mml:mn>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1.2</mml:mn></mml:math><tex-math><![CDATA[$4\Delta t=1.2$]]></tex-math></alternatives></inline-formula> s. The target vector with the predicted values <inline-formula id="j_info1158_ineq_089"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${y_{kn+Hp}^{1}}$]]></tex-math></alternatives></inline-formula> is computed from the input training sample <inline-formula id="j_info1158_ineq_090"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${y_{kn}^{1}}$]]></tex-math></alternatives></inline-formula> for an initial guess for the prediction horizon <inline-formula id="j_info1158_ineq_091"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>10</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>4</mml:mn>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>12</mml:mn></mml:math><tex-math><![CDATA[${H_{p}}=10(4\Delta t)=12$]]></tex-math></alternatives></inline-formula> s in the estimated range of the plant time delay – <inline-formula id="j_info1158_ineq_092"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>15</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[${H_{p}}\in [3,15]$]]></tex-math></alternatives></inline-formula> s.</p>
<p>The NFPP can be trained also on data from simulations of the closed loop system with the validated TSK plant model subjected to a great number of random in magnitude and duration reference changes in the operation range since simulation ensures fast responses, noiseless recorded data and full control over the simulation planned experiments. Thus, the dependence of the NFPP on the reference related training data is avoided.</p>
<p><bold>Step 2.</bold> Design of a Sugeno NF model structure. Here a Sugeno NF model with three MFs for each input and singletons in the conclusions is assumed.</p>
<p><bold>Step 3.</bold> NFPP training using ANFIS. The NFPP training ends successfully with the rules, the MFs and the prediction surface, presented in Fig. <xref rid="j_info1158_fig_006">6</xref>. The singletons in the conclusions are optimized to <inline-formula id="j_info1158_ineq_093"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mn>0.37</mml:mn>
<mml:mspace width="0.2778em"/>
<mml:mn>0.61</mml:mn>
<mml:mspace width="0.2778em"/>
<mml:mn>0.97</mml:mn>
<mml:mspace width="0.2778em"/>
<mml:mn>0.46</mml:mn>
<mml:mspace width="0.2778em"/>
<mml:mn>0.69</mml:mn>
<mml:mspace width="0.2778em"/>
<mml:mn>0.97</mml:mn>
<mml:mspace width="0.2778em"/>
<mml:mn>00.73</mml:mn>
<mml:mspace width="0.2778em"/>
<mml:mn>1.02</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$[0.37\hspace{0.2778em}0.61\hspace{0.2778em}0.97\hspace{0.2778em}0.46\hspace{0.2778em}0.69\hspace{0.2778em}0.97\hspace{0.2778em}00.73\hspace{0.2778em}1.02]$]]></tex-math></alternatives></inline-formula>.</p>
<fig id="j_info1158_fig_006">
<label>Fig. 6</label>
<caption>
<p>Inputs membership functions, output singletons and fuzzy rules (left) and prediction surface (right) of the trained NFPP.</p>
</caption>
<graphic xlink:href="info1158_g006.jpg"/>
</fig>
<p><bold>Step 4.</bold> Validation of the trained NFPP. The trained NFPP is validated for <inline-formula id="j_info1158_ineq_094"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$[({u_{i}^{2}},{y_{i}^{2}})-{y_{i+{H_{p}}}^{2}}]$]]></tex-math></alternatives></inline-formula>, obtained from the FLC real time plant control for different reference changes and disturbances from the ones used in the NFPP training. The aim is to prove that the NFPP has learned to correctly predict for all possible inputs in the defined ranges. The designed Sugeno NFPP in simulations has to respond to the inputs <inline-formula id="j_info1158_ineq_095"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({u_{i}^{2}},{y_{i}^{2}})$]]></tex-math></alternatives></inline-formula> with output close to the desired <inline-formula id="j_info1158_ineq_096"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${y_{i+{H_{p}}}^{2}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>The validation of the trained NFPP can be carried out also in real time control by feeding the predictor with the control signal and the output of the plant and comparing the delayed by time <inline-formula id="j_info1158_ineq_097"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{p}}$]]></tex-math></alternatives></inline-formula> NFPP output with the plant output. The TSK plant model can be validated in a similar way of parallel operation – feeding the model with the real time plant input (the control action) and comparing the TSK model output with the plant output. The real time control of the plant has to use different reference changes and smaller sample period.</p>
<p>Here, the validation is carried out in two ways. The first one uses all the data <inline-formula id="j_info1158_ineq_098"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">U</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(U,y)$]]></tex-math></alternatives></inline-formula> from the FLC real time control with <inline-formula id="j_info1158_ineq_099"><alternatives><mml:math>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0.3</mml:mn></mml:math><tex-math><![CDATA[$dt=0.3$]]></tex-math></alternatives></inline-formula> s, but for new references. The obtained accuracy of prediction is high. The second one uses validation data, collected from the simulated FLC closed loop system with the TSK plant model for step reference changes with random magnitudes and duration. The normalized input data are applied to the NFPP and the denormalized predictor’s output <inline-formula id="j_info1158_ineq_100"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${y_{{H_{p}}}}$]]></tex-math></alternatives></inline-formula>, delayed by the prediction time of 12 s, is compared with the TSK model output <inline-formula id="j_info1158_ineq_101"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">TSK</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${y_{\mathrm{TSK}}}$]]></tex-math></alternatives></inline-formula>. The NFPP validation results in Fig. <xref rid="j_info1158_fig_007">7</xref> show that the prediction of the trained NFPP is accurate for all possible inputs in the defined ranges and is independent of the references.</p>
<fig id="j_info1158_fig_007">
<label>Fig. 7</label>
<caption>
<p>NFPP validation with simulation data and random input.</p>
</caption>
<graphic xlink:href="info1158_g007.jpg"/>
</fig>
<p>If the validation is not successful – re-training from different random initial parameters or for a changed NF model (MFs number and shape, conclusions functions – singletons or linear type, etc.) is required.</p>
<p>The validated NFPP is implemented further in simulations and real time control with the necessary scaling factors (gains) for the normalization (standardization) of its inputs and the denormalization of its output.</p>
<p><bold>Step 5.</bold> Selection of a proper prediction horizon. The accepted <inline-formula id="j_info1158_ineq_102"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{p}}$]]></tex-math></alternatives></inline-formula> is proper when it ensures maximal improvement of the FLC-NFPP system performance with respect to the FLC system performance. This is assessed via simulation investigations of the FLC and the FLC-NFPP systems. For small improvement due to the NFPP the <inline-formula id="j_info1158_ineq_103"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{p}}$]]></tex-math></alternatives></inline-formula> should be increased in the estimated range of the plant time delay. For too great <inline-formula id="j_info1158_ineq_104"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{p}}$]]></tex-math></alternatives></inline-formula> a steady state error appears because the NFPP predicts the plant output far ahead when it is already equal to the reference which cheats the controller with a zero system error to keep the control action unchanged, while the real plant output differs from the reference. In both cases the NFPP needs to be re-trained and validated for the new <inline-formula id="j_info1158_ineq_105"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{p}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>The simulated step responses of the closed loop systems with the TSK plant model and the designed PI-2I FLC and PI-2I FLC-NFPP for <inline-formula id="j_info1158_ineq_106"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>12</mml:mn></mml:math><tex-math><![CDATA[${H_{p}}=12$]]></tex-math></alternatives></inline-formula> s are shown in Fig. <xref rid="j_info1158_fig_008">8</xref>. The performance of the PI-FLC-NFPP system is improved – the settling time, the overshoot and the control effort are reduced, and also there is no steady state error. So, the selected <inline-formula id="j_info1158_ineq_107"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{p}}$]]></tex-math></alternatives></inline-formula> for the designed NFPP is suitable.</p>
<fig id="j_info1158_fig_008">
<label>Fig. 8</label>
<caption>
<p>PI-2I FLC and PI-NFPC systems investigation via simulation for determination of a proper <inline-formula id="j_info1158_ineq_108"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{p}}$]]></tex-math></alternatives></inline-formula>.</p>
</caption>
<graphic xlink:href="info1158_g008.jpg"/>
</fig>
</sec>
<sec id="j_info1158_s_004">
<label>4</label>
<title>Study of the FLC-NFPP Closed Loop System Stability</title>
<p>The system stability analysis is based on the derived in Tanaka and Wang (<xref ref-type="bibr" rid="j_info1158_ref_027">2001</xref>), Yordanova (<xref ref-type="bibr" rid="j_info1158_ref_031">2011</xref>) Lyapunov conditions and their corresponding LMIs for a TSK-PDC system description.</p>
<p>Therefore, first the TSK-FLC-NFPP system has to be equivalently transformed into a TSK-PDC system by the design of a PDC that approximates the FLC-NFPP (NFPC). The PDC model structure is determined by the TSK plant model – the premises in the fuzzy rules are the same. The conclusions describe local linear controllers of selected algorithm. Their initial parameters are computed using empirical tuning methods to ensure stability and desired performance of the local closed loop systems. The final PDC nonlinear control is a fuzzy blending of the individual rules control actions.</p>
<fig id="j_info1158_fig_009">
<label>Fig. 9</label>
<caption>
<p>Modified PI-PDC.</p>
</caption>
<graphic xlink:href="info1158_g009.jpg"/>
</fig>
<p>For the modified TSK plant model in Fig. <xref rid="j_info1158_fig_004">4</xref> a corresponding modified PDC with local PI linear controllers with transfer functions <inline-formula id="j_info1158_ineq_109"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${C_{j}}(s)={K_{pj}}(1+1/{T_{Ij}}.s)$]]></tex-math></alternatives></inline-formula>, shown in Fig. <xref rid="j_info1158_fig_009">9</xref>, is designed. The parameters of the local linear controllers are off-line GAs optimized via simulation of the NFPC and the PDC closed loop systems with the validated TSK plant model for the same input references, which change stepwise at random time moments with random magnitudes covering the whole range of operation. The accepted fitness function represents the relative integral squared error between the outputs <inline-formula id="j_info1158_ineq_110"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">NFPC</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${y_{\mathrm{NFPC}}}(t)$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1158_ineq_111"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">PDC</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${y_{\mathrm{PDC}}}(t)$]]></tex-math></alternatives></inline-formula> of the simulated PI-2I FLC-NFPP (NFPC) and PI-PDC closed loop systems: 
<disp-formula id="j_info1158_eq_003">
<label>(2)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">PDC</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∫</mml:mo></mml:mstyle>
<mml:msup>
<mml:mrow>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">PDC</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">NFPC</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mspace width="0.1667em"/>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mspace width="1em"/>
<mml:mtext>where</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">PDC</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">NFPC</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">PDC</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathbf{F}_{\mathrm{PDC}}}=\int {\big[{E_{\mathrm{PDC}}}(t)/{y_{\mathrm{NFPC}}}(t)\big]^{2}}\hspace{0.1667em}dt\hspace{1em}\text{where}\hspace{2.5pt}{E_{\mathrm{PDC}}}(t)={y_{\mathrm{NFPC}}}(t)-{y_{\mathrm{PDC}}}(t).\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>The computed optimal local PI controllers’ parameters <inline-formula id="j_info1158_ineq_112"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">PDC</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0.04</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0.001</mml:mn>
<mml:mo>;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0.05</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0.0011</mml:mn>
<mml:mo>;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0.06</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0.0013</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[${\mathbf{q}_{\mathrm{PDC}}}=[{K_{p1}}=0.04,{K_{I1}}=0.001;{K_{p2}}=0.05,{K_{I2}}=0.0011;{K_{p3}}=0.06,{K_{I3}}=0.0013]$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_info1158_ineq_113"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${K_{Ij}}(s)={K_{pj}}/{T_{ij}}$]]></tex-math></alternatives></inline-formula>, ensure <inline-formula id="j_info1158_ineq_114"><alternatives><mml:math><mml:mstyle mathvariant="bold">
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">PDCmin</mml:mi>
</mml:mrow>
</mml:msub></mml:mstyle>
<mml:mo>=</mml:mo>
<mml:mn>0.5</mml:mn></mml:math><tex-math><![CDATA[${F_{\mathrm{PDCmin}}}=0.5$]]></tex-math></alternatives></inline-formula>, relative error <inline-formula id="j_info1158_ineq_115"><alternatives><mml:math>
<mml:mi mathvariant="bold">RE</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">NFPC</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">PDC</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">NFPC</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathbf{RE}=({y_{\mathrm{NFPC}}}-{y_{\mathrm{PDC}}})/{y_{\mathrm{NFPC}}}$]]></tex-math></alternatives></inline-formula> in the range of <inline-formula id="j_info1158_ineq_116"><alternatives><mml:math>
<mml:mo>±</mml:mo>
<mml:mn>4</mml:mn>
<mml:mi mathvariant="normal">%</mml:mi></mml:math><tex-math><![CDATA[$\pm 4\% $]]></tex-math></alternatives></inline-formula>, and accumulated absolute error <inline-formula id="j_info1158_ineq_117"><alternatives><mml:math>
<mml:mo largeop="false" movablelimits="false">∑</mml:mo>
<mml:mi mathvariant="normal">abs</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">RE</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>37</mml:mn></mml:math><tex-math><![CDATA[$\textstyle\sum \mathrm{abs}(\mathbf{RE})=37$]]></tex-math></alternatives></inline-formula>.</p>
<p>The designed PDC is validated via simulations of the PDC and the FLC-NFPP systems for smaller sample period and different reference changes than the ones used in the PDC design. The step responses of the original PI-NFPC and the PI-PDC systems for the new references are presented in Fig. <xref rid="j_info1158_fig_010">10</xref>, where <bold>RE</bold> until <inline-formula id="j_info1158_ineq_118"><alternatives><mml:math>
<mml:mi mathvariant="italic">U</mml:mi>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:mn>4.7</mml:mn></mml:math><tex-math><![CDATA[$U<4.7$]]></tex-math></alternatives></inline-formula> is bigger only at the beginning and <inline-formula id="j_info1158_ineq_119"><alternatives><mml:math>
<mml:mo largeop="false" movablelimits="false">∑</mml:mo>
<mml:mi mathvariant="normal">abs</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">RE</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>39</mml:mn></mml:math><tex-math><![CDATA[$\textstyle\sum \mathrm{abs}(\mathbf{RE})=39$]]></tex-math></alternatives></inline-formula> if the first step response is neglected. This shows a good PI-PDC approximation of the PI-NFPC. If the relative difference between the outputs of the two systems is not acceptably small, the PDC is re-designed with changed GAs parameters or types of local controllers.</p>
<fig id="j_info1158_fig_010">
<label>Fig. 10</label>
<caption>
<p>Simulation of PI-PDC and PI-NFPC systems with new references for PI-PDC validation.</p>
</caption>
<graphic xlink:href="info1158_g010.jpg"/>
</fig>
<p>Then the modified TSK plant model and the modified PDC equivalent of the NFPC have to be presented into the standard state space description of the linear local plant models and controllers respectively in the fuzzy rules conclusions.</p>
<p>The TSK-PDC system stability analysis is of crucial importance since the system is nonlinear and operates with prediction, and the PDC is designed as a functional equivalent of the NFPC and not from local systems stability criteria.</p>
<p>So, first the local linear systems stability is studied applying linear control theory methods and if the stability is not ensured, the NFPP is re-designed for a smaller prediction horizon. Then the global nonlinear closed loop system stability is analysed using the Lyapunov stability conditions for a standard TSK-PDC representation of the plant and the controller (Tanaka and Wang, <xref ref-type="bibr" rid="j_info1158_ref_027">2001</xref>): 
<disp-formula id="j_info1158_eq_004">
<label>(3)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mtable columnspacing="4.0pt 4.0pt 4.0pt" equalrows="false" columnlines="none none none" equalcolumns="false" columnalign="left left left left">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="bold">IF</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="2.5pt"/>
<mml:mtext>is</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="bold">AND</mml:mi>
<mml:mo>…</mml:mo>
<mml:mi mathvariant="bold">AND</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="2.5pt"/>
<mml:mtext>is</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="bold">THEN</mml:mi>
</mml:mtd>
<mml:mtd class="array">
<mml:mo maxsize="2.03em" minsize="2.03em" stretchy="true">|</mml:mo>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="left">
<mml:mtr>
<mml:mtd class="array">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="bold">IF</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="2.5pt"/>
<mml:mtext>is</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="bold">AND</mml:mi>
<mml:mo>…</mml:mo>
<mml:mi mathvariant="bold">AND</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="2.5pt"/>
<mml:mtext>is</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="bold">THEN</mml:mi>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="italic">u</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \begin{array}{l@{\hskip4.0pt}l@{\hskip4.0pt}l@{\hskip4.0pt}l}\mathbf{IF}\hspace{2.5pt}{z_{1}}\hspace{2.5pt}\text{is}\hspace{2.5pt}L{z_{j1}}& \mathbf{AND}\dots \mathbf{AND}\hspace{2.5pt}{z_{p}}\hspace{2.5pt}\text{is}\hspace{2.5pt}L{z_{jp}}& \mathbf{THEN}& \bigg|\begin{array}{l}\dot{x}(t)={\mathbf{A}_{j}}x(t)+{\mathbf{B}_{j}}u(t)\\ {} y(t)={\mathbf{C}_{j}}x(t)+{\mathbf{D}_{j}}u(t)\end{array}\\ {} \mathbf{IF}\hspace{2.5pt}{z_{1}}\hspace{2.5pt}\text{is}\hspace{2.5pt}L{z_{j1}}& \mathbf{AND}\dots \mathbf{AND}\hspace{2.5pt}{z_{p}}\hspace{2.5pt}\text{is}\hspace{2.5pt}L{z_{jp}}& \mathbf{THEN}& u=-{\mathbf{F}_{j}}x\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
where:</p>
<list>
<list-item id="j_info1158_li_005">
<label>–</label>
<p><inline-formula id="j_info1158_ineq_120"><alternatives><mml:math>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>÷</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi></mml:math><tex-math><![CDATA[$j=1\div N$]]></tex-math></alternatives></inline-formula> is the rule number;</p>
</list-item>
<list-item id="j_info1158_li_006">
<label>–</label>
<p><inline-formula id="j_info1158_ineq_121"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${z_{px1}}$]]></tex-math></alternatives></inline-formula> is the vector of the premise variables with linguistic values <inline-formula id="j_info1158_ineq_122"><alternatives><mml:math>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:mi mathvariant="italic">z</mml:mi></mml:math><tex-math><![CDATA[$Lz$]]></tex-math></alternatives></inline-formula>, defining the zones of the local linear plant models;</p>
</list-item>
<list-item id="j_info1158_li_007">
<label>–</label>
<p><inline-formula id="j_info1158_ineq_123"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${x_{nx1}}$]]></tex-math></alternatives></inline-formula> is the state vector, <inline-formula id="j_info1158_ineq_124"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${y_{mx1}}$]]></tex-math></alternatives></inline-formula> – the output vector, <inline-formula id="j_info1158_ineq_125"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${u_{dx1}}$]]></tex-math></alternatives></inline-formula> – the input control vector and <inline-formula id="j_info1158_ineq_126"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{A}_{n\times n}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1158_ineq_127"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{B}_{n\times d}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1158_ineq_128"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{m\times n}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1158_ineq_129"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{D}_{m\times n}}$]]></tex-math></alternatives></inline-formula> – the corresponding matrices;</p>
</list-item>
<list-item id="j_info1158_li_008">
<label>–</label>
<p><inline-formula id="j_info1158_ineq_130"><alternatives><mml:math>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="bold">F</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi></mml:math><tex-math><![CDATA[$u=-\mathbf{F}x$]]></tex-math></alternatives></inline-formula> is a state feedback local linear controller for each local plant.</p>
</list-item>
</list>
<p>The Lyapunov sufficient condition for the closed loop system (3) to be globally asymptotically stable is the existence of a common for all local linear systems positive definite matrix <inline-formula id="j_info1158_ineq_131"><alternatives><mml:math>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo mathvariant="normal">&gt;</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$\mathbf{P}>0$]]></tex-math></alternatives></inline-formula>, such that the following matrix inequalities are satisfied for <inline-formula id="j_info1158_ineq_132"><alternatives><mml:math>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>÷</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi></mml:math><tex-math><![CDATA[$i,j=1\div N$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1158_ineq_133"><alternatives><mml:math>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal">&gt;</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi></mml:math><tex-math><![CDATA[$j>i$]]></tex-math></alternatives></inline-formula> and rule firing weights <inline-formula id="j_info1158_ineq_134"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>∩</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">≠</mml:mo>
<mml:mi>∅</mml:mi></mml:math><tex-math><![CDATA[${h_{i}}\cap {h_{j}}\ne \varnothing $]]></tex-math></alternatives></inline-formula> (Tanaka and Wang, <xref ref-type="bibr" rid="j_info1158_ref_027">2001</xref>; Yordanova, <xref ref-type="bibr" rid="j_info1158_ref_031">2011</xref>): 
<disp-formula id="j_info1158_eq_005">
<label>(4)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="left">
<mml:mtr>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">PG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0.5</mml:mn>
<mml:msup>
<mml:mrow>
<mml:mfenced separators="" open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mn>0.5</mml:mn>
<mml:mfenced separators="" open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>⩽</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \begin{array}{l}{\mathbf{G}_{ii}^{T}}\mathbf{P}+{\mathbf{PG}_{ii}}<0.\\ {} 0.5{\left({\mathbf{G}_{ij}}+{\mathbf{G}_{ji}}\right)^{T}}\mathbf{P}+\mathbf{P}0.5\left({\mathbf{G}_{ij}}+{\mathbf{G}_{ji}}\right)\leqslant 0,\\ {} {\mathbf{G}_{ij}}={\mathbf{A}_{i}}-{\mathbf{B}_{i}}{\mathbf{F}_{j}},\hspace{2em}{\mathbf{G}_{ii}}={\mathbf{A}_{i}}-{\mathbf{B}_{i}}{\mathbf{F}_{i.}}\end{array}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>The conditions (<xref rid="j_info1158_eq_005">4</xref>) are transformed to the corresponding LMIs to be numerically solved as an optimization problem of the mathematical programming under convex restrictions (Balas <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1158_ref_002">2005</xref>; Tanaka and Wang, <xref ref-type="bibr" rid="j_info1158_ref_027">2001</xref>). If solution exists, the system is stable, if not – it may be stable or not. Therefore, the FLC-NFPP has to be re-designed for new initial data, MFs, rules, FLC, <inline-formula id="j_info1158_ineq_135"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{p}}$]]></tex-math></alternatives></inline-formula>, data samples or TSK plant model and PDC.</p>
<p>Here the modified stability conditions (<xref rid="j_info1158_eq_005">4</xref>) in Yordanova (<xref ref-type="bibr" rid="j_info1158_ref_031">2011</xref>, <xref ref-type="bibr" rid="j_info1158_ref_032">2012</xref>) for other types of linear local controllers – dynamic compensators, PID, Smith predictor, etc. and for local linear plants with time delay are used.</p>
<p>The local PI controllers with output control action <inline-formula id="j_info1158_ineq_136"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo largeop="false" movablelimits="false">∫</mml:mo>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">t</mml:mi></mml:math><tex-math><![CDATA[${u_{j}}(t)={K_{pj}}e(t)+{K_{Ij}}\textstyle\int e(t)\hspace{0.1667em}dt$]]></tex-math></alternatives></inline-formula> are first turned into incremental PI controllers <inline-formula id="j_info1158_ineq_137"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\dot{u}_{j}}(t)={K_{pj}}\dot{e}(t)+{K_{Ij}}e(t)$]]></tex-math></alternatives></inline-formula> and the integrators are equivalently added to the local linear plant models whose transfer functions become <inline-formula id="j_info1158_ineq_138"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi></mml:math><tex-math><![CDATA[${P_{j}}(s)/s$]]></tex-math></alternatives></inline-formula>. Then the standard TSK-PDC description of the TSK plant and the PDC becomes: 
<disp-formula id="j_info1158_eq_006">
<label>(5)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mtable columnspacing="4.0pt 4.0pt 4.0pt" equalrows="false" columnlines="none none none" equalcolumns="false" columnalign="left left left left">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="bold">IF</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>is</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="bold">THEN</mml:mi>
</mml:mtd>
<mml:mtd class="array">
<mml:mo maxsize="1.61em" minsize="1.61em" stretchy="true">|</mml:mo>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="left">
<mml:mtr>
<mml:mtd class="array">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="bold">IF</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>is</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="bold">THEN</mml:mi>
</mml:mtd>
<mml:mtd class="array">
<mml:mo maxsize="1.61em" minsize="1.61em" stretchy="true">|</mml:mo>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="left">
<mml:mtr>
<mml:mtd class="array">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="bold">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="normal">or</mml:mi>
<mml:mspace width="2.5pt"/><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \begin{array}{l@{\hskip4.0pt}l@{\hskip4.0pt}l@{\hskip4.0pt}l}\mathbf{IF}\hspace{2.5pt}y(t)& \text{is}\hspace{2.5pt}{M_{j}}& \mathbf{THEN}& \Big|\begin{array}{l}\dot{x}(t)={\mathbf{A}_{j}}x(t)+{\mathbf{B}_{j}}u(t)\\ {} y(t)={\mathbf{C}_{j}}x(t)\end{array}\\ {} \mathbf{IF}\hspace{2.5pt}y(t)& \text{is}\hspace{2.5pt}{M_{j}}& \mathbf{THEN}& \Big|\begin{array}{l}\dot{u}(t)={-\mathbf{F}_{j}}x(t)+{\mathbf{G}_{j}}{x_{r}}(t)\\ {} \mathrm{or}\hspace{2.5pt}\dot{u}(t)={\mathbf{K}_{pj}}\dot{e}(t)+{\mathbf{K}_{Ij}}e(t)\end{array}\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
where: 
<disp-formula id="j_info1158_eq_007">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mo>˙</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt 4.0pt" equalrows="false" columnlines="none none" equalcolumns="false" columnalign="center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo><mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo><mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt 4.0pt" equalrows="false" columnlines="none none" equalcolumns="false" columnalign="center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt 4.0pt" equalrows="false" columnlines="none none" equalcolumns="false" columnalign="center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt 4.0pt" equalrows="false" columnlines="none none" equalcolumns="false" columnalign="center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle x(t)=\left[\substack{{x_{1}}(t)=y(t)\\ {} {x_{2}}(t)={\dot{x}_{1}}(t)\\ {} {x_{3}}(t)={\dot{x}_{2}}(t)}\right],\hspace{2em}{\mathbf{A}_{j}}=\left[\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c}0& 1& 0\\ {} 0& 0& 1\\ {} 0& -\frac{1}{{T_{j}}{T_{j+3}}}& -\frac{{T_{j}}+{T_{j+3}}}{Tj{T_{j+3}}}\end{array}\right],\\ {} \displaystyle {\mathbf{B}_{j}}=\left[\substack{0\\ {} 0\\ {} \frac{{K_{j}}}{{T_{j}}{T_{j+3}}}}\right],\hspace{2em}{\mathbf{C}_{j}}=\left[\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c}1& 0& 0\end{array}\right],\\ {} \displaystyle {x_{r}}(t)=\left[\substack{{x_{r1}}(t)={y_{r}}(t)\\ {} {x_{r2}}(t)=0\\ {} {x_{r3}}(t)=0}\right],\hspace{2em}{\mathbf{F}_{j}}=\left[\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c}{K_{Ij}}& {K_{pj}}& 0\end{array}\right],\hspace{2em}{\mathbf{G}_{j}}=\left[\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c}{K_{Ij}}& 0& 0\end{array}\right].\end{array}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>The Lyapunov stability condition for the specific TSK plant and PDC description (5) is solved using the corresponding LMIs for (4), and <inline-formula id="j_info1158_ineq_139"><alternatives><mml:math>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="bold">O</mml:mi></mml:math><tex-math><![CDATA[$-\mathbf{P}<-\mathbf{O}$]]></tex-math></alternatives></inline-formula>. Since the open loop system is critically stable due to the integrator of the PI-PDC, instead of a zero matrix, <bold>O</bold> is chosen a matrix of ones in order to make the stability conditions more conservative with respect to finding a positive definite solution for the matrix <bold>P</bold>.</p>
<p>The computed for the investigated case study matrix <bold>P</bold> is positive definite – all diagonal minors and <italic>P</italic> have positive determinants, which proves the closed loop system stability: 
<disp-formula id="j_info1158_eq_008">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt 4.0pt" equalrows="false" columnlines="none none" equalcolumns="false" columnalign="center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0.5725</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0.5234</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0.4041</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0.5234</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0.643</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0.3336</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0.4041</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0.3336</mml:mn>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0.7622</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mo movablelimits="false">det</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>0.0442</mml:mn>
<mml:mo mathvariant="normal">&gt;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:mi mathvariant="normal">cond</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>20.6.</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle \mathbf{P}=\left[\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c}0.5725& 0.5234& 0.4041\\ {} 0.5234& 0.643& 0.3336\\ {} 0.4041& 0.3336& 0.7622\end{array}\right],\\ {} \displaystyle \det (\mathbf{P})=0.0442>0,\hspace{2em}\mathrm{cond}(\mathbf{P})=20.6.\end{array}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>The condition number <inline-formula id="j_info1158_ineq_140"><alternatives><mml:math>
<mml:mi mathvariant="normal">cond</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathrm{cond}(\mathbf{P})$]]></tex-math></alternatives></inline-formula> is small which guarantees low sensitivity to parameter variations, inaccurate data, computational and approximation errors.</p>
</sec>
<sec id="j_info1158_s_005">
<label>5</label>
<title>Fuzzy Predictive Real Time Plant Control</title>
<p>The developed FLC-NFPP and FLC are used in real time control of the air temperature in the small-scale laboratory tunnel dryer.</p>
<p>The laboratory experiments are designed to enable comparison of the performances of the PI-2I FLC-NFPP and the PI-2I FLC systems. Step reference changes in different operation points, covering the whole operation range, and with various magnitudes are applied to study the influence of plant nonlinearity and inertia on the temperature and the control action and the effectiveness of the predictor. The temperature and control step responses of the PI-2I FLC-NFPP system are shown in Fig. <xref rid="j_info1158_fig_011">11</xref>, where the PI-2I FLC system step responses from Fig. <xref rid="j_info1158_fig_003">3</xref> are added to ease comparison. The NFPP reduces the overshoot and the settling time and ensures similar temperature responses in the different operation points, where the plant is characterized by different plant model parameters, which shows improved system robustness. The NFPC control action lacks great drops and is smoother. The prediction is good within the signal bounds for which the NFPP is trained and for <inline-formula id="j_info1158_ineq_141"><alternatives><mml:math>
<mml:mi mathvariant="italic">U</mml:mi>
<mml:mo mathvariant="normal">&gt;</mml:mo>
<mml:mn>4.7</mml:mn></mml:math><tex-math><![CDATA[$U>4.7$]]></tex-math></alternatives></inline-formula> or <inline-formula id="j_info1158_ineq_142"><alternatives><mml:math>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal">&gt;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>53</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>∘</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$y>{53^{\circ }}$]]></tex-math></alternatives></inline-formula>C the PI-2I FLC-NFPP system demonstrates inadequate behaviour as expected. The step responses from simulations, given in Fig. <xref rid="j_info1158_fig_010">10</xref>, are close to the experimentally obtained in the real time plant control, which is expected since the derived TSK plant model used in the simulations is very accurate. The properly selected prediction horizon leads to a good compensation of the nonlinear plant inertia and time delay. The PDC real time control system shows very close step responses to the FLC-NFPP and being more computationally economic it can be further embedded in an industrial PLC (SIMATIC S7, <xref ref-type="bibr" rid="j_info1158_ref_024">2002</xref>).</p>
<fig id="j_info1158_fig_011">
<label>Fig. 11</label>
<caption>
<p>Step responses of temperature (a) and control action (b) from real time control.</p>
</caption>
<graphic xlink:href="info1158_g011.jpg"/>
</fig>
</sec>
<sec id="j_info1158_s_006">
<label>6</label>
<title>Conclusion</title>
<p>A novel approach is suggested for the design of a simple model-free neuro-fuzzy predictive controllers. It is built of a main FLC and a Sugeno NF plant predictor inserted in the feedback of the closed loop system in order to compensate the nonlinear plant inertia and time delay. Data from the real time control of the industrial plant by a model-free designed FLC is used for the derivation of a modified TSK plant model, the training of a NF plant predictor and their validation. The TSK plant model enables simulation investigations of the NFPC system for determination of the proper prediction horizon. The Lyapunov stability of the NFPC closed loop system is studied via LMIs technique after an approximation of the NFPC by a TSK-based modified PDC and a PDC validation.</p>
<p>The modified TSK plant model and PDC functional equivalent of the derived NFPC are obtained by GAs parameter optimization. The modified PI-PDC is computationally simple and can further be easily programmed in an industrial PLC for the real time control of various inertial process variables.</p>
<p>The approach is implemented for the real time control of the temperature in a laboratory-scale dryer equipped with industrial measuring devices and final control elements. The NFPP leads to reduced overshoot and settling time, smooth control action and increased system robustness.</p>
<p>The future work will focus on the PLC implementation of the NFPC and its use in the control and synchronization of chaotic nonlinear systems (Yeh <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1158_ref_030">2011</xref>).</p>
</sec>
</body>
<back>
<ack id="j_info1158_ack_001">
<title>Acknowledgements</title>
<p>The authors would like to thank the respectful editor and the reviewers for their constructive comments and suggestions, which helped to greatly improve the presentation of the research.</p>
<p>This research did not receive any specific grant from funding agencies in the public, commercial, or not-for-profit sectors.</p></ack>
<ref-list id="j_info1158_reflist_001">
<title>References</title>
<ref id="j_info1158_ref_001">
<mixed-citation publication-type="chapter"><string-name><surname>Babuška</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Sousa</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Verbruggen</surname>, <given-names>H.</given-names></string-name> (<year>1999</year>). <chapter-title>Predictive control of nonlinear systems based on fuzzy and neural models</chapter-title>. In: <source>Proc. ECC’99</source>, pp. <fpage>3868</fpage>–<lpage>3873</lpage>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_002">
<mixed-citation publication-type="book"><string-name><surname>Balas</surname>, <given-names>G.</given-names></string-name>, <string-name><surname>Chiang</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Packard</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Safonov</surname>, <given-names>M.</given-names></string-name> (<year>2005</year>). <source>Robust Control Toolbox. User’s Guide</source>. <publisher-name>The Math Works Inc.</publisher-name></mixed-citation>
</ref>
<ref id="j_info1158_ref_003">
<mixed-citation publication-type="book"><string-name><surname>Camacho</surname>, <given-names>E.F.</given-names></string-name>, <string-name><surname>Bordons</surname>, <given-names>C.</given-names></string-name> (<year>2004</year>). <source>Model Predictive Control</source>. <publisher-name>Springer-Verlag</publisher-name>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_004">
<mixed-citation publication-type="other"><string-name><surname>Castellano</surname>, <given-names>G.</given-names></string-name> (2000). <italic>A Neuro–Fuzzy Methodology for Predictive Modelling</italic>. PhD thesis, Department of Computer Science, University of Bari, Bari, Italy.</mixed-citation>
</ref>
<ref id="j_info1158_ref_005">
<mixed-citation publication-type="journal"><string-name><surname>Clarke</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Mohtadi</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Tus</surname>, <given-names>S.</given-names></string-name> (<year>1987</year>). <article-title>Generalized predictive control. The basic algorithm</article-title>. <source>Automatica</source>, <volume>23</volume>, <fpage>137</fpage>–<lpage>148</lpage>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_006">
<mixed-citation publication-type="book"><string-name><surname>Driankov</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Hellendoorn</surname>, <given-names>H.</given-names></string-name> (<year>2001</year>). <source>Introduction to Fuzzy Control</source>. <publisher-name>Narosa Publishers</publisher-name>, <publisher-loc>Pune</publisher-loc>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_007">
<mixed-citation publication-type="journal"><string-name><surname>Flores</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Saez</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Araya</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Berenguel</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Cipriano</surname>, <given-names>A.</given-names></string-name> (<year>2005</year>). <article-title>Fuzzy predictive control of a solar power plant</article-title>. <source>IEEE Transactions on Fuzzy Systems</source>, <volume>13</volume>(<issue>1</issue>), <fpage>58</fpage>–<lpage>68</lpage>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_008">
<mixed-citation publication-type="other"><italic>Fuzzy Logic Toolbox. User’s Guide</italic> (1992). The MathWorks Inc.</mixed-citation>
</ref>
<ref id="j_info1158_ref_009">
<mixed-citation publication-type="journal"><string-name><surname>Hu</surname>, <given-names>J.Q.</given-names></string-name>, <string-name><surname>Rose</surname>, <given-names>E.</given-names></string-name> (<year>1997</year>). <article-title>Predictive fuzzy control applied to the sinter strand process</article-title>. <source>Control Engineering Practice</source>, <volume>5</volume>(<issue>2</issue>), <fpage>247</fpage>–<lpage>252</lpage>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_010">
<mixed-citation publication-type="other"><string-name><surname>IEC 61131–Programmable Controllers</surname></string-name> (1999).</mixed-citation>
</ref>
<ref id="j_info1158_ref_011">
<mixed-citation publication-type="journal"><string-name><surname>Jang</surname>, <given-names>J.-S.R.</given-names></string-name> (<year>1993</year>). <article-title>ANFIS: adaptive-network-based fuzzy inference systems</article-title>. <source>IEEE Transactions on Systems, Man and Cybernetics</source>, <volume>23</volume>(<issue>3</issue>), <fpage>665</fpage>–<lpage>685</lpage>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_012">
<mixed-citation publication-type="book"><string-name><surname>Jang</surname>, <given-names>J.-S.R.</given-names></string-name>, <string-name><surname>Sun</surname>, <given-names>C.-T.</given-names></string-name>, <string-name><surname>Mizutani</surname>, <given-names>E.</given-names></string-name> (<year>1997</year>). <source>Neuro–Fuzzy and Soft Computing. A Computational Approach to Learning and Machine Intelligence</source>. <series>MATLAB Curr. Series</series>. <publisher-name>Prentice-Hall, NJ</publisher-name>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_013">
<mixed-citation publication-type="book"><string-name><surname>Kosko</surname>, <given-names>B.</given-names></string-name> (<year>1992</year>). <source>Neural Networks and Fuzzy Systems</source>. <publisher-name>Prentice Hall</publisher-name>, <publisher-loc>NJ</publisher-loc>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_014">
<mixed-citation publication-type="book"><string-name><surname>Kuo</surname>, <given-names>B.C.</given-names></string-name> (<year>1995</year>). <source>Digital Control Systems</source>. <edition>2</edition>nd ed. <publisher-name>Oxford University Press</publisher-name>, <publisher-loc>USA</publisher-loc>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_015">
<mixed-citation publication-type="journal"><string-name><surname>Mahfouf</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Kandiah</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Linkens</surname>, <given-names>D.A.</given-names></string-name> (<year>2001</year>). <article-title>Adaptive estimation for fuzzy TSK model-based predictive control</article-title>. <source>Transactions of the Institute of Measurement and Control</source>, <volume>23</volume>(<issue>1</issue>), <fpage>31</fpage>–<lpage>50</lpage>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_016">
<mixed-citation publication-type="journal"><string-name><surname>Marsili-Libelli</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Colzi</surname>, <given-names>A.</given-names></string-name> (<year>1998</year>). <article-title>Fuzzy control of a transport/diffusion system</article-title>. <source>Control Engineering Practice</source>, <volume>6</volume>(<issue>6</issue>), <fpage>707</fpage>–<lpage>713</lpage>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_017">
<mixed-citation publication-type="other"><italic>MATLAB – Genetic Algorithm and Direct Search Toolbox. User’s Guide</italic> (2004). The Math Works Inc.</mixed-citation>
</ref>
<ref id="j_info1158_ref_018">
<mixed-citation publication-type="journal"><string-name><surname>Mazinan</surname>, <given-names>A.H.</given-names></string-name>, <string-name><surname>Sadati</surname>, <given-names>N.</given-names></string-name> (<year>2010</year>). <article-title>On the application of fuzzy predictive control based on multiple models strategy to a tubular heat exchanger system</article-title>. <source>Transactions of the Institute of Measurement and Control</source>, <volume>32</volume>(<issue>4</issue>), <fpage>395</fpage>–<lpage>418</lpage>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_019">
<mixed-citation publication-type="journal"><string-name><surname>Mendonça</surname>, <given-names>L.F.</given-names></string-name>, <string-name><surname>Sousa</surname>, <given-names>J.M.</given-names></string-name>, <string-name><surname>Sá da Costa</surname>, <given-names>J.M.G.</given-names></string-name> (<year>2004</year>). <article-title>Optimization problems in multivariable fuzzy predictive control</article-title>. <source>International Journal of Approximate Reasoning</source>, <volume>36</volume>, <fpage>199</fpage>–<lpage>221</lpage>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_020">
<mixed-citation publication-type="book"><string-name><surname>Randall</surname>, <given-names>S.</given-names></string-name> (<year>2002</year>). <source>Specification and Design Methodology for Real-Time Embedded Systems</source>. <publisher-name>Springer-Verlag</publisher-name>, <publisher-loc>NY</publisher-loc>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_021">
<mixed-citation publication-type="book"><string-name><surname>Rawlings</surname>, <given-names>J.B.</given-names></string-name>, <string-name><surname>Mayne</surname>, <given-names>D.Q.</given-names></string-name> (<year>2009</year>). <source>Model Predictive Control: Theory and Design</source>. <publisher-name>Nob Hill Publishing</publisher-name>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_022">
<mixed-citation publication-type="other"><italic>Real – Time Workshop for Use with Simulink. User’s Guide</italic> (2002). The Math Works Inc.</mixed-citation>
</ref>
<ref id="j_info1158_ref_023">
<mixed-citation publication-type="journal"><string-name><surname>Sarimveis</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Bafas</surname>, <given-names>G.</given-names></string-name> (<year>2003</year>). <article-title>Fuzzy model predictive control of non-linear processes using genetic algorithms</article-title>. <source>Fuzzy Sets and Systems</source>, <volume>139</volume>, <fpage>59</fpage>–<lpage>80</lpage>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_024">
<mixed-citation publication-type="other"><italic>SIMATIC S7 Fuzzy Control. User’s Manual</italic> (2002). Siemens AG.</mixed-citation>
</ref>
<ref id="j_info1158_ref_025">
<mixed-citation publication-type="journal"><string-name><surname>Sousa</surname>, <given-names>J.M.</given-names></string-name>, <string-name><surname>Babuška</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Verbruggen</surname>, <given-names>H.B.</given-names></string-name> (<year>1997</year>). <article-title>Fuzzy predictive control applied to an air-conditioning system</article-title>. <source>Control Engineering Practice</source>, <volume>5</volume>(<issue>10</issue>), <fpage>1395</fpage>–<lpage>1406</lpage>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_026">
<mixed-citation publication-type="book"><string-name><surname>Stephanopoulos</surname>, <given-names>G.</given-names></string-name> (<year>1984</year>). <source>Chemical Process Control. An Introduction to Theory and Practice</source>. <publisher-name>Prentice Hall</publisher-name>, <publisher-loc>NJ</publisher-loc>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_027">
<mixed-citation publication-type="book"><string-name><surname>Tanaka</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>H.O.</given-names></string-name> (<year>2001</year>). <source>Fuzzy Control Systems Design and Analysis: A Linear Matrix Inequality Approach</source>. <publisher-name>John Wiley &amp; Sons, Inc.</publisher-name>, <publisher-loc>NJ</publisher-loc>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_028">
<mixed-citation publication-type="journal"><string-name><surname>Thompson</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Dexter</surname>, <given-names>A.</given-names></string-name> (<year>2005</year>). <article-title>A fuzzy decision-making approach to temperature control in air-conditioning systems</article-title>. <source>Control Engineering Practice</source>, <volume>13</volume>(<issue>6</issue>), <fpage>689</fpage>–<lpage>698</lpage>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_029">
<mixed-citation publication-type="journal"><string-name><surname>Yahsunobu</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Hasegawa</surname>, <given-names>T.</given-names></string-name> (<year>1986</year>). <article-title>Evaluation of an automatic container crane operation system based on predictive fuzzy control</article-title>. <source>Control Theory and Advance Technology</source>, <volume>2</volume>(<issue>3</issue>), <fpage>419</fpage>–<lpage>432</lpage>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_030">
<mixed-citation publication-type="journal"><string-name><surname>Yeh</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Chen</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Lo</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Liu</surname>, <given-names>K.</given-names></string-name> (<year>2011</year>). <article-title>Neural–network fuzzy control for chaotic tuned mass damper systems with time delays</article-title>. <source>Journal of Vibration and Control</source>, <volume>18</volume>(<issue>6</issue>), <fpage>785</fpage>–<lpage>795</lpage>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_031">
<mixed-citation publication-type="book"><string-name><surname>Yordanova</surname>, <given-names>S.</given-names></string-name> (<year>2011</year>). <source>Design of Fuzzy Logic Controllers for Robust Process Control</source>. <publisher-name>KING</publisher-name>, <publisher-loc>Sofia</publisher-loc> <comment>(in Bulgarian)</comment>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_032">
<mixed-citation publication-type="journal"><string-name><surname>Yordanova</surname>, <given-names>S.</given-names></string-name> (<year>2012</year>). <article-title>Fuzzy Smith predictor for nonlinear plants with time delay based on parallel distributed compensation</article-title>. <source>Jounal Proceedings of the Technical University of Sofia</source>, <volume>62</volume>(<issue>2</issue>), <fpage>15</fpage>–<lpage>24</lpage>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_033">
<mixed-citation publication-type="journal"><string-name><surname>Yordanova</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Mladenov</surname>, <given-names>V.</given-names></string-name> (<year>2008</year>). <article-title>Real time Sugeno neuro–fuzzy predictive control of nonlinear plant with time delay</article-title>. <source>International Journal on Neural Networks and Applications</source>, <volume>1</volume>(<issue>2</issue>), <fpage>47</fpage>–<lpage>53</lpage>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_034">
<mixed-citation publication-type="journal"><string-name><surname>Yordanova</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Sivchev</surname>, <given-names>Y.</given-names></string-name> (<year>2014</year>). <article-title>Design and tuning of parallel distributed compensation-based fuzzy logic controller for temperature</article-title>. <source>Journal of Automation and Control</source>, <volume>2</volume>(<issue>3</issue>), <fpage>79</fpage>–<lpage>85</lpage>.</mixed-citation>
</ref>
<ref id="j_info1158_ref_035">
<mixed-citation publication-type="journal"><string-name><surname>Yordanova</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Petrova</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Mastorakis</surname>, <given-names>N.</given-names></string-name>, <string-name><surname>Mladenov</surname>, <given-names>V.</given-names></string-name> (<year>2006</year>). <article-title>Sugeno predictive neuro–fuzzy controller for control of nonlinear plant under uncertainties</article-title>. <source>WSEAS Transactions on Systems</source>, <volume>5</volume>(<issue>8</issue>), <fpage>1814</fpage>–<lpage>1821</lpage>.</mixed-citation>
</ref>
</ref-list>
</back>
</article>