# How to plot Temperature vs Efficiency curve using For loop and Linspace?

6 views (last 30 days)
Sriparna Barui on 2 Jun 2022
Commented: Fabio Freschi on 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); Fabio Freschi on 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);

Sriparna Barui on 3 Jun 2022
And how do I vary this temperature with V_OC and Isc?
Fabio Freschi on 3 Jun 2022
This depends on a thermal model that you have to implement

Sriparna Barui on 3 Jun 2022
Actually the project is based on simulation only. So I need to find out how these parameters vary with temperature. I am new to Matlab so I have almost clueless in this.
Fabio Freschi on 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

R2015a

### Community Treasure Hunt

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

Start Hunting!