1 Introduction

Photovoltaic (PV) generation is gaining increased importance as a renewable source due to its advantages [1, 2], such as the absence of fuel cost, little maintenance, no noise and wear due to the absence of moving parts. The actual energy conversion efficiency of PV module is rather low and is affected by the weather conditions and output load. So, to overcome these problems and to get the maximum possible efficiency, the design of all the elements of the PV system has to be optimized. The PV array has a highly nonlinear current–voltage characteristics varying with solar illumination and operating temperature [3] that substantially affects the array output power. At particular solar illumination, there is unique operating point of PV array at which its output power is maximum. Therefore, for maximum power generation and extraction efficiency, it is necessary to match the PV generator to the load such that the equilibrium operating point coincides with the maximum power point of the PV array. The maximum power point tracking (MPPT) control is therefore critical for the success of the PV systems [46]. In addition, the maximum power operating point varies with insolation level and temperature. Therefore, the tracking control of the maximum power point is a complicated problem. To mitigate these problems, many tracking control strategies have been proposed such as perturb and observe [6, 7], incremental conductance [7, 8], parasitic capacitance [9], constant voltage [10], reactive power control [11]. These strategies have some disadvantages such as high cost, difficulty, complexity and instability. In an effort to overcome aforementioned disadvantages, several researches have used artificial intelligence approach such as fuzzy logic controller (FLC) [1214] and artificial neural network (ANN) [1520]. Although these methods are effective in dealing with the nonlinear characteristics of the current–voltage curves, they require extensive computation. For example, FLC has to deal with fuzzification, rule base storage, inference mechanism, and defuzzification operations. For ANN, the large amount of data required for training are a major source of constraint. Furthermore, as the operating conditions of the PV system vary continuously, MPPT has to respond to changes in real time. Clearly, a low-cost processor cannot be employed in such a system.

An alternative approach is to employ evolutionary algorithm (EA) techniques. Due to its ability to handle nonlinear objective functions [21, 22], EA is visualized to be very effective to deal with MPPT problem. Among the EA techniques, genetic algorithm (GA) [23], particle swarm optimization (PSO) [2428], and bacteria foraging (BF) [2934] have attracted the attention in controller design. However, these algorithms appear to be effective for the design problem, they pain from slow convergence in refined search stage, weak local search ability and algorithms may lead to possible entrapment in local minimum solutions. A relatively newer evolutionary computation algorithm called artificial bee colony (ABC) has been presented by [35] and further established recently by [3641]. Other works have carried out MPPT with PV based on ABC algorithm and shown in [4245]. However, these works concern only with PV system and neglect the effect of the connected load. ABC algorithm is a very simple, robust, and population-based stochastic optimization algorithm. In addition, it requires less control parameters to be tuned. Hence, it is suitable optimization tool for locating the maximum power point (MPP) regardless of atmospheric variations.

The main objective of this paper is to design two PI controllers via ABC to increase the tracking response of MPP with high efficiency and to control the speed of DC series motor which is loaded by a water pump. A comparison with GA and open loop is carried out to ensure the robustness and effectiveness of the proposed algorithm. Simulation results have proved that the proposed controller gives better performance.

2 System under study

Figures 1 and 2 show the block diagram and the MATLAB/Simulink of the proposed system. The system consists of PV system, MPPT controller, DC–DC converter for MPPT, speed controller and DC/DC converter to drive the DC series motor. In the MPPT control loop, the load resistance error signal obtained by comparing the reference load resistance and its actual values is driven to the first PI controller. In the speed control loop, the speed error signal obtained by comparing the reference speed and the actual motor speed is driven to the second PI controller. The following illustrates the overall system construction.

Fig. 1
figure 1

Overall block diagram of DC control system supplied by PV system at MPPT

Fig. 2
figure 2

Overall MATLAB system of DC control system supplied by PV system at MPPT

2.1 DC series motor construction

The DC series motor can be written in terms of equations as follows [46, 47]. These nonlinear model equations can be simulated using MATLAB/Simulink. The parameters of DC series motor are shown in “Appendix”.

$$\frac{{{\text{d}}i_{\text{a}} (t)}}{{{\text{d}}t}} = \frac{{V_{\text{t}} (t)}}{{L_{\text{a}} + L_{\text{f}} }} - \frac{{R_{\text{a}} + R_{\text{f}} }}{{L_{\text{a}} + L_{\text{f}} }}i_{\text{a}} (t) - \frac{{M_{\text{af}} }}{{L_{\text{a}} + L_{\text{f}} }}i_{\text{a}} (t)\omega_{\text{r}} (t)$$
(1)
$$\frac{{{\text{d}}\omega_{\text{r}} (t)}}{{{\text{d}}t}} = \frac{{M_{\text{af}} }}{{J_{\text{m}} }}i_{\text{a}}^{2} (t) - \frac{f}{{J_{\text{m}} }}\omega_{\text{r}} (t) - \frac{{T_{\text{L}} }}{{J_{\text{m}} }}$$
(2)

