
HOW CAN DO PV MODULE WITH VARING TEMPERETURE IN MATLAB ?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponses (1)
Suraj Kumar
le 3 Oct 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 commentaires
Voir également
Catégories
En savoir plus sur Sensors and Transducers dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!