1 Introduction

With the deterioration of the environment and the depletion of conventional energy sources, solar energy as a new type of green energy has attracted widespread attention throughout the world [1, 2]. Photovoltaic (PV) power generation is the most common form of solar energy generation. The output power of a single PV cell, which is the basic unit of PV power generation, is relatively low. In practical applications, given the requirements of voltage and power, it is necessary to combine multiple PV modules in series and parallel to form a PV array. PV array output current and voltage are affected by meteorological conditions (irradiance, temperature etc.) and thereby appear to be non-linear. Its output power also changes continuously. Therefore, how to adjust the load characteristics so that the system can output the maximum power in real time, namely, to achieve the maximum power point tracking (MPPT), is particularly important in PV systems [3,4,5].

MPPT methods mainly include traditional methods and intelligent control algorithms [6]. Traditional MPPT methods include hill climbing [7, 8], perturbation and observation [9, 10], and incremental conductance methods [11, 12], while intelligent control algorithms include fuzzy-logic [13], artificial neural networks [14], flower pollination algorithm [15], and particle swarm optimization [16, 17]. Although the effectiveness of intelligent control algorithms has been verified by experiments in many cases, the algorithms still have the disadvantages of high complexity and slow convergence speed, so have been less applied in real projects. The incremental conductance method is currently the most widely used direct control method.

At present, the development direction of the MPPT algorithm is mainly on the continuous optimization of PV system mathematics and control model [18, 19]. Because of the direct control of converter duty cycle, there is no need to adjust other parameters. This simplifies the MPPT control structure and has good control performance when the external environment is stable. However, the algorithm needs to constantly apply disturbance to the duty cycle to determine the maximum power point (MPP), and thus when the external environment changes, the working point may deviate from the correct tracking trajectory, resulting in misjudgment. This would affect the response speed and tracking accuracy of the system, and result in power loss [20, 21].

To maintain a fast response speed and high steady-state accuracy of the PV system under changing environmental conditions, this paper proposes an improved incremental conductance method. The MPPT control system is different from the module building method adopted at present, and combined with an optimized control algorithm, it can achieve a more accurate, faster and more stable tracking effect.

2 PV array characteristic

Considering economy and maintainability, centralized inverter topologies are generally used in PV power generation systems. Centralized inverters are connected to a large number of PV modules, usually using S-P configuration, as shown in Fig. 1. The output current of this configuration can be expressed as [22]:

$$ \mathrm{I}={\mathrm{N}}_{\mathrm{P}\mathrm{P}}\left[{\mathrm{I}}_{\mathrm{P}\mathrm{V}}-{\mathrm{I}}_{\mathrm{O}}\left({\mathrm{I}}_{\mathrm{P}}-2\right)\right]-\left(\frac{\mathrm{V}+\mathrm{I}{\mathrm{R}}_{\mathrm{S}}\Gamma}{{\mathrm{R}}_{\mathrm{P}}\Gamma}\right) $$
(1)
Fig. 1
figure 1

Equivalent circuit of S-P configuration of PV array

where

$$ {I}_P= ex\mathrm{p}\left(\frac{V+I{R}_S\varGamma }{V_T{N}_{SS}}\right)+\mathit{\exp}\left(\frac{V+I{R}_S\varGamma }{\left(P-1\right){V}_T{N}_{SS}}\right) $$
(2)
$$ \Gamma =\frac{N_{SS}}{N_{PP}} $$
(3)

I and V are the solar cell output current and voltage, respectively. IPV is the photocurrent, IO is the reverse saturation current, and VT is the thermal voltage of PV arrays. RS and RP are the equivalent series and parallel resistances, respectively.

The output characteristics of PV cells are closely related to the solar irradiance. When solar irradiance changes, the PV array has strong nonlinear volt-ampere characteristics. It is neither a constant voltage nor a constant current, and cannot provide constant power for load. The output current is approximately constant in most of the working voltage range, though near the open circuit voltage, the current decline rate is very large.

Figure 2 shows the simulation results under different solar irradiance at the PV array temperature of T = 25 °C. It can be seen from the figure that the output characteristics of the photovoltaic array vary greatly under the influence of solar irradiance. When the solar irradiance increases, the output power increases.

Fig. 2
figure 2

Characteristics of photovoltaic array under different lighting conditions

3 Proposed incremental conductance algorithm

3.1 Conventional incremental conductance algorithm

The incremental conductance algorithm detects the slope of the P–V curve, and the MPP is tracked by searching the peak of the P–V curve. This algorithm uses the instantaneous conductance I/V and the incremental conductance dI/dV for MPPT. Depending on the relationship between the two values, as expressed in (4)–(6), the location of the operating point of the PV module in the P–V curve can be determined, i.e., (4) indicates the PV module operates at the MPP, whereas (5) and (6) indicate the PV module operates at the left and right side of the MPP in the P–V curve, respectively.