2.2 Photovoltaic generator

The PV mathematical model can be obtained by applying the fundamental laws governing the nature of the components making the system. To overcome the variations of illumination, temperature and load resistance, voltage controller is required to track the new modified reference voltage. IV characteristics of solar cell are given by the following Eqs. [13]:

$$I_{\text{c}} = I_{\text{ph}} - I_{\text{o}} \left\{ {{\text{e}}^{{\left[ {\frac{{q_{\text{o}} }}{\text{AKT}}\left( {V_{\text{c}} + I_{\text{c}} R_{\text{s}} } \right)} \right]}} - 1} \right\}$$
(3)
$$V_{\text{c}} = \frac{\text{AKT}}{{q_{\text{o}} }}\ln \left( {\frac{{I_{\text{ph}} + I_{\text{o}} - I_{\text{c}} }}{{I_{\text{o}} }}} \right) - I_{\text{c}} R_{\text{s}}$$
(4)

The module output current and voltage are given by the following equations:

$$I = I_{\text{ph}} - I_{\text{o}} \left\{ {{\text{e}}^{{\left[ {\frac{{q_{\text{o}} }}{{n_{\text{s}} {\text{AKT}}}}\left( {V + n_{\text{s}} IR_{\text{s}} } \right)} \right]}} - 1} \right\}$$
(5)
$$V = \frac{{n_{\text{s}} {\text{AKT}}}}{{q_{\text{o}} }}\ln \left( {\frac{{I_{\text{ph}} + I_{\text{o}} - I}}{{I_{\text{o}} }}} \right) - n_{\text{s}} IR_{\text{s}}$$
(6)

where;

$$I_{\text{ph}} = \frac{G}{1000}\left[ {I_{\text{sc}} + k_{i} \left( {T - T_{\text{r}} } \right)} \right]$$
(7)
$$I_{\text{o}} = I_{\text{or}} \left( {\frac{T}{{T_{\text{r}} }}} \right)^{3} {\text{e}}^{{\left[ {\frac{{q_{\text{o}} E_{\text{g}} }}{\text{AK}}\left( {\frac{1}{{T_{\text{r}} }} - \frac{1}{T}} \right)} \right]}}$$
(8)

The module output power can be determined simply from

$$P = V.I$$
(9)

The IV characteristics of the PV module can be simulated by using Eqs. (5, 6).

2.3 DC/DC converter

Many converters have been used and tested; buck converter is a step down converter, while boost converter is a step up converter [48, 49]. In this paper, a hybrid (buck and boost) DC/DC converter is used. The equations for this converter type in continuous conduction mode are:

$$V_{\text{B}} = \frac{ - k}{1 - k}V_{\text{ph}}$$
(10)
$$I_{B} = \frac{k - 1}{k}I_{ph}$$
(11)

2.4 Pump load

The proposed controller is implemented for using the variable load torque to drive water pump system [50]. The pump load is represented as follows:

$$Tp_{\text{de}} = 0.005 + 0.00004 \omega_{\text{r}} + 0.0001 \omega_{\text{r}}^{1.8}$$
(12)

3 Maximum power point tracking

As the power supplied by the solar array depends on the illumination, temperature and PV array power (voltage and current), an important consideration in the model of efficient solar array systems is to track the maximum power point correctly [51, 52]. The purpose of the MPPT is to move the array operating voltage close to the MPP under changing atmospheric conditions and load. So far, three methods were often used to achieve the MPPT; these are perturbation and observation method [53, 54], incremental conductance method [55, 56] and intelligent method [57, 58]. The perturbation and observation method has been widely used due to its simple feedback structure and fewer measured parameters [53, 54]. The peak power tracker operates by periodically incrementing or decrementing the solar array voltage. If a given perturbation leads to an increase (decrease) in array power, the subsequent perturbation is made in the same (opposite) direction. In this manner, the peak power tracker continuously hunts or seeks the peak power condition. Although this algorithm benefits from simplicity, it lacks the speed and adaptability necessary for tracking fast changing atmospheric conditions. The control system oscillates around the MPP forward and backward, and even tracking in a wrong way under rapidly changing atmospheric conditions. This method neglects the changing of atmospheric conditions. The incremented conductance method [55, 56] is based on the concept that the maximum power point (dP/dV = 0) and since P = V*I, it yields dV/dI = −I/V. A PI controller is employed to regulate the PWM control signal of the DC/DC converter until the condition (dV/dI) + (I/V) = 0 is achieved. Although the incremental conductance method presents good performance under rapidly changing atmospheric conditions, it lacks from the circuit complexity, four sensor devices require more conversion time which result in a large amount of power loss and results in a higher system cost.

