Documente Academic
Documente Profesional
Documente Cultură
Facultatea de Inginerie
Marius M. Bălaş
Sisteme cu eşantionare
Curs
- 2012 -
1
1. Introducere în domeniul sistemelor în timp discrete
2
f:TxSM
(1)
unde T este mulţimea în care ia valori timpul, S este mulţimea în care ia valori spaţiul,
iar M este mulţimea în care ia valori semnalul. În funcţie de continuitatea mulţimilor T
şi M se operează principala clasificare a semnalelor, prezentată în tabelul următor
[Drag09].
Tabelul 1. Clasificarea semnalelor
T (timp)
continuu discret
M (amplitudine)
continuu semnal analogic SA semnal eşantionat SE
Semnalele analogice SA (vezi Fig. 1.1) sunt definite pe domenii continue de timp şi de
amplitudine, deci pot fi asociate cu mulţimea numerelor reale R. Cele mai multe dintre
mărimile fizice macroscopice care ne înconjoară sunt sau pot fi considerate cu bună
aproximare analogice (poziţie, viteză, acceleraţie, temperatură, presiune, curent, etc.) la
fel ca şi însuşi timpul, motiv pentru care SA stau la baza modului nostru de reprezen-
tare a mediului înconjurător, inclusiv a sistemelor tehnice care fac obiectul automaticii.
Toate celelalte trei categorii de semnale se caracterizează prin cuantizarea mulţimilor T
şi/sau M. Cuantizarea este procesul de reprezentare a unei variabile printr-o mulţime
de valori discrete.
3
Fig. 1.1. Semnal analogic
4
informaţiile care ne interesează. Pentru aceasta putem prelungi intervalul de timp
dintre eşantionări, atunci când parametrii sunt staţionari şi nu aduc informaţii utile.
Inversa perioadei de eşantionare este frecvenţa de eşantionare: fe = 1/Te. Evident, preci-
zia aproximării prin eşantionare creşte odată cu creşterea frecvenţei fe.
La eşantionarea uniformă pe lângă semnificaţia de număr al eşantioanelor, k o primeşte
şi pe aceea de număr al perioadelor: k = tk/Te.
Operaţia de eşantionare este naturală, fiind necesară atunci când volumul de date care
trebuiesc prelucrate în timp real este foarte mare. O astfel de situaţie apare de exemplu
la prelucrarea informaţiilor vizuale oferite de către ochi creierului. Deoarece cantitatea
de informaţie ajunsă la nivelul retinei este uriaşă, creierul aplică o aproximare a sa prin
eşantionare. Pe exploatarea acestei funcţionări eşantionate a vederii umane se obţine
binecunoscuta iluzie optică a imaginilor în mişcare (cinematografie, televiziune, etc.)
Eşantionarea în sine însă nu rezolvă problemele de prelucrare a informaţiei, nici în ca-
zul sistemelor biologice nici în cazul celor digitale. Pentru a oferi timpul necesar
procesărilor de date (cum ar fi de exemplu conversia analog-digitală CAD),
eşantionarea trebuie dublată de reţinere (memorare). Elementele de eşantionare-
reţinere (sample and hold în engleză) au rolul de a reţine valoarea unui eşantion k până
la iniţierea eşantionării următoare k+1, după care valoarea reţinută este reactualizată.
fer[t] = fe[k] , t [tk, tk+1) R (4)
Deşi prelucrarea semnalului eşantionat şi reţinut fer prin conversie analog-digitală CAD
şi prin alte procesări ulterioare (interpolări, rotunjiri, conversie digital-analogică CDA,
etc.) mai apar erori, cu acest model se operează frecvent în conducerea numerică a pro -
ceselor datorită simplităţii sale relative şi a bunelor rezultate aplicative.
5
Fig. 1.3. Semnal eşantionat şi reţinut
6
Fig. 1.4 prin triunghiuri este reprezentat un semnalul numeric fd obţinut din semnalul
eşantionat fe printr-o rotunjire în jos.
fd[k] = { p·pZ , p· fe[k] < (p+1)· } (5)
Cu cât unitatea de cuantizare are o valoare mai mică raportată la domeniul de defini-
ţie al semnalului, aproximarea este mai bună. După cum se poate observa din Fig. 4
rotunjirea în jos este un procedeu simplu, cu erori foarte mici în unele cazuri (t3, t4) dar
care produce erori mari în altele (t4). Rotunjirea în sus, în care fd[k] = p+1 are aceeaşi
comportare.
Dacă valoarea cuantei este implicită sau domeniul M este normalizat, aşa cum este de
exemplu în cazul semnalelor provenite de la senzorii de imagine, modelul (5) se poate
scrie mai simplu:
fd[k] = { ppZ , p· fe[k] < (p+1)· } (6)
Problema preciziei aproximării prin digitizare era o problemă centrală în perioada de
pionierat a sistemelor digitale, dar odată cu creşterea capacităţii sistemelor digitale de
la 8 biţi (unde pasul de digitizare reprezintă 0,39% din domeniu), la 16, 32 sau chiar
mai mulţi biţi, această problemă şi-a pierdut mult din relevanţă.
7
Fig. 1.5. Semnal timp continuu cuantizat în amplitudine
Semnalul în timp continuu cuantizat în amplitudine STCCA îşi modifică valoarea la
intervale discrete de timp şi caracterizează ieşirea convertoarelor digital-analogice la
intrarea cărora se aplică semnale numerice. Modelul său analitic este:
f[t] = · fd[k] , k = max { pNp·T t } (7)
Semnalele descrise în cele de mai sus se regăsesc în funcţionarea unui sistem digital, a
cărui arhitectură generică este prezentată în Fig. 1.6. În cazul unui sistem digital de
conducere a proceselor procesarea digitală fd fd* constă din aplicarea algoritmului
care implementează legea de conducere,
SA SE SN STCCA
Intrare Ieşire
Analogică analogică
8
1.2. Transformările Laplace şi z
Aşa cum se cunoaşte din Teoria Sistemelor modelarea matematică a sistemelor liniare
în timp continuu se realizează prin ecuaţii sau sisteme de ecuaţii integro-diferenţiale.
Aceste ecuaţii pot fi extinse, pe porţiuni, şi asupra sistemelor neliniare. Pentru evitarea
dificultăţilor ridicate de rezolvarea directă a acestor ecuaţii se recurge de regulă fie la
integrarea numerică a ecuaţiilor cu ajutorul calculatorului (simulare) fie la metode ope -
raţionale. Calculul operaţional permite transformarea sistemelor de ecuaţii integro-dife-
renţiale în sisteme de ecuaţii algebrice. Cel mai des aplicat operator este operatorul
Laplace. Reamintim că imaginea Laplace a unei funcţii origine de timp f(t), notată
F(s)=L[f(t], este o funcţie complexă de variabilă s=+j·, unde [rad/s] este pulsaţia:
L[f(t] = f(t) e st dt (8)
9
m
bj sj
Y(s) R(s) j0
H(s)
U(s) Q(s) n
ai si
i 0
(13)
Problema care se pune în cazul cursului nostru este extinderea metodologiei calculului
operaţional Laplace (funcţiile de transfer) şi asupra sistemelor cu eşantionare. Proble-
ma a fost rezolvată în anul 1952 de profesorul John Ralph Ragazzini (Columbia Uni-
versity şi de studentul său Lotfi Asker Zadeh, prin introducerea transformatei z.
Transformata z este echivalenta în timp discret a transformatei Laplace. Ea transformă
un semnal în timp discret f(tk), care este de fapt o secvenţă de numere reale sau com-
plexe care se poate nota simplificat f[k], într-o funcţie complexă în domeniul frecvenţă.
Să considerăm un şir bilateral de numere complexe {f[k]}kZ, o variabilă complexă z şi
suma:
f, Z f(t k ) z -t k
(14)
k
Dacă suma este convergentă pentru anumite valori ale lui z, cuprinse în domeniul de
convergenţă DCf (region of convergence ROC în engleză), atunci rezultatul se numeşte
transformata z a şirului {f[k]}kZ şi se notează cu F(z) sau Z{f[k]}:
F(z) Z {f(t k )} Z {f[k]} f, Z f[k] z -k
k
(15)
Revenirea din domeniul complex se face cu transformata z inversă, care este definită
prin integrala pe un contur care înconjoară originea planului complex „z” şi se situ-
ează în interiorul domeniului DCf:
1
f[k] Z1[F(z)] F(z) z t -1 dz
2π j (16)
10
Pentru a înţelege mai uşor modul de definire a transformatei z să considerăm
cazul mai simplu al eşantionării uniforme şi să rescriem şirul {f[k]} utilizând funcţii de
tip impuls Dirac. Pentru t = T impulsul Dirac se notează (t – T). Notând cu f*(t)
funcţia eşantionată care a generat şirul {f[k]}, obţinem
f*(t) = f(0)·(t) + f(T)·(t-T) + f(2T)·(t-2T) + … = f(kT) δ(t kT)
k 0
(19)
care prin aplicarea transformatei Laplace devine
F*(s) = L[f*(t)] = f(kT) L[δ(t kT)] = f(kT) e kTs
k 0 k 0
(20)
Ţinând seama că t = kT, această expresie este identică cu definiţia (15) a transformatei
z, după introducerea notaţiei
z esT (21)
Exemplul 1: Să se calculeze Z{(kT)}. Eşantionarea funcţiei treaptă unitară este sim-
plă, deoarece această funcţie are valoarea 1 pentru orice k 0. Prin urmare
1 z
k 1 z 1 z 2 ...
F(z) = 1 z (22)
k 0 1 z 1 z 1
= a k z k lim 1 a z 1 ... a n-k z (n-k) lim
1 (az 1 )n k 1
1 az 1
(24)
n n
11
Tabel 2. Transformate z bilaterale şi unilaterale [Drag04]
12
Calculând limita se obţine
1 z 1-k
f(z) a k z k ak (25)
1 az 1 z a
În particular:
Z(f(k + 1)) = z · F(z) – z · f(0),
Z(f(k + 2)) = z2 · F(z) – z2 · f(0) - z · f(1) şi
Z(f(k + 3)) = z3 · F(z) – z3 · f(0) – z2 · f(1) - z · f(2)
teorema valorii iniţiale pentru şiruri unilaterale
lim t0 f*(t) = lim z F(z) (29)
– teorema valorii finale
z 1
lim t f*(t) = lim z1 · F(z) (30)
z
amortizarea cu funcţia k
13
z
{ k · f[-k]} kZ = F( ) (31)
α
inversarea timpului
{(f[-k]} kZ F(z-1) (32)
multiplicare cu rampă sau cu rampă modulată exponenţial (derivarea imaginii)
dF(z)
{k · (f[k]} kZ -z · (33)
dz
respectiv
d z
{k · k · (f[k]} kZ -z · F (34)
dz α
integrarea imaginii unui şir unilateral
f[k] F λ
{(f[0], { } kZ } λ
dλ
k z
(35)
diferenţa de ordin întâi şi de ordin m a şirurilor bilaterale
{(f[k]} kZ (z -1) · F(z) (36)
Respectiv
{ m(f[k]} kZ (z -1)m · F(z) (37)
diferenţa de ordin întâi şi de ordin m a şirurilor unilaterale
{(f[k]} kZ (z -1) · F(z) - z · f[0] (38)
Respectiv
m -1
{ m(f[k]} kZ (z -1)m · F(z) - z · i 0 (z -1)m-i+1 · i f[0](39)
şirul sumelor unui şir bilateral sau unilateral
F(z)
{ k
i
f[i] } (40)
1 - z -1
Respectiv
F(z)
{ k
i 0
f[i] } (41)
1 - z -1
1.4. Tabele de transformare Laplace - z
14
În tabelul următor sunt selectate câteva dintre cele mai frecvente transformări funcţie
original (de timp) ↔ transformata Laplace ↔ transformata z [Drag04]:
Tabel 3. Transformări Laplace - z
e -at 1 z
sa z e aT
t · e-at 1 T z e aT
s a 2
z eaT 2
1 - e-at a
z 1 - e aT
s s a z 1 z e aT
15
1.5. Analiza spectrală Fourier
Un instrument teoretic puternic de analiză în domeniul frecvenţei (analiza armonică)
este descompunerea în serie Fourier prin care semnalele periodice sunt descompuse în
serii de armonice având frecvenţele multiplii ai frecvenţei fundamentale =2/T co-
respunzătoare perioadei T. Multiplii frecvenţei fundamentale n sunt frecvenţele ar-
monicelor de ordin n.
Descompunerea în serie Fourier are mai multe forme, dintre care cea mai utilă tratării
matematice este forma complexă (ecuaţia de sinteză):
jnt
s(t) an e (43)
n -
1 T/2 - jnΩn
an s(t) e
T T/2
dt (44)
1 T/2 2 T/2
a0 s(t)dt ,
T T/2
an s(t)sin(nΩt)dt şi
T T/2
2 T/2
bn s(t)cos(nΩt)dt (46)
T T/2
Coeficientul a0 este identic prin definiţie cu valoarea medie a semnalului. Pentru func-
ţiile pare coeficienţii bn sunt nuli iar pentru cele impare coeficienţii an sunt nuli.
În practica inginerească forma cea mai utilă a descompunerii în serie Fourier, cea care
poate fi evidenţiată prin măsurători directe asupra semnalelor, este forma armonică:
s(t) An cos(nt - ) (47)
n0
16
Descompunerea în serie Fourier este exemplificată printr-o aplicaţie scrisă în Matlab.
Funcţia sefour(T,N) este editată în fişierul sefour.m. Argumentele sale sunt perioada T
şi numărul de armonici N.
17
1. function sefour(T, N)
2. %Decomposition of a periodic signal s(t) in Fourier series:
3. %T=period [sec], N=number of harmonics
4. W=2*pi/T; %the fundamental pulsation
5. t=0:T/1022:T+T/1022;
6. %s=sin(W*t); %sine signal
7. for j=1:1024
8. if j<128 %rectangular signal
9. s(j)=1;
10. else s(j)=0;
11. end
12. % s(j)=j/500-1; %saw teeth signal
13. end
14. val_mean=trapz(t,s)/T %mean value of s(t)
15. val_efec=sqrt(trapz(t,s.^2)/T) %effective value of s(t)
16. timp=t-T/2;
17. for i=1:N
18. a(i)=2*trapz(t,s.*cos(i*W*t))/T; % trigonometric coef.
19. b(i)=2*trapz(t,s.*sin(i*W*t))/T; % trigonometric coef.
20. A(i)=sqrt(a(i)^2+ b(i)^2); % the coef. of the harmonic form
21. F(i)=atan2(b(i),a(i)); % the phases of the harmonic form
22. f(i)=i/T;
23. end
24. r=val_mean;
25. for j=1:N
26. r=r+A(j)*cos(j*W*t-F(j));
27. end
28. axis([min(t) max(t) (min(r)-0.02*(max(r)-min(r))) (max(r)+0.02*(max(r)-min(r)))])
29. subplot(221); plot(t, s);
30. title('signal s(t)'); xlabel('t [sec]'); grid;
31. axis([min(t) max(t) (min(r)-0.02*(max(r)-min(r))) (max(r)+0.02*(max(r)-min(r)))])
32. subplot(222); stem(f, A);
33. title('harmonics A(n)*cos[n*2*pi*f*t-Fi(n)]'); xlabel('f [Hz]'); grid;
34. subplot(223); plot(t, r);
35. title('re-built signal (checking)'); xlabel('t [sec]'); grid;
36. axis([min(t) max(t) (min(r)-0.02*(max(r)-min(r))) (max(r)+0.02*(max(r)-min(r)))])
37. subplot(224); stem(f, F/(pi));
38. title('phases Fi(f)'); xlabel('f [Hz]'); ylabel('x pi [rad]'); grid;
18
Timpul este modelat printr-un vector cu dimensiunea 1024 (linia 5). Pentru integrare s-
a utilizat funcţia MATLAB trapz iar arctangenta a fost calculată prin atan2 (linia 21).
Semnalul s(t) este definit între liniile 6-13. Alegerea variantei de semnal dorite se ob-
ţine înlăturând caracterul % din faţa liniilor pe care dorim să le executăm şi adăugând
caracterul % în faţa liniilor pe care nu dorim să le executăm.
Rezultatele se prezintă prin patru diagrame, definite în secţiunea dintre liniile 28-38:
semnalul s(t) definit pe perioada T;
descompunerea semnalului în N armonici;
faza fiecărei armonici;
recompunerea semnalului s(t) prin însumarea celor N armonicilor calculate. Această
diagramă permite compararea semnalului recompus cu cel iniţial şi ajustarea numărului
de armonici necesare pentru fiecare aplicaţie.
Se mai calculează şi valorile medie şi efectivă ale semnalului (liniile 14 respectiv 15).
În exemplul următor, lansat prin comanda sefour(1, 50), este activ semnalul dreptun-
ghiular, cel care ne interesează în primul rând în cazul semnalelor eşantionate.
val_mean = 0.1238; val_efec = 0.3518;
0.6 0.15
0.4 0.1
0.2
0.05
0
0
0 0.2 0.4 0.6 0.8 1 0 10 20 30 40 50
t [sec] f [Hz]
0.6 0.6
0.4
x pi
0.4
0.2
0.2
0
0
0 0.2 0.4 0.6 0.8 1 0 10 20 30 40 50
t [sec] f [Hz]
Fig. 1.7. Spectrul de armonici al unui semnal dreptunghiular (factor de umplere 12,5%)
19
Din analiza figurii 1.7 principala concluzie este aceea că numărul de armonici folo-
site, respectiv 50, este insuficient pentru o bună reconstituire a semnalului s(t).
Cu cât numărul de armonici este mai mare reconstituirea este mai bună, dar nu
atinge perfecţiunea. Explicaţia acestui fapt trebuie căutată în natura discontinuă
a semnalelor dreptunghiulare, care ar necesita un spectru cuprinzând un număr
infinit de armonici, pentru reproducerea discontinuităţilor.
Această concluzie are implicaţii importante în prelucrarea semnalelor eşantio-
nate, care prezintă discontinuităţile inerente procedeelor de eşantionare şi con-
versie analog-digitală şi digital-analogică (vezi Fig. 1.3 şi 1.5). Pentru o redare
perfectă a acestui gen de semnale ar fi nevoie de circuite de procesare având o
bandă de frecvenţă infinită, care în mod evident nu pot fi realizate fizic.
Aceeaşi concluzie se obţine şi în cazul semnalelor neperiodice, a căror analiză
se realizează cu ajutorul integralelor Fourier, obţinute din seriile Fourier, prin
trecerea la limită înspre infinit a perioadei T. Frecvenţele discrete (armonicele)
sunt înlocuite în acest caz cu o funcţie de densitate spectrală.
Se definesc în acest sens transformările Fourier - directă şi inversă - ale unui
semnal s(t). Aceste transformări se utilizează sub mai multe forme, două dintre
ele fiind prezentate în continuare:
- jωx
S1 ( ω ) s(x) e dx
(49)
1 jωx
s( x ) S1 ( s ) e
2π
ds (50)
1 - jωx
S 2 (ω ) s(x) e
2π
dx (51)
1 jωx
s( x ) S 2 (s ) e
2π
ds
(52)
Un instrument teoretic specific analizei spectrale a semnalelor eşantionate este
transformata Fourier discretă şi inversa ei:
S d (ω) s n e - jωn (53)
n
1
s n Sd (ω) e
jωn
dω (54)
2π 2
În tabelele următoare sunt prezentate cele mai des utilizate transformări Fourier.
20
Tabel 4. Transformări Fourier [Drag04]
21
S1(2f)
0,125
f[Hz]
22
2. Teorema eşantionării
23
3. Modelarea în Matlab a sistemelor discrete
24
Efectele comenzilor anterioare sunt:
>> G = tf([1 0],[1 -2 -6],0.1)
Transfer function:
z
-------------
z^2 - 2 z - 6
Sampling time: 0.1
25
>> G = tf([0 1], [1 -2 -6], 0.1, 'Variable', 'z^-1')
Transfer function:
z^-1
-------------------
1 - 2 z^-1 - 6 z^-2
Sampling time: 0.1
Programarea unor eventualele întârzieri dintre intrare şi ieşire se face prin proprietatea
'ioDelay' care poate completa definirea comenzilor tf şi zpk.
>> G = tf([1 1], [1 5 3])
Transfer function:
s+1
-------------
s^2 + 5 s + 3
>> G.ioDelay=2
Transfer function:
s+1
exp(-2*s) * -------------
s^2 + 5 s + 3
26
În sintaxă sunt implicite conversiile ZOH:
sysd = c2d(sysc, Ts); % Ts = perioada de eşntionare în secunde
sysc = d2c(sysd);
Celelalte metode se specifică adăugând un argument nou de tip şir:
sysd = c2d(sysc, Ts, 'foh'); % FOH
sysc = d2c(sysd, 'tustin'); % aproximarea Tustin
sysc = d2c(sysd, 'imp'); % Impulse-invariant mapping
sysc = d2c(sysd, 'matched'); % aproximarea Zero-pole matching equivalents
Pentru alte precizări ale operaţiilor se poate apela la c2dOptions sau d2cOptions.
De exemplu, pentru o conversie Tustin cu frecvenţa de eşantionare de 0,01 s la care
dorim să aplicăm şi o deformare a caracteristicii de frecvenţă la 4.2 rad/s, scriem:
opt = c2dOptions('Method', 'tustin', 'PrewarpFrequency', 4.2);
sysd = c2d(sysc, 0.01, opt);
Alte opţiuni se pot găsi în help-urile funcţiilor c2d şi c2d.
27
În mod reciproc, fiind dat un sistem discret Hd(z), comanda d2c produce versiunea sa
continuă H(s). Discretizarea ZOH a lui of H(s)coincide cu Hd(z).
Conversia ZOH discret-continuu are următoarele limitări:
• d2c nu poate converti sisteme liniare invariante în timp (LTI) cu poli în z = 0.
• Pentru sisteme LTI cu timp discret cu poli reali negativi, conversia ZOH d2c produce
sisteme continue de ordin crescut. Ordinul modelului creşte deoarece polii reali nega-
tivi în domeniul z sunt asociaţi cu perechi de poli conjugaţi în domeniul s.
Să considerăm următorul model zpk în timp discret, cu un pol real
negative la z = –0,5.
hd = zpk([],-0.5,1,0.1)
Zero/pole/gain:
1
-------
(z+0.5)
Sampling time: 0.1
Să aplicăm d2c pentru a converti acest model în timp continuu cu metoda ZOH: hc =
d2c(hd). Vom obţine un rezultat având polinomul caracteristic de ordin doi.
>> hc = d2c(hd)
Warning: The model order was increased to handle real negative poles.
> In warning at 26
In ssdata.utInvDiscretizeZOH at 69
In ssdata.d2c at 21
In zpkdata.d2c at 152
In lti.d2c at 60
Zero/pole/gain:
4.621 (s+149.3)
---------------------
(s^2 + 13.86s + 1035)
Discretizând din nou modelul, obţinem sistemul în timp discret iniţial cu un singur pol:
>> c2d(hc,0.1)
Zero/pole/gain:
(z+0.5)
---------
(z+0.5)^2
Sampling time: 0.1
28
Pentru reprezentarea grafică a răspunsurilor indiciale ale celor două modele, hd şi hc
dăm comanda:
subplot(2,1,1); step(hc);grid; subplot(2,1,2);step(hd);grid;
obţinând figura următoare:
Step Response
0.8
Amplitude
0.6
0.4
0.2
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
Time (sec)
Step Response
1.2
0.8
Amplitude
0.6
0.4
0.2
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
Time (sec)
Această metodă este în general mai precisă decât ZOH, mai ales atunci când semnalul
de intrare este relativ lent faţă de TS. Din motive de cauzalitate această opţiune poate fi
utilizată numai pentru conversia c2d, nefiind aplicabilă la d2c.
29
3.3.3. Conversia Tustin
Conversia Tustin utilizează aproximarea
30
3.4. Reeşantionarea modelelor discrete
Modelele discrete tf, ss, sau zpk pot fi reeşantionate direct utilizând comenzile d2d şi
upsample. Această operaţie uşurează compararea diferitelor variante de discretizare
care pot fi aplicate aceluiaşi sistem.
Să considerăm funcţia de transfer H(s)=5/(s2 + 0,5s + 1), să creăm un model continuu
hc şi să discretizăm acest model prin metoda ZOH, cu perioada de esantionare 1 s.
Vom obţine modelul discret hd.
>> hc=tf([5],[1 0.5 1])
Transfer function:
5
---------------
s^2 + 0.5 s + 1
>> hd=c2d(hc,1)
Transfer function:
1.965 z + 1.654
-----------------------
z^2 - 0.8828 z + 0.6065
Sampling time: 1
Dacă dorim să schimbăm perioada de eşantionare la 0.1 s, putem aplica funcţia d2d:
>> hd1=d2d(hd, 0.1)
Transfer function:
0.02457 z + 0.02416
----------------------
z^2 - 1.941 z + 0.9512
Sampling time: 0.1
Pentru a compara cele trei sisteme hc (continuu), hd (discret cu Ts=0,1 s) şi hd1 (dis-
cret cu Ts=0,05 s) putem să vizualizăm răspunsurile lor indiciale. Vom alege următoa-
rele culori: verde pentru hc, albastru pentru hd şi roşu pentru hd1:
>> step(hc,'g',hd,'b',hd1,'r');grid;
Se remarcă importanţa fundamentală a modului de alegere a perioadei de eşntionare Ts.
Cu cât Ts este mai mică precizia disretizării este mai bună, dar în acelaşi timp volumul
de calcule şi banda de frecvenţă a semnalelor cresc.
Pentru a compara şi caracteristicile de frecvenţă ale sistemelor aplicăm comanda bode:
>> bode(hc,'g',hd,'b',hd1,'r');grid;
Se observă că la frecvenţe mici diferenţele dintre caracteristici sunt relativ nesemnifi-
cative, dar că ele cresc la frecvenţe mari, cu atât mai mult cu cât Ts este mai mare.
Pentru analiza în frecvenţă a sistemelor discrete se pot uliliza funcţiile dedicate dbode,
dnyquist, şi dnichols.
31
Fig. 3.3. Compararea unor discretizări cu timpi de eşntionare de 1 şi de 0,1 s
Bode Diagram
40
20
0
Magnitude (dB)
-20
-40
-60
-80
0
-90
Phase (deg)
-180
-270
-2 -1 0 1 2
10 10 10 10 10
Frequency (rad/sec)
32
Prin upsample se poate obţine creşterea ordinului sistemului discret, pentru o mai bună
aproximare. De exemplu prin hd3=upsample(hd1, 3) obţinem o disretizare de ordin
superor, cu 3 zerouri şi 6 poli şi cu o frecvenţă de eşntionare mult crescută.
>> hd3=upsample(hd1, 3)
Transfer function:
0.02457 z^3 + 0.02416
------------------------
z^6 - 1.941 z^3 + 0.9512
Sampling time: 0.033333
>> step(hd,'r',hd3,'b');grid;
Step Response
4
Amplitude
0
0 5 10 15
Time (sec)
33
4. Modelarea sistemelor discrete în Simulink
34
Fig. 4.2. Biblioteca Simulink Extras Additional Discrete
Zero-Order Hold: elementul de reţinere de ordin zero.
First-Order Hold: elementul de reţinere de ordin întâi.
Discrete State-Space: varianta de forma spaţiul stărilor a unui sistem dinamic în timp
discret; se specifică matricile A, B, C şi D precum şi condiţiile iniţiale.
Discrete Filter: un filtru discret sub forma de funcţie raţională, vectorii conţinând coe-
ficienţii polinomiali în z^-1.
Discrete Transfer Fcn: forma standard a unui sistem SISO liniar invariant în timp dis-
cret, exprimată prin vectorii coeficienţilor polinomiali în z.
Discrete Zero-Pole: varianta exprimată în funcţie de zerouri şi poli a unui sistem dina-
mic în timp discret; se specifică şi câştigul.
35
4.2. Simulink Model Discretizer
Aplicaţiile Simulink în timp discret se dezvoltă după aceleaşi proceduri ca şi aplicaţiile
în timp continuu. Ţinând însă cont de dezvoltarea extraordinară a tehnologiei
digitale de conducere şi de caracterul oarecum de rutină a operaţiilor de
discretizare, în mediul Matlab a fost dezvoltată o interfaţă utilizator GUI
destinată discretizării automate a modelelor: Simulink Model Discretizer.
Să considerăm cazul sistemului de reglare în timp continuu, cu reacţie unitară şi
regulator proporţional, din figura următoare.
36
Fig. 4.5. Interfaţa grafică Simulink Model Discretizer
Pentru fiecare dintre blocurile în timp continuu din componenţa modelului se pot alege
toţi parametrii de discretizare: metoda de conversie (ZOH, FOH, Tustin, Tustin cu pre-
warping şi matched pole-zero), perioada de eşantionare (care poate fi însoţită şi de o
întârziere - offset time) şi tipul de discretizare. Tipurile de discretizare oferite sunt:
Discrete blocks (Enter parameters in s-domain): generează un bloc discret cu
aceeaşi parametri ca şi modelul continuu;
Discrete blocks (Enter parameters in z-domain): creează un bloc discret cu para-
metri în domeniul z;
Configurable subsystem (Enter parameters in s-domain): creează mai multe
modele candidate pentru discretizare, în domeniul s, formate din mai multe blocuri;
Configurable subsystem (Enter parameters in z-domain): creează mai multe
modele candidate pentru discretizare, în domeniul z, formade din mai multe blocuri;
37
Fig. 4.6. Rezultatele unor discretizări în blocuri, în domeniul s, prin conversii ZOH şi
FOH, cu perioada de eşantionare de 0,1 s
38
Se remarcă diferenţa fundamentală dintre rezultatele aceleiaşi simulări, pentru conver-
siile zoh şi foh. În timp ce zoh cauzează instabilitatea sistemului de reglare, foh asi-
gură o funcţionare apropiată de cazul continuu. Această situaţie ne avertizează asupra
pericolelor care vin odată cu discretizarea sistemelor, care trebuie făcută cu multă aten-
ţie, testând cât mai multe variante, şi luând măsuri de siguranţă specifice, cum ar fi de
exemplu filtrările numerice şi filtrările antialiasing.
În cazul aplicaţiei hc orice altă metodă de conversie decât zoh produce rezultate bune.
Evitare instabilizării se mai poate obţine în cazul zoh şi scăzând perioada de eşantio-
nare de cel puţin zece ori.
39
5. Sisteme de reglare discrete
O aproximare des întâlnită (velocity algorithm) se obţine prin diferenţierea lui u(t)
utilizând definiţiile numerice ale derivatele de ordin I şi II şi rezolvând ecuaţia pt. u(tk):
40
Bibliografie
41