Sunteți pe pagina 1din 22

193

Lucrarea 13
Proiectarea i implementarea regulatoarelor. Exemple
Coninut
1. Scopul lucrrii ................................................................................................ 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. Cerine ......................................................................................... 194
2.1.2. Obinerea modelului matematic .................................................. 195
2.1.3. Proiectarea regulatorului analogic .............................................. 197
2.1.4. Implementarea sistemului de reglare analogic ........................... 204
2.2. Controlul poziiei unui motor de curent continuu SRA cu timp discret
206
2.2.1. Cerine ......................................................................................... 206
2.2.2. Obinerea 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 magnei permaneni
...................................................................................................................... 196
Figura 13.2 Evoluia 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 mainii de curent
continuu ......................................................................................................... 198
Figura 13.4 Tipul semnalelor sistemului de reglare a vitezei mainii 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 mrime de ieire ........................ 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 Ieirea 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 poziiei mainii de curent
continuu ......................................................................................................... 207
Figura 13.13 Reglarea poziiei 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 poziia mrime de ieire ..................... 211
Figura 13.16 Poziia 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 Ieirea 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 lucrrii
Lucrarea urmrete:
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 cellalt cu timp discret. n
ambele cazuri, se indic cerinele 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 continuu SRA cu
timp continuu
2.1.1. Cerine
Sistemul de reglare automat trebuie s permit reglarea continu a vitezei
unui motor de curent continuu cu magnei permaneni n toat plaja de valori
posibile. Motorul are urmtoarele date:
Rezistena rotorului R= 10
Inductivitatea rotorului L = 1mH
Constanta de cuplu k = 0,05 Nm/A
Proiectarea i implementarea regulatoarelor
195
Momentul de inerie total (include i sarcina) J = 5*10
-7
kgm
2

Motorul este alimentat printr-un amplificator care furnizeaz o tensiune de
maxim 24V. Tensiunea furnizat este proporional cu o tensiune de comand
n plaja 10V.
Motorul este cuplat cu un tahogenerator care d o tensiune proporional cu
viteza motorului. Relaia de proporionalitate este dat de:
Constanta tahogeneratorului
TG
K = 4V/1000rpm (rpm = rotaii pe
minut)
Referina de vitez se d printr-o tensiune ce poate varia n plaja 10V.

2.1.2. Obinerea modelului matematic
Relaiile (13.1) prezint ecuaiile motorului de curent continuu cu magnei
permaneni. Pe baza lor se obine schema bloc a motorului prezentat n Figura
13.1.
(13.1)

=
+ + =
s
m m
dt
d
J
ki m
k
dt
di
L Ri U

unde:
U tensiunea de alimentare a motorului;
L R , rezistena i respectiv inductivitatea rotorului;
i curentul care trece prin motor;
k constanta de cuplu a motorului;
m cuplul activ dezvoltat de motor;
s
m cuplul rezistent static (constant);
J momentul de inerie cumulat al motorului i sarcinii
viteza unghiular a rotorului
Lucrarea 13
196
U
k

sJ
1

R Ls +
1
k
i
+ +
m
s
m

Figura 13.1 Schema bloc a motorului de curent continuu cu magnei permaneni

