Difficulty Getting to MPP via Incremental Conductance on Simulink.

5 Ansichten (letzte 30 Tage)
Micaela
Micaela am 30 Jan. 2025
Bearbeitet: Walter Roberson am 30 Jan. 2025
%CODE
function out = fcn(V, I, Vo, Io, d, step)
dv = V - Vo;
di = I - Io;
if(dv == 0)
if(di == 0)
out = d;
else
if(di > 0)
%increase duty cycle
d=d-step;
else
%decrease duty cycle
d=d+step;
end
out = d;
end
else
if(di/dv == -(I/V))
out = d;
else
if(di/dv > -(I/V))
%decrease duty cycle
d=d-step;
else
%increase duty cycle
d=d+step;
end
out = d;
end
end
%CODE
We have this model for Inc Cond for solar panel MPPT project. The code is also provided for the block, our output used to be perfect when our power gui was set to 1e-7 but our other models are using 1e-6 and we have tried messing with the step size constant to no avail. We are unsure what is going on, if it is relevant we are using a synchronous buck converter for the output of our solar panel.
  2 Kommentare
Walter Roberson
Walter Roberson am 30 Jan. 2025
It is better to post code as text rather than as image. There are no known MATLAB versions that are able to execute images.
Walter Roberson
Walter Roberson am 30 Jan. 2025
if (di/dv == -(I/V))
first off, you compute di/dv and -(I/V) twice. It would be more efficient to assign the parts into variables and then compare the variables.
Secondly, there would be fewer fragile division operations if you would to cross-multiply to compare di*V and -I*dv

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Kategorien

Mehr zu Solar Power finden Sie in Help Center und File Exchange

Produkte


Version

R2024a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by