Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MatLAB(praktikum kz uchim).docx
Скачиваний:
32
Добавлен:
01.05.2015
Размер:
335.17 Кб
Скачать

3.2 Мысалы:

>> t = 0 : 0.1 : 10;

>> y = 0.75*tripuls (t-1, 0.5) + 0.5*tripuls (t-5, 0.5, -1)…

     + 1.35*tripuls (t-3, 0.8, 1);

>> plot(t,y), grid, set(gca, ‘FontName’, ‘Arial Cyr’, “FontSize’, 16)

>> title (‘Пример применения процедуры TRIPULS’)

>>xlabel (‘Время (с)’)

>>ylabel (‘Выходной процесс y(t)’)

 

         Гаусс функциясымен тұдырған синусоида болатын импульсті жасау үшін келесі процедура қолданылады:

         y= gauspuls (t, fc, bw)

Бұл процедура бірлік амплитудасы бар айтылған сигналдың мәндерінің векторын тудырады, амплитуданың өзгеру жиілігі fc Гц, ал сигнал жиілігінің ені bw болады; егер де соңғы екі аргумент көрсетілмесе, олар 1000 Гц және 0,5 деп орнатылады.

 

3.3 мысалы:

>> t = 0 : 0.1 : 10;

>> y = 0.75*gauspuls (t-3, 1, 0.5);

>> plot (t,y), grid, set(gca, ‘FontName’, ‘Arial Cyr’, “FontSize’, 16)

>> title (‘Пример применения процедуры GAUSPULS’)

>> xlabel (‘Время (с)’)

>> ylabel (‘Выходной процесс y(t)’)

 

         sin(x), cos(x) процедуралар шекті санды гармоникалардан тұратын тербелістерді құрастырады.

 

3.4 мысалы:

>> t = 0 : 0.01 : 50;

>> y = 0.7*sin (pi * t/5);

>> plot(t,y), grid, set(gca, ‘FontName’, ‘Arial Cyr’, “FontSize’, 16)

