I have developed a Incremental Conductance MPPT algorithm. Initially (for the first change/increment) my algorithm tracks MPP but after first change the algorithm fails to tracks MPP and stabilizes on a common (first) operating point. I have attached the output graph and the simulink model
function duty_cycle = mppt_i_c(v_pv, i_pv, delta)
duty_min=0;
duty_max=0.85;
persistent v_prev i_prev duty_prev;
if isempty(v_prev)
v_prev = 0;
i_prev = 0;
duty_prev = 0.1;
end
dV = v_pv - v_prev;
dI = i_pv - i_prev;
if v_pv > 30
if dV == 0
if dI == 0
duty_cycle = duty_prev;
elseif dI > 0
duty_cycle = duty_prev + delta;
else
duty_cycle = duty_prev - delta;
end
else
if dI/dV == -(i_pv/v_pv)
duty_cycle = duty_prev;
elseif dI/dV > -(i_pv/v_pv)
duty_cycle = duty_prev + delta;
else
duty_cycle = duty_prev - delta;
end
end
else
duty_cycle = duty_prev;
end
if duty_cycle >= duty_max
duty_cycle = duty_max;
elseif duty_cycle < duty_min
duty_cycle = duty_min;
end
duty_prev = duty_cycle;
v_prev = v_pv;
i_prev = i_pv;
end % end of I&C algorithm