Sunteți pe pagina 1din 6

44 Crearea şi conversia modelelor matematice - 5

5. Crearea şi conversia modelelor matematice

5.1. Scopul lucrării: Studiul unor funcţii elementare ale MATLABului de conversie
a modelelor matematice. Analiza şi implementarea modelelor matematice utilizând diferite
tehnici de conversie ale acestora. Conversia modelelor continuu-discret şi discret-continuu.

5.2. Partea teoretică

5.2.1. Funcţii elementare pentru crearea şi conversia modelelor

Performanţele impuse în cadrul proiectării sistemelor de reglare automată (SRA) se


referă atât la regimul staţionar şi tranzitoriu, ca urmare a variaţiei mărimii de intrare sau a unei
perturbaţii, cât şi la caracteristicile de frecvenţă/pulsaţie (regimul staţionar sinusoidal). Răspunsul
indicial este cel mai frecvent procedeu de apreciere a performanţelor unui SRA.
În multe situaţii în practică, cum ar fi analiza în domeniul frecvenţă sau proiectarea
regulatoarelor, sunt necesare modele matematice de tipul fdt sau reprezentarea modelului prin
poli-zerouri. Obţinerea unor astfel de modele, pornind, de exemplu, de la o reprezentare de stare
a sistemului (MM-ISI), implică realizarea conversiei dintr-un tip de model matematic în altul.
Implementarea unei funcţii de transfer (transfer function-tf) în MATLAB este simplu de
realizat, fiind suficient să se definească coeficienţii polinomului de la numărător şi numitor, în
ordine descrescătoare. Implementarea poate fi realizată şi prin utilizarea operatorului Laplace (s).
De asemenea, se poate realiza conversia modelelor continue în modele discrete echivalente, sau
invers, cu sau fără specificarea metodei de discretizare.
Cele mai importante funcţii MATLAB dedicate creării şi conversiei modelelor liniare
sunt prezentate în Tabelul 5.1.
Tabelul 5.1. Funcţii dedicate creării şi conversiei modelelor liniare.
Funcţia Descrierea funcţiei
tf Crează o funcţie de transfer (fdt)
ss Crează modelul mărimilor de stare (state-space) al unui sistem sau realizează conversia unui
model in mărimi de stare
zpk Crează un model al unei fdt cu poli şi zerouri (zero pole gain) sau face conversia unui model din
mărimi de stare sau a unei fdt într-o fdt cu poli şi zerouri
frd Crează răspunsul în frecvenţă a unui model sau face conversia unui model din (tf, ss, zpk) în
frecvenţă
c2d Face conversia unui model continuu în unul discret
d2c Face conversia dintr-un model discret în unul continuu

Biblioteca Control System furnizează şi un set de funcţii (tf, ss, zpk, frd) pentru crearea
a patru tipuri de modele liniare, invariante în timp (Linear Time Invariant-LTI), şi pentru
conversia dintr-un model în altul, după cum ilustrează diagrama bloc din figura 5.1 şi tabelul de
mai sus.
5.2 – Partea teoretică 45

Fig. 5.1. Diagrama bloc cu funcţiile de conversie ale modelelor matematice [1].

5.2.2. Implementarea funcţiilor de transfer. Conversia modelelor matematice

Implementarea în MATLAB a unei funcţii de transfer (tf) este simplu de realizat. Astfel,
este suficient să se definească coeficienţii polinomului de la numărător şi numitor, în ordine
descrescătoare.

Dacă în fereastra de comandă se tastează:


sys=rss(3)
MATLAB-ul va genera un model aleator al unui sistem de tip SISO de ordinul trei cu
mărimi de stare.
s
Un alt exemplu se referă la modelul funcţiei de transfer H ( s )  2 a unui
s  2  s  10
sistem de tip SISO şi se poate implementa notând numărătorul şi numitorul cu num=[1 0];
den=[1 2 10]; şi utilizând comanda:
H = tf(num, den).

Funcţia H(s) poate fi implementată şi utilizând operatorul Laplace (s), tastând


următoarea linie de program:
s = tf(’s’); H=s / (s^2+2*s+10);

Utilizând comanda:
sys1=tf(sys)

vom obţine conversia modelului sys de ordinul trei modelat cu mărimi de stare, în modelul sys1,
care reprezintă echivalentul lui sys modelat prin funcţii de transfer (sstf).

Modelul matematic intrare-stare-ieşire (MM-ISI) este construit dintr-un sistem de


ecuaţii diferenţiale liniare care descriu funcţionarea sistemului în regim dinamic.
Matricele mărimilor de stare A, B, C şi D caracterizează aceste modele, care sunt de
forma:

 dx 
  A  x  B  u
 dt , x(0)  x0 …………………………..(5.1)
 y  C  x  D  u 

În care x reprezintă vectorul mărimilor de stare, u şi y sunt vectorii de intrare şi ieşire,


iar x(0)=x0 reprezintă condiţiile iniţiale.
46 Crearea şi conversia modelelor matematice - 5

Cele mai utilizate funcţii de conversie a modelelor, pentru acelaşi sistem liniar invariant,
sunt: ss2tf (transformare din MM-ISI în funcţie de transfer), ss2zp (transformare din MM-ISI în
reprezentare poli-zerouri), tf2ss (transformare din fdt în MM-ISI), zp2ss (transformare din poli-
zerouri în MM-ISI).

5.2.3. Conversia modelelor continuu-discret şi discret-continuu

