## 4 Design and Implementation of Proposed MPPT Algorithm
### Incremental Conductance based Particle Swarm Optimization (ICPSO)  
The designing of ICPSO algorithm works on the principle of basic PSO where particle velocity and positions are updated using incremental conductance concept in PSO. In this algorithm, the swarm particles are distributed over the global search-space. Feasible solutions are matched with the positions of every particle. The accurate position of each particle is computed using the cost function value, which is then compared with the particle positions as mentioned above. Based on the distance of a particle from these positions, it is assigned a velocity that changes the particle's position to bring it closer to the global best position [23]. The movement of particles in the global search space for the optimization process of PSO is illustrated in Figure 4 using a phasor concept. The particles are varied according to their position with the help of the equation given below [44]. \[x_{i}^{k+1}=x_{i}^{k}+v_{i}^{k+1} \tag{9}\]  
where, \(k\)th iteration is represented by \(x_{i}^{k}\) which is presiding position of the \(i\)th particle, \(x_{i}^{k+1}\) represents the position of \(i\)th particle after the \((k+1)^{th}\) iteration, and \(v_{i}^{k+1}\) represents the computed value of velocity for the same particle for the \((k+1)^{th}\) iteration. The other name of this important computed value is step size (responsible for fast convergence). The particle velocity and position are updated using incremental conductance MPP algorithm, which are described in Equation (3) to Equation (8). The velocity vector \(v_{i}^{k+1}\) is given as,  
\[v_{i}^{k+1}=wv_{i}^{k}+c_{1}r_{1}(x_{1b,i}-x_{i}^{k})+c_{2}r_{2}(x_{gb}-x_{i} ^{k}) \tag{10}\]  
it can also be rewritten as,  
\[v_{i}^{k+1}=wv_{i}^{k}+c_{1}r_{1}(P_{best,i}-x_{i}^{k})+c_{2}r_{2}(x_{best}-x_ {i}^{k}) \tag{11}\]  
Weight (\(w\)) component or factor introduces a tendency in the particle to continue to move in same direction with preceding travelling range of [0,1]. The dependency of the velocity of a particle based on its own best position is specified by the cognitive component (\(c_{1}r_{1}(x_{1b,i}-x_{i}^{k})\)). The social component (\(c_{2}r_{2}(x_{gb}-x_{i}^{k})\)) determines the particle velocity dependence on the global best position observed in the global search-space up to the \(k\)th iteration. However, local best position of \(i\)th particle can be represents as \((x_{1b,i})\). This could be the best suitable solution that same particle has encountered while moving across the global search space. Likewise, global best position \((x_{gb})\) is the best solution perceived among all the particles. In addition, the range of acceleration coefficients \((c_{1},c_{2})\) is taken between [0.1-2] and the random number \((r_{1},r_{2})\) can be represented as \((r_{1},r_{2}\in R(0,1))\). It has been found from the literature that the acceleration coefficients \(c_{1},c_{2}\) are constant and may affect the searchability of particle swarm optimization due to change in the particle direction. Hence, \(c_{1}>c_{2}\) and \(c_{1}<c_{2}\) conditions are proposed in [37], which is included in ICPSO algorithm to avoid aforementioned conditions (Appendix A). Also, the maximum number of iterations is represented as \(k_{maxi}\). \[c_{1}(t)=c_{1,maxi}-(k/k_{maxi})(c_{1,maxi}-c_{1,mini}) \tag{12}\]  
\[c_{2}(t)=c_{2,maxi}-(k/k_{maxi})(c_{2,maxi}-c_{2,mini}) \tag{13}\]  
It is well known that the global maximum power point (fitness value) varies most of the time and entirely depends on environmental conditions. Hence, to mitigate the effect of changes associated with environmental condition i.e nonuniform operating conditions due to variation in solar irradiation and temperature, ICPSO continuously updates its weights along with the continuous re-initialization of particles. The re-initialization process with 10% of the change in solar-PV power \((\Delta P)\) is as explained in [37].