Introduction

In several nations, photovoltaic (PV) power systems are widely employed. However, several urgent challenges must be addressed in the deployment of these systems. One of the biggest issues is how to increase efficiency1,2,3. Under uniform irradiation conditions, i.e. when PV cells/panels receive uniform insolation, the PV array’s P–V characteristic exhibits a single power maxima, which is known as the maximum power point (MPP). Therefore, tracking this MPP is crucial in a PV system to optimize the power output of the PV array. Moreover, as the power withdrawn from the PV array is strongly affected by cell temperature, irradiance, and load impedance4,5, PV systems must be designed to operate at MPP regardless of the variation of these factors.

Several MPPT strategies, including perturb and observe (P&O)6,7,8,9 and incremental conductance (INC)10,11,12, have been suggested to improve PV system performance. In particular, the P&O approach employs a disturbance in the PV system's operational voltage7. However, the presence of oscillations around the MPP, as well as its restricted capacity to follow this point under transitory environmental conditions, are the key drawbacks of this strategy. The INC strategy10 was proposed to decrease these oscillations and enhance system efficiency, but it did not totally eliminate oscillations. Furthermore, these systems employ a set step to determine the ideal duty cycle value, which may result in incorrect or sluggish tracking during abrupt changes in temperature or irradiance11. Fuzzy logic, neural networks, and neuro-fuzzy are examples of intelligent algorithms. These algorithms use a variable step to determine the ideal duty cycle value, resulting in a quicker time response and greater stability under varied operating circumstances.

However, PV arrays are frequently subjected to partial shading conditions (PSCs), which are the root cause of the majority of output power decrease and mismatch13. When the PV array is operating under these conditions, the P–V curves are characterized by the appearance of many local peaks, which are caused by the activation of bypass diodes, which protect shaded cells14. In such partial shading conditions, standard MPPT algorithms may miss the target by converging to a local maximum rather than the global maximum, resulting in a large loss in output power and, as a result, a poor overall system yield. A variety of enhancements to traditional MPPT algorithms have been developed to deal with the impact of shading on the P–V curves. Some are topology-based and require extra power circuits to accomplish global MPPT (GMPPT)15. As a result, overall efficiency is lowered. Others are algorithm-based strategies such as fuzzy logic with polar controller and sequential extremum searching control16. The effectiveness of soft computing methods in handling nonlinear problems, such that encountered in PV array behaviour, and their implementation simplicity make them very attractive to solve the MPPT problem of PV systems, especially in the case of partial shading and module mismatches17. Artificial Neural Networks, are one of soft computing methods that was used in MPPT techniques. Typically, they were used to estimate the MPP with respect to the randomly changing weather conditions18, and to improve the P&O and IC algorithms19. These approaches are expensive, time-consuming operations that necessitate the use of complicated technology. However, this solution can increase the cost of the PV system due to the high number of used sensors. Evolutionary computation techniques, such as Differential Evolution (DE)20, has been also proposed to deal with the MPPT problem. However, EC techniques might present a poor convergence rate and slow convergence time21,22. The metaheuristics techniques have a good convergence rate and fast convergence compared to EC techniques. In addition, the application of the metaheuristic algorithm for MPPT has attracted the interest of many researchers due to its ability to handle nonlinear functions without requiring derivative information. Since metaheuristic MPPT approaches are an efficient search and optimization method for real-valued multi-modal objective functions, it is envisaged to be very effective to deal with MPPT problems. Various metaheuristic approaches are found in the literature but the more popular ones are particle swarm optimization (PSO), grey wolf optimization (GWO), ant colony (ACO), Artificial Bee Colony (ABC), Whales Optimization Algorithm (WOA)23,24,25,26,27,28. Sarvi et al. in29 proposed the PSO-based MPPT for PV systems under PSC to find the GMPP. Nevertheless, this solution presented oscillations around the steady-state. Hence, some researchers have attempted to improve the PSO to reduce oscillations30,31. However, their improved method cannot follow the dynamic GMPP under various shading patterns. Furthermore, Jang et al. in32 proposed an ACO algorithm and showed that this method has a faster convergence speed compared to the Basic PSO. ACO and PSO methods present a major disadvantage in terms of convergence linked to the initial placement of the agents into the research space. In addition, both PSO and ACO need the determination of many parameters, making them rigid and complicated.