4 Artificial bee colony algorithm

Artificial bee colony (ABC) algorithm is presented by Karaboga [33]. It imitates the activities and intelligent foraging behavior of the honey bees swarms, while they are looking for the food sources and sharing the amount of sources with other bees [34].

The ABC consists of three groups of bees: employed, onlooker and scouts. Every group has a different task in the optimization process. The employed bees exploit the food sources and carry the data about food source back to the hive. They share this data with onlooker bees by dancing in the designated dance area inside the hive. The nature of dance is proportional to the nectar content of food source just exploited by the dancing bee. The onlooker bees are waiting in the hive for the data and observing the dance of the employed bees within the hive, to select a food source. Therefore, good food sources attract more onlooker bees compared to bad ones. Whenever a food source is exploited fully, all the employed bees associated with it abandon the food source, and become scout. Scout bees search for new food sources. Employed and onlooker bees can be seen as performing the job of exploitation, whereas scout bees can be seen as performing the job of exploration [35, 36]. The flowchart of the proposed ABC algorithm is shown in Fig. 3. The steps of the ABC algorithm are summarized as follows:

Fig. 3
figure 3

Flowchart of the ABC algorithm

  1. 1.

    Initial food sources are generated for all employed bees.

  2. 2.

    Restore the next items:

    1. (a)

      Each employed bee leaves to a food source and locates a neighbor source, then estimates its nectar value and dances in the hive.

    2. (b)

      Each onlooker observes the dance of employed bees and chooses one of their sources depending on the dances, and then leaves to that source. After choosing a neighbor around that, the nectar value is estimated.

    3. (c)

      Abandoned food sources are located and are exchanged with the new food sources found by scouts.

    4. (d)

      The best food source is memorized.

  3. 3.

    Until (requirements are met).

The main advantage of the ABC-based algorithm is that it does not require expending more effort in tuning the control parameters, as in the case of GA, and other evolutionary algorithm. This feature marks the proposed ABC-based algorithm as being advantageous for implementation [37].

5 Objective function

A performance index can be defined by the integral of time multiply absolute error (ITAE). Accordingly, the objective function J is set to be:

$$J = J_{1} + \alpha J_{2} = \int\limits_{0}^{{t_{\text{sim}} }} {t\left| {e_{1} } \right|{\text{d}}t} + \alpha \int\limits_{0}^{{t_{\text{sim}} }} {t\left| {e_{2} } \right|{\text{d}}t}$$
(13)

where e 1 = R Lreference − R Lactual, e 2 = w reference − w actual, R Lactual = V/I and t sim equals to 5 s. Based on this objective function, optimization problem can be stated as: Minimize J subjected to:

$$K_{p1}^{\hbox{min} } \le K_{P1} \le K_{p1}^{\hbox{max} },\quad K_{I1}^{\hbox{min} } \le K_{I1} \le K_{I1}^{\hbox{max} }$$
$$K_{p2}^{\hbox{min} } \le K_{P2} \le K_{p2}^{\hbox{max} },\quad K_{I2}^{\hbox{min} } \le K_{I2} \le K_{I2}^{\hbox{max} }$$
(14)

Typical ranges of the optimized parameters are [0.01−20]. This paper focuses on optimal tuning of two PI controllers for speed tracking of DC series motor under MPPT of PV system using ABC algorithm. The aim of the optimization is to search for the optimum controllers parameters setting that minimize the proposed objective function.

6 Results and discussion

In this section, different comparative cases are examined to show the effectiveness of the proposed ABC controller compared with GA under variations of ambient temperature and radiation. The designed parameters of PI controllers with the proposed ABC and GA are given in Table 1. Figure 4 shows the change in objective functions with two optimization algorithms. The objective functions decrease over iterations of ABC and GA. Moreover, ABC converges at a faster rate (57 generations) compared with that for GA (66 generations). Furthermore, computational time (CPU) of both algorithms is compared based on the average CPU time taken to converge the solution. The average CPU for ABC is 42.3 s, while it is 50.7 s for GA. The proposed ABC methodology and GA are programmed in MATLAB 7.1. The mentioned CPU time is the average of 10 executions of the computer code.

