Sunteți pe pagina 1din 19

1

Proiect




Disciplina :Automatizari in Sistemele Fotovoltaice










2





Obiective



I. Conceperea i implementarea unei structuri de reglare care s permit
obinerea unei tensiuni dorite la ieirea panoului PV.
2. Conceperea i implementarea unei metode P&O (perturba i observ)
pentru un sistem PV n mediul Matlab/Simulink.
3. Implementarea unei structuri de reglare care s realizeze controlul unui
motor de acionare al unui panou fotovoltaic n vederea urmririi Iradiaiei solare
optime.














3

I. Conceperea i implementarea unei structuri de reglare care s
permit obinerea unei tensiuni dorite la ieirea panoului PV


Ansamblul Panou PV Convertor DC-DC trebuie controlat astfel nct panoul PV s
furnizeze un curent (Ipv), respectiv o tensiune(Vpv) dorit.



Pentru a putea face o reprezentare schematic a buclei elementare de reglare, se definete
procesul P ca fiind ansamblul prezentat sub form de bloc n figur:



Procesul P ncadrat ntr-o structur de reglare coninnd regulator (R), convertoare D/A i
A/D, respectiv element de msur (M) este ilustrat n figur.





4


Pentru a obtine la iesirea panoului PV tensiunea (Vref) si curentul (Iref) prescris, se
recurge la urmtoarea bucl elementar de reglare.




Estimarea parametrilor cu metoda Ziegler-Nichols

Forma general a functiei de transfer care reprezint regulatorul PID este:

Se consider un proces P care trebuie controlat printr-o bucl de reglare de forma:







Avnd la dispozitie modelul procesului P care trebuie controlat printr-un regulator PID,
trebuie s se determine parametrii regulatorului. Exist mai multe metode de determinare initial
a parametrilor unui regulator PID, iar n contextul cursului se prezint metoda 1 Ziegler-Nichols.
Evident, cunoscndu-se rolul parametrilor regulatorului PID, n functie de necesittile
aplicatiei (pentru a influenta timpul de prim reglare,suprareglajul, valorile de RPC, etc.),
parametrii obtinuti se mai pot ajusta.
5

Metoda 1 Ziegler-Nichols se bazeaz pe rspunsul procesului la semnalul treapt. Metoda se
poate aplica n contextul n care rspunsul procesului P la semnalul treapt prezint forma din
figur:

Urmtoarea etap este determinarea constantelor L si T n functie de tangenta n punctul
de inflexiune i valoarea de RPC a semnalului de ieire.
Parametrii regulatorului PID se determin dup urmtorul tabel:



Schema implementata in Matlab Simulink dupa introducerea integratorului PI este:

6

Forma de unda a tensiunii panoului fotovoltaic Vpv in urma introducerii integratorului PI,
aplicand o tensiune de referinta Vref de 20V este:

II. P&O (perturba si observa)

Metoda P&O presupune perturbarea sistemului si monitorizarea puterii furnizate de
acesta. La variatii ale Tpv si Gpv caracteristicile panoului PV se modifica, daca nu se actioneaz
in consecinta atunci puterea furnizata de sistemul PV nu este maxima.La variatii ale Tpv si Gpv
caracteristicile panoului PV se modifica. Daca nu se actioneaza in consecinta atunci puterea
furnizata de sistemul PV nu este maxima, asa cum se poate observa in figurile de mai jos.

7

Sistemul se perturba prin modificarea factorului de umplere u, mai precis modificarea
tensiunii de referinta Vref in bucla elementara de reglare. Daca se perturba sistemul prin
incrementarea sau decrementarea Vref (Vref+V) se poate monitoriza si observa o eventuala
restere a puterii furnizate.
Pasii pe care aceasta metoda ii urmeaza pentru aflarea punctului de putere maxima sunt:
se perturba sistemul Vref+V
se determina prin masurari daca puterea furnizata crestesau scade.
daca puterea creste se continua procesul de incrementare/decrementare.
in momentul in care puterea incepe sa scada, s-a ajuns la punctul de putere maxima:

Organigrama corespunzatoare algoritmului P&O elementar, fara imbunatatiri este:

8

Pentru implementarea acestei metode de gasire a punctului de putere maxima in mediul
Matlab Simulink, se va introduce un bloc Interpreted Matlab Function care va apela o subrutina
reprezentata de fisierul perturba.m.
Codul implementat in fisierul perturba.m este:
function iv_pv = perturba(e)
I_pv = e(1);
V_pv = e(2);
V_pv_ant = e(3);
I_pv_ant = e(4);
Vref_ant = e(5);

delta_V = 0.02;

P_pv = V_pv*I_pv;
P_pv_ant = V_pv_ant*I_pv_ant;