Funcţiile MATLAB pentru realizarea trecerii din domeniul continuu la cel discret sunt:
c2d şi c2dm, iar pentru realizarea trecerii de la domeniul discret la cel continuu se pot utiliza
funcţiile: d2c şi d2cm.
Funcţia c2d realizează conversia modelelor continue în modele discrete echivalente,
implementate prin tf, zpk şi ss. De asemenea, se poate realiza şi conversia inversă, utilizând
funcţia d2c. Metodele care realizează această conversie (discretizarea sistemelor liniare) sunt:
zero-order-hold(zoh), first-order-hold, Tustin biliniar approximation (metoda trapezului), Tustin
with frequency prewarping şi matched poles and zeros (conversie realizată prin alocarea de poli
şi zerouri). Aceste funcţii pot fi apelate cu următoarele sintaxe:

sysd=c2d(sysc, Ts, Metoda)

sysc=d2c(sysd, Metoda)

Funcţiile c2dm şi d2cm realizează conversia, de la continuu la discret sau invers, cu


specificarea metodei de discretizare. Dacă nu se specifică metoda de discretizare, atunci
MATLABul va realiza conversia, utilizând metoda zoh (zero-order-hold).
O funcţie similară, cu cele de mai sus, este d2d, care poate fi utilizată atunci când se
doreşte discretizarea modelului cu un alt pas de eşantionare decât cel precedent.

5.3. Desfăşurarea lucrării – Partea practică de implementare

 Implementarea în MATLAB a modelelor matematice (MM) prin funcţii de transfer;


 Conversia modelelor;
 Rezolvarea exemplelor

s
Exemplul 5.1: Să se implementeze fdt H ( s)  2  prin poli şi zerouri
( s  2)( s  2s  2)
2

Rezolvare: Implementarea fdt de mai sus se poate face utilizând următoarea linie de
comandă:
z=0; p=[2 1+i 1-i]; k = -2; H = zpk(z, p, k);
sau în variantă operaţională:
s = zpk(’s’); H = -2 * s / (s-2)(s^2-2*s+2);

Zerourile sunt plasate la numărătorul fdt (rădăcinile numărătorului), iar polii la numitor
(rădăcinile numitorului).
5.3 – Desfăşurarea lucrării – Partea practică de implementare 47

Exemplul 5.2:Să se discretizeze modelul unui filtru cu pasul de eşantionare Ts=0.1,


având fdt în timp continuu:
s 2  0.5  s  100
H (s) 
s 2  5  s  100
După care, să reprezentăm grafic răspunsul celor două sisteme la aplicarea unui semnal
treaptă.

Rezolvare: Vom utiliza următoarele linii de program, care generează graficele din figura
5.2:

%Discretizarea unui model continuu cu Ts=0.1


sysc=tf([1 0.5 100],[1 5 100]);
sysd=c2d(sysc,0.1);%realizarea conversiei cu metoda de
%discretizare zoh

%Comparaţie între modelul continuu şi discret la aplicarea unui semnal


%treaptă de intrare

step(sysc,'b',sysd,'r--')
figure,subplot(311),step(sysc,'b',sysd,'r--'),axis([0 2.5 0.6
1.2]),subplot(312),step(sysc,'b',sys,'r--'),axis([0 2.5 0.6
1.2]),subplot(313),step(sys,'b',sysd,'r--'),axis([0 2.5 0.6
1.2])

a)
48 Crearea şi conversia modelelor matematice - 5

b)
Fig. 5.2. a) Comparaţie între răspunsul sistemului continuu şi discret, b) comparaţie între sistemul continuu
şi discret (sus), între sistemul continuu şi discret cu un pas de eşantionare mai fin (mijloc), şi între cele
două sisteme discrete cu paşi de eşantionare diferiţi.

Exemplul 5.3: Să presupunem că un motor electric, având ca mărime de intrare curentul


(I) şi ca mărime de ieşire poziţia rotorului (θ), este definit de următoarea ecuaţie diferenţială [1]:

d 2 d
2
 2  5    3  I ………………………………..(5.2)
dt dt

Această ecuaţie poate fi scrisă cu ajutorul mărimilor de stare (MM-ISI):

dx
 Ax  BI ........................................................................(5.3)
dt
  Cx  DI

în care:
0 1 0  
A ; B  3; C  1 0; D  [0]; x   d  ...(5.4)
  5  2     dt 
Ecuaţia (5.4) poate fi implementată în MATLAB prin matricele mărimilor de stare, după
5.3 – Desfăşurarea lucrării – Partea practică de implementare 49
cum urmează:
A=[0 1;-5 -2];B=[0;3];C=[1 0];D=0;
G=ss(A,B,C,D)

În multe situaţii din practică, cum ar fi analiza în domeniul frecvenţă sau proiectarea
regulatoarelor, sunt necesare modele matematice de tipul fdt sau reprezentări poli-zerouri.
Obţinerea unor astfel de modele, pornind, de exemplu, de la o reprezentare de stare a sistemului,
implică realizarea conversiei dintr-un tip de model matematic în altul.

Conversia modelului unui sistem, având funcţia de transfer:

s  0.25
H ( s) 
s  1.75  s  0.25
2

în MM-ISI se poate obţine prin următoarea secvenţă de program:

num=[500 0.25];den=[1 1.75 0.25];


[A,B,C,D]=tf2ss(num,den)

care returnează matricele:


A=
-1.7500 -0.2500
1.0000 0

B=
1
0

C=
500.0000 0.2500

D=
0

Obs. Este de remarcat faptul că funcţia tf2ss trebuie utilizată numai pentru sisteme, având
o singură intrare şi, în consecinţă, matricele B şi D vor fi întotdeauna vectori coloană.

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