Author's personal copy
Available online at www.sciencedirect.com
Expert Systems with Applications Expert Systems with Applications 36 (2009) 4154–4159 www.elsevier.com/locate/eswa
Short communication
Feedback linearization control of a two-link robot using a multi-crossover genetic algorithm Jian Liung Chen a,*, Wei-Der Chang b b
a Department of Electrical Engineering, Kao Yuan University, Kaohsiung 821, Taiwan Department of Computer and Communication, Shu-Te University, Kaohsiung 824, Taiwan
Abstract In this paper, we propose a novel multi-crossover genetic algorithm (GA) to identify the system parameters of a two-link robot. The resulted system model by the proposed GA is then applied to the feedback linearization control such that the two-link robot system can be transferred to a linear model with a nonlinear bounded time-varying uncertainty. To deal with the uncertainty, a sliding mode control approach is designed to achieve the tracking control. Finally, some simulation results are demonstrated to show the utility of our proposed method. Ó 2008 Elsevier Ltd. All rights reserved. Keywords: Multiple-crossovers; Two-link robot; Parameters estimation; Feedback linearization; Sliding mode control
1. Introduction The mathematical representation of a two-link robot is a highly nonlinear dynamic equation. It is kind of difficult to design a controller to achieve the angle setting of a robot. In the literatures, there are many control methods proposed for solving such the robot control system, for example, the rate linearized mode (Golla, Garg, & Hughes, 1981), model-based control (Kawaski & Kato, 1991), nonlinear robust control (Kuo & Wang, 1989), feedback linearization (Khatib & Burdick, 1986), and Taylor approximation (Seraji, 1987). Since the feedback linearization control is to use nonlinear feedback terms to transform the two-link robot system into an equivalent linear system, it has been caught our attentions. A mathematical model for the two-link robot is needed if this technique is applied. However, under many physical situations, exact mathematical models can not be easily obtained especially for the system parameters of a two-link robot. In the paper, a multi-crossover genetic *
Corresponding author. E-mail addresses:
[email protected] (J.L. Chen),
[email protected] (W.-D. Chang). 0957-4174/$ - see front matter Ó 2008 Elsevier Ltd. All rights reserved. doi:10.1016/j.eswa.2008.01.048
algorithm (GA) is initially developed for identifying system parameters of a two-link robot, and then this estimated model is applied to the feedback linearization. The GA method has been proven as a powerful tool for solving optimal or near optimal solution for an given optimization problem (Angelov & Buswell, 2003; Carvalho & Freitas, 2004; Davis, 1991; Goldberg, 1989; Montiel, Castillo, Melin, & Sepulveda, 2003; Montiel, Castillo, Sepulveda, & Melin, 2004; Muhlenbein, 1994; Muhlenbein & Mahnig, 2002; Tang & Xu, 2005; Tsutsui & Goldberg, 2001). It provides better searching capability over the traditional gradient method. Because the gradient method searches for a problem solution only from a single direction, while GA method is from multiple directions due to its crossover and mutation operations. This means that it is highly possible to escape from a local minimum (Huang & Huang, 1997). In the binary GA (Kristinsson & Dumont, 1992; Jiang & Wang, 2000), all parameters of interest must be encoded as binary digits (genes) and then collect these binary digits to be a string (chromosome). In contrast to the binary GA, another kind of real-coded GA has been also introduced to a wide variety of applications as in Tang and Xu (2005), Huang and Huang (1997), Blanco, Delgado, and Pegalajar
Author's personal copy
J.L. Chen, W.-D. Chang / Expert Systems with Applications 36 (2009) 4154–4159
(2001), Deb and Gulati (2001), Zamparelli (1997), Tzeng and Lu (2000), Lu and Tzeng (2000), Xu and Daley (1995). All genes in the chromosome are now encoded as real numbers. For most real optimization problems, this type of real-coded GA has more advantages over the conventional binary GA. For example, the length of a chromosome used in the realcoded GA becomes much shorter than that of the binary GA, and it is easier to implement the real-coded GA into the computer programs. Unlike the general crossover operation by using two chromosomes, a multi-crossover operation will be proposed in this paper. We use the improved real-coded GA to identify the system parameters of a two-link robot. All of unknown parameters are collected as a chromosome, and a population of these chromosomes will be evolved by using genetic operations of reproduction, multiplecrossover, and mutation. Due to the error caused by parameters estimation, the model of two-link robot can’t be exactly linearized according to the estimated model. Therefore, the inter loop system, i.e. the connection between the estimated model and actual two-link robot can be viewed as a linear system with nonlinear bounded time-varying uncertainty. Furthermore, we will find out the uncertainty to conform the matching condition. Since the sliding mode control is a popular technique for robust controls under the matching condition (Khalil, 1996), we use it to overcome the drawback and to achieve the tracking control of a two-link robot. In the sliding mode control, state trajectories of system are forced to reach a sliding manifold in finite time, and stay on the manifold for all future time. Since the inter loop system is linear, the controller design can be reduced mostly and be simply well done. Simulation results will be illustrated to show that the angles of a two-link robot can be regulated to the desired output by using our proposed method.
s ¼ ½ s1
T
s2 is the two-dimensional torque input vector; M1 M2 is the symmetric inertia matrix and is MðhÞ ¼ M T2 M 4
the positive definition for all h 2 R2 , M 1 ¼ 1=3m1 l21 þ 1=12m2 l22 þ m2 ðl21 þ 1=4l22 Þ þ mp ðl21 þ l22 Þ þ ðm2 þ 2mp Þl1 l2 cos h2 M 2 ¼ 1=12m2 l22 þ 1=4m2 l22 þ mp l22 þ 1=2ðm2 þ 2mp Þl1 l2 cos h2 M 4 ¼ 1=12m2 l22 þ 1=4m2 l22 þ mp l22 _ ¼ ½ N 1 N 2 T N ðh; hÞ accounts for centrifugal and Coriolis forces; N 1 ¼ ðm2 þ 2mp Þl1 l2 h_ 1 h_ 2 sin h2 1=2ðm2 þ 2mp Þl1 l2 h_ 22 sin h2 N 2 ¼ ð1=2m2 þ mp Þl1 l2 h_ 1 sin h2 GðhÞ ¼ ½ G1 G2 T accounts for gravity forces; G1 ¼ ð1=2m1 l1 þ m2 l2 þ mp l1 Þg sin h1 þ ð1=2m2 l2 þ mp l2 Þg sinðh1 þ h2 Þ G2 ¼ ð1=2m2 þ mp Þl2 g sinðh1 þ h2 Þ: For convenience, let ½ x1 x2 x3 x4 ¼ ½ h1 h_ 1 h2 h_ 2 . Since M(h) is the positive definition for all h 2 R2 , we set 1 M1 M2 u1 u2 1 : ¼ M ðhÞ ¼ M T2 M 4 uT2 u4 The nonlinear dynamic Eq. (1) can be represented as the state equation 2 3 2 3 3 2 x2 0 0 x_ 1 6 x_ 7 6 u ðN þ G Þ u ðN þ G Þ 7 6 u u 7 1 1 2 2 7 1 2 27 6 27 6 6 1 6 7¼6 7s 7þ6 4 x_ 3 5 4 5 40 x4 0 5 uT2 ðN 1 þ G1 Þ u4 ðN 2 þ G2 Þ
x_ 4
uT2
u4 ð2Þ
2. Problem formulation Consider the nonlinear dynamic equation for a two-link robot (Spong & Vidyasagar, 1989), which is shown in Fig. 1, described as follow _ þ GðhÞ ¼ s MðhÞ€h þ N ðh; hÞ
ð1Þ
and output equation 2
y1 y2
¼
1 0 0 0
0 1
0 0
x1
3
6 7 6 x2 7 6 7: 4 x3 5
ð3Þ
x4
where h ¼ ½ h1
4155
Moreover, let C = [c1,c2, . . . , cm] be an unknown parameter vector in the two-link robot system. From the evolutionary point of view, C is called a chromosome and all ci, for i 2 m and m = {1,2, . . . , m}, are called genes.
h2 T is the output vector;
l1
θ1
3. A multi-crossover genetic computation
m1 l2
θ2 m 2 mp Fig. 1. A two-link robot system.
To execute the genetic operations, a performance index or an objective function should be defined in the beginning. In GA, it only requires the computation of the objective function to guide its search, and there is no requirement for its differentiation, which may be usually needed in the traditional optimal method. A summation of squared error
Author's personal copy
4156
J.L. Chen, W.-D. Chang / Expert Systems with Applications 36 (2009) 4154–4159
(SSE) is chosen as the objective function in this study defined by SSE ¼
(Γ1 − Γ2 ) + (Γ1 − Γ3 )
Γ1 − Γ2
Γ1 − Γ3
T h i X 2 2 ðy 1 ðk Þ ^y 1 ðk ÞÞ þ ðy 2 ðk Þ ^y 2 ðk ÞÞ
Γ3
Γ1
k¼1 T X 2 e1 ðk Þ þ e21 ðk Þ ; ¼
Γ2
ð4Þ
k¼1
where T is the number of given sampling steps, y1 and y2 are the actual outputs in (3), ^y 1 and ^y 2 are the evaluated outputs. Our purpose is to find the optimal model parameter vector C by using the proposed method such that the SSE in (4) is minimized. The GA starts with a given random initial population that contains many chromosomes. Each chromosome in the population represents a set of possible parameter solution for the two-link robot system. The chromosomes are then evolved within the user-defined interval [cl, cu] to generate better offspring. When a generated chromosome goes beyond the interval, the original chromosome is retained. In the following development, let N represent the size of population, parameters pr, pc, and pm are referred to as probabilities of reproduction, crossover, and mutation, respectively. In addition, throughout the paper a uniform probability distribution is assumed for all used random values. The detailed descriptions of three genetic operators are stated as follows. 3.1. Reproduction For the reproduction operation there are two well known selection mechanisms: the roulette wheel and tournament selections. The roulette wheel selection can be visualized by imagining a wheel where each chromosome occupies an area that is related to its value of objective function. When a spinning wheel stops, a fixed marker determines which chromosome will be selected to reproduce (Blanco et al., 2001). This kind of selection mechanism needs more numerical computations. However, the tournament selection is simpler than the roulette wheel selection. In this selection pr N chromosomes with better SSE values are duplicated into the population, and the same amount of chromosomes with worse SSE values are discarded from the population. This keeps the same population size. 3.2. Multiple-crossover Unlike the traditional crossover by using only two chromosomes, a novel crossover formula that contains three parent chromosomes is proposed in this study. We assume that chromosomes C1, C2, and C3 are selected from the population randomly and SSE (C1) is the smallest among three SSE values. Also, let c be a random number selected from [0, 1]. If c P pc, then the following multiple-crossover are performed to generate new chromosomes
Fig. 2. A modified adjusting vector by using the proposed multiplecrossover.
C1
C1 þ qð2C1 C2 C3 Þ;
C2
C2 þ qð2C1 C2 C3 Þ;
C3
C3 þ qð2C1 C2 C3 Þ;
ð5Þ
where q 2 [0,1] is a random value determining the crossover grade of these three. If c < pc, no crossover operation is performed. It is clear from Fig. 2 that the resulting adjusted vector (2C1 C2 C3) is a combination of vectors C1 C2 and C1 C3. 3.3. Mutation The mutation operation follows the crossover and provides a possible mutation on some chosen chromosomes C. Only pm N chromosomes in the population will be randomly selected to mutate. The formula of mutation operation for the selected C is given by C
C þ s U;
ð6Þ m
where s is a positive constant and U 2 R is a random perturbation vector producing a small effect on C. Performing the above three evolutionary operations for the whole population one time is called a generation. The algorithm stops if the pre-specified number of generations G is achieved. 4. Feedback linearization and controller design In this study, the system parameters l1, l2, m1, and m2 in (1) are assumed to be unknown and will be estimated by using the proposed multi-crossover GA. Hence, let ^l1 ; ^l2 ; m ^ 1 ; and m ^ 2 be the estimated system parameters and we have the following nonlinear model for the two-link robot system _ þ GðhÞ b b ðhÞv þ N b ðh; hÞ M ¼s ð7Þ b b b b 1 _ ¼ N 1 , GðhÞ b b ðh; hÞ b ðhÞ ¼ M 1 M 2 , N ¼ G where M bT M b4 b2 , b2 M N G 2 h s1 , h¼ 1 , s¼ s2 h2 b 1 ¼ 1=3m ^ 1^l21 þ 1=12m ^ 2^l22 þ m ^ 2 ^l21 þ 1=4^l22 M ^ 2 þ 2mp ^l1^l2 cos h2 ; þ mp ^l21 þ ^l22 þ m
Author's personal copy
J.L. Chen, W.-D. Chang / Expert Systems with Applications 36 (2009) 4154–4159
b 2 ¼ 1=12m ^ 2^l22 þ 1=4m ^ 2^l22 þ mp^l22 M ^ 2 þ 2mp ^l1^l2 cos h2 ; þ 1=2 m b 4 ¼ 1=12m ^ 2^l22 þ 1=4m ^ 2^l22 þ mp^l22 ; M b1 ¼ m ^ 2 þ 2mp ^l1^l2 h_ 1 h_ 2 sin h2 N ^ 2 þ 2mp ^l1^l2 h_ 22 sin h2 ; 1=2 m b 2 ¼ 1=2 m ^ 2 þ mp ^l1^l2 h_ 1 sin h2 ; N b 1 ¼ 1=2m ^ 1^l1 þ m ^ 2^l2 þ mp^l1 g sin h1 G ^ 2^l2 þ mp^l2 g sin ðh1 þ h2 Þ; þ 1=2m b 2 ¼ 1=2m ^ 2 þ mp ^l2 g sin ðh1 þ h2 Þ: G _
x ¼ ½ x1 x2 2 0 1 6 60 0 6 A¼6 60 0 4 0
_
_
If the errors between M and M , N and N , G and G are considered, then the Eq. (7) can be rewritten as _ þ GðhÞ þ e ¼ s MðhÞv þ N ðh; hÞ where e represents those errors. By using techniques of feedback linearization shown in Fig. 3 and using (1), we get the following linear system _ þ GðhÞ ¼ MðhÞv þ N ðh; hÞ _ þ GðhÞ þ e MðhÞ€h þ N ðh; hÞ ) MðhÞ€h ¼ MðhÞv þ e
where v is a sliding mode control that will be designed below. Moreover, let D = M1(h)e and the above equation becomes ð8Þ
Note that the term D can be viewed as the uncertainty of system (8). Since less error can be achieved by using the proposed multi-crossover GA, the uncertainty D is bounded. Furthermore, the state Eq. (8) is x_ ¼ Ax þ Bðv þ DÞ
ð9Þ
where
Mˆ v + Nˆ + Gˆ
τ
Mθ + N + G
(θ ,θ )
Fig. 3. Structure of feedback linearization.
ud
xd = Ad xd + Bd u d y d = C d xd
yd
T x4 ¼ h1 h_ 1 h2 3 2 3 0 0 0 0 7 6 7 61 07 0 07 7 6 7 7; B ¼ 6 7: 60 07 0 17 5 4 5
x3
0 0
0
0
h_ 2
T
;
1
It should be pointed out that by means of feedback linearization technique we do not need to take the internal dynamic of system (1) into account (Slotine & Li, 1991). This indicates that if we can design a controller to stabilize system (9), it should also stabilize the structure of Fig. 3. To overcome the bounded uncertainty of system (9), a sliding mode control v is designed to satisfy the control performance. Reference to the structure of Fig. 4, a desired reference signal y d 2 R2 is generated from x_ d ¼ Ad xd þ Bd y d y d ¼ C d xd where Ad, Bd, and Cd are constant matrices with appropriate sizes. Furthermore, define the tracking error as ~x x y d and we have the following theorem.
)€ h ¼ v þ M 1 ðhÞe
€ h ¼ v þ D:
4157
Theorem 1. If we choose a sliding surface r ¼ C~x ¼ ½ r1 r2 T , where C 2 R24 is a given full row rank constant matrix, and define P ½ p1 p2 T ¼ CBD, then the sliding control law 1
1
v ¼ ðCBÞ ½CAx CC d Ad xd CC d Bd ud ðCBÞ KsgnðrÞ ð10Þ where K = [kii] is a diagonal matrix and kii > j pij for i = 1, 2, will be such that the tracking error approaches zero, i.e., ~x ! 0.proof: To complete this proof, we need to show that the controller output v forces r to zero in the finite time and then maintain the condition r = 0 for all further time. Defining V ¼ 12 rT r as a Lyapunov function candidate, then we have V_ ¼ rT r_ with r_ ¼ C~x_ ¼ C ðx_ y_ d Þ ¼ C ½Axþ Bðv þ DÞ CC d ðAd xd þ Bd ud Þ. Moreover, by using (10), we have k 11 sgnðr1 Þ þ p1 : r_ ¼ KsgnðrÞ þ P ¼ k 22 sgnðr2 Þ þ p2 Therefore, we get
Mˆ v + Nˆ + Gˆ
τ
Fig. 4. Overall control system configuration of a two-link robot.
Mθ + N + G
(θ ,θ )
Author's personal copy
4158
J.L. Chen, W.-D. Chang / Expert Systems with Applications 36 (2009) 4154–4159
V_ ¼ rT r_ ¼ r1 ½k 11 sgnðr1 Þ þ p1 þ r2 ½k 22 sgnðr2 Þ þ p2 < 0; ð11Þ since kii > jpij and
1 if ri > 0 sgnðri Þ ¼ 1 if ri < 0 for i = 1, 2. The inequality V_ < 0 ensures that if the trajectory happens to be on the manifold r = 0 at some time, it will be confined to that manifold for all further time because leaving the manifold requires V_ > 0, which is impossible in view of the inequality. It also shows that ~x ! 0 and, therefore, the angles of a two-link robot will track the reference signal yd. Remark 1. Since the matrix B in Eq. (9) is a full column rank matrix and if we choose the matrix C to be a full row rank matrix, then we can guarantee that the matrix CB is invertible. Therefore, an allowable control law can be obtained.
Fig. 5. Responses of h1 (the solid line) and y1d (the dotted line); controller v1.
5. Simulation results In this section, an illustrative example is given to demonstrate the feasibility of the proposed method. Consider a two-link robot system of (1) with the actual parameters l1 = 0.5, l2 = 0.5, m1 = 3.24, m2 = 2.16, and mp = 1. A desired reference output yd is given by 2 3 2 3 14 40 0 0 1 0 61 60 07 0 0 0 7 6 7 6 7 x_ d ¼ 6 7xd þ 6 7 ud 40 40 15 0 14 40 5 2
0 0
0
1
3
40
0
0
65 6 yd ¼ 6 40
6 0
0 0
0 7 7 7xd ; 40 5
0
0
5
6
0
0
0
T
with xd(0) = 0 and ud ¼ ½ 20uðtÞ 5 uðtÞ , where u(t) is the unit step function. In the beginning, the proposed multi-crossover GA is applied to parameter identification of system (1) for [l1, l2, m1, m2]. For simulations, the sampling time is set to be 0.005, and both torque inputs s1 and s2 in (1) are generated from the interval (1, 1) at random. The related variables used in GA operations are given as follows: ½rl ; ru ¼ ½0; 10; pr ¼ 0:2;
T ¼ 20;
pc ¼ 0:4;
N ¼ 20;
pm ¼ 0:1;
G ¼ 3000;
s ¼ 0:05:
All of initial chromosomes are randomly created from the searching interval. Each element of noise vector U in (6) is randomly chosen from [0.01, 0.01]. After performing our proposed GA method, we obtain the resulted system parameters ^l1 ^l2 m ^1 m ^ 2 ¼ ½ 0:5 0:5 3:2399 2:16 . Furthermore, to design a sliding model controller, we choose sliding surface as r ¼ C~x with
Fig. 6. Response of h2 (the solid line) and y3d (the dotted line); controller v2.
C¼
100
1 0
0
0
0 100
1
and K in (10) is given by 10 0 K¼ : 0 25 Note that it is easy to verify that 2 3 0 0 7 1 100 1 0 0 6 61 07 CB ¼ 6 7¼ 0 0 100 1 4 0 0 5 0 0
0 1
1
is nonsingular. Therefore, the control law of (10) is welldefined.
Author's personal copy
J.L. Chen, W.-D. Chang / Expert Systems with Applications 36 (2009) 4154–4159
According to Theorem 1, under the controller that we have been designed, output h of a two-link robot will track the desired output yd. Figs. 5 and 6 show the output responses and corresponding control laws. It can easily be observed that the reference signal yd can be fully tracked. 6. Conclusions In this paper, we have demonstrated two basic design steps for a two-link robot control. First, a modified realcoded GA with a multiple-crossover is proposed and uses it to estimate the unknown system parameters. These parameters are viewed as genes and evolved by three genetic operations of reproduction, multiple-crossover, and mutation operations, respectively. Second, based on this resulted system model, it is incorporated to the feedback linearization control such that the nonlinear robotic system can be transferred to a linear model with a nonlinear bounded time-varying uncertainty. Furthermore, in order to overcome the uncertainty term, a sliding mode control is designed and the stability of the closed-loop system is guaranteed by the use of the Lyapunov theorem. Finally, a simulation example of two-link robot is given to demonstrate the effectiveness of the proposed method. References Angelov, P. P., & Buswell, R. A. (2003). Automatic generation of fuzzy rule-based models from data by genetic algorithms. Information Sciences, 150, 17–31. Blanco, A., Delgado, M., & Pegalajar, M. C. (2001). A real-coded genetic algorithm for training recurrent neural networks. Neural Networks, 14, 93–105. Carvalho, D. R., & Freitas, A. A. (2004). A hybrid decision tree/genetic algorithm method for data mining. Information Sciences, 163, 13–35. Davis, L. (1991). Handbook of genetic algorithms. New York: Van Nostrand. Deb, K., & Gulati, S. (2001). Design of truss-structures for minimum weight using genetic algorithms. Finite Elements in Analysis and Design, 37, 447–465. Goldberg, D. E. (1989). Genetic algorithms in search. Optimization and machine learning. Reading, MA: Addison Wesley. Golla, D. F., Garg, S. C., & Hughes, P. C. (1981). Linear state feedback control of manipulators. Mechanism and Machine Theory, 93–103. Huang, Y. P., & Huang, C. H. (1997). Real-valued genetic algorithm for fuzzy grey prediction system. Fuzzy Sets and Systems, 87, 265–276.
4159
Jiang, B., & Wang, B. W. (2000). Parameter estimation of nonlinear system based on genetic algorithm. Control Theory and Applications, 17, 150–152. Kawaski, H., & Kato, N. (1991). A review of experiments on adaptive control and computed torque control by a robot with nonlinear reduction ratio feature. Journal of Robotics and Mechatronics, 356–359. Khalil, H. K. (1996). Nonlinear systems (2nd ed.). New Jersey: PrenticeHall. Khatib, O., & Burdick, J. (1986). Motion and force control of robot manipulators. In Proceedings of IEEE international conference on robotics and automation (pp. 1381–1386). Kristinsson, K., & Dumont, G. A. (1992). System identification and control using genetic algorithms. IEEE Transactions on Systems, Man, and Cybernetics, 22, 1033–1046. Kuo, C. Y., & Wang, S. T. (1989). Nonlinear robust industrial robot control. ASME Journal of Dynamic Systems, Measurement, and Control, 24–30. Lu, H. C., & Tzeng, S. T. (2000). Design of two-dimensional FIR digital filters for sampling structure conversion by genetic algorithm approach. Signal Processing, 80, 1445–1458. Montiel Castillo, O., Melin, P., & Sepulveda, R. (2003). The evolutionary learning rule for system identification. Applied Soft Computing, 3, 343–352. Montiel Castillo, O., Sepulveda, R., & Melin, P. (2004). Application of a breeder genetic algorithm for finite impulse filter optimization. Information Sciences, 161, 139–158. Muhlenbein, H. (1994). The breeder genetic algorithm – A provable optimal search algorithm and its application. In Proceedings of IEE colloquium on applications of genetic algorithms (pp. 5/1–5/3). Muhlenbein, H., & Mahnig, Th. (2002). Evolutionary computation and Wright’s equation. Theoretical Computer Science, 287, 145–165. Seraji, H. (1987). An approach to multivariable control of manipulators. ASME Journal of Dynamic Systems, Measurement, and Control, 146–154. Slotine, J.-J. E., & Li, W. (1991). Applied nonlinear control. New Jersey: Prentice Hall. Spong, M. W., & Vidyasagar, M. (1989). Robot dynamics and control. New York: Wiley. Tang, Y. C., & Xu, Y. (2005). Application of fuzzy Naive Bayes and a real-valued genetic algorithm in identification of fuzzy model. Information Sciences, 169, 205–226. Tsutsui, S., & Goldberg, D. E. (2001). Search space boundary extension method in real-coded genetic algorithm. Information Sciences, 133, 229–247. Tzeng, S. T., & Lu, H. C. (2000). Complex genetic algorithm approach for designing equiripple complex FIR digital filters with weighting function. Signal Processing, 80, 197–204. Xu, D. J., & Daley, M. L. (1995). Design of optimal filter using a parallel genetic algorithm. IEEE Transactions on Circuits and Systems-II: Analog and Digital Signal Processing, 42, 673–675. Zamparelli, M. (1997). Genetically trained cellular neural networks. Neural Networks, 10, 1143–1151.