Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica


Informatica


Qdidactic » stiinta & tehnica » informatica
Functiile de transfer ale sistemelor continue si cu esantionare



Functiile de transfer ale sistemelor continue si cu esantionare


Functiile de transfer ale sistemelor continue si cu esantionare

Sistemele liniare si invariante in timp cu o intrare si o iesire pot fi descrise prin functia de transfer, prin ecuatii de stare si prin poli, zerouri si factorul de amplificare. In Matlab, modelul unui asemenea sistem este un obiect cu proprietati. Proprietatile generale ale acestui obiect sunt:

inputname - numele intrarii, sir de caractere,

outputname - numele iesirii, sir de caractere

inputdelay - intarzierea la intrare in secunde,

outputdelay - intarzierea la iesire in secunde,



name - numele obiectului corespunzator, sir de caractere.

Prescrierea si obtinerea proprietatilor obiectului se fac cu functiile get() si set()

set(numeobiect, proprietate, valoare)

get(numeobiect, proprietate)

Definitiile proprietatilor generale ale acestor sisteme pot fi vazute cu instructiunea

ltiprops

1.1      Descrierea sistemelor liniare si invariante in timp cu a intrare si o iesire prin functia de transfer

Crearea unei sistem descris de o functie de transfer se face cu functia tf.

1.1.1     Sisteme continue

Fie functia de transfer a unui sistem continuu

unde M(s) si N(s) snt polinoame in s. Crearea functiei de transfer se face cu functia

sys = tf(M, N)

unde M si N sunt vectori cu coeficientii polinoeamelor M(s) si N(s) in ordine descrescatoare a puterilor lui s.

Exemplu. Fie un bloc cu functia de transfer

Numele blocului va fi sys1.

Functia de transfer se creaza cu instructiunile


M = [2 1];

N = [1 2 3];

sys1 = tf(M, N)


Transfer function:

2 s + 1


s^2 + 2 s + 3


Un alt mod de creare a unei functii de transfer este de a specifica direct expresia ei ca functie de s in felul urmator:

se defineste variabila complexa s ca
  s = tf('s');

se defineste functia de transfer ca
sys = tf(expresia functiei de transfer)

Exemplu. Functia de transfer de mai sus se defineste astfel


s = tf('s')


Transfer function:

s


sys2 = tf((2*s+1)/(s^2+2*s+3))


Transfer function:

2 s + 1


s^2 + 2 s + 3


Prescrierea si obtinerea proprietatilor obiectului se fac cu functiile get() si set()

set(numeobiect, proprietate, valoare)

get(numeobiect, proprietate)

ca de exemplu

set(sys, 'inputname', 'u')

