In the literature, several authors proposed various swarm-intelligence techniques for LFC problem [3, 7, 8, 24]. But, the problem with these swarm-intelligence techniques is their performance highly depends on algorithm-specific parameters. For example, cognitive parameters (c1,c2) and inertia weight (w) in case of PSO; crossover, mutation & parent selection in case of GA. Likewise, the other algorithms such as flower pollination algorithm (FPO), backstepping algorithm, differential evolution (DE), bat algorithm, grey wolf optimization, etc., need the tuning of their respective parameters. Improper selection or tuning of these parameters may not give the optimal solution. To overcome this problem, an algorithmic-specific parameters free technique named Jaya algorithm (JA) is adopted to tune the gains of PID controller for LFC problem.
Jaya algorithm was introduced by R.V. Rao in the year 2016 [25], inspired by the humanoid or animal activities. As a biological nature, all the humans or animals in a population are different in many cases. But, all of them are inspires by the elite or firm member of the population and, try to away from the lazy or weak member of the population. By mimicking this nature, throughout this algorithm, a candidate solution moves away the worst solution and in the meantime, it moves towards the best solution. This algorithm has been successfully applied to several engineering problems, because of its fast convergence and simplicity [26, 27].
Let p be the population size (m = 1,2--p), n be the number of variables (v = 1,2--n) and ITAE(13) is the fitness function to be minimized. Based on the ITAE, the best solution in the population is considered as Xbest and the worst solution is considered as Xworst. Xv,m, i is the value of vth variable for the mth candidate in the ith iteration. Then the updated value of each variable \( {X}_{v,m,i}^{\prime } \) in the population can be expressed as[33]:
$$ {X}_{v,m,i}^{\prime }={X}_{v,m,i}+{\mathit{\operatorname{rand}}}_1\ast \left({X}_{v, best,i}-\left|{X}_{v,m,i}\right|\right)-{\mathit{\operatorname{rand}}}_2\ast \left({X}_{v, worst,i}-\left|{X}_{v,m,i}\right|\right) $$
(11)
In Eq.(11) it is observable that, a member of the population is always moving towards the best solution (‘+’ indication) and away from the worst solution(‘-’ indication). Moreover, from equation it is clear that, the proposed algorithm doesn’t depend on any algorithmic specific parameters unlike other algorithms. The updated value of the member in the population (\( {X}_{v,m,i}^{\prime } \)) is accepted only when its value is better than old value(Xv, m, i). rand1 and rand2 indicates the random numbers between 0 and 1.
$$ {X}_{v,m,i}^{\prime }=\left\{\begin{array}{c}{X}_{v,m,i},\kern0.75em ITAE\left({X}_{v,m,i}\right)> ITAE\left({X}_{v,m,i}^{\prime}\right)\\ {}{X}_{v,m,i}^{\prime },\kern0.75em Otherwise\end{array}\right. $$
(12)
Sequential steps to tune the proposed PID controller with JAYA algorithm
Step 1: A random population is generated by initializing the controller parameters (KP, KI, KD) within the limit 0.01 and 5.0. As there are 6 controller parameters related to two PID controllers, so the population size is considered as 50 × 6.
Step 2: The designed Simulink model is run by implementing the integral absolute error (ITAE) as fitness function (Eq.13) to assess the fitness values of the defined population.
$$ \operatorname{Minimize}\ (FF)=\mathrm{ITAE}=\mathrm{minimization}\ \mathrm{of}\ {\int}_0^{t_{sim}}t\ast \left({K}_P\ast \left(\left|{ACE}_1\right|+\left|{ACE}_2\right|\right)+\frac{K_I}{s}\ast \left(\left|{ACE}_1\right|+\left|{ACE}_2\right|\right)+s\ast {K}_D\ast \left(\left|{ACE}_1\right|+\left|{ACE}_2\right|\right)\right)\ast \mathrm{dt} $$
(13)
Where, |ACE1| =|Δf1| + | ΔPtie, 12|, |ACE2| = |Δf2| + |ΔPtie, 21| & tsim = Total simulation time.
Step 3: In the population, identify the best and worst candidates using Eq.(13).
Step 4: Update each candidate position with respect to the best and worst candidates using Eq.(11).
Step 5: If the updated candidate (\( {X}_{v,m,i}^{\prime } \)) is better than the old one (Xv, m, i); replace the old one or else keep the old one using Eq.(12).
Step 6: Repeat steps (2) to (5) until the maximum number of iterations (50) is achieved.
Step 7: if iterations = iterations maximum, the best member of the population will be treated as the best set of controller parameters.
Figure 7 illustrates the flow chart for the summarized steps of the JA-PID controller.