HOW CAN DO PV MODULE WITH VARING TEMPERETURE IN MATLAB ?

조회 수: 4 (최근 30일)
aya
aya 2022년 11월 29일
답변: Suraj Kumar 2024년 10월 3일
clc
Top= 30:20:90;
q = 1.6e-19
k = 1.3805e-23
A = 1.6
B = 1.6
N = 36
Np=1
voc = 21.24
vt=N*k*A*Top/q
Tref = 25
Ego = 1.1
Iph=2.55+0.0017*(Top-25)
for w= N*k*A*Top/q
Irs=2.55/(exp(voc/w)-1)
end
Io=Irs*(Top/Tref).^3*exp (q*Ego *0.0066666667 /B*k)
x=[0:21.24]
D= N*k*A*Top/q
for z=length(D)
for Vpv=0:length(x)
% Ipv=Np*Iph-N*Io *
(exp(x/D)-1)
% plot ( x,Ipv )
end
end

답변 (1개)

Suraj Kumar
Suraj Kumar 2024년 10월 3일
Hi @aya,
From what I gather, you want to simulate the PV module in MATLAB with varying temperatures. To achieve this, you can do the following modifications in the code:
1. Convert the temperature range from Celsius to Kelvin for accurate calculations involving Boltzmann's constant.
Top = 30:20:90;
% Convert temperatures to Kelvin
TopK = Top + 273.15;
2. Calculate the necessary parameters like thermal voltage (vt), photocurrent (Iph), reverse saturation current (Irs), and saturation current (Io) for modelling the PV module's behavior.
for i = 1:length(TopK)
T = TopK(i);
vt = N * k * T / q; % Thermal voltage
Iph(i) = 2.55 + 0.0017 * (T - 298.15); % Photocurrent
Irs(i) = 2.55 / (exp(voc / vt) - 1); % Saturation current
Io(i) = Irs(i) * (T / Tref)^3 * exp(q * Ego * (1/Tref - 1/T) / (B * k)); % Saturation current
D(i) = vt;
end
3. Uselinspace to define a smooth voltage range and iterate over this range to compute and plot the I-V curves for each temperature.
figure;
hold on;
x = linspace(0, voc, 100);
for i = 1:length(TopK)
Ipv = Np * Iph(i) - N * Io(i) * (exp(x / D(i)) - 1);
plot(x, Ipv);
end
You can refer to the output below for a better understanding:
Happy coding!

카테고리

Help CenterFile Exchange에서 Programming에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by