HOW CAN DO PV MODULE WITH VARING TEMPERETURE IN MATLAB ?

3 Ansichten (letzte 30 Tage)
aya
aya am 29 Nov. 2022
Beantwortet: Suraj Kumar am 3 Okt. 2024
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

Antworten (1)

Suraj Kumar
Suraj Kumar am 3 Okt. 2024
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!

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by