239 views (last 30 days)

Hello,

I am trying to write a series of equations that will plot the I-V curve of a solar panel depending on Irradiance and Temperature, and other intrinsic panel variables (Isc, Iph, saturation curent) etc.

I do know that there exists a solar panel model in simulink that is able to plot the IV curve accurately, but I am interested in finding the equations that govern this relationship.

I have tried to use this research paper: https://www.researchgate.net/publication/37630747_Evaluating_MPPT_converter_topologies_using_a_Matlab_PV_Model

The research paper includes a matlab script that is capable of producing an accurate IV curve, but I have not been able to get it working.

My broken script:

%Equations for IV curve

q = 1.60217662 * (10^(-19)); %elementary charge

k = 1.38064852 * (10^(-23)); %Boltzmanns constant

n = 1.4; %ideality factor

I_SC = 6.15; % Short circuit current

V_OC = 0.721; %Open circuit voltage

T = 298.15; %Cell temperature

V = linspace(0,0.76); %Using voltage as input variable

T_0 = 298.15; % Reference temp = 25C

I_r0 = 1000 %reference Irradiance

TC = 0.0029; % temp coefficint of Isc by manufacturer

V_g = 1.79*(10^(-19)); % Band gap in Joules

I_r = 200:200:1000 % Irradiance input

[V_m,I_rm] = meshgrid(V,I_r); %creating meshgrid

I_s0 = 1.2799*(10^-8); %Saturation current at ref temp given by equation in research paper

I_ph = ((I_SC/I_r0).*I_rm).*(1+ TC*(T-T_0)); % Equation for photocurrent, given in paper

I_s = I_s0.*(T./T_0).^(3/n).*exp((-(q*V_g)/n*k).*((1./T)-(1/T_0))); %saturation current equation in paper

I = I_ph - I_s.*exp(((q*V_m)/(n*k*T))-1); % Current equation

P = I.*V;

Iplot=I;

Iplot(Iplot<0)=nan;

Pplot = P;

Pplot(Pplot<0)=nan;

yyaxis left

plot(V,Iplot);

yyaxis right

plot(V,Pplot);

The script, is able to produce a decent result for different irradiances, but when I repeat the process with a constant irradiance, and Temperature as the input variable, I do not get the desirable result.

In addition to this, if anyone is able to explain to me how the newton rhapson method is applied to this (when the current equation is expanded to include Ir), i would be very grateful.

Any help would be much appreciated.

KALYAN ACHARJYA
on 11 Aug 2019

Edited: KALYAN ACHARJYA
on 11 Aug 2019

"but when I repeat the process with a constant irradiance, and Temperature as the input variable, I do not get the desirable result."

Temperature is already constant

T = 298.15; %Cell temperature

T_0 = 298.15; % Reference temp = 25C

With constant irradiance, you will get the same results, I_r pass the constant I_r vaure for individual plot.,,same thing

say for

I_r=200;

Two plots with two plot commnad, please check, now When

I_r=400;

As changing the I_r, y scale changes to fit the plot,

Therefore when you tried with

I_r = 200:200:1000 % Irradiance input

You will get 10 plots, with constant I_r value (200,400,600,800,1000), just y axes scaling is changing to fit the ranges of all plots.

You can verify the same , by passing single contant I_r value

for I_r = 200:200:1000

%.....

plot..

plot..

hold on;

end

KALYAN ACHARJYA
on 12 Aug 2019

When you plot with single T data, you get the plots

If

>> T=223.15:25:323.15

ans =

223.1500 248.1500 273.1500 298.1500 323.1500

So total plots will be 5 times than single T

I used

for T=223.15:25:323.15

%........

plot();

hold on;

end

I dont think there is any unusual. This is the same graph for 5 different values of T, Hence it looks as dense.

"Increasing temp is supposed to decrease Voc dramatically"

No, idea about subject

If you think the plots are OK for single tempature value, it surely OK for any tempature values or range.

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

Start Hunting!
## 0 Comments

Sign in to comment.