Online self-organizing adaptive fuzzy controller: application to a nonlinear servo system Ana Bel´en Cara, Zs´ofia Lendek, Robert Babuˇska, H´ector Pomares and Ignacio Rojas
Abstract— This paper presents a self-organizing adaptive fuzzy controller that works online. No prior knowledge about the differential equations governing the plant nor offline training is needed. Starting from very simple topologies, the algorithm uses the data obtained online during the normal operation of the system to modify the structure of the fuzzy controller. This is achieved in two phases: first, the consequents of the current fuzzy rules are adapted; in the second phase, new membership functions are added online. To show its capabilities, a real experiment with a nonlinear servo system has been carried out with satisfactory results.
I. I NTRODUCTION In the last years, fuzzy controllers have been successfully applied to many control problems, because they need no accurate mathematical models of the system under control and allow for the application of human expert knowledge about the operation of such systems [1], [2], [3], [4], [5], [6], [7]. Furthermore, in [8] it was proven that fuzzy controllers are universal approximators in the sense that they are able to approximate any continuous function on a compact set to any desired accuracy. Depending on the knowledge available about the plant’s dynamics, there are different approaches to design fuzzy controllers. If full knowledge is available (i.e. the differential equations are known), it is possible to design adhoc fuzzy controllers, by setting all their parameters (inputs, membership functions, rules) in advance [9], [10]. When the knowledge about the plant is reduced, intelligent methods are required to automatically design the controller. When it is possible to make assumptions about the plant’s dynamics (e.g. certain bounds are known), techniques that compute the controller’s parameters offline [11] or online [2], [12], and also methods that modify the controller’s topology [13], [5], [14] can be used. The most challenging case is when it is not possible to make such assumptions. In this case, offline algorithms based on pretraining with I/O data [15], [3], [16], [17] and online methods for parameter adaptation (i.e. adaptation of the rule consequents and membership functions) [12], [4], [18] are availale. However, little has been written about the online adaptation of the structure of the fuzzy system when no prior knowledge about the plant is available [7]. Ana Bel´en Cara, H´ector Pomares and Ignacio Rojas are with the Department of Computer Architecture and Computer Technology, University of Granada, Periodista Saucedo Aranda s/n, 18071 Granada, Spain (phone: +34 958 240461; email:
[email protected];
[email protected];
[email protected]). Zs´ofia Lendek and Robert Babuˇska are with the Delft Center for Systems and Control, Delft University of Technology, 2628 CD Delft, The Netherlands (phone: +31 (0)15 27 88573; email:
[email protected];
[email protected]).
978-1-4244-8126-2/10/$26.00 ©2010 IEEE
In this paper we present a method for the online selforganization of the topology of a fuzzy controller, together with the adaptation of the rule consequents. The algorithm is based on the property of universal approximation of fuzzy controllers, which states that the proper addition of membership functions makes possible to reach a desired accuracy level for a functional approximation. To illustrate its capabilities, the proposed controller has been applied for gravity compensation in a nonlinear servo system. Both types of adaptation are performed while the plant is being controlled. II. O NLINE S ELF - ORGANIZING A DAPTIVE F UZZY C ONTROLLER From the mathematical point of view, the plant to be controlled may be expressed in terms of differential equations or difference equations, provided that these are obtained from the former using a short enough sampling period: y(k + 1) = f (y(k), ..., y(k − p), u(k), ..., u(k − q))
(1)
where y(k) is the plant output at time k, f is an unknown continuous and differentiable function, u is the control input and p and q are constants which determine the plant order. The restriction usually imposed to this type of plants is that they must be controllable [4], which means that there must never exist a state in which the plant output does not depend on the control input. Therefore, the partial derivative of the plant output with respect to the control input must be non zero for any input within the operation range. This means that the mentioned derivative must have a constant sign [13], [18]. The aim of the controller is to guarantee that the plant output tracks a given reference signal, r(k). Thus, in the absence of actuator bounds, we can assume that there exists a function F such that the control input given by u(k) = F (~x(k))
(2)
with ~x(k) = (r(k), y(k), ..., y(k − p), u(k − 1), ..., u(k − q), is capable of reaching the set point in the following instant: y(k + 1) = r(k). In order to approximate such function we employ a zero-order TSK fuzzy system with a complete set of rules that are defined as iN IF x1 is X1i1 AND x2 is X2i2 AND...xN is XN THEN u = Ri1 i2 ...iN
(3)
where Xviv ∈ {Xv1 , Xv2 , ..., Xvnv } are the membership functions of input Xv , nv is the number of membership functions for that variable and Ri1 i2 ...iN is a numerical value
representing the rule consequent. The selection of singleton consequents over general TS consequents serves to the aim of reducing the number of parameters to be adapted. Triangular membership functions (MF) [19] are used in this work. This way, only the center of each function needs to be stored, as the slopes of the triangles are computed according to the centers of the neighboring functions. Moreover, this configuration assures that for any input value within the input range, exactly two membership functions present a non-zero activation degree. This property greatly reduces the complexity of computations while, as the same time, guarantees that all the possible operating regions are covered by the firing of at least one fuzzy rule. Last, the inference method used is the product as T-norm, while the weighted average is chosen as the defuzzification strategy. Thus, the fuzzy controller’s output is given by: nr X
u(k) =Fˆ (~x(k); Θ) =
Ri · µi (~x(k))
i=1 nr X
A. First Phase: Consequent Adaptation µi (~x(k))
i=1 n1 X n2 X
...
nN X
Ri1 i2 ...iN ·
i =1 i2 =1 iN =1 = 1 n n 1 2 X X
...
i1 =1 i2 =1
N Y
im (xm (k)) µXm
m=1 nN Y N X
(4)
im (xm (k)) µXm
iN =1 m=1
where nr is the total number of fuzzy rules, µi is the im is the activation degree activation degree of rule i and µXm of membership function im of input Xm . It is important to highlight the output dependency not only on the input vector, but also on the parameters of the fuzzy system, Θ. These parameters are the set of rule consequents (Ri1 i2 ...iN ), the number of membership functions for each input (nv ) and the centers of the membership functions (θvj , where v denotes the input and j is the order of this MF within the set of membership functions, supposing that they are sorted in increasing center order). For the online self-organization and adaptation of the fuzzy controller, a two-phase algorithm is used. First, the consequents of the existing rules are adapted based on the plant output error. When the modification of the consequents does not provide a further improvement of the control performance, the algorithm switches to the second phase, in which the topology is modified. To do so, a new membership function is added to one of the input variables, hence new fuzzy rules are created. Then, the algorithm switches back to the first phase to adapt the new consequents. To measure the control performance and to decide whether switching to the second phase is needed or not, we use the mean square error (MSE) between the reference signal and the plant output [20]. This MSE is given by: M SE =
ns 1 X (r(k) − y(k + 1))2 ns k=1
where ns is the number of reference values that have been tracked. When the decreasing rate of the MSE is below a certain treshold, the improvement in the control performance is negligible and thus a topology change is needed to continue improving the control. The proposed algorithm starts from a very simple or even empty controller and does not need any information about the plant’s differential equations or their bounds. As it works online, the adaptation is performed continuously. However, it is important to keep a balance between the accuracy and the complexity of the fuzzy controller. Otherwise, the cost of managing very complex controllers would be higher than the benefit obtained. Therefore, to avoid an excessive increase in the controller’s complexity (i.e. number of fuzzy rules), we use a desired accuracy threshold. Once this is reached, no more membership functions are added. The following subsections describe the two mentioned phases.
(5)
To improve the control quality, a fuzzy controller has to “learn” what actions lead to the plant stabilization. In this phase of the algorithm, the learning is translated into the modification of the fuzzy rules consequents, so the control actions will provide better results. Gradient-descent techniques require the computation of the partial derivative of the plant output with respect to the control input (∂y/∂u). Since we assume that this derivative is unknown, these methods cannot be applied. Furthermore, if the sampling period is long, it may not be possible to approximate ∂y/∂u by ∆y/∆u. Nevertheless, as the plant must be controlable, its derivative has a definite constant sign. Hence we can use the information regarding the plant monotonicity with respect to the control input to obtain the right direction in which to move the rule consequents [4], [18]. Therefore, our adaptation process is based on the evaluation of the current state of the plant and the proposal of a correction (reward/penalty) for the rules responsible of reaching such a state. If the aforementioned monotonicity is positive (i.e. the plant’s output grows as the control input grows) and in time k + 1 the output obtained is larger than desired (y(k + 1) > r(k)), it means that the control input applied in time k should have been lower; likewise, if the obtained output is lower than desired (y(k + 1) < r(k)), then the control input should have been larger. An analogous reasoning is used for the case of negative monotonicity, only the directions of the movements need to be swapped. Since not all rules contributed to reaching the current state, we do not apply the same penalty to all them. Instead, only those rules which were triggered to obtain the control input u(k) are modified. In the same way, such a modification must be proportional to the degree of activation of the involved rules. Thus, the modification of the consequent of the i-th rule of the fuzzy controller is given by: ∆Ri (k) = C·µi (k−1)·ey (k) = C·µi (k−1)·(r(k−1)−y(k)) (6)
where µi (k − 1) is the activation degree of the i-th rule at instant k −1, r(k −1) is the set point at that time, y(k) is the current system output and C is a normalization constant with the same sign as the monotonicity of the plant with respect to u. The absolute value of C can be set offline as: |C| = ∆u/∆r
(7)
where ∆u is the range of the controller’s actuator and ∆r is the range in which the reference signal varies. They are both a priori known, since they are chosen by the user. It is important to note that the expression (6) uses the reference value at instant k − 1 instead of its current value. The reason for this is that rules activated at instant k − 1 served to reach the desired value r(k − 1) and not r(k). On the other hand, most real life controllers have limitations on their operation, which highly affect the control process. For instance, if the actuator is only able to operate within the range [umin , umax ] and at a given moment the optimal control input to reach the reference value is u(k) > umax , the input that will be finally applied to the plant will be umax , so it will not be possible to reach the desired set point at the next time step. However, we cannot apply any penalty to the rules, as they are already giving the best possible answer. To solve this inconvenience, no penalty is applied to rules because of the actuator’s limitations, according to: 0 if u(k − 1) = umin & ∆Ri (k) < 0 0 if u(k − 1) = umax & ∆Ri (k) > 0 ∆Ri (k) = ∆Ri (k) otherwise (8) The consequent adaptation process is performed online, while the controller is operating over the real plant, so control is applied from the first moment, with increasing accuracy as the adaptation evolves. Nevertheless, adapting the consequents is not enough to obtain high accuracy if the controller’s topology is not well chosen. The second phase of the algorithm tackles this issue. B. Second Phase: Topology Modification Although most of the adaptive fuzzy controllers proposed at present use fixed structures that are defined a priori [2], [12], chosing the proper topology is not a trivial task, in particular when the plant’s dynamics are unknown [4], [13]. Therefore, it is needed to have controllers able to design their own topologies. In order to tackle the problem of the self-organization of a fuzzy controller, information about all the plant operating regions is required. Furthermore, as the algorithm must work online, such information should be gathered during the controller’s normal operation. Most authors [7], [21] modify the controller’s structure with every new incoming training data, which makes the topology dependable on the sequence of control actions performed. To overcome this, we consider the full operating region to modify the controller’s topology; this way, the robustness of the method is increased.
The method proposed here exploits the fact that the very operation of the system provides input/output (I/O) data about the true inverse function of the plant to be controlled. Hence, if at the instant k a control input u(k) is applied to the process and this produces the plant output y(k+1), the output error is not the only information we have. Regardless whether y(k + 1) is the desired output or not, we know that if in the same state we find the reference value r(k 0 ) = y(k+1) again, the optimal control input will be precisely u(k). With the aim of using this information towards the self-organization of the fuzzy controller, we store the I/O data provided by the plant in a memory M . This information is later used to decide which input needs most a new membership function. The modification of the fuzzy structure involves three major steps: First, it is necessary to decide which input to the fuzzy controller will receive the new MF. Then, the location of the new membership function is chosen based on the analysis of the entire error distribution through the variable’s range. Finally, the parameters of the resulting fuzzy controller are initialized so that the controller’s performance will be minimally affected by the topology changes. These three steps are detailed next: 1) Selection of the Most Relevant Input Variable: The simplest way to modify the controller’s topology is by adding a new MF to every input variable [22]. However, the number of rules depends exponentially on the number of membership functions, so this option is not feasible from a practical point of view [13]. To overcome this problem, the new functions must be added to the variables which actually need them, i.e. the variable which is mostly responsible of the current approximation error [23]. In our case, we select this variable by analyzing the complete error surface reached by the current configuration, instead of considering only the point of maximum error which would lead to a method with high sensibility to noise [13]. The main idea is to analyze every variable separately to check its degree of responsibility on the current approximation error. To do so, we assume that all the other variables have an “infinite” number of membership functions, so the approximation in their corresponding dimension is perfect and only the variable under analysis is responsible for the approximation error. This allows us to compare the responsibility of all the input variables and choose the one with the highest degree. The resulting algorithm is presented next: 1) For each input xv : a) Assign a large number of MF (N∆ ) to each of the input variables, except for xv . This new fuzzy system produces an approximation FNv ∆ of the data stored in memory M . b) Compute the sum of square errors (SSEv ) for variable xv as X SSEv = (ˆ u(~xi ) − FNv ∆ (~xi ))2 (9) ~ xi ∈M
where ~xi is the i-th input vector stored in memory
M , and u ˆ(~xi ) is the output produced by that input. 2) Let SSEmax = max(SSEv ) be the index associated v to the input variable with the largest approximation error in the case of not receiving an additional MF. This is the selected variable. 2) Location of the New Membership Function: Once the input variable has been selected, it is necessary to determine the location of the new membership function. Intuitively, it might be thought that the best location for the new function is at a point where the error is largest; however, this would give the algorithm a high sensibility to noise [13]. In order to avoid this undesirable behavior, we take into account the full error distribution and place the new membership function at the gravity center of the mean square error distribution through the variable’s full range. With this aim, we divide the input variable range in small intervals of width ∆xi and compute the mean square error in each of them. The center of the new membership function is located at the position given by: X x∗i · e2 (∆xi ) X ∆xi = x∗i · e2N (∆xi ) (10) c∗i = X e2 (∆xi ) ∆xi ∆xi
x∗i
where is the central value of the interval ∆xi and e2N (∆xi ) is the normalized mean square error of all those data points whose component xi is within the range determined by ∆xi . The expression used to compute the mean square error is: X e2 (x1 , x2 , ..., xi , ..., xn ) e2 (∆xi ) =
xj ;j6=i xi ∈∆xi
X
(11) 1
xj ;j6=i xi ∈∆xi
where the denominator simply represents the number of data whose component xi is within the range ∆xi . 3) Initial Parameters for the New Fuzzy Controller: Since we are using a complete set of rules, every time a new MF N Y is added to an input xv , ni new fuzzy rules are created. i=1 i6=v
These new rules have the form iN IF x1 is X1i1 AND...AND xv is Xvjv AND...xN is XN THEN u = Ri1 i2 ...iv =jv ...iN (12)
where jv is the position of the new membership function in the list of ordered centers. Although it is possible to initialize the new consequents to any random value and let them be adapted by the algorithm, this would cause a sudden decrease on the control quality in the first moments after the topology modification. To avoid this situation, we initialize the new rules to values that guarantee minimum quality degradation.
To explain the changes applied to the parameters of the ˜ be the set of parameters before the new fuzzy controller, let Θ MF was added and Θ the new set of parameters. First, the changes applied to the centers of the membership functions are as follows. Note that membership functions belonging to the rest of variables are not affected by any changes: θvj =θ˜vj θj =θ˜j−1
if
j < jv
v
if
j > jv
=θ˜ij
if
i 6= v
v θij
(13)
Secondly, to prevent a severe damage on the controller’s performance, the rule consequents are readjusted so that the outline of the global function represented by the fuzzy system ˜ x. The is kept the same as before, i.e. Fˆ (~x; Θ) = Fˆ (~x; Θ)∀~ new rules are activated only when the input value for variable xv is within the range [θvjv −1 , θvjv +1 ], which is the partition created by the new MF. In the rest of cases, the same old consequents are used: ˜ i ,...,i ,...,i Ri1 ,...,iv ,...,iN =R 1 v N ˜ i ,...,i ,...,i Ri ,...,i ,...,i =R 1
v
N
1
v−1
N
if
iv < jv
if
iv > jv
(14)
For the new rules, we impose the condition that, at the point of maximum activation of the rule, the consequent equals the output produced by the system under its previous configuration for the same input. As the maximum activation degree is reached when all the inputs are located at the centers of the membership functions of the antecedent, we have that: ˜ Ri1 ,...,iv =jv ,...,iN = Fˆ (~c; Θ)
(15)
iN ), with i1 = 1, ..., n1 , ..., where ~c = (θ1i1 , ..., θviv =jv , ..., θN iN = 1, ..., nN . Finally, the only change to be made to the number of membership functions is adding one to the variable to which the new function has been added, while the rest remain unchanged:
nv =˜ nv + 1 ni =˜ ni ∀i 6= v
(16)
The full methodology proposed is summarized in the flow chart shown in Figure 1. III. E XPERIMENTAL R ESULTS To illustrate the capabilities of the proposed method, the controller has been applied to the control of a nonlinear servo system. The experimetal setup consists in a DC motor with an extra weigth and is depicted in Figure 2. The control objective is to compensate the nonlinearities caused by the gravity term added by the extra weigth and to make the system track a desired trajectory given by the reference signal r. The proposed controller does not need any information about the differential equations that govern the plant. However, this information is summarized in the appendix for those readers who are interested in simulating the experiment.
EMPTY CONTROLLER
CONSEQUENTS ADAPTATION PHASE
∆Ri (k ) = C ⋅ µi (k − 1) ⋅ ey (k )
YES GLOBAL ERROR IMPROVED?
NO
SELF-ORGANIZATION PHASE
Fig. 2.
Experimental setup for the nonlinear servo system
SELECTION OF INPUT VARIABLE
r v max( SSEv ) = max ∑ (uˆ ( xi ) − FNv∆ ( xi )) 2 v v r xi∈M POSITION THE NEW MEMBERSHIP FUNCTION
∑x
* i
ci* =
e 2 (∆xi )
∆xi
∑ e2 (∆xi )
= ∑ xi* eN2 (∆xi ) ∆xi
∆xi
SET NEW FUZZY PARAMETERS
r % Ri1 ,...,iv =new,...,iN = Fˆ (c ; Θ ) r iv = new i1 c = (θ1 ,...,θ v ,...,θ NiN )
Fig. 1.
Flow chart of the proposed algorithm
For this experiment we have applied a fuzzy controller with three inputs: the reference value r, the current angle θ, ˙ with values ranging in [−π, π], and the angular velocity θ, [−π, π], and [−5, 5], respectively. Initially, two membership functions are assigned to each input, thus 8 fuzzy rules form the system. However, all the consequents are initialized to zero, so the situation is equivalent to having an empty controller. As the monotonicity of the plant with respect to the control signal u is positive, the constant C for the adaptation of the consequents is positive. According to (7), its value is set to C = 10. The sampling period is chosen as h = 0.05s. The reference signal is given by a reference model of random values in the
interval [−π, π], forming a 1000-iteration long pattern (i.e. 50-second long pattern). Once the pattern is exhausted, it is repeated from the beginning. The experiment has been carried out for 30 minutes. After every presentation of the pattern, the MSE is computed according to (5) and it is used to decide if a topology change is needed. Figures 3 and 4 compare the plant’s output with the desired reference signal along different moments of the execution. The solid line represents the desired trajectory, whereas the dotted line is the plant’s output. In Figure 3 it can be observed that there are oscillations at the beginning, due to the fact that all rules are null; i.e. the controller has no information about the plant. However, at the end of the experiment the controller has learnt the dynamics of the plant and the tracking is practically perfect (Figure 4). Figure 5 depicts the evolution of the mean square error during the execution and Figure 6 shows the detail of the evolution when the MSE reaches small values. After the first presentation of the reference pattern the MSE is 0.2677 and decreases to 0.0412 in the next cycle; this tendency continues during the whole execution (see Figure 6). On the other hand, the algorithm performs two topology changes, adding membership functions to the third input of ˙ The last two the fuzzy controller (the angular velocity θ). columns of Table I show the MSE right before making the topology change and right after this happens. In both cases, the effect of the change is immediate, but the adaptation of the new consequents is also necessary to increase it. For instance, the first topology change makes the MSE decrease from 0.0035 to 0.0033, but thanks to the adaptation of the consequents it reaches the value 0.0026 before the second change happens. The evolution of the MSE at the time of the topology changes is also shown in Figure 6.
−3
4
8
r(k) y(k+1)
3
x 10
7 6
1
MSE
angle (rad)
2
0 −1
5 2x2x3
4
−2
−4 0 Fig. 3.
20
40 60 Time (s)
80
2
300
600 Fig. 6.
r(k) y(k+1)
2 angle (rad)
100
Reference tracking during the first 100 seconds
3
900 1200 Time (s)
1500
1800
Detail of the MSE evolution TABLE I T OPOLOGY C HANGES
Time (s)
Topology
MSE before the change
MSE after the change
1300
2x2x3
0.0035
0.0033
1750
2x2x4
0.0026
0.0024
1 0
Finally, Figure 7 shows the final distribution of membership functions assigned to the angular velocity.
−1
IV. C ONCLUSIONS
−2 −3 1700 Fig. 4.
1720
1740 1760 Time (s)
1780
1800
Reference tracking at the end of the experiment
0.25 0.2
MSE
2x2x4
3
−3
0.15 0.1 0.05 0
300
600
Fig. 5.
900 1200 Time (s) MSE evolution
1500
1800
In this work, we have proposed an online adaptive selforganizing fuzzy controller. Without any offline pretraining, this controller is capable to adapt both the rule consequents and the system topology online, based on I/O data obtained from the plant during the system’s normal operation. The controller is also able to determine which variables need more membership functions and where to locate such functions in order to improve the control performance. Its application to a nonlinear servo system in real time has shown its capability to control a system even when starting from a very simple structure. However, there are many issues that have to be treated in future work, for instance: • Self adaptation of all the parameters of the new membership functions, so the algorithm will be able to relocate them in the most convenient way through the entire process. • Automatic determination of the monotonicity of the plant with respect to the control signal, in the first iterations of the algorithm. • Automatic selection of values for the algorithm’s parameters, to provide self-adaptation to the algorithm. Among these, we must highlight the automatic adjustment of the ranges for input variables and the dynamic selection of parameter C in the adaptation of the consequents.
Degree of membership
MF2
MF1
1
MF3
TABLE II
MF4
DC M OTOR PARAMETERS Symbol
0.8 0.6 0.4 0.2
Parameter
Value
J
Moment of inertia of the rotor
1.91 · 10−4 kg · m2
b
Damping of the mechanical system
3 · 10−6 kg/s
K
Electromotive force constant
0.0536N m/A
R
Electric resistance
9.5Ω
m
Mass of the weight
0.055kg
l
Length center of disk-center of mass
0.042m
g
Gravity acceleration
9.81m/s2
0
R EFERENCES −5
−4
Fig. 7.
•
•
−3
−2
−1 0 1 2 Angular velocity
3
4
5
Membership functions assigned to the input θ˙
Addition of a rule prunning phase. In our propossal, MFs are added to the fuzzy controller, but never removed. In some cases, it may happen that a certain operating subregion stops being relevant (e.g. due to a change on the plant’s dynamics), so it could be interesting to eliminate the rules related to that area to keep the controller as simple as possible. Study of the stability of the process, applying results on stability of TS models with fixed structures. Also, a study on the computational performance of the proposed method could provide a better comprehension of its applicability. A PPENDIX
In this appendix we introduce the model for the nonlinear servo system used for the experimentation. As stated before, our algorithm does not require this information. Its inclusion here serves to the purpose of allowing the interested reader to simulate the experiment. The model of the nonlinear servo system is defined as: x˙ =f (x, u) = Ax + Bu + G 0 1 0 2 = x+ u− K 0 −KRJ−bR RJ
0 mgl sin(θ) J
(17)
T where x = θ θ˙ ∈ R2 is the state of the plant, given ˙ u is the control by the angle θ and the angular velocity θ, input, and G is the gravity term. The meaning and values of the parameters of the used DC motor are given in Table II. ACKNOWLEDGMENT This work was partially supported by the Spanish Junta de Andaluc´ıa, Consejer´ıa de Innovaci´on, Ciencia y Empresa, under Project of Excellence no. TIC02906.
[1] H. Ying, Fuzzy Control and Modeling: Analytical Foundations and Applications. Wiley-IEEE Press, 2000. [2] Y. Liu and Y. Zheng, “Adaptive robust fuzzy control for a class of uncertain chaotic systems,” Nonlinear Dynamics, vol. 57, no. 3, pp. 431–439, 2009. [3] C. H. Chen, C. J. Lin, and C. T. Lin, “Nonlinear system control using adaptive neural fuzzy networks based on a modified differential evolution,” IEEE Trans. Syst., Man, Cybern. C, vol. 39, no. 4, pp. 459–473, 2009. [4] I. Rojas, H. Pomares, J. Gonzalez, L. Herrera, A. Guillen, F. Rojas, and O. Valenzuela, “Adaptive fuzzy controller: Application to the control of the temperature of a dynamic room in real time,” Fuzzy Sets and Systems, vol. 157, no. 16, pp. 2241–2258, 2006. [5] J. Park, G. Park, S. Kim, and C. Moon, “Direct adaptive selfstructuring fuzzy controller for nonaffine nonlinear system,” Fuzzy Sets and Systems, vol. 153, no. 3, pp. 429–445, 2005. [6] Y. Gao and M. J. Er, “An intelligent adaptive control scheme for postsurgical blood pressure regulation,” IEEE Trans. Neural Netw., vol. 16, no. 2, pp. 475–483, 2005. [7] P. Angelov, “A fuzzy controller with evolving structure,” Information Sciences, vol. 161, no. 1-2, pp. 21–35, 2004. [8] J. Castro, “Fuzzy logic controllers are universal approximators,” IEEE Trans. Syst., Man, Cybern., vol. 25, no. 4, pp. 629–635, 1995. [9] S. Lalouni, D. Rekioua, T. Rekioua, and E. Matagne, “Fuzzy logic control of stand-alone photovoltaic system with battery storage,” Journal of Power Sources, vol. 193, no. 2, pp. 899–907, 2009. [10] M. Galluzzo and B. Cosenza, “Control of the biodegradation of mixed wastes in a continuous bioreactor by a type-2 fuzzy logic controller,” Computers & Chemical Engineering, vol. 33, no. 9, pp. 1475–1483, 2009. [11] M. Mucientes and J. Casillas, “Quick design of fuzzy controllers with good interpretability in mobile robotics,” IEEE Trans. Fuzzy Syst., vol. 15, no. 4, pp. 636–651, 2007. [12] W. Wang, Y. Chien, and I. Li, “An on-line robust and adaptive T-S fuzzy-neural controller for more general unknown systems,” International Journal of Fuzzy Systems, vol. 10, no. 1, pp. 33–43, 2008. [13] P. A. Phan and T. J. Gale, “Direct adaptive fuzzy control with a selfstructuring algorithm,” Fuzzy Sets and Systems, vol. 159, no. 8, pp. 871–899, 2008. [14] Y. Gao and M. J. Er, “Online adaptive fuzzy neural identification and control of a class of MIMO nonlinear systems,” IEEE Trans. Fuzzy Syst., vol. 11, no. 4, pp. 462–477, 2003. [15] H. Mingzhi, W. Jinquan, M. Yongwen, W. Yan, L. Weijiang, and S. Xiaofei, “Control rules of aeration in a submerged biofilm wastewater treatment process using fuzzy neural networks,” Expert Systems with Applications, vol. 36, no. 7, pp. 10 428–10 437, 2009. [16] C. Lin and Y. Xu, “A novel genetic reinforcement learning for nonlinear fuzzy control problems,” Neurocomputing, vol. 69, no. 1618, pp. 2078–2089, 2006. [17] C. Li and C. Lee, “Self-organizing neuro-fuzzy system for control of unknown plants,” IEEE Trans. Fuzzy Syst., vol. 11, no. 1, pp. 135–150, 2003. [18] H. Pomares, I. Rojas, J. Gonzalez, F. Rojas, M. Damas, and F. J. Fernandez, “A two-stage approach to self-learning direct fuzzy controllers,” International Journal of Approximate Reasoning, vol. 29, no. 3, pp. 267–289, 2002.
[19] C. Lee, “Fuzzy logic in control systems: fuzzy logic controller. II,” IEEE Trans. Syst., Man, Cybern., vol. 20, no. 2, pp. 419–435, 1990. [20] H. Pomares, I. Rojas, J. Gonzalez, M. Damas, B. Pino, and A. Prieto, “Online global learning in direct fuzzy controllers,” IEEE Trans. Fuzzy Syst., vol. 12, no. 2, pp. 218–229, 2004. [21] C. T. Lin, C. J. Lin, and C. S. G. Lee, “Fuzzy adaptive learning control network with on-line neural learning,” Fuzzy Sets and Systems, vol. 71, no. 1, pp. 25–45, 1995.
[22] L. Wang and Y. Frayman, “A dynamically generated fuzzy neural network and its application to torsional vibration control of tandem cold rolling mill spindles,” Engineering Applications of Artificial Intelligence, vol. 15, no. 6, pp. 541–550, 2002. [23] H. Pomares, I. Rojas, J. Gonzalez, and A. Prieto, “Structure identification in complete rule-based fuzzy systems,” IEEE Trans. Fuzzy Syst., vol. 10, no. 3, pp. 349–359, 2002.