Hello,
I am trying to plot temperature with current denstiy. However, I get the "vectors must be the same length" error.
This is the code:
clear allclcclose allJ0ref=2e-7; % Saturation current density mA/cm2
Rs=0.001; % Series resistance k ohm cm2
Rp=1000; % Parallel resistance k ohm cm2
n= 1.5; % Diode ideality factor
Jsc=30; % Short circuit current density in mA/cm2
k=1.38e-23; % Boltzmann constant
Tref= 300 ; % Absolute Temperature
q= 1.6e-19; % Electric charge
Eg=1.12; % Band gap of Silicon
Vx=linspace(-1,1,200); TT=[300 350 400]; for i=1:length(TT) Vt=k*TT(i)/q; % Thermal voltage
J0(i)=(J0ref*(TT(i)/Tref)^(3/n))*exp(-q*Eg/(n*k)*(1/TT(i)-1/Tref)); J=J0(i)*(exp(Vx/(n*Vt))-1)+Vx/Rp-Jsc; V=Vx+J.*Rs; before=V(find(J<0)); after= V(find(J>0));Voc(i)=(before(end)+after(1))/2;Power=-J.*V;maxpos=find(Power==max(Power));Jm=J(maxpos);Vm=V(maxpos);DATA=[V' , J' , Power'];FF(i)=-Jm*Vm/(Jsc*Voc(i));eta(i)=FF(i)*Jsc*Voc(i)/100;h1=figureset(h1,'name','JV Special Topics','numbertitle','on')set(gcf,'DefaultAxesBox','on'),set(gcf,'DefaultAxesLineWidth',2) , set(0,'DefaultAxesFontSize',14),plot(TT,J); end
What do I do to make them the same length? thank you.
Best Answer