To overcome these complexities found in the PSO and ACO methods, the authors of33 established a comprehensive bio-inspired approach for addressing computationally costly issues called the seagull optimization algorithm (SOA), which mimics the search and attack behaviors of seagulls in nature. This algorithm is one of the latest effective optimization methods, which is gradient-free and applicable to optimize all engineering problems occurring in real life. Additionally, compared to other evolutionary algorithms, SOA requires fewer variables for adjustment and fewer operators, which is advantageous when considering a speedy design process33. This algorithm is divided into two phases: the exploration and exploitation phases. During the exploration phases, the search agent makes larger update steps to the candidate solutions. On the other hand, the search agents seek to make use of the search process's history and experience during exploitation. In34, the authors present a Modified Seagull Optimization Algorithm (MSOA) based MPPT approach by incorporating Levy Flight Mechanism (LFM) and the formula for heat exchange in Thermal Exchange Optimization (TEO) into the original Seagull Optimization Algorithm (SOA). Thus, in this article, their results from the simulation of the exploration phase is not clear. In which it is calculating the fitness values of each search. Yet, to the best of the authors' knowledge, no research has been done on MPPT based on SOA so far, which motivates us to study this method and to enrich the scientific references with the developed version of the original SOA for MPPT controllers. To this end, this work proposes an SOA-based metaheuristic MPPT method for tracking the GMPP to maximize the PV power output in PV systems operating under both uniform and partial shading conditions. This method is considered best suited for real engineering problems compared to another metaheuristic algorithm. The MPPT's speed and efficiency will be considerably improved.

After the introduction, in "The effect of shading on PV array" section  briefly presents the effect of partial shading on the PV array characteristics. ïn Section ″Selection the parameters of Boost converter″ introduces the SOA’s fundamentals and mathematical model. in Section ″Seagull optimization algorithm (SOA)″ presents the proposed MPPT controller and how it developed based on SOA. in Section ″Results and discussion″ gives and discusses the simulations results of the proposed SOA-based MPPT method, along with a comparison of its performance with PSO and P&O based MPPT methods. Finally, "Processor In the Loop (PIL) testing" section summarizes the results and suggests some recommendations for further research.

The effect of shading on PV array

PV cell and module modeling

The electrical model of the PV cell, as illustrated in Fig. 1, consists of a current source, a diode, and a resistor Rsh linked in parallel, as well as a series resistor Rs.

Figure 1
figure 1

The equivalent circuit for the single diode mοdel οf the solar cell.

Where the current source is proportional to sun irradiation. The Rs is primarily determined by the metal base's contact resistance with the p semiconductor layer, the p and n bodies' resistances, the n layer's contact resistance with the top metal grid, and the grid's resistance. The Rsh resistance is mostly influenced by the leakage current of the p–n junction and is affected by the PV cell production procedure35.

Based on the Fig. 1, the following equation35 gives the output current:

$$I = I_{ph} - I_{0} \left( {exp\frac{{q\left( {V + IR_{s} } \right)}}{{AV_{t} }} - 1} \right) - \frac{{V + IR_{s} }}{{R_{sh} }}$$
(1)

where \(I_{ph}\), \(I\), and \(I_{0}\) are denoted the phοtocurrent, the οutput cell current, and the reverse saturatiοn current respectively. \(V\) represents the οutput cell vοltage. \(R_{s}\) and \(R_{sh}\) present a series resistance and parallel resistance respectively.\(A\) is the diοde ideality factor.

The value of the termal voltage is given by (2).

$$V_{t} = \frac{KT}{q}$$
(2)

where \(K\), \(q\), and \(T\) are denoted the Bοltzmann cοnstant (1.38 × 1023 (J/K)), the charge of electrοn (1.6 × 1019 (C)), and the sοlar cell temperature (K) respectively.

