Sunteți pe pagina 1din 10

ISA Laborator nr.

SISTEM DE REGLARE AUTOMATĂ


CU REGULATOARE P, PI, PID
1. Scopul lucrării
În această lucrare se studiază influenţa alegerii legii de reglare (proporţional-P,
proporţional-integrală-PI, proporţional-integrală-derivativă-PID) asupra performanţelor
sistemului automat (eroare staţionară, durata regimului tranzitoriu, gradul de stabilitate, etc),
fară a se pune însa problema determinării valorilor optime a parametrilor ce ponderează
fiecare componentă a legii de reglare.

2. Consideraţii teoretice

Regulatorul proporţional (P)


Legea de reglare :
u (t )  K R   (t ) ;
K R  parametrul de acord
KR
H R _ real  s  
H R (s)  K R sau  1  s  1 daca se considera întârzierea proprie a regulatorului

real.

Regulatorul integral (I)


Legea de reglare :
t
1
u (t ) 
Ti 
0
dt ;

Ti  constanta de integrare

1
HR s 
Ti  s
1
HR s 
Ti  s  1  s  1
daca se considera întârzierea proprie a regulatorului real.

Regulator proporţional-integrator (PI)


Funcţia de reglare:
 1
t

u (t )  K R    t      t  dt  ;
 Ti 0 
K R si Ti parametrii de acord
Ti - constanta de integrare

 1 
H R ( s)  K R 1  
 sTi 
ISA Laborator nr. 4

 1 
K R 1  
 sTi 