if(P_pv>P_pv_ant)
if(V_pv > V_pv_ant)
Vref = Vref_ant+delta_V;
else
Vref = Vref_ant-delta_V ;
end
else
if (V_pv>V_pv_ant)
Vref = Vref_ant-delta_V;
else
Vref = Vref_ant+delta_V;
end
end
iv_pv(1) = Vref; %Tensiunea de referinta
end


Dezavantajele metodei P&O:

I-Timpul n care se ajunge la punctul de putere maxim poate fi ridicat dac pasul de
incrementare este redus.Amplitudinea oscilaiilor din jurul MPP este considerabil,in special n
situaia unui pas de incrementare semnificativ.
II-Direcia de incrementare poate fi eronat n situaia unor variaii rapide ale intrrilor
(Gpv iTpv).
III-Metoda nu funcioneaz foarte bine pentru radiaii solare sczute

Avantajele metodei P&O

I-Simplitate.
II-Obinerea MPP n majoritatea situaiilor.
III-Adaptabilitate uoar la situaiile reale.
9

Schema implementata in Matlab Simulink pentru metoda perturba si observa este:


Metoda P&O imbunatatita

Imbunatatirea isi propune reducerea oscilatiilor in jurul MPP si reducerea timpului de
obtinere a MPP.Organigrama corespunzatoare acestei metode este:


10

Implementarea acestei metode consta in modificarea codului implementat in blocul
perturba si anume:

function iv_pv = perturba(e)
I_pv = e(1);
V_pv = e(2);
V_pv_ant = e(3);
I_pv_ant = e(4);
Vref_ant = e(5);

P_pv = V_pv*I_pv;
P_pv_ant = V_pv_ant*I_pv_ant;

delta_V=(abs(P_pv - P_pv_ant))/(50*abs(V_pv- V_pv_ant));

if(P_pv>P_pv_ant)
if(V_pv > V_pv_ant)
Vref = Vref_ant+delta_V;
else
Vref = Vref_ant-delta_V ;
end
else
if (V_pv>V_pv_ant)
Vref = Vref_ant-delta_V;
else
Vref = Vref_ant+delta_V;
end
end

iv_pv(1) = Vref;
end
Forma de unda a tensiunii la iesirea panoului PV va fi:

11

Forma de unda a tensiunii si curentului la iesirea din convertor pentru G=1 kW/m
2
si T=25 C
va fi:




12


Caracteristica I-V pentru radiatia solara G=1 kW/m
2
si temperatura T=25
o
C este:

13

Caracteristica P-V pentru radiatia solara G=1 kW/m
2
si temperatura T=25
o
C este:

III. Sistemul de urmarire a evolutiei solare (solar tracking system)

Avantajul implementarii unui astfel de sistem este faptul ca incidenta radiatiei solare este
optima pe tot parcursul zilei, panoul orientandu-se dupa soare pe perioada intregii zile. Un
dezavantaj al acestui sistem de urmarire a soarelui poate fi costul mai ridicat de implementare a
panoului PV si intr-o oarecare masura si energia consumata mai crescuta


14

Sistem fotovoltaic cu dispozitiv de urmarire:


Schema de reglare are urmatoarea structura de principiu, unde blocul senzor poate sa
lipseasca, depinzand de conceperea structurii de urmarire.




15

Daca urmarirea soarelui se realizeaza ca o consecinta a calcularii pozitiei solare (sau
rutina preprogramata), atunci unghiul de referinta este setat direct in bucla de reglare.
Un motor tipic de curent continuu este reprezentat in figura urmatoare:

Controlul motoarelor se implementeaza ca si in figura de mai jos, functia de transfer
reprezentand modelul unui motor de curent continuu:

Iesirea motoarelor reprezinta pozitia unghiulara.
Parametrii regulatoarelor PID se calculeaza cu metoda Ziegler-Nichols, algoritmul
monitorizand evolutia vitezei unghiulare pentru setarea parametrilor.
In blocurile ZOH se va seta intervalul de timp la care sa se modifice pozitia panoului PV.

16

In continuare voi prezenta modelul care realizeaza calculul traiectoriei solare, acesta fiind
prezentat in figura de mai jos:

Evolutia orientarii azimutale si elevatia solara sunt stocate in fisierele azazaz.mat,
respectiv elelel.mat.
Blocul calcul_azel apeleaza functia calcul_azel care are urmatorul schelet:
function AZEL=calcul_azel(tclim,Latitude,Longitude,Altitude);