The photocurrent \(I_{ph,c}\) of a solar cell depends on many material characteristics. However, it can be approximated as linear-dependent on irradiance and temperature with sufficient accuracy as follow36:

$$I_{ph,c} = \frac{G}{{G_{ref} }}\left[ {I_{sc,ref} + \mu_{sc} \left( {T - T_{ref} } \right)} \right]$$
(3)

where \(I_{sc,ref}\) is solar cell short-circuit current at standard test conditions (STC): Gref = 1000 W/m2, Tref = 25 \(^\circ C\).

\(\mu_{sc}\) is the solar cell short-circuit temperature coefficient, normally provided by the manufacturer (A/K).

G is the actual irradiance intensity (W/m2);

The well-known diode saturation current estimation equation is given by36:

$$I_{0} = I_{0,ref} \left( {\frac{{T_{ref} }}{T}} \right)^{3} exp\left[ {\frac{{qE_{g} }}{nk}\left( {\frac{1}{{T_{ref} }} - \frac{1}{T}} \right)} \right]$$
(4)

where, the nominal saturation current I0,ref at STC is given by:

$$I_{0,ref} = \frac{{I_{sc,ref} }}{{exp\left( {\left( {V_{oc,ref} /nV_{t} } \right) - 1} \right)}}$$
(5)

Voc,ref is solar cell open-circuit voltage at reference condition.

Eg is band-gap energy in the solar cell, (1.12–1.15 eV).

To achieve the desired voltage and current levels, Ns cells are connected in series and NP cells are connected in parallel respectively, thus forming a PV module. There for the PV module parameters are scaled according to NS and NP as given bellow37:

$$I_{ph\_Total} = N_{p} *I_{ph,c}$$
(6)
$$I_{0\_Total} = N_{p} *I_{0}$$
(7)
$$A_{Total} = N_{s} *A$$
(8)
$$R_{s\_Total} = \frac{{N_{s} }}{{N_{p} }}*R_{s,c}$$
(9)
$$R_{sh\_Total} = \frac{{N_{s} }}{{N_{p} }}*R_{sh,c}$$
(10)

The overall PV module model can then be represented by the following Fig. 2.

Figure 2
figure 2

The equivalent circuit of the PV module.

Current–voltage characteristic equation of equivalent circuit for the PV module arranged in Np parallel and Ns series cells is given by32:

$$I^{M} = N_{p} I_{ph} - N_{p} I_{0} \left( {exp\frac{{q\left( {V^{M} /N_{s} + I^{M} R_{s} /N_{p} } \right)}}{{AV_{t} }} - 1} \right) - \frac{{\left( {\left( {N_{p} /N_{s} } \right)V^{M} + I^{M} R_{s} } \right)}}{{R_{sh} }}$$
(11)

The characteristics of the PV panel used in this work are shown in Table 1.

Table 1 Characteristics of the PV panel TDC-M20-36 at STC38.

Effect of partial shading on PV array

When PV cells (or modules) are partially shaded, they function as a load on other cells/modules and become reverse biased. As a result, instead of generating energy, they will dissipate it, resulting in a rise in cell temperature. The cell/module can be damaged and influence the entire PV module/array if the temperature becomes too high, which is called the hot spot issue. One of the most prevalent methods to avoid the hot spot problem is to connect a bypass diode to a set of cells connected in series38,39, as illustrated in Fig. 3.

Figure 3
figure 3

PV array functionality: (a) Unshaded condition of PV array, (b) shaded condition of PV array, and (c) IV and PV curves resulting from different scenarios (a) and (b).

To apprehend the current flow direction of the PV array under PSC, consider the PV array in Fig. 3. The PV array consists of four PV modules where two PV panels are unshaded and the other are shaded, as illustrated in Fig. 3b. The P–V curve of the PV array under PSC can be divided into two phases. During uniform solar irradiance, the bypass diodes are reverse biased and therefore have no effect (Fig. 3a). In the other phase (Under PSCs), when the load current is higher than the shaded PV module, the bypass diode active. But, when the load current is lower than the shaded PV module, the bypass diode stays inactive as can be seen in Fig. 3b.