H R _ real ( s ) 
 s  1 unde  reprezintă constanta de timp a regulatorului (întârzierea proprie a
regulatorului real.

Efectul I determina asigurarea preciziei răspunsului (eroare staţionară zero) iar efectul P duce la
creşterea vitezei de răspuns a SRA.

Regulator proporţional-derivativ (PD)


Legea de reglare:
 d  (t ) 
u (t )  K R   (t )  Td ;
 dt 
K R si Td reprezinta parametrii de acord;
Td - constanta de derivare

H R ( s )  K R 1  sTd 
K R 1  sTd 
H R _ real  s  
 1  s  1 daca se considera întârzierea proprie a regulatorului real.

Regulator proportional-integral-derivativ (PID)


Legea de reglare:

 1
t
d  (t ) 
u (t )  K R  (t )    (t )dt  Td 
 Ti 0 dt 

 1 
H R ( s)  K R 1   Td s 
 Ti s 

K R Ti Td s 2  Ti s  1
H R (s) 
Ti s  s  1
daca se considera întârzierea proprie a regulatorului real.

Efectul fiecăreia dintre componentele unui regulator PID este:


de( t )
u ( t )  K p e( t )  K i  e( t )dt  K d 
dt
Aplicăm transformata Laplace :
1
u (s)  K p e(s)  K i   e(s)  K d  s  e(s)
s
Funcţia de transfer este :
u (s) 1
H PID (s)   Kp  Ki   Kd  s
e(s) s
Unde:
ISA Laborator nr. 4

 e- semnalul de eroare (de la intrarea în regulator )


 u- ieşirea din regulator (ce joacă rolul comenzii procesului automatizat),
 Kp este câştigul proporţional (adimensional);
 Ki este câştigul integral (cu dimensiunea t-1);
 Kd este câştigul derivativ (cu dimensiunea t).

Partea de regulator proporţional, prin Kp, are efectul de a reduce timpul de creştere şi
eroarea staţionară fără ca acesta din urmă să poată fi complet eliminată.
Partea de regulator integral, prin Ki, are efectul de a elimina eroarea staţionară însă
alterează răspunsul tranzitoriu, lungindu-l.
Partea de regulator derivativ, prin Kd, măreşte stabilitatea sistemului condus,
micşorează supracreşterea şi scurtează răspunsul tranzitoriu.
Efectul celor trei timpi de câştig este sintetizat în tabelul de mai jos:
Tipul de Timpul de Supracreşterea Timpul de Eroarea
câştig creştere stabilire staţionară
Kp descreşte creşte Puţin modificat descreşte
Ki descreşte creşte creşte elimină
Kd puţin modificat descreşte descreşte puţin modificat

Regulatorul proporţional – integral – derivativ (PID) a fost folosit pentru prima oară
de către N.Minorsky în anul 1922 pentru comanda cârmei la vapoare.
În automatica analogică este extrem de folosit şi este utilizat şi în comenzile digitale
chiar dacă în acest domeniu pot fi generaţi algoritmi mai avantajoşi.
u ( s) 1
H PID ( s)   K p  Ki   Kd  s
 (s) s

 1 
H PID ( s )  K R 1   sTd 
 sTi 

Acordarea unui regulator presupune stabilirea valorilor pentru proportional, integral si


derivativ pentru a obţine cea mai bună reglare a unui anumit proces. Dacă regulatorul nu este
dotat cu un algoritm de autoacordare sau acest algoritm nu asigura o reglare corespunzatoare a
procesului dat sau nu se cunoaşte funcţia de transfer a părţi fixe (asupra căreia acţionează
comanda regulatorului) atunci aparatul trebuie acordat prin metoda încercarilor succesive.
Paşii specifici ce trebuiesc urmaţi pentru a proiecta regulatorul PID prin metoda
încercărilor succesive sunt:
Dacă se cunoaşte funcţia de transfer a părţi fixe atunci funcţia de transfer a
regulatorului se poate obţine cu ajutorul unor metode caracteristice în funcţie de parametrii
funcţia de transfer a părţi fixe.
Exemple de astfel de metode:
- Criteriul modulului (varianta Kessler);
- Criteriul simetriei;
- Metoda Ziegler-Nichols; etc.
ISA Laborator nr. 4

3. Desfăşurarea lucrării

1. Proiectaţi un regulator PID pentru un oscilator liniar armonic cu amortizare, astfel încât răspunsul la
treaptă să aibă:

 timpul de creştere mai mic de 0,5s;


 timpul de stabilire mai mic de 2s;
 supracreşterea 0;
 eroarea staţionară 0.

Sistemul condus este reprezentat în figura alǎturatǎ pentru care se dau urmǎtoarele date: M=1kg;
b=1Ns/m; k=20N/m.

Rezolvare
 
Ecuaţia de mişcare este: M x  b x  kx  F şi luând transformata Laplace (condiţiile iniţiale sunt 0,

x(0)  x(0)  0 ) obţinem Ms X ( s )  bsX ( s)  kX ( s)  F ( s) iar funcţia de transfer X ( s)  1
2
.
F ( s) Ms 2  bs  k

Cu valorile numerice date aceasta devine: X ( s )  1


F ( s ) s 2  10s  20
Programul in Matlab:
%Regulator PID pentru oscilatorul liniar armonic
num=1;
den=[1 10 20];
%se introduc interactiv cele trei constante
Kp=input('Castigul proportional?.........');
Ki=input('Castigul integral ?.........'); Răspunsul la treaptă pentru KP = 300, KD = KI = 0.
Kd=input('Castigul derivativ ?.........');
numpid=[Kd Kp Ki];
denpid=[1 0];
t=0:0.01:2;
%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
%figure
%step(num,den,t) %Ulterior se elimina.E bucla deschisa!
%title('Raspunsul la treapta in bucla deschisa fara regulator') Răspuns cu PD KP = 300, KD = 10.
%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
numprod=conv(num,numpid);
denprod=conv(den,denpid);
[numc,denc]=cloop(numprod,denprod,-1); %Inchid bucla cu reactie unitara

%Si vad raspunsul la treapta de 1N


figure
step(numc,denc,t)
Raspuns cu PID cu KP = 350, KI = 300, KD = 50
Raspuns cu PI cu KP = 30, KI = 70.
ISA Laborator nr. 4

2. Un sistem de are funcţia de transfer: Y ( s )  1 cu m = 1000, b = 50, U = 10 (treaptă).


U ( s) m  s  b
Se cere să proiectati regulatorul PID astfel încât răspunsul la treaptă să aibă:
 Timpul de creştere mai mic de 5 sec;
 Supracreşterea mai mică de 10%;
 Eroarea staţionară mai mică de 2%.

Răspunsul la treaptă utilizând KP = 100, KD = KI = 0.


Programul Matlab:
%Regulator PID pentru sistemul de navigatie cu
% ft:y/u=1/(1000s+50)
num=1;
den=[1000 50];
%se introduc interactiv cele trei constante
Kp=input('Castigul proportional?.........');
Ki=input('Castigul integral ?.........');
Kd=input('Castigul derivativ ?.........');
numpid=[Kd Kp Ki]; Răspunsul cu regulator PI. (KI = 40, KP = 800).
denpid=[1 0];
t=0:0.1:20;
numprod=conv(num,numpid);
denprod=conv(den,denpid);
%Inchid bucla cu reactie unitara
[numc,denc]=cloop(numprod,denprod,-1);
%Si vad raspunsul la treapta de 10
figure
step(10*numc,denc,t);title('Raspunsul la treapta de 10N')

Adăugaţi şi un regulator derivativ. Fixaţi KP = 1000, KI = KD = 1 şi observaţi efectul. Vedeţi ce


trebuie să mai eliminaţi din eroarea staţionară. Măriţi KI la 50 luând KP = 1000 şi KD = 1 apoi reprezentaţi
practic răspunsul.
Observaţie! Evitaţi valorile egale pentru cele trei câştiguri. Obţineţi un anumit răspuns doar cu KP dominant apoi
schimbaţi pe rând KI şi KD.
ISA Laborator nr. 4

3. Proiectaţi regulatorul PID pentru controlul vitezei unui motor de c.c., astfel încât pentru treapta 1 rad/s
să obţineţi răspunsul având:
 Timpul de stabilire mai mic de 2 sec;
 Supracreşterea mai mică de 5%;
 Eroarea stţionară mai mică de 1%.

Rezolvare:


   k
Funcţia de transfer a motorului, care leagă viteza unghiulară de tensiunea de alimentare V este  .
V ( Js  b)( Ls  R)  k 2
Programul Matlab:
%Regulator PID pentru vit,ungh. a unui motor de cc
%Parametrii motorului in SI Răspunsul la treaptă pentru KP = 100, KI = KD = 0
J=0.01;
b=0.1;
K=0.01;
R=1;
L=0.5;
num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)];
%se introduc interactiv cele trei constante
Kp=input('Castigul proportional?.........');
Ki=input('Castigul integral ?.........');
Kd=input('Castigul derivativ ?.........');
numpid=[Kd Kp Ki];
denpid=[1 0];
Răspunsul la treaptă pentru KP = 100, KI = 10, KD = 1.
t=0:0.01:5;
numprod=conv(num,numpid);
denprod=conv(den,denpid);
%Inchid bucla cu reactie unitara
[numc,denc]=cloop(numprod,denprod,-1);
%Si vad raspunsul la treapta de 1rad/s
figure
step(1*numc,denc,t)
title('Raspuns la treapta de 1 rad/s')

