How to plot Temperature vs Efficiency curve using For loop and Linspace?
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Sriparna Barui
am 2 Jun. 2022
Kommentiert: Fabio Freschi
am 3 Jun. 2022
I have written a code for a basic structure of solar cell. I need to plot Temperature vs Efficiency curve. But I am a little confused of how to plot Temperature vs Efficiency curve using For loop and linspace. Providing a snippet of my code below:
K=1.38*10^-23; % Boltezman Constant
T=300; %Temperature
q=1.6*10^(-19); %electron charge
R_s=2;
R_sh=100;
m=R_sh/(R_s+R_sh);
I_l=30*10^-3*156*156;
I_0=10^(-15)*156*156;
b=I_l-I_0;
a=linspace(0,b);
I=b-a;
I_sc=I_l-I_0;
x=I_l-I;
y=x/I_0;
V=((K*T)/q)*log(y);
V_0=m*V;
P=V_0.*I;
V_OC=(K*T/q)*log(I_l/I_0);
P1=V_OC*I_sc;
M=max(P);
ff=M/P1; %Formfactor
Eff=(P1*ff/2333.6)*100;
plot(V_0,I);
hold on
plot(V_0,P);
0 Kommentare
Akzeptierte Antwort
Fabio Freschi
am 2 Jun. 2022
I have commented your plots to avoid moltiple figures
% numebr of temperatures
nT = 100;
% temperature vector
T = linspace(273,318,nT).';
% preallocate efficiency vector
Eff = zeros(nT,1);
for i = 1:length(T)
K=1.38*10^-23; % Boltezman Constant
% T=300; %Temperature
q=1.6*10^(-19); %electron charge
R_s=2;
R_sh=100;
m=R_sh/(R_s+R_sh);
I_l=30*10^-3*156*156;
I_0=10^(-15)*156*156;
b=I_l-I_0;
a=linspace(0,b);
I=b-a;
I_sc=I_l-I_0;
x=I_l-I;
y=x/I_0;
V=((K*T(i))/q)*log(y);
V_0=m*V;
P=V_0.*I;
V_OC=(K*T(i)/q)*log(I_l/I_0);
P1=V_OC*I_sc;
M=max(P);
ff=M/P1; %Formfactor
Eff(i)=(P1*ff/2333.6)*100;
%plot(V_0,I);
hold on
%plot(V_0,P);
end
figure,plot(T,Eff);
0 Kommentare
Weitere Antworten (2)
Sriparna Barui
am 3 Jun. 2022
1 Kommentar
Fabio Freschi
am 3 Jun. 2022
The calculation of the dependance of the temperature on Voc and Isc is not a question related to matlab. You must find out the set of equations that link these quantities
Siehe auch
Kategorien
Mehr zu Solar Power 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!