generarea semnalelor standard - users. mtrusca/lab/ts1/l1_ts1.pdf¢  generarea semnalelor...

Download Generarea semnalelor standard - users. mtrusca/Lab/TS1/L1_TS1.pdf¢  Generarea semnalelor standard 1

Post on 31-Aug-2019

5 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Generarea semnalelor standard

    1 Scopul lucrrii

    Familiarizarea cu modul de generare i reprezentare n mediul Matlab a semnalelor de test, considerate standard n ingineria sistemelor automate.

    nsuirea noiunilor de utilizare a echipamentelor necesare obinerii practice a

    semnalelor de testare a sistemelor continue, liniare invariante n timp (LTI).

    2 Consideraii teoretice

    Semnalele continue n timp, considerate standard pentru testarea sistemelor continue, LTI sunt:

    semnalul impuls (Dirac),

    ,

    semnalul treapt unitate,

    ,

    semnalul ramp,

    ,

    semnalul sinusoidal , cu notaie pentru pulsaia semnalului.

    Prin respectarea consideraiilor asupra modului de referire al sistemelor dinamice sub form de diagrame bloc (Figura 2.1) sau ca un set de semnale de intrare / ieire, notaia u(t) va fi utilizat pentru referirea semnalului de intrare, respectiv y(t) este folosit pentru referirea semnalului de ieire. Se renun la modul de referire preluat din matematic i care indic prin notaie forma semnalului, i.e. , etc.

    Figura 2.1 Reprezentarea prin diagrame bloc

    Pentru simularea comportamentului unui sistem LTI la diferite semnale de intrare, se consider ca domeniul de interes doar domeniul pozitiv de variaie al timpului. Aceast limitare nu neglijeaz comportamentul anterior al sistemului ci stabilete ca moment iniial de simulare, momentul t=0, nivelul de energie nmagazinat de sistem fiind precizat prin condiiile iniiale nenule.

    Mediul de simulare Matlab ruleaz pe un echipament de natur digital. Perceperea semnalelor ca semnale analogice (continue n timp i amplitudine) fiind realizat printr-un artificiu de reprezentare grafic a valorilor discrete. n mod implicit reprezentarea grafic se realizeaz prin unirea cu linie continu a valorilor reprezentate. O atenie deosebit trebuie acordat modului n care se stabilete pasul cu care este eantionat timpul i

  • modului n care se interpreteaz (citesc) comentariile implicite de pe axele reprezentrilor grafice.

    2.1 Generarea semnalelor n mediul Matlab

    Mediul de simulare Matlab ofer multiple variante de a genera i reprezenta grafic un semnal analogic [2]. Pentru oricare variant, se recomand iniializarea unui vector de timp, n care pasul de generare s se aleag innd cont de limitrile procesului sau sistemului care va fi studiat i de caracteristicile calculatorului pe care ruleaz mediul de simulare Matlab.

    2.1.1 Semnalul impuls Sunt prezentate variantele agreate n analiza sistemelor LTI, de a genera un semnal

    impuls unitar. Primul exemplu reprezint o variant compact de a genera un vector cu valori reprezentate n dubl precizie. Se apeleaz la operaiile binare disponibile (>=), mprirea cu o valoare real convertind valorile binare n reale.

    Figura 2.2 Semnalul impuls unitate ( a). valori concrete, b). valori abstracte, T=0.1 sec.)

    Pentru obinerea reprezentrii semnalului impuls unitate din Figura 2.2, s-a utilizat urmtorul script n Matlab:

    T=0.1;% constata de timp a sistemului n=10;t=0:T/100:n*T;% timpul de simulare u=(t

  • area([0 0.1],[10 10],'FaceColor',[.5 .5 0.5]);

    plot(t,u,'LineWidth',2); axis([-0.1 4*T -1 13]) hold;plot([0 0],[-1 13],'--k',[-0.1 n*T],[0 0],'--k'); % precizarea punctelor active de pe abscisa set(gca,'XTick',[0:T:4*T,9*T]); % textul punctelor de pe abscisa set(gca,'XTickLabel',{'0','T','2T','3T','4T','9T'}) % precizarea punctelor active de pe ordonata set(gca,'YTick',[0 1/T]); % denumirea punctelor considerate pe ordonata set(gca,'YTickLabel',{'0','1/T'}); % plasare cu mouse-ul de text pe reprezentarea grafica gtext('Aria=1','FontSize',12); xlabel('Timp (sec)','FontSize',12); ylabel('$\delta(t)$','Fontsize',14,'interpreter', 'Latex')

    Dac se apeleaz la lucrul cu matrice (vectori), se obine o variant de cod accesibil din punct de vedere a estimrii rezultatului execuiei fiecrei comenzi. Prin scriptul urmtor se poate nsui modul de generare i referire a vectorilor n mediul Matlab:

    T=0.1;% constata de timp a sistemului n=4;t=0:T/100:n*T;% timpul de simulare l=length(t);% lungimea vectorului de timp t % generare vector linie, de lungime l, cu toate elementele 0 u=zeros(1,l);% generare vector linie, de lungime l u(1:100)=1/T;% modificarea primelor 100 de valori din u plot([0 0],[-1 13],'--k',[-0.1 n*T],[0 0],'--k',t,u,'b*'); set(gca,'XTick',[0, T]);

    set(gca,'XTickLabel',{'0','T'}) set(gca,'YTick',[0 1/T]);

    set(gca,'YTickLabel',{'0','1/T'}) xlabel('Timp (T)') ylabel('$\delta(t)$','interpreter', 'Latex') title('Semnal impuls unitate');% comentariu titlu grid; % trasare linii de control

    n Figura 2.3 este prezentat graficul obinut n urma executrii comenzilor precedente.

    Spre deosebire de graficele din Figura 2.2, n acest caz semnalul este reprezentat prin puncte, neunite prin linie continu.

  • Figura 2.3 Semnal impuls unitate reprezentat prin puncte (T=0.1 sec.)

    Ambele scripturi utilizeaz acelai vector de timp, eantionat la T/100 (1ms). Pentru alte valori ale eantionului de timp, se obin diferite reprezentri grafice n Figura 2.4.

    Figura 2.4 Semnale generate cu diferite perioade de eantionare (T=0.1 sec.)

    2.1.2 Semnalul treapt unitate Pentru generarea semnalului treapt unitate se pot refolosi variantele de script

    precedente, modificrile eseniale fiind la nivelul comenzii de declarare a semnalului u. Observaiile legate de modul de generare al vectorului de timp, cu un pas de generare automat (perioad de eantionare) direct legat de aplicaia n care va fi utilizat semnalul de intrare u. Scriptul urmtor prezint i modul de implementare a unei bucle cu comenzi din Matlab. Rezultatul execuiei comenzilor din scriptul urmtor este graficul din Figura 2.5, cu trei valori considerate pentru pasul de generare automat a semnalului u.

    T=0.1;n=4;e=[T/100 T/10 T];

    for i=1:length(e)

    0 T

    0

    1/T

    Timp (T)

    /(t

    )

    Semnal impuls unitate

    0 T

    0

    1/T

    Timp (T)

    /(t

    )

    Semnal esantionat la 50ms

    0 T

    0

    1/T

    Timp (T)

    /(t

    )

    Semnal esantionat la 10ms

    0 T

    0

    1/T

    Timp (T)

    /(t

    )

    Semnal esantionat la 0.1 s

  • t=0:e(i):n*T;l=length(t);

    % generare vector linie, de lungime l, cu toate

    elementele 1

    u=ones(1,l);

    subplot(1,3,i)

    plot(t,u,'b*-');

    set(gca,'XTick',[0:T:n*T]);

    set(gca,'YTick',[0 0.5 1]);

    set(gca,'YTickLabel',{'0','0.5','1'})

    xlabel('Timp (s)');ylabel('u(t)');

    title(['Semnal esantionat la ',num2str(e(i)),'s']);

    axis([-0.03 n*T -0.1 1.2]);grid

    end

    Figura 2.5 Semnal treapt unitate

    2.1.3 Semnalul ramp unitate Plecnd de la expresia matematic a semnalului ramp de pant arctg(a):

    ( 1)

    se poate utiliza urmtorul script pentru a genera i reprezenta grafic (Figura 2.6) un semnal ramp de diferite valori ale pantei:

    t=0:0.01:0.1;a=[sqrt(3)/3 1 sqrt(3)];

    plot(t,a(1)*t,'kv-',t,a(2)*t,'k>-',t,a(3)*t,'k

  • Figura 2.6 Exemple de semnal ramp de diferite pante

    2.1.4 Semnalul sinusoidal Forma general a unei sinusoide este determinat de trei parametrii: amplitudine

    notat cu A, pulsaie notat cu i defazaj notat cu :

    ( 2)

    sau evideniind frecvena f:

    ( 3)

    De interes pentru aplicaiile teoretice este cazul particular al sinusoidei de amplitudine 1 i nedefazat. Se prefer utilizarea pulsaiei deoarece aceasta se regsete n modelul matematic care va fi utilizat pentru analiza sistemelor dinamice. Al doilea aspect care nclin spre utilizarea pulsaiei i nu a frecvenei este sintaxa din Matlab a funciei sin prin intermediul creia se va genera semnalul sinusoidal.

    Pentru reprezentarea grafic a unui semnal sinusoidal de pulsaie precizat (Figura 2.7), se propune urmtoarea variant de script:

    w=2;% pulsatia semnalului de intrare

    T=2*pi/w;% perioada semnalului

    n=30;% numar de esantioane pe o perioada

    nT=6; % numar de perioade de reprezentat

    t=0:T/n:nT*T; % timp de reprezentare

    y=sin(w*t); % semnal sinusoidal

    plot(t, y, 'LineWidth',2); % reprezentarea grafica

    title(['Semnal sinusoidal \it{sin(}',num2str(w),'t)'])

    axis([-0.1 nT*T -1.2 1.2]);grid

    set(gca,'XTick',[0:T:nT*T]);

    set(gca,'YTick',[-1 0 1]);

    set(gca,'YTickLabel',{'-1','0','1'})

    xlabel('Timp (sec.)');ylabel('Amplitudine')

    0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10

    0.02

    0.04

    0.06

    0.08

    0.1

    0.12

    0.14

    0.16

    0.18Semnale ramp6a

    Timp (sec.)

    u(t

    )=

    at

    panta de 30o

    panta de 45o

    panta de 60o

    a =p

    33

    a = 1

    a =p

    3

  • Figura 2.7 Semnale sinusoidal de pulsaie 2 rad/s, reprezentat pe 6 perioade

    2.1.5 Semnalul dreptunghiular Direct legat de aplicaiile practice, semnalul dreptunghiular este o facilitate comun a

    generatoarelor de funcii. Din punct de vedere matematic, este un semnal compus, studiul detaliat fiind realizat n cadrul altor materii de specialitate. Modul de declarare al unui semnal dreptunghiular n mediul de simulare Matlab se poate realiza prin funcia square, similar ca i sintax cu funcia sin. Pentru exemplificare, n Figura 2.8 este prezentat semnalul dreptunghiular obinut utiliznd scriptul precedent, n care funcia sin s-a nlocuit cu square.

    Figura 2.8 Semnal dreptunghiular de pulsaie 2 rad/s, reprezentat pe 6 perioade

    3 Probleme

    3.1 Scripturi n Matlab

    1. S se genereze i s se repre