Table 1 Comparison between various controllers
Fig. 4
figure 4

Change in objective function

6.1 Response under change in radiation

In this case, the system responses under variation of PV system radiation are illustrated. Figure 5 shows the variation of the PV system radiation as an input disturbance while temperature is constant at 27 °C. The variation of PV system response based on different algorithms is shown in Figs. 6, 7. It is clear from these figures that the proposed ABC-based controller improves the MPPT control effectively with respective to estimated value. Furthermore, the value of power per cell based on ABC algorithm is greater than twice its value at open loop (without MPPT controller). Also, an increment of 0.6 W/cell is achieved based on ABC algorithm over its value based on GA. Hence, ABC is better than GA in achieving MPP. In addition, PI controllers based-ABC enhance the performance characteristics of PV system and reduce the number of PV cells compared with those based GA technique and open loop.

Fig. 5
figure 5

Change in radiation

Fig. 6
figure 6

Power of PV cell for different controllers

Fig. 7
figure 7

Voltage of PV cell for different controllers

6.2 Response under change in temperature

The system responses under variation of PV system temperature are discussed in this case. Figure 8 shows the change in the PV system temperature as an input disturbance, while radiation is constant at 800 W/m2. The variation of PV system response per cell based on different algorithms is shown in Figs. 9, 10. It is clear from these figures that the proposed technique-based controller enhances the tracking efficiency of MPP. Moreover, the proposed method outperforms and outlasts GA in designing MPPT controller. Also, the value of power/cell based on ABC algorithm is greater than GA and open loop case. As a result, the number of solar cells and cost are largely reduced. Hence, PI-based ABC greatly enhances the performance characteristics of MPPT compared with those based GA and open loop.

Fig. 8
figure 8

Change in temperature for PV system

Fig. 9
figure 9

Change in power for different controllers

Fig. 10
figure 10

Voltage of PV system

6.3 Response under change in radiation and temperature

In this case, the system responses under variation of PV system radiation and temperature are obtained. The variations of the PV system radiation and temperature as input disturbances are shown in Fig. 11. Moreover, the change in PV system response based on different algorithms is presented in Figs. 12, 13. It is shown that the proposed ABC-based controller increases power of PV system compared with GA and consequently reduces the number of solar cells and cost.

Fig. 11
figure 11

Change in radiation and temperature of PV system

Fig. 12
figure 12

Power of PV system for different radiations and temperatures

Fig. 13
figure 13

Change in PV system voltage for different radiations and temperatures

6.4 Response under step of load torque

Figure 14 shows the change in load torque of DC motor. The speed response under variation of the load torque, while radiation and temperature are constant at 800 W/m2 and 27 °C, respectively, is shown in Fig. 15. The actual speed tracks the reference speed with minimum overshoot and settling time. Moreover, the speed response is faster with the proposed controller than GA for the variation of load torque. In addition, the designed controller is robust in its operation and gives a superb performance compared with GA tuning PI controller.

Fig. 14
figure 14

Change in load torque

Fig. 15
figure 15

Change in speed with different controllers

6.5 Response under change in load torque, radiation and temperature

Figure 16 shows the change in load torque, radiation and temperature. Figure 17 shows the variation of motor speed with different controllers. It is clear from this figure that the proposed controller is efficient in enhancing speed control and tracking every change in reference speed of DC motor compared with GA. Hence, the potential and superiority of the proposed controller over the GA are demonstrated.

Fig. 16
figure 16

Change in PV system parameters with load

Fig. 17
figure 17

Change in speed for various controllers

7 Experimental setup

To verify the simulation model, the experimental setup will be built which consists of a 3HP DC motor drive system (“Appendix”). The load to the DC motor is water pump. DC motor is driven by PV system. The main components of the experimental are PV system, DC motor, mechanical load, two DC–DC converters (buck-boost), current sensor, speed sensor, two PI controllers and two microcontrollers.

8 Conclusion

In this paper, ABC optimization algorithm has been used to design two PI controllers for a PV–DC pump system. The controlled system comprises of a PV generator that feeds a DC motor pump system through buck-boost DC/DC converter. The proposed controllers aim to track and speed control of the motor pump system at MPPT of the PV generator. This is carried out through controlling the duty ratio of the converters. Simulation results show that the maximum power tracker is reached. Moreover, the designed ABC tuning PI controllers are robust in its operation and give a superb performance for the change in load torque, radiation and temperature compared with GA and open loop. Furthermore, the saving of power and number of solar cells are increased with ABC algorithm than GA. The future work will include the experimental validation of this paper.