$$ \frac{d_i}{d_v}=-\frac{\mathrm{I}}{\mathrm{V}} $$
(4)
$$ \frac{d_i}{d_v}>-\frac{\mathrm{I}}{\mathrm{V}} $$
(5)
$$ \frac{d_i}{d_v}<-\frac{\mathrm{I}}{\mathrm{V}} $$
(6)

The above equations are obtained from the concept where the slope of the P–V curve at MPP is equal to zero, i.e.:

$$ \frac{d_p}{d_v}=0 $$
(7)

By rewriting (7), the following equation is obtained:

$$ I+V\frac{d_i}{d_v}=0 $$
(8)

In the conventional incremental conductance algorithm, (8) is used to detect the MPP, and the voltage and current of the PV module are measured by the MPPT controller. If (5) is satisfied, the duty cycle of the converter needs to be decreased, and vice versa if (6) is satisfied, whereas no change on the duty cycle if (8) is satisfied [23].

3.2 Weakness of conventional incremental conductance algorithm

The conventional algorithm can be confused when the solar irradiation increases. As shown in Fig. 3, when the irradiation is at 0.4 kW/ m2, the MPPT algorithm adjusts the duty cycle to ensure that the PV system operates at load line 2 and the MPP (point B) is tracked. After some time, the solar irradiation increases to 1.0 kW/ m2, but the duty cycle is maintained at load line 2. Therefore, point G will be found by load line 2 in the I–V curve of 1.0 kW/ m2, corresponding to the power at point C in the P–V curve. The conventional incremental conductance algorithm calculates the gradient between points B and C to be positive. However, the gradient between point C and the MPP (point A) of 1.0 kW/ m2 has a negative value. Without noticing this error, the conventional algorithm increases the voltage of the PV module, resulting in an inaccurate first step change when solar irradiation level changes from low to high. However, this problem does not occur when the solar irradiation level decreases from high to low. This is because from points E to H, or in the P–V curve from points A to D, the gradient is positive, while the gradient between points B and D is also positive [24].

Fig. 3
figure 3

I–V and P–V curves of irradiation 1000 W/ m2 and 400 W/ m2

3.3 Proposed incremental conductance algorithm

The incremental conductance algorithm depends on the slope of the P–V curve, which is affected by the solar irradiation level and load resistance. As the algorithm uses the current and voltage of the PV module in the calculation, the effect of solar irradiation and load changes on the current and voltage of the PV module must be considered in the algorithm.

Table 1 shows the summary of changes in the voltage and current of the PV module against the changes in solar irradiation level and load resistance. As shown in Fig. 3, when the PV system operates at load line 2 (point F) and solar irradiation suddenly increases, the operating point of the PV system moves to point G. Therefore, both voltage and current increase. Conversely, when the PV system operates at load line 1 (point E) and solar irradiation suddenly decreases, the operating point of the PV system moves to point H. Thus, both voltage and current decrease. In the conventional incremental conductance algorithm, these two types of changes are not properly considered. Meanwhile, if the PV system operates at load line 1 and load resistance increases, the PV system will operate at load line 2. Therefore, the PV module voltage increases and the PV module current decreases. Alternatively, the voltage decreases and the current increases when the load resistance decreases.

Table 1 Changes in PV voltage and current during changes in solar irradiation and load resistance

Figures 4 and 5 show the changes of duty cycle under small and large perturbations of irradiance, respectively. In Fig. 4, the irradiance starts from 0.4 kW/ m2, increases to 0.5 kW/ m2 at 1 s, and to 0.55 kW/ m2 at 2 s. In Fig. 5, the irradiance starts from 0.3 kW/ m2, increases to 0.5 kW/ m2 at 1 s and to 0.8 kW/ m2 at 2 s. It can be seen from the figures that under the traditional algorithm, during both small and large irradiance disturbances, the system will deviate.

Fig. 4
figure 4

Change of duty cycle under slight disturbance

Fig. 5
figure 5

Change of duty cycle under strong disturbance

The proposed algorithm is shown in the flow chart in Fig. 6. When the irradiance changes, the current and voltage will be affected accordingly. This algorithm thus uses the instantaneous changes of current and voltage of PV modules. While the traditional incremental conductance algorithm makes a judgment on the position of the system operating point, the improved incremental conductance algorithm makes a judgment based on the directions of power, voltage and current. Considering the system at the left side of the MPP, for the system running in the positive direction (dv > 0) the duty cycle will continue to move in the disturbance direction of the previous step, while for the system running in the negative direction (dv < 0) the duty cycle will continue to move in the opposite direction of the disturbance of the previous step. Similarly, when the system is at the right side of the MPP, for the positive system running direction (dv > 0) the duty cycle will continue to move in the opposite direction of the disturbance of the previous step, whereas for the negative system operating direction (dv < 0), the duty cycle will continue to move in the direction of the disturbance of the previous step. Therefore, the algorithm can accurately and correctly judge the disturbance direction of the next step of the working point, thus solving the system misjudgment phenomenon in the traditional method.