get(sys, 'inputname)

Pentru blocul sys1 de mai sus putem secrie


set(sys1, 'inputname', 'u')

set(sys1, 'outputname', 'y')

sys1


Transfer function from input 'u' to output 'y':

2 s + 1


s^2 + 2 s + 3


Prescrierea unei intarzieri de 0.2 s pentru blocul sys1 se poate face ca mai jos


set(sys1, 'inputdelay', 0.2)

sys1


Transfer function from input 'u' to output 'y':

2 s + 1

exp(-0.2*s) * -------------

s^2 + 2 s + 3


Intarzierea se obtine cu functia get()

get(sys1, 'inputdelay')


ans =


0.2000


Prescrierea unei intarzieri pentru un bloc se poate face si direct, in expresia functiei de transfer


sys3 = tf(exp(-0.2*s) * (2*s+1)/(s^2+2*s+3))


Transfer function:

2 s + 1

exp(-0.2*s) * -------------

s^2 + 2 s + 3


Proprietatile specifice ale unui obiect creat cu functia tf sunt:

num - numaratorul functiei de transfer, vector,

den - functiei de transfer, vector,

ioDelay - intarzierea intre intrare si iesire, scalar,

Variable - s, in cazul sistemelor continue.

Definitiile proprietatilor specifice ale acestor sisteme pot fi vazute cu instructiunea

ltiprops tf

Prescrierea si obtinerea acestor proprietati se fac cu functiile set() si get() de mai sus.

Exemplu.


get(sys3, 'variable')


ans =


s


Prescrierea si obtinerea acestor proprietati se fac accesand proprietatile sub forma


numeObiect.numeProprietate

Proprietatile num si den sunt tablouri de celule cu elementele vectori linie.

Exemplu. Sa accesam proprietatile num si den ale modelului sys1.


sys1.num


ans =


0 2 1


sys1.den


ans =


1 2 3


Datele modelului sys de forma tf se obtin si cu functia tfdata() cu formele:

[num, den] = tfdata(sys)

[num, den] = tfdata(sys, 'v')

num si den sunt numaratorul si numitorul functiei de transfer. In prima forma, num si den sunt celule de vectori, in forma a doua sunt vectori.

Exemplu.


[num, den] = tfdata(sys1)


num =


[1x3 double]



den =


[1x3 double]


num


ans =


0 2 1


den


ans =


1 2 3


Exemplu.


[num1, den1] = tfdata(sys1, 'v')


num1 =


0 2 1



den1 =


1 2 3

1.2      Descrierea sistemelor liniare si invariante in timp cu a intrare si o iesire prin ecuatii de stare

Crearea unei sistem descris de ecuatii de stare se face cu functia ss.

1.2.1     Cazul sistemelor continue

Un sistem continuu, liniar si invariant in timp este descris de ecuatiile de stare:

unde

x - vectorul de stare de dimensiune n,

A - matrice de dimensiune n,

b - vector coloana de dimensiune n,

u - intarea scalara,

y - iesirea scalara,

c - vector linie de dimensiune n,

d - scalar.

Creare unui model se face cu functia

ss(A, b, c, d)

unde parametrii A, b, c, d au semnificatia de mai sus.

Exemplu. Fie sistemul descries de ecuatiile de stare

El este creat ca mai jos.


A = [0 1; -3 -2];

b = [0; 1];

c = [1 0];

d = 0;

sys4 = ss(A, b, c, d)


a =

x1 x2

x1 0 1

x2 -3 -2


b =

u1

x1 0

x2 1


c =

x1 x2

y1 1 0


d =

u1

y1 0


Continuous-time model.


Proprietatile specifice ale unui asemenea model sunt:

a - matricea A,

b - vecorul b,

c - vectorul c,

d - vectorul d,

Nx - numarul de stari, scalar,

StateName - vector de celule cu siruri de caractere, numele variabilelor de stare.

Definitiile proprietatilor specifice ale acestor sisteme pot fi vazute cu instructiunea

ltiprops ss

Prescrierea si obtinerea acestor proprietati se fac cu functiile set() si get() de mai sus.

Exemplu.


get(sys4, 'a')


ans =


0 1

-3 -2


Exemplu. Vom atribui numele pozitie si viteza celor doua variabile de stare.


set(sys4, 'statename', )

sys4


a =

pozitie viteza

pozitie 0 1

viteza -3 -2


b =

u1

pozitie 0

viteza 1


c =

pozitie viteza

y1 1 0


d =

u1

y1 0


Continuous-time model.


Prescrierea si obtinerea acestor proprietati se fac si accesand proprietatile sub forma

numeObiect.numeProprietate

Exemplu. Modelul de mai sus se poate crea astfel.


sys6.a = [0 1; -3 -2];

sys6.b = [1;2];

sys6.c = [1 0];

sys6.d = 0;

sys6


a =

x1 x2

x1 0 1

x2 -3 -2


b =

u1

x1 1

x2 2


c =

x1 x2

y1 1 0


d =

u1

y1 0


Datele modelului sys de tip ss sunt se obtin cu functia ssdata() cu forma

[a, b, c, d] = ssdata(sys)

Exemplu.


[ax, bx, cx, dx] = ssdata(sys4)


ax =


0 1

-3 -2


bx =


0

1


cx =


1 0


dx =


0

1.3      Descrierea sistemelor liniare si invariante in timp cu a intrare si o iesire prin poli, zerouri si factorul de amplificare

Crearea unui sistem descris de zerouri, poli si facorul de amplificare se face cu functia zpk.

1.3.1     Cazul sistemelor continue

Un sistem continuu, liniar si invariant in timp este descries de un vector ce contine polii sistemului, un vector ce contine zerourile si facorul de amplificare scalar.

Crearea unui model se face cu functia zpk cu forma

zpk(z, p, k)

unde:

z - vector cu zerourile sistemului,

p - vector cu polii sistemului,

k - factorul de amplificare, scalar.

Exemplu. Fie un sistem cu polii -1+i, -1-i si factorul de amplifcare 2. El este creat ca mai jos.


sys3 = zpk([], [-1+i, -1-i], 2)


Zero/pole/gain:

2


(s^2 + 2s + 2)


Proprietatile specifice ale unui model creat cu functia zpk sunt:

z - vectorul zerourilor,

p - vectorul polilor,

k - factorul e amplificare, scalar,

ioDelay - intarzierea intre intrare si iesire, scalar,

Variable - s, in cazul sistemelor continue.

Definitiile proprietatilor specifice ale acestor sisteme pot fi vazute cu instructiunea

ltiprops zpk

Prescrierea si obtinerea acestor proprietati se fac cu functiile set() si get() de mai sus.

Zerourile, polii si factorul de amplificare ale unui model sys de tip zpk se obtin cu functia zpkdata() cu forma

[z p k] = zpkdata(sys)

[z p k] = zpkdata(sys, 'v')

z este vectorul zerourilor, p este vectorul polilor, k este factorul de amplificare. In prima forma z, p si k sunt tablouri de celule cu elemente vectori coloana, in forma a doua sunt vectori.

Exemplu. Sa obtinem z si p sub forma de vectori.


[num, den, k] = zpkdata(sys3, 'v')


num =


Empty matrix: 0-by-1


den =


-1.0000 + 1.0000i

-1.0000 - 1.0000i


k =


2


Exemplu. Sa obtinem z si p sub forma de vectori de celule.


[num, den, k] = zpkdata(sys3)


num =


[0x1 double]


den =


[2x1 double]


k =


2


Vectorul polilor din celula den se afisaza ca


den


ans =


-1.0000 + 1.0000i

-1.0000 - 1.0000i

1.4      Functia de transfer a sistemelor continue

Operatiile asupra modelelor sunt urmatoarele:

adunarea si scaderea a doua modele, +, -,

conectarea in serie, *,

conectarea in reactie a doua modele, feedback,

conectarea arbitrara a modelelor.

1.4.1     Conectarea in reactie a doua modele

Fie doua modele sys1 si sys2. Functia

sys = feedback(sys1, sys2)

creaza un model sys corespunzator conexiunii din Figura 24.


Figura 24 . Conectarea in reactie a doua blocuri.

Exemplu. Fie doua blocuri sys1 si sys2 cu functiile de transfer  si . Sa se determine functia de transfer a conexiunii din Figura 24.


M = [2 1];

N = [1 2 3];

sys1 = tf(M, N)


Transfer function:

2 s + 1


s^2 + 2 s + 3


M1 = [1];

N1 = [2 1];

sys2 = tf(M1, N1)


Transfer function:

1


2 s + 1


sys3 = feedback(sys1, sys2)


Transfer function:

4 s^2 + 4 s + 1


2 s^3 + 5 s^2 + 10 s + 4

1.5      Discretizarea modelelor continue

Functia pentru conversia unui model continuu in unul discret este c2d(). De regula inaintea sistemului continuu se introduce un extrapolator de ordin zero (zero-order hold, ZOH). Functia c2d() are formele

sysd = c2d(sysc, Ts)

sysd = c2d(sysc, Ts, 'metoda de extrapolare')

unde sysd este modelul discret, sysc este modelul continuu, Ts este perioada de esantionate in secunde. Prima forma utilizeaza un extrapolator de ordin zero, in forma a doua extrapolatorul se poate allege din mai multe metode: 'zoh', extrapolator de ordin zero, 'foh' extrapolator de ordin unu, etc.

Exemplu. Sa discretizam modelul cu functia de transfer

cu un extrapolator de ordin zero pentru perioada de esantionare Ts = 0.2s


num = [1];

den = [1 0.2 0];

H = tf(num, den)


Transfer function:

1


s^2 + 0.2 s


D = c2d(H, 0.2)


Transfer function:

0.01974 z + 0.01947


z^2 - 1.961 z + 0.9608


Sampling time: 0.2





Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright