You do not have permission to edit this page, for the following reason:

You are not allowed to execute the action you have requested.


You can view and copy the source of this page.

x
 
1
==Abstract==
2
3
In this paper, design of fuzzy proportional derivative controller and fuzzy proportional derivative integral controller for speed control of brushless direct current drive has been presented. Optimization of the above controllers design is carried out using nature inspired optimization algorithms such as particle swarm, cuckoo search, and bat algorithms. Time domain specifications such as overshoot, undershoot, settling time, recovery time, and steady state error and performance indices such as root mean squared error, integral of absolute error, integral of time multiplied absolute error and integral of squared error are measured and compared for the above controllers under different operating conditions such as varying set speed and load disturbance conditions. The precise investigation through simulation is performed using simulink toolbox. From the simulation test results, it is evident that bat optimized fuzzy proportional derivative controller has superior performance than the other controllers considered. Experimental test results have also been taken and analyzed for the optimal controller identified through simulation.
4
5
==Keywords==
6
7
Bat algorithm ; Brushless direct current motor ; Cuckoo search ; Fuzzy proportional derivative controller ; Fuzzy proportional derivative integral controller
8
9
==1. Introduction==
10
11
Brushless Direct Current (BLDC) motors are widely used in servo robotic positioning actuators, traction, fans, and blowers due to their high reliability, high efficiency, low maintenance, and many other advantages [[#bib0010|[1]]] . In the last decade, many number for speed controllers have been developed for the speed control of brushless dc motor. They are classified as proportional integral derivative controller, fuzzy logic based controller, Neuro fuzzy controller, etc [[#bib0015|[2]]] , [[#bib0020|[3]]] , [[#bib0025|[4]]] , [[#bib0030|[5]]] , [[#bib0035|[6]]] , [[#bib0040|[7]]] , [[#bib0045|[8]]] , [[#bib0050|[9]]] , [[#bib0055|[10]]] , [[#bib0060|[11]]] , [[#bib0065|[12]]] , [[#bib0070|[13]]] , [[#bib0075|[14]]] , [[#bib0080|[15]]] , [[#bib0085|[16]]] , [[#bib0090|[17]]] , [[#bib0095|[18]]] , [[#bib0100|[19]]] , [[#bib0105|[20]]] , [[#bib0110|[21]]]  and [[#bib0115|[22]]] .      
12
13
Normally, Proportional Integral derivative controller is an optimum choice for controlling the speed of the BLDC motor. However, it has uncertainty problem due to load as well as in set speed variations. Also, tuning of the proportional integral and derivative (PID) controller leads to uncertainty in the control system parameters [[#bib0015|[2]]] . In order to overcome the above problems, precise method of control can be provided with help of intelligent system based on fuzzy logic and neural network approach. But most of the time, fuzzy logic based controller provides better results than the conventional and neural network.      
14
15
Conventional proportional integral (PI) controller has been implemented for BLDC motor in [[#bib0020|[3]]] . Direct self control was designed for brushless dc motor with PI speed controller in [[#bib0025|[4]]] . Three phase brushless dc motor with proportional integral based speed controller has been presented for four quadrant operation in [[#bib0030|[5]]] . From the literatures [[#bib0020|[3]]] , [[#bib0025|[4]]]  and [[#bib0030|[5]]] , the proportional controller is the most preferable speed controller for BLDC motor, but PI controller produces sluggish response in the system, and also it produces uncertainty problem in some operating conditions of the BLDC motor. To avoid these shortcomings, the fuzzy logic controller has been developed [[#bib0035|[6]]] , [[#bib0040|[7]]] , [[#bib0045|[8]]]  and [[#bib0050|[9]]] . In [[#bib0035|[6]]] , adaptive fuzzy logic based speed controller has been designed for brushless dc motor. In [[#bib0040|[7]]] , comparative analysis for PI controller, fuzzy tuned PID controller, fuzzy variable structure controller, and ANFIS controller has been developed for Brushless DC motor. In [[#bib0045|[8]]] , adaptive fuzzy PID controller has been developed for the dc motor. In [[#bib0050|[9]]] , fuzzy like Proportional Derivative (PD) controller was developed for non linear plant. But the non linearity of the system depends on the scaling factor of the fuzzy Proportional Derivative controller.      
16
17
From [[#bib0035|[6]]] , [[#bib0040|[7]]] , [[#bib0045|[8]]]  and [[#bib0050|[9]]] , all parameters were in favor of the fuzzy logic based controller. Even though, performance of the fuzzy logic controller depends on the scaling factor of the input and output of the fuzzy logic controller, it also affects the control system performance. In order to overcome these problems, the tuning of scaling factor of the PID and fuzzy logic controller with naturally inspired algorithm such as genetic algorithm, particle swarm optimization, and cuckoo search algorithm was developed for the optimization of constant parameter in [[#bib0055|[10]]] , [[#bib0060|[11]]] , [[#bib0065|[12]]]  and [[#bib0070|[13]]] . The design and the tuning of PID controller through the genetic algorithm approach have been presented for robotic manipulator in [[#bib0055|[10]]] . From the simulation result, torque of the manipulator has larger overshoot and larger error. In [[#bib0060|[11]]] , tuning of PID controller gain by particle swarm optimization (PSO) was implemented for brushless dc motor, but the electromagnetic torque has high overshoot and undershoots in the starting period.      
18
19
In [[#bib0065|[12]]] , genetic algorithm has been used for tuning the scaling factor of fuzzy logic based PID controller, and it was applied for the speed control of brushless dc motor. From the experimental results it was pointed out that speed response has uncertainty problem due to load variations. In [[#bib0070|[13]]] , the survey has been presented explaining the nature-inspired optimization algorithms for tuning the scaling factor of the fuzzy logic control. The importance of particle swarm optimization for large scale optimization was explained in [[#bib0075|[14]]] . In [[#bib0080|[15]]] , comparison of particle swarm optimization and genetic algorithm for FACTS-based controller design has been explained. In [[#bib0085|[16]]] , the comparison of Cuckoo search with standard versions of PSO and GA has been discussed. Cuckoo search algorithm was applied for tuning the parameter of two degrees of freedom controller in the automatic generation control of multi area system which has been presented in [[#bib0090|[17]]] . But with this algorithm also, only steady state response of the system has improved without significant transient response improvement. The comparative analysis of swarm intelligent techniques (cuckoo search, firefly algorithm, and glowworm swarm optimization) with population based algorithm (genetic algorithm) was presented in [[#bib0095|[18]]] . The superiority of each swarm intelligent techniques has been noticed with population based algorithm. The scaling factor of fractional order fuzzy PID controller tuning by cuckoo search algorithm has been presented in [[#bib0085|[16]]] . In [[#bib0100|[19]]]  and [[#bib0105|[20]]] , bat algorithm was used for tuning the parameters of the power system stabilizers, and its effectiveness was also reported. Most of the researchers only concentrated on the GA, PSO, and Cuckoo algorithm for tuning fuzzy logic controller scaling factors.      
20
21
The operation of the system under fuzzy logic control not only depends on the input and output scaling factors of the fuzzy logic controller but it also depends on the position of the membership function of the input and outputs of the comptroller. Tuning of membership function of Fuzzy PWM based on Genetic Algorithm for battery charging has been outlined in [[#bib0110|[21]]] . Genetic fuzzy self-tuning PID controllers for antilock braking systems have been presented in [[#bib0115|[22]]] . Genetic algorithm has been used for tuning the antecedent part of the input membership function, and coefficients of the consequent parts of the Takagi and Sugeno fuzzy inference system. Totally, 93 parameters have been tuned for the fuzzy inference system. From this, genetic algorithm takes large computation time for getting optimal parameter for the fuzzy logic control. Although, overshoot, performance indices, i.e., integral of absolute error and integral of time multiplied absolute error was not favored for the fuzzy self tuned PID controller. There is no significant literature based on bat algorithm optimized tuning of parameters in fuzzy logic controller. Flexible job shop scheduling problem using an estimation of distribution algorithm (EDA) has been explained, and effectiveness of EDA has been addressed in [[#bib0120|[23]]] . But EDA has some disadvantages that are loss of diversity, insufficient use of local information of solution, and it traps into local optima.      
22
23
The objective of this paper is to design the fuzzy PD and fuzzy PID controller for the speed control of brushless dc motor and optimize the input and output scaling factor, antecedent part of the input membership function, and coefficients of the consequent parts of the fuzzy inference system of the fuzzy PD controller and fuzzy PID controller with bat, PSO, and cuckoo search algorithms. The purpose of optimization is to minimize the objective function in order to improve the time domain specifications and performance indices under different operating conditions. Parameters such as overshoot, undershoot, settling time, recovery time, steady state error, root mean squared error, integral of absolute error, integral of time multiplied absolute error and integral of squared error are measured and compared for the above controllers with different operating conditions of the brushless dc motor drive. Based on the simulation results, best controller is suggested and validated. An attempt has also been made to prove experimentally the results of the optimal controller pointed out through simulation study.
24
25
The paper is organized as follows: Speed control of BLDC motor is given in brief in [[#s0015|section 2]] , and design of Fuzzy PD and Fuzzy PID type speed controller is explained in [[#s0020|section 3]] . Formulation of the objective function for the fuzzy PD and fuzzy PID controller is presented in the [[#s0025|section 4]] . Review of nature-inspired optimization algorithms for tuning of fuzzy PD and fuzzy PID controller has been provided in [[#s0030|section 5]] . [[#s0050|Section 6]]  discusses the simulation results, and [[#s0055|section 7]]  provides experimental verification and discussion on results. Concluding remarks are outlined in [[#s0060|section 8]] .      
26
27
<span id='s0015'></span>
28
==2. The speed control of the brushless dc motor==
29
30
Speed control system for BLDC motor is represented in [[#f0010|Fig. 1]] . Three phase star connected brushless dc motor can be described by the following five equations [[#e0010|(1)]] , [[#e0015|(2)]] , [[#e0020|(3)]] , [[#e0025|(4)]]  and [[#e0030|(5)]]  as,
31
32
<span id='e0010'></span>
33
{| class="formulaSCP" style="width: 100%; text-align: center;" 
34
|-
35
| 
36
{| style="text-align: center; margin:auto;" 
37
|-
38
| <math>v_{ab}=R\left(i_a-i_b\right)+L\frac{d}{dt}\left(i_a-\right. </math><math>\left. i_b\right)+e_a-e_b</math>
39
|}
40
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 1)
41
|}
42
43
<span id='e0015'></span>
44
{| class="formulaSCP" style="width: 100%; text-align: center;" 
45
|-
46
| 
47
{| style="text-align: center; margin:auto;" 
48
|-
49
| <math>v_{bc}=R\left(i_b-i_c\right)+L\frac{d}{dt}\left(i_b-\right. </math><math>\left. i_c\right)+e_b-e_c</math>
50
|}
51
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 2)
52
|}
53
54
<span id='e0020'></span>
55
{| class="formulaSCP" style="width: 100%; text-align: center;" 
56
|-
57
| 
58
{| style="text-align: center; margin:auto;" 
59
|-
60
| <math>v_{ca}=R\left(i_c-i_a\right)+L\frac{d}{dt}\left(i_c-\right. </math><math>\left. i_a\right)+e_c-e_a</math>
61
|}
62
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 3)
63
|}
64
65
<span id='e0025'></span>
66
{| class="formulaSCP" style="width: 100%; text-align: center;" 
67
|-
68
| 
69
{| style="text-align: center; margin:auto;" 
70
|-
71
| <math>T_e=k_f{\omega }_m+J\frac{d{\omega }_m}{dt}+T_L</math>
72
|}
73
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 4)
74
|}
75
76
<span id='e0030'></span>
77
{| class="formulaSCP" style="width: 100%; text-align: center;" 
78
|-
79
| 
80
{| style="text-align: center; margin:auto;" 
81
|-
82
| <math>{\omega }_m=\frac{d{\theta }_m}{dt}</math>
83
|}
84
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 5)
85
|}
86
87
<span id='f0010'></span>
88
89
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
90
|-
91
|
92
93
94
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0001.jpg|center|395px|Speed control system of brushless dc motor.]]
95
96
97
|-
98
| <span style="text-align: center; font-size: 75%;">
99
100
Fig. 1.
101
102
Speed control system of brushless dc motor.
103
104
</span>
105
|}
106
107
Where V<sub>ab</sub> , V<sub>bc</sub> , and V<sub>ca</sub>  are the phase to phase voltage in volts. Phase currents of the stator winding represents by i<sub>a</sub> , i<sub>b</sub> , and i<sub>c</sub>  in amperes. L denotes the self inductance of the motor in Henry. Back electromagnetic force is represented by e<sub>a</sub> , e<sub>b</sub> , and e<sub>c</sub>  in volts. T<sub>e</sub>  and T<sub>L</sub>  are the electromagnetic torque and Load torque of the motor in N-m. J is the rotor inertia, k<sub>f</sub>  is a friction constant, ω<sub>m</sub>  is the rotor speed of the motor in rad/s, and θ<sub>m</sub>  is the rotor position of the motor in rad. [[#f0010|Fig. 1]]  shows the speed control system of the brushless dc motor. The system consists of two loops, such as the inner loop and the outer loop. Inner loop is used for synchronizing the inverting gate signal with back electro motive force or rotor position of the motor. The outer loop is used to sense the actual speed of the motor, and then it is compared with the reference speed to produce speed error. The speed error is then processed via controller thus provide the controlling signal to the switching logic and PWM inverter and control the dc bus voltage thus by controlling the speed of the motor [[#bib0040|[7]]] .      
108
109
<span id='s0020'></span>
110
==3. Design of fuzzy PD and fuzzy PID type speed controller for the brushless DC motor==
111
112
Structure of conventional PID controller is shown in [[#f0015|Fig. 2]] . The control output of the PID controller in time-domain is expressed in equation [[#e0035|(6)]]  as,
113
114
<span id='e0035'></span>
115
{| class="formulaSCP" style="width: 100%; text-align: center;" 
116
|-
117
| 
118
{| style="text-align: center; margin:auto;" 
119
|-
120
| <math>u\left(t\right)=K_pe\left(t\right)+K_i\int e\left(t\right)dt+</math><math>K_d\frac{de}{dt}</math>
121
|}
122
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 6)
123
|}
124
125
<span id='f0015'></span>
126
127
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
128
|-
129
|
130
131
132
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0002.jpg|center|395px|Structure of conventional PID controller.]]
133
134
135
|-
136
| <span style="text-align: center; font-size: 75%;">
137
138
Fig. 2.
139
140
Structure of conventional PID controller.
141
142
</span>
143
|}
144
145
Where, e (t) represents the tracking speed error, the difference between the desired input value (ω<sub>ref</sub> ), and the actual output (ω<sub>act</sub> ), u(t) is the control signal to the plant, K<sub>p</sub>  is the proportional gain, K<sub>i</sub>  is the integral gain, and K<sub>d</sub>  is derivative gain of the PID controller. The design of fuzzy PD controller and fuzzy PID controller is given below, and their structures are shown in [[#f0020|Fig. 3]]  and [[#f0025|Fig. 4]] .
146
147
<span id='f0020'></span>
148
149
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
150
|-
151
|
152
153
154
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0003.jpg|center|395px|Structure of fuzzy PD type controller.]]
155
156
157
|-
158
| <span style="text-align: center; font-size: 75%;">
159
160
Fig. 3.
161
162
Structure of fuzzy PD type controller.
163
164
</span>
165
|}
166
167
<span id='f0025'></span>
168
169
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
170
|-
171
|
172
173
174
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0004.jpg|center|395px|Structure of fuzzy PID type controller.]]
175
176
177
|-
178
| <span style="text-align: center; font-size: 75%;">
179
180
Fig. 4.
181
182
Structure of fuzzy PID type controller.
183
184
</span>
185
|}
186
187
The proportional derivative controller uses the derivative action to improve closed-loop stability. The basic description of a PD controller is expressed in the equation [[#e0040|(7)]]  as,
188
189
<span id='e0040'></span>
190
{| class="formulaSCP" style="width: 100%; text-align: center;" 
191
|-
192
| 
193
{| style="text-align: center; margin:auto;" 
194
|-
195
| <math>u\left(t\right)=K_pe\left(t\right)+K_d\frac{de\left(t\right)}{dt}</math>
196
|}
197
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 7)
198
|}
199
200
The input to the fuzzy PD controller is the error and rate of change of error, the control output is the nonlinear function of error and rate of change of error and given in the equation [[#e0045|(8)]]  as,
201
202
<span id='e0045'></span>
203
{| class="formulaSCP" style="width: 100%; text-align: center;" 
204
|-
205
| 
206
{| style="text-align: center; margin:auto;" 
207
|-
208
| <math>u\left(t\right)=f\left(K_e{_\ast}e\left(t\right),\mbox{ }K_{ce}{_\ast}\frac{de\left(t\right)}{dt}\right){_\ast}K_u</math>
209
|}
210
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 8)
211
|}
212
213
The function f is the input–output map of the fuzzy controller. Using the linear approximation, the equation [[#e0045|(8)]]  rewrite as,
214
215
{| class="formulaSCP" style="width: 100%; text-align: center;" 
216
|-
217
| 
218
{| style="text-align: center; margin:auto;" 
219
|-
220
| <math>u\left(t\right)=\left(K_e{_\ast}e\left(t\right)+K_{ce}{_\ast}\frac{de\left(t\right)}{dt}\right){_\ast}K_u</math>
221
|}
222
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 9)
223
|}
224
225
{| class="formulaSCP" style="width: 100%; text-align: center;" 
226
|-
227
| 
228
{| style="text-align: center; margin:auto;" 
229
|-
230
| <math>u\left(t\right)=K_e{_\ast}K_u{_\ast}e\left(t\right)+</math><math>K_{ce}{_\ast}K_u{_\ast}\frac{de\left(t\right)}{dt}</math>
231
|}
232
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 10)
233
|}
234
235
By comparing, the gains in (7) and (10) are related in the following equation [[#e0060|(11)]]  and [[#e0065|(12)]]  as,
236
237
<span id='e0060'></span>
238
{| class="formulaSCP" style="width: 100%; text-align: center;" 
239
|-
240
| 
241
{| style="text-align: center; margin:auto;" 
242
|-
243
| <math>K_p=K_e{_\ast}K_u</math>
244
|}
245
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 11)
246
|}
247
248
<span id='e0065'></span>
249
{| class="formulaSCP" style="width: 100%; text-align: center;" 
250
|-
251
| 
252
{| style="text-align: center; margin:auto;" 
253
|-
254
| <math>K_d=K_{ce}{_\ast}K_u</math>
255
|}
256
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 12)
257
|}
258
259
Where, K<sub>e</sub>  and K<sub>ce</sub>  are input scaling factor of the fuzzy PD controller. K<sub>u</sub>  is the output scaling factor of the fuzzy PD controller. It has simple control structure which gives better sensitivity and increases the overall stability of the closed loop system. Also this structure provides reduced overshoot and enhanced damping to the overall closed loop system. The nonlinearity of the system can be handled by appropriate choice of input and output membership functions [[#bib0050|[9]]] .      
260
261
The internal structure of Fuzzy PD controller has two inputs that are error (e) and rate of change of error (Δe) and one output (U), and it is shown in [[#f0030|Fig. 5]] . The inputs are distributed with five triangular membership functions.
262
263
<span id='f0030'></span>
264
265
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
266
|-
267
|
268
269
270
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0005.jpg|center|546px|Internal structure of fuzzy PD controller.]]
271
272
273
|-
274
| <span style="text-align: center; font-size: 75%;">
275
276
Fig. 5.
277
278
Internal structure of fuzzy PD controller.
279
280
</span>
281
|}
282
283
Fuzzy inference system is modeled by zero order Takagi-Sugeno fuzzy inference system. The triangular membership function is described by the equation [[#e0070|(13)]]  as,
284
285
<span id='e0070'></span>
286
{| class="formulaSCP" style="width: 100%; text-align: center;" 
287
|-
288
| 
289
{| style="text-align: center; margin:auto;" 
290
|-
291
| <math>f\left(x,\mbox{ }a,\mbox{ }b,\mbox{ }c\right)=</math><math>\lbrace \begin{array}{cc}
292
0, & x\leq 0\\
293
\frac{x-a_j}{b_j-a_j}, & a_j\leq x\leq b_j\\
294
\frac{c_j-x}{c_j-b_j}, & b_j\leq x\leq c_j\\
295
0, & c_j\leq x
296
\end{array}</math>
297
|}
298
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 13)
299
|}
300
301
Where a and ''c''  locate the feet of the triangle and the parameter ''b''  locates the peak. The distribution of membership functions for the error and the rate of change of error are shown in  [[#f0035|Fig. 6]]  and [[#f0040|Fig. 7]] . Two inputs has range from −1.5*X to 1.5*X and −1.5*V to 1.5*V, respectively, membership function denote by Negative Big (NB), Negative Medium (NM), Zero (Z), Positive Medium (PM), and Positive Big (PB). The range of output is from –H to H. The distribution of output is shown in [[#f0045|Fig. 8]] . Initially, 25 rules created for fuzzy PD controller and, the overall fuzzy rule is shown in [[#t0010|Table 1]] . [[#f0050|Fig. 9]]  shows the fuzzy reasoning procedure for a zero order Takagi-Sugeno fuzzy inference system. The fuzzy part is only in its antecedent. Each rule has a crisp output, and the overall output is obtained via weighted average. This fuzzy procedure avoids the time consuming process of defuzzification required in a Mamdani fuzzy model.
302
303
<span id='f0035'></span>
304
305
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
306
|-
307
|
308
309
310
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0006.jpg|center|546px|Distribution of Membership Function of Error.]]
311
312
313
|-
314
| <span style="text-align: center; font-size: 75%;">
315
316
Fig. 6.
317
318
Distribution of Membership Function of Error.
319
320
</span>
321
|}
322
323
<span id='f0040'></span>
324
325
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
326
|-
327
|
328
329
330
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0007.jpg|center|546px|Distribution of Membership Function of Rate of Change of Error.]]
331
332
333
|-
334
| <span style="text-align: center; font-size: 75%;">
335
336
Fig. 7.
337
338
Distribution of Membership Function of Rate of Change of Error.
339
340
</span>
341
|}
342
343
<span id='f0045'></span>
344
345
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
346
|-
347
|
348
349
350
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0008.jpg|center|546px|Distribution of coefficient of consequent part of output.]]
351
352
353
|-
354
| <span style="text-align: center; font-size: 75%;">
355
356
Fig. 8.
357
358
Distribution of coefficient of consequent part of output.
359
360
</span>
361
|}
362
363
<span id='t0010'></span>
364
365
{| class="wikitable" style="min-width: 60%;margin-left: auto; margin-right: auto;"
366
|+
367
368
Table 1.
369
370
Initial rule base for fuzzy PD controller.
371
372
|-
373
374
! e/Δe
375
! NB
376
! NM
377
! Z
378
! PM
379
! PB
380
|-
381
382
! NB
383
| NB
384
| NB
385
| PM
386
| NM
387
| NM
388
|-
389
390
! NM
391
| NB
392
| NM
393
| Z
394
| Z
395
| Z
396
|-
397
398
! Z
399
| NB
400
| NM
401
| Z
402
| PM
403
| PB
404
|-
405
406
! PM
407
| Z
408
| Z
409
| Z
410
| PM
411
| PB
412
|-
413
414
! PB
415
| PM
416
| PM
417
| PM
418
| PB
419
| PB
420
|}
421
422
<span id='f0050'></span>
423
424
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
425
|-
426
|
427
428
429
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0009.jpg|center|546px|Fuzzy reasoning of a zero order Takagi-Sugeno fuzzy inference system.]]
430
431
432
|-
433
| <span style="text-align: center; font-size: 75%;">
434
435
Fig. 9.
436
437
Fuzzy reasoning of a zero order Takagi-Sugeno fuzzy inference system.
438
439
</span>
440
|}
441
442
The fuzzy PD controller has three scaling parameters, i.e., K<sub>e</sub> , K<sub>ce</sub> , and K<sub>u</sub> , and it has three adjustable parameters for the input membership function and coefficient of consequent part, i.e., X, V, and H. By varying this parameter, the optimal solution for the speed control of the brushless dc motor is obtained. This parameter is tuned by using particle swarm optimization, cuckoo search and bat algorithm, and it has been outlined in section V.      
443
444
Regarding the design of fuzzy PID controller, it is straightforward to imagine a fuzzy PID with three input terms: error, integral error, and derivative error. A rule base with three inputs and output will increase the fuzzy rules as mentioned in literature survey, and also, rules concerning the integral action are troublesome [[#bib0065|[12]]] . Therefore, it is common to separate the integral action as in the Fuzzy PD plus Integral controller (also known as fuzzy PID controller) in [[#f0025|Fig. 4]] . The control output is computed and expressed in equation [[#e0075|(14)]]  as,
445
446
<span id='e0075'></span>
447
{| class="formulaSCP" style="width: 100%; text-align: center;" 
448
|-
449
| 
450
{| style="text-align: center; margin:auto;" 
451
|-
452
| <math>u\left(t\right)=\left(K_ee\left(t\right)+K_{ce}\frac{de\left(t\right)}{dt}+\right. </math><math>\left. \int e\left(t\right)dt\right){_\ast}K_u</math>
453
|}
454
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 14)
455
|}
456
457
By comparing, the gains in (14) and (6) are related in the following equation [[#e0080|(15)]] , [[#e0085|(16)]]  and [[#e0090|(17)]]  as,
458
459
<span id='e0080'></span>
460
{| class="formulaSCP" style="width: 100%; text-align: center;" 
461
|-
462
| 
463
{| style="text-align: center; margin:auto;" 
464
|-
465
| <math>K_p=K_e{_\ast}K_u</math>
466
|}
467
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 15)
468
|}
469
470
<span id='e0085'></span>
471
{| class="formulaSCP" style="width: 100%; text-align: center;" 
472
|-
473
| 
474
{| style="text-align: center; margin:auto;" 
475
|-
476
| <math>K_d=K_{ce}{_\ast}K_u</math>
477
|}
478
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 16)
479
|}
480
481
<span id='e0090'></span>
482
{| class="formulaSCP" style="width: 100%; text-align: center;" 
483
|-
484
| 
485
{| style="text-align: center; margin:auto;" 
486
|-
487
| <math>K_i=K_u</math>
488
|}
489
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 17)
490
|}
491
492
This controller provides all the benefits of PID control. The input and output scaling factors of the Fuzzy PID controller are K<sub>e</sub> , K<sub>ce</sub> , and K<sub>u</sub> , and it also has three adjustable parameters for the input membership function and coefficient of consequent part, i.e., X, V, and H. By adjusting this scaling factor and adjustable parameters, optimal results for the speed control of the brushless dc motor can be obtained. The fuzzy PID controller scaling factor is also tuned by using particle swarm optimization, cuckoo search and bat algorithm, and it is discussed in the section V.      
493
494
<span id='s0025'></span>
495
==4. Formulation of the objective functions for tuning of fuzzy PD and fuzzy PID controller==
496
497
A system is considered an optimum control system when the system parameters are adjusted so that the index reaches a minimum value. To be useful, a performance index must be a number that is always positive or zero. Then the best system is delineated as the system that minimizes this index.
498
499
Four commonly used performance indices for designing single-loop control algorithm are explained as follows.
500
501
The root-mean-square error (RMSE) is a frequently used measure of the differences between reference value of the closed loop system and actual output of the system, and it is expressed in equation [[#e0095|(18)]]  as,
502
503
<span id='e0095'></span>
504
{| class="formulaSCP" style="width: 100%; text-align: center;" 
505
|-
506
| 
507
{| style="text-align: center; margin:auto;" 
508
|-
509
| <math>J_1=\sqrt{\frac{{{\sum }_{i=0}^T\left(\omega {\left(t\right)}_{ref_i}-\omega {\left(t\right)}_{act_i})\right)}^2}{T}}</math>
510
|}
511
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 18)
512
|}
513
514
Where ω(t)<sub>refi</sub>  is the reference speed in rad/sec, ω(t)<sub>acti</sub>  actual speed of the motor in rad/sec at each sample and T is the total simulation time for the optimization. Essentially, the RMSE represents the sample standard deviation of the differences between reference input and actual output of the system. RMSE is a good measure of the system accuracy.      
515
516
A fairly useful performance index is the integral of absolute error (IAE), and it is expressed in the equation [[#e0100|(19)]]  as,
517
518
<span id='e0100'></span>
519
{| class="formulaSCP" style="width: 100%; text-align: center;" 
520
|-
521
| 
522
{| style="text-align: center; margin:auto;" 
523
|-
524
| <math>J_2=\int_0^T\vert \omega {\left(t\right)}_{ref}-\omega {\left(t\right)}_{act}\vert dt</math>
525
|}
526
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 19)
527
|}
528
529
IAE integrates the absolute error over time. It doesn't add weight to any of the errors in a systems response. It tends to produce a slower response in the system but results in a fairly good under damped system.
530
531
A very useful criterion that penalizes long duration transient is known as the integral of time multiplied absolute error (ITAE). It is expressed in equation [[#e0105|(20)]]  as,
532
533
<span id='e0105'></span>
534
{| class="formulaSCP" style="width: 100%; text-align: center;" 
535
|-
536
| 
537
{| style="text-align: center; margin:auto;" 
538
|-
539
| <math>J_3=\int_0^Tt{_\ast}\left(\vert \omega {\left(t\right)}_{ref}-\right. </math><math>\left. \omega {\left(t\right)}_{act}\vert \right)dt</math>
540
|}
541
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 20)
542
|}
543
544
The ITAE criterion tries to minimize time multiplied absolute error of the control system. The time multiplication term penalizes the error more at the later stages than at the start and therefore effectively reduces the settling time.
545
546
Another useful performance index is the integral of the square of the error (ISE) criterion, and it is expressed in equation [[#e0110|(21)]]  as,
547
548
<span id='e0110'></span>
549
{| class="formulaSCP" style="width: 100%; text-align: center;" 
550
|-
551
| 
552
{| style="text-align: center; margin:auto;" 
553
|-
554
| <math>J_4=\int_0^T{\left(\omega {\left(t\right)}_{ref}-\omega {\left(t\right)}_{act}\right)}^2dt</math>
555
|}
556
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 21)
557
|}
558
559
By focusing on the square of the error function. It penalizes positive and negative values of the error.
560
561
In addition, in order to improve the system performance, one more performance indices is introduced in this paper, i.e., addition of the four performance indices (RMSE + IAE + ITAE + ISE), and it is expressed in equation [[#e0115|(22)]]  as,
562
563
<span id='e0115'></span>
564
{| class="formulaSCP" style="width: 100%; text-align: center;" 
565
|-
566
| 
567
{| style="text-align: center; margin:auto;" 
568
|-
569
| <math>J_5=J_1+J_2+J_3+J_4</math>
570
|}
571
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 22)
572
|}
573
574
The five performance indices are considered as the objective function used for fuzzy PD and fuzzy PID controller tuning to ensure stability and attain superior damping to sudden load disturbance and set speed change.
575
576
<span id='s0030'></span>
577
==5. Review of nature-inspired optimization algorithms for tuning of fuzzy PD and fuzzy PID controller==
578
579
Optimization methods are extensively applied in numerous domain fields' areas such as electrical engineering, electronics engineering, and mechanical engineering, etc. During the last couple of years, many optimization algorithms have been created based on the nature inspired resemblance. However, these algorithms are not always able to solve some problems in the best way. Although it has been shown that these are good methods to solve complex problems, there are no methods yet to know the optimal parameters to solve problems that can be set at the beginning when using the algorithms. In this section, we briefly described the optimization algorithms used in this paper, i.e., particle swarm optimization, cuckoo search algorithm, and bat search algorithm for tuning of the input and output scaling factor and parameter of antecedent and consequent part of the fuzzy PD and fuzzy PID controller. The following subsections briefly describe the basic theory of each algorithm in its original form. This description is considered necessary to grasp the ideas behind the use of fuzzy PD and Fuzzy PID logic in enhancing the original Meta-heuristic methods by providing them with dynamic parameter adaptation capabilities.
580
581
===5.1. Particle swarm optimization===
582
583
Particle Swarm Optimization (PSO) is a population based stochastic optimization technique developed by Kennedy and Eberhart in 1995 inspired by the social behavior of bird flocking or fish schooling. The particle swarm concept was motivated from the simulation of social behavior. PSO requires only primitive mathematical operators, and is computationally inexpensive in terms of both memory requirements and time. A swarm in PSO consists of a number of particles. Each particle represents a potential solution to the optimization task. Each particle represents a candidate solution. Each particle moves to a new position according to the new velocity which includes its previous velocity and the moving vectors according to the past best solution and global best solution. The best solution is then kept; each particle accelerates in the directions of not only the local best solution but also the global best position. If a particle discovers a new probable solution, other particles will move closer to it in order to explore the region. The basic steps for PSO are given in the flowchart as shown in [[#f0055|Fig. 10]] .
584
585
<span id='f0055'></span>
586
587
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
588
|-
589
|
590
591
592
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0010.jpg|center|282px|Flowchart for Particle Swarm optimization.]]
593
594
595
|-
596
| <span style="text-align: center; font-size: 75%;">
597
598
Fig. 10.
599
600
Flowchart for Particle Swarm optimization.
601
602
</span>
603
|}
604
605
A swarm is composed of m particles flying in the D-dimension in a certain speed. Every particle changes its position on the basis of considering its own historical best position and other particles' historical best position. The position for the ith particle is <math display="inline">{\overline{x}}_i=\left(x_{i1}\mbox{},\mbox{ }x_{i2}\mbox{},\mbox{ }\ldots \mbox{ }x_{iD}\right)</math> , where 1 ≤ i ≤ m and m is the size of the particle swarm. The speed for the ith particle is <math display="inline">{\overline{v}}_i=\left(v_{i1}\mbox{},\mbox{ }v_{i2}\mbox{},\mbox{ }\ldots \mbox{ }v_{iD}\right)</math> , where 1 ≤ i ≤ D and D is the dimension of search space. The historical best position for the ith particle (p<sub>best</sub> ) is <math display="inline">{\overline{p}}_i=\left(p_{i1}\mbox{},\mbox{ }p_{i2}\mbox{},\mbox{ }\ldots \mbox{ }p_{iD}\right)</math> . The best position for the whole swarm (g<sub>best</sub> ) is <math display="inline">{\overline{p}}_g=\left(p_{g1}\mbox{},\mbox{ }p_{g2}\mbox{},\mbox{ }\ldots \mbox{ }p_{gm}\right)g\in \left\{1,\mbox{ }2,\mbox{ }\ldots \mbox{ }m\right\}</math> .      
606
607
The speed and the position of the particle can be updated by the following formulations:
608
609
{| class="formulaSCP" style="width: 100%; text-align: center;" 
610
|-
611
| 
612
{| style="text-align: center; margin:auto;" 
613
|-
614
| <math>v_{id}\mbox{ }\left(t+1\right)=v_{id}\mbox{ }\left(t\right)+</math><math>c_1r_1\mbox{ }\left(p_{id}\mbox{ }\left(t\right)-\right. </math><math>\left. x_{id}\mbox{ }\left(t\right)\right)+c_2r_2\mbox{ }\left(p_{gd}\mbox{ }\left(t\right)-\right. </math><math>\left. x_{id}\mbox{ }\left(t\right)\right)</math>
615
|}
616
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 23)
617
|}
618
619
{| class="formulaSCP" style="width: 100%; text-align: center;" 
620
|-
621
| 
622
{| style="text-align: center; margin:auto;" 
623
|-
624
| <math>x_{id}\mbox{ }\left(t+1\right)=x_{id}\mbox{ }\left(t\right)+</math><math>v_{id}\mbox{ }\left(t+1\right)</math>
625
|}
626
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 24)
627
|}
628
629
Where c<sub>1</sub>  and c<sub>2</sub>  are learning factors and are positive constant, <math display="inline">x_{id}\mbox{ }\left(t\right)</math>  is the position vector for the ith particle, <math display="inline">v_{id}\mbox{ }\left(t\right)</math>  is the associated speed vector. Due to the learning factor, the particles have the capability of self-summing up and learning from the excellent individual of the group, the particle could be close to its own historical best position as well as to the historical best position of the group. The learning factors c<sub>1</sub>  and c<sub>2</sub>  are usually set as 2. The values of r<sub>1</sub>  and r<sub>2</sub>  are randomly distributed in [0,1]. The speed of particles is restricted within the maximum speed V<sub>max</sub> . Shi and Eberhart introduced the idea of inertia weight to improve an algorithms astringency, and the revised formulation of the speed is shown in following equation,
630
631
{| class="formulaSCP" style="width: 100%; text-align: center;" 
632
|-
633
| 
634
{| style="text-align: center; margin:auto;" 
635
|-
636
| <math>v_{id}\mbox{ }\left(t+1\right)=\omega v_{id}\mbox{ }\left(t\right)+</math><math>c_1r_1\mbox{ }\left(p_{id}\mbox{ }\left(t\right)-\right. </math><math>\left. x_{id}\mbox{ }\left(t\right)\right)+c_2r_2\mbox{ }\left(p_{gd}\mbox{ }\left(t\right)-\right. </math><math>\left. x_{id}\mbox{ }\left(t\right)\right)</math>
637
|}
638
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 25)
639
|}
640
641
Where ω is the inertia weight, the value of which decides the quantity inherited from the current speed of the particle. If it is chosen properly, then the particle will have the balanced ability of exploitation and development.
642
643
===5.2. Cuckoo search algorithm===
644
645
In 2009, Xin-She Yang and Suash Deb proposed a new metaheuristic optimization technique named Cuckoo search algorithm. It is based on the brood parasitic breeding behavior of some species of cuckoos. It follows the cuckoos strategy of finding other birds nest where they would lay eggs. Cuckoos try to find a nest in which host has just laid its eggs so that their eggs would hatch before the host because of this fact that cuckoo eggs hatch earlier than their host eggs. Other interesting feature of cuckoo birds is the mimicry in color and pattern of eggs of some of the host species. It would help in their ability to reproduce and survival of eggs or their chick. The cuckoos chick forced out the egg or young of the host from the nest. It would increase its share in food by frequent calling and by mimic the call of hosts chick. Some host birds are able to detect the contamination of their nest by cuckoos or they can distinguish between their eggs and cuckoos eggs, then they will either throw these foreigner eggs or vacate their nest and develop a new shelter or nest. The main theme of this algorithm is to choose the best nest with potentially good solutions or eggs. Each nest is a representative of a potential candidate [[#bib0085|[16]]]  and [[#bib0090|[17]]] . The three significant rules that are used for implementing CSA algorithm are discussed as follow:
646
* Each cuckoo lays single egg and places it in an arbitrarily chosen nest.
647
* The best nests carry the potential solution which will move onto next generation.
648
* The available host nests are limited and a host bird can find the foreign eggs by a probability ‘p’ which ranges [0, 1].
649
650
For generating a new nest for cuckoos, a law named Levy flight is used which is as follows:
651
652
<span id='e0135'></span>
653
{| class="formulaSCP" style="width: 100%; text-align: center;" 
654
|-
655
| 
656
{| style="text-align: center; margin:auto;" 
657
|-
658
| <math>x_c\mbox{ }\left(t+1\right)=x_c\mbox{ }\left(t\right)+</math><math>{\alpha }_0\oplus Levy\left({\lambda }_0\right)</math>
659
|}
660
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 26)
661
|}
662
663
Where α<sub>0</sub><sub>0</sub>  > 0) is step size and is related to the problem specified in the equation [[#e0135|(26)]]  represents a random walk which is a Markov chain which means its next step depends on the current location and the transition probability. The random walk proves to be more promising in exploring the search space due to its longer step length in long run. The Levy flight is characterized by random walk which is derived from the Levy distribution with an infinite variance and infinite mean. The Levy distribution in the proposed CSA is developed using the exponential law proposed by Mantegna. In this, the step size should be taken as λ<sub>0</sub> /100, where λ<sub>0</sub>  is the search space size as Levy distribution may be too strong for larger step size that new solutions may be opted out from the searched space [[#bib0125|[24]]] . The basic steps for CSA are given in the flowchart as shown in [[#f0060|Fig. 11]] .
664
665
<span id='f0060'></span>
666
667
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
668
|-
669
|
670
671
672
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0011.jpg|center|395px|Flowchart for Cuckoo search algorithm.]]
673
674
675
|-
676
| <span style="text-align: center; font-size: 75%;">
677
678
Fig. 11.
679
680
Flowchart for Cuckoo search algorithm.
681
682
</span>
683
|}
684
685
===5.3. BAT algorithm===
686
687
The bat algorithm uses the echolocation behavior of bats. These bats emit a very loud sound pulse (echolocation) and listens for the echo that bounces back from the surrounding objects. Their signal bandwidth varies depending on the species. Each sound pulse includes frequency, loudness, and pulse emission rate. Most bats use signals with tuning frequencies while the rest use fixed-frequency signals. The frequency range used by these creatures is between 25 KHz to 150 KHz. Bat algorithms are based on the following aspects; all bats use echolocation and distinguish the difference between victim and obstruction. Bats are flying with a random velocity, in a random location, with a variable frequency, loudness, and the pulse emission rate [[#bib0100|[19]]] , [[#bib0105|[20]]]  and [[#bib0130|[25]]] . Bat algorithm is bad at exploration and exploitation. In order to tackle with the problem mentioned above, distribution of the population modification structure has been proposed for the original algorithm. The flowchart for the proposed bat algorithm is shown in [[#f0065|Fig. 12]] . Bat algorithm for optimization of tuning of the adjustable parameter in fuzzy PD and fuzzy PID controller as follows:
688
* '''Step1:'''
689
690
Formulation of Objective function J(S) for optimization with S = (S1… S<sub>d</sub> ), where d is the number of tuning parameter.                  
691
692
The fitness function can be defined as a particular type of objective function that is used to summarize, as a single figure of merit. In general, the fitness function should be a measure of how closely the model prediction matches the observed or expected data for a given set of model parameters. The notion of fitness is fundamental to the application of evolutionary algorithms; the degree of success in their application may depend critically on the definition of a fitness that changes neither too rapidly nor too slowly with the design parameters of the optimization problem. The fitness function must guarantee that individuals can be differentiated according to their suitability for solving the optimization problem.
693
694
In evolutionary algorithms, the performance of the individual run is measured by a fitness function. After each iteration, the members are given a performance measure derived from the fitness function, and the “fittest” members of the population will propagate for the next iteration. In this paper, to assure stability and attain superior damping to sudden load disturbance and set speed variations, the parameters of the controllers may be chosen to minimize the objective function described by the equations ([[#e0095|(18)]] , [[#e0100|(19)]] , [[#e0105|(20)]] , [[#e0110|(21)]]  and [[#e0115|(22)]] ) is considered as a fitness function for the optimization,                  
695
696
For fuzzy PD and fuzzy PID controller: d = 6, S1 = Ke, S2 = Kce, S3 = Ku, S4 = H, S5 = X, and S6 = V.
697
698
The range for tuning parameter in fuzzy PD controller and fuzzy PID controller is given in equation [[#e0140|(27)]]  as,
699
700
<span id='e0140'></span>
701
{| class="formulaSCP" style="width: 100%; text-align: center;" 
702
|-
703
| 
704
{| style="text-align: center; margin:auto;" 
705
|-
706
| <math>\begin{array}{c}
707
0<Ke,\mbox{ }Kce,\mbox{ }Ku,\mbox{ }H,\mbox{ }X,\mbox{ }and\mbox{ }V\leq 150
708
\end{array}</math>
709
|}
710
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 27)
711
|}
712
713
<span id='f0065'></span>
714
715
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
716
|-
717
|
718
719
720
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0012.jpg|center|819px|Full-size image (122 K)]]
721
722
723
|-
724
| <span style="text-align: center; font-size: 75%;">
725
726
Fig. 12.
727
728
Flowchart for the Bat algorithm.
729
730
</span>
731
|}
732
* '''Sep 2:'''  Initialize the bat population S<sub>i</sub>  and initial velocity L<sub>i</sub>  for (i = 1, 2… n), where n is the number of bat populations.                          
733
* '''Step 3:'''  Define pulse frequency f<sub>i</sub>  at S<sub>i</sub> . Initialize pulse rates P<sub>i</sub> , maximum number of iterations and the loudness factor R<sub>i</sub>
734
* '''Step 4:'''  Loop:
735
* Start;
736
* t=0;
737
* While (t <Maximum number of iterations)
738
* t=t+1; iteration count.
739
* Generate new solutions by adjusting frequency and updating velocities and locations/solutions by the equation ([[#e0145|(28)]] , [[#e0150|(29)]]  and [[#e0155|(30)]] )
740
741
<span id='e0145'></span>
742
{| class="formulaSCP" style="width: 100%; text-align: center;" 
743
|-
744
| 
745
{| style="text-align: center; margin:auto;" 
746
|-
747
| <math>f_i=f_{min}+\left(f_{max}-f_{min}\right)\gamma </math>
748
|}
749
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 28)
750
|}
751
752
<span id='e0150'></span>
753
{| class="formulaSCP" style="width: 100%; text-align: center;" 
754
|-
755
| 
756
{| style="text-align: center; margin:auto;" 
757
|-
758
| <math>L_i^t=L_i^{t-1}+\left(S_i^{t-1}-S_b\right)f_i</math>
759
|}
760
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 29)
761
|}
762
763
<span id='e0155'></span>
764
{| class="formulaSCP" style="width: 100%; text-align: center;" 
765
|-
766
| 
767
{| style="text-align: center; margin:auto;" 
768
|-
769
| <math>S_i^t=S_i^{t-1}+L_i^t</math>
770
|}
771
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 30)
772
|}
773
* Where, γ is a random vector drawn from a uniform distribution and frequency range f<sub>min</sub>  = 0 and f<sub>max</sub>  = 100. S<sub>b</sub>  is a global best for every iteration or generation.                                                  
774
* The second term of the Equation [[#e0150|(29)]]  provides local search with guidance of the best solution in the standard algorithm. Exclusive usage of this term may cause premature convergence problem, thus solutions get stuck at a local minimum. When the best solution is near a local minimum toward the end of optimization process, the i<sup>th</sup>  solution can have no chance to get away from that undesired local minimum as the movement of the i<sup>th</sup>  particle depends on such best solution toward the end of the optimization process [[#bib0135|[26]]] . For this purpose, the velocity equation has been modified to perform the situation that the k<sup>th</sup>  solution could also affect the i<sup>th</sup>  solution. The equation [[#e0150|(29)]]  modified as,
775
776
{| class="formulaSCP" style="width: 100%; text-align: center;" 
777
|-
778
| 
779
{| style="text-align: center; margin:auto;" 
780
|-
781
| <math>L_i^t=L_i^{t-1}+\left(S_i^t-S_b\right)f_i{\xi }_1+</math><math>\left(S_i^t-S_k^t\right)f_i{\xi }_2</math>
782
|}
783
| style="width: 5px;text-align: right;white-space: nowrap;" | 
784
|}
785
786
{| class="formulaSCP" style="width: 100%; text-align: center;" 
787
|-
788
| 
789
{| style="text-align: center; margin:auto;" 
790
|-
791
| <math>{\xi }_1+{\xi }_2=1</math>
792
|}
793
| style="width: 5px;text-align: right;white-space: nowrap;" | 
794
|}
795
* Where S<sub>k</sub>  is one of the best solutions randomly chosen among the population<math display="inline">\left(i\not =k\right)</math> , <math display="inline">{\xi }_1</math>  is learning factor ranging from <math display="inline">{\omega }_{min}</math>  to <math display="inline">{\omega }_{max}</math> . As the value of <math display="inline">{\xi }_1</math>  increases, the effect of the best solution (S<sub>b</sub> ) is higher than the k<sup>th</sup>  solution and vice versa. The <math display="inline">{\xi }_1</math>  value has to be updated as iterations proceed in order that the solution can switch from global to local search.                                                  
796
797
<math display="inline">{\xi }_1={\omega }_{max}\mbox{ }\left(1-e^{-iter}\right)+</math><math>{\omega }_{min}</math>
798
* Where, “iter” is the current iteration number, <math display="inline">{\omega }_{max}</math>  and <math display="inline">{\omega }_{min}</math>  are maximum and minimum inertia weight. The inertia weights of the optimization are chosen as 0.9 and 0.1 respectively. This procedure called as distribution of the population modification structure.                                                  
799
* If (random number (0 to 1) > P<sub>i</sub> )
800
* Select a solution among the best solutions and generate a local solution around the selected best solution using the equation [[#e0170|(31)]] ,
801
802
<span id='e0170'></span>
803
{| class="formulaSCP" style="width: 100%; text-align: center;" 
804
|-
805
| 
806
{| style="text-align: center; margin:auto;" 
807
|-
808
| <math>S_i^t=S_b+\epsilon R^t</math>
809
|}
810
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 31)
811
|}
812
* Where, ε is a random number. While R<sub>t</sub>  = < R<sub>t</sub><sup>i</sup>  > is the average loudness of all the bats at this time step (t).                                                  
813
* End if
814
* Generate a new solution by flying randomly
815
* If (random number (0 to 1) < R<sub>i</sub>  & J(S<sub>i</sub> ) < J(S<sub>b</sub> ))
816
* Accept the new solutions,
817
* Increase P<sub>i</sub>  and reduce R<sub>i</sub>  using equation [[#e0175|(32)]]  and [[#e0180|(33)]] .
818
819
<span id='e0175'></span>
820
{| class="formulaSCP" style="width: 100%; text-align: center;" 
821
|-
822
| 
823
{| style="text-align: center; margin:auto;" 
824
|-
825
| <math>R_i^{t+1}=\beta R_i^t\mbox{},\mbox{ }P_i^{t+1}=</math><math>P_i^0\mbox{ }\left(1-e^{\left(-\sigma t\right)}\right)</math>
826
|}
827
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 32)
828
|}
829
* Where, β and σ are constants. For any 0 < β < 1 and σ > 0, we have
830
831
<span id='e0180'></span>
832
{| class="formulaSCP" style="width: 100%; text-align: center;" 
833
|-
834
| 
835
{| style="text-align: center; margin:auto;" 
836
|-
837
| <math>R_i^t\rightarrow 0,\mbox{ }P_i^t=P_i^0\mbox{},\mbox{ }\mbox{as}\mbox{ }t\rightarrow \infty </math>
838
|}
839
| style="width: 5px;text-align: right;white-space: nowrap;" | ( 33)
840
|}
841
* For simplicity, β = σ can be used, and for this work, β = σ = 0.9 is considered.
842
* End if
843
* Rank the bats and find the current best (S<sub>b</sub> )                                                  
844
* End while
845
* Loop end
846
* '''Step 5:'''  Display the optimum solutions.                  
847
848
Bat algorithm has many advantages, and one of the key advantages is that it can provide very quick convergence at a very initial stage by switching from exploration to exploitation. This makes it an efficient algorithm for applications such as classifications and others when a quick solution is needed. There are many reasons for the success of bat-based algorithms. By analyzing the key features and updating equations, we can summarize the following three key points/features:
849
* Frequency tuning: Bat algorithm uses echolocation and frequency tuning to solve problems. Though echolocation is not directly used to mimic the true function in reality, frequency variations are used. This capability can provide some functionality that may be similar to the key feature used in particle swarm optimization and harmony search. Therefore, bat algorithm possesses the advantages of other swarm-intelligence-based algorithms.
850
* Automatic zooming: Bat algorithm has a distinct advantage over other metaheuristic algorithms. That is, Bat algorithm has a capability of automatically zooming into a region where promising solutions have been found. This zooming is accompanied by the automatic switch from explorative moves to local intensive exploitation. As a result, bat algorithm has a quick convergence rate, at least at early stages of the iterations, compared with other algorithms.
851
* Parameter control: Many metaheuristic algorithms used fixed parameters by using some, pre-tuned algorithm-dependent parameters. In contrast, bat algorithm uses parameter control, which can vary the values of parameters (P and R) as the iterations proceed. This provides a way to automatically switch from exploration to exploitation when the optimal solution is approaching. This gives another advantage of bat algorithm over other metaheuristic algorithms.
852
853
Likely many metaheuristic algorithms, bat algorithm has the advantage of simplicity and flexibility. Bat algorithm is easy to implement, and such a simple algorithm can be very flexible to solve a wide range of problems as we have seen in the above review. In addition, preliminary theoretical analysis by Huang suggested that Bat algorithm has guaranteed global convergence properties under the right condition, and bat algorithm can also solve large-scale problems effectively [[#bib0140|[27]]]  and [[#bib0145|[28]]] .      
854
855
<span id='s0050'></span>
856
==6. Simulation results and discussions==
857
858
In this section, the superiority of particle swarm, cuckoo search, and bat algorithms optimized fuzzy PD controller over particle swarm, cuckoo search, and bat algorithms optimized fuzzy PID controller is proved through simulation for the speed control of BLDC motor. The parameters of the considered algorithms are given in [[#t0015|Table 2]] . PSO, Cuckoo and bat algorithm progressively minimize the objective functions (18) to (22) over the iterations while finding optimal set of parameters for the fuzzy PD and fuzzy PID controller. The program stops if the value of the objective function does not change appreciably over consecutive iterations (i.e. the change is less than the pre-specified tolerance level) or the maximum number of iterations is exceeded. The maximum number of iterations is kept as 10 and the tolerance level is kept at 10<sup>−6</sup> . With a population of P = 10 individuals for G = 10 generations, the fitness function in Equation [[#e0095|(18)]] , [[#e0100|(19)]] , [[#e0105|(20)]] , [[#e0110|(21)]]  and [[#e0115|(22)]]  are evaluated 100 times. Indeed, this number (E = P x G) represents the act of evaluating points inside the search space. The optimization procedure is performed using Matlab-R2010a, M-file under Windows 7 on a PC Pentium dual core processor CPU, and 2.1 GHz speed system. Totally, 50 trials have been performed, in order to be definite that convergence has taken place and 5000 function has been evaluated for 50 trails.
859
860
<span id='t0015'></span>
861
862
{| class="wikitable" style="min-width: 60%;margin-left: auto; margin-right: auto;"
863
|+
864
865
Table 2.
866
867
Parameters of the PSO, Cuckoo, and Bat algorithm.
868
869
|-
870
871
! colspan="2" | PSO
872
! colspan="2" | Cuckoo search
873
! colspan="2" | Bat algorithm
874
|-
875
876
| Generation
877
| 10
878
| Generation
879
| 10
880
| Generation
881
| 10
882
|-
883
884
| Population size
885
| 10
886
| Number of nests
887
| 10
888
| Population size
889
| 10
890
|-
891
892
| Cognitive parameter (c1)
893
| 2
894
| rowspan="5" | Discovery rate (pa)
895
| rowspan="5" | 0.25
896
| β = σ
897
| 0.9
898
|-
899
900
| Social parameter (c2)
901
| 2
902
| P<sub>1</sub><sup>0</sup>
903
| 0.9
904
|-
905
906
| Initial weight (W<sub>min</sub> )                                                    
907
| 0.9
908
| R<sub>1</sub><sup>0</sup>
909
| 0.9
910
|-
911
912
| rowspan="2" | Final weight (W<sub>max</sub> )                                                    
913
| rowspan="2" | 0.4
914
| f<sub>min</sub>
915
| 0
916
|-
917
918
| f<sub>max</sub>
919
| 100
920
|-
921
922
| Trial
923
| 50
924
| Trial
925
| 50
926
| Trial
927
| 50
928
|}
929
930
[[#f0070|Fig. 13]] (a) shows the optimization of the fuzzy PD, fuzzy PID controller using PSO, Cuckoo search and Bat algorithm.
931
932
<span id='f0070'></span>
933
934
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
935
|-
936
|
937
938
939
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0013.jpg|center|819px|Full-size image (121 K)]]
940
941
942
|-
943
| <span style="text-align: center; font-size: 75%;">
944
945
Fig. 13.
946
947
(a). Optimization of the fuzzy PD, fuzzy PID controller using PSO, Cuckoo search and Bat algorithm. (b). Initial membership function for error, rate of change of error and output surface of fuzzy PD and fuzzy PID controller.
948
949
</span>
950
|}
951
952
[[#f0070|Fig. 13]] (b) shows the initial guess for the error and rate of change error membership functions and output surface of the fuzzy PD and fuzzy PID controller. Initial values for input and output scaling factor of the fuzzy PD and fuzzy PID controller are K<sub>e</sub>  = 150, K<sub>ce</sub>  = 150 and K<sub>u</sub>  = 150. Initial values of antecedent and consequent part of the fuzzy PD and fuzzy PID controller are X = V = H = 150.      
953
954
[[#f0075|Fig. 14]]  shows the convergence graph of above stated algorithms for tuning of fuzzy PD controller. The tuning parameter of the fuzzy PD controller with considered algorithms are shown in [[#t0020|Table 3]] . The objective function value for final best population is best only for bat algorithm over PSO and Cuckoo search, and also, the average computation time taken by the bat algorithm is less than PSO and Cuckoo search. From the convergence graph and [[#t0020|Table 3]] , bat algorithm has superior objective function value and less average computation time than other two algorithms.
955
956
<span id='f0075'></span>
957
958
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
959
|-
960
|
961
962
963
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0014.jpg|center|546px|Convergence graph for tuning parameter of the fuzzy PD controller.]]
964
965
966
|-
967
| <span style="text-align: center; font-size: 75%;">
968
969
Fig. 14.
970
971
Convergence graph for tuning parameter of the fuzzy PD controller.
972
973
</span>
974
|}
975
976
<span id='t0020'></span>
977
978
{| class="wikitable" style="min-width: 60%;margin-left: auto; margin-right: auto;"
979
|+
980
981
Table 3.
982
983
Optimal value of tuning parameter of the Fuzzy PD controller with PSO, Cuckoo search and Bat algorithm.
984
985
|-
986
987
! colspan="12" | RMSE (J1)
988
|-
989
990
! Algorithm
991
! Ke
992
! Kce
993
! Ku
994
! H
995
! X
996
! V
997
! Best
998
! Worst
999
! Mean
1000
! Standard deviation
1001
! Average computation time (sec)
1002
|-
1003
1004
| PSO
1005
| 66.7792
1006
| 139.0034
1007
| 14.3992
1008
| 56.4864
1009
| 82.2190
1010
| 16.9855
1011
| 0.1074
1012
| 0.1550
1013
| 0.1204
1014
| 0.0186
1015
| 429.7240
1016
|-
1017
1018
| Cuckoo
1019
| 36.0998
1020
| 111.5952
1021
| 58.1305
1022
| 36.9542
1023
| 101.9201
1024
| 110.7451
1025
| 0.1235
1026
| 0.1554
1027
| 0.1315
1028
| 0.0104
1029
| 642.5300
1030
|-
1031
1032
| '''Bat'''
1033
| '''118.8531'''
1034
| '''143.9291'''
1035
| '''98.3967'''
1036
| '''5.4544'''
1037
| '''127.3857'''
1038
| '''140.1068'''
1039
| '''0.1026'''
1040
| '''0.1557'''
1041
| '''0.1074'''
1042
| '''0.0160'''
1043
| '''248.7020'''
1044
|}
1045
1046
{| class="wikitable" style="min-width: 60%;margin-left: auto; margin-right: auto;"
1047
1048
|-
1049
1050
! colspan="12" | IAE (J2)
1051
|-
1052
1053
! Algorithm
1054
! Ke
1055
! Kce
1056
! Ku
1057
! H
1058
! X
1059
! V
1060
! Best
1061
! Worst
1062
! Mean
1063
! Standard deviation
1064
! Average computation time (sec)
1065
|-
1066
1067
| PSO
1068
| 150.0000
1069
| 0.1000
1070
| 19.9640
1071
| 82.3017
1072
| 131.0437
1073
| 150.0000
1074
| 0.0082
1075
| 0.0134
1076
| 0.0095
1077
| 0.0020
1078
| 387.4590
1079
|-
1080
1081
| Cuckoo
1082
| 0.4399
1083
| 0.9269
1084
| 137.4575
1085
| 97.3321
1086
| 4.5031
1087
| 149.5709
1088
| 0.0091
1089
| 0.0133
1090
| 0.0102
1091
| 0.0015
1092
| 909.3230
1093
|-
1094
1095
| '''Bat'''
1096
| '''66.1901'''
1097
| '''8.6379'''
1098
| '''42.3185'''
1099
| '''64.3631'''
1100
| '''85.0581'''
1101
| '''44.1775'''
1102
| '''0.0080'''
1103
| '''0.0134'''
1104
| '''0.0085'''
1105
| '''0.0016'''
1106
| '''252.8630'''
1107
|}
1108
1109
{| class="wikitable" style="min-width: 60%;margin-left: auto; margin-right: auto;"
1110
1111
|-
1112
1113
! colspan="12" | ITAE (J3)
1114
|-
1115
1116
! Algorithm
1117
! Ke
1118
! Kce
1119
! Ku
1120
! H
1121
! X
1122
! V
1123
! Best
1124
! Worst
1125
! Mean
1126
! Standard deviation
1127
! Average computation time (sec)
1128
|-
1129
1130
| PSO
1131
| 48.5968
1132
| 147.0557
1133
| 50.4469
1134
| 48.6462
1135
| 61.7448
1136
| 147.1379
1137
| 0.0005
1138
| 0.0014
1139
| 0.0007
1140
| 0.0003
1141
| 384.1950
1142
|-
1143
1144
| Cuckoo
1145
| 82.2899
1146
| 94.4075
1147
| 24.8378
1148
| 149.7029
1149
| 150.0000
1150
| 63.9726
1151
| 0.0005
1152
| 0.0014
1153
| 0.0008
1154
| 0.0004
1155
| 603.4860
1156
|-
1157
1158
| '''Bat'''
1159
| '''104.3006'''
1160
| '''10.2912'''
1161
| '''38.2921'''
1162
| '''33.6826'''
1163
| '''100.2072'''
1164
| '''126.6734'''
1165
| '''0.0004'''
1166
| '''0.0009'''
1167
| '''0.0005'''
1168
| '''0.0002'''
1169
| '''271.4610'''
1170
|}
1171
1172
{| class="wikitable" style="min-width: 60%;margin-left: auto; margin-right: auto;"
1173
1174
|-
1175
1176
! colspan="12" | ISE (J4)
1177
|-
1178
1179
! Algorithm
1180
! Ke
1181
! Kce
1182
! Ku
1183
! H
1184
! X
1185
! V
1186
! Best
1187
! Worst
1188
! Mean
1189
! Standard deviation
1190
! Average computation time (sec)
1191
|-
1192
1193
| PSO
1194
| 26.2795
1195
| 81.5246
1196
| 26.6294
1197
| 125.1210
1198
| 148.0905
1199
| 75.6607
1200
| 0.0031
1201
| 0.0096
1202
| 0.0045
1203
| 0.0022
1204
| 426.7350
1205
|-
1206
1207
| Cuckoo
1208
| 4.7749
1209
| 89.7148
1210
| 61.6997
1211
| 113.4746
1212
| 81.9585
1213
| 149.9967
1214
| 0.0032
1215
| 0.0093
1216
| 0.0048
1217
| 0.0023
1218
| 540.2730
1219
|-
1220
1221
| '''Bat'''
1222
| '''72.6903'''
1223
| '''126.7381'''
1224
| '''31.4841'''
1225
| '''82.8827'''
1226
| '''94.5138'''
1227
| '''4.8897'''
1228
| '''0.0030'''
1229
| '''0.0094'''
1230
| '''0.0036'''
1231
| '''0.0019'''
1232
| '''263.7860'''
1233
|}
1234
1235
{| class="wikitable" style="min-width: 60%;margin-left: auto; margin-right: auto;"
1236
1237
|-
1238
1239
! colspan="12" | RMSE + IAE + ITAE + ISE (J5)
1240
|-
1241
1242
! Algorithm
1243
! Ke
1244
! Kce
1245
! Ku
1246
! H
1247
! X
1248
! V
1249
! Best
1250
! Worst
1251
! Mean
1252
! Standard deviation
1253
! Average Computation Time (sec)
1254
|-
1255
1256
| PSO
1257
| 10.3533
1258
| 19.7405
1259
| 50.7451
1260
| 99.9594
1261
| 83.7049
1262
| 150.0000
1263
| 0.1381
1264
| 0.1525
1265
| 0.1440
1266
| 0.0052
1267
| 405.4830
1268
|-
1269
1270
| Cuckoo
1271
| 36.5949
1272
| 79.8609
1273
| 24.5980
1274
| 78.3844
1275
| 99.9910
1276
| 49.4134
1277
| 0.1221
1278
| 0.1521
1279
| 0.1281
1280
| 0.0102
1281
| 483.2470
1282
|-
1283
1284
| '''Bat'''
1285
| '''16.0324'''
1286
| '''17.1473'''
1287
| '''117.9016'''
1288
| '''44.0223'''
1289
| '''90.7856'''
1290
| '''144.8829'''
1291
| '''0.1138'''
1292
| '''0.1538'''
1293
| '''0.1175'''
1294
| '''0.0121'''
1295
| '''305.2550'''
1296
|}
1297
1298
[[#f0080|Fig. 15]]  shows the after optimization of the error membership function of the fuzzy PD controller using PSO, Cuckoo search and bat algorithm with five objective functions. [[#f0085|Fig. 16]]  shows the after optimization of the rate of change of membership function for the fuzzy PD controller using PSO, Cuckoo search and bat algorithm with five objective functions. [[#f0090|Fig. 17]]  shows the after optimization of the output surface of the fuzzy PD controller with five objective functions.
1299
1300
<span id='f0080'></span>
1301
1302
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
1303
|-
1304
|
1305
1306
1307
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0015.jpg|center|px|Error membership function of fuzzy PD controller after optimization using PSO, ...]]
1308
1309
1310
|-
1311
| <span style="text-align: center; font-size: 75%;">
1312
1313
Fig. 15.
1314
1315
Error membership function of fuzzy PD controller after optimization using PSO, Cuckoo search and bat algorithm.
1316
1317
</span>
1318
|}
1319
1320
<span id='f0085'></span>
1321
1322
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
1323
|-
1324
|
1325
1326
1327
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0016.jpg|center|px|Rate of change of error membership function of fuzzy PD controller after ...]]
1328
1329
1330
|-
1331
| <span style="text-align: center; font-size: 75%;">
1332
1333
Fig. 16.
1334
1335
Rate of change of error membership function of fuzzy PD controller after optimization using PSO, Cuckoo search and bat algorithm.
1336
1337
</span>
1338
|}
1339
1340
<span id='f0090'></span>
1341
1342
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
1343
|-
1344
|
1345
1346
1347
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0017.jpg|center|px|Output surface of the fuzzy PD controller after optimization using PSO, Cuckoo ...]]
1348
1349
1350
|-
1351
| <span style="text-align: center; font-size: 75%;">
1352
1353
Fig. 17.
1354
1355
Output surface of the fuzzy PD controller after optimization using PSO, Cuckoo search and bat algorithm.
1356
1357
</span>
1358
|}
1359
1360
[[#f0095|Fig. 18]]  shows the convergence graph for the tuning parameters of the fuzzy PID controller. Optimization results for the fuzzy PID controller are shown in [[#t0025|Table 4]] . The objective function value is only best for the bat algorithm over PSO and cuckoo search. And also the average computation time is less for bat algorithm than PSO and cuckoo search. Again, bat algorithm has outperformed the other two algorithms since minimum objective function value and less computation time is obtained than other two algorithms. [[#f0100|Fig. 19]]  shows the after optimization of the error membership function of the fuzzy PID controller using PSO, Cuckoo search and bat algorithm with five objective functions. [[#f0105|Fig. 20]]  shows the after optimization of the rate of change of membership function for the fuzzy PID controller using PSO, Cuckoo search and bat algorithm with five objective functions. [[#f0110|Fig. 21]]  shows the after optimization of the output surface of the fuzzy PID controller with five objective functions.
1361
1362
<span id='f0095'></span>
1363
1364
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
1365
|-
1366
|
1367
1368
1369
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0018.jpg|center|546px|Convergence graph for tuning parameter of the fuzzy PID controller.]]
1370
1371
1372
|-
1373
| <span style="text-align: center; font-size: 75%;">
1374
1375
Fig. 18.
1376
1377
Convergence graph for tuning parameter of the fuzzy PID controller.
1378
1379
</span>
1380
|}
1381
1382
<span id='t0025'></span>
1383
1384
{| class="wikitable" style="min-width: 60%;margin-left: auto; margin-right: auto;"
1385
|+
1386
1387
Table 4.
1388
1389
Optimal value of tuning parameter of the Fuzzy PID controller with PSO, Cuckoo search and Bat algorithm.
1390
1391
|-
1392
1393
! colspan="12" | RMSE (J1)
1394
|-
1395
1396
! Algorithm
1397
! Ke
1398
! Kce
1399
! Ku
1400
! H
1401
! X
1402
! V
1403
! Best
1404
! Worst
1405
! Mean
1406
! Standard deviation
1407
! Average computation time (sec)
1408
|-
1409
1410
| PSO
1411
| 88.2954
1412
| 144.5239
1413
| 12.9768
1414
| 75.1248
1415
| 78.2863
1416
| 13.6159
1417
| 0.1084
1418
| 0.1391
1419
| 0.1159
1420
| 0.0108
1421
| 384.4700
1422
|-
1423
1424
| Cuckoo
1425
| 90.3794
1426
| 125.3976
1427
| 101.0240
1428
| 13.9376
1429
| 126.4255
1430
| 51.8392
1431
| 0.1109
1432
| 0.1570
1433
| 0.1270
1434
| 0.0146
1435
| 516.1440
1436
|-
1437
1438
| '''Bat'''
1439
| '''28.9570'''
1440
| '''18.5499'''
1441
| '''30.9032'''
1442
| '''22.0622'''
1443
| '''28.4416'''
1444
| '''6.4933'''
1445
| '''0.1082'''
1446
| '''0.1240'''
1447
| '''0.1097'''
1448
| '''0.0048'''
1449
| '''257.8630'''
1450
|}
1451
1452
{| class="wikitable" style="min-width: 60%;margin-left: auto; margin-right: auto;"
1453
1454
|-
1455
1456
! colspan="12" | IAE (J2)
1457
|-
1458
1459
! Algorithm
1460
! Ke
1461
! Kce
1462
! Ku
1463
! H
1464
! X
1465
! V
1466
! Best
1467
! Worst
1468
! Mean
1469
! Standard deviation
1470
! Average computation time (sec)
1471
|-
1472
1473
| PSO
1474
| 57.0861
1475
| 150.0000
1476
| 68.6791
1477
| 25.0706
1478
| 58.6882
1479
| 130.6920
1480
| 0.0082
1481
| 0.0120
1482
| 0.0091
1483
| 0.0014
1484
| 373.5650
1485
|-
1486
1487
| Cuckoo
1488
| 33.3408
1489
| 135.1884
1490
| 51.7629
1491
| 122.8613
1492
| 92.1014
1493
| 137.6761
1494
| 0.0086
1495
| 0.0146
1496
| 0.0093
1497
| 0.0018
1498
| 603.7420
1499
|-
1500
1501
| '''Bat'''
1502
| '''6.3802'''
1503
| '''16.1419'''
1504
| '''92.5163'''
1505
| '''140.9666'''
1506
| '''53.2443'''
1507
| '''61.6647'''
1508
| '''0.0082'''
1509
| '''0.0134'''
1510
| '''0.0087'''
1511
| '''0.0016'''
1512
| '''342.8120'''
1513
|}
1514
1515
{| class="wikitable" style="min-width: 60%;margin-left: auto; margin-right: auto;"
1516
1517
|-
1518
1519
! colspan="12" | ITAE (J3)
1520
|-
1521
1522
! Algorithm
1523
! Ke
1524
! Kce
1525
! Ku
1526
! H
1527
! X
1528
! V
1529
! Best
1530
! Worst
1531
! Mean
1532
! Standard deviation
1533
! Average computation time (sec)
1534
|-
1535
1536
| PSO
1537
| 66.9731
1538
| 37.7918
1539
| 85.3110
1540
| 33.2685
1541
| 116.7263
1542
| 102.1748
1543
| 0.0005
1544
| 0.0014
1545
| 0.0008
1546
| 0.0003
1547
| 407.5620
1548
|-
1549
1550
| Cuckoo
1551
| 31.2468
1552
| 71.9042
1553
| 65.6869
1554
| 63.1240
1555
| 67.8707
1556
| 78.4008
1557
| 0.0005
1558
| 0.0013
1559
| 0.0007
1560
| 0.0003
1561
| 521.6800
1562
|-
1563
1564
| '''Bat'''
1565
| '''75.6367'''
1566
| '''97.0607'''
1567
| '''46.2350'''
1568
| '''20.8988'''
1569
| '''71.3923'''
1570
| '''54.4366'''
1571
| '''0.0004'''
1572
| '''0.0007'''
1573
| '''0.0005'''
1574
| '''0.0001'''
1575
| '''289.6610'''
1576
|}
1577
1578
{| class="wikitable" style="min-width: 60%;margin-left: auto; margin-right: auto;"
1579
1580
|-
1581
1582
! colspan="12" | ISE (J4)
1583
|-
1584
1585
! Algorithm
1586
! Ke
1587
! Kce
1588
! Ku
1589
! H
1590
! X
1591
! V
1592
! Best
1593
! Worst
1594
! Mean
1595
! Standard deviation
1596
! Average computation time (sec)
1597
|-
1598
1599
| PSO
1600
| 100.834
1601
| 65.0621
1602
| 4.8456
1603
| 141.1888
1604
| 150.0000
1605
| 150.0000
1606
| 0.0031
1607
| 0.0093
1608
| 0.0046
1609
| 0.0023
1610
| 393.6480
1611
|-
1612
1613
| Cuckoo
1614
| 39.0057
1615
| 147.9450
1616
| 16.2927
1617
| 56.4042
1618
| 56.0387
1619
| 205.6135
1620
| 0.0031
1621
| 0.0092
1622
| 0.0045
1623
| 0.0021
1624
| 558.8910
1625
|-
1626
1627
| '''Bat'''
1628
| '''111.072'''
1629
| '''69.2280'''
1630
| '''95.1338'''
1631
| '''4.5961'''
1632
| '''112.9094'''
1633
| '''106.1842'''
1634
| '''0.0029'''
1635
| '''0.0042'''
1636
| '''0.0030'''
1637
| '''0.0004'''
1638
| '''262.9670'''
1639
|}
1640
1641
{| class="wikitable" style="min-width: 60%;margin-left: auto; margin-right: auto;"
1642
1643
|-
1644
1645
! colspan="12" | RMSE + IAE + ITAE + ISE (J5)
1646
|-
1647
1648
! Algorithm
1649
! Ke
1650
! Kce
1651
! Ku
1652
! H
1653
! X
1654
! V
1655
! Best
1656
! Worst
1657
! Mean
1658
! Standard deviation
1659
! Average computation time (sec)
1660
|-
1661
1662
| PSO
1663
| 13.1549
1664
| 118.2739
1665
| 150.0000
1666
| 47.2018
1667
| 118.4169
1668
| 27.6085
1669
| 0.1193
1670
| 0.1498
1671
| 0.1241
1672
| 0.0095
1673
| 419.4700
1674
|-
1675
1676
| Cuckoo
1677
| 80.3004
1678
| 88.3897
1679
| 24.7887
1680
| 144.4952
1681
| 128.5186
1682
| 46.6502
1683
| 0.1329
1684
| 0.1498
1685
| 0.1394
1686
| 0.0061
1687
| 518.0000
1688
|-
1689
1690
| '''Bat'''
1691
| '''66.2040'''
1692
| '''143.4404'''
1693
| '''18.6981'''
1694
| '''70.6740'''
1695
| '''128.5554'''
1696
| '''6.6109'''
1697
| '''0.1103'''
1698
| '''0.1437'''
1699
| '''0.1133'''
1700
| '''0.0101'''
1701
| '''290.3320'''
1702
|}
1703
1704
<span id='f0100'></span>
1705
1706
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
1707
|-
1708
|
1709
1710
1711
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0019.jpg|center|px|Error membership function of fuzzy PID controller after optimization using PSO, ...]]
1712
1713
1714
|-
1715
| <span style="text-align: center; font-size: 75%;">
1716
1717
Fig. 19.
1718
1719
Error membership function of fuzzy PID controller after optimization using PSO, Cuckoo search and bat algorithm.
1720
1721
</span>
1722
|}
1723
1724
<span id='f0105'></span>
1725
1726
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
1727
|-
1728
|
1729
1730
1731
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0020.jpg|center|px|Rate of change of error membership function of fuzzy PID controller after ...]]
1732
1733
1734
|-
1735
| <span style="text-align: center; font-size: 75%;">
1736
1737
Fig. 20.
1738
1739
Rate of change of error membership function of fuzzy PID controller after optimization using PSO, Cuckoo search and bat algorithm.
1740
1741
</span>
1742
|}
1743
1744
<span id='f0110'></span>
1745
1746
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
1747
|-
1748
|
1749
1750
1751
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0021.jpg|center|px|Output surface of the fuzzy PID controller after optimization using PSO, Cuckoo ...]]
1752
1753
1754
|-
1755
| <span style="text-align: center; font-size: 75%;">
1756
1757
Fig. 21.
1758
1759
Output surface of the fuzzy PID controller after optimization using PSO, Cuckoo search and bat algorithm.
1760
1761
</span>
1762
|}
1763
1764
When compared with the objective values and average computation times in [[#t0020|Table 3]]  and [[#t0025|Table 4]] , bat algorithm optimized fuzzy PD controller has minimum objective function value and less computation time than the others. In order to validate effectiveness of the bat algorithm tuned fuzzy PD controller, it is compared with bat, PSO, and cuckoo search algorithm tuned fuzzy PID controller. The BLDC motor is operated for different operating conditions with above controller. Also, the time domain specification such as overshoot, undershoot, recovery time, and steady state error, settling time and performance indices such RMSE, IAE, ITAE, ISE are compared with for the above considered controllers.      
1765
1766
Three operating conditions are considered for proving the effectiveness of the controller.
1767
1768
==Condition 1.                     ==
1769
1770
The reference speed is set to 200 rad/s with no load conditions. The time domain specification and performance indices for the speed response under fuzzy PD and fuzzy PID controllers are provided in [[#t0030|Table 5]] . From these results, optimization with objective function J5 (PSO, Cuckoo, and Bat algorithm) produces better results than other objective function (J1, J2, J3 and J4). The simulation result for the condition 1 with objective function J5 is shown in the [[#f0115|Fig. 22]] . From these results, bat optimized fuzzy PD; fuzzy PID controller (objective function J5) has better time domain specification and performance indices than other algorithms. Therefore, these two are compared. Bat algorithm optimized fuzzy PD controller (objective function J5) shows better performance than bat optimized fuzzy PID controller (objective function J5). Because steady state error of speed of the motor has 0.0472 for bat optimized fuzzy PD controller (objective function J5) but 0.0535 for bat optimized fuzzy PID controller(objective function J5), total indices is 0.2825 for bat optimized fuzzy PD controller(objective function J5) but 0.2840 for bat optimized fuzzy PID controller(objective function J5). From the results, it is clear that bat optimized fuzzy PD controller (objective function J5) has superior performance in all aspects.
1771
1772
<span id='t0030'></span>
1773
1774
{| class="wikitable" style="min-width: 60%;margin-left: auto; margin-right: auto;"
1775
|+
1776
1777
Table 5.
1778
1779
Performance parameters for condition 1.
1780
1781
|-
1782
1783
! colspan="11" | PSO
1784
|-
1785
1786
! rowspan="2" | Objective function
1787
! rowspan="2" | Controller
1788
! colspan="4" | Time domain specifications
1789
! colspan="4" | Performance indices
1790
! rowspan="2" | Total indices
1791
|-
1792
1793
! Rise time
1794
! Overshoot
1795
! Settling time
1796
! Steady state error
1797
! RMSE
1798
! IAE
1799
! ITAE
1800
! ISE
1801
|-
1802
1803
| rowspan="2" | J1
1804
| Fuzzy PD
1805
| 0.0119
1806
| 4.0271
1807
| 0.0331
1808
| 0.0585
1809
| 0.1837
1810
| 0.0092
1811
| 0.0001
1812
| 0.0047
1813
| 4.3284
1814
|-
1815
1816
| Fuzzy PID
1817
| 0.0123
1818
| 2.1769
1819
| 0.0286
1820
| 0.0564
1821
| 0.1837
1822
| 0.0086
1823
| 0.0001
1824
| 0.0045
1825
| 2.4712
1826
|-
1827
1828
| rowspan="2" | J2
1829
| Fuzzy PD
1830
| 0.0118
1831
| 4.4244
1832
| 0.0362
1833
| 0.0656
1834
| 0.2017
1835
| 0.0080
1836
| 0.0001
1837
| 0.0037
1838
| 4.7516
1839
|-
1840
1841
| Fuzzy PID
1842
| 0.0118
1843
| 4.4244
1844
| 0.0351
1845
| 0.0615
1846
| 0.1964
1847
| 0.0081
1848
| 0.0001
1849
| 0.0037
1850
| 4.7410
1851
|-
1852
1853
| rowspan="2" | J3
1854
| Fuzzy PD
1855
| 0.0118
1856
| 4.4244
1857
| 0.0352
1858
| 0.0668
1859
| 0.2039
1860
| 0.0080
1861
| 0.0001
1862
| 0.0037
1863
| 4.7538
1864
|-
1865
1866
| Fuzzy PID
1867
| 0.0118
1868
| 4.4244
1869
| 0.0351
1870
| 0.0630
1871
| 0.1984
1872
| 0.0081
1873
| 0.0001
1874
| 0.0037
1875
| 4.7445
1876
|-
1877
1878
| rowspan="2" | J4
1879
| Fuzzy PD
1880
| 0.0135
1881
| 0.0000
1882
| 0.0308
1883
| 0.0589
1884
| 0.1876
1885
| 0.0071
1886
| 0.0001
1887
| 0.0032
1888
| 0.3014
1889
|-
1890
1891
| Fuzzy PID
1892
| 0.0135
1893
| 0.0000
1894
| 0.0329
1895
| 0.0617
1896
| 0.1875
1897
| 0.0074
1898
| 0.0001
1899
| 0.0032
1900
| 0.3064
1901
|-
1902
1903
| rowspan="2" | J5
1904
| '''Fuzzy PD'''
1905
| '''0.0135'''
1906
| '''0.0000'''
1907
| '''0.0310'''
1908
| '''0.0590'''
1909
| '''0.1976'''
1910
| '''0.0086'''
1911
| '''0.0001'''
1912
| '''0.0032'''
1913
| '''0.313'''
1914
|-
1915
1916
| '''Fuzzy PID'''
1917
| '''0.0123'''
1918
| '''0.0000'''
1919
| '''0.0295'''
1920
| '''0.0557'''
1921
| '''0.1935'''
1922
| '''0.0097'''
1923
| '''0.0001'''
1924
| '''0.0045'''
1925
| '''0.3053'''
1926
|}
1927
1928
{| class="wikitable" style="min-width: 60%;margin-left: auto; margin-right: auto;"
1929
1930
|-
1931
1932
! colspan="11" | Cuckoo search
1933
|-
1934
1935
! rowspan="2" | Objective function
1936
! rowspan="2" | Controller
1937
! colspan="4" | Time domain specifications
1938
! colspan="4" | Performance indices
1939
! rowspan="2" | Total Indices
1940
|-
1941
1942
! Rise time
1943
! Overshoot
1944
! Settling time
1945
! Steady state error
1946
! RMSE
1947
! IAE
1948
! ITAE
1949
! ISE
1950
|-
1951
1952
| rowspan="2" | J1
1953
| Fuzzy PD
1954
| 0.0135
1955
| 0.0000
1956
| 0.0297
1957
| 0.0570
1958
| 0.1977
1959
| 0.0069
1960
| 0.0001
1961
| 0.0047
1962
| 0.3097
1963
|-
1964
1965
| Fuzzy PID
1966
| 0.0123
1967
| 2.4594
1968
| 0.0295
1969
| 0.0578
1970
| 0.1852
1971
| 0.0087
1972
| 0.0001
1973
| 0.0045
1974
| 2.7576
1975
|-
1976
1977
| rowspan="2" | J2
1978
| Fuzzy PD
1979
| 0.0118
1980
| 4.4244
1981
| 0.0344
1982
| 0.0601
1983
| 0.1938
1984
| 0.0081
1985
| 0.0001
1986
| 0.0037
1987
| 4.7364
1988
|-
1989
1990
| Fuzzy PID
1991
| 0.0118
1992
| 4.4244
1993
| 0.0352
1994
| 0.0635
1995
| 0.2004
1996
| 0.0081
1997
| 0.0001
1998
| 0.0037
1999
| 4.7471
2000
|-
2001
2002
| rowspan="2" | J3
2003
| Fuzzy PD
2004
| 0.0118
2005
| 4.4244
2006
| 0.0352
2007
| 0.0629
2008
| 0.1997
2009
| 0.0080
2010
| 0.0001
2011
| 0.0037
2012
| 4.7458
2013
|-
2014
2015
| Fuzzy PID
2016
| 0.0118
2017
| 4.4244
2018
| 0.0352
2019
| 0.0660
2020
| 0.2035
2021
| 0.0080
2022
| 0.0001
2023
| 0.0037
2024
| 4.7527
2025
|-
2026
2027
| rowspan="2" | J4
2028
| Fuzzy PD
2029
| 0.0135
2030
| 0.0000
2031
| 0.0480
2032
| 0.0626
2033
| 0.1880
2034
| 0.0075
2035
| 0.0001
2036
| 0.0032
2037
| 0.3230
2038
|-
2039
2040
| Fuzzy PID
2041
| 0.0135
2042
| 0.0000
2043
| 0.0308
2044
| 0.0583
2045
| 0.1974
2046
| 0.0097
2047
| 0.0001
2048
| 0.0043
2049
| 0.3143
2050
|-
2051
2052
| rowspan="2" | J5
2053
| '''Fuzzy PD'''
2054
| '''0.0126'''
2055
| '''0.0000'''
2056
| '''0.0219'''
2057
| '''0.0565'''
2058
| '''0.1951'''
2059
| '''0.0086'''
2060
| '''0.0001'''
2061
| '''0.0035'''
2062
| '''0.2984'''
2063
|-
2064
2065
| '''Fuzzy PID'''
2066
| '''0.0118'''
2067
| '''0.0000'''
2068
| '''0.0263'''
2069
| '''0.0514'''
2070
| '''0.1924'''
2071
| '''0.0091'''
2072
| '''0.0001'''
2073
| '''0.0047'''
2074
| '''0.3059'''
2075
|}
2076
2077
{| class="wikitable" style="min-width: 60%;margin-left: auto; margin-right: auto;"
2078
2079
|-
2080
2081
! colspan="11" | Bat algorithm
2082
|-
2083
2084
! rowspan="2" | Objective function
2085
! rowspan="2" | Controller
2086
! colspan="4" | Time domain specifications
2087
! colspan="4" | Performance indices
2088
! rowspan="2" | Total Indices
2089
|-
2090
2091
! Rise time
2092
! Overshoot
2093
! Settling time
2094
! Steady state error
2095
! RMSE
2096
! IAE
2097
! ITAE
2098
! ISE
2099
|-
2100
2101
| rowspan="2" | J1
2102
| Fuzzy PD
2103
| 0.0135
2104
| 0.0000
2105
| 0.0310
2106
| 0.0604
2107
| 0.1878
2108
| 0.0072
2109
| 0.0001
2110
| 0.0032
2111
| 0.3034
2112
|-
2113
2114
| Fuzzy PID
2115
| 0.0126
2116
| 1.1161
2117
| 0.0219
2118
| 0.0566
2119
| 0.1806
2120
| 0.0086
2121
| 0.0001
2122
| 0.0044
2123
| 1.4011
2124
|-
2125
2126
| rowspan="2" | J2
2127
| Fuzzy PD
2128
| 0.0118
2129
| 4.4244
2130
| 0.0352
2131
| 0.0634
2132
| 0.1993
2133
| 0.0081
2134
| 0.0001
2135
| 0.0037
2136
| 4.7460
2137
|-
2138
2139
| Fuzzy PID
2140
| 0.0118
2141
| 4.4244
2142
| 0.0351
2143
| 0.0638
2144
| 0.1992
2145
| 0.0081
2146
| 0.0001
2147
| 0.0037
2148
| 4.7462
2149
|-
2150
2151
| rowspan="2" | J3
2152
| Fuzzy PD
2153
| 0.0118
2154
| 4.4244
2155
| 0.0344
2156
| 0.0609
2157
| 0.1947
2158
| 0.0081
2159
| 0.0001
2160
| 0.0037
2161
| 4.7381
2162
|-
2163
2164
| Fuzzy PID
2165
| 0.0123
2166
| 2.4594
2167
| 0.0295
2168
| 0.0569
2169
| 0.1843
2170
| 0.0087
2171
| 0.0001
2172
| 0.0045
2173
| 2.7558
2174
|-
2175
2176
| rowspan="2" | J4
2177
| Fuzzy PD
2178
| 0.0142
2179
| 1.6364
2180
| 0.0298
2181
| 0.0615
2182
| 0.1907
2183
| 0.0078
2184
| 0.0001
2185
| 0.0042
2186
| 1.9447
2187
|-
2188
2189
| Fuzzy PID
2190
| 0.0144
2191
| 0.0000
2192
| 0.0487
2193
| 0.0601
2194
| 0.1852
2195
| 0.0071
2196
| 0.0001
2197
| 0.0031
2198
| 0.3187
2199
|-
2200
2201
| rowspan="2" | '''J5'''
2202
| '''Fuzzy PD'''
2203
| '''0.0138'''
2204
| '''0.0000'''
2205
| '''0.0304'''
2206
| '''0.0472'''
2207
| '''0.1810'''
2208
| '''0.0067'''
2209
| '''0.0001'''
2210
| '''0.0032'''
2211
| '''0.2825'''
2212
|-
2213
2214
| '''Fuzzy PID'''
2215
| '''0.0137'''
2216
| '''0.0000'''
2217
| '''0.0205'''
2218
| '''0.0535'''
2219
| '''0.1863'''
2220
| '''0.0067'''
2221
| '''0.0001'''
2222
| '''0.0032'''
2223
| '''0.2840'''
2224
|}
2225
2226
<span id='f0115'></span>
2227
2228
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
2229
|-
2230
|
2231
2232
2233
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0022.jpg|center|546px|Simulation result for the condition 1.]]
2234
2235
2236
|-
2237
| <span style="text-align: center; font-size: 75%;">
2238
2239
Fig. 22.
2240
2241
Simulation result for the condition 1.
2242
2243
</span>
2244
|}
2245
2246
==Condition 2.                     ==
2247
2248
In order to validate the effectiveness of the controller for realistic working conditions, load disturbance is introduced and performance is checked. The reference speed is set to 200 rad/s, and load is varied from no load to full load condition at 0.2s. The time domain specification and performance indices for the speed response are presented in [[#t0035|Table 6]] . From these results, optimization with objective function J5 (PSO, Cuckoo, and Bat algorithm) produces better results than other objective function (J1, J2, J3 and J4). The simulation result for the conditions 2 with objective function J5 is shown in the [[#f0120|Fig. 23]] . From the results, it is ascertained that bat optimized fuzzy PD controller (objective function J5) has clear edge over other algorithms. Bat algorithm optimized fuzzy PD controller (objective function J5) shows better performance in overshoot (0.2458), undershoot (0.3992), recovery time (0.3992 s), steady state error (0.0345 rad/s), and it has high quality of performance indices compared to other considered controllers.
2249
2250
<span id='t0035'></span>
2251
2252
Table 6.
2253
2254
Performance parameters for condition 2.
2255
2256
{| class="wikitable" style="min-width: 60%;margin-left: auto; margin-right: auto;"
2257
2258
|-
2259
2260
! colspan="10" | PSO
2261
|-
2262
2263
! rowspan="2" | Objective function
2264
! rowspan="2" | Controller
2265
! colspan="3" | Time domain specification
2266
! colspan="4" | Performance indices
2267
! rowspan="2" | Total indices
2268
|-
2269
2270
! Overshoot
2271
! Recovery time
2272
! Steady state error
2273
! RMSE
2274
! IAE
2275
! ITAE
2276
! ISE
2277
|-
2278
2279
| rowspan="2" | J1
2280
| Fuzzy PD
2281
| 0.7314
2282
| 0.3997
2283
| 0.0383
2284
| 0.1276
2285
| 0.0109
2286
| 0.0005
2287
| 0.0048
2288
| 1.3131
2289
|-
2290
2291
| Fuzzy PID
2292
| 1.4342
2293
| 0.3988
2294
| 0.0329
2295
| 0.1269
2296
| 0.0098
2297
| 0.0003
2298
| 0.0046
2299
| 2.0075
2300
|-
2301
2302
| rowspan="2" | J2
2303
| Fuzzy PD
2304
| 0.7136
2305
| 0.3978
2306
| 0.0353
2307
| 0.1377
2308
| 0.0093
2309
| 0.0003
2310
| 0.0038
2311
| 1.2977
2312
|-
2313
2314
| Fuzzy PID
2315
| 1.0748
2316
| 0.3998
2317
| 0.0348
2318
| 0.1359
2319
| 0.0092
2320
| 0.0003
2321
| 0.0038
2322
| 1.6587
2323
|-
2324
2325
| rowspan="2" | J3
2326
| Fuzzy PD
2327
| 2.3419
2328
| 0.3977
2329
| 0.0372
2330
| 0.1402
2331
| 0.0094
2332
| 0.0003
2333
| 0.0038
2334
| 2.9305
2335
|-
2336
2337
| Fuzzy PID
2338
| 1.7930
2339
| 0.3988
2340
| 0.0360
2341
| 0.1375
2342
| 0.0093
2343
| 0.0003
2344
| 0.0038
2345
| 2.3788
2346
|-
2347
2348
| rowspan="2" | J4
2349
| Fuzzy PD
2350
| 0.8293
2351
| 0.3992
2352
| 0.0400
2353
| 0.1309
2354
| 0.0090
2355
| 0.0005
2356
| 0.0033
2357
| 1.4123
2358
|-
2359
2360
| Fuzzy PID
2361
| 0.8258
2362
| 0.3997
2363
| 0.0450
2364
| 0.1318
2365
| 0.0098
2366
| 0.0006
2367
| 0.0033
2368
| 1.4160
2369
|-
2370
2371
| rowspan="2" | J5
2372
| '''Fuzzy PD'''
2373
| '''0.7266'''
2374
| '''0.3992'''
2375
| '''0.0323'''
2376
| '''0.1230'''
2377
| '''0.0090'''
2378
| '''0.0003'''
2379
| '''0.0033'''
2380
| '''1.2937'''
2381
|-
2382
2383
| '''Fuzzy PID'''
2384
| '''0.7266'''
2385
| '''0.3995'''
2386
| '''0.0329'''
2387
| '''0.1265'''
2388
| '''0.0099'''
2389
| '''0.0003'''
2390
| '''0.0033'''
2391
| '''1.2991'''
2392
|}
2393
2394
{| class="wikitable" style="min-width: 60%;margin-left: auto; margin-right: auto;"
2395
2396
|-
2397
2398
! colspan="10" | Cuckoo search
2399
|-
2400
2401
! rowspan="2" | Objective function
2402
! rowspan="2" | Controller
2403
! colspan="3" | Time domain specification
2404
! colspan="4" | Performance indices
2405
! rowspan="2" | Total indices
2406
|-
2407
2408
! Overshoot
2409
! Recovery time
2410
! Steady state error
2411
! RMSE
2412
! IAE
2413
! ITAE
2414
! ISE
2415
|-
2416
2417
| rowspan="2" | J1
2418
| Fuzzy PD
2419
| 0.7030
2420
| 0.3996
2421
| 0.0369
2422
| 0.1304
2423
| 0.0085
2424
| 0.0004
2425
| 0.0033
2426
| 1.2821
2427
|-
2428
2429
| Fuzzy PID
2430
| 0.8227
2431
| 0.3995
2432
| 0.0339
2433
| 0.1270
2434
| 0.0101
2435
| 0.0004
2436
| 0.0046
2437
| 1.3981
2438
|-
2439
2440
| rowspan="2" | J2
2441
| Fuzzy PD
2442
| 0.6234
2443
| 0.3971
2444
| 0.0348
2445
| 0.1341
2446
| 0.0093
2447
| 0.0003
2448
| 0.0038
2449
| 1.2029
2450
|-
2451
2452
| Fuzzy PID
2453
| 2.6484
2454
| 0.3995
2455
| 0.0363
2456
| 0.1395
2457
| 0.0093
2458
| 0.0003
2459
| 0.0038
2460
| 3.2371
2461
|-
2462
2463
| rowspan="2" | J3
2464
| Fuzzy PD
2465
| 3.1059
2466
| 0.3964
2467
| 0.0342
2468
| 0.1367
2469
| 0.0091
2470
| 0.0003
2471
| 0.0038
2472
| 3.6864
2473
|-
2474
2475
| Fuzzy PID
2476
| 2.0813
2477
| 0.3990
2478
| 0.0373
2479
| 0.1401
2480
| 0.0094
2481
| 0.0003
2482
| 0.0038
2483
| 2.6712
2484
|-
2485
2486
| Fuzzy PD
2487
| 0.5360
2488
| 0.3997
2489
| 0.0469
2490
| 0.1323
2491
| 0.0100
2492
| 0.0007
2493
| 0.0034
2494
| 1.1290
2495
| rowspan="2" | J4
2496
|-
2497
2498
| Fuzzy PID
2499
| 1.2565
2500
| 0.3986
2501
| 0.0395
2502
| 0.1309
2503
| 0.0089
2504
| 0.0005
2505
| 0.0033
2506
| 1.8381
2507
|-
2508
2509
| rowspan="2" | J5
2510
| '''Fuzzy PD'''
2511
| '''0.4501'''
2512
| '''0.3942'''
2513
| '''0.0331'''
2514
| '''0.1259'''
2515
| '''0.0089'''
2516
| '''0.0003'''
2517
| '''0.0032'''
2518
| '''1.0157'''
2519
|-
2520
2521
| '''Fuzzy PID'''
2522
| '''0.4763'''
2523
| '''0.3952'''
2524
| '''0.0339'''
2525
| '''0.1265'''
2526
| '''0.0089'''
2527
| '''0.0003'''
2528
| '''0.0033'''
2529
| '''1.0444'''
2530
|}
2531
2532
{| class="wikitable" style="min-width: 60%;margin-left: auto; margin-right: auto;"
2533
|+ Full-size table
2534
2535
|-
2536
2537
! colspan="10" | Bat algorithm
2538
|-
2539
2540
! rowspan="2" | Objective function
2541
! rowspan="2" | Controller
2542
! colspan="3" | Time domain specification
2543
! colspan="4" | Performance indices
2544
! rowspan="2" | Total indices
2545
|-
2546
2547
! Overshoot
2548
! Recovery time
2549
! Steady state error
2550
! RMSE
2551
! IAE
2552
! ITAE
2553
! ISE
2554
|-
2555
2556
| rowspan="2" | J1
2557
| Fuzzy PD
2558
| 0.4284
2559
| 0.3992
2560
| 0.0439
2561
| 0.1318
2562
| 0.0095
2563
| 0.0006
2564
| 0.0033
2565
| 1.0168
2566
|-
2567
2568
| Fuzzy PID
2569
| 0.2491
2570
| 0.3997
2571
| 0.0372
2572
| 0.1256
2573
| 0.0103
2574
| 0.0005
2575
| 0.0045
2576
| 0.8270
2577
|-
2578
2579
| rowspan="2" | J2
2580
| Fuzzy PD
2581
| 1.4090
2582
| 0.3998
2583
| 0.0356
2584
| 0.1384
2585
| 0.0093
2586
| 0.0003
2587
| 0.0038
2588
| 1.9962
2589
|-
2590
2591
| Fuzzy PID
2592
| 0.9302
2593
| 0.3980
2594
| 0.0352
2595
| 0.1366
2596
| 0.0093
2597
| 0.0003
2598
| 0.0038
2599
| 1.5133
2600
|-
2601
2602
| rowspan="2" | J3
2603
| Fuzzy PD
2604
| 0.6756
2605
| 0.3980
2606
| 0.0350
2607
| 0.1344
2608
| 0.0093
2609
| 0.0003
2610
| 0.0038
2611
| 1.2564
2612
|-
2613
2614
| Fuzzy PID
2615
| 0.3392
2616
| 0.3997
2617
| 0.0345
2618
| 0.1274
2619
| 0.0101
2620
| 0.0004
2621
| 0.0046
2622
| 0.9159
2623
|-
2624
2625
| rowspan="2" | J4
2626
| Fuzzy PD
2627
| 2.3568
2628
| 0.3996
2629
| 0.0373
2630
| 0.1401
2631
| 0.0090
2632
| 0.0003
2633
| 0.0043
2634
| 2.9475
2635
|-
2636
2637
| Fuzzy PID
2638
| 0.6992
2639
| 0.3998
2640
| 0.0447
2641
| 0.1309
2642
| 0.0095
2643
| 0.0006
2644
| 0.0032
2645
| 1.2878
2646
|-
2647
2648
| rowspan="2" | '''J5'''
2649
| '''Fuzzy PD'''
2650
| '''0.2458'''
2651
| '''0.3992'''
2652
| '''0.0345'''
2653
| '''0.1308'''
2654
| '''0.0092'''
2655
| '''0.0003'''
2656
| '''0.0032'''
2657
| '''0.8230'''
2658
|-
2659
2660
| '''Fuzzy PID'''
2661
| '''0.2459'''
2662
| '''0.3999'''
2663
| '''0.0361'''
2664
| '''0.1294'''
2665
| '''0.0094'''
2666
| '''0.0003'''
2667
| '''0.0032'''
2668
| '''0.8244'''
2669
|}
2670
2671
<span id='f0120'></span>
2672
2673
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
2674
|-
2675
|
2676
2677
2678
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0023.jpg|center|546px|Simulation result for the condition 2.]]
2679
2680
2681
|-
2682
| <span style="text-align: center; font-size: 75%;">
2683
2684
Fig. 23.
2685
2686
Simulation result for the condition 2.
2687
2688
</span>
2689
|}
2690
2691
==Condition 3.                     ==
2692
2693
In order to ascertain the efficiency of the controller for realistic working conditions, change in set speed condition is introduced and performance is checked. Initially the reference speed set as 200 rad/s at no load condition. At 0.2 s, the reference speed is changed to 100 rad/s. For this set speed change condition, the time domain specifications such as undershoot, recovery time and steady state error and performance indices are presented in [[#t0040|Table 7]] . From these results, optimization with objective function J5 (PSO, Cuckoo, and Bat algorithm) produces better results than other objective function (J1, J2, J3 and J4). The simulation results are shown in [[#f0125|Fig. 24]] .
2694
2695
<span id='t0040'></span>
2696
2697
{| class="wikitable" style="min-width: 60%;margin-left: auto; margin-right: auto;"
2698
|+
2699
2700
Table 7.
2701
2702
Performance parameters for condition 3
2703
2704
|-
2705
2706
! colspan="10" | PSO
2707
|-
2708
2709
! rowspan="2" | Objective function
2710
! rowspan="2" | Controller
2711
! colspan="3" | Time domain specification
2712
! colspan="4" | Performance indices
2713
! rowspan="2" | Total indices
2714
|-
2715
2716
! Overshoot
2717
! Recovery time
2718
! Steady state error
2719
! RMSE
2720
! IAE
2721
! ITAE
2722
! ISE
2723
|-
2724
2725
| rowspan="2" | J1
2726
| Fuzzy PD
2727
| 0.5384
2728
| 0.3074
2729
| 0.0640
2730
| 0.1892
2731
| 0.0178
2732
| 0.0019
2733
| 0.0097
2734
| 1.1285
2735
|-
2736
2737
| Fuzzy PID
2738
| 0.1118
2739
| 0.3737
2740
| 0.0684
2741
| 0.2016
2742
| 0.0178
2743
| 0.0020
2744
| 0.0103
2745
| 0.7857
2746
|-
2747
2748
| rowspan="2" | J2
2749
| Fuzzy PD
2750
| 0.0000
2751
| 0.2965
2752
| 0.0746
2753
| 0.2117
2754
| 0.0172
2755
| 0.0020
2756
| 0.0093
2757
| 0.6113
2758
|-
2759
2760
| Fuzzy PID
2761
| 0.1786
2762
| 0.3711
2763
| 0.0707
2764
| 0.2058
2765
| 0.0166
2766
| 0.0019
2767
| 0.0088
2768
| 0.8536
2769
|-
2770
2771
| rowspan="2" | J3
2772
| Fuzzy PD
2773
| 0.0000
2774
| 0.2672
2775
| 0.0782
2776
| 0.2173
2777
| 0.0175
2778
| 0.0021
2779
| 0.0096
2780
| 0.5918
2781
|-
2782
2783
| Fuzzy PID
2784
| 0.1028
2785
| 0.2994
2786
| 0.0712
2787
| 0.2057
2788
| 0.0166
2789
| 0.0019
2790
| 0.0088
2791
| 0.7063
2792
|-
2793
2794
| rowspan="2" | J4
2795
| Fuzzy PD
2796
| 0.7100
2797
| 0.2624
2798
| 0.0659
2799
| 0.1971
2800
| 0.0162
2801
| 0.0020
2802
| 0.0088
2803
| 1.2625
2804
|-
2805
2806
| Fuzzy PID
2807
| 0.8691
2808
| 0.2619
2809
| 0.0661
2810
| 0.1931
2811
| 0.0167
2812
| 0.0021
2813
| 0.0086
2814
| 1.4176
2815
|-
2816
2817
| rowspan="2" | J5
2818
| '''Fuzzy PD'''
2819
| '''0.0000'''
2820
| '''0.2612'''
2821
| '''0.0640'''
2822
| '''0.1890'''
2823
| '''0.0161'''
2824
| '''0.0019'''
2825
| '''0.0088'''
2826
| '''0.5411'''
2827
|-
2828
2829
| '''Fuzzy PID'''
2830
| '''0.0000'''
2831
| '''0.2992'''
2832
| '''0.0640'''
2833
| '''0.1891'''
2834
| '''0.0162'''
2835
| '''0.0019'''
2836
| '''0.0087'''
2837
| '''0.5792'''
2838
|}
2839
2840
{| class="wikitable" style="min-width: 60%;margin-left: auto; margin-right: auto;"
2841
2842
|-
2843
2844
! colspan="10" | Cuckoo search
2845
|-
2846
2847
! rowspan="2" | Objective function
2848
! rowspan="2" | Controller
2849
! colspan="3" | Time domain specification
2850
! colspan="4" | Performance indices
2851
! rowspan="2" | Total indices
2852
|-
2853
2854
! Overshoot
2855
! Recovery time
2856
! Steady state error
2857
! RMSE
2858
! IAE
2859
! ITAE
2860
! ISE
2861
|-
2862
2863
| rowspan="2" | J1
2864
| Fuzzy PD
2865
| 0.4859
2866
| 0.2629
2867
| 0.0664
2868
| 0.1998
2869
| 0.0157
2870
| 0.0019
2871
| 0.0086
2872
| 1.0413
2873
|-
2874
2875
| Fuzzy PID
2876
| 0.5047
2877
| 0.2634
2878
| 0.0652
2879
| 0.1936
2880
| 0.0174
2881
| 0.0019
2882
| 0.0097
2883
| 1.0557
2884
|-
2885
2886
| rowspan="2" | J2
2887
| Fuzzy PD
2888
| 0.0680
2889
| 0.2895
2890
| 0.0692
2891
| 0.2040
2892
| 0.0166
2893
| 0.0019
2894
| 0.0088
2895
| 0.6580
2896
|-
2897
2898
| Fuzzy PID
2899
| 0.0000
2900
| 0.3691
2901
| 0.0738
2902
| 0.2082
2903
| 0.0166
2904
| 0.0019
2905
| 0.0087
2906
| 0.6782
2907
|-
2908
2909
| rowspan="2" | J3
2910
| Fuzzy PD
2911
| 0.0000
2912
| 0.3975
2913
| 0.0792
2914
| 0.2161
2915
| 0.0171
2916
| 0.0020
2917
| 0.0092
2918
| 0.7211
2919
|-
2920
2921
| Fuzzy PID
2922
| 0.0000
2923
| 0.2993
2924
| 0.0737
2925
| 0.2097
2926
| 0.0169
2927
| 0.0019
2928
| 0.0089
2929
| 0.6105
2930
|-
2931
2932
| rowspan="2" | J4
2933
| Fuzzy PD
2934
| 1.0513
2935
| 0.2624
2936
| 0.0679
2937
| 0.1956
2938
| 0.0170
2939
| 0.0021
2940
| 0.0088
2941
| 1.6051
2942
|-
2943
2944
| Fuzzy PID
2945
| 0.7338
2946
| 0.2627
2947
| 0.0663
2948
| 0.1984
2949
| 0.0163
2950
| 0.0020
2951
| 0.0089
2952
| 1.2884
2953
|-
2954
2955
| rowspan="2" | J5
2956
| '''Fuzzy PD'''
2957
| '''0.0000'''
2958
| '''0.2612'''
2959
| '''0.0636'''
2960
| '''0.1809'''
2961
| '''0.0156'''
2962
| '''0.0019'''
2963
| '''0.0086'''
2964
| '''0.5319'''
2965
|-
2966
2967
| '''Fuzzy PID'''
2968
| '''0.0000'''
2969
| '''0.2988'''
2970
| '''0.0643'''
2971
| '''0.1892'''
2972
| '''0.0157'''
2973
| '''0.0019'''
2974
| '''0.0086'''
2975
| '''0.5786'''
2976
|}
2977
2978
{| class="wikitable" style="min-width: 60%;margin-left: auto; margin-right: auto;"
2979
2980
|-
2981
2982
! colspan="10" | Bat algorithm
2983
|-
2984
2985
! rowspan="2" | Objective function
2986
! rowspan="2" | Controller
2987
! colspan="3" | Time domain specification
2988
! colspan="4" | Performance indices
2989
! rowspan="2" | Total indices
2990
|-
2991
2992
! Overshoot
2993
! Recovery time
2994
! Steady state error
2995
! RMSE
2996
! IAE
2997
! ITAE
2998
! ISE
2999
|-
3000
3001
| rowspan="2" | J1
3002
| Fuzzy PD
3003
| 0.9233
3004
| 0.2628
3005
| 0.0680
3006
| 0.1990
3007
| 0.0167
3008
| 0.0021
3009
| 0.0090
3010
| 1.4809
3011
|-
3012
3013
| Fuzzy PID
3014
| 0.7197
3015
| 0.2627
3016
| 0.0636
3017
| 0.1913
3018
| 0.0177
3019
| 0.0020
3020
| 0.0100
3021
| 1.2670
3022
|-
3023
3024
| rowspan="2" | J2
3025
| Fuzzy PD
3026
| 0.0000
3027
| 0.3964
3028
| 0.0790
3029
| 0.2103
3030
| 0.0172
3031
| 0.0020
3032
| 0.0089
3033
| 0.7138
3034
|-
3035
3036
| Fuzzy PID
3037
| 0.0853
3038
| 0.3792
3039
| 0.0733
3040
| 0.2067
3041
| 0.0167
3042
| 0.0019
3043
| 0.0087
3044
| 0.7719
3045
|-
3046
3047
| rowspan="2" | J3
3048
| Fuzzy PD
3049
| 0.2271
3050
| 0.3728
3051
| 0.0691
3052
| 0.2031
3053
| 0.0167
3054
| 0.0019
3055
| 0.0089
3056
| 0.8996
3057
|-
3058
3059
| Fuzzy PID
3060
| 0.4014
3061
| 0.2625
3062
| 0.0637
3063
| 0.1913
3064
| 0.0172
3065
| 0.0019
3066
| 0.0096
3067
| 0.9476
3068
|-
3069
3070
| rowspan="2" | J4
3071
| Fuzzy PD
3072
| 0.0000
3073
| 0.3728
3074
| 0.0890
3075
| 0.2172
3076
| 0.0183
3077
| 0.0024
3078
| 0.0102
3079
| 0.7099
3080
|-
3081
3082
| Fuzzy PID
3083
| 1.3469
3084
| 0.2618
3085
| 0.0675
3086
| 0.1944
3087
| 0.0166
3088
| 0.0021
3089
| 0.0087
3090
| 1.8981
3091
|-
3092
3093
| rowspan="2" | '''J5'''
3094
| '''Fuzzy PD'''
3095
| '''0.0000'''
3096
| '''0.2617'''
3097
| '''0.0628'''
3098
| '''0.1810'''
3099
| '''0.0156'''
3100
| '''0.0019'''
3101
| '''0.0085'''
3102
| '''0.5316'''
3103
|-
3104
3105
| '''Fuzzy PID'''
3106
| '''0.0000'''
3107
| '''0.2631'''
3108
| '''0.0641'''
3109
| '''0.1928'''
3110
| '''0.0167'''
3111
| '''0.0019'''
3112
| '''0.0085'''
3113
| '''0.5472'''
3114
|}
3115
3116
<span id='f0125'></span>
3117
3118
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
3119
|-
3120
|
3121
3122
3123
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0024.jpg|center|546px|Simulation result for the condition 3.]]
3124
3125
3126
|-
3127
| <span style="text-align: center; font-size: 75%;">
3128
3129
Fig. 24.
3130
3131
Simulation result for the condition 3.
3132
3133
</span>
3134
|}
3135
3136
Similar to the previous two conditions, for this condition 3 also, bat algorithm optimized fuzzy PD controller (objective function J5) has shown superior performance than the other controllers, and it is evident from the test results of time domain specifications and performance indices considered. The parameters value obtained are very much enhanced than the other controllers. All the values are in favor of bat optimized fuzzy PD controller (objective function J5).
3137
3138
<span id='s0055'></span>
3139
==7. Experimental set up and results discussion==
3140
3141
Since bat algorithm optimized fuzzy PD controller (objective function J5) is having clear edge over the other controllers considered, an attempt is made to implement for BLDC motor by using Spartan-3E FPGA starter kit. The rotor position of the brushless dc motor is measured by means of Hall sensor, and it is given as input to analog to digital converter (ADC). Rotor position is then converted into actual speed by derivative algorithm used in the FPGA kit. The set speed is assigned to motor by toggle switches according to the requirement, and load requirement is assigned by eddy current loading arrangement. The following [[#f0130|Fig. 25]]  (a) shows the experimental set up for Spartan-3E FPGA based fuzzy PD based Speed controller for BLDC motor drive.
3142
3143
<span id='f0130'></span>
3144
3145
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
3146
|-
3147
|
3148
3149
3150
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0025.jpg|center|819px|Full-size image (192 K)]]
3151
3152
3153
|-
3154
| <span style="text-align: center; font-size: 75%;">
3155
3156
Fig. 25.
3157
3158
(a). Experimental set up of FPGA based fuzzy PD speed controller for BLDC motor. (b) Experimental setup – Voltage across phases of motor, left side: simulated output and right side: experimental output. (c) Experiential setup – Hall sensor output of the motor, left side: simulated output and right side: experimental output.
3159
3160
</span>
3161
|}
3162
3163
Once this is performed, the ADC data are sent in FPGA kit and this develops an output value based on a fuzzy PD control algorithm stored in FPGA kit. And the output of controller in turn varies the duty cycle of a PWM signal to increase, decrease or maintain a constant speed of the motor [[#bib0150|[29]]]  and [[#bib0155|[30]]] . Power Module consists of switching power converters which are used in brushless dc motor drives to deliver the required energy to the motor. The energy that a switching power converter delivers to a brushless dc motor which is controlled by Pulse Width Modulated (PWM) signal applied to the gate of a power IGBT coming from PWM module of FPGA kit. In order to change the set speed of the drive, the toggle switch position is properly changed, and for changing the loading conditions as per the requirement, eddy current loading arrangement is suitably varied.      
3164
3165
[[#f0130|Fig. 25]]  (b) shows the voltage across the phases of the brushless dc motor. [[#f0130|Fig. 25]]  (c) shows the hall sensor output of the brushless dc motor. From [[#f0120|Fig. 23]] , it is clear that the simulated output and experimental output are identical. [[#f0135|Fig. 26]]  (a) to (c) shows the experimental results for three operating conditions of the brushless dc motor. It is clear that the response is same as that of the simulated output of the bat optimized fuzzy PD speed controller (objective function J5) of the brushless dc motor. From the simulated and experimental testing, bat optimized fuzzy PD speed controller (objective function J5) outperforms the other controller in all operating conditions.
3166
3167
<span id='f0135'></span>
3168
3169
{| style="text-align: center; border: 1px solid #BBB; margin: 1em auto; max-width: 100%;" 
3170
|-
3171
|
3172
3173
3174
[[Image:draft_Content_769960670-1-s2.0-S2215098615001676-jestch181-fig-0026.jpg|center|819px|Full-size image (139 K)]]
3175
3176
3177
|-
3178
| <span style="text-align: center; font-size: 75%;">
3179
3180
Fig. 26.
3181
3182
(a) Simulated and experimental speed response of the brushless dc motor with fuzzy PD controller for condition 1. (b) Simulated and experimental speed response of the brushless dc motor with fuzzy PD controller for condition 2. (c) Simulated and experimental speed response of the brushless dc motor with fuzzy PD controller for condition 3.
3183
3184
</span>
3185
|}
3186
3187
<span id='s0060'></span>
3188
==8. Conclusion==
3189
3190
Bat algorithm optimized fuzzy proportional derivative based speed controller for Brushless DC motor has been presented. The overall control system has been created and simulated using MATLAB/Simulink and Sim power system tools to confirm the validity and development of the proposed system. Effectiveness of the proposed controller is analyzed and compared with PSO, Cuckoo search algorithm optimized fuzzy PD, fuzzy PID controller and bat algorithm optimized fuzzy PID controller. In order to test the effectiveness of the proposed controllers under realistic operating environment, various operating conditions such as constant load, varying load and varying set speed conditions are considered, and the performances are observed. In order to make a reasonable comparison, several performance measures are used such as rise time, settling time, recovery time maximum overshoot, steady state error, root mean square error, integral absolute error, integral of squared error, and integral time multiplied absolute error. The results obtained from the simulations clearly show the drastic improvements on performance measures and proved that the disturbances are also compensated much more effectively with the use of the proposed controller. To validate the performance of the proposed controller under real time operating conditions, the experimental realization for the control of Brushless DC motor has been fabricated and tested. From the results of the simulation and experimental set up, it is made clear that the proposed controller is able to eliminate the uncertainty problem occurring due to load variations and set speed variations. Since the controller exhibits unmatched performance, it is ideal for application in process industries.
3191
3192
==References==
3193
3194
<ol style='list-style-type: none;margin-left: 0px;'><li><span id='bib0010'></span>
3195
[[#bib0010|[1]]] T.J. Sokira, W. Jaffe; Brushless DC Motors Electronic Commutation and Controls; Tab Books, Inc., Blue Ridge Summit, PA (1990), pp. 1–20</li>
3196
<li><span id='bib0015'></span>
3197
[[#bib0015|[2]]] R.A. Krohling, J.P. Rey; Design of optimal disturbance rejection PID controllers using genetic algorithms; IEEE Trans. Evolut. Comput, 5 (1) (2001), pp. 78–82</li>
3198
<li><span id='bib0020'></span>
3199
[[#bib0020|[3]]] B. Singh, S. Singh; Single-phase power factor controller topologies for permanent magnet brushless DC motor drives; IET Power Electron, 3 (2) (2010), pp. 147–175</li>
3200
<li><span id='bib0025'></span>
3201
[[#bib0025|[4]]] J. Gao, Y. Hu; Direct self-control for BLDC motor drives based on three-dimensional coordinate system; IEEE Trans. Ind. Electron, 57 (8) (2010), pp. 2836–2844</li>
3202
<li><span id='bib0030'></span>
3203
[[#bib0030|[5]]] C.S. Joice, S.R. Paranjothi, V.J.S. Kumar; Digital control strategy for four quadrant operation of three phase BLDC motor with load variations; IEEE Trans. Ind. Inform, 9 (2) (2013), pp. 974–982</li>
3204
<li><span id='bib0035'></span>
3205
[[#bib0035|[6]]] K. Premkumar, B.V. Manikandan; Adaptive fuzzy logic speed controller for brushless DC motor; Power, Energy and Control (ICPEC), 2013 International Conference on, pp. 290, 295; 6–8 Feb.  (2013) [http://dx.doi.org/10.1109/ICPEC.2013.6527668 http://dx.doi.org/10.1109/ICPEC.2013.6527668]</li>
3206
<li><span id='bib0040'></span>
3207
[[#bib0040|[7]]] K. Premkumar, B.V. Manikandan; Adaptive neuro-fuzzy inference system based speed controller for brushless DC motor; Neurocomputing, 138 (2014), pp. 260–270</li>
3208
<li><span id='bib0045'></span>
3209
[[#bib0045|[8]]] G.G. Rigatos; Adaptive fuzzy control of DC motors using state and output feedback; Electr. Pow. Syst. Res, 79 (11) (2009), pp. 1579–1592</li>
3210
<li><span id='bib0050'></span>
3211
[[#bib0050|[9]]] P.S. Londhe, B.M. Patre, A.P. Tiwari; Fuzzy-like PD controller for spatial control of advanced heavy water reactor; Nucl. Eng. Des, 274 (2014), pp. 77–89</li>
3212
<li><span id='bib0055'></span>
3213
[[#bib0055|[10]]] H.V.H. Ayala, L. Coelho; Tuning of PID controller based on a multiobjective genetic algorithm applied to a robotic manipulator; Expert Syst. Appl, 39 (10) (2012), pp. 8968–8974</li>
3214
<li><span id='bib0060'></span>
3215
[[#bib0060|[11]]] S.A.K.H. Mozaffari Niapour, S. Danyali, M.B.B. Sharifian, M.R. Feyzi; Brushless DC motor drives supplied by PV power system based on Z-source inverter and FL-IC MPPT controller; Energy Convers. Manag, 52 (8–9) (2011), pp. 3043–3059</li>
3216
<li><span id='bib0065'></span>
3217
[[#bib0065|[12]]] A. Rubaai, M.J. Castro-Sitiriche, A.R. Ofoli; DSP-based laboratory implementation of hybrid fuzzy-PID controller using genetic optimization for high-performance motor drives; IEEE Trans. Ind. Appl, 44 (6) (2008), pp. 1977–1986</li>
3218
<li><span id='bib0070'></span>
3219
[[#bib0070|[13]]] F. Valdez, P. Melin, O. Castillo; A survey on nature-inspired optimization algorithms with fuzzy logic for dynamic parameter adaptation; Expert Syst. Appl, 41 (14) (2014), pp. 6459–6466</li>
3220
<li><span id='bib0075'></span>
3221
[[#bib0075|[14]]] X. Li, X. Yao; Cooperatively coevolving particle swarms for large scale optimization; IEEE Trans. Evolut. Comput, 16 (2) (2012), pp. 210–224</li>
3222
<li><span id='bib0080'></span>
3223
[[#bib0080|[15]]] S. Panda, N.P. Padhy; Comparison of particle swarm optimization and genetic algorithm for FACTS-based controller design; Appl. Soft Comput, 8 (4) (2008), pp. 1418–1427</li>
3224
<li><span id='bib0085'></span>
3225
[[#bib0085|[16]]] R. Sharma, K.P.S. Rana, V. Kumar; Performance analysis of fractional order fuzzy PID controllers applied to a robotic manipulator; Expert Syst. Appl, 41 (9) (2014), pp. 4274–4289</li>
3226
<li><span id='bib0090'></span>
3227
[[#bib0090|[17]]] P. Dash, L.C. Saikia, N. Sinha; Comparison of performances of several Cuckoo search algorithm based 2DOF controllers in AGC of multi-area thermal system; Int. J. Electr. Power Energy Syst, 55 (2014), pp. 429–436</li>
3228
<li><span id='bib0095'></span>
3229
[[#bib0095|[18]]] S. Chetty, A.O. Adewumi; Comparison study of swarm intelligence techniques for the annual crop planning problem; IEEE Trans. Evolut. Comput, 18 (2) (2014), pp. 258–268</li>
3230
<li><span id='bib0100'></span>
3231
[[#bib0100|[19]]] D.K. Sambariya, R. Prasad; Robust tuning of power system stabilizer for small signal stability enhancement using metaheuristic bat algorithm; Int. J. Electr. Power Energy Syst, 61 (2014), pp. 229–238</li>
3232
<li><span id='bib0105'></span>
3233
[[#bib0105|[20]]] E.S. Ali; Optimization of power system stabilizers using BAT search algorithm; Int. J. Electr. Power Energy Syst, 61 (2014), pp. 683–690</li>
3234
<li><span id='bib0110'></span>
3235
[[#bib0110|[21]]] C.-S. Shieh; Fuzzy PWM based on Genetic Algorithm for battery charging; Appl. Soft Comput, 21 (2014), pp. 607–616</li>
3236
<li><span id='bib0115'></span>
3237
[[#bib0115|[22]]] A.B. Sharkawy; Genetic fuzzy self-tuning PID controllers for antilock braking systems; Eng. Appl. Artif. Intell, 23 (7) (2010), pp. 1041–1052</li>
3238
<li><span id='bib0120'></span>
3239
[[#bib0120|[23]]] R. Pérez-Rodríguez, S. Jöns, A. Hernández-Aguirre, C. Alberto-Ochoa; Simulation optimization for a flexible job shop scheduling problem using an estimation of distribution algorithm; Int. J. Adv. Manuf. Tech, 73 (1) (2014), pp. 3–21</li>
3240
<li><span id='bib0125'></span>
3241
[[#bib0125|[24]]] A. Ochoa-Zezzatti, O. Castillo, P. Melín, N. Castillo, S. Bustillos, J. Arreola; Shipwrecked on fear: selection of electives in school minorities in a university using cuckoo search algorithm; Recent Advances on Hybrid Approaches for Designing Intelligent Systems, vol. 547 (2014), pp. 139–150</li>
3242
<li><span id='bib0130'></span>
3243
[[#bib0130|[25]]] I. Fister Jr., D. Fister, X.-S. Yang; A hybrid bat algorithm; Elektroteh. Vestn, 80 (1–2) (2013), pp. 1–7 http://arxiv.org/abs/1303.6310</li>
3244
<li><span id='bib0135'></span>
3245
[[#bib0135|[26]]] S. Yılmaz, E.U. Küçüksille; A new modification approach on bat algorithm for solving optimization problems; Appl. Soft Comput, 28 (2015), pp. 259–275</li>
3246
<li><span id='bib0140'></span>
3247
[[#bib0140|[27]]] A. Ochoa, L. Margain, A. Hernandez, J. Ponce, A. De Luna, A. Hernandez,  ''et al.''; Bat algorithm to improve a Financial Trust Forest; in Nature and Biologically Inspired Computing (NaBIC), 2013 World Congress on, pp. 58–62; 12–14 Aug.  (2013)</li>
3248
<li><span id='bib0145'></span>
3249
[[#bib0145|[28]]] A. Ochoa, L. Margain, J. Arreola, A. De Luna, G. Garcia, E. Soto,  ''et al.''; Improved solution based on Bat Algorithm to Vehicle Routing Problem in a Caravan Range Community; in Hybrid Intelligent Systems (HIS), 2013 13th International Conference on, pp. 18–22; 4–6 Dec.  (2013)</li>
3250
<li><span id='bib0150'></span>
3251
[[#bib0150|[29]]] H.M. Hasanien; FPGA implementation of adaptive ANN controller for speed regulation of permanent magnet stepper motor drives; Energy Convers. Manag, 52 (2) (2011), pp. 1252–1257</li>
3252
<li><span id='bib0155'></span>
3253
[[#bib0155|[30]]] C.-F. Hsu, B.-K. Lee; FPGA-based adaptive PID control of a DC motor driver via sliding-mode approach; Expert Syst. Appl, 38 (9) (2011), pp. 11866–11872</li>
3254
</ol>
3255

Return to Premkumar Manikandan 2015a.

Back to Top

Document information

Published on 10/04/17

Licence: Other

Document Score

0

Views 155
Recommendations 0

Share this document

claim authorship

Are you one of the authors of this document?