Selection the parameters of boost converter

A boost converter (step-up converter) is a power converter with an output DC voltage greater than its input DC voltage41. It is a class of switching-mode power supply (SMPS). A simple boost converter consists of an inductor L, a controlled switch S and a diode D, filters made of a capacitors are normally added to the output and the input of the converter to reduce voltage ripples (see Fig. 4).

Figure 4
figure 4

DCDC converter.

Inductor selection of boost converter

Estimate the inductor ripple current is 20% to 40% :

$$\Delta I_{L} = I_{out\_\max } \times \left( {0.2 to 0.4} \right) \times \frac{{V_{out} }}{{V_{in} }}$$
(12)

The critical inductance value of the boost converter is given by the Eq. (13):

$$L = \frac{{V_{in} \left( {V_{out} - V_{in} } \right)}}{{\Delta I_{L} \times f_{sw} \times V_{out} }}$$
(13)

where:

  • \(V_{{in{ }}}\) is the input voltage;

  • \(V_{{out{ }}}\) is the desired output voltage;

  • \(f_{sw}\) is the designed switching frequency;

  • \(\Delta I_{L}\) is inductor ripple current;

Output capacitor selection of boost converter

The current store to the output circuit is discontinuous. Therefore, to limit the output voltage ripple must use a big filter capacitor. When the diode is off, The filter capacitor should supply the output DC to the load.

$$C_{out\_\min } = \frac{{D \times I_{out\_\max } }}{{\Delta I_{out} \times f_{sw} }}$$
(14)

where:

  • \(C_{out\_min}\) is the output capacitance(minimum);

  • \(\Delta V_{out}\) is the ripple of output voltage;

  • \(f_{sw}\) is switching frequency in kHz;

  • \(I_{out\_Max}\) is maximum output current;

  • \(D\) is the duty cycle;

The selection of \(C_{min} { }\) must be higher than the calculated value to make sure that the converter’s output voltage ripple remains within the specific range and its equivalent series resistance (ESR) should be low. ESR can be minimized by connecting many capacitors in parallel. Therefore, it can be assumed that the ESR is as in Eq. (15):

$$\Delta V_{out\_ESR} = ESR \times \left( {\frac{{I_{out\_\max } }}{1 - D} + \frac{{\Delta I_{L} }}{2}} \right) \approx 0.05 V_{out}$$
(15)

Intput capacitor selection of boost converter

As stated earlier, the output of the PV voltage has ripples due to the change in temperature and irradiation. Therefore, it is necessary to replace the input capacitor in parallel with the voltage supply to minimize ripples produced by the solar panel. The ripples have an adverse effect on the output as the input voltage is proportional to the output current. Similarly to the output capacitor, \(ESR\) on the input capacitor should be considered by selecting a greater capacitor value than the calculated one. Equation (16) computes the value of the input capacitor while considering the ripples limit.

$$C_{in} = \frac{{\Delta I_{L} }}{{8 \times f_{sw} \times \Delta V_{in} }}$$
(16)

where:

$$\Delta V_{in} = ESR \times V_{in} \approx 0.05 V_{in}$$
(17)

The electrical parameters of the used boost converter are depicted in Table 2.

Table 2 The electrical parameters of the used boost converter.

Seagull optimization algorithm (SOA)

The basics of the SOA

Seagulls are a type of coastal bird that has been around for roughly thirty million years. Their wings are large, and their rear legs have developed to enable them to travel on the water. Seagulls come in a range of sizes and shapes, and they may be found in practically every corner of the world. Seagulls are capable of drinking both fresh and saltwater. Most animals are unable to do this. On the other hand, Seagulls have a unique set of drums covering their eyes that they used to clean the salt out of their system by opening their beaks. Seagulls inhabit in vast groups and use a variety of voices to communicate with one another. With their expertise, they can find and attack the prey. They steal food under the influence of other birds, animals, and even people, which is one of their strangest behaviours. Seagulls eat mostly fish, although they also eat earthworms and insects. To discover and attack prey, seagulls use their intelligence. The most prominent characteristics of seagulls are their migratory and attacking habits. A group of seagulls migrated from one area to another using mathematical models of predator movement and attack. A seagull must satisfy the following requirements:

