HOW CAN DO PV MODULE WITH VARING TEMPERETURE IN MATLAB ?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
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
0 Kommentare
Antworten (1)
Suraj Kumar
am 3 Okt. 2024
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. Use linspace 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!
0 Kommentare
Siehe auch
Kategorien
Mehr zu Sensors and Transducers 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!