## 3 MPPT Techniques
### Intelligent MPPT Techniques
#### 3.3.4 Grasshopper Optimization  
The grasshopper optimization (GO) algorithm is a recently developed nature-inspired optimization technique based on how grasshoppers search for food [113]. The GO algorithm mimics the social interaction and behavior of grasshopper swarms. Grasshoppers are destructive insects due to the harm they cause to crops. Grasshoppers experience two swarm periods during their life cycle, the larval and adult phases. As larvae, grasshoppers walk slowly and eat every plant in their path. They grow wings and form swarms in the air when they are adults. The two stages of a grasshopper's search for food are exploration and exploitation. During the exploration stage, the grasshoppers (search agents) move quickly, while during the exploitation stage, they are encouraged to move locally. The following is a summary of the mathematical modeling of grasshopper swarming behavior:  
\[X_{i}=r_{1}S_{i}+r_{2}G_{i}+r_{3}A_{i} \tag{23}\]  
where  
\(X_{i}\) represents the position of the \(i\)th grasshopper, \(S_{i}\) is the social interaction of the \(i\)th grasshopper, \(G_{i}\) is the gravity force of the \(i\)th grasshopper, A\({}_{i}\) is the wind advection of the \(i\)th grasshopper, and \(r_{1}\), \(r_{2}\), and \(r_{3}\) are random numbers.  
Therefore, using Equation (23), this can be expressed as the following using the elements \(S\), \(G\), and \(A\):  
\[X_{i}=r_{1}\left(\sum_{\begin{subarray}{c}j=1\\ j\
eq i\end{subarray}}^{N}S\left(\left|x_{j}-x_{i}\right|\right)\frac{x_{j}-x_{ i}}{D_{ij}}\right)-r_{2}g\overset{\rightarrow}{e_{g}}+r_{3}u\overset{ \rightarrow}{e_{w}} \tag{24}\]  
where \(N\) indicates the number of grasshoppers (agents).  
The Equation (24) can be adjusted as follows to converge to the specified point:  
\[X^{d}{}_{i}=c\left(\sum_{\begin{subarray}{c}j=1\\ j\
eq i\end{subarray}}^{N}c\frac{ub_{d}-lb_{d}}{2}S\left(\left|x_{j}^{d}-x_{i} ^{d}\right|\right)\frac{x_{j}-x_{i}}{D_{ij}}\right)+\overset{\rightarrow}{T _{d}} \tag{25}\]  
where \(\overset{\rightarrow}{T_{d}}\) denotes the target value (optimal solution) and \(ub_{d}\), \(lb_{d}\) denote the upper and lower bounds, respectively, c denotes the decreasing coefficients to reduce the comfort, repulsion, and attraction regions. Equation (26) can be used to update the coefficient c, increasing exploitation and decreasing exploration proportionally to iteration.  
\[c=c_{max}-l\frac{c_{max}-c_{min}}{Iter\_max} \tag{26}\]  
where \(l\) stands for the current iteration, \(Iter\_max\) is the total number of iterations, and c min, \(c_{min}\), \(c_{max}\) are the minimum and maximum bounds of the decreasing coefficient. The GO method is applied to various engineering issues because of its significant advantages, including simplicity, quick convergence characteristics, an easy implementation structure, and a minimal number of regulating factors. Based on these advantages, the GO algorithm is employed in MPPT tracking of the solar PV system. The flowchart for the GO-based MPPT technique is shown in Figure 13.  
GO is used to track GMPP because of its rapid convergence and its lowest number of oscillations when in a steady condition. The population is initially between 0 and 1 at random. The search space here stands for a boost converter duty cycle. The restrictions are adjusted suitably in the search space, where values range from 0 to 1. Every search agent in the GO algorithm provides a possible solution and the best solution (duty cycle) found so far is considered as the output of the MPPT technique. The position of every search agent in the GO represents the duty cycle and the value of the duty cycle can be updated using Equation (25).