The migration behaviour is described as follows:

  • They move in groups when migrating. To avoid accidents, their starting locations differ from one another.

  • They use their swarm experience to their benefit that is they try to go in the way of the highest survival to acquire the lowest cost value.

Seagulls typically attack migratory birds over the sea. This procedure is influenced by the natural structure of the spiral's activity during the attack. Figure 5 depicts a conceptual model of these characteristics. The Seagull Model for the Seagull Optimization Algorithm (SOA) is explained more below.

Figure 5
figure 5

Migration and attacking behaviors of seagulls33.

Mathematical model of SOA

Exploration (migration) and exploitation are the foundations of the SOA's mathematical model (attacking the prey).

During exploration, the algorithm must satisfy three conditions (avoiding collisions, move in the direction of the best neighbour, and stay close to the best search agent) to replicate how a group of seagulls moves from one place to another. The behaviour of the migration can be modelled by the following equation33:

$$\overrightarrow {{D_{s} }} = \left| {A \times \overrightarrow {{X_{s} }} \left( t \right) + B \times (\overrightarrow {{X_{bs} }} \left( t \right) - \overrightarrow {{X_{s} }} \left( t \right)} \right|$$
(18)
$$A = fc - \left( {iter \times \left( {\frac{fc}{{Max\_iter}}} \right)} \right)$$
(19)
$$B = 2 \times A^{2} \times rand$$
(20)

where the distance between the current search agent and the best-fit search agent is provided by \({\vec{\text{D}}}_{s}\), \({\vec{\text{X}}}_{{\text{s}}} \left( t \right)\) denotes the current place of search agent, \({\vec{\text{X}}}_{{{\text{bs}}}} \left( t \right)\) denotes the place of the best-fit search agent. \(t\) denotes the current iteration, A presents a linearly decreases from fc to 0, B is a randomized variable that ensures a correct balance of exploration and exploitation.

During exploitation, seagulls seek to make use of the search process's history and experience. In this phase, seagulls use their wings and weight to keep their height. During the iteration process, the search agents might update their locations about the best search agent. As a result, the following equation is used to determine the search agent's updated position33:

$$\overrightarrow {{X_{s} }} \left( {t + 1} \right) = \left( {\overrightarrow {{D_{s} }} \times X^{\prime} \times Y^{\prime} \times Z^{\prime}} \right) + \overrightarrow {{X_{bs} }} \left( t \right)$$
(21)

where \(\vec{X}_{s} \left( {t + 1} \right)\) represents the equation of updating the position of other search agents. \(X^{\prime}\),\(Y^{\prime}\) and \(Z^{\prime}\) described the spiral movement that behavior produces in the air, and which are defined as follows33:

$$k = pi.{\text{rand}}$$
(22)
$$r = u.e^{kv}$$
(23)
$$X^{\prime} = r.\cos \left( k \right)$$
(24)
$$Y^{\prime} = r.\sin \left( k \right)$$
(25)
$$Z^{\prime} = r.k$$
(26)

The radius of each spiral turn is r, while k is a random value in [0, 2π]. e is the natural logarithm's base, while u and v are constants that determine the spiral form.

Here is the detailed pseudo-code of the SOA algorithm33:

figure a

Application of SOA to the MPPT problem

Each seagull's solution is specified as the duty cycle value of the DC–DC converter to achieve the direct control SOA-based MPPT. In the first iteration, the duty cycle value can be generated using the following equation:

$$d_{i} = d_{min} + rand\left[ {0,1} \right]\left( {d_{max} - d_{min} } \right) ; i = 1,2, \ldots N_{SOA} )$$
(27)

where \(d_{min}\) and \(d_{max}\) represent the limit of the search band mechanism.

The distance Ds can be calculated using the following equation :

$$D_{s} = \left| {A \times d_{i} \left( t \right) + B \times \left( {d_{best} \left( t \right) - d_{i} \left( t \right)} \right)} \right|$$
(28)

