<?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/s110605792</article-id>
<article-id pub-id-type="publisher-id">sensors-11-05792</article-id>
<article-categories>
<subj-group>
<subject>Article</subject></subj-group></article-categories>
<title-group>
<article-title>Multi-Objective Control Optimization for Greenhouse Environment Using Evolutionary Algorithms</article-title></title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Hu</surname><given-names>Haigen</given-names></name><xref ref-type="aff" rid="af1-sensors-11-05792"><sup>1</sup></xref><xref ref-type="aff" rid="af2-sensors-11-05792"><sup>2</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Xu</surname><given-names>Lihong</given-names></name><xref ref-type="aff" rid="af2-sensors-11-05792"><sup>2</sup></xref><xref ref-type="corresp" rid="c1-sensors-11-05792">⋆</xref></contrib>
<contrib contrib-type="author">
<name><surname>Wei</surname><given-names>Ruihua</given-names></name><xref ref-type="aff" rid="af2-sensors-11-05792"><sup>2</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Zhu</surname><given-names>Bingkun</given-names></name><xref ref-type="aff" rid="af2-sensors-11-05792"><sup>2</sup></xref></contrib></contrib-group>
<aff id="af1-sensors-11-05792">
<label>1</label> School of Information Engineering, Zhejiang Agriculture &amp; Forestry University, Lin’an City 311300, Zhejiang Province, China; E-Mail: <email>hnhhg@163.com</email></aff>
<aff id="af2-sensors-11-05792">
<label>2</label> Department of Control Science and Engineering, Tongji University, Shanghai 200092, China; E-Mails: <email>laurrywei@sina.com</email> (R.W.); <email>zhu1981_2001@yahoo.com.cn</email> (B.Z.)</aff>
<author-notes>
<corresp id="c1-sensors-11-05792">
<label>⋆</label>Author to whom correspondence should be addressed; E-Mails: <email>xulihong@ymail.com</email>; <email>xulhk@163.com</email>; Tel.: +86-21-6598-0149; Fax: +86-21-6598-0590.</corresp></author-notes>
<pub-date pub-type="collection">
<year>2011</year></pub-date>
<pub-date pub-type="epub">
<day>27</day>
<month>5</month>
<year>2011</year></pub-date>
<volume>11</volume>
<issue>6</issue>
<fpage>5792</fpage>
<lpage>5807</lpage>
<history>
<date date-type="received">
<day>26</day>
<month>3</month>
<year>2011</year></date>
<date date-type="rev-recd">
<day>18</day>
<month>5</month>
<year>2011</year></date>
<date date-type="accepted">
<day>20</day>
<month>5</month>
<year>2011</year></date></history>
<permissions>
<copyright-statement>© 2011 by the authors; licensee MDPI, Basel, Switzerland.</copyright-statement>
<copyright-year>2011</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 investigates the issue of tuning the Proportional Integral and Derivative (PID) controller parameters for a greenhouse climate control system using an Evolutionary Algorithm (EA) based on multiple performance measures such as good static-dynamic performance specifications and the smooth process of control. A model of nonlinear thermodynamic laws between numerous system variables affecting the greenhouse climate is formulated. The proposed tuning scheme is tested for greenhouse climate control by minimizing the integrated time square error (ITSE) and the control increment or rate in a simulation experiment. The results show that by tuning the gain parameters the controllers can achieve good control performance through step responses such as small overshoot, fast settling time, and less rise time and steady state error. Besides, it can be applied to tuning the system with different properties, such as strong interactions among variables, nonlinearities and conflicting performance criteria. The results implicate that it is a quite effective and promising tuning method using multi-objective optimization algorithms in the complex greenhouse production.</p></abstract>
<kwd-group>
<kwd>greenhouse environment control</kwd>
<kwd>PID control</kwd>
<kwd>feedback control</kwd>
<kwd>multi-objective optimization</kwd>
<kwd>evolutionary algorithms</kwd>
<kwd>nonlinear systems</kwd></kwd-group></article-meta></front>
<body>
<sec sec-type="intro">
<label>1.</label>
<title>Introduction</title>
<p>The greenhouse environment control problem is to create a favorable environment for the crop in order to reach predetermined results for high yield, high quality and low costs. It is a very difficult control problem to implement in practice due to the complexity of the greenhouse environments. For example, they are highly nonlinear, strong coupled and Multi-Input Multi-Output (MIMO) systems, they present dynamic behaviors and they are largely perturbed by the outside weather (wind velocity, outside temperature and humidity, <italic>etc.</italic>) and also by many other practical constraints (actuators, moistening cycle, <italic>etc.</italic>). In recent years, various advanced control techniques and related strategies, such as predictive control [<xref ref-type="bibr" rid="b1-sensors-11-05792">1</xref>–<xref ref-type="bibr" rid="b3-sensors-11-05792">3</xref>], adaptive control [<xref ref-type="bibr" rid="b4-sensors-11-05792">4</xref>], nonlinear feedback control [<xref ref-type="bibr" rid="b5-sensors-11-05792">5</xref>], fuzzy control [<xref ref-type="bibr" rid="b6-sensors-11-05792">6</xref>–<xref ref-type="bibr" rid="b8-sensors-11-05792">8</xref>], robust control [<xref ref-type="bibr" rid="b9-sensors-11-05792">9</xref>], optimal control [<xref ref-type="bibr" rid="b10-sensors-11-05792">10</xref>,<xref ref-type="bibr" rid="b11-sensors-11-05792">11</xref>] and compatible control [<xref ref-type="bibr" rid="b12-sensors-11-05792">12</xref>] are widely proposed for different types of greenhouse environment control. These studies are important to real-world engineering application in greenhouse production. However, most of these approaches are either theoretically complex or difficult to implement in the actual greenhouse production, and the controller designs in the greenhouse engineering application mostly adopt the conventional proportional, integral, and derivative (PID) controllers owing to the simple architecture, easy implementation and excellent performance. Even so, they do not generally give an overall consideration of various properties, such as strong interactions among variables, nonlinearities, multiple constrains and conflicting objectives, that may exist in greenhouse climate control systems. Naturally, it is difficult for such controllers to achieve a satisfactory control effect, and the tuning of such controllers is still a challenge to process engineers and operators in the greenhouse production.</p>
<p>Furthermore, about 95% of the regulatory controllers of the process control, motor drives, automotive, fight control and instrumentation industries have PID structures. In spite of this widespread usage, the effectiveness is often limited owing to poor tuning, and tuning PID controllers efficiently is up to this time an interesting research. A lot of tuning methods have been presented in the extant literatures [<xref ref-type="bibr" rid="b13-sensors-11-05792">13</xref>–<xref ref-type="bibr" rid="b16-sensors-11-05792">16</xref>], which include designs based on guess-and-check (such as trial and error tuning method), linear control theory (such as Ziegler-Nichols (Z-N) and Cohen-Coon methods (C-C)), <italic>etc.</italic> Nevertheless, it is hard for these conventional tuning methods to achieve the desired performance of the controlled greenhouse because there is nearly no effective analytical way of finding the optimal set of gain parameters, and they are mostly based on linear models, which are usually adjusted around operating points. Empirical methods such as Z-N, which can be used for the tuning a simple problem, nearly fail to deal with the complex systems like greenhouse environment, owing to the lack of empirical data for a wide range of problems. Hence, new designs for tuning the PID parameters have to be explored to regulate the greenhouse environment.</p>
<p>Recently, an optimal tuning method of PID controller by employing Evolutionary Algorithms (EAs) has been proposed and successfully used in a wide range of plants. For example, Chang [<xref ref-type="bibr" rid="b13-sensors-11-05792">13</xref>] proposed a modified crossover formula in genetic algorithms (GAs) to determine PID controller gains for multivariable processes. Arruda <italic>et al.</italic> [<xref ref-type="bibr" rid="b14-sensors-11-05792">14</xref>] proposed an automatic tool to tune PID controllers in a MIMO process based on a Rank Niching Genetic Algorithm. The proposed scheme can be applied into a coupled MIMO process with several control loops, which are tuned in a unified way as a full MIMO controller. Herrero <italic>et al.</italic> [<xref ref-type="bibr" rid="b15-sensors-11-05792">15</xref>] proposed a tuning scheme for robust PID controllers by adopting a specific multi-objective evolutionary algorithm. The scheme considers parametric uncertainty and can deal with model uncertainty by using a robust identification method. Ayala <italic>et al.</italic> [<xref ref-type="bibr" rid="b16-sensors-11-05792">16</xref>] presented the design and the tuning of two PID controllers through Non-dominated Sorting Genetic Algorithm-II (NSGA-II) [<xref ref-type="bibr" rid="b17-sensors-11-05792">17</xref>]. It is simple but effective to implement the robust solutions providing a good reference tracking performance in closed loop. These works mentioned above have obtained a certain effect by taking different approaches to different characteristics of their respective problems.</p>
<p>The main objective of this work is to develop an intelligent tuning method for greenhouse climate control with two PID loops of a MIMO process, which is characterized by strong interactions among process variables, nonlinearities and conflicting performance criteria. The problem is stated as a multi-objective optimization problem where the two PID controllers are simultaneously tuned based on different and possibly conflicting specifications, such as good static-dynamic performance, as smooth control signals as possible. The populations are encoded the gain parameters and the corresponding objective (cost) functions or fitness functions are formulated based on the specifications of disturbances rejections, static-dynamic performance and smooth control.</p>
<p>The rest of the paper is organized as follows. Section 2 describes the considered greenhouse climate model and the corresponding nonlinear differential equations. In Section 3, the PID controller structure is proposed based on performance criteria. Section 4 describes the multi-objective evolutionary algorithm used in this work. The simulations and results are presented in Section 5. Finally, a conclusion and prospects are given in Section 6.</p></sec>
<sec>
<label>2.</label>
<title>Description and Problem Formulation</title>
<sec>
<label>2.1.</label>
<title>Greenhouse Climate Dynamic Model</title>
<p>The greenhouse environment is a complex dynamical system. Over the past decades, people have gained a considerable understanding of greenhouse climate dynamics, and many methods describing the dynamic process of greenhouse climate have been proposed. Traditionally, there are two different approaches to describe it; one is based on energy and mass flows equations describing the process [<xref ref-type="bibr" rid="b5-sensors-11-05792">5</xref>,<xref ref-type="bibr" rid="b18-sensors-11-05792">18</xref>–<xref ref-type="bibr" rid="b20-sensors-11-05792">20</xref>], and the other is based on the analysis of input-output data from the process by using a system identification approach [<xref ref-type="bibr" rid="b21-sensors-11-05792">21</xref>–<xref ref-type="bibr" rid="b23-sensors-11-05792">23</xref>]. This paper deals with the first method for inside air temperature and humidity of a greenhouse, and its physical model describes the flow and mass transfers generated by the differences in energy and mass content between the inside and outside air [<xref ref-type="bibr" rid="b24-sensors-11-05792">24</xref>]. Most of the analytic models on analysis and control of the environment inside greenhouses have been based on the following state space form:
<disp-formula>
<mml:math display="block">
<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>v</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula>where <italic>x</italic> are states variables like indoor temperature, humidity and carbon dioxide concentration, <italic>u</italic> are control inputs like energy input by the heating system, fogging systems, ventilation system and <italic>CO</italic><sub>2</sub> supply flux, <italic>v</italic> are external disturbances like solar radiation, outdoor temperature, humidity and wind speed, <italic>t</italic> denotes time, and <italic>f</italic>(·) is a nonlinear function.</p>
<p>In order to effectively validate the performance of the proposed algorithm below, the considered greenhouse analytic expression is based on the heating/cooling/ventilating model in this work, which can be obtained from many extant literatures [<xref ref-type="bibr" rid="b5-sensors-11-05792">5</xref>,<xref ref-type="bibr" rid="b18-sensors-11-05792">18</xref>]. It can be summarized in the functional block diagram given in <xref ref-type="fig" rid="f1-sensors-11-05792">Figure 1</xref>. Considering the associated high costs, <italic>CO</italic><sub>2</sub> supply systems do not have an extensive use, therefore the related variables are not taken into account in this work. To simplify the model, we consider only some primary disturbance variables, such as solar radiation, outside temperature and humidity. After normalizing the control variables, we consider the greenhouse dynamic model presented in [<xref ref-type="bibr" rid="b5-sensors-11-05792">5</xref>] by using the following differential equations:
<disp-formula id="FD1">
<label>(1)</label>
<mml:math display="block">
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mtext mathvariant="italic">dT</mml:mtext>
<mml:mtext mathvariant="italic">in</mml:mtext></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mtext mathvariant="italic">dt</mml:mtext></mml:mrow></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:mfrac>
<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:msup>
<mml:mi>λ</mml:mi>
<mml:mo>′</mml:mo></mml:msup>
<mml:msub>
<mml:mi>Q</mml:mi>
<mml:mrow>
<mml:mo>%</mml:mo>
<mml:mo>,</mml:mo>
<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:mo stretchy="false">(</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mo>,</mml:mo>
<mml:mo>%</mml:mo></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:msub>
<mml:mi>t</mml:mi>
<mml:mi>v</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:msub>
<mml:mi>C</mml:mi>
<mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:mfrac>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>·</mml:mo>
<mml:mo stretchy="false">[</mml:mo>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mtext mathvariant="italic">in</mml:mtext></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:mtext mathvariant="italic">out</mml:mtext></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:math></disp-formula>
<disp-formula id="FD2">
<label>(2)</label>
<mml:math display="block">
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mtext mathvariant="italic">dH</mml:mtext>
<mml:mtext mathvariant="italic">in</mml:mtext></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:mrow>
<mml:msub>
<mml:mi>Q</mml:mi>
<mml:mrow>
<mml:mo>%</mml:mo>
<mml:mo>,</mml:mo>
<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:mrow>
<mml:msup>
<mml:mi>V</mml:mi>
<mml:mo>′</mml:mo></mml:msup></mml:mfrac>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mi>α</mml:mi>
<mml:mo>′</mml:mo></mml:msup>
<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:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mo>,</mml:mo>
<mml:mo>%</mml:mo></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:msub>
<mml:mi>t</mml:mi>
<mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac>
<mml:mo>·</mml:mo>
<mml:mo stretchy="false">[</mml:mo>
<mml:msub>
<mml:mi>H</mml:mi>
<mml:mtext mathvariant="italic">in</mml:mtext></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:mtext mathvariant="italic">out</mml:mtext></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: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 ratios (<italic>g</italic>[<italic>H</italic><sub>2</sub><italic>O</italic>]<italic>kg<sup>−</sup></italic><sup>1</sup>[dry air]),</p></list-item>
<list-item>
<p><italic>U A</italic> is the heat transfer coefficient of enclosure(<italic>W K<sup>−</sup></italic><sup>1</sup>),</p></list-item>
<list-item>
<p><italic>C</italic><sub>0</sub> = <italic>ρC<sub>p</sub>V<sub>TH</sub></italic>, here <italic>ρ</italic> and <italic>C<sub>p</sub></italic> are the air density (1.2 <italic>kgm<sup>−</sup></italic><sup>3</sup>) and the specific heat of air (1,006 <italic>Jkg<sup>−</sup></italic><sup>1</sup><italic>K<sup>−</sup></italic><sup>1</sup>), respectively. <italic>V<sub>TH</sub></italic> is the actively mixing air volume of temperature and humidity. Generally speaking, <italic>V<sub>TH</sub></italic> is small as 60%–70% of the geometric volume <italic>V</italic> (<italic>m</italic><sup>3</sup>) of the greenhouse.</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>
<inline-formula>
<mml:math>
<mml:msup>
<mml:mi>λ</mml:mi>
<mml:mo>′</mml:mo></mml:msup>
<mml:mo>=</mml:mo>
<mml:mi>λ</mml:mi>
<mml:msubsup>
<mml:mi>Q</mml:mi>
<mml:mtext mathvariant="italic">fog</mml:mtext>
<mml:mtext mathvariant="italic">max</mml:mtext></mml:msubsup></mml:math></inline-formula>, here <italic>λ</italic> is the latent heat of vaporization (2257 <italic>Jg<sup>−</sup></italic><sup>1</sup>) and 
<inline-formula>
<mml:math>
<mml:msubsup>
<mml:mi>Q</mml:mi>
<mml:mtext mathvariant="italic">fog</mml:mtext>
<mml:mtext mathvariant="italic">max</mml:mtext></mml:msubsup></mml:math></inline-formula> is the maximum water capacity of fog system (<italic>gH</italic>2<italic>Os<sup>−</sup></italic><sup>1</sup>),</p></list-item>
<list-item>
<p><italic>α</italic>′ = <italic>α</italic>(<italic>λV<sub>H</sub></italic>)<italic><sup>−</sup></italic><sup>1</sup>, here <italic>α</italic> is scaling parameter, which is considered as constant over a short period due to its relatively low-frequency variation,</p></list-item>
<list-item>
<p>
<inline-formula>
<mml:math>
<mml:msup>
<mml:mi>V</mml:mi>
<mml:mo>′</mml:mo></mml:msup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mtext mathvariant="italic">TH</mml:mtext></mml:msub>
<mml:mo>/</mml:mo>
<mml:msubsup>
<mml:mi>Q</mml:mi>
<mml:mtext mathvariant="italic">fog</mml:mtext>
<mml:mtext mathvariant="italic">max</mml:mtext></mml:msubsup></mml:math></inline-formula>,</p></list-item>
<list-item>
<p><italic>t<sub>v</sub></italic> represents the time needed for one air change the sampling period.</p></list-item></list></p>
<p>The ventilation rate <italic>V<sub>R</sub></italic> is measured as a percentage of the maximum ventilation rate 
<inline-formula>
<mml:math>
<mml:msubsup>
<mml:mi>V</mml:mi>
<mml:mi>R</mml:mi>
<mml:mtext mathvariant="italic">max</mml:mtext></mml:msubsup></mml:math></inline-formula> (<italic>i.e.</italic>, 
<inline-formula>
<mml:math>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>R</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mo>,</mml:mo>
<mml:mo>%</mml:mo></mml:mrow></mml:msub>
<mml:msubsup>
<mml:mi>V</mml:mi>
<mml:mi>R</mml:mi>
<mml:mtext mathvariant="italic">max</mml:mtext></mml:msubsup></mml:math></inline-formula>); Similar to <italic>V<sub>R,</sub></italic><sub>%</sub>, we define <italic>Q</italic><sub>%</sub><italic><sub>,fog</sub></italic> as a percentage of the maximum capacity of the fog system 
<inline-formula>
<mml:math>
<mml:msubsup>
<mml:mi>Q</mml:mi>
<mml:mtext mathvariant="italic">fog</mml:mtext>
<mml:mtext mathvariant="italic">max</mml:mtext></mml:msubsup></mml:math></inline-formula>.</p></sec>
<sec>
<label>2.2.</label>
<title>Problem Formulation</title>
<p>The climate model provided above can be used in summer operation, and two variables have to be regulated, namely the indoor air temperature (<italic>T<sub>in</sub></italic>) and the humidity ratio (<italic>H<sub>in</sub></italic>), through the processes of ventilation (<italic>V<sub>R,</sub></italic><sub>%</sub>(<italic>t</italic>)) and fogging (<italic>Q</italic><sub>%</sub><italic><sub>,fog</sub></italic>(<italic>t</italic>)). The purposes of ventilation are to exhaust moist air and to replace it with outside fresh air, to regulate 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 systems also play a cooling role due to evaporative cooling. Moreover, fresh air must be continually ventilated into the greenhouse while warmed and humidified air is exhausted. When humidifying is occurred under sunny conditions, ventilation is necessary since the greenhouse would soon become a steam bath without providing fresh dry air.</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</italic><sub>2</sub>(<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</italic><sub>2</sub>(<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 ref-type="disp-formula" rid="FD1">Equations (1)</xref> and <xref ref-type="disp-formula" rid="FD2">(2)</xref> can alternatively be written in the following state-space form:
<disp-formula id="FD3">
<label>(3)</label>
<mml:math display="block">
<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:mo>−</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi> </mml:mi>
<mml:mi>A</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>0</mml:mn></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>t</mml:mi>
<mml:mi>v</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:msup>
<mml:mi>λ</mml:mi>
<mml:mo>′</mml:mo></mml:msup>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>0</mml:mn></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:msub>
<mml:mi>C</mml:mi>
<mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:mfrac>
<mml:msub>
<mml:mi>v</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> </mml:mi>
<mml:mi>A</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:mfrac>
<mml:msub>
<mml:mi>v</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>t</mml:mi>
<mml:mi>v</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>v</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:math></disp-formula>
<disp-formula id="FD4">
<label>(4)</label>
<mml:math display="block">
<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:mo>−</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>v</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:msup>
<mml:mi>V</mml:mi>
<mml:mo>′</mml:mo></mml:msup></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:msup>
<mml:mi>α</mml:mi>
<mml:mo>′</mml:mo></mml:msup>
<mml:msub>
<mml:mi>v</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>t</mml:mi>
<mml:mi>v</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>v</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:math></disp-formula></p>
<p>Owing to the complexity appearing as the cross-product terms between control and disturbance variables, <xref ref-type="disp-formula" rid="FD3">Equations (3)</xref> and <xref ref-type="disp-formula" rid="FD4">(4)</xref> are obviously coupled nonlinear equations, which cannot be put into the rather familiar form of an affine analytic nonlinear system.</p></sec></sec>
<sec>
<label>3.</label>
<title>PID Controller Structure</title>
<p>A typical structure of a PID controller involves three separate elements: the proportional, integral and derivative values. The proportional value determines the reaction to the current error, the integral value determines the reaction based on the sum of recent errors, and the derivative value determines the reaction based on the rate at which the error has been changing. The mathematical description of its control law is generally written in the ideal form in (5) or in the parallel form in (6)
<disp-formula id="FD5">
<label>(5)</label>
<mml:math display="block">
<mml:mi>u</mml:mi>
<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>K</mml:mi>
<mml:mi>p</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>e</mml:mi>
<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>T</mml:mi>
<mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mo>∫</mml:mo>
<mml:mn>0</mml:mn>
<mml:mi>t</mml:mi></mml:msubsup>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>τ</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mi>d</mml:mi>
<mml:mi>τ</mml:mi>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>d</mml:mi></mml:msub>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>e</mml:mi>
<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:mrow></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula>
<disp-formula id="FD6">
<label>(6)</label>
<mml:math display="block">
<mml:mi>u</mml:mi>
<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>K</mml:mi>
<mml:mi>p</mml:mi></mml:msub>
<mml:mi>e</mml:mi>
<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>K</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mrow>
<mml:msubsup>
<mml:mo>∫</mml:mo>
<mml:mn>0</mml:mn>
<mml:mi>t</mml:mi></mml:msubsup>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>τ</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mi>d</mml:mi>
<mml:mi>τ</mml:mi>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>d</mml:mi></mml:msub>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>e</mml:mi>
<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:mrow></mml:mrow></mml:math></disp-formula>where <italic>K<sub>p</sub></italic> is the proportional gain, <italic>T<sub>i</sub></italic> is the integral time constant, <italic>T<sub>d</sub></italic> is the derivative time constant, <italic>K<sub>i</sub></italic> = <italic>K<sub>p</sub>/T<sub>i</sub></italic> is the integral gain and <italic>K<sub>d</sub></italic> = <italic>K<sub>p</sub>T<sub>d</sub></italic> is the derivative gain. And <italic>e</italic>(<italic>t</italic>) is the current error signal, which is defined as
<disp-formula id="FD7">
<label>(7)</label>
<mml:math display="block">
<mml:mi>e</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</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>t</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>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula>where <italic>r</italic>(<italic>t</italic>) and <italic>y</italic>(<italic>t</italic>) are the reference signal and process output, respectively.</p>
<sec>
<label>3.1.</label>
<title>PID Controller for Greenhouse Climate System</title>
<p>Note that the greenhouse dynamic system mentioned above is a two-input and two-output continuous time nonlinear system. We consider a multi-variable PID control structure as shown in <xref ref-type="fig" rid="f2-sensors-11-05792">Figure 2</xref>. In order to simulate its behavior on a digital computer, we adopt a fourth-order Runge-Kutta method with a sufficiently small integration step, and we select the sampling time as a time step. Hence, considering a typical digital incremental PID control algorithm, the corresponding control law of each loop is given as:
<disp-formula id="FD8">
<label>(8)</label>
<mml:math display="block">
<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:mi>u</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:mo>+</mml:mo>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>p</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<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:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>i</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>d</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<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:mn>2</mml:mn>
<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: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>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula>where <italic>k</italic> is iterative step.</p></sec>
<sec>
<label>3.2.</label>
<title>Performance Criteria</title>
<p>Integral error is the most commonly used as a good measure for system performance. All kinds of such performance criteria, such as integrated absolute error (IAE), integrated square error (ISE), integrated time square error (ITSE) and integrated time absolute error (ITAE), are often employed in control system design. Killingsworth <italic>et al.</italic> [<xref ref-type="bibr" rid="b25-sensors-11-05792">25</xref>] have demonstrated that ITSE can produce superior closed loop performance such as smallest overshoot, fastest settling time and less time required to initially reach the set point. It can represent well output specifications in the time domain. Hence, we consider the ITSE as one of performance criteria in this work, which is given as
<disp-formula id="FD9">
<label>(9)</label>
<mml:math display="block">
<mml:mi>I</mml:mi>
<mml:mi>T</mml:mi>
<mml:mi>S</mml:mi>
<mml:mi>E</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mo>∫</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>∞</mml:mo></mml:msubsup>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi></mml:mrow></mml:mrow></mml:math></disp-formula></p>
<p>In addition, the performance criterion for one loop of MIMO process may be different from the other and some outputs may have the highest priority among the others. In this work, we only consider the same priority for the same class of performance criteria. Consequently, to be convenient for a digital simulation of the system, the performance index in (9) for the MIMO system in the greenhouse is rewritten as follows:
<disp-formula id="FD10">
<label>(10)</label>
<mml:math display="block">
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<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:mo>∞</mml:mo></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:msubsup>
<mml:mi>e</mml:mi>
<mml:mi>i</mml:mi>
<mml:mn>2</mml:mn></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></disp-formula>where <italic>i</italic> is the <italic>i<sup>th</sup></italic> close loop, <italic>t</italic>(<italic>k</italic>) represents the time of the <italic>k<sup>th</sup></italic> iterative.</p>
<p>Another aspect, the seriously oscillatory of control signals can do great damage to the actuators, and it is not acceptable in the design of controllers. Therefore, to avoid such case and perform a smoothing operation, we consider another performance index defined as
<disp-formula id="FD11">
<label>(11)</label>
<mml:math display="block">
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mn>2</mml:mn></mml:msub>
<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:mo>∞</mml:mo></mml:munderover>
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn></mml:mfrac>
<mml:mo>Δ</mml:mo>
<mml:msup>
<mml:mi>u</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<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:mo>∞</mml:mo></mml:munderover>
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn></mml:mfrac>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<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:mi>u</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:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mrow></mml:math></disp-formula></p>
<p>It is worthy to notice that minimizing the first performance index <italic>J</italic><sub>1</sub> will provide good static-dynamic performance and better disturbance rejection, while minimizing the second <italic>J</italic><sub>2</sub> will perform a smoothing operation and avoid the serious oscillating of the actuators.</p></sec></sec>
<sec>
<label>4.</label>
<title>Multi-Objective Evolutionary Algorithms</title>
<p>Evolutionary algorithms simulate the survival of the fittest in biological evolution by means of algorithms, and they are becoming increasingly valuable in solving real-world engineering problems. Compared with single-objective evolutionary algorithms, multi-objective techniques have many advantages, especially for the problem with multiple conflicting objectives. For example, they can search for a set of solutions with different trade-offs from a family of equivalent solutions, which are superior to other solutions and are considered equal from the perspective of simultaneous optimization of multiple competing objective functions. Such solutions are generally called non-inferior, non-dominated or Pareto optimal solutions.</p>
<p>The design of the controller usually need to satisfy multiple performance requirements such as good static-dynamic performance and smoothing control operation. However, it is almost impossible to attend the above requirements simultaneously. For instance, in many cases, seeking for some dynamic specifications usually causes the large variance of control law and the serious oscillating of the actuators. Consequently, a satisfactory tradeoff must be found and a set of optimal solutions must be provided by minimizing the performance index <italic>J</italic><sub>1</sub> and <italic>J</italic><sub>2</sub>. That is, <italic>J</italic><sub>1</sub> and <italic>J</italic><sub>2</sub> are taken as two objective (cost) functions or fitness functions for the optimization process.</p>
<p>Multi-objective optimization methods are used to obtain Pareto solutions for multiple conflicting objectives. Many algorithms, such as NSGA-II [<xref ref-type="bibr" rid="b17-sensors-11-05792">17</xref>], Strength Pareto Evolutionary Approach 2 (SPEA2) [<xref ref-type="bibr" rid="b26-sensors-11-05792">26</xref>] and the Pareto Archived Evolution Strategy (PAES) [<xref ref-type="bibr" rid="b27-sensors-11-05792">27</xref>], appear to be very promising ways to approximate Pareto fronts. Considering newly developed and versatile multi-objective evolutionary algorithms, we adopt NSGA-II to optimize the performance criteria in this work, because it is a computationally efficient algorithm implementing the idea of a selection method based on classes of dominance of all the solutions. Each individual <italic>ind</italic> in the evolutionary algorithm represents the gain parameters of PID controllers. Therefore, the 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><sub>1</sub>(<italic>ind</italic>, <italic>u</italic>), <italic>J</italic><sub>2</sub>(<italic>ind</italic>, <italic>u</italic>)</p></list-item>
<list-item>
<p>subject to <italic>a<sub>i</sub></italic> ≤ <italic>ind</italic>(<italic>i</italic>) ≤ <italic>b<sub>i</sub></italic>, <italic>c<sub>j</sub></italic> ≤ <italic>u<sub>j</sub></italic> ≤ <italic>d<sub>j</sub></italic></p></list-item>
<list-item>
<p>for <italic>i</italic> = 1,..., 6, <italic>j</italic> = 1, 2</p></list-item></list>where <italic>a<sub>i</sub></italic> and <italic>b<sub>i</sub></italic> are bound constraints of the gain parameters, which are chosen by trial and error simulation experiments. <italic>c<sub>j</sub></italic> and <italic>d<sub>j</sub></italic> are bound constraints of the control inputs.</p>
<p>The specifications in the time domain, such as overshoot, rise time, settling time and steady-state error, are incorporated into NSGA-II and are calculated at each iteration, just the same as the objective functions (<italic>i.e.</italic>, <italic>J</italic><sub>1</sub> and <italic>J</italic><sub>2</sub>) of the optimization process. When the obtained performance measures are infeasible during the process of step response, for example, there are not enough data to find rise time (<italic>t<sub>r</sub></italic>) and settling time (<italic>t<sub>s</sub></italic>), that is to say, the system is unstable, we formulate the penalty for the objective functions <italic>J</italic><sub>1</sub> and <italic>J</italic><sub>2</sub> as follows:
<disp-formula>
<mml:math display="block">
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mo>∞</mml:mo>
<mml:mo>,</mml:mo></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>if</mml:mtext>
<mml:mi> </mml:mi>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>s</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo>∞</mml:mo></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mo>|</mml:mo></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>r</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo>∞</mml:mo>
<mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo>,</mml:mo></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>otherwise</mml:mtext>
<mml:mo>,</mml:mo></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow/></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow/></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:math></disp-formula>
<disp-formula>
<mml:math display="block">
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mn>2</mml:mn></mml:msub>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mo>∞</mml:mo>
<mml:mo>,</mml:mo></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>if</mml:mtext>
<mml:mi> </mml:mi>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>s</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo>∞</mml:mo></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mo>|</mml:mo></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>r</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo>∞</mml:mo>
<mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mi>J</mml:mi>
<mml:mn>2</mml:mn></mml:msub>
<mml:mo>,</mml:mo></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>otherwise</mml:mtext>
<mml:mo>,</mml:mo></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow/></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow/></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:math></disp-formula>where the performance measures <italic>t<sub>r</sub></italic> and <italic>t<sub>s</sub></italic> are given with infinity, respectively, when they are not found. Therefore, the infeasible solutions are immediately discarded upon creation, and not considered further during evolution, owing to the infinity of objective functions. Conversely, there exist no influence on the normal situation.</p></sec>
<sec sec-type="results">
<label>5.</label>
<title>Simulations and Results</title>
<p>In the present section, a simulation experiment is presented to demonstrate the validity of the proposed method. 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 fogging system is 26 <italic>g</italic>[<italic>H</italic>2<italic>O</italic>]<italic>min<sup>−</sup></italic><sup>1</sup><italic>m<sup>−</sup></italic><sup>3</sup>. The maximum ventilation rate corresponds to 20 air changes per hour.</p>
<p>The active mixing air volume of the temperature and humidity is given as <italic>V<sub>TH</sub></italic> = 0.65 <italic>V</italic>. The greenhouse model parameters (shown in <xref ref-type="table" rid="t1-sensors-11-05792">Table 1</xref>) are presented by [<xref ref-type="bibr" rid="b5-sensors-11-05792">5</xref>] through identifying method, which are expressed per square meter (<italic>m</italic><sup>2</sup>) of greenhouse area. Moreover, the initial values of indoor air temperature and humidity ratio are 32 °C and 12 g[H2O]/kg[air], respectively. The set points of indoor air temperature and humidity ratio are 25 °C and 21 g[H2O]/kg[air](the corresponding relative humidity about 70%), respectively. The external disturbances are shown in <xref ref-type="fig" rid="f3-sensors-11-05792">Figure 3</xref>. We consider the real-coded NSGA-II for the optimization. The corresponding operators and parameters are shown in <xref ref-type="table" rid="t2-sensors-11-05792">Table 2</xref>. Simulations are performed under the environment of Matlab R2010a (version 7.10.0.499) and Microsoft Windows XP Professional SP2 OS. Computer used for these simulations is Intel(R) Core(TM)2 Duo CPU, 1.83 GHz, 2 GB of RAM.</p>
<p>Step signals are given for the inputs of controllers, and it takes about 11 minutes for each simulation. <xref ref-type="fig" rid="f4-sensors-11-05792">Figure 4</xref> shows the Pareto front of simulation results using NSGA-II, and the results indicate that the performance objectives are conflicting decision criteria with each other. As can be seen from the Figure, the value of the index <italic>J</italic><sub>2</sub> drops sharply as that of the index <italic>J</italic><sub>1</sub> increases on the left of point <italic>A</italic>, whereas the index <italic>J</italic><sub>2</sub> remains almost unchanged with the increase of the index <italic>J</italic><sub>1</sub> on the right of point <italic>B</italic>. It suggests the Pareto Front <italic>AB</italic> is the optimal desired region for most situations. Therefore, a satisfactory tradeoff may be found from the region, and Decision Maker (DM) can select the best final solution according to his or her preference.</p>
<p><xref ref-type="fig" rid="f5-sensors-11-05792">Figure 5</xref> shows the effectiveness of step responses with PID control at each individual. The top plot shows the response from 32 °C to 25 °C for the inside air temperature, and the curve distribution is centralized and it reveal similar responses for each individual of population. The bottom plot shows the humidity change from 12 <italic>k/kg</italic> to 21 <italic>k/kg</italic>, and the rising time and setting time of some responses are longer than others and it shows the different response characters. Besides, both figures show the steady-state error is very small and reveal that they have good steady state performance. Moreover, the tuning scheme can achieve very good control performance as a whole. The corresponding control signals are illustrated in <xref ref-type="fig" rid="f6-sensors-11-05792">Figure 6</xref>. There are hardly oscillating process and the control signals are smooth. To achieve the desired climatic condition, the fogging systems should operate at high power, while low power for ventilation systems in the initial stage of control process. Then, the fogging systems maintain low power to operate, while high power for ventilation systems.</p>
<p><xref ref-type="fig" rid="f7-sensors-11-05792">Figures 7</xref> and <xref ref-type="fig" rid="f8-sensors-11-05792">8</xref> show the distributions of PID gain parameters at each individual. From the results, the controller I has small derivative gain, or even it may be implemented by adopting PI loop under the most conditions, whereas the proportional gains are large for two control loops. Moreover, the gain parameters tend to the same value with the evolution process, which reveals evolution completely during optimization processes and can find the optimal gain parameters.</p>
<p>In order to demonstrate the effectiveness of the proposed tuning method, we consider other performance criteria such as overshoot, rise time, settling time and steady-state error. For simplification of analysis, a simple mean for the respective type performance criteria at each individual is implemented. <xref ref-type="table" rid="t3-sensors-11-05792">Table 3</xref> shows the maximum, minimum, mean and standard deviation of these specifications in the time domain. As can be seen, the maximum values of overshoot, rise time, settling time and steady state error are 3.6475%, 11.0482 minutes, 15.4252 minutes and 0.0285, respectively. Compared with other systems, the rise time and settling time are large, but the values are small enough for greenhouse production. It is worth notice that the values of minimum, mean and standard deviation are 0.0618%, 0.998% and 1.0429% in the column of overshoot, respectively. Nevertheless, there exist many curves without overshoot in the two responses of <xref ref-type="fig" rid="f5-sensors-11-05792">Figure 5</xref>, which implies that at least one of the two loops has overshoot. On the whole, these specifications shown in <xref ref-type="table" rid="t3-sensors-11-05792">Table 3</xref> reveal the system has good static-dynamic performance, and are completely acceptable for greenhouse climate control system.</p></sec>
<sec sec-type="conclusions">
<label>6.</label>
<title>Conclusions</title>
<p>PID controllers have been extensively used in the greenhouse production process owing to their simple architecture, easy implementation and excellent performance. However, the tuning of several controllers in the complex greenhouse environment is a challenge to process engineers and operators. Many controllers are poorly tuned in practice due to the complexity of the controlled greenhouse such as the dynamical behavior of greenhouse climate and control requirements, which present strong interactions among variables, non-linearities, multiple constrains and conflicting objectives.</p>
<p>This paper presented the tuning of two PID controllers through NSGA-II based on multiple performance measures such as good static-dynamic performance and smooth control signals. The proposed tuning scheme has been tested for greenhouse climate control by minimizing ITSE and control increment or rate in a simulation experiment. Results show the effectiveness and usability of the proposed method for step responses. The obtained gains are applied in PID controllers and can achieve good control performance such as small overshoot, fast settling time, and less rise time and steady state error.</p>
<p>The results suggest that the proposed tuning scheme using multi-objective optimization algorithms is a quite promising method and it presents the following features: (i) it can be applied in the cases that the empirical methods fail to be used; (ii) it can effectively solve the strong interactions among process variables; (iii) it can be applied into certain strong nonlinear control system including nonconvex problems due to adopting global optimization algorithms.</p>
<p>It should be noted that this study has only examined the analytic greenhouse model. We have to point out that it is not suitable using such an approach if an analytic model is not provided, because there is nearly no effective way to formulate the objective (cost) functions or fitness functions of evolutionary algorithms required. Besides, this approach is time-consuming and heavily dependent on the computation time. It is not suitable for an online real time control requirement. Not withstanding its limitation, this study does suggest that the online optimal operation for greenhouse production process will be further studies.</p>
<p>Certainly, the method is not limited to greenhouse applications, but could easily be extended to other applications, and we expect that it will become more widely used in the future for other types of systems and controllers.</p></sec></body>
<back>
<ack>
<p>The authors would like to express their appreciation to the referees for their helpful comments and suggestions, and we are very grateful to Kalyanmoy Deb for providing the source code for the NSGA-II on the <ext-link xlink:href="http://www.iitk.ac.in/kangal/codes.shtml" ext-link-type="uri">http://www.iitk.ac.in/kangal/codes.shtml</ext-link>. This work was supported by the National Natural Science Foundation of China under the Grant NO.60674070, the National High Technology Research and Development Program of China (863 Program) under the Grant NO.2008AA10Z227 and Key Projects in the National Science &amp; Technology Pillar Program during the Eleventh Five-Year Plan Period of P.R. China under the Grant NO.2008BADA6B01, and 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-11-05792"><label>1.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Coelho</surname><given-names>JP</given-names></name><name><surname>Moura Oliveira</surname><given-names>PB</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="b2-sensors-11-05792"><label>2.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Cunha</surname><given-names>JB</given-names></name><name><surname>Couto</surname><given-names>C</given-names></name><name><surname>Ruano</surname><given-names>AEB</given-names></name></person-group><article-title>A greenhouse climate multivariable predictive controller</article-title><source>ISHS Acta Hort</source><year>2000</year><volume>534</volume><fpage>269</fpage><lpage>276</lpage></citation></ref>
<ref id="b3-sensors-11-05792"><label>3.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Piñón</surname><given-names>S</given-names></name><name><surname>Camachoa</surname><given-names>EF</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="b4-sensors-11-05792"><label>4.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Arvanitis</surname><given-names>KG</given-names></name><name><surname>Paraskevopoulos</surname><given-names>PN</given-names></name><name><surname>Vernardos</surname><given-names>AA</given-names></name></person-group><article-title>Multirate adaptive temperature control of greenhouses</article-title><source>Comput. Electron. Agric</source><year>2000</year><volume>26</volume><fpage>303</fpage><lpage>320</lpage><pub-id pub-id-type="doi">10.1016/S0168-1699(00)00082-X</pub-id></citation></ref>
<ref id="b5-sensors-11-05792"><label>5.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Pasgianos</surname><given-names>GD</given-names></name><name><surname>Arvanitis</surname><given-names>KG</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="b6-sensors-11-05792"><label>6.</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>JF</given-names></name></person-group><article-title>Optimized fuzzy control of a greenhouse</article-title><source>Fuzzy Sets Syst</source><year>2002</year><volume>128</volume><fpage>47</fpage><lpage>59</lpage><pub-id pub-id-type="doi">10.1016/S0165-0114(01)00182-8</pub-id></citation></ref>
<ref id="b7-sensors-11-05792"><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>JF</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. Cognition</source><year>2004</year><volume>2</volume><fpage>21</fpage><lpage>47</lpage></citation></ref>
<ref id="b8-sensors-11-05792"><label>8.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Miranda</surname><given-names>RC</given-names></name><name><surname>Ventura-Ramos</surname><given-names>E</given-names></name><name><surname>Peniche-Vera</surname><given-names>RR</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-11-05792"><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-11-05792"><label>10.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Pohlheim</surname><given-names>H</given-names></name><name><surname>Heißner</surname><given-names>A</given-names></name></person-group><article-title>Optimal control of greenhouse climate using real-world weather data and evolutionary algorithms</article-title><conf-name>Proceedings of the Genetic and Evolutionary Computation Conference</conf-name><conf-loc>San Francisco, CA, USA</conf-loc><conf-date>13–17 July 1999</conf-date><fpage>1672</fpage><lpage>1677</lpage></citation></ref>
<ref id="b11-sensors-11-05792"><label>11.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Pucheta</surname><given-names>JA</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="b12-sensors-11-05792"><label>12.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hu</surname><given-names>HG</given-names></name><name><surname>Xu</surname><given-names>LH</given-names></name><name><surname>Zhu</surname><given-names>BK</given-names></name><name><surname>Wei</surname><given-names>RH</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="b13-sensors-11-05792"><label>13.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chang</surname><given-names>WD</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="b14-sensors-11-05792"><label>14.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Arruda</surname><given-names>LVR</given-names></name><name><surname>Swiech</surname><given-names>MCS</given-names></name><name><surname>Delgado</surname><given-names>MRB</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="b15-sensors-11-05792"><label>15.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Herrero</surname><given-names>JM</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>Sanchis</surname><given-names>J</given-names></name></person-group><article-title>Multiobjective tuning of robust PID controllers using evolutionary algorithms</article-title><source>Lect. Note Comput. Sci</source><year>2008</year><volume>4974</volume><fpage>515</fpage><lpage>524</lpage></citation></ref>
<ref id="b16-sensors-11-05792"><label>16.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hultmann Ayal</surname><given-names>Helon Vicente</given-names></name><name><surname>Coelho</surname><given-names>Leandro dos Santos</given-names></name></person-group><article-title>A multiobjective genetic algorithm applied to multivariable control optimization</article-title><source>ABCM Symp. Series Mechatron.</source><year>2008</year><volume>3</volume><fpage>736</fpage><lpage>745</lpage></citation></ref>
<ref id="b17-sensors-11-05792"><label>17.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Deb</surname><given-names>K</given-names></name><name><surname>Pratap</surname><given-names>A</given-names></name><name><surname>Agarwal</surname><given-names>S</given-names></name><name><surname>Meyarivan</surname><given-names>T</given-names></name></person-group><article-title>A fast and elitist multiobjective genetic algorithm: Nsga-ii</article-title><source>IEEE Trans. Evol. Computat</source><year>2002</year><volume>6</volume><fpage>182</fpage><lpage>197</lpage><pub-id pub-id-type="doi">10.1109/4235.996017</pub-id></citation></ref>
<ref id="b18-sensors-11-05792"><label>18.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Albright</surname><given-names>LD</given-names></name><name><surname>Gates</surname><given-names>RS</given-names></name><name><surname>Arvanitis</surname><given-names>KG</given-names></name><name><surname>Drysdale</surname><given-names>AE</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="b19-sensors-11-05792"><label>19.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ghosal</surname><given-names>MK</given-names></name><name><surname>Tiwari</surname><given-names>GN</given-names></name><name><surname>Srivastava</surname><given-names>NSL</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>Energ. Bldg</source><year>2003</year><volume>35</volume><fpage>843</fpage><lpage>850</lpage></citation></ref>
<ref id="b20-sensors-11-05792"><label>20.</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. Agr. 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="b21-sensors-11-05792"><label>21.</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="b22-sensors-11-05792"><label>22.</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>71S</volume><fpage>S19</fpage><lpage>S23</lpage></citation></ref>
<ref id="b23-sensors-11-05792"><label>23.</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>RC</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="b24-sensors-11-05792"><label>24.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Cunha</surname><given-names>JB</given-names></name></person-group><article-title>Greenhouse climate models: An overview</article-title><conf-name>Proceedings of 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="b25-sensors-11-05792"><label>25.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Killingsworth</surname><given-names>NJ</given-names></name><name><surname>Krstic</surname><given-names>M</given-names></name></person-group><article-title>PID tuning using extremum seeking</article-title><source>IEEE Control Syst. Mag</source><year>2006</year><volume>26</volume><fpage>70</fpage><lpage>79</lpage></citation></ref>
<ref id="b26-sensors-11-05792"><label>26.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Zitzler</surname><given-names>E</given-names></name><name><surname>Laumanns</surname><given-names>M</given-names></name><name><surname>Thiele</surname><given-names>L</given-names></name></person-group><source>Spea2: Improving the Strength Pareto Evolutionary Algorithm</source><comment>Technology Report</comment><publisher-name>Computer Engineering and Networks Laboratory (TIK): Department of Electrical Engineering, Swiss Federal Institute of Technology (ETH) Zurich</publisher-name><publisher-loc>Zurich, Switerland</publisher-loc><year>2001</year></citation></ref>
<ref id="b27-sensors-11-05792"><label>27.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Knowles</surname><given-names>JD</given-names></name><name><surname>Corne</surname><given-names>DW</given-names></name></person-group><article-title>Approximating the nondominated front using the pareto archived evolution strategy</article-title><source>Evol. Comput. J</source><year>2000</year><volume>8</volume><fpage>149</fpage><lpage>172</lpage><pub-id pub-id-type="doi">10.1162/106365600568167</pub-id></citation></ref></ref-list>
<sec sec-type="display-objects">
<title>Figures and Tables</title>
<fig id="f1-sensors-11-05792" position="float">
<label>Figure 1.</label>
<caption>
<p>Greenhouse climate dynamic model.</p></caption>
<graphic xlink:href="sensors-11-05792f1.gif"/></fig>
<fig id="f2-sensors-11-05792" position="float">
<label>Figure 2.</label>
<caption>
<p>The diagram of a greenhouse climate control system.</p></caption>
<graphic xlink:href="sensors-11-05792f2.gif"/></fig>
<fig id="f3-sensors-11-05792" position="float">
<label>Figure 3.</label>
<caption>
<p>Changes of outdoor air temperature, humidity ratio and solar radiation.</p></caption>
<graphic xlink:href="sensors-11-05792f3.gif"/></fig>
<fig id="f4-sensors-11-05792" position="float">
<label>Figure 4.</label>
<caption>
<p>Pareto Front of performance index <italic>J</italic><sub>1</sub> and <italic>J</italic><sub>2</sub>.</p></caption>
<graphic xlink:href="sensors-11-05792f4.gif"/></fig>
<fig id="f5-sensors-11-05792" position="float">
<label>Figure 5.</label>
<caption>
<p>Step responses with PID control at each individual.</p></caption>
<graphic xlink:href="sensors-11-05792f5.gif"/></fig>
<fig id="f6-sensors-11-05792" position="float">
<label>Figure 6.</label>
<caption>
<p>The corresponding control signals.</p></caption>
<graphic xlink:href="sensors-11-05792f6.gif"/></fig>
<fig id="f7-sensors-11-05792" position="float">
<label>Figure 7.</label>
<caption>
<p>PID gain parameters of 1<italic><sup>th</sup></italic> loop at each individual.</p></caption>
<graphic xlink:href="sensors-11-05792f7.gif"/></fig>
<fig id="f8-sensors-11-05792" position="float">
<label>Figure 8.</label>
<caption>
<p>PID gain parameters of 2<italic><sup>th</sup></italic> loop at each individual.</p></caption>
<graphic xlink:href="sensors-11-05792f8.gif"/></fig>
<table-wrap id="t1-sensors-11-05792" position="float">
<label>Table 1.</label>
<caption>
<p>Identified greenhouse model parameters.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="center" valign="middle">Parameters name</th>
<th align="center" valign="middle">unit expression</th>
<th align="center" valign="middle">values</th></tr></thead>
<tbody>
<tr>
<td align="center" valign="top"><italic>C</italic><sub>0</sub></td>
<td align="center" valign="top"><italic>minW°</italic>C<italic><sup>−1</sup></italic></td>
<td align="center" valign="top">−324.67</td></tr>
<tr>
<td align="center" valign="top"><italic>U A</italic></td>
<td align="center" valign="top"><italic>W°</italic>C<italic><sup>−1</sup></italic></td>
<td align="center" valign="top">29.81</td></tr>
<tr>
<td align="center" valign="top"><italic>t<sub>v</sub></italic></td>
<td align="center" valign="top"><italic>min</italic></td>
<td align="center" valign="top">3.41</td></tr>
<tr>
<td align="center" valign="top"><italic>λ</italic>′</td>
<td align="center" valign="top"><italic>W</italic></td>
<td align="center" valign="top">465</td></tr>
<tr>
<td align="center" valign="top"><italic>α</italic>′</td>
<td align="center" valign="top"><italic>gm<sup>−3</sup>min<sup>−1</sup>W<sup>−1</sup></italic></td>
<td align="center" valign="top">0.0033</td></tr>
<tr>
<td align="center" valign="top">1/<italic>V</italic>′</td>
<td align="center" valign="top"><italic>gm<sup>−3</sup>min<sup>−1</sup></italic></td>
<td align="center" valign="top">13.3</td></tr></tbody></table></table-wrap>
<table-wrap id="t2-sensors-11-05792" position="float">
<label>Table 2.</label>
<caption>
<p>Operators and parameters of real-coded NSGA-II.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="middle">Description</th>
<th align="center" valign="middle">values</th></tr></thead>
<tbody>
<tr>
<td align="left" valign="top">Population size</td>
<td align="center" valign="top">80</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">Probability of crossover of real variable</td>
<td align="center" valign="top">0.9</td></tr>
<tr>
<td align="left" valign="top">Probability of mutation of real variable</td>
<td align="center" valign="top">0.5</td></tr>
<tr>
<td align="left" valign="top">Distribution index for crossover</td>
<td align="center" valign="top">10</td></tr>
<tr>
<td align="left" valign="top">Distribution index for mutation</td>
<td align="center" valign="top">20</td></tr>
<tr>
<td align="left" valign="top">Lower limits of the gain parameters(<italic>i.e.</italic>, <italic>a<sub>i</sub></italic>)</td>
<td align="center" valign="top">[0, 0, 0, 0, 0, 0]</td></tr>
<tr>
<td align="left" valign="top">Upper limits of the gain parameters(<italic>i.e.</italic>, <italic>b<sub>i</sub></italic>)</td>
<td align="center" valign="top">[0.5,0.1,0.1,0.2,0.1,0.1]</td></tr>
<tr>
<td align="left" valign="top">Lower limits of the control inputs(<italic>i.e.</italic>, <italic>c<sub>j</sub></italic>)</td>
<td align="center" valign="top">[0, 0]</td></tr>
<tr>
<td align="left" valign="top">Upper limits of the control inputs(<italic>i.e.</italic>, <italic>d<sub>j</sub></italic>)</td>
<td align="center" valign="top">[1, 1]</td></tr>
<tr>
<td align="left" valign="top">Sampling time (min)</td>
<td align="center" valign="top">0.2</td></tr></tbody></table></table-wrap>
<table-wrap id="t3-sensors-11-05792" position="float">
<label>Table 3.</label>
<caption>
<p>The corresponding performance criteria (mean of two loops).</p></caption>
<table frame="hsides" rules="rows">
<thead>
<tr>
<th align="left" valign="middle">Performance criteria</th>
<th align="center" valign="middle" rowspan="2">Overshoot (%)</th>
<th align="center" valign="middle" rowspan="2">Rise time (min)</th>
<th align="center" valign="middle" rowspan="2">Settling time (min)</th>
<th align="center" valign="middle" rowspan="2">Steady-state error</th></tr>
<tr>
<th align="left" valign="middle">Description</th></tr></thead>
<tbody>
<tr>
<td align="center" valign="top">Maximum</td>
<td align="center" valign="top">3.6475</td>
<td align="center" valign="top">11.0482</td>
<td align="center" valign="top">15.4252</td>
<td align="center" valign="top">0.0285</td></tr>
<tr>
<td align="center" valign="top">Minimum</td>
<td align="center" valign="top">0.0618</td>
<td align="center" valign="top">3.2781</td>
<td align="center" valign="top">4.6522</td>
<td align="center" valign="top">0.0018</td></tr>
<tr>
<td align="center" valign="top">Mean</td>
<td align="center" valign="top">0.9980</td>
<td align="center" valign="top">5.2858</td>
<td align="center" valign="top">7.6943</td>
<td align="center" valign="top">0.0110</td></tr>
<tr>
<td align="center" valign="top">Standard deviation</td>
<td align="center" valign="top">1.0429</td>
<td align="center" valign="top">2.1129</td>
<td align="center" valign="top">2.9504</td>
<td align="center" valign="top">0.0054</td></tr></tbody></table></table-wrap></sec></back></article>
