Difficulty Getting to MPP via Incremental Conductance on Simulink.

6 ビュー (過去 30 日間)
Micaela
Micaela 2025 年 1 月 30 日
編集済み: Walter Roberson 2025 年 1 月 30 日
%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 件のコメント
Walter Roberson
Walter Roberson 2025 年 1 月 30 日
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 2025 年 1 月 30 日
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

サインインしてコメントする。

回答 (0 件)

カテゴリ

Help Center および File ExchangeSolar Power についてさらに検索

製品


リリース

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by