The new seagull’s solution can then be generated using the following equation:

$$d_{new} \left( {t + 1} \right) = d_{best} \left( t \right) + \left( {D_{s} \times X^{\prime} \times Y^{\prime} \times Z^{\prime}} \right)$$
(29)

Since the GMPP changes continuously as the weather conditions change, the SOA-MPPT algorithm must be restarted to search for the new GMPP. Therefore, to detect if ever a change in weather conditions takes place to restart the search, the following inequality is adopted in the algorithm:

$$\frac{{\left| {P_{{Pv_{new} }} - P_{{Pv_{last} }} } \right|}}{{P_{{Pv_{last} }} }} \ge \Delta P_{Pv} \left( \% \right)$$
(30)

Whenever the inequality indicated above is met, the process of finding a new MPP will be repeated to ensure that the algorithm can always identify the GPPM regardless of the operating condition.

Figure 6 depicts the principle working of the SOA based MPPT algorithm.

Figure 6
figure 6

Flowchart of SOA based MPPT algorithm.

Results and discussion

To examine the performance of the SOA based MPPT method, the 80 W PV system depicted in Fig. 7 is considered, which is designed under MATLAB/SIMULINK environment. This system comprises a PV array formed by four 20 W PV modules serially connected, a boost DC–DC converter, an MPPT controller and a DC load. The DC–DC converter is controlled, using a PWM generator, by the duty cycle "α" which is generated by the SOA based MPPT controller.

Figure 7
figure 7

PV system configuration with the SOA based MPPT controller.

Table 3 shows the irradiation values considered in the simulation tests. The P–V characteristic obtained in each test is presented in Fig. 8. As can be seen in this figure, the P–V curve shows multiple peaks under PSCs. Each of these peaks is characterized by its voltage and power. The peaks number is depending on the number of shaded panels. The key parameters of the implemented MPPT methods, namely SOA, PSO and P&O, are seated in Table 4.

Table 3 Irradiation values parameters of the used boost converter.
Figure 8
figure 8

PV characteristics under different PSCs.

Table 4 Parameters of SOA, PSO, P&O based MPPT methos.

To verify the ability of the SOA-based MPPT method to track the GMPP, the PV system was simulated with various PSCs (PSC1, PSC2, and PSC3) in addition to the standart test condition (STC). The system was first started by testing it under STC, and then each PSC was applied every 7.5 s for a period between 0 and 30 s, as depicted in Fig. 12. The obtained results are presented in Figs. 9,  1011, and 12. Under PSC 1, the SOA meets the global peak (GP) of 59.35 W with a tracking speed of 1.10 s, PSO converges to the GP of 59.30 W with a tracking speed of 2.16 s, while the P&O algorithm only converges to a local peak (LP) of 44.71 W. Under PSC 2, the SOA meets the GP of 51.06 W with 1.25 s, PSO meets the GP of 49.95 W with 4.13 s, while the P&O converges to an LP of 36.32 W. From this result, It's clear that P&O is unable to differentiate between LP and GP. In addition, when PCS 3 is applied, the SOA meets the GP of 69.79 W with 1.05 s, PSO meets the GP of 69.36 W with 3.34 s, while the P&O meets this time to the GP of 69.21 W.

Figure 9
figure 9

The output power obtained under PSC1 using: P&O, PSO and SOA algorithms.

Figure 10
figure 10

The output power obtained under PSC2 using: P&O, PSO and SOA algorithms.

Figure 11
figure 11

The output power obtained under PSC3 using: P&O, PSO and SOA algorithms.

Figure 12
figure 12

The output power obtained under STC to PSCs variation using: P&O, PSO and SOA algorithms.

Moreover, a performance comparison between SOA, PSO and P&O based MPPT methods is presented in Table 5. The obtained power in the case of the SOA-based optimization method is significantly more than those of the PSO and P&O algorithms throughout the whole profile. Table 6 presents a comparison of SOA-based MPPT versus different MPPT methods existing in the literature according to these criteria: converter used, sensors used, convergence speed, tracking eficiency, steady-state oscillations level, implementation complexity and GMPP tracking ability.

