Date post: | 17-Feb-2015 |
Category: |
Documents |
Upload: | victorinne |
View: | 55 times |
Download: | 1 times |
193
Lucrarea 13
Proiectarea şi implementarea regulatoarelor. Exemple
Con ţinut 1. Scopul lucrării ................................................................................................ 194 2. Exemple de proiectare a unor sisteme de reglare automată ........................ 194
2.1. Controlul vitezei unui motor de curent continuu – SRA cu timp continuu 194
2.1.1. Cerinţe ......................................................................................... 194 2.1.2. Obţinerea modelului matematic .................................................. 195 2.1.3. Proiectarea regulatorului analogic .............................................. 197 2.1.4. Implementarea sistemului de reglare analogic ........................... 204
2.2. Controlul poziţiei unui motor de curent continuu – SRA cu timp discret 206
2.2.1. Cerinţe ......................................................................................... 206 2.2.2. Obţinerea modelului matematic .................................................. 206 2.2.3. Proiectarea regulatorului numeric ............................................... 206 2.2.4. Implementarea regulatoarelor numerice ..................................... 213
Lista de figuri Figura 13.1 Schema bloc a motorului de curent continuu cu magneţi permanenţi
...................................................................................................................... 196 Figura 13.2 Evoluţia comparativă a procesului real de ordin II şi a celui simplificat
de ordin I ....................................................................................................... 197 Figura 13.3 Schema bloc a sistemului de reglare a vitezei maşinii de curent
continuu ......................................................................................................... 198 Figura 13.4 Tipul semnalelor sistemului de reglare a vitezei maşinii de curent
continuu ......................................................................................................... 198 Figura 13.5 Reglarea vitezei unui motor de c.c. cu un regulator PI analogic ....... 201 Figura 13.6 Regulator PI analogic cu limitarea comenzii ...................................... 202 Figura 13.7 Motor de curent continuu cu viteza mărime de ieşire ........................ 202 Figura 13.8 Viteza motorului la o referinţă treaptă de 240 rad/s. După 25ms apare
un cuplu de sarcină de ms=20mNm. ............................................................ 202 Figura 13.9 Curentul motorului la o referinţă treaptă de 240 rad/s. După 25ms
apare un cuplu de sarcină de ms=20mNm. .................................................. 203 Figura 13.10 Ieşirea regulatorului la o referinţă treaptă de 240 rad/s. După 25ms
apare un cuplu de sarcină de ms=20mNm. .................................................. 203 Figura 13.11 Schema de implementare a sistemului reglare ............................... 204 Figura 13.12 Tipul semnalelor sistemului de reglare a poziţiei maşinii de curent
continuu ......................................................................................................... 207 Figura 13.13 Reglarea poziţiei unui motor de c.c. cu un regulator PID discret .... 210
Lucrarea 13
194
Figura 13.14 Regulator PID discret cu limitarea comenzii .................................... 211 Figura 13.15 Motor de curent continuu cu poziţia mărime de ieşire ..................... 211 Figura 13.16 Poziţia motorului la o referinţă treaptă de 3 rad. După 25ms apare un
cuplu de sarcină de ms=50mNm. ................................................................. 211 Figura 13.17 Curentul motorului la o referinţă treaptă de 3 rad. După 25ms apare
un cuplu de sarcină de ms=50mNm. ............................................................ 212 Figura 13.18 Ieşirea regulatorului la o referinţă treaptă de 3 rad. După 25ms apare
un cuplu de sarcină de ms=50mNm. ............................................................ 212 Figura 13.19 Structura programului principal pentru un sistem numeric de control
...................................................................................................................... 214
1. Scopul lucr ării Lucrarea urmăreşte:
• Prezentarea a două exemple concrete de proiectare a unor sisteme de reglare
• Exemplificarea modului de implementare practică a unui sistem de reglare analogic cu regulator PI
• Descrierea modului de implementare a algoritmului de control pentru un sistem de reglare numeric cu regulator PID
2. Exemple de proiectare a unor sisteme de reglare automat ă
În cele ce urmează se vor prezenta 2 exemple concrete de proiectare a unor sisteme de reglare automată: unul cu timp continuu şi celălalt cu timp discret. În ambele cazuri, se indică cerinţele şi se parcurg etapele principale ale fazei de proiectare: modelarea matematică a procesului, proiectarea regulatorului şi implementarea sistemului de reglare.
2.1. Controlul vitezei unui motor de curent continu u – SRA cu timp continuu
2.1.1. Cerin ţe
• Sistemul de reglare automată trebuie să permită reglarea continuă a vitezei unui motor de curent continuu cu magneţi permanenţi în toată plaja de valori posibile. Motorul are următoarele date:
Rezistenţa rotorului – R = 10Ω
Inductivitatea rotorului – L = 1mH
Constanta de cuplu – k = 0,05 Nm/A
Proiectarea şi implementarea regulatoarelor
195
Momentul de inerţie total (include şi sarcina) J = 5*10-7 kgm2
• Motorul este alimentat printr-un amplificator care furnizează o tensiune de maxim ±24V. Tensiunea furnizată este proporţională cu o tensiune de comandă în plaja ±10V.
• Motorul este cuplat cu un tahogenerator care dă o tensiune proporţională cu viteza motorului. Relaţia de proporţionalitate este dată de:
Constanta tahogeneratorului – TGK = 4V/1000rpm (rpm = rotaţii pe
minut)
• Referinţa de viteză se dă printr-o tensiune ce poate varia în plaja ±10V.
2.1.2. Obţinerea modelului matematic
Relaţiile (13.1) prezintă ecuaţiile motorului de curent continuu cu magneţi permanenţi. Pe baza lor se obţine schema bloc a motorului prezentată în Figura 13.1.
(13.1)
−=Ω=
Ω++=
smmdt
dJ
kim
kdt
diLRiU
unde:
U – tensiunea de alimentare a motorului;
LR , – rezistenţa şi respectiv inductivitatea rotorului;
i – curentul care trece prin motor;
k – constanta de cuplu a motorului;
m – cuplul activ dezvoltat de motor;
sm – cuplul rezistent static (constant);
J – momentul de inerţie cumulat al motorului şi sarcinii
Ω – viteza unghiulară a rotorului
Lucrarea 13
196
U Ω
k
−
−
sJ
1∑∑
RLs +1
ki ++ m
sm
Figura 13.1 Schema bloc a motorului de curent continuu cu magneţi permanenţi
Motorul are 2 funcţii de transfer:
a) de la tensiunea U care este mărimea de comandă la viteza Ω :
(13.2) ( ) ( )
( )1
/1
1)(
)(
222222
++=
++=
++
+=Ω=Ω→
k
JRs
k
JLs
k
ksJRJLs
k
sLRsJ
k
sLRsJ
k
sU
ssHU
b) de la cuplul rezistent static care este o perturbaţie la viteza Ω :
(13.3) ( )
( )1
1/)(
1
1
)(
)(
222
2
222++
+−=
+++−=
++
−
==Ω→
k
JRs
k
JLs
R
LkR
ksJRJLs
sLR
sLRsJ
ksJ
sU
smsH s
ms
Ţinând cont că: R
Lel =τ este constanta electrică a motorului şi
2k
JRem =τ este
constanta electromecanică a motorului, relaţiile (13.2) şi (13.3) se pot pune sub forma:
(13.4) ( )1
/1
1
/12
222 +τ⋅+τ⋅τ⋅
=++⋅
=Ω→ememel
Uss
k
k
JRs
R
L
k
JRs
ksH
şi respectiv:
(13.5) ( )1
)1(/
1
)1(/
2
2
222
2
+τ⋅+τ⋅τ⋅τ⋅+−
=++
+−=Ω→
ememel
elm
ss
skR
k
JRs
k
JLs
R
LkR
sHs
Proiectarea şi implementarea regulatoarelor
197
Proiectarea regulatorului se va face considerând doar funcţia de transfer (13.4), care depinde de comandă. Din datele motorului, cele 2 constante de timp rezultă:
msR
Lel 1.0
10
10 3
===τ−
respectiv ( ) msk
JRem 2
105
1010522
7
2=
⋅
⋅⋅==τ−
−.
Întrucât emel τ<<τ , produsul emel τ⋅τ se poate neglija, astfel încât funcţia de
transfer (13.4) se poate simplifica considerând-o cu o bună aproximaţie ca fiind de ordinul I, de forma:
(13.6) ( )em
U s
ksH
τ⋅+=Ω→ 1
/1
Figura 13.2 arată comparativ răspunsul a 2 procese având funcţiile de transfer (13.4) şi (13.6) la o intrare treaptă VU 24= . Cele 2 răspunsuri sunt aproape identice demonstrând că utilizarea formei simplificate (13.6) este corectă.
0 0.002 0.004 0.006 0.008 0.01 0.012 0.0140
50
100
150
200
250
300
350
400
450
500
timp [s]
Om
ega
[rad
/s]
H(s) ordin IIH(s) ordin I
Figura 13.2 Evoluţia comparativă a procesului real de ordin II şi a celui simplificat de ordin I
2.1.3. Proiectarea regulatorului analogic
Ţinând cont că procesul este de ordinul I, se va utiliza un regulator cu structură fixă de tip PI care trebuie acordat. Figura 13.3 prezintă schema bloc a sistemului de reglare a vitezei maşinii de curent continuu.
Lucrarea 13
198
∑ε*Ω
−( )sH R+
Regulator
U Ω
k
−
−
sJ
1∑∑ RLs +
1k
i
++m
smc.c.Motor
AK
TGTGKΩK
Figura 13.3 Schema bloc a sistemului de reglare a vitezei maşinii de curent continuu
În afară de motor şi de regulatorul propriu-zis, schema mai include:
• Amplificatorul de tensiune prin care motorul este comandat, caracterizat prin constanta de amplificare AK
• Tahogeneratorul pentru măsurarea vitezei, având constanta TGK
• Adaptarea de semnal de la ieşirea tahogeneratorului la intrarea în regulator, dată de constanta ΩK .
Toate aceste elemente trebuiesc luate în considerarea la acordarea regulatorului PI.
Pentru o mai bună înţelegere a rolului acestor elemente Figura 13.4 prezintă tipul şi plaja de valori a semnalelor ce fac legătura între blocurile schemei de reglare.
Regulator*Ω
VΩ
]10[ V± Uc U
TGK
ΩK
AK+
−
ε ]/480[ srad±]10[ V± ]24[ V±
]10[ V±TGΩ ]3.18[ V±
]10[ V± MΩ
Figura 13.4 Tipul semnalelor sistemului de reglare a vitezei maşinii de curent
continuu
Conform cerinţelor de proiectare, referinţa de viteză este dată sub forma unei tensiuni în plaja ±10V. Pentru a putea compara mărimi de acelaşi tip şi dimensiune, rezultă că şi mărimea de feedback trebuie să fie tot o tensiune în plaja de valori ±10V.
Proiectarea şi implementarea regulatoarelor
199
Tipic regulatoarele analogice au plaja de intrare şi cea de ieşire ±10V. La intrarea regulatorului se aplică o tensiune proporţională cu eroarea ε şi la ieşirea regulatorului se obţine o tensiune de comandă Uc proporţională cu tensiunea care trebuie aplicată pe motor.
Notă: Când referinţa şi feedback-ul variază în plaja ±10V, eroarea rezultă în plaja ±20V. Pentru a o aduce în gama ±10V se practică 2 metode:
a) erorile se limitează la plaja de ±10V
b) calculul erorii se face cu relaţia: )(2/1 *VΩ−Ω⋅=ε care reduce plaja
erorii de la ±20V la ±10V. Această atenuare de ½ trebuie însă luată în calcul la proiectarea regulatorului.
În cele ce urmează se va folosi metoda b).
Conform cerinţelor, amplificatorul poate furniza motorului o tensiune U în plaja ±24V. Pentru a acoperii întreaga gamă de tensiuni admisibile, ±10V tensiune de comandă trebuie să conducă la ±24V tensiune pe motor. Prin urmare amplificatorul
are constanta de amplificare 4,210
24 ==V
VK A .
Din relaţiile (13.1) rezultă că atunci când un motor este comandat cu tensiunea U , poate atinge teoretic o viteza maximă
sradANm
V
k
U/480
/05.0
24max ===Ω . Ţinând cont şi de polaritatea
negativă aceasta înseamnă o plajă de valori de ±480 rad/s.
Notă: În practică această limită nu este atinsă niciodată deoarece întotdeauna există un cuplu de frecări nenul.
Tahogeneratorul cu constanta:
sradVsV
rpmVKTG //0382,021000
6041000/4 =
π⋅⋅==
va furniza o tensiune proporţională cu turaţia motorului în plaja VTG 33.18038.0480 =⋅±=Ω . Cum acest semnal depăşeşte plaja de intrare
în regulator de ±10V, el trebuie atenuat, factorul de divizare fiind
545.033.18
10 ==ΩK .
Regulatorul ‘vede’ drept funcţie de transfer a procesului, tot ceea ce este în afara lui. Regulatorul trimite o comanda Uc şi citeşte reacţia procesului prin eroarea ε , ambele mărimi fiind în plaja ±10V. Prin urmare funcţia de transfer reală a procesului pe baza căreia se va face proiectarea regulatorului este:
Lucrarea 13
200
(13.7) ( )as
b
s
K
s
KsH
em
em
ech
em
echreal +
=+
τ
τ=
τ⋅+=
11
unde:
5.005.0
545.00382.04.2/12/1 =××=⋅⋅⋅⋅= ΩKKkKK TGAech
250102
5.03
=⋅
=τ
= −em
Kb ; 500
102
113
=⋅
=τ
= −em
a
Pentru acordare se aleg:
• Factorul de amortizare – 707,0=ξ
• Pulsaţia naturală rad/s em
5001 =
τ=ω
Coeficienţii Kp şi Ki rezultă cu formulele:
1000250
500;828.0
250
500500707.022 22
==ω==−⋅⋅=−ξω=b
Kb
aK IP
Rezultatele s-au obţinut cu următorul program Matlab:
% Comanda buclei de viteza cu regulator PI analogic %-------------------------------------------------- % Date initiale motor si sarcina
R = 10; %[ohm] - rezistenta rotorului
L = 1e-3; %[H] - inductivitatea rotorului
k = 0.05; %[Nm/A] - constanta de cuplu a motorului
J = 5e-7; %[kg*m^2] - momentul de inertie total (motor+sarcina)
% Date initiale regulator PI analogic
Ui = 10; %[V] - plaja tensiunii de referinta si feedback (+/-)
Ue = 10; %[V] - plaja tensiunii de iesire/comanda (+/-) Ueps = 10; %[V] - plaja tensiunii de eroare (+/-)
% Date initiale amplificatorului de putere
Uin = Ue; %[V] - plaja tensiunii de intrare = iesirea din regulator
U = 24; %[V] - plaja tensiunii maxime aplicate pe motor (+/-)
% Date initiale tahogenerator
K_TG = 4; %[V/1000rpm] - constanta tahogeneratorului
% Calcul parametrii
tau_el = L/R; %[s] - constanta electrica a motorului
Proiectarea şi implementarea regulatoarelor
201
tau_em = J*R/k^2; %[s] - constanta electromecanica a motorului
omg_max = U/k; %[rad/s] - viteza (unghiulara) maxima a motorului
K_A = U/Uin; %[V/V] - constanta amplificatorului de tensiune
Ktg = K_TG*60/(2*pi*1000); %[V/rad/s] - constanta tahogen. in unitati SI
Komg = Ui/(omg_max*Ktg); %[V/V] - constanta de atenuare a vitezei
%masurate % Functia de transfer reala a motorului de la c-da la viteza (ordin II)
num = 1/k; %numarator den = [tau_el*tau_em tau_em 1]; % numitor
% Functia de transfer redusa a motorului de la c-da la viteza (ordin I)
num1 = 1/k; %numarator
den1 = [tau_em 1]; %numitor
% Functia de transfer vazuta de regulator de forma: H(s)=b/s+a Kech = K_A*1/k*Ktg*Komg*Ueps/(Ui+Ue); b = Kech/tau_em a = 1/tau_em % Acordare regulator PI analogic
w = 500; %[rad/s] - pulsatia naturala dorita w = 1/tau_em
tzeta = 0.707; %factorul de amortizare Kp = (2*tzeta*w - a)/b Ki = w^2/b
Pentru verificare s-a folosit schema de simulare din Figura 13.5 care include 2 subblocuri pentru regulatorul PI şi pentru motor, prezentate în Figura 13.6 şi respectiv Figura 13.7. S-a aplicat o referinţă treaptă egală cu jumătate din viteza maximă posibilă a motorului. Pentru a testa şi capacitatea de-a rejecta efectul perturbaţiilor, după 25ms de la aplicarea referinţei s-a aplicat şi un cuplu de sarcină
mNmms 20= . Evoluţia vitezei şi curentului motorului este prezentată în Figura 13.8 şi Figura 13.9. Figura 13.10 arată evoluţia comenzii date de regulatorul PI în plaja ±10V.
Figura 13.5 Reglarea vitezei unui motor de c.c. cu un regulator PI analogic
Lucrarea 13
202
Figura 13.6 Regulator PI analogic cu limitarea comenzii
Figura 13.7 Motor de curent continuu cu viteza mărime de ieşire
Figura 13.8 Viteza motorului la o referinţă treaptă de 240 rad/s. După 25ms apare un cuplu de sarcină de ms=20mNm.
Proiectarea şi implementarea regulatoarelor
203
Figura 13.9 Curentul motorului la o referinţă treaptă de 240 rad/s. După 25ms apare un cuplu de sarcină de ms=20mNm.
Figura 13.10 Ieşirea regulatorului la o referinţă treaptă de 240 rad/s. După 25ms apare un cuplu de sarcină de ms=20mNm.
Lucrarea 13
204
2.1.4. Implementarea sistemului de reglare analogic
Sistemul de reglare analogic poate fi privit ca o cutie neagră cu 2 intrări şi o ieşire. Cele 2 intrări sunt: referinţa de viteză – o tensiune în plaja ±10V şi măsura de viteză – o tensiune dată de tahogenerator în plaja ±18.33V. Ieşirea este comanda de tensiune pentru amplificatorul de putere în plaja ±10V.
Schema sistemului de reglare este prezentată în Figura 13.11. Ea include următoarele elemente componente:
a) Divizarea tensiunii de tahogenerator ),( 21 RR
b) Ajustarea impedanţei pentru referinţă )( 1A şi feedback )( 2A
c) Calculul erorii ),( 43 RA
d) Implementarea părţii proporţionale ),( 75 RA şi integrale ),,( 154 CRA a
regulatorului
e) Însumarea ponderată a părţilor P şi I ale regulatorului ),,,( 9866 RRRA
Figura 13.11 Schema de implementare a sistemului reglare
Alegerea valorilor elementelor componente s-a făcut astfel:
• Se alege Ω= KR 2.12 pentru a limita curentul prin divizor astfel încât
influenţa rezistentei tahogeneratorului să fie neglijabilă. Din
condiţia:21
2
33.18
10
RR
RK
+==Ω se obţine Ω=⋅= 6.999
10
233.81
RR . Se
alege valoarea standard Ω= KR 11
R7
R5
-
+
C1
R2
R1
TG
R6
R9
-
+
R4
R4
R8
TGV VF
A'V
±10V
AV
VD
BV
VE
-
+
R4 / 2
R4 / 2
CV
-
+
R3
-
+
R7
10V
-
+
10V
A
A
A A
A
A
Proiectarea şi implementarea regulatoarelor
205
• Se alege Ω= KR 14 . Aceeaşi valoare se poate alege şi pentru 3R în cazul
când referinţa este setată printr-un potenţiometru.
• Pentru 3A avem relaţiile:
32/
2/
44
4 AAy
V
RR
RVV =
+⋅= ;
2
2
2/
2/
44
44 CBCBx
VV
RR
RVRVV
+=
+⋅+⋅
= ;
yx VV =
de unde rezultă potenţialul 2/)( BAC VVV −=
• Pentru 4A avem relaţia: 01
1=+= rDCZ RV
sCVV de unde rezultă
15CsR
VV C
D −=
• Pentru 5A avem relaţia 077 =+= RVRVV CEW de unde rezultă
CE VV −=
• Pentru 6A avem relaţia 0896
=++R
V
R
V
R
V FED de unde rezultă
EDF VR
RV
R
RV
9
8
6
8 −−= sau înlocuind DV şi EV din relaţiile anterioare:
CPI
CF VKs
KV
R
R
CRsR
RV
+=
+=
9
8
156
8
• Pentru a obţine 828.09
8 ==R
RKP , se aleg Ω= 8208R şi Ω= KR 19
• Pentru a obţine 1000156
8 ==CRR
RK I , se aleg Ω== 8208 68 RR ,
Ω= KR 15 şi FC µ= 11
Notă: 851 ,, RRR sunt uzual rezistenţe reglabile. Pentru exemplul dat, pot fi
potenţiometre de ΩK5.2 . 1R permite ajustarea divizorului de tensiune în funcţie
de tahogeneratorul utilizat. 5R oferă posibilitatea modificării componentei integrale,
Lucrarea 13
206
independent de cea proporţională. 8R permite ajustarea amplificării globale
simultan pentru partea P şi I.
2.2. Controlul pozi ţiei unui motor de curent continuu – SRA cu timp discret
2.2.1. Cerin ţe
• Sistemul de reglare automată trebuie să permită reglarea poziţiei unui motor de curent continuu cu magneţi permanenţi în toată plaja ±10 rotaţii. Motorul are aceleaşi date ca cel din exemplul precedent
• Motorul este alimentat printr-un amplificator care furnizează o tensiune de maxim ±24V. Tensiunea furnizată este proporţională cu o tensiune de comandă în plaja ±10V.
• Motorul este cuplat cu un encoder incremental de 500 linii pe rotaţie. El permite măsurarea poziţiei motorului cu rezoluţia de 2000 pulsuri pe rotaţie.
• Sistemul numeric de comandă include:
o interfaţă de encoder care permite citirea directă a variaţiei de poziţie
un convertor numeric analogic de 10 biţi şi un circuit de adaptare de semnal prin care ieşirea convertorului este adusă în plaja ±10V
o interfaţa utilizator prin care acesta poate introduce referinţa de poziţie
2.2.2. Obţinerea modelului matematic
Funcţia de transfer a procesului de la tensiunea de comanda U la poziţia motorului θ se obţine adăugând un integrator la (13.6), deoarece poziţia motorului se obţine integrând viteza lui:
(13.8) ( ) ( )emU ss
ksH
τ⋅+=θ→ 1
/1
2.2.3. Proiectarea regulatorului numeric
Ţinând cont că procesul este de ordinul II, se va utiliza un regulator cu structură fixă de tip PID care trebuie acordat. Figura 13.12 prezintă schema bloc a sistemului de reglare, tipul şi plaja de valori pentru semnale care fac legătura între blocurile componente.
Proiectarea şi implementarea regulatoarelor
207
Regulator
*θ ]20000[ b± UcU
ENCK
CNAK+
−
ε ]20[ radπ±][b ]10[ V±
Eθ ][ 20000b±
][ 512b±θ
UcAK ]24[ V±
Figura 13.12 Tipul semnalelor sistemului de reglare a poziţiei maşinii de curent continuu
Referinţa de poziţie este un număr (simbolizat prin unitatea de măsură b , adică biţi) care conform cerinţelor trebuie să acopere plaja de valori ±10 rotaţii. Având în vedere că poziţia motorului este citită cu rezoluţia de 2000 de pulsuri/biţi pe rotaţie, plaja de valuri a referinţei este ±20000 biţi.
La ieşire, regulatorul trebuie să de-a o comandă care să corespundă cu rezoluţia convertorului numeric analogic (CNA). Dacă CNA are 10 biţi, înseamnă că poate converti într-o tensiune de orice număr în plaja [0 210-1]. Ţinând cont că tensiunea de comandă e bipolară, corespondenţa conversiei este: ±512 (±29) biţi corespund
la ±10V. Deci factorul de conversie este: ]/[512
10bitiVKCNA = .
Tensiunea de comandă de ±10V intră în amplificatorului de putere care o converteşte în tensiunea efectivă aplicată motorului. Prin urmare amplificatorul are
constanta de amplificare 4,210
24 ==V
VK A .
În fine, poziţia motorului este citită prin intermediul encoderului incremental, corespondenţa fiind 2000 pulsuri sau biţi la o rotaţie, adică:
]/[2
2000radbitiKENC π
= .
Regulatorul ‘vede’ drept funcţie de transfer a procesului, echivalentul discret a tot ceea ce este în afara lui. Prin urmare funcţia de transfer reală a procesului pe baza căreia se va face proiectarea regulatorului este:
(13.9) ( ))(1)1( ass
b
ss
K
ss
KsH
em
em
ech
em
echreal +
=
+
τ
τ=τ⋅+
=
Lucrarea 13
208
unde:
4.29805.0
)2/(20004.2512/10/1 =π××=⋅⋅⋅⋅= ENCACNAech KkKKK
149200102
4.2983
=⋅
=τ
= −em
Kb ; 500
102
113
=⋅
=τ
= −em
a
Dacă se consideră pasul de eşantionare T=0.1ms, echivalentul discret al (13.9) este:
(13.10)
dd
ddP
aazz
bzbzH
012
01)(+⋅+
+⋅= unde:
=db1 Ta
e
a
b Ta
+−⋅
⋅− 1, =db0
⋅−−⋅ ⋅−
⋅−Ta
Ta
eTa
e
a
b 1,
a eda T
1 1= − − − ⋅ , a eda T
0 = − ⋅
Acordarea regulatorului se face aplicând formulele (12.35) – (12.38) descrise în lucrarea 12 de laborator.
Rezultatele s-au obţinut cu următorul program Matlab:
% Comanda buclei de pozitie cu regulator PID numeric %--------------------------------------------------- % Date initiale motor si sarcina
R = 10; %[ohm] - rezistenta rotorului
L = 1e-3; %[H] - inductivitatea rotorului
k = 0.05; %[Nm/A] - constanta de cuplu a motorului
J = 5e-7; %[kg*m^2] - momentul de inertie total (motor+sarcina)
% Date initiale regulator PID numeric
CNA = 10; %[] - rezolutie convertorului N/A Ue = 10; %[V] - plaja tensiunii de iesire/comanda (+/-)
T = 1e-4; %[s] - pasul de esantionare
% Date initiale amplificatorului de putere
Uin = Ue; %[V] - plaja tensiunii de intrare = iesirea din regulator
U = 24; %[V] - plaja tensiunii maxime aplicate pe motor (+/-)
% Date initiale encoder
N_linii = 500; %[] - numar de linii pe rotatie
% Calcul parametrii
tau_el = L/R; %[s] - constanta electrica a motorului
Proiectarea şi implementarea regulatoarelor
209
tau_em = J*R/k^2; %[s] - constanta electromecanica a motorului
K_A = U/Uin; %[V/V] - constanta amplificatorului de tensiune
K_CNA=Ue/2^(CNA-1); %[V/biti] - constanta convertorului N/A
Kenc = 4*N_linii/2/pi; %[biti/rad] - constanta encoderului
% Functia de transfer redusa a motorului de la c-da la pozitie (ordin II)
num1 = 1/k; % numarator
den1 = [tau_em 1 0]; % numitor
% Functia de transfer vazuta de regulator de forma: H(s)=b/s(s+a) Kech = K_CNA*K_A*1/k*Kenc; b = Kech/tau_em; a = 1/tau_em; % Discretizare proces. Se obtine: H(z)=(b1d*z+b0d)/(z^2+a1d*z+a0d) b1d=b/a*((exp(-a*T)-1)/a+T); b0d=b/a*((1-exp(-a*T))/a-T*exp(-a*T)); a1d=-1-exp(-a*T); a0d=exp(-a*T); % Acordare regulator PID discret
w = 500; %[rad/s] - pulsatia naturala dorita w = 1/tau_em
tzeta = 0.707; %factorul de amortizare
alfa=5; %pozitia polilor secundari relativ la cei principali p1=-2*exp(-tzeta*w*T)*cos(w*T*sqrt(1-tzeta^2)); p2=exp(-2*tzeta*w*T); beta=exp(-alfa*w*T); c3=p1-2*beta; c2=p2+beta^2-2*beta*p1; c1=beta^2*p1-2*beta*p2; c0=beta^2*p2; gama=b1d*(c2-a0d+a1d)-b0d*(c3-a1d+1); delta=b1d*(1-a1d)+b0d; r=(c1+a0d-gama*b0d/b1d^2-c0*b1d/b0d)/(a1d-a0d-delta*b0d/b1d^2-a0d*b1d/b0d) alfa2=(c3-a1d+1+r)/b1d; alfa1=(gama-r*delta)/b1d^2; alfa0=(c0-r*a0d)/b0d; Ki=(alfa2+alfa1+alfa0)/(1-r) Kp=(alfa2-alfa0-Ki*r)/(1-r) Kd=alfa2-Kp %verificare nump=[0 b1d b0d]; % numarator proces
denp=[1 a1d a0d]; % numitor proces
numr=[alfa2 alfa1 alfa0]; % numarator regulator
denr=[1 -1-r r]; % proces regulator
Lucrarea 13
210
[numbd,denbd]=series(numr,denr,nump,denp); % Hech bucla deschisa
[numbi,denbi]=feedback(numbd,denbd,1,1); % Hech bucla inchisa
roots(denbi) % polii SRA
roots([1 c3 c2 c1 c0]) % polii impusi
La rularea programului Matlab se obţin rezultatele:
r = 0.5655 Ki = 0.1867 Kp = 6.6330 Kd = 34.0203 poli_sra = 0.9647 + 0.0341i 0.9647 - 0.0341i 0.7788 0.7788 poli_impusi = 0.9647 + 0.0341i 0.9647 - 0.0341i 0.7788 + 0.0000i 0.7788 - 0.0000i
Pentru verificare s-a folosit schema de simulare din Figura 13.13 care include 2 subblocuri pentru regulatorul PID şi pentru motor, prezentate în Figura 13.14 şi respectiv Figura 13.15. S-a aplicat o referinţă treaptă egală cu 3 radiani. Pentru a testa şi capacitatea de-a rejecta efectul perturbaţiilor, după 25ms de la aplicarea referinţei s-a aplicat şi un cuplu de sarcină mNmms 50= . Evoluţia poziţiei şi curentului motorului este prezentată în Figura 13.16 şi Figura 13.17. Figura 13.18 arată evoluţia comenzii date de regulatorul PI în plaja ±512 biţi.
Figura 13.13 Reglarea poziţiei unui motor de c.c. cu un regulator PID discret
Proiectarea şi implementarea regulatoarelor
211
Figura 13.14 Regulator PID discret cu limitarea comenzii
Figura 13.15 Motor de curent continuu cu poziţia mărime de ieşire
Figura 13.16 Poziţia motorului la o referinţă treaptă de 3 rad. După 25ms apare un cuplu de sarcină de ms=50mNm.
Lucrarea 13
212
Figura 13.17 Curentul motorului la o referinţă treaptă de 3 rad. După 25ms apare un cuplu de sarcină de ms=50mNm.
Figura 13.18 Ieşirea regulatorului la o referinţă treaptă de 3 rad. După 25ms apare un cuplu de sarcină de ms=50mNm.
Proiectarea şi implementarea regulatoarelor
213
2.2.4. Implementarea regulatoarelor numerice
Regulatoarele numerice se implementează pe sisteme cu microprocesoare sau microcontrollere care includ în mod obligatoriu un ceas de timp real. Acesta este un numărător programabil care se resetează la zero ori de câte ori atinge o valoare programabilă numită perioada ceasului. Uzual ceasul de bază al numărătorului este egal cu cel al procesorului. De exemplu dacă procesorul are un ceas intern de 40 MHz, numărătorul îşi va incrementa valoarea cu 1 la fiecare 1/40MHz = 25ns. Dacă perioada ceasului este setată la 40000 atunci ceasul se va da peste cap la fiecare 1ms. În momentul resetării, numărătorul generează o cerere de întrerupere care dacă este acceptată va cauza întreruperea execuţiei programului curent şi saltul în altă parte a memoriei unde se execută o funcţie asociată numită rutina de tratare a întreruperii. La terminarea acestei funcţii, se reia execuţia programului principal din punctul de unde a fost întrerupt.
Implementarea regulatoarelor numerice se face în rutina de tratare a întreruperii ceasului de timp real, care este programat cu o perioadă egală cu pasul de eşantionare ales.
În cazul exemplului ales, regulatorul are funcţia de transfer:
(13.11) 21
20
112
2
012
2
)1(1)1(
1
1
1)( −−
−−
++−α+α+α
=++−α+α+α
=−−+
−+=
rzzr
zz
rzrz
zz
rz
zKd
zKiKpzH
care înseamnă că între ieşirea regulatorului la pasul curent iu şi intrarea la pasul
curent iε există următoarea relaţie:
(13.12) iirzzr
zzu ε
++−α+α+α
= −−
−−
21
20
112
)1(1
Ţinând cont că înmulţirea cu 1−z înseamnă întârziere cu un pas de eşantionare,
adică 11
−− =⋅ ii uzu înseamnă comanda la pasul anterior 1−i , relaţia
(13.12) se poate rescrie sub forma:
(13.13) 2120112 )1( −−−− −++εα+εα+εα= iiiiii ruuru
Rutina de tratare a întreruperii de ceas de timp real trebuie să realizeze următoarele operaţii:
Lucrarea 13
214
1. Citire sau calcul referinţă de poziţie pentru pasul curent –*iθ
2. Citire de la interfaţa de encoder a poziţiei motorului pentru pasul curent –
iθ
3. Calcul eroare la pasul curent: iii θ−θ=ε *
4. Calcul noua comandă iu cu relaţia (13.13)
5. Limitare iu la plaja de valori posibile, cere în acest caz este [-512,+511].
Valorile mai mici de –512 se limitează la –512. Valorile mai mari de 511 se limitează la 511
6. Se trimite comanda după limitare către proces. În acest caz, această operaţie înseamnă scrierea comenzii în convertorul N/A
7. Se pregătesc variabilele globale utilizate pentru pasul următor:
12 −− = ii uu ; iuu =1 ; 12 −− ε=ε ii ; ii ε=ε −1
Într-o variantă minimală, programul principal al microcontrolerului poate avea structura din Error! Reference source not found. unde la iniţializări se setează parametrii ceasului de timp real şi se iniţializează cu zero valorile anterioare:
2121 ,,, −−−− εε iiii uu
Figura 13.19 Structura programului principal pentru un sistem numeric de control
Initializări
START
Bucl ă infinit ă Întreruperi T,2T,..,nT
Algoritm de control