Fig. 6
figure 6

Flow chart of the proposed incremental conductance algorithm

4 Simulation results and analysis

Simulations are carried out using the MATLAB 2017a software platform and the Solarex-MX60 data of the PV module customized by BP Solar. The parameters under standard test conditions (STC) are presented in Table 2, and the simulation model for the converter of the PV system with the proposed MPPT algorithm is shown in Fig. 7. The following specifications for the boost converter are used: C1 = 470 μF, C2 = 47 μF, L = 0.1 mH, switching frequency of 10 kHz, and load resistance of 78 Ω. Furthermore, to ensure the system has attained a steady state before another MPP cycle is initiated, the sampling time is chosen to be 0.05 s.

Table 2 Parameters of the MSX-60 PV model at STC
Fig. 7
figure 7

PV system with the boost converter

The calculation of the sampling time is given as:

$$ {T}_{\varepsilon}\cong \frac{-1}{\delta \bullet {w}_n}\bullet \ln \varepsilon $$
(9)

where \( {w}_n=1/\sqrt{L\bullet C} \), \( \delta =1/\left(2\bullet {R}_{MPP}\right)\bullet \sqrt{L\bullet C} \), ε = 0.1.

The irradiance is set to start from 0.3 kW/ m2, increases to 0.5 kW/ m2 at 1 s and to 0.8 kW/ m2 at 2 s. Under the same conditions, the performance of the traditional incremental conductance method and the proposed algorithm are compared.

Figures 8 and 9 show the simulation results of the traditional incremental conductance method and the proposed algorithm under strong irradiance changes. A contrast can be seen in that when the irradiance increases from 0.3 kW/ m2 to 0.5 kW/ m2, the response time of the traditional algorithm is 0.39 s while for the proposed algorithm it is 0.30s, indicating a tracking speed increase of 23.1%. The average output powers of the PV array are 25.09 W and 25.1 W, respectively. When the irradiance increases from 0.5 kW/ m2 to 0.8 kW/ m2, the response time is 0.43 s for the traditional algorithm and 0.35 s for the proposed algorithm, indicating a tracking speed increase of 18.6%. The average output powers of the PV array are 40.01 W and 40.18 W, respectively.

Fig. 8
figure 8

simulation results of the traditional algorithm under strong disturbance. aWaveform of PV power. bWaveform of duty cycle. cWaveform of voltage. d Waveform of current

Fig. 9
figure 9

simulation results of the proposed algorithm under strong disturbance. a Waveform of PV power. b Waveform of duty cycle. c Waveform of voltage. d Waveform of current

In addition, the proposed algorithm is also applicable to a small change of irradiance. The irradiance starts from 0.4 kW/ m2, increases to 0.5 kW/ m2 at 1 s and to 0.55 kW/ m2 at 2 s.

The performance of the traditional method and the proposed algorithm is compared in Figs. 10 and 11. Again when the irradiance increases from 0.4 kW/ m2 to 0.5 kW/ m2, the response time is reduced by 33.3% from 0.24 s with the traditional algorithm to 0.16 s with the proposed algorithm. The average output powers of the PV array are 25.05 W and 25.1 W, respectively. When the irradiance increases from 0.5 kW/ m2 to 0.55 kW/ m2, the response time of the traditional algorithm is 0.08 s while the proposed algorithm is 0.05 s, indicating a tracking speed increase of 37.5%. The average output powers of the PV array are 27.55 W and 27.61 W, respectively.

Fig. 10
figure 10

simulation results of the traditional algorithm under slight disturbance. a Waveform of PV power. b Waveform of duty cycle. c Waveform of voltage. d Waveform of current

Fig. 11
figure 11

simulation results of the proposed algorithm under slight perturbations. a Waveform of PV power. b Waveform of duty cycle. c Waveform of voltage. d Waveform of current

In summary, compared with the traditional incremental conductance method, the proposed algorithm has the ability to solve misjudgment during irradiance variation, and the tracking speed is increased by 20% ~ 30% for different irradiance variation ranges. It not only solves the misjudgment phenomenon when the irradiance changes, but also effectively improves the response speed of the system, reduces the power loss in the tracking process, and improves the output efficiency of the system.

5 Conclusion

In this paper, an incremental conductance algorithm is proposed to track the MPP for a PV module under a fast-changing solar irradiation level. The confusion faced by the conventional algorithm is discussed and modifications are proposed to mitigate the inaccurate response. Compared with the current research status, the control system structure of the proposed algorithm is simpler and more stable, and can accurately respond and track MPP. This improves the stability of the system and avoids misjudgment when the irradiance changes. Simulation results validate that the algorithm is more stable than the traditional algorithm, and improves not only the tracking speed but also the tracking accuracy of the system. The proposed algorithm has a similar structure to the conventional method and no additional hardware components are needed in implementation. It can thus be easily implemented using a low-cost microcontroller, increasing the likelihood of the method being adopted in real PV power generation systems.