Table 5 Performance comparison of the SOA, PSO and P&O based MPPT methos.
Table 6 Comparaison performance of SOA based MPPT with other MPPT algorithms.

Figure 13 presents the tracking efficiency of PV system output power under various PSC using P&O, PSO and SOA methods. It can be concluted that the proposed SOA-MPPT is guaranted the tracking of GMPP with high efficiency better than P&O and PSO.

Figure 13
figure 13

Diagram comparative of the tracking efficiency obtained using P&O, PSO and SOA methos.

Under all simulations tests, it can be observed that the the proposed SOA-MPPT and PSO algorithms successfuly converge to the GMPP corresponding to the different PSCs with a noticeable superiority of the proposed SOA-MPPT in terms tracking speed. Although the tracking speed of the P&O algorithm is higher than that of SOA and PSO. Yet, P&O algorithm is not even able to track the GMPP in the most case of PSC and is traped in the local MPP of the P–V curve (in the case of PSC1 and PSC2).

In addition, we note that the P&O and PSO algorithm are not able to track the true MPP when the PV system operating under weak uniform conditions (see Fig. 14). In otherwise, the proposed SOA-MPPT successfuly converge to the MPP when the PV system operating under weak uniform conditions. Finally, it can be interpreted that the SOA based MPPT converges with a good speed and zeros oscillates around the GP compared to PSO and P&O based MPPT.

Figure 14
figure 14

Extracted output power of PV system from different uniform irradiation using P&O, PSO and SOA methods.

Processor In the Loop (PIL) testing

The goal of this part is to put the MPPT controller model onto a real embedded processor and run a closed-loop simulation with the simulated plant model; this is known as the processor-in-the-loop (PIL) test. In this way, the SOA-MPPT controller is replaced by a PIL block that have the controller code running on the hardware. The PIL test will help us identify if the processor is capable of executing the developed MPPT controller to validate the proposed MPPT control strategy on an actual embedded board. Figure 15 shows the embedded board used to perform the PIL experimentation, which is the Arduino MKRZERO board. The microcontroller integrated in this board is the ATMEL SAMD21 from Microchip Technology. This microcontroller contains a 32-bit Arm® Cortex®-M4F processor with Floating Point Unit (FPU) running at up to 120 MHz with 256kB flash memory, 32kB SRAM.

Figure 15
figure 15

Diagram of PV generation using PIL block.

As presented in Fig. 15, the PIL block is generated and connected to the plant model so as to acquire the PV output voltage and current, after that the PIL block will identify the required duty cycle by using the proposed algorithm and send it to the plant model. During the PIL process, the generated code is tested in realtime while the plant model runs on a computer which allows to detect and correct possible errors. Figure 16 depicts the result from the PIL test. It can be observed that the results obtained using PIL test are similar to the simulation results obtained in MATLAB/Simulink. Therefore, the MPPT control algorithm proposed in this work is verified on a real microcontroller (or embedded board).

Figure 16
figure 16

PIL results of the output power obtained under STC to PSCs variation using SOA algorithms.

Conclusion

In this research, a new metaheuristic-based MPPT has been proposed. The letter is designed by using seagull optimization algorithm. The performance of this method is simulated and compared with that of PSO and P&O. Consequently, the effectiveness of the suggested SOA-based MPPT method was verified for an 80 W PV system using the MATLAB/SIMULINK environment. It is noted that the average tracking efficiency of the proposed method is higher than 98.32%.The simulation results were performed under various partial shading scenarios and weak uniform conditions. It prouves the superiority of the proposed method in terms of tracking efficiency and fast response time, as compared to other methods (P&O and PSO).

In this work, the design and implementation of a new MPPT method were carried out. Moreover, a Processor in the Loop (PIL) test was performed, using the Arduino MKRZERO embedded board, to confirm the functionality of the proposed SOA-MPPT approach. In this work, a PV array consisting of four modules connected in series is considered to test the proposed MPPT algorithm. However, we also aim to make complex partial shading conditions in our future research to test and confirm the effectiveness of the MPPT approach based on the proposed SOA.