[Az El]=SolarAzEl(datestr(datenum([2010 1 1 0 0 tclim]),'yyyy/mm/dd
HH:MM:ss'),Latitude,Longitude,Altitude);

if (El<=0)
Az=90;
El=90;
else
Az=Az;
El=90-El;
end

AZEL(1)=Az; %Azimuth
AZEL(2)=El; %Elevation

Functia calcul_azel apeleaza in interiorul ei functia SolarAzEl, codul prescris in aceasta
functie fiind:


function [Az El] = SolarAzEl(UTC,Lat,Lon,Alt)

% Programed by Darin C. Koblick 2/17/2009

% External Function Call Sequence:
%[Az El] = SolarAzEl('1991/05/19 13:00:00',50,10,0)

% Function Description:
% SolarAzEl will ingest a Universal Time, and specific site location on earth
17

% it will then output the solar Azimuth and Elevation angles relative to that
% site.

%Input Description:
% UTC (Coordinated Universal Time YYYY/MM/DD hh:mm:ss)
% Lat (Site Latitude in degrees -90:90 -> S(-) N(+))
% Lon (Site Longitude in degrees -180:180 W(-) E(+))
% Altitude of the site above sea level (km)

%Output Description:
%Az (Azimuth location of the sun in degrees)
%El (Elevation location of the sun in degrees)

%Source References:
%Solar Position obtained from:
%http://stjarnhimlen.se/comp/tutorial.html#5

% Code Sequence

%compute JD
jd = juliandate(UTC,'yyyy/mm/dd HH:MM:SS');
d = jd-2451543.5;

% Keplerian Elements for the Sun (geocentric)
w = 282.9404+4.70935e-5*d; % (longitude of perihelion degrees)
a = 1.000000;% (mean distance, a.u.)
e = 0.016709-1.151e-9*d;% (eccentricity)
M = mod(356.0470+0.9856002585*d,360);% (mean anomaly degrees)
L = w + M; %(Sun's mean longitude degrees)
oblecl = 23.4393-3.563e-7.*d; %(Sun's obliquity of the ecliptic)

%auxiliary angle
E = M+(180/pi).*e.*sin(M.*(pi/180)).*(1+e*cos(M.*(pi/180)));

%rectangular coordinates in the plane of the ecliptic (x axis toward
%perhilion)
x = cos(E.*(pi/180))-e;
y = sin(E.*(pi/180)).*sqrt(1-e.^2);

%find the distance and true anomaly
r = sqrt(x.^2 + y.^2);
v = atan2(y,x).*(180/pi);

%find the longitude of the sun
lon = v + w;

%compute the ecliptic rectangular coordinates
xeclip = r.*cos(lon.*(pi/180));
yeclip = r.*sin(lon.*(pi/180));
zeclip = 0.0;

%rotate these coordinates to equitorial rectangular coordinates
xequat = xeclip;
yequat = yeclip.*cos(oblecl.*(pi/180))+zeclip*sin(oblecl.*(pi/180));
18

zequat = yeclip.*sin(23.4406.*(pi/180))+zeclip*cos(oblecl.*(pi/180));
%convert equatorial rectangular coordinates to RA and Decl:
r = sqrt(xequat.^2 + yequat.^2 + zequat.^2)-(Alt/149598000); %roll up the
altitude correction
RA = atan2(yequat,xequat).*(180/pi);
delta = asin(zequat./r).*(180/pi);

%Following the RA DEC to Az Alt conversion sequence explained here:
%http://www.stargazing.net/kepler/altaz.html

%Find the J2000 value
J2000 = jd - 2451545.0;
hourvec = datevec(UTC,'yyyy/mm/dd HH:MM:SS');
UTH = hourvec(4) + hourvec(5)/60 + hourvec(6)/3600;

%Calculate local siderial time
GMST0=mod(L+180,360)/15;
SIDTIME = GMST0 + UTH + Lon/15;

%Replace RA with hour angle HA
HA = (SIDTIME*15 - RA);

%convert to rectangular coordinate system
x = cos(HA.*(pi/180)).*cos(delta.*(pi/180));
y = sin(HA.*(pi/180)).*cos(delta.*(pi/180));
z = sin(delta.*(pi/180));

%rotate this along an axis going east-west.
xhor = x.*cos((90-Lat).*(pi/180))-z.*sin((90-Lat).*(pi/180));
yhor = y;
zhor = x.*sin((90-Lat).*(pi/180))+z.*cos((90-Lat).*(pi/180));

%Find the h and AZ
Az = atan2(yhor,xhor).*(180/pi) + 180;
El = asin(zhor).*(180/pi);

function jd = juliandate(varargin)
% This sub function is provided in case juliandate does not come with your
% distribution of Matlab

[year month day hour min sec] = datevec(datenum(varargin{:}));

for k = length(month):-1:1
if ( month(k) <= 2 ) % january & february
year(k) = year(k) - 1.0;
month(k) = month(k) + 12.0;
end
end

jd = floor( 365.25*(year + 4716.0)) + floor( 30.6001*( month + 1.0)) + 2.0 -
...
floor( year/100.0 ) + floor( floor( year/100.0 )/4.0 ) + day - 1524.5 +
...
(hour + min/60 + sec/3600)/24;
19

Functia calcul_azel apeleaz n interiorul ei fie functia SolarAzEl, fie functia
sun_position.

Orientarea azimutal i elevatia solar:

S-ar putea să vă placă și