Răspunsul la treaptă pentru KP = 100, KI = 200 şi KD = 10


ISA Laborator nr. 4

4. Să se proiecteze un regulator PID pentru comanda unui sistem de poziţionare cu motor de curent
continuu. Răspunsul la treaptă de 1 rad trebuie să îndeplinească condiţiile:
 Timpul de stabilire mai mic de 0,04s;
 Supracreşterea mai mică de 16%;
 Eroarea staţionară: 0;
 Eroarea staţionară la perturbaţie: 0.

Rezolvare:
Sistemul de poziţionare este reprezentat în figura de mai jos:
p
r + + y
numcf num
H PID  HM 
- dencf den

În ceea ce priveşte răspunsul y la referinţa r, expresia acestuia o cunoaşteţi: y ( s )  H PID  H M .


r ( s ) 1  H PID  H M
Instrucţiunea Matlab “cloop” vă va juta să o calculaţi. Pentru a evalua răspunsul y ce este datorat perturbaţiei p

vom scrie succesiv:  yH PID  p H M  y deci, y  H M  H PID  1 . Însă, y  numc  H M  H PID . Deci
p 1  H M  H PID H PID r denc 1  H M  H PID
y numc dencf
 
.
p denc numcf

Programul Matlab:
%Regulator PID pentru sistem de pozitionare cu motor de cc
J=3.2284E-6; Răspunsul la treaptă pentru KP = 1.7, KI = KD = 0.
b=3.5077E-6;
K=0.0274;
R=4;
L=2.75E-6;%Parametrii motorului
num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0];
%se introduc interactiv cele trei constante
Kp=input('Castigul proportional?.........');
Ki=input('Castigul integral ?.........');
Kd=input('Castigul derivativ ?.........');
numcf=[Kd Kp Ki];
dencf=[1 0];
numf=conv(numcf,num); Răspunsul la treaptă pentru KP = 1.7, KI =20 KD = 0.
denf=conv(dencf,den);
[numc,denc]=cloop(numf,denf,-1);
t=0:0.001:0.4;
figure
step(numc,denc,t)
title('Raspunsul la treapta de 1 rad.')
figure
numdcl=conv(numc,dencf);
dendcl=conv(denc,numcf);
step(numdcl,dendcl,t);
title('Raspunsul la treapta de perturbatie de 1v')
ISA Laborator nr. 4

Răspunsul la treaptă de referinţă şi la perturbaţie pentru KP = 1.7, KI = 20 şi KD = 0 sunt reprezentate în


figurile de mai jos:

Observăm că timpul de stabilire este încă lung însă am reuşit să ducem la zero eroarea staţionară.
Încercăm să micşorăm timpul de stabilire şi vom mări cu un ordin de mărime cele două câştiguri. Deci KP = 17,
KI = 200, KD = 0 şi reprezentarea celor două răspunsuri este:

Am obţinut o scurtare a timpilor de creştere însă şi oscilaţii. Vom adăuga acum şi regulatorul derivativ
(luând KD = 0,15) pentru a anula oscilaţiile. Reprezentaţi răspunsul obţinut. Îl veţi putea îmbunătăţi luând de
exemplu KP=20, KI = 500, KD = 0,5.

În acest moment condiţiile impuse prin temă sunt satisfăcute. În cazul în care răspunsul negativ la
perturbaţie deranjează veţi putea să încercaţi KI cu 1020% mai mare iar KD cu 20  40% mai mic.
ISA Laborator nr. 4

4. Temǎ

5. Veţi considera în continuare sistemul automat ce l-aţi proiectat în problema precedentă şi veţi
aplica o referinţă sub forma unei rampe de poziţionare având viteza 0,01rad/s, 1rad/s şi 10rad/s. Urmăriţi
răspunsul pentru cazul regulatorului “prost” cu KP=20, KI = KD = 0 şi al celui final cu KP=20, KI = 500,
KD = 0,5.

Rezolvare:
Programul Matlab:
%Regulator PID pentru sistem de pozitionare cu motor de cc
%Efectul parametrilor asupra raspunsului la rampa.
%Rampa se introduce cu "lsim" in 3 variante (vezi textul)
J=3.2284E-6;
b=3.5077E-6;
K=0.0274;
R=4;
L=2.75E-6; %Parametrii motorului
num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0];
%se introduc interactiv cele trei constante
Kp=input('Castigul proportional?.........');
Ki=input('Castigul integral ?.........');
Kd=input('Castigul derivativ ?.........');
numcf=[Kd Kp Ki];
dencf=[1 0];
numf=conv(numcf,num);
denf=conv(dencf,den);
[numc,denc]=cloop(numf,denf,-1);
t=0:0.001:0.4;
figure
step(numc,denc,t)
title('Raspunsul la treapta de 1 rad.')
figure
numdcl=conv(numc,dencf);
dendcl=conv(denc,numcf);
step(numdcl,dendcl,t);
title('Raspunsul la treapta de perturbatie de 1v')
figure
t=0:0.0001:0.5;
u=1*t;
title('raspunsul la rampa')
lsim(numc,denc,u,t)

Indicaţie !Veţi modifica în mod succesiv u=0,01*t, u=1*t, u=100*t. Încercaţi să obţineţi o imagine intuitivă
asupra relaţiei dintre parametrii răspunsului la treaptă şi liniaritatea răspunsului la rampă.
Ar trebui să observaţi că apar neliniarităţi în răspuns pe durata regimului tranzitoriu şi că eroarea
staţionară modifică panta răspunsului indiferent de viteza rampei. În acest fel toţi parametrii impuşi prin tema de
proiectare din problema precedentă se dovedesc relevanţi pentru răspunsul la rampă.
ISA Laborator nr. 4

6. Proiectaţi regulatorul PID pentru comanda piotului automat astfel încât să realizaţi un răspuns la
treaptă care să aibă:
 Supracreşterea mai mică de 10%;
 Timpul de creştere mai mic de 2 sec;
 Timpul de stabilire mai mic de 10 sec;
 Eroarea staţionară mai mică de 2%.
Treapta este de 0,2 rad.

Rezolvare:
Funcţia de transfer ce leagă cele două unghiuri – de cabraj (s) şi de comandă (s) este:
(s) 1,151s  0,1774
 3
(s) s  0,739s 2  0,921s . Efectul regulatorului proporţional KP = 2

Programul Matlab:
%Regulator PID pentru pilotul automat
%Functia de transfer este data in text
num=[1.151 0.1774];
den=[1 0.739 0.921 0];
%se introduc interactiv cele trei constante
Kp=input('Castigul proportional?.........');
Ki=input('Castigul integral ?.........');
Kd=input('Castigul derivativ ?.........');
numcf=[Kd Kp Ki];
dencf=[1 0]; %Functia de transfer a regulatorului PID Răspunsul folosind un regulator PD cu KP=9, KI = 0, KD = 4.
numf=conv(numcf,num);
denf=conv(dencf,den);
[numc,denc]=cloop(numf,denf,-1);
t=0:0.01:10;
figure
amp=0.2; %Amplitudinea treptei in rad.
step(amp*numc,denc,t)
title('Raspunsul la treapta de 0.2 rad.')

Prin experimentări vă veţi convinge că de obicei trebuie să schimbaţi câte doi parametrii
(datorită interdependenţei lor). Încercaţi să obţineţi o soluţie mai bună decât cea găsită de noi
pentru: (KP=7, KI = 4, KD = 6).

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