<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">Sensors</journal-id>
<journal-title>Sensors</journal-title>
<issn pub-type="epub">1424-8220</issn>
<publisher>
<publisher-name>Molecular Diversity Preservation International (MDPI)</publisher-name></publisher></journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3390/s120505328</article-id>
<article-id pub-id-type="publisher-id">sensors-12-05328</article-id>
<article-categories>
<subj-group>
<subject>Article</subject></subj-group></article-categories>
<title-group>
<article-title>Nonlinear Adaptive PID Control for Greenhouse Environment Based on RBF Network</article-title></title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Zeng</surname><given-names>Songwei</given-names></name><xref ref-type="aff" rid="af1-sensors-12-05328"><sup>1</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Hu</surname><given-names>Haigen</given-names></name><xref ref-type="aff" rid="af1-sensors-12-05328"><sup>1</sup></xref><xref ref-type="aff" rid="af2-sensors-12-05328"><sup>2</sup></xref><xref ref-type="corresp" rid="c1-sensors-12-05328"><sup>*</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Xu</surname><given-names>Lihong</given-names></name><xref ref-type="aff" rid="af2-sensors-12-05328"><sup>2</sup></xref><xref ref-type="corresp" rid="c1-sensors-12-05328"><sup>*</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Li</surname><given-names>Guanghui</given-names></name><xref ref-type="aff" rid="af1-sensors-12-05328"><sup>1</sup></xref></contrib></contrib-group>
<aff id="af1-sensors-12-05328">
<label>1</label> School of Information Engineering, Zhejiang Agriculture &amp; Forestry University, Lin'an 311300, China; E-Mails: <email>zsw@zafu.edu.cn</email> (S.Z.), <email>lgh@zafu.edu.cn</email> (G.L.)</aff>
<aff id="af2-sensors-12-05328">
<label>2</label> Department of Control Science and Engineering, Tongji University, Shanghai 200092, China</aff>
<author-notes>
<corresp id="c1-sensors-12-05328">
<label>*</label>Authors to whom correspondence should be addressed; E-Mails: <email>hnhhg@163.com</email> (H.H.); <email>xulhk@163.com</email> (L.X.); Tel.: +86-571-6374-0217 (H.H.); Fax: +86-571-6374-0210 (H.H.); Tel.: +86-21-6598-0149 (L.X.); Fax: +86-21-6598-0590 (L.X.).</corresp></author-notes>
<pub-date pub-type="collection">
<year>2012</year></pub-date>
<pub-date pub-type="epub">
<day>26</day>
<month>04</month>
<year>2012</year></pub-date>
<volume>12</volume>
<issue>5</issue>
<fpage>5328</fpage>
<lpage>5348</lpage>
<history>
<date date-type="received">
<day>21</day>
<month>01</month>
<year>2012</year></date>
<date date-type="rev-recd">
<day>18</day>
<month>03</month>
<year>2012</year></date>
<date date-type="accepted">
<day>19</day>
<month>04</month>
<year>2012</year></date></history>
<permissions>
<copyright-statement>© 2012 by the authors; licensee MDPI, Basel, Switzerland</copyright-statement>
<copyright-year>2012</copyright-year>
<license>
<p>This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (http://creativecommons.org/licenses/by/3.0/).</p></license></permissions>
<abstract>
<p>This paper presents a hybrid control strategy, combining Radial Basis Function (RBF) network with conventional proportional, integral, and derivative (PID) controllers, for the greenhouse climate control. A model of nonlinear conservation laws of enthalpy and matter between numerous system variables affecting the greenhouse climate is formulated. RBF network is used to tune and identify all PID gain parameters online and adaptively. The presented Neuro-PID control scheme is validated through simulations of set-point tracking and disturbance rejection. We compare the proposed adaptive online tuning method with the offline tuning scheme that employs Genetic Algorithm (GA) to search the optimal gain parameters. The results show that the proposed strategy has good adaptability, strong robustness and real-time performance while achieving satisfactory control performance for the complex and nonlinear greenhouse climate control system, and it may provide a valuable reference to formulate environmental control strategies for actual application in greenhouse production.</p></abstract>
<kwd-group>
<kwd>nonlinear adaptive control</kwd>
<kwd>neuro-PID control</kwd>
<kwd>Radial Basis Function (RBF)</kwd>
<kwd>greenhouse environment control</kwd>
<kwd>Genetic Algorithm (GA)</kwd></kwd-group></article-meta></front>
<body>
<sec sec-type="intro">
<label>1.</label>
<title>Introduction</title>
<p>The greenhouse climate control concerns the creation of a favorable environment for the crop in order to reach predetermined results for high yield, high quality and low production costs. However, it is a very difficult to implement in practice due to the complexity of the greenhouse environments. Greenhouses are highly nonlinear and strongly coupled Multi-Input Multi-Output (MIMO) systems that are largely influenced by the outside weather (wind velocity, outside temperature and humidity) and by many other practical constraints (actuators and moistening cycle). In recent years, various advanced control techniques and related strategies, such as predictive control [<xref ref-type="bibr" rid="b1-sensors-12-05328">1</xref>–<xref ref-type="bibr" rid="b3-sensors-12-05328">3</xref>], adaptive control [<xref ref-type="bibr" rid="b4-sensors-12-05328">4</xref>,<xref ref-type="bibr" rid="b5-sensors-12-05328">5</xref>], nonlinear feedback control [<xref ref-type="bibr" rid="b6-sensors-12-05328">6</xref>], fuzzy control [<xref ref-type="bibr" rid="b7-sensors-12-05328">7</xref>,<xref ref-type="bibr" rid="b8-sensors-12-05328">8</xref>], robust control [<xref ref-type="bibr" rid="b9-sensors-12-05328">9</xref>], optimal control [<xref ref-type="bibr" rid="b10-sensors-12-05328">10</xref>–<xref ref-type="bibr" rid="b12-sensors-12-05328">12</xref>] and compatible control [<xref ref-type="bibr" rid="b13-sensors-12-05328">13</xref>] have been proposed for greenhouse environment control. These studies are very important to real-world engineering application in greenhouse production. However, most of these approaches are either theoretically complex or difficult to implement in actual greenhouse production. Controller designs for greenhouse environmental control mostly adopt conventional proportional, integral, and derivative (PID) controllers owing to the simple architecture, easy implementation and excellent performance.</p>
<p>About 95% of the regulatory controllers of the process control [<xref ref-type="bibr" rid="b14-sensors-12-05328">14</xref>], motor drives, automotive, fight control and instrumentation industries have PID structures. In spite of this widespread usage, their effectiveness is often limited owing to poor tuning, and tuning PID controllers efficiently is the subject of active research. Several tuning methods have been presented in the existing literature [<xref ref-type="bibr" rid="b15-sensors-12-05328">15</xref>,<xref ref-type="bibr" rid="b16-sensors-12-05328">16</xref>]; these include designs based on “guess-and-check” such as trial and error, based on linear control theory such as Ziegler–Nichols (Z-N) and Cohen–Coon methods (C-C). Nevertheless, it is difficult to achieve desired performance of the controlled greenhouse using conventional tuning methods because there is nearly no effective analytical way to find the optimal set of gain parameters. The methods are mostly based on linear models, which are usually adjusted around operating points. Empirical methods such as Z-N, which can be used for tuning a simple problem, are inadequate to deal with complex systems like the greenhouse environment owing to the lack of empirical data for a wide range of problems. Hence, new designs for tuning PID parameters should be explored to regulate the greenhouse environment. A conventional fixed gain or gain-scheduled PID controller may assure stability for this maneuver, but it is difficult to achieve the desired performance for controlling nonlinear and strong interference systems due to the difficulties in determining appropriate PID gains.</p>
<p>Recently, an optimal tuning method of PID controller employing Genetic Algorithm (GA) has been proposed and successfully used for a wide range of plants [<xref ref-type="bibr" rid="b17-sensors-12-05328">17</xref>–<xref ref-type="bibr" rid="b19-sensors-12-05328">19</xref>]. Due to the capability for global and powerful optimization, GA can search optimal PID gain parameters based on various performance criterion for many different control problems. However, a limitation exists in the computational cost of the optimization process and in the heavy dependence on the computation time when searching the optimal gain parameters. Therefore this method cannot be applied to online real-time control. Besides, it is important that the aforementioned methods cannot adapt PID gain parameters properly to prevailing dynamics owing to the presence of varying strong disturbances. Hence, new designs for self-adaptive online tuning of PID parameters should be explored to control these systems.</p>
<p>Design methods incorporating artificial neural networks (ANNs) have been widely applied in the area of nonlinear adaptive control due to their adaptability, learning ability and powerful ability to approximate nonlinear functions [<xref ref-type="bibr" rid="b20-sensors-12-05328">20</xref>–<xref ref-type="bibr" rid="b31-sensors-12-05328">31</xref>]. Among the various neural network paradigms, the Radial Basis Function (RBF) network has been extensively studied in the area of modeling, prediction and control for nonlinear systems due to its attractive properties such as localization, functional approximation, cluster modeling, quasi-orthogonality and a simple network structure. In [<xref ref-type="bibr" rid="b23-sensors-12-05328">23</xref>], an on-line learning neuro-control scheme that incorporates a growing RBF network (GRBFN) is proposed for a non-linear aircraft controller design. In [<xref ref-type="bibr" rid="b24-sensors-12-05328">24</xref>], an adaptive control scheme was studied for a 1-DOF motion model based on the RBF approximations. In [<xref ref-type="bibr" rid="b27-sensors-12-05328">27</xref>], RBF network was used to model the inside air temperature as a function of the outside air temperature and solar radiation, and inside relative humidity in a hydroponic greenhouse. In [<xref ref-type="bibr" rid="b31-sensors-12-05328">31</xref>], a Functional electrical stimulation (FES) system tuned by Radial Basis Function (RBF) Neural Network-based Proportional-Integral-Derivative (PID) model was designed to control the knee joint according to the desired trajectory through stimulation of lower limbs muscles.</p>
<p>Motivated by the aforementioned issues, an adaptive neural control scheme, incorporating the conventional PID controllers, is presented herein for greenhouse climate control. It is anticipated that the combination will take advantage of the simplicity of PID controllers and the powerful capability of learning and adaptability of RBF networks. The main objective is to develop an online adaptive tuning method by employing RBF networks for greenhouse climate control with two PID loops of a MIMO process, which is characterized by strong interactions among process variables, nonlinearities and serious interference. In order to validate the effectiveness and superiority of the proposed adaptive control scheme, we compare the results with an offline tuning method that adopts Genetic Algorithm (GA) to search the conventional PID gain parameters based on criteria of integral time absolute error (ITAE).</p>
<p>The remainder of this paper is organized as follows. Section 2 describes the considered greenhouse climate dynamic model and the corresponding nonlinear differential equations. Section 3 describes RBF network structure, the corresponding control strategy, and the adaptive tuning scheme based on Jacobian identification of RBF network. Section 4 presents simulations and results, and the proposed adaptive control scheme is compared with an offline tuning method that uses GA to search the optimal gain parameters. Finally, conclusions and prospects for this work are given in Section 5.</p></sec>
<sec>
<label>2.</label>
<title>Description and Problem Formulation</title>
<sec>
<label>2.1.</label>
<title>Greenhouse Dynamic Model</title>
<p>The greenhouse environment is a complex dynamic system. Over the past decades, people have gained a considerable understanding of greenhouse climate dynamics, and many methods describing the dynamic process of a greenhouse climate have been proposed. Traditionally, there are two different approaches to describe the greenhouse climate: one is based on energy and mass flow equations describing the process [<xref ref-type="bibr" rid="b32-sensors-12-05328">32</xref>–<xref ref-type="bibr" rid="b35-sensors-12-05328">35</xref>], and another is based on the analysis of input-output data from the process by using a system identification approach [<xref ref-type="bibr" rid="b27-sensors-12-05328">27</xref>,<xref ref-type="bibr" rid="b36-sensors-12-05328">36</xref>–<xref ref-type="bibr" rid="b38-sensors-12-05328">38</xref>]. This paper deals with the first method for the control of inside air temperature and humidity of a greenhouse, and its physical model describes flow and mass transfers generated by the differences in energy and mass content between the inside and outside air, by control, or by exogenous energy and mass inputs [<xref ref-type="bibr" rid="b39-sensors-12-05328">39</xref>]. Most analytic models on analysis and control of the greenhouses environment have been based on the following state space form:
<disp-formula id="FD1">
<label>(1)</label>
<mml:math id="mm1" display="block">
<mml:semantics id="sm1">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mo>=</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>υ</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>x</italic> are states variables such as indoor temperature, humidity and carbon dioxide concentration; <italic>u</italic> are control inputs such as energy input by the heating system, fogging systems, ventilation system and <italic>CO<sub>2</sub></italic> supply flux; <italic>v</italic> are external disturbances such as solar radiation, outdoor temperature, humidity and wind speed; <italic>t</italic> denotes time, and <italic>f</italic>(<italic>·</italic>) is a nonlinear function.</p>
<p>In order to effectively validate the performance of the proposed algorithm, the considered greenhouse analytic expression is based on the heating/cooling/ventilating model, which can be obtained from several references [<xref ref-type="bibr" rid="b6-sensors-12-05328">6</xref>,<xref ref-type="bibr" rid="b40-sensors-12-05328">40</xref>-<xref ref-type="bibr" rid="b42-sensors-12-05328">42</xref>]. This can be summarized in the functional block diagram given in <xref ref-type="fig" rid="f1-sensors-12-05328">Figure 1</xref>. Considering the related high costs, <italic>CO<sub>2</sub></italic> supply systems are not extensively used, therefore the related variables are not taken into account in this work. To simplify the model, we consider only primary disturbance variables, such as solar radiation, outside temperature and humidity. According to the above analysis, the state equations have been formed based on the laws of conservation of enthalpy and matter, and the dynamic behaviour of states is described by using the following differential equations [<xref ref-type="bibr" rid="b42-sensors-12-05328">42</xref>]:
<disp-formula id="FD2">
<label>(2)</label>
<mml:math id="mm2" display="block">
<mml:semantics id="sm2">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi></mml:mrow></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mi>ρ</mml:mi>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>p</mml:mi></mml:msub>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>T</mml:mi></mml:msub></mml:mrow></mml:mfrac>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>Q</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">heater</mml:mtext></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>λ</mml:mi>
<mml:msub>
<mml:mi>Q</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">fog</mml:mtext></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>R</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>T</mml:mi></mml:msub></mml:mrow></mml:mfrac>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>A</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>ρ</mml:mi>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>p</mml:mi></mml:msub>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>T</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">out</mml:mtext></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula>
<disp-formula id="FD3">
<label>(3)</label>
<mml:math id="mm3" display="block">
<mml:semantics id="sm3">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi></mml:mrow></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mi>ρ</mml:mi>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>H</mml:mi></mml:msub></mml:mrow></mml:mfrac>
<mml:msub>
<mml:mi>Q</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">fog</mml:mtext></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mi>ρ</mml:mi>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>H</mml:mi></mml:msub></mml:mrow></mml:mfrac>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>E</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>R</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mi>ρ</mml:mi>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>H</mml:mi></mml:msub></mml:mrow></mml:mfrac>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mtext mathvariant="italic">out</mml:mtext></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula>where
<list list-type="simple">
<list-item>
<p><italic>T<sub>in</sub>/T<sub>out</sub></italic> is the indoor/outdoor air temperature (°C),</p></list-item>
<list-item>
<p><italic>H<sub>in</sub>/H<sub>out</sub></italic> is the interior/exterior humidity ratio (<italic>g</italic>[<italic>H<sub>2</sub>O</italic>]<italic>kg-<sup>1</sup></italic>[<italic>dry</italic> air]),</p></list-item>
<list-item>
<p><italic>UA</italic> is the heat transfer coefficient of enclosure (<italic>WK<sup>-</sup></italic><sup>1</sup>),</p></list-item>
<list-item>
<p><italic>V</italic> is the geometric volume of the greenhouse (<italic>m</italic><sup>3</sup>),</p></list-item>
<list-item>
<p><italic>ρ</italic> is the air density (<italic>kg</italic>[air]<italic>m</italic>-<sup>3</sup>),</p></list-item>
<list-item>
<p><italic>C<sub>p</sub></italic> is the specific heat of air (<italic>Jkg<sup>−</sup></italic><sup>1</sup><italic>K<sup>−1</sup></italic>),</p></list-item>
<list-item>
<p><italic>Q<sub>heater</sub></italic> is the heat provided by the greenhouse heater (<italic>W</italic>),</p></list-item>
<list-item>
<p><italic>Q<sub>fog</sub></italic> is the water capacity of the fog system (<italic>g</italic>[<italic>H<sub>2</sub>O</italic>]<italic>s<sup>−1</sup></italic>)</p></list-item>
<list-item>
<p><italic>S<sub>i</sub></italic> is the intercepted solar radiant energy (<italic>W</italic>),</p></list-item>
<list-item>
<p><italic>λ</italic> is the latent heat of vaporization (<italic>Jg<sup>−</sup></italic><sup>1</sup>),</p></list-item>
<list-item>
<p><italic>V<sub>R</sub></italic> is the ventilation rate (<italic>m</italic><sup>3</sup>[air]<italic>s<sup>−</sup></italic><sup>1</sup>),</p></list-item>
<list-item>
<p><italic>E</italic>(<italic>S<sub>i</sub></italic>(<italic>t</italic>), <italic>H<sub>in</sub></italic>(<italic>t</italic>)) is the evapotranspiration rate of the plants (<italic>g</italic>[<italic>H<sub>2</sub>O</italic>]<italic>s<sup>−1</sup></italic>),</p></list-item></list></p>
<p><italic>V<sub>T</sub></italic> and <italic>V<sub>H</sub></italic> are the active mixing air volumes of the temperature and humidity respectively Generally speaking, <italic>V<sub>T</sub></italic> and <italic>V<sub>H</sub></italic> are as small as 60%-70% of the geometric volume <italic>V</italic> of the greenhouse owing to local convection and stagnant zones that exist in ventilated spaces.</p>
<p>It is also worth noting that as a first approximation, the evapotranspiration rate <italic>E</italic>(<italic>S<sub>i</sub>, H<sub>in</sub></italic>) is primarily related to the intercepted solar radiant energy, through the following simplified relation:
<disp-formula id="FD4">
<label>(4)</label>
<mml:math id="mm4" display="block">
<mml:semantics id="sm4">
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi>α</mml:mi>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mi>λ</mml:mi></mml:mfrac>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>β</mml:mi>
<mml:mi>T</mml:mi></mml:msub>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>α</italic> is an overall coefficient to account for shading and leaf area index (dimensionless) and <italic>β<sub>T</sub></italic> is the overall coefficient to account for thermodynamic constants and other factors affecting evapotranspiration (<italic>i.e.</italic>,stomata and air motion) [<xref ref-type="bibr" rid="b42-sensors-12-05328">42</xref>].</p></sec>
<sec>
<label>2.2.</label>
<title>Problem Formulation</title>
<p>The climate model provided above can be used in all seasons, and two variables are controlled, namely, the indoor air temperature and the humidity ratio through the processes of heating (<italic>Q<sub>heater</sub></italic>(<italic>t</italic>)), ventilation (<italic>V<sub>R</sub></italic>(<italic>t</italic>)) and fogging (<italic>Q<sub>fog</sub></italic>(<italic>t</italic>)). For summer operation in this work, <italic>Q<sub>heater</sub></italic> is set to zero. The purposes of ventilation are to exhaust moist air and to replace it with outside fresh air, to control high temperatures caused by the influx of solar radiation, to dehumidify the greenhouse air when the humidity of the outside air is very low, to provide uniform air flow throughout the entire greenhouse, and to maintain acceptable levels of gas concentration in the greenhouse. Fogging systems (such as misters, fog units, or roof sprinklers) are primarily used for humidification of the greenhouse. In fact, fogging system also plays a cooling role due to evaporative cooling. Moreover, fresh air must be continually ventilated into the greenhouse, while warm and humidified air is exhausted. When humidification occurs under sunny conditions, ventilation is necessary since the greenhouse would soon become a steam bath if fresh dry air is not provided.</p>
<p>In order to effectively express the state-space form, we define the inside temperature and absolute humidity as the dynamic state variables, <italic>x</italic><sub>1</sub>(<italic>t</italic>) and <italic>x<sub>2</sub></italic>(<italic>t</italic>), respectively, the ventilation rate and the water capacity of the fog system as the control (actuator) variables, <italic>u</italic><sub>1</sub>(<italic>t</italic>) and <italic>u<sub>2</sub></italic>(<italic>t</italic>), respectively, and the intercepted solar radiant energy, the outside temperature, and the outside absolute humidity as the disturbances, <italic>v<sub>i</sub></italic>(<italic>t</italic>), <italic>i =</italic> 1,2,3. <xref rid="FD2" ref-type="disp-formula">Equations (2)</xref> and <xref rid="FD3" ref-type="disp-formula">(3)</xref> can alternatively be written in the following state-space form:
<disp-formula id="FD5">
<label>(5)</label>
<mml:math id="mm5" display="block">
<mml:semantics id="sm5">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>A</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>ρ</mml:mi>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>p</mml:mi></mml:msub>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>T</mml:mi></mml:msub></mml:mrow></mml:mfrac>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>T</mml:mi></mml:msub></mml:mrow></mml:mfrac>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mfrac>
<mml:mi>λ</mml:mi>
<mml:mrow>
<mml:mi>ρ</mml:mi>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>p</mml:mi></mml:msub>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>T</mml:mi></mml:msub></mml:mrow></mml:mfrac>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mn>2</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mi>ρ</mml:mi>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>P</mml:mi></mml:msub>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>T</mml:mi></mml:msub></mml:mrow></mml:mfrac>
<mml:msub>
<mml:mi>υ</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>A</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>ρ</mml:mi>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>p</mml:mi></mml:msub>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>T</mml:mi></mml:msub></mml:mrow></mml:mfrac>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:msub>
<mml:mi>υ</mml:mi>
<mml:mn>2</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>T</mml:mi></mml:msub></mml:mrow></mml:mfrac>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:msub>
<mml:mi>υ</mml:mi>
<mml:mn>2</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula>
<disp-formula id="FD6">
<label>(6)</label>
<mml:math id="mm6" display="block">
<mml:semantics id="sm6">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>˙</mml:mo></mml:mover>
<mml:mn>2</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>β</mml:mi>
<mml:mi>T</mml:mi></mml:msub></mml:mrow>
<mml:mrow>
<mml:mi>ρ</mml:mi>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>H</mml:mi></mml:msub></mml:mrow></mml:mfrac>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>2</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mi>ρ</mml:mi>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>H</mml:mi></mml:msub></mml:mrow></mml:mfrac>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mn>2</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mi>α</mml:mi>
<mml:mrow>
<mml:mi>λ</mml:mi>
<mml:mi>ρ</mml:mi>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>H</mml:mi></mml:msub></mml:mrow></mml:mfrac>
<mml:msub>
<mml:mi>υ</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mi>ρ</mml:mi>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>H</mml:mi></mml:msub></mml:mrow></mml:mfrac>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>2</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mi>ρ</mml:mi>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>H</mml:mi></mml:msub></mml:mrow></mml:mfrac>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:msub>
<mml:mi>υ</mml:mi>
<mml:mn>3</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula></p>
<p>Due to the complexity appearing as the cross-product terms between control and disturbance variables, <xref rid="FD5" ref-type="disp-formula">Equations (5)</xref> and <xref rid="FD6" ref-type="disp-formula">(6)</xref> are obviously coupled nonlinear equations, which cannot be placed into the more familiar form of an affine analytic nonlinear system.</p></sec></sec>
<sec sec-type="methods">
<label>3.</label>
<title>Design of Adaptive Neuro-PID Controller for Greenhouse Climate</title>
<sec>
<label>3.1.</label>
<title>RBF Network Structure</title>
<p>RBF, presented by J. Moody and C. Darken [<xref ref-type="bibr" rid="b43-sensors-12-05328">43</xref>], emerged as a variant of artificial neural network in late 1980s. RBF neural networks have an input layer, a hidden layer and an output layer. The neurons in the hidden layer contain Gaussian transfer functions whose outputs are inversely proportional to the distance from the center of the neuron. The architecture of a typical RBF network is shown in <xref ref-type="fig" rid="f2-sensors-12-05328">Figure 2</xref>.</p>
<p>Each input node corresponds to an element of the input vector <italic>I</italic> ∊ <italic>R<sup>n</sup></italic>, and each hidden node implements a radial activated function, which consists of local perception nodes. The Gaussian activation function for RBF network is given by:
<disp-formula id="FD7">
<label>(7)</label>
<mml:math id="mm7" display="block">
<mml:semantics id="sm7">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>exp</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>j</mml:mi></mml:msub></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:msubsup>
<mml:mi>σ</mml:mi>
<mml:mi>j</mml:mi>
<mml:mn>2</mml:mn></mml:msubsup></mml:mrow></mml:mfrac></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow>
<mml:mspace width="1.0em"/>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>M</mml:mi></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>I</italic> = [<italic>I</italic><sub>1</sub>, <italic>I<sub>2</sub>,…, I<sub>N</sub></italic>] and <italic>M</italic> are the input feature vector and the number of hidden nodes, respectively. <italic>C<sub>j</sub> =</italic> [<italic>c<sub>j</sub></italic><sub>1</sub>,<italic>…, c<sub>jN</sub></italic>] is <italic>N</italic>-dimensional center parameter of the <italic>j</italic>th hidden node, symbol ‖ • ‖ denotes the Euclidean norm, and <italic>σ<sub>j</sub></italic> is the positive center width parameter.</p>
<p>The output nodes implement a weighted sum of hidden node outputs as follows:
<disp-formula id="FD8">
<label>(8)</label>
<mml:math id="mm8" display="block">
<mml:semantics id="sm8">
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>M</mml:mi></mml:munderover>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi></mml:mrow></mml:msub>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mspace width="1.2em"/></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>L</mml:mi></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>w<sub>ij</sub></italic> is the connection weight of the <italic>j</italic>th hidden node to the <italic>i</italic>th output node, and <italic>L</italic> is the number of output nodes.</p></sec>
<sec>
<label>3.2.</label>
<title>Control Strategy</title>
<p>In order to simulate its behavior on a digital computer, we adopt a fourth-order Runge-Kutta numerical method with a small enough integration step. Hence, considering a typical digital positional PID algorithm is generally given as:
<disp-formula id="FD9">
<label>(9)</label>
<mml:math id="mm9" display="block">
<mml:semantics id="sm9">
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mn>0</mml:mn></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>p</mml:mi></mml:msub>
<mml:mi>e</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi></mml:msub>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>k</mml:mi></mml:munderover>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>d</mml:mi></mml:msub>
<mml:mfrac>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>e</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>k</italic> and <italic>T<sub>s</sub></italic> are iterative step and sampling time, respectively. <italic>u</italic>(<italic>k</italic>) and <italic>u</italic><sub>0</sub> are the control law and the corresponding initial value. <italic>K<sub>p</sub>, K<sub>i</sub></italic> and <italic>K<sub>d</sub></italic> are the gains of the proportional, integral and derivative terms of a PID controller, respectively. <italic>e</italic>(<italic>k</italic>) is the process tracking error, defined as:
<disp-formula id="FD10">
<label>(10)</label>
<mml:math id="mm10" display="block">
<mml:semantics id="sm10">
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>y</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula>with <italic>r</italic>(<italic>k</italic>) and <italic>y</italic>(<italic>k</italic>) being the desired trajectory and the process output, respectively.</p>
<p>Note that the greenhouse dynamic system mentioned above is a two-input and two-output continuous time nonlinear system. We adopt a hybrid control strategy by combining RBF network with the conventional PID controller, in which there is one neural network model with two outputs (namely, inside temperature and humidity). The corresponding control structure is shown in <xref ref-type="fig" rid="f3-sensors-12-05328">Figure 3</xref>, which is similar to the references [<xref ref-type="bibr" rid="b28-sensors-12-05328">28</xref>-<xref ref-type="bibr" rid="b31-sensors-12-05328">31</xref>]. RBF network is used to tune the parameters of the conventional PID controller through Jacobian information. To facilitate the subsequent development, the following parameter vectors are only for single loop operation if there does not exist an explicit declaration in the text, and the vectors related to the controller parameter are defined as:
<disp-formula id="FD11">
<label>(11)</label>
<mml:math id="mm11" display="block">
<mml:semantics id="sm11">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>c</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>p</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>d</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>
<disp-formula id="FD12">
<label>(12)</label>
<mml:math id="mm12" display="block">
<mml:semantics id="sm12">
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>c</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi></mml:msub>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>k</mml:mi></mml:msubsup>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>e</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow>
<mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:semantics></mml:math></disp-formula></p>
<p>Considering the saturation of actuators, the control law <xref rid="FD9" ref-type="disp-formula">Equation (9)</xref> is rewritten as:
<disp-formula id="FD13">
<label>(13)</label>
<mml:math id="mm13" display="block">
<mml:semantics id="sm13">
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>lim</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>if</mml:mtext>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>c</mml:mi></mml:msub></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow>
<mml:mo>≥</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mtext>lim</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mn>0</mml:mn></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>c</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>c</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>,</mml:mo></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>otherwise</mml:mtext></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>u<sub>lim</sub></italic> is a limitation vector of actuators. The energy function <italic>E</italic>(<italic>k</italic>) is defined as
<disp-formula id="FD14">
<label>(14)</label>
<mml:math id="mm14" display="block">
<mml:semantics id="sm14">
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn></mml:mfrac>
<mml:mi>e</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:semantics></mml:math></disp-formula>and the parameters of PID are updated based on the following rule:
<disp-formula id="FD15">
<label>(15)</label>
<mml:math id="mm15" display="block">
<mml:semantics id="sm15">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>c</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>c</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>,</mml:mo></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:mi>y</mml:mi></mml:mrow>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:mi>u</mml:mi></mml:mrow></mml:mfrac></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow>
<mml:mo>≥</mml:mo>
<mml:mi>γ</mml:mi></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>c</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>c</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>,</mml:mo></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>otherwise</mml:mtext></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>∂y/∂u</italic> is the Jacobian information of the controlled process, which can be identified by adopting a neural network model. <italic>γ</italic> is a threshold, by which the tuning <xref rid="FD15" ref-type="disp-formula">Equation (15)</xref> can prevent PID gain parameters from being increased rapidly due to the effect of external strong interference. <italic>δK<sub>c</sub></italic>(<italic>k</italic>) is the increment of the gain vector <italic>K<sub>c</sub></italic>(<italic>k</italic>), adjusted based on the negative gradient method as follows:
<disp-formula id="FD16">
<label>(16)</label>
<mml:math id="mm16" display="block">
<mml:semantics id="sm16">
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>c</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>η</mml:mi>
<mml:mfrac>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:mi>E</mml:mi></mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mi>c</mml:mi></mml:msub></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>η</mml:mi>
<mml:mfrac>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:mi>E</mml:mi></mml:mrow>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:mi>y</mml:mi></mml:mrow></mml:mfrac>
<mml:mfrac>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:mi>y</mml:mi></mml:mrow>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:mi>u</mml:mi></mml:mrow></mml:mfrac>
<mml:mfrac>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:mi>u</mml:mi></mml:mrow>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>c</mml:mi></mml:msub></mml:mrow></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mi>η</mml:mi>
<mml:mi>e</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:mi>y</mml:mi></mml:mrow>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:mi>u</mml:mi></mml:mrow></mml:mfrac>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>c</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>η</italic> is a learning rate parameter matrix.</p>
<p>Because the RBF network has excellent adaptability, learning ability and powerful ability to approximate nonlinear functions, we adopt the identification structure as shown in <xref ref-type="fig" rid="f4-sensors-12-05328">Figure 4</xref>. The output vector of RBF neural network model is defined as:
<disp-formula id="FD17">
<label>(17)</label>
<mml:math id="mm17" display="block">
<mml:semantics id="sm17">
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>m</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>n</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mover accent="true">
<mml:mi>f</mml:mi>
<mml:mo>^</mml:mo></mml:mover>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mn>2</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mn>2</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mn>2</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mn>2</mml:mn></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>f̂</italic>(<italic>·</italic>) is an approximated nonlinear function of <italic>f</italic>(<italic>·</italic>), and <italic>n<sub>1</sub></italic> and <italic>n<sub>2</sub></italic> are the number of lag time steps. According to the universal approximation proposition [<xref ref-type="bibr" rid="b44-sensors-12-05328">44</xref>], the <italic>i<sup>th</sup></italic> RBF network node output <italic>y<sub>mi</sub></italic>(<italic>k</italic>) will tend to the <italic>i<sup>th</sup></italic> loop process output <italic>y<sub>i</sub></italic>(<italic>k</italic>) when providing enough numbers of hidden layer nodes. Therefore, we can achieve the following formula by providing an appropriate hidden neuron:
<disp-formula id="FD18">
<label>(18)</label>
<mml:math id="mm18" display="block">
<mml:semantics id="sm18">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac>
<mml:mo>≈</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi>i</mml:mi></mml:mrow>
<mml:mi>M</mml:mi></mml:munderover>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>i</mml:mi></mml:mrow></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mi>σ</mml:mi>
<mml:mi>j</mml:mi>
<mml:mn>2</mml:mn></mml:msubsup></mml:mrow></mml:mfrac></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>i=</italic> 1,2.</p></sec>
<sec>
<label>3.3.</label>
<title>Jacobian Identification of RBF Network</title>
<p>The identification algorithm of Jacobian information of controlled process is stated below. The performance index function of controller is defined as:
<disp-formula id="FD19">
<label>(19)</label>
<mml:math id="mm19" display="block">
<mml:semantics id="sm19">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>m</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn></mml:mfrac>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>m</mml:mi></mml:msub>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>e<sub>m</sub></italic>(<italic>k</italic>) is the error between the process actual output and RBF network model output, which is represented by
<disp-formula id="FD20">
<label>(20)</label>
<mml:math id="mm20" display="block">
<mml:semantics id="sm20">
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>m</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi>y</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>m</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula>In order to minimize the error <italic>e<sub>m</sub></italic>(<italic>k</italic>), a gradient descent method is adopted to adjust the weights, center vectors and center width parameters. The update equations for the RBF network parameters are given as:
<disp-formula id="FD21">
<label>(21)</label>
<mml:math id="mm21" display="block">
<mml:semantics id="sm21">
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>m</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>m</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>m</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac>
<mml:mo>⋅</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>m</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mo>∂</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>m</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:semantics></mml:math></disp-formula>
<disp-formula id="FD22">
<label>(22)</label>
<mml:math id="mm22" display="block">
<mml:semantics id="sm22">
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>η</mml:mi>
<mml:mi>w</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>α</mml:mi>
<mml:mi>w</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>β</mml:mi>
<mml:mi>w</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula>
<disp-formula id="FD23">
<label>(23)</label>
<mml:math id="mm23" display="block">
<mml:semantics id="sm23">
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mi>σ</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>m</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>j</mml:mi></mml:msub></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mi>σ</mml:mi>
<mml:mi>j</mml:mi>
<mml:mn>3</mml:mn></mml:msubsup></mml:mrow></mml:mfrac></mml:mrow></mml:semantics></mml:math></disp-formula>
<disp-formula id="FD24">
<label>(24)</label>
<mml:math id="mm24" display="block">
<mml:semantics id="sm24">
<mml:mrow>
<mml:msub>
<mml:mi>σ</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>σ</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>η</mml:mi>
<mml:mi>σ</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mi>σ</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>α</mml:mi>
<mml:mi>σ</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>σ</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>σ</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>β</mml:mi>
<mml:mi>σ</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>σ</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>σ</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula>
<disp-formula id="FD25">
<label>(25)</label>
<mml:math id="mm25" display="block">
<mml:semantics id="sm25">
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>i</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>m</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mi>σ</mml:mi>
<mml:mi>j</mml:mi>
<mml:mn>2</mml:mn></mml:msubsup></mml:mrow></mml:mfrac></mml:mrow></mml:semantics></mml:math></disp-formula>
<disp-formula id="FD26">
<label>(26)</label>
<mml:math id="mm26" display="block">
<mml:semantics id="sm26">
<mml:mrow>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>i</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>i</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>η</mml:mi>
<mml:mi>c</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>i</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>α</mml:mi>
<mml:mi>c</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>i</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>i</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>β</mml:mi>
<mml:mi>c</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>i</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>i</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>α<sub>w</sub>, α<sub>σ</sub>, α<sub>c</sub>, β<sub>w</sub>, β<sub>σ</sub></italic> and <italic>β<sub>c</sub></italic> are the corresponding momentum factors, and they can speed up convergence and prevent the network from falling into local minima. <italic>η<sub>w</sub></italic>(<italic>k</italic>), <italic>η<sub>σ</sub></italic>(<italic>k</italic>) and <italic>η<sub>c</sub></italic>(<italic>k</italic>) are appropriate learning rate parameters. Unduely low learning rate makes the network learn very slowly, while excessively high learning rate makes the weights and objective function diverge. Therefore, we adopt the tuning method as follows:
<disp-formula id="FD27">
<mml:math id="mm27" display="block">
<mml:semantics id="sm27">
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>m</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo>|</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>m</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>|</mml:mo>
<mml:mo>−</mml:mo>
<mml:mo>|</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>m</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>|</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula>
<disp-formula id="FD28">
<mml:math id="mm28" display="block">
<mml:semantics id="sm28">
<mml:mrow>
<mml:msub>
<mml:mi>η</mml:mi>
<mml:mi>w</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>η</mml:mi>
<mml:mi>w</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>ξ</mml:mi>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>m</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula>
<disp-formula id="FD29">
<mml:math id="mm29" display="block">
<mml:semantics id="sm29">
<mml:mrow>
<mml:msub>
<mml:mi>η</mml:mi>
<mml:mi>σ</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>η</mml:mi>
<mml:mi>σ</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>ξ</mml:mi>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>m</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula>
<disp-formula id="FD30">
<mml:math id="mm30" display="block">
<mml:semantics id="sm30">
<mml:mrow>
<mml:msub>
<mml:mi>η</mml:mi>
<mml:mi>c</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>η</mml:mi>
<mml:mi>c</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>ξ</mml:mi>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>m</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>ξ</italic> is a constant coefficient and we select here <italic>ξ</italic> as 0.0001. When the error signal <italic>e<sub>m</sub></italic> increases with iteration process, the learning rate parameters are decreased, and conversely, the learning rate parameters are increased when the error signal <italic>e<sub>m</sub></italic> decreases.</p></sec></sec>
<sec sec-type="results">
<label>4.</label>
<title>Simulations and Results</title>
<p>In order to verify the efficiency and performance of the proposed Neuro-PID control scheme, a series of simulations are presented in the present section. For this example, we consider a greenhouse of surface area 1,000 <italic>m</italic><sup>2</sup> and a height of 4 <italic>m</italic>. The greenhouse has a shading screen that reduces the incident solar radiation energy by 60%. The maximum water capacity of the fog system is 26 <italic>g</italic>[<italic>H<sub>2</sub>O</italic>]<italic>min-<sup>1</sup>m<sup>−3</sup></italic>. Maximum ventilation rate corresponds to 20 air changes per hour (22.2 <italic>m</italic><sup>3</sup><italic>s</italic><sup>−1</sup>). The parameters of the greenhouse climate model are shown in <xref ref-type="table" rid="t1-sensors-12-05328">Table 1</xref>. Moreover, the initial values of indoor air temperature and humidity ratio are 25 °C and 20 g[<italic>H</italic><sub>2</sub><italic>O</italic>]/kg[air], respectively. Here, the threshold <italic>γ</italic> = 0.0085, the lag number <italic>n<sub>1</sub> = n<sub>2</sub> =</italic> 2, and the sampling time is 1 min.</p>
<p>Considering the external climatic fluctuation within a small range during short time, solar radiation <italic>S<sub>i</sub></italic>, outdoor temperature <italic>T<sub>out</sub></italic> and humidity ratio <italic>H<sub>out</sub></italic> change in random ways as shown in <xref ref-type="fig" rid="f5-sensors-12-05328">Figure 5</xref> to represent external disturbances. Another important consideration is the many learning rates and momentum factors, which determine how much we change the corresponding modifier formulas at each step. For convenience, we select here the fixed parameters for each control loop as follows:
<disp-formula id="FD31">
<mml:math id="mm31" display="block">
<mml:semantics id="sm31">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mi>η</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn>1.5</mml:mn></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mn>0.5</mml:mn></mml:mrow></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mn>1.2</mml:mn></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>α</mml:mi>
<mml:mi>w</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>α</mml:mi>
<mml:mi>σ</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>α</mml:mi>
<mml:mi>c</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0.1</mml:mn></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>β</mml:mi>
<mml:mi>w</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>β</mml:mi>
<mml:mi>σ</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>β</mml:mi>
<mml:mi>c</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0.15</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:semantics></mml:math></disp-formula>and the initial learning rate parameters
<disp-formula id="FD32">
<mml:math id="mm32" display="block">
<mml:semantics id="sm32">
<mml:mrow>
<mml:msub>
<mml:mi>η</mml:mi>
<mml:mi>w</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>η</mml:mi>
<mml:mi>σ</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>η</mml:mi>
<mml:mi>c</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0.05</mml:mn></mml:mrow></mml:semantics></mml:math></disp-formula></p>
<p>In this experiment, the ability of the system to perform adaptive control and smooth closed-loop response to set-point changes is demonstrated. We consider a pair of square-wave reference inputs to test its control performance. Indoor air temperature set-point changes between 33 and 20 °C, while the humidity ratio set-point changes between 17 and 23 g [<italic>H</italic><sub>2</sub><italic>O</italic>]/kg[air] (which corresponds to a relative humidity change between 60% and 76%). The corresponding responses for set-point square-wave changes in temperature and humidity ratio are shown in <xref ref-type="fig" rid="f6-sensors-12-05328">Figure 6</xref>, and the corresponding errors and control signals are illustrated in <xref ref-type="fig" rid="f7-sensors-12-05328">Figures 7</xref> and <xref ref-type="fig" rid="f8-sensors-12-05328">8</xref>. The results from the figures show that the proposed adaptive control scheme performs well without strong overshoot and the controlled process is smooth. <xref ref-type="fig" rid="f9-sensors-12-05328">Figures 9</xref> and <xref ref-type="fig" rid="f10-sensors-12-05328">10</xref> show that the gain parameters of the Neuro-PID controller vary with the set-point changes during the tuning process. The PID parameters can be adjusted automatically to adapt to outside environmental or climatic changes. The matching condition of the system actual output and RBF network output are illustrated in <xref ref-type="fig" rid="f11-sensors-12-05328">Figure 11</xref>. The results show that the outputs of neural network model are approximate to the controlled process outputs, which means that the RBF network outputs converge to the process outputs in the proposed method. On the whole, system outputs track the reference inputs well, and the Neuro-PID controller demonstrates good adaptive and tracking performance.</p>
<p>To demonstrate the superiority of the proposed control scheme, we compare the results with an offline tuning method that uses GA to search the PID gain parameters according to the performance requirements. Each chromosome consists of six separate strings (<italic>i.e.</italic>, <italic>K<sub>p</sub></italic><sub>1</sub>, <italic>K<sub>i</sub></italic><sub>1</sub>, <italic>K<sub>d</sub></italic><sub>1</sub>, <italic>K<sub>p</sub></italic><sub>2</sub>, <italic>K<sub>i</sub></italic><sub>2</sub>, <italic>K<sub>d</sub></italic><sub>2</sub>). The objective function considered is based on the error criteria, and we take ITAE as a measure of performance index. Considering the two loop control system of greenhouse climate, the performance index (<italic>i.e.</italic>, fitness function) is formulated as follows:
<disp-formula id="FD33">
<label>(27)</label>
<mml:math id="mm33" display="block">
<mml:semantics id="sm33">
<mml:mrow>
<mml:mi>J</mml:mi>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>N</mml:mi></mml:munderover>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mn>2</mml:mn></mml:munderover>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>|</mml:mo>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>e<sub>i</sub></italic>(<italic>k</italic>) is the error signal of the <italic>i<sup>th</sup></italic> loop, which is provided by <xref rid="FD10" ref-type="disp-formula">Equation (10)</xref>. <italic>t</italic>(<italic>k</italic>) represents the time of the <italic>k<sup>th</sup></italic> iterative, <italic>N</italic> is the total number of iteration.</p>
<p>Therefore, the optimization problem can be formulated as follows:
<list list-type="simple">
<list-item>
<p>Find <italic>ind</italic> = [<italic>K<sub>p</sub></italic><sub>1</sub>,<italic>K<sub>i</sub></italic><sub>1</sub>,<italic>K<sub>d</sub></italic><sub>1</sub>,<italic>K<sub>p</sub></italic><sub>2</sub>,<italic>K<sub>i</sub></italic><sub>2</sub>,<italic>K<sub>d</sub></italic><sub>2</sub>]</p></list-item>
<list-item>
<p>to optimize <italic>J</italic>(<italic>ind</italic>)</p></list-item>
<list-item>
<p>subject to 1 <italic>≤ ind</italic>(<italic>i</italic>) <italic>≤</italic> 100</p></list-item>
<list-item>
<p>for <italic>i</italic>= 1,<italic>…</italic>,6.</p></list-item></list></p>
<p>The parameters of GA optimization are shown in <xref ref-type="table" rid="t2-sensors-12-05328">Table 2</xref>. The best PID gain parameters achieved by GA optimization are <italic>K<sub>p</sub></italic><sub>1</sub> = 21.7780,<italic>K<sub>i</sub></italic><sub>1</sub> = 40.1346,<italic>K<sub>d</sub></italic><sub>1</sub> = 86.7532, <italic>K<sub>p</sub></italic><sub>2</sub> = 98.4024,<italic>K<sub>i</sub></italic><sub>2</sub> = 47.4968 and <italic>K<sub>d</sub></italic><sub>2</sub> = 97.0353, respectively.</p>
<p><xref ref-type="fig" rid="f12-sensors-12-05328">Figures 12</xref>–<xref ref-type="fig" rid="f15-sensors-12-05328">15</xref> show the variation of ITAE value, the tracking trajectory of square-wave, the variation of control errors and the corresponding control signals for the conventional PID controller during the offline tuning process, respectively. To discriminate the performance of the two methods, the tracking error are given in <xref ref-type="table" rid="t3-sensors-12-05328">Table 3</xref>. Results show that the offline tuning scheme can also achieve the tracking performance, and the mean error and standard deviation are even smaller than those of the online scheme. However, the tracking trajectory is not smooth and the control process generates oscillating control signals at about 290–315 min by the use of an offline tuning scheme. Its control performance is less smooth compared with the proposed Neuro-PID controller. The actual cause can be interpreted as follows: the offline tuning method cannot adapt to the external climatic fluctuation. Changes of solar radiation <italic>S<sub>i</sub></italic>, outdoor temperature <italic>T<sub>out</sub></italic> and humidity ratio <italic>H<sub>out</sub></italic> caused control performance degradation. Besides, the offline tuning scheme is time-consuming and heavily dependent on the computation time of the GA optimization, and it can not be applied to the real-time control.</p>
<p>From the above results, it can be seen that the proposed adaptive Neuro-PID control scheme has good control effect such as good adaptability, strong robustness while achieving satisfactory control performance for the complex and nonlinear greenhouse climate control system. Compared with the offline tuning method that uses GA optimization, the proposed adaptive strategy has the following advantages. Firstly, it has a better set-point tracking performance. Secondly, it has smoother control process characterized by smaller oscillatory amplitudes. Thirdly, it can be applied to online real-time control for the complex greenhouse climate system. Lastly, and most important of all, it adapts well to external climatic fluctuation.</p></sec>
<sec sec-type="conclusions">
<label>5.</label>
<title>Summary and Conclusions</title>
<p>In this paper, we combined RBF network with a conventional PID controller to develop a hybrid control strategy for greenhouse operation. A model for nonlinear conservation laws of enthalpy and matter between numerous system variables affecting the greenhouse climate was formulated, and the corresponding control model was presented and discussed. Considering the characteristic of nonlinear learning ability of the RBF network, RBF network was used to tune and identify all PID gain parameters online and adaptively. The adaptive tuning method based on Jacobian identification of RBF network was derived, and the implementation of the Neuro-PID controllers is presented. The proposed Neuro-PID control scheme was validated for the complex greenhouse climate control in terms of set-point tracking and disturbance rejection by a simulation experiment. Adaptability, tracking and smooth closed-loop response to set-point changes was demonstrated by tracking square wave trajectory in this experiment. We compared the proposed adaptive online tuning method with the offline tuning scheme that employs GA to search the optimal gain parameters based on the error criteria. Results show that the proposed adaptive control strategy has better adaptability, robustness, and more satisfactory real-time control performance compared with the offline tuning scheme using GA optimization.</p>
<p>The results suggest that the proposed adaptive hybrid control scheme by combining RBF network with a conventional PID controller is a promising method with the following features. Firstly, it has a satisfactory control performance characterized by adaptability, robustness and good set-point tracking. Secondly, it can achieve the real-time online control of various MIMO systems. Thirdly, it can be applied in nonlinear dynamic control systems such as greenhouse climate system. This new system may provide a valuable reference to formulate environmental control strategies for actual application in greenhouse production. The approach is not limited to greenhouse applications and could easily be extended to other applications. Therefore, further improvement and implementation of the system will be achieved in the near future.</p></sec></body>
<back>
<ack>
<p>The authors would like to express their appreciation to the referees for their helpful comments and suggestions. This work was supported by the National Natural Science Foundations of China (Grant No. 61174090 and 61174023), Zhejiang Provincial Natural Science Foundation of China (Grant No. Y1110880), the Education Department (Grant No. Y201121231) and Forestry Department (Grant No. 2010B13) of Zhejiang Province of China, and also supported by BEACON (An NSF Science and Technology Center for the Study of Evolution in Action, Coop. Agmt.) of USA under the Grant No. DBI-0939454.</p></ack>
<ref-list>
<title>References</title>
<ref id="b1-sensors-12-05328"><label>1.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Pinñón</surname><given-names>S.</given-names></name><name><surname>Camachoa</surname><given-names>E.F.</given-names></name><name><surname>Kuchen</surname><given-names>B.</given-names></name><name><surname>Peña</surname><given-names>M.</given-names></name></person-group><article-title>Constrained predictive control of a greenhouse</article-title><source>Comput. Electron. Agric</source><year>2005</year><volume>49</volume><fpage>317</fpage><lpage>329</lpage><pub-id pub-id-type="doi">10.1016/j.compag.2005.08.007</pub-id></citation></ref>
<ref id="b2-sensors-12-05328"><label>2.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Coelho</surname><given-names>J.P.</given-names></name><name><surname>Moura Oliveira</surname><given-names>P.B.</given-names></name><name><surname>Boaventura Cunha</surname><given-names>J.</given-names></name></person-group><article-title>Greenhouse air temperature predictive control using the particle swarm optimisation algorithm</article-title><source>Comput. Electron. Agric</source><year>2005</year><volume>49</volume><fpage>330</fpage><lpage>344</lpage><pub-id pub-id-type="doi">10.1016/j.compag.2005.08.003</pub-id></citation></ref>
<ref id="b3-sensors-12-05328"><label>3.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Blasco</surname><given-names>X.</given-names></name><name><surname>Martýacutenez</surname><given-names>M.</given-names></name><name><surname>Herrero</surname><given-names>J.M.</given-names></name><name><surname>Ramos</surname><given-names>C.</given-names></name><name><surname>Sanchis</surname><given-names>J.</given-names></name></person-group><article-title>Model-based predictive control of greenhouse climate for reducing energy and water consumption</article-title><source>Comput. Electron. Agric</source><year>2007</year><volume>55</volume><fpage>49</fpage><lpage>70</lpage><pub-id pub-id-type="doi">10.1016/j.compag.2006.12.001</pub-id></citation></ref>
<ref id="b4-sensors-12-05328"><label>4.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Speetjens</surname><given-names>S.L.</given-names></name><name><surname>Stigter</surname><given-names>J.D.</given-names></name><name><surname>van Straten</surname><given-names>G.</given-names></name></person-group><article-title>Towards an adaptive model for greenhouse control</article-title><source>Comput. Electron. Agric</source><year>2009</year><volume>67</volume><fpage>1</fpage><lpage>8</lpage><pub-id pub-id-type="doi">10.1016/j.compag.2009.01.012</pub-id></citation></ref>
<ref id="b5-sensors-12-05328"><label>5.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hu</surname><given-names>H.G.</given-names></name><name><surname>Xu</surname><given-names>L.H.</given-names></name><name><surname>Wei</surname><given-names>R.H.</given-names></name><name><surname>Zhu</surname><given-names>B.K.</given-names></name></person-group><article-title>RBF network based nonlinear model reference adaptive PD controller design for greenhouse climate</article-title><source>Int. J. Adv. Comput. Technol</source><year>2011</year><volume>3</volume><fpage>357</fpage><lpage>366</lpage></citation></ref>
<ref id="b6-sensors-12-05328"><label>6.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Pasgianos</surname><given-names>G.D.</given-names></name><name><surname>Arvanitis</surname><given-names>K.G.</given-names></name><name><surname>Polycarpou</surname><given-names>P.</given-names></name><name><surname>Sigrimis</surname><given-names>N.</given-names></name></person-group><article-title>A nonlinear feedback technique for greenhouse environmental control</article-title><source>Comput. Electron. Agric</source><year>2003</year><volume>40</volume><fpage>153</fpage><lpage>177</lpage><pub-id pub-id-type="doi">10.1016/S0168-1699(03)00018-8</pub-id></citation></ref>
<ref id="b7-sensors-12-05328"><label>7.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lafont</surname><given-names>F.</given-names></name><name><surname>Balmat</surname><given-names>J.F.</given-names></name></person-group><article-title>Fuzzy logic to the identification and the command of the multidimensional systems</article-title><source>Int. J. Comput. Cogn</source><year>2004</year><volume>2</volume><fpage>21</fpage><lpage>47</lpage></citation></ref>
<ref id="b8-sensors-12-05328"><label>8.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Miranda</surname><given-names>R.C.</given-names></name><name><surname>Ventura-Ramos</surname><given-names>E.</given-names></name><name><surname>Peniche-Vera</surname><given-names>R.R.</given-names></name><name><surname>Herrera-Riuz</surname><given-names>G.</given-names></name></person-group><article-title>Fuzzy greenhouse climate control system based on a field programmable gate array</article-title><source>Biosyst. Eng</source><year>2006</year><volume>94</volume><fpage>165</fpage><lpage>177</lpage><pub-id pub-id-type="doi">10.1016/j.biosystemseng.2006.02.012</pub-id></citation></ref>
<ref id="b9-sensors-12-05328"><label>9.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bennis</surname><given-names>N.</given-names></name><name><surname>Duplaix</surname><given-names>J.</given-names></name><name><surname>Enéa</surname><given-names>G.</given-names></name><name><surname>Haloua</surname><given-names>M.</given-names></name><name><surname>Youlal</surname><given-names>H.</given-names></name></person-group><article-title>Greenhouse climate modelling and robust control</article-title><source>Comput. Electron. Agric</source><year>2008</year><volume>61</volume><fpage>96</fpage><lpage>107</lpage><pub-id pub-id-type="doi">10.1016/j.compag.2007.09.014</pub-id></citation></ref>
<ref id="b10-sensors-12-05328"><label>10.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Pucheta</surname><given-names>J.A.</given-names></name><name><surname>Schugurensky</surname><given-names>C.</given-names></name><name><surname>Fullana</surname><given-names>R.</given-names></name><name><surname>Patiño</surname><given-names>H.</given-names></name><name><surname>Kuchen</surname><given-names>B.</given-names></name></person-group><article-title>Optimal greenhouse control of tomato-seedling crops</article-title><source>Comput. Electron. Agric</source><year>2006</year><volume>50</volume><fpage>70</fpage><lpage>82</lpage><pub-id pub-id-type="doi">10.1016/j.compag.2005.09.002</pub-id></citation></ref>
<ref id="b11-sensors-12-05328"><label>11.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ioslovich</surname><given-names>I.</given-names></name><name><surname>Gutman</surname><given-names>P.</given-names></name><name><surname>Linke</surname><given-names>R.</given-names></name></person-group><article-title>Hamilton-Jacobi-Bellman formalism for optimal climate control of greenhouse crop</article-title><source>Automatica</source><year>2009</year><volume>45</volume><fpage>1227</fpage><lpage>1231</lpage><pub-id pub-id-type="doi">10.1016/j.automatica.2008.12.024</pub-id></citation></ref>
<ref id="b12-sensors-12-05328"><label>12.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hu</surname><given-names>H.G.</given-names></name><name><surname>Xu</surname><given-names>L.H.</given-names></name><name><surname>Wei</surname><given-names>R.H.</given-names></name><name><surname>Zhu</surname><given-names>B.K.</given-names></name></person-group><article-title>Multi-objective control optimization for greenhouse environment using evolutionary algorithms</article-title><source>Sensors</source><year>2011</year><volume>11</volume><fpage>5792</fpage><lpage>5807</lpage><pub-id pub-id-type="doi">10.3390/s110605792</pub-id><pub-id pub-id-type="pmid">22163927</pub-id></citation></ref>
<ref id="b13-sensors-12-05328"><label>13.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hu</surname><given-names>H.G.</given-names></name><name><surname>Xu</surname><given-names>L.H.</given-names></name><name><surname>Zhu</surname><given-names>B.K.</given-names></name><name><surname>Wei</surname><given-names>R.H.</given-names></name></person-group><article-title>A compatible control algorithm for greenhouse environment control based on MOCC strategy</article-title><source>Sensors</source><year>2011</year><volume>11</volume><fpage>3281</fpage><lpage>3302</lpage><pub-id pub-id-type="doi">10.3390/s110303281</pub-id><pub-id pub-id-type="pmid">22163799</pub-id></citation></ref>
<ref id="b14-sensors-12-05328"><label>14.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chen</surname><given-names>J.</given-names></name><name><surname>Huang</surname><given-names>T.-C.</given-names></name></person-group><article-title>Applying neural networks to on-line updated PID controllers for nonlinear process control</article-title><source>J. Process Control</source><year>2004</year><volume>14</volume><fpage>211</fpage><lpage>230</lpage><pub-id pub-id-type="doi">10.1016/S0959-1524(03)00039-8</pub-id></citation></ref>
<ref id="b15-sensors-12-05328"><label>15.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Åström</surname><given-names>K.J.</given-names></name><name><surname>Hägglund</surname><given-names>T.</given-names></name></person-group><source>PID Controllers: Theory, Design, and Tuning</source><edition>2nd ed.</edition><publisher-name>Instrument Society of American</publisher-name><publisher-loc>Research Triangle Park NC, USA</publisher-loc><year>1995</year></citation></ref>
<ref id="b16-sensors-12-05328"><label>16.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ziegler</surname><given-names>J.G.</given-names></name><name><surname>Nichols</surname><given-names>N.B.</given-names></name></person-group><article-title>Optimum settings for automatic controllers</article-title><source>Trans. ASME</source><year>1942</year><volume>64</volume><fpage>759</fpage><lpage>768</lpage></citation></ref>
<ref id="b17-sensors-12-05328"><label>17.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Herrero</surname><given-names>J.M.</given-names></name><name><surname>Blasco</surname><given-names>X.</given-names></name><name><surname>Martínez</surname><given-names>M.</given-names></name><name><surname>Salcedo</surname><given-names>J.V.</given-names></name></person-group><article-title>Optimal PID Tuning with Genetic Algorithm for Nonlinear Process Models</article-title><conf-name>Proceedings of the 15th Triennial World Congress</conf-name><conf-loc>Barcelona, Spain</conf-loc><conf-date>21–26 July 2002</conf-date></citation></ref>
<ref id="b18-sensors-12-05328"><label>18.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chang</surname><given-names>W.-D.</given-names></name></person-group><article-title>A multi-crossover genetic approach to multivariable PID controllers tuning</article-title><source>Expert Syst. Appl</source><year>2007</year><volume>33</volume><fpage>620</fpage><lpage>626</lpage><pub-id pub-id-type="doi">10.1016/j.eswa.2006.06.003</pub-id></citation></ref>
<ref id="b19-sensors-12-05328"><label>19.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Arruda</surname><given-names>L.V.R.</given-names></name><name><surname>Swiech</surname><given-names>M.C.S.</given-names></name><name><surname>Delgado</surname><given-names>M.R.B.</given-names></name><name><surname>Neves</surname><given-names>F.</given-names><suffix>Jr.</suffix></name></person-group><article-title>PID control of MIMO process based on rank niching genetic algorithm</article-title><source>Appl. Intell</source><year>2008</year><volume>29</volume><fpage>290</fpage><lpage>305</lpage><pub-id pub-id-type="doi">10.1007/s10489-007-0095-6</pub-id></citation></ref>
<ref id="b20-sensors-12-05328"><label>20.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chen</surname><given-names>F.-C.</given-names></name><name><surname>Khalil</surname><given-names>H.K.</given-names></name></person-group><article-title>Adaptive control of a class of nonlinear discrete-time systems using neural networks</article-title><source>IEEE Trans. Autom. Control</source><year>1995</year><volume>40</volume><fpage>791</fpage><lpage>801</lpage><pub-id pub-id-type="doi">10.1109/9.384214</pub-id></citation></ref>
<ref id="b21-sensors-12-05328"><label>21.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ahmed</surname><given-names>M.S.</given-names></name></person-group><article-title>Neural-net-based direct adaptive control for a class of nonlinear plants</article-title><source>IEEE Trans. Autom. Control</source><year>2000</year><volume>45</volume><fpage>119</fpage><lpage>124</lpage><pub-id pub-id-type="doi">10.1109/9.827367</pub-id></citation></ref>
<ref id="b22-sensors-12-05328"><label>22.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Huang</surname><given-names>S.N.</given-names></name><name><surname>Tan</surname><given-names>K.K.</given-names></name><name><surname>Lee</surname><given-names>T.H.</given-names></name></person-group><article-title>A combined PID/adaptive controller for a class of nonlinear systems</article-title><source>Automatica</source><year>2001</year><volume>37</volume><fpage>611</fpage><lpage>618</lpage><pub-id pub-id-type="doi">10.1016/S0005-1098(00)00195-3</pub-id></citation></ref>
<ref id="b23-sensors-12-05328"><label>23.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Li</surname><given-names>Y.</given-names></name><name><surname>Sundararajan</surname><given-names>N.</given-names></name><name><surname>Saratchandran</surname><given-names>P.</given-names></name></person-group><article-title>Neuro-controller design for nonlinear fighter aircraft maneuver using fully tuned RBF networks</article-title><source>Automatica</source><year>2001</year><volume>37</volume><fpage>1293</fpage><lpage>1301</lpage><pub-id pub-id-type="doi">10.1016/S0005-1098(01)00090-5</pub-id></citation></ref>
<ref id="b24-sensors-12-05328"><label>24.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Huang</surname><given-names>S.N.</given-names></name><name><surname>Tan</surname><given-names>K.K.</given-names></name><name><surname>Lee</surname><given-names>T.H.</given-names></name></person-group><article-title>Adaptive motion control using neural network approximations</article-title><source>Automatica</source><year>2002</year><volume>38</volume><fpage>227</fpage><lpage>233</lpage><pub-id pub-id-type="doi">10.1016/S0005-1098(01)00192-3</pub-id></citation></ref>
<ref id="b25-sensors-12-05328"><label>25.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ye</surname><given-names>J.</given-names></name></person-group><article-title>Adaptive control of nonlinear PID-based analog neural networks for a nonholonomic mobile robot</article-title><source>Neurocomputing</source><year>2008</year><volume>71</volume><fpage>1561</fpage><lpage>1565</lpage><pub-id pub-id-type="doi">10.1016/j.neucom.2007.04.014</pub-id></citation></ref>
<ref id="b26-sensors-12-05328"><label>26.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Takakura</surname><given-names>T.</given-names></name></person-group><source>Climate under Cover: Digital Dynamic Simulation in Plant Bio-Engineering</source><publisher-name>Kluwer Academic Publishers</publisher-name><publisher-loc>Dordrecht, The Netherlands</publisher-loc><year>1993</year><fpage>155</fpage></citation></ref>
<ref id="b27-sensors-12-05328"><label>27.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Ferreira</surname><given-names>P.M.</given-names></name><name><surname>Ruano</surname><given-names>A.E.</given-names></name></person-group><article-title>Choice of RBF Model Structure for Predicting Greenhouse inside Air Temperature</article-title><conf-name>Proceedings of the 15th Triennial World Congress</conf-name><conf-loc>Barcelona, Spain</conf-loc><conf-date>21–26 July 2002</conf-date><fpage>823</fpage><lpage>829</lpage></citation></ref>
<ref id="b28-sensors-12-05328"><label>28.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Hu</surname><given-names>H.G.</given-names></name><name><surname>Xu</surname><given-names>L.H.</given-names></name><name><surname>Wei</surname><given-names>R.H.</given-names></name></person-group><article-title>Nonlinear Adaptive Neuro-PID Controller Design for Greenhouse Environment Based on RBF Network</article-title><conf-name>Proceedings of the 2010 International Joint Conference on Neural Networks</conf-name><conf-loc>Barcelona, Spain</conf-loc><conf-date>18–23 July 2010</conf-date><fpage>1</fpage><lpage>7</lpage></citation></ref>
<ref id="b29-sensors-12-05328"><label>29.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Zhang</surname><given-names>M.G.</given-names></name><name><surname>Wang</surname><given-names>X.G.</given-names></name><name><surname>Liu</surname><given-names>M.Q.</given-names></name></person-group><article-title>Adaptive PID Control Based on RBF Neural Network Identification</article-title><conf-name>Proceedings of the IEEE International Conference on Tools with Artificial Intelligence (ICTAI '05)</conf-name><conf-loc>Hong Kong, China</conf-loc><conf-date>14–16 November 2005</conf-date><fpage>681</fpage><lpage>683</lpage></citation></ref>
<ref id="b30-sensors-12-05328"><label>30.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Liu</surname><given-names>Z.G.</given-names></name><name><surname>Wang</surname><given-names>J.Z.</given-names></name></person-group><article-title>RBF-Neural Network Adaptive PID Control for 3-Axis Stabilized Tracking System</article-title><conf-name>Proceedings of the 6th International Conference on Hybrid Intelligent Systems (HIS '06)</conf-name><conf-loc>Auckland, New Zealand</conf-loc><conf-date>13–15 December 2006</conf-date><fpage>67</fpage><lpage>70</lpage></citation></ref>
<ref id="b31-sensors-12-05328"><label>31.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Cheng</surname><given-names>L.</given-names></name><name><surname>Zhang</surname><given-names>G.</given-names></name><name><surname>Wan</surname><given-names>B.</given-names></name><name><surname>Hao</surname><given-names>L.</given-names></name><name><surname>Qi</surname><given-names>H.</given-names></name><name><surname>Ming</surname><given-names>D.</given-names></name></person-group><article-title>Radial Basis Function Neural Network-Based PID Model for Functional Electrical Stimulation System Control</article-title><conf-name>Proceedings of the 31st Annual International Conference of the IEEE EMBS Minneapolis</conf-name><conf-loc>Minneapolis, MN, USA</conf-loc><conf-date>2–6 September 2009</conf-date><fpage>3481</fpage><lpage>3484</lpage></citation></ref>
<ref id="b32-sensors-12-05328"><label>32.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Nielsen</surname><given-names>B.</given-names></name><name><surname>Madsen</surname><given-names>H.</given-names></name></person-group><article-title>Identification of a linear continuous time stochastic model of the heat dynamic of a greenhouse</article-title><source>J. Agric. Eng. Res</source><year>1998</year><volume>71</volume><fpage>249</fpage><lpage>256</lpage><pub-id pub-id-type="doi">10.1006/jaer.1998.0322</pub-id></citation></ref>
<ref id="b33-sensors-12-05328"><label>33.</label><citation citation-type="thesis"><person-group person-group-type="author"><name><surname>Tap</surname><given-names>R.F.</given-names></name></person-group><article-title>Economics-Based Optimal Control of Greenhouse Tomato Crop Production</article-title><source>Ph.D. Thesis</source><publisher-name>Wageningen University</publisher-name><publisher-loc>Wageningen, The Netherlands</publisher-loc><year>2000</year></citation></ref>
<ref id="b34-sensors-12-05328"><label>34.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ghosal</surname><given-names>M.K.</given-names></name><name><surname>Tiwari</surname><given-names>G.N.</given-names></name><name><surname>Srivastava</surname><given-names>N.S.L.</given-names></name></person-group><article-title>Modeling and experimental validation of a greenhouse with evaporative cooling by moving water film over external shade cloth</article-title><source>Energy Build</source><year>2003</year><volume>35</volume><fpage>843</fpage><lpage>850</lpage><pub-id pub-id-type="doi">10.1016/S0378-7788(02)00242-6</pub-id></citation></ref>
<ref id="b35-sensors-12-05328"><label>35.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Javier</surname><given-names>L.I.</given-names></name></person-group><article-title>Modeling of the Climate for a Greenhouse in the North-East of México</article-title><conf-name>Proceedings of the 17th World Congress of the International Federation of Automatic Control</conf-name><conf-loc>Seoul, Korea</conf-loc><conf-date>6–11 July 2008</conf-date><fpage>9558</fpage><lpage>9563</lpage></citation></ref>
<ref id="b36-sensors-12-05328"><label>36.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Fourati</surname><given-names>F.</given-names></name><name><surname>Chtourou</surname><given-names>M.</given-names></name></person-group><article-title>A greenhouse control with feed-forward and recurrent neural networks</article-title><source>Simul. Model. Pract. Theory</source><year>2007</year><volume>15</volume><fpage>1016</fpage><lpage>1028</lpage><pub-id pub-id-type="doi">10.1016/j.simpat.2007.06.001</pub-id></citation></ref>
<ref id="b37-sensors-12-05328"><label>37.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Trejo-Perea</surname><given-names>M.</given-names></name><name><surname>Herrera-Ruiz</surname><given-names>G.</given-names></name><name><surname>Rios-Moreno</surname><given-names>J.</given-names></name><name><surname>Miranda</surname><given-names>R.C.</given-names></name><name><surname>Rivas-Araiza</surname><given-names>E.</given-names></name></person-group><article-title>Greenhouse energy consumption prediction using neural networks models</article-title><source>Int. J. Agric. Biol</source><year>2009</year><volume>11</volume><fpage>1</fpage><lpage>6</lpage></citation></ref>
<ref id="b38-sensors-12-05328"><label>38.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>He</surname><given-names>F.</given-names></name><name><surname>Ma</surname><given-names>C.</given-names></name></person-group><article-title>Modeling greenhouse air humidity by means of artificial neural network and principal component analysis</article-title><source>Comput. Electron. Agric</source><year>2010</year><volume>71</volume><fpage>S19</fpage><lpage>S23</lpage><pub-id pub-id-type="doi">10.1016/j.compag.2009.07.011</pub-id></citation></ref>
<ref id="b39-sensors-12-05328"><label>39.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Cunha</surname><given-names>J.B.</given-names></name></person-group><article-title>Greenhouse Climate Models: An Overview</article-title><conf-name>Proceedings of the EFITA 2003 Conference</conf-name><conf-loc>Debrecen, Hungary</conf-loc><conf-date>5–9 July 2003</conf-date><fpage>823</fpage><lpage>829</lpage></citation></ref>
<ref id="b40-sensors-12-05328"><label>40.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Sigrimis</surname><given-names>N.</given-names></name><name><surname>Arvanitis</surname><given-names>K.G.</given-names></name><name><surname>Ferentinos</surname><given-names>K.P.</given-names></name><name><surname>Anastasiou</surname><given-names>A.</given-names></name></person-group><article-title>An Intelligent Noninteracting Technique for Climate Control of Greenhouses</article-title><conf-name>Proceedings of the 15th Triennial World Congress</conf-name><conf-loc>Barcelona, Spain</conf-loc><conf-date>21–26 July 2002</conf-date></citation></ref>
<ref id="b41-sensors-12-05328"><label>41.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Koutb</surname><given-names>M.A.</given-names></name><name><surname>El-Rabaie</surname><given-names>N.M.</given-names></name><name><surname>Awad</surname><given-names>H.A.</given-names></name><name><surname>Abd El-Hamid</surname><given-names>I.A.</given-names></name></person-group><article-title>Environmental Control for Plants Using Intelligent Control Systems</article-title><conf-name>Proceedings of the 5th International Workshop on Artificial Intelligence in Agriculture (AIA '04, IFAC)</conf-name><conf-loc>Cairo, Egypt</conf-loc><conf-date>March 2004</conf-date><fpage>101</fpage><lpage>106</lpage></citation></ref>
<ref id="b42-sensors-12-05328"><label>42.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Albright</surname><given-names>L.D.</given-names></name><name><surname>Gates</surname><given-names>R.S.</given-names></name><name><surname>Arvanities</surname><given-names>K.G.</given-names></name><name><surname>Drysdale</surname><given-names>A.E.</given-names></name></person-group><article-title>Environmental control for plants on earth and in space</article-title><source>IEEE Control Syst. Mag</source><year>2001</year><volume>21</volume><fpage>28</fpage><lpage>47</lpage></citation></ref>
<ref id="b43-sensors-12-05328"><label>43.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Moody</surname><given-names>J.</given-names></name><name><surname>Darken</surname><given-names>C.J.</given-names></name></person-group><article-title>Fast learning in networks of locally tuned processing units</article-title><source>Neural Comput</source><year>1989</year><volume>1</volume><fpage>281</fpage><lpage>289</lpage><pub-id pub-id-type="doi">10.1162/neco.1989.1.2.281</pub-id></citation></ref>
<ref id="b44-sensors-12-05328"><label>44.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Park</surname><given-names>J.</given-names></name><name><surname>Sandberg</surname><given-names>I.W.</given-names></name></person-group><article-title>Universal approximation using radial-basis-function networks</article-title><source>Neural Comput</source><year>1991</year><volume>3</volume><fpage>246</fpage><lpage>257</lpage><pub-id pub-id-type="doi">10.1162/neco.1991.3.2.246</pub-id></citation></ref></ref-list>
<sec sec-type="display-objects">
<title>Figures and Tables</title>
<fig id="f1-sensors-12-05328" position="float">
<label>Figure 1.</label>
<caption>
<p>Greenhouse climate dynamic model.</p></caption>
<graphic xlink:href="sensors-12-05328f1.gif"/></fig>
<fig id="f2-sensors-12-05328" position="float">
<label>Figure 2.</label>
<caption>
<p>Architecture of a RBF network.</p></caption>
<graphic xlink:href="sensors-12-05328f2.gif"/></fig>
<fig id="f3-sensors-12-05328" position="float">
<label>Figure 3.</label>
<caption>
<p>Block diagram of Neuro-PID greenhouse climate control system.</p></caption>
<graphic xlink:href="sensors-12-05328f3.gif"/></fig>
<fig id="f4-sensors-12-05328" position="float">
<label>Figure 4.</label>
<caption>
<p>Process identification based on RBF network.</p></caption>
<graphic xlink:href="sensors-12-05328f4.gif"/></fig>
<fig id="f5-sensors-12-05328" position="float">
<label>Figure 5.</label>
<caption>
<p>Changes of outdoor climate.</p></caption>
<graphic xlink:href="sensors-12-05328f5.gif"/></fig>
<fig id="f6-sensors-12-05328" position="float">
<label>Figure 6.</label>
<caption>
<p>Neuro-PID controller tracking trajectory of square-wave for temperature and humidity ratio.</p></caption>
<graphic xlink:href="sensors-12-05328f6.gif"/></fig>
<fig id="f7-sensors-12-05328" position="float">
<label>Figure 7.</label>
<caption>
<p>Variation of Neuro-PID control errors during the tuning process.</p></caption>
<graphic xlink:href="sensors-12-05328f7.gif"/></fig>
<fig id="f8-sensors-12-05328" position="float">
<label>Figure 8.</label>
<caption>
<p>Variation of Neuro-PID control signals during the tuning process.</p></caption>
<graphic xlink:href="sensors-12-05328f8.gif"/></fig>
<fig id="f9-sensors-12-05328" position="float">
<label>Figure 9.</label>
<caption>
<p>Variation of the PID parameters for Controller I during the tuning process.</p></caption>
<graphic xlink:href="sensors-12-05328f9.gif"/></fig>
<fig id="f10-sensors-12-05328" position="float">
<label>Figure 10.</label>
<caption>
<p>Variation of the PID parameters for Controller II during the tuning process.</p></caption>
<graphic xlink:href="sensors-12-05328f9.gif"/></fig>
<fig id="f11-sensors-12-05328" position="float">
<label>Figure 11.</label>
<caption>
<p>Temperature and humidity matching conditions between the actual output and RBF network model output.</p></caption>
<graphic xlink:href="sensors-12-05328f11.gif"/></fig>
<fig id="f12-sensors-12-05328" position="float">
<label>Figure 12.</label>
<caption>
<p>Variation of the objective function value during the evolution process for GA optimization.</p></caption>
<graphic xlink:href="sensors-12-05328f12.gif"/></fig>
<fig id="f13-sensors-12-05328" position="float">
<label>Figure 13.</label>
<caption>
<p>Conventional PID controller tracking trajectory of square-wave for temperature and humidity ratio, <italic>K<sub>p</sub></italic><sub>1</sub> = 21.7780,<italic>K<sub>i</sub></italic><sub>1</sub> = 40.1346,<italic>K<sub>d</sub></italic><sub>1</sub> = 86.7532, <italic>K<sub>p</sub></italic><sub>2</sub> = 98.4024, <italic>K<sub>i</sub></italic><sub>2</sub> = 47.4968,<italic>K<sub>d</sub></italic><sub>2</sub> = 97.0353.</p></caption>
<graphic xlink:href="sensors-12-05328f13.gif"/></fig>
<fig id="f14-sensors-12-05328" position="float">
<label>Figure 14.</label>
<caption>
<p>Variation of conventional PID control errors during the tuning process.</p></caption>
<graphic xlink:href="sensors-12-05328f14.gif"/></fig>
<fig id="f15-sensors-12-05328" position="float">
<label>Figure 15.</label>
<caption>
<p>Variation of conventional PID control signals during the tuning process.</p></caption>
<graphic xlink:href="sensors-12-05328f15.gif"/></fig>
<table-wrap id="t1-sensors-12-05328" position="float">
<label>Table 1.</label>
<caption>
<p>Greenhouse model parameters.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="center" valign="top"><bold>Parameters name</bold></th>
<th align="center" valign="top"><bold>unit expression</bold></th>
<th align="center" valign="top"><bold>values</bold></th></tr></thead>
<tbody>
<tr>
<td align="center" valign="top"><bold><italic>U</italic></bold><italic>A</italic></td>
<td align="center" valign="top"><italic>kWK</italic><sup>−</sup><italic><sup>1</sup></italic></td>
<td align="center" valign="top">25</td></tr>
<tr>
<td align="center" valign="top">α</td>
<td align="center" valign="top"/>
<td align="center" valign="top">0.129524267</td></tr>
<tr>
<td align="center" valign="top"><italic>β<sub>T</sub></italic></td>
<td align="center" valign="top"><italic>kgmin<sup>−1</sup>m<sup>−2</sup></italic></td>
<td align="center" valign="top">0.015</td></tr>
<tr>
<td align="center" valign="top"><italic>V<sub>T</sub></italic></td>
<td align="center" valign="top"><italic>m<sup>3</sup></italic></td>
<td align="center" valign="top">0.65<italic>V</italic></td></tr>
<tr>
<td align="center" valign="top"><italic>V<sub>H</sub></italic></td>
<td align="center" valign="top"><italic>m<sup>3</sup></italic></td>
<td align="center" valign="top">0.65<italic>V</italic></td></tr>
<tr>
<td align="center" valign="top"><italic>λ</italic></td>
<td align="center" valign="top"><italic>Jg<sup>−1</sup></italic></td>
<td align="center" valign="top">2,257</td></tr>
<tr>
<td align="center" valign="top"><italic>ρ</italic></td>
<td align="center" valign="top"><italic>kg</italic>[air]<italic>m</italic><sup>−3</sup></td>
<td align="center" valign="top">1.2</td></tr>
<tr>
<td align="center" valign="top"><italic>C<sub>p</sub></italic></td>
<td align="center" valign="top"><italic>Jkg<sup>−1</sup>K<sup>−1</sup></italic></td>
<td align="center" valign="top">1,006</td></tr></tbody></table></table-wrap>
<table-wrap id="t2-sensors-12-05328" position="float">
<label>Table 2.</label>
<caption>
<p>Parameters of GA optimization.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="top"><bold>Description</bold></th>
<th align="center" valign="top"><bold>values <italic>or</italic> types</bold></th></tr></thead>
<tbody>
<tr>
<td align="left" valign="top">Population size</td>
<td align="center" valign="top">60</td></tr>
<tr>
<td align="left" valign="top">Number of generations</td>
<td align="center" valign="top">50</td></tr>
<tr>
<td align="left" valign="top">Bit length of the considered chromosome</td>
<td align="center" valign="top">20</td></tr>
<tr>
<td align="left" valign="top">Crossover type</td>
<td align="center" valign="top">Single point crossover</td></tr>
<tr>
<td align="left" valign="top">Crossover probability</td>
<td align="center" valign="top">0.6</td></tr>
<tr>
<td align="left" valign="top">Mutation type</td>
<td align="center" valign="top">Uniform mutation</td></tr>
<tr>
<td align="left" valign="top">Mutation probability</td>
<td align="center" valign="top">0.001</td></tr></tbody></table></table-wrap>
<table-wrap id="t3-sensors-12-05328" position="float">
<label>Table 3.</label>
<caption>
<p>Performance Comparison between RBF online tuning and GA offline optimization.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="top" rowspan="3"><bold>Methods</bold></th>
<th colspan="2" align="center" valign="top"><bold>Temperature error (°C)</bold></th>
<th colspan="2" align="center" valign="top"><bold>Humidity error Mean (<italic>g</italic>[<italic>H</italic><sub>2</sub><italic>O</italic>]<italic>min<sup>-</sup></italic><sup>1</sup><italic>m<sup>-</sup></italic><sup>3</sup>)</bold></th></tr>
<tr>
<th valign="bottom" colspan="2">
<hr/></th>
<th valign="bottom" colspan="2">
<hr/></th></tr>
<tr>
<th align="center" valign="top"><bold>Mean</bold></th>
<th align="center" valign="top"><bold>STD</bold></th>
<th align="center" valign="top"><bold>Mean</bold></th>
<th align="center" valign="top"><bold>STD</bold></th></tr></thead>
<tbody>
<tr>
<td align="left" valign="top">RBF online tuning</td>
<td align="center" valign="top">−0.9123</td>
<td align="center" valign="top">2.8812</td>
<td align="center" valign="top">0.3660</td>
<td align="center" valign="top">1.3550</td></tr>
<tr>
<td align="left" valign="top">GA offline optimization</td>
<td align="center" valign="top">−0.5870</td>
<td align="center" valign="top">2.7252</td>
<td align="center" valign="top">0.1765</td>
<td align="center" valign="top">1.2785</td></tr></tbody></table></table-wrap></sec></back></article>