>> title (‘Гармонические колебания y = 0.7*sin(pi * t/5’)

>> xlabel (‘Время (с)’)

>> ylabel (‘Выходной процесс y(t)’)

 

         Периоды 2π-ге тең тік бұрышты импульстер тізбегі болатын процесы square процедурасы көмегімен жасалынады:

         y = square (t, duty),

мұнда t уақыт тізбегін көрсететін вектор, duty аргументі оң таңбалы жарты толқынның ұзындығын көрсетеді (толқын периодының проценті ретінде).

 

3.5 мысалы:

>> t = 0 : 0.01 : 50;

 

>> y = 0.7*square (pi*t/5, 40);

>> plot (t,y), grid, set(gca, ‘FontName’, ‘Arial Cyr’, “FontSize’, 16)

>> title (‘Прямоугольные волны y = 0.7*square(pi*t/5, 40’);

>> xlabel (‘Время (с)’)

>> ylabel (‘Выходной процесс y(t)’)

 

         Үш бұрышты тербелістер sawtooth процедурамен жасалынады:

         y= sawtoothh (t, width),

width параметрі сигнал өсетін периодтың бөлігін анықтайды.

 

3.6 мысалы:

>> y = 0.7* sawtooth (pi*t/5, 0.5);

>> plot (t,y), grid, set(gca, ‘FontName’, ‘Arial Cyr’, “FontSize’, 16)

>> title (‘Прямоугольные волны y = 0.7* sawtooth (pi*t/5, 0.5’);

>> xlabel (‘Время (с)’)

>> ylabel (‘Выходной процесс y(t)’)

 

pulstran процедурасы тік бұрышты, үш бұрышты немесе гаусс импульстері тізбегі болатын тербелістерді тудырады:

 y = pulstran (t, d, ‘func’, p1, p2,...)

Мұнда d импульстердің центрі болатын уақыт моменттерінің векторы; func параметрі импульс түрін белгілейді; p1, p2,… параметрлері импульстер параметрлерін белгілейді.  

 

3.7 мысалы:

>.> t = 0 : 0.01 : 50;

>> d = [0 : 50/5 : 50]’;

>> y = 0.7* pulstran (t, d, ‘tripuls’, 5);

>> plo t(t,y), grid, set(gca, ‘FontName’, ‘Arial Cyr’, “FontSize’, 16)

>> title (‘y = 0.7* pulstran (t, d, tripuls, 5’ ));

>>xlabel (‘Время (с)’)

>>ylabel (‘Выходной процесс y(t)’)

 

Тік бұрышты және гаусс импульстерінің тізбегін құрастыру үшін өзіңіз мысалды жазыңыз. 

 

3.2 Фильтрлеудің негізгі құралдары

Кез-келген сызықты динамикалық түйіннің беріліс функциясын бақылап және графикалық түрде көрсету үшін freqs процедурасы қолданылады. Процедураны қолдану:

         h = freqs (b, a, w)

Процедура түйіннің W(s) беріліс функциясы бойынша табылатын жиілік сипаттамасының комплексті мәндерінің h векторын жасайды. Беріліс функция өзінің алымының коэффициенттер векторы b және бөлімінің коэффициенттер векторы a, және  ω жиілік мәндерінің w векторымен анықталады. Егер де w көрсетілмеген болса, жиілік сипаттамасы есептелетін 200 жиілік мәнін процедура өзі таңдайды. Егер де шығудағы айнымалы көрсетілмесе, процедура ағынды графикалық терезеге екі – амплитудалық-жиілік және  фаза-жиілік сипаттамаларының графиктерін шығарады. 

 

3.8 мысалы: Беріліс функция келесі түрде берілген болсын:

W (s) = a/(s2 + 2*ξ*ω0*s + ω02

АЧХ және ФЧХ графиктерін шығарайық.

>> T0 =1; dz =0.05;

>> om0 = 2-pi/T0; A = 1;

>> a1(1) = 1; a1(2) = 2*dz*om0; a1(3) = om0^2; b1(1)=A;

>> freqs (b1,a1)

 

         Алымы коэффициенттер векторы b және  бөлімі коэффициенттер векторы a векторларымен берілген дискретті беріліс функция бойынша дискретті жиілік сипаттаманы алу үшін келесі процедура қолданылады:

         y = freqz (b, a)

 

3.3 Процестерді спектрлік анализдеу

         fft (Fast Fourier Transformation) және ifft (Invers Fast Fourier Transformation) функциялары берілген вектордың тіке және кері Фурье түрлендіруін орындайды:

y = fft ( x, n ); x = ifft ( y, n),

мұнда n – берілген (және алынатын) вектордың элементтер саны.

 

3.9 мысалы:

>> t = 0 : 0.001 :2;

>> x = sin(2*pi*5*t) + cos(2*pi*12*t);          % Кірудегі процесті жасаймыз

>> plot (t, x); grid

>> set (gca, ‘FontName’, ‘Arial Cyr’, ‘Fonsize’, 16);

>> title (‘Входной процесс’);

>> xlabel (‘Время’);

>> ylabel (‘x(t)’)

>> y = fft (x);

>> a = abs (y);

>> plot (a); grid

>> set (gca, ‘FontName’, ‘Arial Cyr’, ‘Fonsize’, 16);

>> title (‘Модуль Фурье-изображения’);

>>xlabel (‘Номер элемента вектора’);

>> ylabel (‘abs(F(x(t)’)

 

         Кері түрлендіруді орындайық:

 

3.10 мысалы:

>> x = ifft (y);

>> plot (t, x); grid

>> set (gca, ‘FontName’, ‘Arial Cyr’, ‘Fonsize’, 16);

>> title (‘Обратное Фурье-преобразование’);

>>xlabel (‘Номер элемента вектора’);

>> ylabel (‘x(t)’)

 

         Фурье бейнесінің мәндер массивін анықтау үшін және оның графигін жиілік өрісінде құру үшін fftshift процедурасы қолданылады.

 

3.11 мысалы:

>> f1 = -500 : 0.5 :500;

>> v = fffshift (y);

>> a = abs (v);

>> plot (f1(970:1030), a(970:1030)); grid

>> set (gca, ‘FontName’, ‘Arial Cyr’, ‘Fonsize’, 16);

>> title (‘Модуль Фурье-изображения’);

>>xlabel (‘Частота (Гц)’);

>> ylabel (‘abs(F(x(t)’)

 

         Спектр графигі бойынша гармоникалардың амплитудалары анықталмайды. Ол үшін Фурье бейнесінің векторын оның элементтер санына бөлу керек. Амплитудалар оң таңба және теріс таңба жиіліктер арасында екі бөлінеді, сондықтан олар сәйкес гармониканың ақиқатты амплитудасынан кем.

 

3.12 мысалы:

>> N = length (y);

>> a = abs (v)/N;

>> plot (f1(970:1030), a(970:1030)); grid

>> set (gca, ‘FontName’, ‘Arial Cyr’, ‘Fonsize’, 16);

>> title (‘Модуль Фурье-изображения’);

>>xlabel (‘Частота (Гц)’);

>> ylabel (‘abs(F(x(t)/N’)

 

         Фильтрлеу әрекеті filter процедурасымен келесі түрде орындалады:

         y = filter (b, a, x),

мұнда x – кірудегі сигналдың берілген векторы; y – фильтрлеу әрекеті себебінен алынған фильтрдің шығудағы сигналының мәндерінің векторы; b –фильтрдің дискретті беріліс функциясының алымының коэффициенттерінің векторы; a - фильтрдің дискретті беріліс функциясының бөлімінің коэффициенттерінің векторы.

Бұл функция берілген b, a, x бойынша y фильтрдің теңдеуі бойынша y векторын тудырады. Дискретті беріліс функциясы бар фильтр теңдеуі рационалды бөлшек түрінде анықталады: 

y(k) = b(1)*x(k) + b(2)*x(k-1) + b(nb+1)*x(k-nb)-

-         a(2)*y(k-1) – a(3)*y(k-3) -… - a(na+1)*y(k-nb),

 мұнда b = [b(1),…,b(nb+1)], a = [1,a(2),…,a(nb+1)].

 

3.13 мысалы:  Периоды T1 = 1 және амплитудасы A1 = 0.75 синусоида түрі бар пайдалы сигналға бірінші түрлендірудің жоғары жиілігі бар синусоида түріндегі периоды T2 = 0.2 және амплитудасы A2 = 5, шуы қосылған болсын, ал өлшеу қателіктері себебінен тағы интенсивтілігі Aш = 5 өлшеуіштің гаусс «ақ шуы» қосылды.  Пайдалы сигнал туралы мәліметтерді алғымыз келеді. Осы сигналды қадамы Ts = 0.001 уақыт моменттеріндегі мәндерінің векторы ретінде құрастырайық. Нәтижесінде келесі өлшенген x(t) сигналын аламыз:

 

>> Ts = 0.001;

>> t =0 : Ts :20;

>> A =0.75; T1 = 1;

>> T2 = 0.2; A2 = 10; eps = pi/4;

>> Ash = 5;

>> x = A1.*sin(2*pi*t./T1) + A2.*sin(2*pi.*t./t2+eps) + …

   Ash*randn(1, length(t));

>> plot (t(10002:end),x(10002:end), grid, set(gca,‘FontName’, …

   ‘ArialCyr’, ‘FontSize’, 16),

>> title(‘Входной процесс’);

>> xlabel (‘Время ( с )’);

>> ylabel (‘X(t)’)

 

          Өлшенген x(t) мәліметтерін өңдеп, пайдалы сигналды алу қажет. Фильтрдың өзінің тербелістерінің периоды пайдалы сигнал периодына тең болуы керек Tф = Е1. Фильтрдан өткеннен кейін алынған сигналдың амплитудасы пайдалы сигналдың амплитудасымен сәйкес болуы үшін, кірудегі сигналды 2ξω02 тұрақты мәнге көбейту қажет. Фильтрді құрастырып, одан жасалынған процесті өткізейік, сәйкестіру үшін бір графикте берілген сигналды да көрсетейік:

 

3.14 мысалы:

>> T1 = 1; Tf = T1; dz = 0.05;

>> Om0=2*pi/Tf; A=1; oms = om0*Ts;

>> a(1)=1+2*dz*oms+oms^2;

>> a(2)=-2*(1 + dz*oms);

>> a(3)= 1;

>> b(1)=A*Ts*Ts*(2*dz*om0^2);

>> Yp=A1*sin(2*pi*t/T1);

>> y=filter(b,a,x);

>> plot(t(1002:end), y(t(1002:end),t(1002:end), Yp(1002:end), grid,…

     set (gca,’ ,‘FontName’,  ‘ArialCyr’, ‘FontSize’, 16),

>> title(‘Процесс на выходе фильтра');

>> xlabel (‘Время ( с )’);

>> ylabel (‘Y(t)’)

 

         Фильтрлеген кезде пайдалы сигналдың фазалық бұзылуын жою үшін екі рет фильтрлеу filtfilt процедурасын қолдануға болады:

 

3.15 мысалы:

>> y = filtfilt (b,a,x)

>> plot(t, y, t, Yp, grid, set (gca, ‘FontName’,  ‘ArialCyr’, ‘FontSize’, 16)

>> title(‘Применение процедуры filtfilt’);

>> xlabel (‘Время ( с )’);

>> ylabel (‘Y(t)’)

 

3.4 Процестерді статистикалық анализдеу

Спектрлік тығыздылық psd процедурасымен анықталады. Процедураны қолдану:

[S,f] = psd (x, nfft, Fmax),

мұнда x – процестің берілген мәндерінің векторы, nfft - fft поцедурасымен өңделетін вектор элементтерінің саны, Fmax = 1/Ts – сигналдың дискреттеу жиілігінің мәні,  S – сигналдың спектрлік тығыздығының мәндерінің векторы, f – алынған спектрлік тығыздық мәндеріне сәйкес жиіліктер мәндерінің векторы. Жалпы кезде соңғы екі вектордың ұзындығы nfft/2 тең.

 

3.16 мысалы:

>> [C,f] = psd (y1, dovg, Fmax);

>> subplot

>> stem (f(1:200), C(1:200)), grid,

>> set (gca, ‘FontName’,  ‘ArialCyr’, ‘FontSize’, 16),

>> title (‘Спектральная плотность');

>> xlabel (‘Частота (Гц)’);

 

Егер де бұл процедураны шығудағы айнымалысын көрсетпей қолдансақ, онда процедураны орындау нәтижесінде спектрлік тығыздықтың жиіліктен тәуелділігінің графигі шығады.

 

3.17 мысалы:

>> psd (y1, dovg, Fmax)

 

Мұнда спектрлік тығыздық мәндері логарифм масштабында децибелмен көрсетіледі

 

xcorr функциялар тобы екі x және y тізбектердің өзара корреляциялық функцияларын есептейді. Қолдану:

c= xcorr (x, y)

- ұзындығы 2N-1 тең өзара корреляциялық функциясының векторын есептейді, берілген  x және y  векторлардың ұзындықтары  N –ге тең. Бұл функцияны x векторымен берілген тізбектің автокорреляциялық функциясын есептеуге де қолданады.

 

 

3.18 мысалы:

>> R = xcorr (y1);

>> tau = -10+Ts : Ts : 10;

>> lt = length (tau);

>> s1r = round (length (R) /2 – lt/2;

>> s2r = round (length (R) /2 + lt/2 -1;

>> plot (tau, R (s1r:s2r), grid);

>> set (gca, ‘FontName’,  ‘ArialCyr’, ‘FontSize’, 16),

>> title (‘АКФ случайного процесса');

>> xlabel (‘Запаздывание (с)’);

 

Біз MatLab жүйесінің келесі SPTool құралын қарастырмадық; оның мүмкіндіктері:  фильтрлеуді жобалау (Filter Designer), фильтр сипаттамаларын қарап шығу (Filter Viewer), спектрді қарап шығу (Spectrum Viewer), сигналдарды іздеп, қарап шығу  (Signal Browser). 

 

4 Сызықты стационарлы жүйелерді зерттеу  (Control Toolbox)

         Бұл пакет сызықты стационарлы автоматты басқару жүйелерін анализдеу және синтездеу процедураларымен жұмыс жасауға мүмкіндік береді.

 

4.1 Үлгілерді енгізу және түрлендіру

         CONTROL  пакетінің ортасына сызықты стационарлы жүйенің үлгісін енгізу үш түрде орындалуы мүмкін – жүйе күйінің кеңістігінің матрицасы түрінде, беріліс функциясының алымы және бөлімінің коэффициенттері ретінде, және жүйенің нөлдері, полюстеры мен беріліс коэффициенттері түрінде.

(Сызықты стационарлы жүйелер атауын орыс тілінде ЛСС - линейные стационарные системы деп қысқартады - ал MatLab ортасында LTI – linear time invariant system – сызықты, уақыт бойынша инвариантты жүйелер).

         LTI-үлгілерін жасайтын кейбір процедуралар:

ss       - жүйенің күй теңдеулерінің берілген матрицалары бойынша күй кеңістігінің үлгісін жасайды;

dss    - жүйенің күй теңдеулері туындылар арқылы шешілмеген болғанда жоғарыдағыдай үлгіні жасайды;

tf       - үлгіні жүйенің беріліс функциясы арқылы жасайды;

zpk   -  үлгіні жүйенің нөлдері, полюстерімен беріліс коэффициенті арқылы жасайды;

filt   - z—1 –ден тәуелді полиномдар түрінде жазылған дискретті беріліс функциясы арқылы үлгіні жасау процедурасы;

set  - объектілердің кейбір өрістеріне (кірістер және шығулар аттарына, жүйе атына, т.б.) мәндерді меншіктейді.

Аталған процедуралар үздіксіз үлгілермен бірге дискретті үлгілерді жасауға мүмкіндік береді  және олар үлгіні бір түрден басқа түрге түрлендіруге  қолданылады.

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]