Motorul are 2 funcii de transfer:
a) de la tensiunea U care este mrimea de comand la viteza :
(13.2)
( )
( )
( )
1
/ 1
1
) (
) (
2 2
2
2 2 2
+ +
=
+ +
=
+
+
+
=

=

k
JR
s
k
JL
s
k
k sJR JL s
k
sL R sJ
k
sL R sJ
k
s U
s
s H
U

b) de la cuplul rezistent static care este o perturbaie la viteza :
(13.3)
( )
( )
1
1 /
) (
1
1
) (
) (
2 2
2
2
2 2 2
+ +
|

\
|
+
=
+ +
+
=
+
+

= =

k
JR
s
k
JL
s
R
L
k R
k sJR JL s
sL R
sL R sJ
k
sJ
s U
s m
s H
s
m
s

innd cont c:
R
L
el
= este constanta electric a motorului i
2
k
JR
em
= este
constanta electromecanic a motorului, relaiile (13.2) i (13.3) se pot pune sub
forma:
(13.4)
( )
1
/ 1
1
/ 1
2
2 2
2 + +
=
+ +
=

em em el
U
s s
k
k
JR
s
R
L
k
JR
s
k
s H

i respectiv:
(13.5)
( )
1
) 1 ( /
1
) 1 ( /
2
2
2 2
2
2
+ +
+
=
+ +
+
=

em em el
el
m
s s
s k R
k
JR
s
k
JL
s
R
L
k R
s H
s

Proiectarea i implementarea regulatoarelor
197
Proiectarea regulatorului se va face considernd doar funcia de transfer (13.4),
care depinde de comand. Din datele motorului, cele 2 constante de timp rezult:
ms
R
L
el
1 . 0
10
10
3
= = =

respectiv
( )
ms
k
JR
em
2
10 5
10 10 5
2
2
7
2
=


= =

.
ntruct
em el
<< , produsul
em el
se poate neglija, astfel nct funcia de
transfer (13.4) se poate simplifica considernd-o cu o bun aproximaie ca fiind de
ordinul I, de forma:
(13.6) ( )
em
U
s
k
s H
+
=

1
/ 1

Figura 13.2 arat comparativ rspunsul a 2 procese avnd funciile de transfer
(13.4) i (13.6) la o intrare treapt V U 24 = . Cele 2 rspunsuri sunt aproape
identice demonstrnd c utilizarea formei simplificate (13.6) este corect.

0 0.002 0.004 0.006 0.008 0.01 0.012 0.014
0
50
100
150
200
250
300
350
400
450
500
timp [s]
O
m
e
g
a

[
r
a
d
/
s
]
H(s) ordin II
H(s) ordin I

Figura 13.2 Evoluia comparativ a procesului real de ordin II i a celui simplificat
de ordin I

2.1.3. Proiectarea regulatorului analogic
innd 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 mainii de curent continuu.

Lucrarea 13
198

( ) s H
R
+
Regulator
U

k

sJ
1

R Ls +
1
k
i
+ +
m
s
m
c.c. Motor
A
K
TG
TG
K

K

Figura 13.3 Schema bloc a sistemului de reglare a vitezei mainii 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
A
K
Tahogeneratorul pentru msurarea vitezei, avnd constanta
TG
K
Adaptarea de semnal de la ieirea tahogeneratorului la intrarea n regulator,
dat de constanta

K .
Toate aceste elemente trebuiesc luate n considerarea la acordarea regulatorului
PI.
Pentru o mai bun nelegere a rolului acestor elemente Figura 13.4 prezint tipul
i plaja de valori a semnalelor ce fac legtura ntre blocurile schemei de reglare.
Regulator
*

] 10 [ V
Uc
U
TG
K

K
A
K
+

] / 480 [ s rad
] 10 [ V
] 24 [ V
] 10 [ V
TG
] 3 . 18 [ V
] 10 [ V
M


Figura 13.4 Tipul semnalelor sistemului de reglare a vitezei mainii de curent
continuu
Conform cerinelor de proiectare, referina de vitez este dat sub forma unei
tensiuni n plaja 10V. Pentru a putea compara mrimi de acelai tip i
dimensiune, rezult c i mrimea 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 ieire 10V. La intrarea
regulatorului se aplic o tensiune proporional cu eroarea i la ieirea
regulatorului se obine o tensiune de comand Uc proporional cu tensiunea
care trebuie aplicat pe motor.
Not: Cnd referina 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 relaia: ) ( 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 cerinelor, 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 , 2
10
24
= =
V
V
K
A
.
Din relaiile (13.1) rezult c atunci cnd un motor este comandat cu tensiunea
U , poate atinge teoretic o viteza maxim
s rad
A Nm
V
k
U
/ 480
/ 05 . 0
24
max
= = = . innd 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 frecri nenul.
Tahogeneratorul cu constanta:
s rad V
s V
rpm V K
TG
/ / 0382 , 0
2 1000
60 4
1000 / 4 =

= =
va furniza o tensiune proporional cu turaia motorului n plaja
V
TG
33 . 18 038 . 0 480 = = . Cum acest semnal depete plaja de intrare
n regulator de 10V, el trebuie atenuat, factorul de divizare fiind
545 . 0
33 . 18
10
= =

K .
Regulatorul vede drept funcie de transfer a procesului, tot ceea ce este n afara
lui. Regulatorul trimite o comanda Uc i citete reacia procesului prin eroarea ,
ambele mrimi fiind n plaja 10V. Prin urmare funcia de transfer real a
procesului pe baza creia se va face proiectarea regulatorului este:
Lucrarea 13
200
(13.7)
( )
a s
b
s
K
s
K
s H
em
em
ech
em
ech
real
+
=
+

=
+
=
1
1

unde:
5 . 0
05 . 0
545 . 0 0382 . 0 4 . 2
/ 1 2 / 1 =

= =

K K k K K
TG A
ech

250
10 2
5 . 0
3
=

em
K
b
;
500
10 2
1 1
3
=

em
a

Pentru acordare se aleg:
Factorul de amortizare 707 , 0 =
Pulsaia natural rad/s
em
500
1
=

=
Coeficienii Kp i Ki rezult cu formulele:
1000
250
500
; 828 . 0
250
500 500 707 . 0 2 2
2 2
= =

= =

=

=
b
K
b
a
K
I P

Rezultatele s-au obinut cu urmtorul 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 jumtate din viteza
maxim posibil a motorului. Pentru a testa i capacitatea de-a rejecta efectul
perturbaiilor, dup 25ms de la aplicarea referinei s-a aplicat i un cuplu de sarcin
mNm ms 20 = . Evoluia vitezei i curentului motorului este prezentat n Figura
13.8 i Figura 13.9. Figura 13.10 arat evoluia 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 mrime de ieire

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 Ieirea 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 intrri i o ieire.
Cele 2 intrri sunt: referina de vitez o tensiune n plaja 10V i msura de
vitez o tensiune dat de tahogenerator n plaja 18.33V. Ieirea este comanda
de tensiune pentru amplificatorul de putere n plaja 10V.
Schema sistemului de reglare este prezentat n Figura 13.11. Ea include
urmtoarele elemente componente:
a) Divizarea tensiunii de tahogenerator ) , (
2 1
R R
b) Ajustarea impedanei pentru referin ) (
1
A i feedback ) (
2
A
c) Calculul erorii ) , (
4 3
R A
d) Implementarea prii proporionale ) , (
7 5
R A i integrale ) , , (
1 5 4
C R A a
regulatorului
e) nsumarea ponderat a prilor P i I ale regulatorului ) , , , (
9 8 6 6
R R R A













Figura 13.11 Schema de implementare a sistemului reglare

Alegerea valorilor elementelor componente s-a fcut astfel:
Se alege = K R 2 . 1
2
pentru a limita curentul prin divizor astfel nct
influena rezistentei tahogeneratorului s fie neglijabil. Din
condiia:
2 1
2
33 . 18
10
R R
R
K
+
= =

se obine =

= 6 . 999
10
2 33 . 8
1
R
R . Se
alege valoarea standard = K R 1
1

R7
R5
-
+
C1
R2
R1
TG
R6
R9
-
+
R4
R4
R8
TG
V
V
F
A'
V
10V
A
V
V
D
B
V
V
E
-
+
R4 / 2
R4 / 2
C
V
-
+
R3
-
+
R7
10V
-
+
10V
A
A
A
A
A
A
Proiectarea i implementarea regulatoarelor
205
Se alege = K R 1
4
. Aceeai valoare se poate alege i pentru
3
R n cazul
cnd referina este setat printr-un poteniometru.
Pentru
3
A avem relaiile:
3 2 /
2 /
4 4
4 A A
y
V
R R
R V
V =
+

= ;
2
2
2 /
2 /
4 4
4 4 C B C B
x
V V
R R
R V R V
V
+
=
+
+
= ;
y x
V V =

de unde rezult potenialul 2 / ) (
B A C
V V V =
Pentru
4
A avem relaia: 0
1
1
= + =
r D C Z
R V
sC
V V de unde rezult
1 5
C sR
V
V
C
D
=
Pentru
5
A avem relaia 0
7 7
= + = R V R V V
C E W
de unde rezult
C E
V V =
Pentru
6
A avem relaia 0
8 9 6
= + +
R
V
R
V
R
V
F E D
de unde rezult
E D F
V
R
R
V
R
R
V
9
8
6
8
= sau nlocuind
D
V i
E
V din relaiile anterioare:
C P
I
C F
V K
s
K
V
R
R
C R sR
R
V |

\
|
+ =
|
|

\
|
+ =
9
8
1 5 6
8

Pentru a obine 828 . 0
9
8
= =
R
R
K
P
, se aleg = 820
8
R i = K R 1
9

Pentru a obine 1000
1 5 6
8
= =
C R R
R
K
I
, se aleg = = 820 8
6 8
R R ,
= K R 1
5
i F C =1
1


Not:
8 5 1
, , R R R sunt uzual rezistene reglabile. Pentru exemplul dat, pot fi
poteniometre de K 5 . 2 .
1
R permite ajustarea divizorului de tensiune n funcie
de tahogeneratorul utilizat.
5
R ofer posibilitatea modificrii componentei integrale,
Lucrarea 13
206
independent de cea proporional.
8
R permite ajustarea amplificrii globale
simultan pentru partea P i I.

2.2. Controlul poziiei unui motor de curent continuu SRA cu
timp discret
2.2.1. Cerine
Sistemul de reglare automat trebuie s permit reglarea poziiei unui motor de
curent continuu cu magnei permaneni n toat plaja 10 rotaii. Motorul are
aceleai date ca cel din exemplul precedent
Motorul este alimentat printr-un amplificator care furnizeaz o tensiune de
maxim 24V. Tensiunea furnizat este proporional cu o tensiune de comand
n plaja 10V.
Motorul este cuplat cu un encoder incremental de 500 linii pe rotaie. El permite
msurarea poziiei motorului cu rezoluia de 2000 pulsuri pe rotaie.
Sistemul numeric de comand include:
o interfa de encoder care permite citirea direct a variaiei de poziie
un convertor numeric analogic de 10 bii i un circuit de adaptare de
semnal prin care ieirea convertorului este adus n plaja 10V
o interfaa utilizator prin care acesta poate introduce referina de
poziie

2.2.2. Obinerea modelului matematic
Funcia de transfer a procesului de la tensiunea de comanda U la poziia
motorului se obine adugnd un integrator la (13.6), deoarece poziia motorului
se obine integrnd viteza lui:
(13.8) ( )
( )
em
U
s s
k
s H
+
=

1
/ 1


2.2.3. Proiectarea regulatorului numeric
innd 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 legtura ntre
blocurile componente.
Proiectarea i implementarea regulatoarelor
207

Regulator
*
] 20000 [ b
Uc
U
ENC
K
CNA
K
+

] 20 [ rad
] [b ] 10 [ V
E

] [ 20000b
] [ 512b

Uc
A
K
] 24 [ V

Figura 13.12 Tipul semnalelor sistemului de reglare a poziiei mainii de curent
continuu
Referina de poziie este un numr (simbolizat prin unitatea de msur b , adic
bii) care conform cerinelor trebuie s acopere plaja de valori 10 rotaii. Avnd n
vedere c poziia motorului este citit cu rezoluia de 2000 de pulsuri/bii pe rotaie,
plaja de valuri a referinei este 20000 bii.
La ieire, regulatorul trebuie s de-a o comand care s corespund cu rezoluia
convertorului numeric analogic (CNA). Dac CNA are 10 bii, nseamn c poate
converti ntr-o tensiune de orice numr n plaja [0 2
10
-1]. innd cont c tensiunea
de comand e bipolar, corespondena conversiei este: 512 (2
9
) bii corespund
la 10V. Deci factorul de conversie este: ] / [
512
10
biti V K
CNA
= .
Tensiunea de comand de 10V intr n amplificatorului de putere care o
convertete n tensiunea efectiv aplicat motorului. Prin urmare amplificatorul are
constanta de amplificare 4 , 2
10
24
= =
V
V
K
A
.
n fine, poziia motorului este citit prin intermediul encoderului incremental,
corespondena fiind 2000 pulsuri sau bii la o rotaie, adic:
] / [
2
2000
rad biti K
ENC

= .
Regulatorul vede drept funcie de transfer a procesului, echivalentul discret a tot
ceea ce este n afara lui. Prin urmare funcia de transfer real a procesului pe baza
creia se va face proiectarea regulatorului este:
(13.9)
( )
) (
1
) 1 ( a s s
b
s s
K
s s
K
s H
em
em
ech
em
ech
real
+
=
|
|

\
|
+

=
+
=

Lucrarea 13
208
unde:
4 . 298
05 . 0
) 2 /( 2000 4 . 2 512 / 10
/ 1 =

= =
ENC A CNA
ech
K k K K K

149200
10 2
4 . 298
3
=

em
K
b ; 500
10 2
1 1
3
=

em
a
Dac se consider pasul de eantionare T=0.1ms, echivalentul discret al (13.9)
este:
(13.10)
d d
d d
P
a a z z
b z b
z H
0 1
2
0 1
) (
+ +
+
= unde:
=
d
b
1
T
a
e
a
b
T a
(
(


1
, =
d
b
0
(
(



T a
T a
e T
a
e
a
b 1
,
a e
d
a T
1
1 =

, a e
d
a T
0
=



Acordarea regulatorului se face aplicnd formulele (12.35) (12.38) descrise n
lucrarea 12 de laborator.
Rezultatele s-au obinut cu urmtorul 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 obin 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 perturbaiilor, dup 25ms de la aplicarea
referinei s-a aplicat i un cuplu de sarcin mNm ms 50 = . Evoluia poziiei i
curentului motorului este prezentat n Figura 13.16 i Figura 13.17. Figura 13.18
arat evoluia comenzii date de regulatorul PI n plaja 512 bii.

Figura 13.13 Reglarea poziiei 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 poziia mrime de ieire

Figura 13.16 Poziia 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 Ieirea 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 numrtor programabil care se reseteaz la zero ori de cte ori atinge o valoare
programabil numit perioada ceasului. Uzual ceasul de baz al numrtorului
este egal cu cel al procesorului. De exemplu dac procesorul are un ceas intern de
40 MHz, numrtorul 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 resetrii, numrtorul genereaz o cerere de ntrerupere
care dac este acceptat va cauza ntreruperea execuiei programului curent i
saltul n alt parte a memoriei unde se execut o funcie asociat numit rutina de
tratare a ntreruperii. La terminarea acestei funcii, se reia execuia 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
eantionare ales.
n cazul exemplului ales, regulatorul are funcia de transfer:
(13.11)
2 1
2
0
1
1 2
2
0 1
2
2
) 1 ( 1
) 1 (
1
1
1
) (


+ +
+ +
=
+ +
+ +
=

+ =
rz z r
z z
r z r z
z z
r z
z
Kd
z
Ki Kp z H
care nseamn c ntre ieirea regulatorului la pasul curent
i
u i intrarea la pasul
curent
i
exist urmtoarea relaie:
(13.12)
i i
rz z r
z z
u
+ +
+ +
=


2 1
2
0
1
1 2
) 1 ( 1

innd cont c nmulirea cu
1
z nseamn ntrziere cu un pas de eantionare,
adic
1
1

=
i i
u z u nseamn comanda la pasul anterior 1 i , relaia
(13.12) se poate rescrie sub forma:
(13.13)
2 1 2 0 1 1 2
) 1 (

+ + + + =
i i i i i i
ru u r u

Rutina de tratare a ntreruperii de ceas de timp real trebuie s realizeze
urmtoarele operaii:
Lucrarea 13
214
1. Citire sau calcul referin de poziie pentru pasul curent
*
i

2. Citire de la interfaa de encoder a poziiei motorului pentru pasul curent
i

3. Calcul eroare la pasul curent:
i i i
=
*

4. Calcul noua comand
i
u cu relaia (13.13)
5. Limitare
i
u 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 ctre proces. n acest caz, aceast
operaie nseamn scrierea comenzii n convertorul N/A
7. Se pregtesc variabilele globale utilizate pentru pasul urmtor:
1 2
=
i i
u u ;
i
u u = 1 ;
1 2
=
i i
;
i i
=
1


ntr-o variant minimal, programul principal al microcontrolerului poate avea
structura din Error! Reference source not found. unde la iniializri se seteaz
parametrii ceasului de timp real i se iniializeaz cu zero valorile anterioare:
2 1 2 1
, , ,


i i i i
u u










Figura 13.19 Structura programului principal pentru un sistem numeric de control
Initializri
START
Bucl infinit ntreruperi
T,2T,..,nT
Algoritm de control