DRAFT: This module has unpublished changes.

The algorithm used was the Perturb and Observe method where the input power is sensed and the reference voltage to the Boost Converter is increased or decreased depending on the irradiation level. The following algorithm was designed to fit our specific system:

 

 

First the Arduino UNO senses the input voltage and current from the solar panel and the output voltage and current of the Boost Converter and calculates the input and output power. Next, the Arduino calculates the difference in power and voltage and power from the output and input and compares it to a zero reference. If the power difference is greater than zero then it compare the difference in voltage. If the voltage is greater or less than zero then the Arduino will either increase or decrease the reference voltage of the DC-DC Boost converter.

 

Using MatLAB we simulated the Algorithm using the following code:

 

function outV = MPPT_Algo(newV, newI, oldV, oldI, inV)

%% Vref is inV

Vref = inV;

newP = newV*newI;

oldP = oldV*oldI;

dV = newV - oldV;

% dI = newI - oldI;

dP = newP - oldP;

 

%% Start

if dP == 0

    %%Yes

    outV = Vref;

else

    %%No

    if dP > 0

        %%Yes

        if dV > 0           

            %% Increase Vref

            outV = min(20, Vref + 1); % This makes sure that your outV is never greater than 20 volts

        else

            %% Decrease Vref

            outV = max(0, Vref - 1);

        end

    else

        %%No

        if dV > 0

            %% Decrease Vref

            outV = max(0, Vref - 0.1);

        else

            %% Increase Vref

            outV = min(20, Vref + 0.1);

        end

    end

end

return

 

t= 0:.1:10;

oldV= -0.032.*(t-5).^4+20;

newV= -0.0013.*(t-5).^6+20;

newI= .001;

oldI= .001;

inV= 12;

 

for m=1:10

    outV = MPPT_Algo(newV, newI, oldV, oldI, inV);

    inV= outV;

end

n= 1:.1:10;

Pout= oldV.*.001;

Pin= newV.*.001;

 

Using the simulated code we plotted the output power and voltage of the MPPT system. We assumed that the voltage and power output of the solar panel was a 6th order polynomial where the x axis is hours of irradiation with approximately 3 hours of maximum irradiation. With this assumption the amount that the reference voltage was increased or decreased would follow the same trend to efficiently anticipate the coming solar panel outputs.

 

 

 

To implement the Algorithm a DC-DC Boost Converter was designed. This was chosen due to its capabilities to maximize the output power and voltage of the Solar Panel. In addition, this inures that the DC-DC Buck Converter will get a higher voltage input for a longer period of time therefore extending the charging capabilities of the charge controller. The following circuit was designed to implement the MPPT Algorithm along with the simulation results:

 

 

 

 

Under ideal conditions the output of the MPPT would be at a maximized and boosted voltage and power level as designed.

DRAFT: This module has unpublished changes.