Main Content

Solar PV System with Maximum Power Point Tracking Using Extremum Seeking Control

Since R2025a

This example show how to use Extremum seeking control (ESC) to implement the maximum power point tracking (MPPT) algorithm in a solar photovoltaic (PV) system. The example achieves this by controlling the power output of a boost converter used to interface the solar PV system.

The plant model is based on the Simscape™ Electrical™ example Solar PV System with MPPT Using Boost Converter (Simscape Electrical). Based on the plant model, this example focuses on designing extremum seeking control for this renewable energy application.

Solar PV System with MPPT Using Boost Converter

This example uses a boost DC-DC converter to control the solar PV power. The boost converter operates in MPPT mode to achieve the maximum power that the solar PV plant generates, given the incident irradiance and panel temperature. The Solar Plant subsystem models a solar plant that contains parallel-connected strings of solar panels. A Solar Cell block from the Simscape™ Electrical™ library models the solar panel. In this example, assume uniform irradiance and temperature across all the solar panels.

Load the solar PV plant and boost converter parameters defined in the live script ESCSolarPVMPPTBoostData.

run('ESCSolarPVMPPTBoostData');
***********************************************************************************************
****                PV Plant Parameters for the Specified Solar Panel                 ****
***********************************************************************************************
*** Power rating input from the user  =  2.00 kW 
*** Minimum number of panel required per string  =  8 
*** Maximum number of panel connected per string without reaching maximum voltage  =  10 
*** Minimum power rating of the solar PV plant  =  1.80 kW 
*** Maximum power possible per string without reaching maximum DC voltage  =  2.25 kW 
*** Actual number of panel per string  =  9 
*** Number of strings connected in parallel  =  1 
*** Actual solar PV plant power  =  2.03 kW
***********************************************************************************************

MPPT Using Extremum Seeking Control

To achieve a satisfactory control performance, an extremum seeking controller adjusts the control parameters to maximize an objective function in real time. This example uses an objective function of instantaneous power from the solar PV, which depends on the current Ipv and voltage Vpv.

J=IpvVpv

Because of the choice of objective function, the ESC block directly maximizes the solar PV power output. Specify initial guess for the voltage set point Vmpp.

Vmpp_ini = solarPlant.startMPPTValue;

Specify Extremum Seeking Control Parameters

Simulink® Control Design™ software implements the ESC algorithm using the Extremum Seeking Control block. Configure the parameters for this block.

Specify the number of parameters to tune, i.e. the voltage set point Vmpp.

N = 1;

Specify the learning rate lr by gradually increasing the value from the default value of 1 until reaching stability and convergence. In this example, specify the initial condition IC using the same value as in the other MPPT examples.

lr = 10;
IC = Vmpp_ini;

Configure the demodulation and modulation signals by specifying their frequencies (omega), phases (phi_1 and phi_2), and amplitudes (a and b).

omega = 100;  % Forcing frequency
a = 0.25;     % Demodulation amplitude
b = 0.025;    % Modulation amplitude
phi_1 = 0;    % Demodulation phase
phi_2 = 0;    % Modulation phase

Use a low-pass filter to remove high-frequency noise from the demodulated signal. Specify the cutoff frequencies for the filter to 1 rad/s.

omega_lpf = 1;

Simulate Solar PV System with MPPT

To examine the ESC-based MPPT controller, open the ESCSolarPVMPPT model.

mdl = 'ESCSolarPVMPPT';
open_system(mdl)

Implementing the ESC algorithm is straightforward by constructing the objective function directly in the PV Control block. Compared to other MPPT algorithms, the ESC-based algorithm is much simpler.

To show the MPPT control performance at a constant irradiance level, simulate the model.

sim(mdl,"StopTime","0.5");

The following figure show the response from the simulation that has a solar irradiance level of 1000. The solar power output quickly achieves its maximum value in about 50 ms. This fast response enables the solar power system responds much faster than traditional MPPT algorithms.

Alternatively, you can also change to a varying irradiance level and examine the MPPT controller at different operating conditions. For instance, you can set the Signal Editor block active scenario to RampVaryingSolar1000_6000 where the irradiance level decreases from 1000 to 600 with a step of 50, as shown in the following screenshot. You can then run the full simulation with varying levels of solar irradiance and observe the controller performance.

Close the model.

close_system(mdl,0)

Conclusion

This example demonstrates an ESC-based implementation of maximum power point tracking (MPPT) algorithm in a solar photovoltaic (PV) system. When you observe the performance under constant and changing irradiance conditions, extremum seeking control shows fast convergence to maximum power output at various operating conditions.

See Also

Blocks

Topics