Алматы энергетика және байланыс институты

Инженерлік кибернетика кафедрасы

 

 

 

 

 

 

 

 

 

 

 

 

 

MATLAB ОРТАСЫНДА ЖҰМЫС ІСТЕУДІҢ НЕГІЗГІ  АМАЛДАРЫ

 

Әдістемелік практикум

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Алматы 2006

ҚҰРАСТЫРУШЫ: Ибраева Л.К. Matlab ортасында жұмыс істеудің негзігі амалдары. Әдістемелік практикум. – Алматы: АЭжБИ, 2006 – 57 б.

 

MatLab (MATrix LABoratory) жүйесі инженерлік және ғылыми есептеулерді жасауға негізделген интерактивті жүйе. Әдістемелік практикум мұғалімдерге, аспиранттарға, студенттерге жүйелерді зерттеуге қолдануға негізделген. Практикумда жүйемен жұмыс жасаудың тек қана негізгі амалдары бейнеленген.  

Практикумның міндеті пайдаланушыларды жүйемен таныстыру болып табылады. Қолданатын пакет бойынша көбірек мәліметтерді алу қажет болса жүйенің өзінің көмек беру жүйесін немесе қосымша әдебиеттерді қолдануға болады.

  Әр бөлікте мысалдар келтірілген. Жүйемен танысқан кезде осы мысалдарды орындағанда әрекет нәтижесі бірден бұйрық терезесінде көрсетіледі. Сондықтан әдістемелік практикумде нәтижелер терезелері келтірілмеген.

 

Без. - 10  , библиогр. -  4  атау.

 

Пікір беруші: техн.ғыл.канд., проф. Хисаров Б.Д.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Алматы энергетика және байланыс институтының 2006 ж. жоспары бойынша басылады.

 

 

 

 

                     © Алматы энергетика және байланыс институты, 2006 ж.

 

 

Мазмұны

 

 

1 MatLab-ты ғылыми калькулятор ретінде қолдану

4

 

  1.1 Бұйрық терезесі

4

 

  1.2 Сандармен жасалатын операциялар

5

 

  1.3 Векторлар мен матрицаларға қолданатын қарапайым  

        операциялар

 

6

 

        1.3.1 Векторларға қолданатын әрекеттер

7

 

        1.3.2 Матрицаларға қолданатын әрекеттер

8

 

   1.4 Қолданбалы сандық математика функциялары

10

 

 1.4.1 Полиномдармен жұмыс жасау

10

 

 1.4.2 Өлшеулер мәліметтерін өңдеу

11

 

        1.4.3 Мәліметтерді аппроксимациялау

12

 

1.4.4    Графиктерді салу

12

 

2 MatLab ортасында бағдарламалау

15

 

3 Сигналдарды цифрлік өңдеу (Signal Processing Toolbox)

19

 

   3.1 Типтік сигналдарды тұрғызу

19

 

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

21

 

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

22

 

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

25

 

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

     (Control Toolbox)

 

26

 

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

26

 

    4.2 Үлгі туралы мәліметтерді шығару

27

 

    4.3. Жүйелерді анализдеу

28

 

    4.4 Ltiview интерактивті шолушы

28

 

5 SimuLink пакетінде жүйелерді үлгілеу

32

 

   5.1 SimuLink пакетінің жалпы сипаттамасы

32

 

   5.2 SimuLink блоктарының (модульдерінің) бейнелеуі

33

 

        5.2.1 Sources  (Сигналдар көздері) бөлігі.

33

 

        5.2.2  Sinks  (Сигналдарды қабылдаушылар) бөлігі

36

 

        5.2.3 Continuous (Үздіксіз элементтер) бөлігі

41

 

        5.2.4 Discontinuous (Үздіксіз емес элементтер) бөлігі

42

 

        5.2.5 Discrete  (Дискретті элементтер) бөлігі

43

 

        5.2.6 Math Operators (Математикалық операциялар) бөлігі

44

 

        5.2.7 Port&Subsystems (Порттар мен ішкі жүйелер)

46

 

        5.2.8 Signal Attributes (Сигналдардың қасиеттері)

46

 

        5.2.9 Signal Routing (Сигналдар бағыттары)

46

 

        5.2.10 User-Defined Functions (Пайдаланушымен анықталған

                   функциялар)

 

48

 

        5.2.11 Additional Extras (Библиотеканың қосымша блоктары)

49

 

   5.3 Блок-диаграммаларды құрудың мысалдары

50

 

Әдебиетттер тізімі

57

 

MatLab (MATrix LABoratory) жүйесі мәліметтер массивтерімен жұмыс істеуге, инженерлік және ғылыми есетпеулерді орындауға негізделген интерактивті жүйе болып табылады.

Бұл жүйенің дамыған матрицалық және комплексті арифметикасы бар. Векторлар, матрицалар және мәліметтер массивтарімен жұмыс істеуге, сингулярлық және спектралдық жіктеуді алуға, алгебралық полиномдармен жұмыс істеуге, сызықты емес теңдеулерді, оптимизациялау есептерді, дифференциалды және айырым теңдеулерді шешуге, әртүрлі графиктерді құруға жүйе мүмкіндік береді. Жүйенің операциондық ортасы пайдаланушыға ыңғайлы, ол шешімдерді математикалық түрде бағдарламалауды қолданбай алуға мүмкіндік береді.

Жүйенің негізгі объектісі төртбұрышты сандық массив болып табылады. Бұл массив комплексті элементтерді  және өлшемін тікелей орнатпай, матрицаларды еңгізуге мүмкіндік береді.

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

Жүйенің негізгі ерекше сипаттамасы – оны өзгертіп, пайдаланушының белгілі есебіне қолданудың жеңілдігі. Пайдаланушы жүйеге кез-келген өзінің бұйрығын, операторын, функциясын оларды бейнелемей еңгізіп, пайдалануына болады. Тек қана оларды .m кеңейтуі бар файлда сақтап қою қажет.

MatLab жүйесінің өзінің бағдарламалау тілі бар (Basic тіліне ұқсас). Кез-келген редакторды қолданып бағдарлама мәтінін өңдеуге болады.

MatLab жүйесінде сигналдармен жұмыс істеудің көп мүмкіншіліктері бар (аналогты және цифрлік фильтрлерді есептеу және жобалау, жиілік, импульсты және өтпелі сипаттамаларды құрастыру, тіке және кері Фурье түрлендірулерін орнату, т.б.). Сондықтан жүйені электронды құрылғыларды жобалағанда қолдануға болады.

MatLab ортасында жұмыс келесі режимдерде орындалады:

-   “калькулятор” режимінде, бұл кезде есептеулер бұйрық терезесінде орындалады;

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

-                        зерттелетін жүйенің үлгісінің графикалық диаграммасын

құрастыруға Simulink пакетін қолдану.

 

1.     MatLab-ты ғылыми калькулятор ретінде қолдану

 

1.1 Бұйрық терезесі

Бағдарламаны жұмысқа қосқанда экранда бұйрық терезесі орнатылады. Бұл жүйенің негізгі терезесі. Осы терезеде клавиатурадан терген бұйрықтар, олардың нәтижелері, бағдарламаның қателері көрінеді. Бұйрықтар >> белгілерден кейін енгізіледі.

Терезенің жоғарғы жағында әдеттегідей меню жолы орнатылған.

 

1.2  Сандармен жасалатын операциялар

Сандарды енгізу әдеттегі бағдарламалау тілдердегі ережелер бойынша орындалады; ондық көрсеткішті орнату үшін е символынан кейін бүтін сан орнатылады  Мысалы:

>> 1.25е-17

Сандардың форматын орнату үшін Файл-Свойства (File-Preferences) менюін қолданамыз.

Қарапайым арифметикалық әрекеттері:

+ қосу

- алу

* көбейту

/ оңнан солға қарай бөлу

\ солдан оңға қарай бөлу

^ дәрежесін табу.

 

Нәтижелерді шығару:

- егер де оператор соңында үтірлі нүкте (‘;’) орнатылмаса, нәтиже бірдей бұйрық терезеде көрсетіледі;

- егер де оператор соңында үтірлі нүкте (‘;’) орнатылса, нәтиже бұйрық терезеде көрсетілмейді;

- егер де операторда меншіктеу символы (=) болмаса, нәтиже мәні жүйенің ans айнымалысына меншіктеледі;

- алынған мәнді ans атымен келесі операторларда қолдануға болады; ans айнымалының мәні келесі меншіктеуі жоқ оператордан кейін өзгереді;

- жалпы кезде нәтижені шығару түрі келесі болады:

                   <айнымалы аты> = <нәтиже>

        

1.1 мысалы (өрнекті еңгізгеннен кейін Enter батырмасын басасыз):

>> 25 + 17;

>> ans*7

ans = 294

 

Айнымалылар аттары аралық есептеулер нәтижелерін сақтау үшін қолданылады. Ол үшін меншіктеу белгісі қолданылады:

<айнымалы аты> = <өрнек> [;]

 

Айнымалалар аттарының ұзындығы 19 белгіден аспауы керек және олар жүйенің функциялары, процедуралары және айнымалылары аттарынан тыс болуы керек. Аттарда үлкен әріппен кішкене әріптер айырылады. Кейбір жүйе айнымалылары: i, j   - комплексті бірлік;    piπ саны;  ans – меншіктеу белгісі жоқ соңғы операцияның нәтижесі.

Кейбір элементарлы функциялары:

sin(z), sinh(z), asin(z), cos(z), cosh(z), acos(z), tan(z), atan(z), exp(z), log(z), log10(z), sqrt(z), abs(z), round(z).

 

Комплексті сандар келесі түрде енгізіледі:

<айнымалы аты> = <нақты бөлігінің мәні> + i (немесе j)* <  жорамал бөлігінің мәні>

         Комплексті сандармен қарапайым амалдар жоғарыда келтірілген операцияларды қолдану жолымен өткізіледі.

 

1.2 мысалы:

>> x=1+2i; y = -3+4i;

>>disp(x+y)

-2.0000+6.0000i

 

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

Көптеген элементарлы математикалық функциялар комплексті аргументтерде де қолданылады және олардың мәндері комплексті шама болады. Сондықтан, мысалы, sqrt функциясы теріс аргумент үшінде түбір мәнін есептейді (басқа бағдарламалау тілдерде бұл шарт орындалмайды), ал abs функциясы аргумент комплексті болған кезде комплексті санның модулін есептейді. MatLab-та тек қана комплексті аргументтерге негізделген функциялары бар:

real(z) – комплекті аргументтің нақты бөлігін көрсетеді;

imag(z) – комплекті аргументтің жорамал бөлігін көрсетеді;

angle(z) – комплексті санның аргументінің мәнін есептейді (– π-ден + π-ге дейін, радиан бірліктерінде).

 

1.3           мысалы:

Бұйрық терезесіне келесіні теріңіз:

>>disp(real(y))

>>disp(imag(y))

>>disp(angle(y))

 

MatLab есептеулерді арнайы векторлар, матрицалар, полиномдармен өткізуге негізделген. Кез-келген айнымалы вектор немесе матрица деп қабылданады.

 

1.3 Векторлар мен матрицаларға қолданатын қарапайым операциялар

Вектордың бастапқы мәндерін клавиатурадан келесі түрде теріп енгізуге болады:

V1 = [1.2  2.3  3.4  4.5]

(вектор компоненттері арасында үтірді қоюға болады).

Ұзын векторды бөліп енгізіп, содан кейін қосындылауға болады: v=[v1  v2].

         Егер де вектор элементтері арифметикалық прогрессияны құрастырса, оны келесі түрде енгізуге болады:

         V = nz : h : kz

(nz – бастапқы мәні, h – қадам, kz – соңғы мәні). Қадам көрсетілмесе оның мәні 1 деп есептеледі.

         Векторды тік жол ретінде енгізу үшін оның элементтері арасында үтірлі нүктені орнату қажет.

 

1.4 мысалы:

Бұйрық терезесіне келесіні енгізіңіз:

>>v1 = [1  2  3]; v2 = [4  5  6];

>>v = [v1 v2]

 

         Матрица элементтерінің мәндері квадратты жақшада жатық жол бойынша бір-бірінен үтірмен немесе бос орынмен бөлініп еңгізіледі, ал жатық жолдар бір бірінен үтірлі нүктемен бөлінеді.

 

1.5 мысалы:

Бұйрық терезесіне келесіні енгізіңіз

>>A = [2  4  5  8  10; 5  6  8  9  7]

 

         1.3.1 Векторларға қолданатын әрекеттер

         Векторларға қолданатын әрекеттердің екі түрі бар: векторлық әрекеттер яғни математикада қолданатын әрекеттері және математикада жоқ элементтерді түрлендіру әрекеттері, вектор элементтерін түрлендіруге негізделген.

Векторларға қолданатын векторлық әрекеттер:

Векторларды қосу және алу: +  және - 

Вектораларды транспонирлеу:  апостроф белгісімен көрсетіледі (мысалы, х').

Векторды санға көбейту: *.

Екі векторды көбейту: * (математика ережелері бойынша орындалады – векторлар өлшемдері бірдей, және вектордың біреуі – жатық жол, басқасы – тік жол болуы керек, кері жағдайда вектордың біреуін транспонирлеу керек).

Векторлық көбейтінді (үш компонентті векторлар үшін): cross (v1 v2)

 

1.6 мысалы:

Бұйрық терезесіне келесіні енгізіңіз

>> x = [1 2 3]; y=[4 5 6];

>> v= x+y

>> z = x – y

>> x’

>> w = x’*y

>> u = x*y’

Вектор элементтерін түрлендіру әрекеттері

MatLab тілінде векторлардың элементтерін бірөлшемді массив ретінде түрлендіретін операциялар бар, олар математикалық операциялар емес. Осындай операциялар ретінде барлық элементарлы математикалық операциялар болады (бірсыпырасы жоғарыда келтірілді). Мысалы, Y = sin(X) өрнегі, Х – белгілі вектор болса, жаңа Y  векторын тудырады, бұл вектордың барлық элементтері Х векторының сәйкес элементтерінің синусына тең болады.

 

1.7 мысалы:

>> x = [-2,-1,0,1,2];

>> y = sin (x)

>> v = exp(x)

 

Осы операциялардан басқа өлшемдері бірдей векторларға қолданатын арнайы операциялар бар, олар кәдімгі арифметикалық белгілермен орындалады:

Вектордың әр элементіне санды қосу (немесе алу): +  және  -

Векторлардың сәйкес элементтерін көбейту: .* (көбейту белгісі алданда - нүкте)

Векторлардың сәйкес элементтерін бөлу: ./ (бөлу белгісі алдында - нүкте)

Векторлардың элементтерінің дәрежесін есептеу: .^ (дәреже белгісі алдында - нүкте)

Бұл операциялар күрделі функциялардың мәнін цикл операцияларын қолданбай табуға мүмкіндік береді.

 

1.8 мысалы:

x  аргумент3 0-ден 10-ға дейін 1 қадамымен өзгергенде

Y = a*exp(-k*x)*sin(x)  функцияның мәндерін келесі операторлар көмегімен табуға болады:

>> a=3; k=0.5;

>> x = 0:1:10;

>> y= a*exp(-k*x).*sin(x)

 

1.3.2 Матрицаларға қолданатын әрекеттер

Матрица элементтерін түрлендіру әрекеттері

Матрицаларға да барлық алгебралық функцияларды қолдануға болады. Әр-бір функция берілген матрицадан жаңа матрицаны жасайды, оның өлшемі бастапқы матрица өлшемімен бірдей болады және әр элементі берілген матрицаның сәйкес элементінің көрсетілген функциясы болады. Мысалы, А матрицасына sin(А) функциясын қолдансақ, алынған матрицаның әр элементі берілген матрица элементтерінің синусы болады.

Сонымен бірге өлшемдері бірдей екі матрицаның сәйкес элементтерін көбейтуге (.* белгісімен), бөлуге (./ белгісімен), дәрежесін табуға (.^ белгісімен) болады.

Математикада жоқ MatLab операциясының тағы біреуі – А матрицаға санды қосу: А + х немесе х + А.

 

1.9 мысалы:

>> A = [1,2,3,4,5; -2,3,1,4,8]

>> B = [1,3,5,-2,1;1,8,-3,-1,2]

>> sin(A)

>> A .*B

>> A./B

>> A.\B

>> A.^B

>> A +2

>> 2 + A

 

         Матрицаларға қолданатын матрицалық әрекеттері

         Бұлар әдетте математикада қолданатын операциялар: қосу, алу, транспонирлеу, матрицаны санға көбейту, матрицаны матрицаға көбейту, матрицаның бүтін дәрежесін табу. Бұл әрекеттер талап ететін шарттар орындалса қолданылады: екі матрицаны қосқанда (алғанда) олардың өлшемдері бірдей, ал, көбейткенде – бірінші матрицаның тік жол сандары екінші матрицаның жатық жол сандарына тең болуы керек.

Берілген А матрицаның кері матрицасын inv(A) бұйрығымен табамыз (А матрицасы квадратты болуы керек, ал оның детерминанты нольге тең болмауы керек). Детерминант det(A) бұйрығымен табылады.

 

1.10 мысалы:

>> A = [1 2 3 4 5; 6 7 8 9 10]

>>A’

>> B = [ 0 -1 -2 – 3 -4; 5 6 7 8 9]

>> A’*B

>> C = A*B’

>> inv(C)

>> inv(ans)             % тексеру үшін жауаптың кері матрицасын табамыз

>> A=[1 2;3 4]

>>A^2                    % матрицаны өзі-өзіне көбейту сияқты

>>A^(-2)                % дәреже теріс болса, кері матрица өзі-өзіне көбейтіледі

(Бұл мысалда % белгісінен кейін орнатылған мәтін – комментарий).

 

MatLab тілінде математикада жоқ  матрицаларды бөлу  әрекеті бар. / - солдан оңға қарай бөлу, \ - оңнан солға қарай бөлу.

В/А әрекеті B*inv(A) әрекетіне сәйкес, оны X*A=B матрицалық теңдеуді шешуге қолдану ыңғайлы, ал A\B әрекеті  inv(A)*B әрекетіне сәйкес, оны A*X=B матрицалық теңдеуді шешуге қолдану ыңғайлы,

 

1.11 мысалы:

Келесі теңдеулер жүйесін шешу қажет болсын:

         X1 + 2X2 + 3X3 = 14

        2X1 +   X2  - 5X3 =  -15

         X1 -    X2  -    X3 =  -4

Шешімі (нәтижелерін экранда көру үшін, өрнектердең кейін үтірлі нүктелер қойылмаған):

>> A = [1 2 3;2  1 -5;1 -1 -1]

>> B = [14; -15; -4]

>> x = A \ B

 

MatLab-та арнайы түрдегі векторлармен матрицаларды құрастыратын функциялар бар. Олардың кейбіреуі:

zeros(m,n) –m*n өлшемді нөлдерден тұратын  матрицаны құрастырады;

ones(m,n)- m*n өлшемді бірліктерден тұратын  матрицаны құрастырады;

eye(m,n)- m*n өлшемді бас диагонал бойынша бірліктер, ал басқа элементтері нөлге тең матрицаны құрастырады;

rand(m,n)- m*n өлшемді элементтері (0,1) аралығында біртекті тараған кездейсоқ шамалардан тұратын матрицаны құрастырады;

randn(m,n)- m*n өлшемді элементтері нормалы заң бойынша тараған кездейсоқ шамалардан тұратын матрицаны құрастырады, нормалы заңның математикалық күтімі нөлге, дисперсиясы 1 тең.

 

1.4  Қолданбалы сандық математика функциялары

1.4.1    Полиномдармен жұмыс жасау

Полином вектор түрінде енгізіледі, вектор элементтері полином коэффициенттері болады:

         P = [an … a2  a1  a0]

         Кейбір функциялар:

conv(P1,P2) – екі полиномды көбейту;

deconv(P1,P2) –P1  полиномды P2 полиномға бөлу;

roots(P) –  берілген полиномның түбірлерін табу:

poly(r) – полиномның түбірлері берілсе, полиномды құрастырады;

polyval(p,x) – х аргументі берілсе, полином мәнін есептейді;

polyder(p) –полиномның туындысын табу.

 

1.12 мысалы:

P(x) = x5 + 8x4 + 31x3 + 80x2 + 94x + 20 полиномның түбірін табайық:

 

>> p= [1,8,31,80,94,20];

>> r =  roots (p)

 

         Кері операциясы – р полиномының коэффициенттерін оның туындыларын белгілейтін r вектор арқылы табу:

 

>> p1 = poly (r)

Алынған вектор жоғарғы коэффициентті көрсетпейді, себебі ол бірге тең деп алынады.

 

х = 2 тең болғанда полином мәнін есептейік:

 

>> y = polyval (p,2)

 

1.4.2    Өлшеулер мәліметтерін өңдеу

MatLab жүйесі векторлық немесе матрицалық түрінде берілген мәліметтерді өңдеуге мүмкіншілік береді:

max(V) – V вектордың максималды элементінің мәнін береді;

min(V) – V вектордың минималды элементінің мәнін береді;

sort(V) – V вектор элементтерін мәндерінің өсуі бойынша реттейді;

sum(V) – V вектордың элементтерінің қосындысын есептейді;

prod(V) – V вектордың элементтерінің көбейтіндісін есептейді;

mean(V) - V вектордың элементтерінің орта мәнін есептейді;

std(V) - V вектордың элементтерінің орта квадрат ауытқуын есептейді;

trapz(x,y) – трапециялар әдісі бойынша интегралдауды орындайды (нүктелер x, y векторларымен беріледі).

 

1.13 мысалы:

>> v = [1, 0.1, 0.5, 0.1, 0.1, 0.4]

>> disp (min(v))

>> disp (mean(v))

>> disp (std(v))

>> disp(sort(v))

>> disp(prod(v))


 

[0, π] интервалында y = sin(x) функцияның интегралын есептейік:


>> x=0: pi/100:pi;

>> y= sin(x);

>> disp (trapz(x,y))

 

Аталған функцияларды матрицаларға қолданғанда әрекеттер матрицаның тік жолдарына өткізіледі.


1.14 мысалы:

Функцияның мәндерінен құрастырылған 3 вектор бар болсын. Қарастырып отырған фунцияларды қолданайық:

 

>> y1 = [5.5 6.3 6.8 8.8 6];

>> y2 = [-1.2  0.5  -0.6  1  0.1];

>> y3 = [3.4  5.6  0  8.4  10.3];

>> A = [y1’,  y2’,  y3’]

>> max (A)

>> mean(А)

>> std (A)

>> [M, n] = max (A)        % Mмаксималды элемент, nсәйкес тік жолдағы

                                              жатық жолдың номері

>> А = [1  2  3; 5  6  0;  -1  2  3]

>> sort(A)

>> det(A)       % матрица детерминантын есептейді

 

         1.4.3 Мәліметтерді аппроксимациялау

Өлшеулер мәліметтерін полиноммен аппроксимациялау үшін polyfit(X,Y,n) функциясы қолданылады; мұнда n – аппроксимациялау полиномның дәрежесі; X,Y – функцияның аргументтерімен мәндерін анықтайтын векторлар; нәтижесінде (n + 1) өлшемі бар полином коэффициентерін анықтайтын вектор алынады.

 

1.15 мысалы:

>> x = [1 2 3 4 5 6 7 8];

>> y = [-1.1  0.2  0.5  0.8  0.7  0.6  0.4  0.1];

>> polyfit(x,y,1)

ans = 0.1143  -0.2393

         Бұл жауап берілген тәуелділікті келесі y(x) = 0.1143x – 0.2393 түзумен жуықтауға болатынын анықтайды. Екінші, үшінші, төртінші дәрежесі бар қисықтармен аппроксимациялау үшін келесіні теріңіз:

>> polyfit(x,y,2)

>> polyfit(x,y,3)

>> polyfit(x,y,4)

 

1.4.4 Графиктерді салу

Графиктерді салуға қолданылатын негізгі функциясы - plot. Бұл функцияны келесі түрде қолданады:

plot(x1,y1,s1,x2,y2,s2.,…)

Мұнда x1,y1 – берілген векторлар, олардың элементтері графиктің бірінші қисықтың аргумент мәндерінің (x1) және функция мәндерінің (y1) массивтері болады;  x2,y2 – графиктің екінші қисығының аргумент және функция мәндерінің массивтері, т.с.; s1,s2 - символдық айнымалылар, оларды көрсетпесе де болады (сызудың типін, түрін анықтайды).

Графиктер бөлек фигура деп аталатын терезеде орнатылады; координаттар сызуларын көрсету үшін plot функциясынан кейін grid функциясын теру қажет.

 

1.16      мысалы: -3π –ден  +3π –ге дейін интервалында π/100 қадамымен

y = 3sin(x+π/3) функцияның графигін салу керек болсын:

 

>> x=-3*pi:pi/100:3*pi;

>> y = 3*sin(x+pi/3);

>> plot(x,y), grid

 

График аты title (‘мәтін’) процедурасы, ал координаттар осьтерінің аттары xlabel (‘мәтін’), ylabel (‘мәтін’) процедуралар көмегімен көрсетіледі.

 

>> x=-3*pi:pi/100:3*pi;

>> y =-3*sin(x+pi/3);

>> plot (x,y), grid

>> title (‘Функция y=3sin(x+π/3)’);

>> xlabel (‘Аргумент x’); ylabel (‘Функция y’)

 

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

 

1.17 мысалы:

>> x = [1 2 3 4 5 6 7 8];

>> y = [-1.1  0.2  0.5  0.8  0.7  0.6  0.4  0.1];

>> P1=polyfit(x,y,1);

>> P2=polyfit(x,y,2);

>> P3=polyfit(x,y,3);

>> P4=polyfit(x,y,4);

>>stem(x,y);

>>hold

>>x=0.5:0.05:8.5;

>>y1=polyval (P1,x);

>>y2=polyval (P2,x);

>>y3=polyval (P3,x);

>>y4=polyval (P4,x);

>>plot(x,y1,x,y2,x,y3,x,y4);

>>grid:

>>title (‘Полиномиальная аппроксимация’);

>>xlabel (‘argument’);

>>ylabe l(‘function’)

Мұнда stem(x,y) процедурасы дискретті функция мәндерін вертикалды сызықтар ретінде көрсетуге қолданылады; x,y – функцияның аргументтері мен мәндерінің векторлары; дискретті функцияның графигін полиномдар графиктерімен бір фигурада көрсету үшін stem процедурасынан кейін hold процедурасы жазылады.

         Функция параметрлік түрде берілген болсада оның графигін салуға болады.

 

1.18      мысалы: y(x) функциясы параметрлік x = 4 e-0.05 t sin (t), y = 0.2 e-0.1 t sin (2t)

формулалармен берілген болсын. t параметрі 0-ден  50-ге дейін  0.1 қадамымен өзгереді деп алайық. Келесі операторларды терейік:

 

>> t = 0 : 0.1 : 50;

>> x = 4*exp(-0.05*t).*sin(t);

>> y = 0.2*exp(-0.1*t).*sin(2*t);

>> plot(x,y)

>> title (‘function x = 4*exp(-0.05*t).*sin(t); y = 0.2*exp(-0.1*t).*sin(2*t)’)

>> grid

 

         Функция графигін салғанда оның аргументтерін көрсетпеуге болады. Бұл кезде аргумент ретінде графигі салынатын вектордың элементінің номері алынады.

        

1.19 мысалы:

>> x= [1 3 2 9 6 8 4 9-6];

>> plot(x)

>> grid

>> title (‘График вектора x')

>> ylabel (‘значения элементов’)

>> xlabel (‘номер элемента’)

 

Векторды тік жолды диаграмма ретінде көрсеткен ыңғайлы (bar функциясы):

 

1.20 мысалы:

>> bar (x)

>> title (‘График вектора x')

>> ylabel (‘значения элементов’)

>> xlabel (‘номер элемента’)

 

2 MatLab ортасында бағдарламалау

MatLab-та калькулятор режимінің көп мүмкіншіліктері болғанымен, көп кемшіліктері де бар. Алдынғы есептеулерді қайталау үшін барлық операторларды қайтадан теру қажет, бір шарт бойынша басқа операторға көшу болмайды.

Сондықтан күрделі есептеулерді бағдарламалау қажет болады. Бағдарлама арнайы редактор тересінде енгізіледі. Ол терезені ашу үшін Файл-Создать-M-файл бұйрығы таңдалынады.

Бағдарламалардың екі түрі бар: басқару бағдарламалар (Script-файлдар) және процедуралар (файл-функциялар). Барлық бағдарламалардың файл аттарының кеңейтілуі .m болады.

Біздер файл-функцияларды қарастырып кетеміз. Олардың бірінші жолы келесі түрде болады:

Function <соңғы шамалардың тізімі> =

                                    <процедура аты> (<кірудегі шамалардың тізімі >)

Script-файлдардың осындай жолы жоқ.

         Файл-функцияларда барлық айнымалылар локалды болып есептеледі, ал Script-файлдарда олар жұмыс ортасын құрастырады (work space), бұл орта жүйемен ағынды жұмыс сеансында қолданатын барлық Script-файлдар үшін ортақ болады.

 

М-файлдарды суреттеу:

- әр оператор бөлек жолда жазылады; оператор соңында үтірлі нүкте (;) символын орнатқан дұрыс (сонда оператор әрекеті бұйрық терезеге шығарылмайды);

- бірнеше операторды үтір немесе үтірлі нүктемен бөліп бір жолда орнатуға

болады;

- ұзын операторды бірнеше жолға енгізу болады, онда алдынғы жол үш нүктемен (...) аяқталуы қажет;

- комментарий жолы % символынан басталады;

- бірінші орындалатын оператордың алдында комментарий жолдары орнатылады, олардан кейін бос жол қалдырып кеткен жөн, комментарий жолдары жүйемен бағдарлама бейнелеуі ретінде қабылданады және бұйрық терезеге help <файл аты> мәтінін еңгізсе комментарий бұйрық терезеге шығарылады;

- бағдарлама мәтінінің аяқталу операторы жоқ;

- айнымалылар бейнеленбейді, олардың өлшемдері қолданған кезде орнатылады;

- айнымалылар аттары тек қана латын әріптерінен және цифрлерден тұрады, әріптен басталады, символдар саны 19-дан кем, үлкен және кіші әріптер айырылады.

 

2.1 мысалы: 

y = f1(x) = a2*ctg(x)*sqrt(sin4(x) – cos4(x) функцияның мәндерін есептейтін бағдарламаны құрастырайық. Ол үшін редактор терезесінде келесі мәтінді тереміз:

function y = f1(x, a)

%Процедура вычисления значения функции

% y = f1(x) = a2*ctg(x)*sqrt(sin(x)^4 – cos(x)^4)

%Обращение y = f1(x,a).

y = (a^2)*cot(x).*sqrt(sin(x).^4 – cos(x).^4);

 

Бұл мәтінді f1.m файлда сақтаймыз.

Бұйрық терезеге келесі бұйрықты енгіземіз:

>> y = f1(1, 0.1)

 

Егер де аргументтің әр түрлі мәндері үшін функция мәндерінің векторын алғымыз келсе, біріншіден аргументтер векторын құрастырамыз:

 

>> z = 0 : 0.3 : 1.8;

Енді процедураны шақырамыз:

>> v = f1 (z,1)

 

Жасалынған процедура туралы мәліметтерді алғымыз келсе келесіні тереміз:

>> help f1

 

2.2 мысалы: 

1.17 мысалдың мәтініне керекті комментариді қосыыз, оны файл-функция ретінде сақтаңыз. Бұл процедура үшін айнымалыларды бұйрық терезесінен беру қажет емес, сондықтан процедураның бірінші жолын function appr деп бейнелейміз. Файлды appr.m атымен сақтаңыз. Бағдарламаны бұйрық терезеден шақырыңыз. Жасалған процедура туралы мәліметерді алу үшін help appr мәтінін теріңіз (егер де комментарий орнатылмаған болса, ештеңе көрсетілмейді).

 

2.3 мысалы: 

2.2 мысалдың процедурасын айнымалылар бұйрық терезеден берілетін болатындай өзгертіңіз.

 

Кейбір стандартты файл-функциялары:

1.  [I, cnt] = quad (‘<функция аты>’, a, b) – квадратуралар әдісімен интегралды

есептеу; мұнда a, b – функцияның өзгеруінің төменгі және жоғарғы шектері;

I – интегралдың есептелген мәні; cnt – функцияны есептеудің саны, функция

М-файлда орнатылады, файл аты <функция аты> деген жерде көрсетіледі;

2. ode23, ode45 – қарапайым дифференциалды теңдеулерді интегралдау:

     [t, y] = ode23 (‘<функция аты>’, tspan,y0,options)

     [t, y] = ode45 (‘<функция аты>’, tspan,y0,options)

мұнда  < функция аты > - f(t,y) мәндері (жүйенің оң жағындағы функциялар)   

есептелінетін М-файлдың аты болатын символдар жолы; y0 – жүйе күйін көрсететін айнымалылардың бастапқы мәндер векторы; t – интегралдау қадамдарына сәйкес аргумент мәндерінің массиві; y – интегралданған айнымалылардың мәндерінен тұратын матрица, оның әр тік жолы күй айнымалыға сәйкес, ал жатық жолы айнымалылардың мәндерінен тұрады; tspan – жатық жол векторы - [t0 tfinal], аргументтің бастапқы және соңғы мәндерін анықтайды; options – көрсетпеуге болатын параметр, интегралдаудың абсолютті және салыстырмалы қателіктерін анықтайды (көрсетпеген кезде 1.0e-6 және 1.0e-3 деп алынады );

3.fmin – бір өлшемді функцияның минимумын табу; келесі түрде қолданылады:   

        Xmin = fmin (‘<функция аты >’, X1, X2)

мұнда  Xminфункцияның X1<X<X2 интервалындағы локалды минимумы;

4. fminsкөп өлшемді функцияның минимумын табу; келесі түрде қолданылады:  

Xmin = fmins (‘<функция аты>’, X0), X0 – аргументтер векторының бастапқы мәні;

5. fzero – бір өлшемді функцияның түбірлерін табу; келесі түрде қолданылады:   

z = fzero (функцияныңаты, x0, t01, trace)

мұнда x0 – аргументтің бастапқы мәні, функцияның нақты түбірі соның аймағында ізделінеді, t01 – түбірді есептеудің берілген салыстырмалы қателігі, trace – аралық мәліметтерді экранға шығару керек болса орнатылады,  z – ізделінген түбірдің мәні;

6. fplot -  бір өлшемді функцияның графигін салу; plot процедурадан өзгешелігі – алдын-ала функция мәндерін есептеу керек; келесі түрде қолданылады:  

fplot(‘<функция аты>, [<интервал>], n)

мұнда  <интервал> - аргументтің төменгі және жоғарғы мәндерін белгілейтін екі саннан тұратын жатық жол векторы, <функция аты> - аргументтер мәндері бойынша функция мәні есептелінетін процедураның мәтіні сақталынатын М-файл, nберілген интервалдың бөліктерінің мәні (көрсетілмесе 25-ке тең); егер де процедураны келесі түрде қолданса

          [x, Y] = fplot(‘<функция аты>, [<интервал>], n),

функция графигі экранда көрсетілмейді, х аргументтерінің векторымен оларға сәйкес Y  функцияның векторы (матрицасы) есептелінеді, бұл кезде графикті құру үшін plot(x,Y) процедурасы қолданылады.

 

2.4 мысалы:

π мәнін [3,4] интервалында y = cos(x) функцияның локалды минимумы ретінде табайық.

>> Xmin = fmin (‘cos’,3,4)

 

2.5 мысалы:

[0,5] аралығында y = (x-1)^2 + 3 функцияның минимумын табайық. Біріншіден файл-функцияны құрастырайық (редактор терзесінде):

 

function y = parab (x)

 y = (x-1).^2 + 3

 plot(x,y)

 

Мәтінді parab.m файлда сақтайық. Сонан соң бұйрық терезеде келесіні терейік:

>> x= -5:1:5

>> y=parab(x)

>> xmin = fmin (‘parab’, 0,5)

 

Келесі мысалдарда қарапайым дифренциалды теңдеулерді интегралдау әдістерін орындайтын процедураларды қолдануы қарастырылған.

 

2.6 мысалы: Бастапқы y(0)= 1 шарты  бар

                   y’ = -y,

дифференциалды теңдеуін шешу қажет болсын.

Жүйенің редактор терезесін ашып, оған келесі мәтінді терейік:

     function dy=f1(t,y)

     dy=-y

Файлды f1.m атымен сақтаймыз.

Бұйрық терезеде келесіні тереміз:

>>[t,y] = ode45('f1',[0 5],1)

Мұнда теңдеуді шешу интервалы [0 5], айнымалының бастапқы мәні 1 деп орнатылды, options параметрі көрсетілмеді.

Жүйе бұйрық терезеге айнымалылардың сандық мәндерін орнатады. Графикті көру үшін келесіні теріңіз:

>>plot(t, y)

 

2.7 мысалы: Келесі жүйені қарастырайық

                  

 

Жүйені шешу үшін келесі мәтіні бар М-файлды құрастырамыз:

function dy = rigid(t,y)
dy = zeros(3,1);    % вектор-столбец
dy(1) = y(2) * y(3);
dy(2) = -y(1) * y(3);
dy(3) = -0.51 * y(1) * y(2);

Файлды сақтаймыз.

Жүйенің [0 12] аралықта [0 1 1] бастапқы шарттар векторымен шешімін табамыз:

>> [t,y] = ode45('rigid',[0 12],[0 1 1]);

Шешімді графикте көрсетеміз:

         >> plot(t,y)

3 Сигналдарды цифрлік өңдеу (Signal Processing Toolbox)

Signal Processing Toolbox пакеті цифрлы және аналогты фильтрлерді олардың амплитудалық және фаза-жиілік сипаттамалары бойынша жобалауға (белгілі сандық сипаттамаларын есептеуге), типтік уақыт бойынша өзгеретін сигналдар тізбектерін тудыруға және оларды жобаланған фильтрлермен өңдеуге мүмкіндік береді. Фурье, Гильберт түрлендірулерін және статистикалық анализді өткізетін процедуралар пакет құрамына кіреді және осы құрылғы көмегімен сигналдардың корреляциялық функцияларын, спектрлік   тығыздығын есептеуге, фильтрлердің параметрлерін бағалауға болады.

 

3.1 Типтік сигналдарды тұрғызу

         Тік төртбұрышты түрі бар жалғыз импульсті тудыру үшін rectpuls процедурасы қолданылады. Процедураны қолдану:

y = rectpuls (t, w).

Мұнда y – ені w-ге тең бірлік амплитудасы бар, t = 0 арқылы орталықтанған сигналдың мәндерінің векторы. Егер де  w көрсетілмеген болса, оның мәні 1-ге тең деп алынады.

 

3.1 мысалы:

>> t = 0 : 0.1 : 10;

>> y = 0.75*rectpuls (t-3,2) + 0.5*rectpuls (t-8, 0.4)…

     + 1.35*rectpuls (t-5, 0.8);

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

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

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

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

 

         Бірлік амплитудасы бар үш бұрышты импульсты өңдеу үшін tripuls процедурасы қолданылады, қолдану түрі:

         y = tripuls (t, w, s)

         y, t, w  аргументтердің мағынасы жоғарыда айтылғандай. s аргументы (-1 < s <1) үшбұрыштың бұрышын белгілейді. Егер де s = 0 немесе көрсетілмеген болса, үш бұрышты импульс симметриялық болады

 

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)’)

 

         Периоды -ге тең тік бұрышты импульстер тізбегі болатын процесы 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  - объектілердің кейбір өрістеріне (кірістер және шығулар аттарына, жүйе атына, т.б.) мәндерді меншіктейді.

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

 

4.1 мысалы:

>> v = tf ([1  4], [1  2   100])

>> v = filt([1  4], [1  2   100])

 

Келесі ss, dss, tf, zpk процедуралары үлгілерді бір түрден басқа түрге түрлендіруге мүмкіндік береді.

MatLab ортасында автоматты басқару жүйенің сүлбасын бағдарлама ретінде түйіндердің үлгілерін енгізіп және оларды қосып құрастыруға болады. Бұл есепті шешетін процедураларды қарастырмаймыз, себебі бөлек блоктардан жүйені құрастыру басқа құрал – интерактивті  Simulink пакетінің көмегімен жеңіл орындалады. Бұл пакет келесі бөлікте қарастырылады. Бырақ жүйе туралы мәліметтерді алу және үлгіні бір түрден басқа түрге түрлендіруін келесі мысалда көреміз.

 

4.2 мысалы: [2] әдебиетте торпеданың қозғалысының автоматты реттеу жүйесінің үлгісі келесі беріліс функциясымен сипатталған:

 

>> sys = tf ([25 250 2500], [100 1050 10550 8000 5000])

 

         4.2 Үлгі туралы мәліметерді шығару

Үлгінің кейбір сипаттамаларын (күй кеңістігін бейнелейтін матрицалар мен векторларды,  беріліс функцияның алымы мен бөлімінің коэффициенттерін, т.б.) алу үшін келесі процедуралар қолданылады: tfdata (беріліс функцияның алымы мен бөлімін алуға),  ssdata (күй кеңістігіндегі теңдеулердің матрицаларының мәндерін алуға), zpkdata (жүйенің полюстерімен нөлдерінің векторларының мәндерін алуға).

 

4.3 мысалы:

>>  [nom, den] = tfdata (sys, ’v’)

>>  sssys = ss (sys)

>> [A, B, C, D] = ssdata (sssys)

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

 

         get процедурасы үлгінің толық сипаттамасын (кірулер мен шығулар аттарын, ескертулерді, дискреттеу қадамын, т.б.) алуға мүмкіндік береді.

 

4.4 мысалы:

>> get (sys)

        

Жүйенің кірулері мен шығуларының санын size процедураны қолданып анықтауға болады:

 

 

4.5 мысалы:

>> size (sys)

>> size (ssys)

 

         4.3 Жүйелерді анализдеу

CONTROL  пакетінің ортасында автоматты басқару жүйелерді әр түрлі көз қарас жағынан (біріншіден жүйенің әр түрлі кірудегі әсерлерге уақыт және жиілік кеңістіктерінде реакциясын) талдауға бағытталған поцедуралар жиынтығы бар:

impulse – кірудегі бірлік импульстң әсерге реакциясын табу;

step        - кірудегі бірлік сатылы әсерге реакциясын табу;

initial    - еркін бастапқы шарт кезінде жүйенің қозғалысын табу;

lsim      - өзінің уақыт бойынша мәндерінің векторы ретінде берілетін кірудегі еркін әсерге жүйенің реакциясын табу.

Аталған процедуралардан басқа: сыртқы гармоникалық әсерлерге жүйенің реакциясын жиілік кеңістікте көрсету (bode, nyquist, nichols, sigma); жүйенің кейбір сипаттамаларын есептейтін және нөлдер мен полюстерін графикалық көрсететін процедуралар (pole, zpkdata, gram, damp, pzmap, rlocus).

 

4.6 мысалы:

>> step (sys)

>> impulse (sys)

>> bode (sys)

>> nyquist (sys); grid

>> sigma (sys)

 

4.7 мысалы:

>> pole (sys)

>> sysyz = zpk (sys)

>> [z, p, k] = zpkdata (sysz, ‘v’)

 

4.4 Ltiview интерактивті шолушы

Алдыңғы бөлікте айтылып кеткен графиктерді интерактивті LTI Viewer шолушы (қарап шығушы) көмегімен салуға болады, жәнеде бірден бірнеше жүйеге. Бұл шолушы сызықты стационарлы жүйелерді талдауға негізделген графикалық пайдаланушының интерфейсі (Тағы да ескертейік: сызықты стационарлы жүйелер атауын орыс тілінде ЛСС деп қысқартады - линейные стационарные системы, ал MatLab ортасында LTI – linear time invariant system – сызықты, уақыт бойынша инвариантты жүйелер).

Шолушымен жұмыс істеу алдында MatLab-тың жұмыс ортасына анализденетін жұйелердің үлгілерін орнату керек. Біздер 4.1 және 4.2  мысалдарда келтірілген үлгілерді бұйрық терезеде терейік:

>> v = tf ([1  4], [1  2   100])

>> sys = tf ([25 250 2500], [100 1050 10550 8000 5000])

 

 Енді шолушыны жұмысқа қосу үшін бұйрық терезеде ltiview бұйрығын еңгіземіз, экранда LTI Viewer терезесі пайда болады.

Шолушы ортасына анализденетін LTI-объектілерді еңгізу қажет. Оны келесі тәртіппен жасаймыз.

File менюден Import бұйрығын таңдаймыз. Жаңа Import System Data терезесі ашылады (4.1 - сурет).

 

 

4.1 – сурет. Үлгіні таңдау терезесі

 

Осы терезеде жұмыс ортада орналасқан үлгілердің тізімі болады (бізде v және sys үлгілеріміз). Осы тізімнен керекті үлгіні таңдап (мысалы, sys), Ok батырмасын басамыз. Бірдей графикалық терезеде таңдалынған жүйенің бірлік сатылы әсерге реакциясы көрінеді. 

Басқа жолмен тікелей үлгіні LTI Viewer терезесіне орнату үшін бұйрық терезеге келесіні енгізуге болады:

>> ltiview ('step', sys)

Үлгілер тізімінен бірнешеуін таңдау үшін әдеттегідей Shift немесе Ctrl батырмасын басып отырамыз.

Басқа әсерлерді зерттеу үшін Edit-Plot Configuration немесе контекстік менюден Plot Types бұйрығын таңдаймыз. Plot Type тізімі келесі элементтерден тұрады: Step, Impulse, Bode, Bode Magnitude, Nyquist, Nichols, Singular Value, PoleZero, I/O Pole/Zero.

График терезесінде контекстік меню арқылы процестің сипаттамаларын өзгертуге болады: Characteristics-Peak Response – амплитуданың максималды мәнін көрсетеді, Characteristics-Setting Time – процестің реттелу уақытын белгілейді (4.2 - сурет), Characteristics-Rise Timeпроцестің өсуінің басталу уақыты, Characteristics- Steady State - процестің тұрақтану уақытын белгілейді.

 

 

4.2 – сурет. Жүйе реакциясы графигінің параметрлерін орнату

Графикке тышқан батырмасымен бассаңыз, графикте нүктелер белгіленіп, қасында нүктенің координаталары көрсетіледі (уақыт, амплитуда, т.б.). Осы контекстік меню арқылы графиктің қасиеттерін (Properties бұйрығы)  таңдаймыз немесе графикке торды орнатамыз (Grid). Орнатылған белгілерді алып тастау үшін аталған бұйрықтар қайтадан таңдалынады.

File менюдегі Print to Figure бұйрығы таңдалынса, график бөлек терезеде пайда болады. Осы терезеден графиктің копиясын басқа редакторларға жасауға болады (терезедегі Edit-Copy бұйрығын таңдап). Print бұйрығы графикті қағазға басуға мүмкіндік береді.

Edit – Line Styles (Сызулардың түрлері мен қасиеттері) бұйрығы көмегімен графиктер сызуларының бояуын, түрін, қалыңдығын орнатуға болады; ол үшін керекті объектіні таңдап, қажетті параметрді орнатамыз.

File менюдегі New Viewer (Жаңа шолушыны ашу) бұйрығы таңдалынса қосымша тағы бір шолушының терезесі ашылады, бұл терезеде басқа керекті графиктерді салуға болады.

File менюдегі Export  (LTI-объектіні экспорттау) бұйрығы таңдалынса LTI Viewer Export  терезесі пайда болады; бұл терезе көмегімен қолданылған LTI-объектілерді  (аттары  төменде тізімде орнатылған) MAT-файлға (Export to Disk батырмасы) немесе жұмыс ортаға (Export to Workspace батырмасы) жазуға болады.

File менюдегі Toolbox Preferences немесе Edit - Viewer Preferences  бұйрықтары көмегімен шолушының қасиеттерін өзгертуге болады.

 

         5 SimuLink пакетінде жүйелерді үлгілеу

5.1 SimuLink пакетінің жалпы сипаттамасы

         SimuLink пакеті динамикалық жүйелердің жүріс-тұрысын зерттеуге қолданылады. Стандартты элементарлы түйіндердің қосылуының сұлбаларын графикалық түрде жинап, зерттелетін жүйелердің сипаттамалары диалогты режімде енгізіледі. Нәтижесінде зерттелетін жүйенің үлгісі құрастырылады, ол үлгі S-модель деп аталады. Үлгілер .mdl кеңейтілуі бар файлдарда сақталады. S-модельді құрастыру үшін SimuLink библиотекасының блоктары қолданылады.

         SimuLink блоктарының библиотекасы визуалды объектілер жиынтығы болады. Осы объектілерді, кубиктерді қолданғандай қолданып, кез-келген конструкцияны құруға болады.

Кез-келген блок үшін бірнеше копиясын алып, оларды жеке қолдануға болады. Әр блок үшін өзінің параметрлерін жеке орнатуға болады (мысалы, кірістерінің санын, өлшемін, атын, т.б.).

Блоктарды бір бірімен байланыстыруына да ешқандай шектеулер қойылмайды. Қойылатын шектеулер SimuLink талаптарынан тәуелді емес, әдетте, олар үлгінің жұмысының логикасымен байланысты.

 

         Пакет жұмысқа келесі жолмен қосылады:  MatLab жұмысқа қосылғаннан кейін, File-New-Model меню таңдалынады. Сол кезде  Untitled атауы бар бос терезесі ашылады. Бұл терезеде S-модель орналасады. View-Library Browser менюды таңдап немесе инструменттер панелінде Library Browser батырмасын басып SimuLink библиотекасының құрамын ашамыз (мұнда библиотеканың негізгі бөліктері көрсетілген). Басқа жолмен де осы нәтижеге жетуге болады: MatLab-тің негізгі терезесіндегі инструменттер панелінде Library Browser батырмасын басып, библиотека терезесінің менюінен File-New-Model жолын таңдайсыз.

Керекті блоктар библиотекасының сәйкес блоктарынан таңдалынып, мышка көмегімен жасалынатын үлгінің терезесіне көшіріледі.  Блоктар сызулармен қосындыланады, ол сызуларды мышкамен саламыз (кірістегі порттан шығудағы портқа карай және кері бағыттада). Блок-сұлбаларын құрастырғанда, объектілермен барлық операциялар Drag-and-Drop технологиясында негізделген (мысалы, белгілеу, копиялау, орнын өзгерту, жою, өлшемдерін өзгерту, блок параметрлерін орнату, қосу сызуларын орнату немесе жою,т.б.).

         Үлгілер алгоритмдерінің блок-схемалары жүйе жұмысының маңызды бейнелеуіне сәйкес болады. Кез-келген S-модельдің иерархты құрамы болуы мүмкін, басқа сөзбен айтқанда, үлгі бірнеше деңгейлі болуы мүмкін. Үлгілеу кезінде жүйенің процестерін бақылауға мүмкіншілік бар. Ол үшін SimuLink библиотекасының құрамындағы арнайы терезелер қолданылады.

 

5.2 SimuLink блоктарының (модульдерінің) бейнелеуі

SimuLink визуалды үлгілеудің құрылғысы. Оның библиотекасы визуалды объектілер жиынтығы болады.

SimuLink библиотекасының құрамына кіретін әр блоктың ең кемінде бір күйіне келтіру параметрі болады. Параметрдің мәнін орнатып (немесе ұсынылған тізімнен, менюден таңдап) пайдаланушы қолданған блоктың функциясын жөндеуіне болады. Параметрлерді күйіне келтіру терезесін ашу үшін оның суретіне мышкамен екі рет басу керек. Параметрлерін өзгерту үшін алдынан блокты үлгінің блок-диаграмма терезесіне көшіріп алу керек. 

Барлық блоктардың параметрін күйге келтіру терезелерінің құрамдары ұқсас және блоктың қысқаша сипаттамасынан, енгізу (немесе таңдау) өрісінен және 4 батырмалардан тұрады:

- Apply — қолдану;

- Revert — параметрдің алдынғы мәнін қайтару;

- Help —html форматтағы қөмек файлды шақыру;

- Close — күйге келтіру терезесін жабу.

         Параметрлердің өзгертілген мәндері Apply батырмасы басылғаннан кейін қабылданады. Үлгіні жұмысқа жаңа параметрлермен қосу үшін параметрлер терезесін жаппауға болады.

Пайдаланушы жұмысын ыңғайландыру үшін библиотека бірнеше бөлікке бөлінген. SimuLink библиотекасының негізгі бөліктерін қарастырайық.

 

5.2.1 Sources  (Сигналдар көздері) бөлігі.

Бұл бөліктің блоктары үлгінің жұмысын басқаратын сигналдарды жасауға негізделген. Сигналдар көзі болатын блоктардың жалғыз ғана шығуы бар және кіру порттары жоқ. Басқа блоктар сияқты бұл бөліктің де блоктарының параметрлері пайдаланушымен күйге келтіріледі. Тек қана Clock блогынын жұмысы компьютердің аппараттық таймерінде негізделген.

Сонымен, кірудегі шамалар немесе сигналдар көздері болып келесі блоктар қолданылады:

а) Constant - тұрақты мәнді (скаляр, вектор немесе матрицаны) құрастырады;

б) Signal Generator - еркін түрі бар үздіксіз сигналды жасайды.

    Блоктың  параметрлері:

- Wave form  - периодты процестің бір түрін таңдауға мүмкіндік береді: sine – синусоидалды толқындар, square – төртбұрышты толқындар, sawtooth – 

үшбұрышты толқындар, random – кездейсоқ тербелістер;

- Amplitude – тербелістердің амплитудаларының мәндерін анықтайды;

- Frequency – тербеліс жиілігін анықтайды;

- Units – жиілікті өлшеу бірлігін таңдайды: Hertz (Герц) немесе Rad/Sec

  (секунда сайын радиандар);

в) Step - берілген параметрлері бар бірлік басқару сигналды жасауын қамтиды. Сигнал үлгінің кез-келген жерінде қолданылады. Блоктың 3 күйге келтірілетін параметрі бар:

- Step time (Уақыт қадамы) — сигнал ұзындығын анықтайды, параметрдің бастапқы мәні 1-ге тең; 

- Initial value (Бастапқы мәні) — уақыттың бастапқы моментінде сигнал амплитудасының мәнін анықтайды, басында 0-ге тең болады;

- Final value (Соңғы мәні) — үлгілеу қадамы аяқталғандағы сигнал амплитудасының мәнін анықтайды, басында 1-ге тең болады;

г) Ramp - сызықты өсетін (кемитін) сигналды жасайды.

Блоктың келесі параметрлері бар:

- Slope – түзу сызықтың  уақыт осіне қатысты еңкейуі;

- Start time - өсетін сигналдың әрекетінің басталу уақыты;

- Initial output – әрекеті басталған кездегі сигнал мәні;

д) Sine Wave - гармоникалық тербелістердің генераторы.

Блоктың келесідей параметрлері бар:

- Amplitude – синусоида түріндегі сигналдың амплитудасын анықтайды;

- Frequency (rad/sec) – тербелістердің жиілігін береді;

- Phase (rad) – бастапқы фазаны радиандар бірлігінде орнатады;

- Sample time – синусоидалық сигнал мәндеріне сәйкес уақыт дискретасын

 анықтайды.

Бұл блоктың Signal Generator блогынан айырмашылығы келесіде: 1) осы блокта кез келген бастапқы фазаны орнатуға болады; 2) бұл блокта герц бірлігінде жиілік орнатылмайды;

е) Discrete Pulse Generator - дискртетті импульсті сигналдар генераторы.

Блок төртбұрышты импульсті тізбегін тудырады. Күйге келтірілетін параметрлер келесі:

- Amplitude – сигнал амплитудасы (төртбұрыш импульстің биіктігі);

- Periodбүтін сандармен (уақыт дискреттерінде) есептелінетін сигнал периоды;  

- Pulse width  - импульс ені (уақыт дискреттерінде);

- Phase delay – t = 0 тең уақытына сәйкес сигнал кідіру мәні (уақыт дискреттерінде);

- Sample time - үлгі уақытының өзгеру қадамы.

Параметр мәндерінің таңдауын Sample time шамадан бастаған жөн. Қадамның шамасын константамен немесе есептелінетін өрнекпен беруге болады. Есептелінген мән бүтін болмаса, бүтін санға дөңгелектенеді. Сол сияқты амплитуда мәні де есептелуі мүмкін, бірақ бұл кезде шама дөңгелектенбейді;

ж) Pulse Generator блогы Discrete Pulse Generator блогының функцияларын орындайды, тек төртбұрышты импульстердің параметрлері басқа жолмен беріледі:

- Period – импульстердің периоды;

- Duty cycle (% of period) – төртбұрышты импульстің ұзындығы (периодтың %);

- Amplitude – импульс амплитудасы (биіктігі);

- Start time – импульстердің біреуінің бастапқы уақыт моменті;

з) Chirp Signal — өзгеріс жиілігі бар  гармоникалық тербелістер генераторы.

Chirp Signal бірлік амплитудасы және айнымалы жиілігі бар синусоидтық сигналды тудырады, тербеліс жиіліктері уақыт бойынша сызықты заңмен өзгереді. Сондықтан блоктың келесі параметрлері бар:

- Initial frequency (Hz) – t = 0 болғандағы жиіліктің бастапқы мәні (герц бірлігінде);

- Target time (secs)басқа (нөлден үлкен) уақыт моменті (секундамен өлшенеді);

- Frequency at target time  (Hz) – осы екінші уақыт моментіндегі жиіліктің мәні;

и) Clock - үздіксіз уақыттан тәуелді сигналдың көзі;

к)  Digital clock - дискретті уақыттан тәуелді сигналды жасайды.

Бұл блоктың жалғыз ғана параметрі бар:

- Sample time – үлгі уақытының өзгеру қадамы.

Қадам Discrete Pulse Generator блогындағыдай беріледі. Егер де қадам шамасы өрнекпен берілген болса, алынған мән үлгілеу интервалының бәрін де қолданылады. Digital Clock блогының ерекшелігі келесіде болады: ол қадам шамасын анықтаумен бірге, үлгілеу уақыты біткен шартты тексеру үшін үлгі уақытының жаңа шамасын есептейді. Үлгі уақытының кезекті шамасы алдыңғы уақыт пен қадам шамасының қосындысы ретінде есептелінеді;

л)  Random Number - амплитудасы нормал заңмен тараған кездейсоқ шама болатын дискретті сигналдарды құрастырады.

Блоктың төрт күйге келтірілетін параметрі бар:

- Mean және Variance - нормал заңның параметрлері болып табылады (орта мәні мен дисперсия);

- Initial seed - кездейсоқ шамалар тізбегін тудыру процесінің бастапқы мәнін көрсетеді. Егер де бұл параметр мәні тұрақты болса, генератор кездейсоқ шамалардың қайта-қайта бір тізбегін тудырады;

- Sample time  - басқа блоктардағыдай қолданылады;

м)  Uniform Random Number - амплитудалары берілген интервалда біртекті заңмен тараған кездейсоқ шама болатын дискретті сигналдарды тудырады.

Блоктың параметрлері:

- Initial seed және Sample time  параметрлері Random Number блогындағыдай;

- Minimum және Maximum - кездейсоқ шамалардың таратылу диапазонын

  белгілейді;

н)  Band-Limited White Noise - процесті жиілігі шектелген “ақ шу” ретінде тудырады. 

Блок параметрлері:

- Noise power - “ақ шудың” қуаттылығының мәні;

- Sample time – уақыт дискретін анықтайды (процестің жиілігінің жоғарғы мәнін анықтайды);

- Seed – кездейсоқ шаманың генераторы базасының бастапқы мәнін анықтайды;

о) Repeating Sequence блогының екі параметрі бар:

- Time values – шығу айнымалының мәндері берілген уақыт мәндерінің

векторы;

- Output values – бірінші векторда көрсетілген уақыт моментерінде қабылданатын шығу айнымалының сәйкес мәндерінің векторы.

  Бұл блок Time values векторының соңғы мәнімен оның бірінші элементі арасындағы айырмашылығына тең периоды бар тербелістерді тудыруды қамтиды.

п) Ground блогы S-үлгінің басқа блоктарына бір жағдай себебінен қосылмай қалған кірудегі порттарды бекітіп қоюға пайдалынады. Бұл блоктарды қолдану мақсаты - MATLAB интерпретатордың S-үлгіде қосылмаған портттары бар екені туралы ескертулерін жою үшін. 

Келесі екі блоктың басқалардан өзгешелігі бұрын SimuLink немесе MatLab-тың басқа құрылғы көмегімен табылған мәндерді қолдануда;

р) From File - МАТ-файлда сақталынған мәндерді үлгіге еңгізуге мүмкіндік береді.

From File блогы күйге келтіру параметр ретінде МАТ-файл атын қолданады. Осы файлдан керекті мәліметтер оқылады. Егер де тек файл аты көрсетілсе, файл ашық папкілерде ізделінеді. Қажет болса, файлға қол жеткізудің толық жолын көрсетуге болады. Күйге келтіру терезесі жабылғаннан кейін файл аты блок суретінде көрсетіледі (Sinks бөлікте То File блогы бар, мұнда үлгілеу нәтижелері МАТ-файлға жазылады).

МАТ-файлдағы мәндер құбылмалы жатық жол сандары бар (бұл сан тіркелген айнымалы санымен анықталады) көпөлшемді массив болады. Бірінші жолдың элементтері үлгілеу уақыттың тізбектелген мәндері болады, ал басқа жолдардағы элементтер – айнымалылардың сәйкес мәндері болады;

с) From Workspace - MatLab жұмыс ортасынан үлгіге мәндерді енгізуді қамтамасыздандырады.  

Блоктың жалғыз құрамды күйге келтіру параметрі бар. Бұл параметр қолданатын мәліметтердің реттелген тізімі болады, квадратты жақшада көрсетіледі. Тізімнің ең кемінде екі элементі болуы керек, оның біріншісі tout аты бар үлгі уақытының мәндерінің векторы. Тізімнің басқа  элементтері жұмыс ортадан енгізілетін мәндерінің векторлары. Әр вектордың ұзындығы  tout вектордың ұзындығына тең болуы керек. Әдетте, тізім элементтер ретінде То Workspace (Sinks бөліктегі) блогы көмегімен MatLab жұмыс ортасына орнатылған шамалар қолданылады.

 

5.2.2  Sinks  (Сигналдарды қабылдаушылар) бөлігі

Бұл бөліктің құрамындағы блоктар функционалдық міндеттерімен айырылады. Оларды үш түрге бөлуге болады:

- үлгілеу кезінде “қарап шығатын” терезелер ретінде қолданылатын блоктар: Scope блогы – бейнелеуі төменде келтірілген; XYGraph блогы – төртбұрышты координаттар жүйесінде екіөлшемді графиктерді салуға негізделген; Display блогы – шамалардың сандық мәндерін көрсетуге негізделген;

- өзара немесе шығудағы үлгілеу нәтижелерін сақтауға негізделген блоктар: То File блогы; То Workspace блогы;

- үлгілеуді басқаратын блок - Stop Simulation.

Енді әр блоктың қолдану ерекшелігін қарастырайық:

а) Scope блогы үлгілеу кезінде жүйенің сипаттамаларының динамикасын көріп отыруға мүмкіндік береді.  Осы блокпен жасалынатын “қарап шығатын” терезе өлшеу аспаптың экраны сияқты. Scope блогының терезесін ол блок-диаграммаға орнатылғаннан кейін ашуға болады. Терезенің өлшемдерін мышка көрсеткішін қолданып өзгертуге болады.

Өлшеу шкаласының ординаттар осі бойынша бақыланатын шаманың мәндері, ал абсцисса осі бойынша – үлгілеу уақыт моменттері белгіленеді. Автоматты түрде ординат осіне [-5; 5] диапазоны, ал уақыт өсіне - [0; 10] диапазоны қолданылады.

Scope блогының кірісіне векторлық шаманы да беруге болады. Бұл кезде терезеде вектордың әр элементіне оның өзгеру динамикасын көрсететін бөлек қисық құрылады. Олар бір-бірінен бояуымен айырылады. Бір кезде Scope терезесінде 30 қисық орнатылуы мүмкін.

Scope терезесінің параметрлерін басқаратын меню панелі бар, онда 7 батырма орнатылған:

1 - графиктің осьтерінің масштабын өзгерту;

2 - абсцисса осі бойынша масштабты өзгерту;

3 - ордината осі бойынша масштабты өзгерту;

4 - осьтердің оптималды масштабын автоматты түрде орнату;

5 – орнатылған ось масштабтарын сақтап қою;

6 - Scope блогының параметрлерін күйге келтіру диалогты терезені шақыру;

7 - Scope терезесінің құрамын қағазға басу.

1 ...3 батырмалары альтернативті болады, яғни уақыттың әр моментінде тек қана біреуі басылады.

Таңдалынған осьтің масштабын өзгерту үшін келесі әрекеттер жасалынады:

- масштабты өзгертетін батырманың біреуін басу;

- жаңа масштабта көрсетілетін график бөлігіне мышка көрсеткішін орнату;

- мышка батырмасын басу (бір рет!).

Бірінші басу масштабты төрт есе үлкейтеді, содан кейінгі әр басу масштабты екі есе үлкейтеді.

6 батырманы басқанда, Properties: Scope терезесі ашылады; оның екі бөлігі бар:

- Axes (осьтер) - график осьтерінің параметрлерін орнатуға негізделген;

- Setting (орнатулар) – Scope блогының қосымша параметрлерінің мәндерін еңгізуге қолданылады.

Терезенің төменгі жағында келесі батырмалар бар: Apply (Қолдану); Revert (Бастапқы мәндерін қайтару); Help (HTML форматындағы көмекті шақыру); Close (Жабу).

Axes бөлігінде Default limits (Осьтер диапазондары) өрісі бар және белгілеп қосылатын өріс Hide tick label (Остердің белгілеуін көрсетпеу).

Default limits ординаталар осінің өрісінде жоғарғы (Yтах) және төменгі (Ymin} шектері және абциссалар осінің көрсетілетін үлгілеу уақыттың максималды мәні (Time range) орнатылады.

Уақыт осі туралы келесі түсіндіруді айтып кеткен жөн. Егер де берілген үлгілеу интервалының шамасы Time range  мәнінен үлкен болмаса (сонда барлық процесс  Scope терезесіне сыяды), онда график астына Time offset жолында ноль мәні шығарылады.

Егер де берілген үлгілеу интервалының шамасы Time range  мәнінен үлкен болса, онда тек қана Тm - п x (Time range) шамаға тең уақыт кесіндісі көрсетіледі (мұнда Тm үлгілеу интервалының ұзындығы,  п — бүтін сан). Бұл кезде Тime offset жолында көрсетілмеген интервал шамасы орнатылады (ұзындығы п x(Time range) тең). Мысалы, Time range мәні 7 -ге тең, үлгілеу интервалының ұзындығы 16 уақыт бірліктеріне тең болса, Scope терезесінде үлгілеу процестің уақыт бірлігінің соңғы 2 бірлігіндегі графигі көрсетіледі, ал график астындағы жолда келесі болады: Time offset: 14.

Белгілеп қосылатын Hide tick label өрісі Scope терезесіндегі графиктің түрін өзгертуге мүмкіндік береді. Егер өріс қосылып тұрса, график өсьтері көрсетілмейді де график терезесінің барлық аймағын толтырады.

Орнатылған параметрлерді сақтау үшін Properties терезесінің төмен жағындағы Apply батырмасын басу қажет.

Setting бөлігінде келесі өрістері бар:

- General өрісі көрсетілетін шамалардың (жүйе сипатамалары мен үлгілеу уақыты) өлшеу дискреттерін таңдауға мүмкіндек береді.

Жүйе сипатамалары мен үлгілеу уақытының өлшеу дискреттері бөлек орнатылады. Таңдауды ашылатын меню көмегімен орнатады. Ол менюдің екі пункті бар:

- Decimation — жүйе сипаттамаларының  өлшеу дискреттерін орнатады;

         - Sample time — үлгілеу уақытының өлшеу дискреттерін орнатады.

Керекті мәндерді енгізу үшін менюдің оң жағындағы редакциялау жолы қолданылады. Жүйе өзі өлшенетін сипаттамалар үшін 1-ді, ал үлгілеу уақыт үшін 0-ді орнатады. Бұл мәндердің мағынасы: бақыланатын сипаттаманың мәндері үлгілеу қадамының әр қайсысында өлшенеді, ал үлгілеу уақыты үздіксіз деп есептелінеді. Егер де Decimation параметрін, мысалы, 3 деп орнатсақ, онда зерттелетін сипаттама үлгілеудің 3 қадамынан кейін анықталады. Decimation параметрдің мәндері тек бүтін сан болады. Үлгілеу уақыттың өлшеу дискретасы үлгілеу қадамын анықтайды. Автоматты түрде ол 0,02-ге тең. Дискретті жүйелер үшін қадам шамасы оң таңбалы константа немесе есептелінетін өрнек ретінде берілуі мүмкін. Үлгілеу уақыттың өзгеру дискретасы  Scope терезеге мәліметтерді шығару аяқталу уақытын белгілейді: егер де кезекті интервал терезе сыртында бітетін болса, ол үшін мәліметтер көрсетілмейді.

Ескерту.  Sample time параметрі SimuLink блоктарының барлығында бар. Әр блок үшін бұл параметр бөлек орнатылады. Егер де блок бір функцияны есептейтін болса, Sample time параметрі есептеудің дискретасын анықтайды. Сондықтан, үлгі жұмысы тиімді болуы үшін байланысқан болктар үшін бұл параметрдің орнатуын келісу қажет.

- Data history өрісі терезеде көрсетілетін мәліметтердің максималды көлемі мен сақтау әдісін орнатуға мүмкіндік береді.

Сақталынатын мәліметтер көлемі (Limit rows to last) редакциялау жолында енгізіледі. Сақтау әдісі белгілеп қойылатын Save data to workspace өрісі арқылы көрсетіледі: егер де бұл өріс белгіленсе, Scope терезесінде көрсетілетін мәліметтер MatLab жұмыс аймағында матрица түрінде сақталынады (құрамы  МАТ-файл құрамына сәйкес). Матрица аты редакциялау жолында көрсетіледі (автоматты түрде – ScopeData болады).

Блок-диаграммада Scope блогының қолдану әдісін өзгерту үшін Floating Scope белгілеп қосылатын өрісі негізделген. Өріс белгіленсе Scope блогының кірісі көрсетілмейді және ол басқа блоктармен байланысқан болса, байланыстар үзіліп қалады;

б) XYGraph блогы да көріп шығу блоктарының бірі.

Блок үлгіде қолданатын шамалардың графиктерін құруға негізделген. Блоктың екі кірісі бар: біріншісі аргументті енгізуге, ал екіншісі – функция мәндерін еңгізуге негізделген.  

XYGraph терезесі үлгіні жұмысқа қосқанда бірден ашылады. Блоктың өзінің менюі бар, ол 4 бөліктен тұрады:

- File бөлігі файлдармен стандартты әрекеттерді жасауға және графиктерді қағазға басып шығарудың параметрлерін орнатуға мүмкіндік береді;

- Edit бөлігі жалғыз ғана— Copy Figure – бұйрықтан тұрады, бұл бұйрық XYGraph терезенің құрамын алмасу буферге копиялайды;

- Window және Help бөліктерінің құрамдары MatLab терезесінің сәйкес менюлерінің құрамымен бірдей.

XYGraph блоктың келесідей орнататын параметрлері бар:

- график осьтерінің диапазондары (X-min, Х-тах - абсциссалар осі үшін және Y-min, Y-max - ординаталар осі үшін);

- үлгілеу уақытының қадамы (Sample time), автоматты түрде оның мәні 1-ге тең, қадам шамасы үлгінің қадамына тең деген сөз (немесе алдыңғы блоктың

  осындай параметрінің мәніне.

в) Display блогы үлгіде қолданатын шамалардың сандық мәндерін экранға шығаруға негізделген. Блоктың 4 параметрі бар: 

- Format - мәндерді шығару форматын орнатады; форматтың келесі 5 түрі  бар (short, long, short_e, long_e, bank), ашылатын меню арқылы таңдалынады. Бұл форматтар MatLab-тың бұйрық терезесінде қолданылатын форматтарға

  сәйкес.

Келесі екі параметр Scope блогының сәйкес параметрлері сияқты:

- Decimation — Display терезесіне мәндерді шығару периодын анықтайды;

- Floating display қосу өрісі блок-диаграммада Display блокты қолдану әдісін қөрсетеді.

- Sample Time өрісі үлгілеу уақыт қадамының шамасын, яғни Display терезеге мәліметтердің шығару дискретін белгілейді.

Display блогы скалярлы және векторлы шамаларды шығаруға қолданылады. Егер де көрсетілетін шама вектор болса, блоктың бастапқы  форматы өздігінен өзгереді. Формат өзгергенін блоктың төменгі оң жағында пайда болатын қара үшбұрышты белгі көрсетеді.  Вектордың әр элементі үшін мини-терезе жасалынады, бірақ олар көріну үшін терезе бейнесін үлкейту керек. Үлкейту үшін мышка көрсеткішін блок бұрышына орнатып (курсор түрі өзгереді), мышканы басып отырып блоктың бейнесін созу керек. Вектордың барлық элементтері көрінгеннен кейін қара үшбұрыш жоғалады;

г) То File блогы Sources бөлігіндегі  From File блогымен бірге қолданылады.

Бұл блок МАТ-файлға мәліметтерді жазуға мүмкіндік береді. Блоктың келесідей параметрлері бар:

- File name - МАТ-файл аты (бағдарлама өзі untitled.mat атты береді, оны  таңдаған атқа өзгертуге болады, файлға жетудің толық маршрутын көрсетуге

болады), осы ат блок бейнесінде көрініп тұрады;  

- Variable name - файлда жазылған мәліметтерге қол жеткізу үшін (мысалы, оларды көру немесе MATLAB-тың бұйрық терезесінде өзгерту үшін)  қолданылатын айнымалы аты, бағдарлама қолданатын стандартты ат – ans;

- Decimation - мәліметтерді файлға жазудың дискретасы, Decimation=1  болған кезде жазу үлгілеудің әр қадамында орындалады. Параметр тек қана бүтін мәндерді қабылдайды;

- Sample Time - осы блок үшін үлгілеу қадамының шамасы;

д) То Workspace блогы да  Sources бөлігіндегі From Workspace блогымен бірге жұмыс жасайды.

Үлгілеу процесінде алынған мәліметтерді MatLab-тың жұмыс ортасында сақтау үшін осы блок қолданылады. Мәліметтер матрица түрінде сақталынады, оның құрамы МАТ-файлда сақталынған мәліметтердің құрамынан келесідей айырылады:

- сақталынатын шамалардың мәндері тік жолдарда емес, жатық жолдарда орнатылады;

- үлгілеу уақытының мәндері тіркелмейді.

Блоктың 4 қалпына келтірілетін параметрлері бар: 

- Variable name - жұмыс ортада мәліметтердің сақталынатын айнымалы аты (жүйе өзі Simout атын қолданады);

- Maximum number of rows (Жолдардың максималды саны) - үлгілеу қадамдардың мәліметтер тіркелетін рұқсат етілген саны (жүйе  inf  константамен белгілейді, яғни үлгілеу интервалының барлығында мәліметтерді тіркеу керек деген сөз);

- Decimation - мәліметтерді тіркеудің дискретасы;

- Sample time - үлгілеу уақыттың қадам шамасы (өзгеру дискретасы).

Соңғы екі параметрдің мағынасы То File блогының сәйкес параметрлер мағынасымен бірдей;

е) Terminator блогы S-үлгінің басқа блоктарына бір жағдай себебінен қосылмай қалған шығудағы порттарды өшіріп тастауға қолданылады (мысалы, үлгіні өңдеу процесі бітпеген кезде).

Бұл блоктарды қолдану мақсаты - MATLAB интерпретатордың S-үлгіде қосылмаған потттар бар екені туралы ескертулерін жою үшін;

ж) Out (Шығудағы порт) -үлгінің ішкі жүйелер арасындағы байланыстарды орнатады.

з) Stop Simulation - үлгілеуді басқаратын блок. Бұл блок үлгілеуді шарт бойынша тоқтату мүмкіндігін береді. Егер блок кірісіне ноль емес сигнал түссе, блок жұмысқа қосылады. 

 

5.2.3 Continuous (Үздіксіз элементтер) бөлігі

         Бұл бөліктің блоктары сызықты үздіксіз жүйелерді бейнелеуге қолданылады:

а) Transfer Fen – беріліс функциясын беріп сызықты түйінді анықтау.

Блоктың  параметрлер терезесінде вектор түрінде (квадратты жақшада) беріліс функцияның коэффициенттері енгізіледі:

- Numerator өрісіне беріліс функцияның алымының коэффициенттері;

- Denominator өрісіне беріліс функцияның бөлімінің коэффициенттері.

б) State-Space – жүйе күй кеңістігінің төрт матрицасын беріп түйінді анықтау.

         Блоктың параметрлерін орнату  алдынғы функцияныкіндей;

в) Zero-Pole – түйіннің полюстері мен нөлдерінің және беріліс коэффициенттерінің мәндерінің векторларын беріп түйінді анықтау;

г) Derivative – кірудегі сигналдың уақыт бойынша туындысын (du/dt) есептеу  (идеалды дифференциалдау түйін);

д) Integrator – үздіксіз уақыт сумматоры (идеалды интегралдау түйіні).

         Автоматты басқару теориясымен таныс пайдаланушылар келтірілген түйін-блоктардың пайдалануын жеңіл түсінеді. Тек қана Integrator блогын қарастырып кетейік.

Integrator блогы кірудегі сигналдың «өмір уақытын» есептейді және Discrete-Time Integrator сияқты үлгіленетін жүйенің (немесе оның ішкі жүйелерінің) уақыт бойынша сипаттамаларын анықтауға қолданылады.

Блок параметрлер терезесі алдында қарастырылған Discrete-Time Integrator блогының параметрлер терезесіне сәйкес. Айырмашылығы тек қана соңғы параметрде: қосындылау дискретасы орнына бұл кезде есептеу дәлдігі көрсетіледі (Absolute tolerance) ;

е) Transport Delay блогы сигналды үлгілеу уақыттың берілген қадамдар санына (бүтін емес болуы мүмкін) кідіртуге мүмкіндік береді.

Блокты қалпына келтіру келесі үш параметрлермен орындалады:

- Time delay – сигналдың кідіретін үлгілеу уақыттың берілген қадамдар саны; сандық түрде немесе есептелетін өрнек түрінде беріледі;

- Initial input - блок жұмысқа қосылған кездегі кірудегі сигналдың амплитудасының мәні (жүйе басында 0 деп орнатады); 

- Initial buffer size – кідірген сигналды сақтауға MATLAB жұмыс ортасында бөлінетін берілген жады көлемі (байт бірліктерімен анықталады); параметр мәні 8-ге есе болуы керек (жүйе 1024 деп орнатады);

ж) Variable Transport Delay блогы сырттан басқарылатын кідіру шамасын беруге негізделген. Сол үшін блоктың қосымша порты бар. Оған берілетін сигнал блоктың негізгі кірісіне берілетін мәліметтік сигналдың  кідіруінің ұзындығын анықтайды.

Бұл блоктың да үш параметрі бар:

- Maximum delay (Максималды кідіру),

- Initial input;

- Buffer size.

Соңғы екі параметрдің міндеттері Transport delay блоктың сәйкес параметрлерімен бердей. Maximum delay параметрі мәліметтік сигналдың кідіруінің максималды рұқсат етілген шамасын анықтайды. Егер де басқару сигналмен анықталатын кідіру мәні осы мәнді асып кетсе, онда ол еріксіз Maximum delay шамаға тең болып орнатылады. Оның мәні үлгілеу уақыттың қадамдар санымен өлшенеді, бөлшек болуы мүмкін, сан ретінде немесе есептелетін өрнекпен берілуі болады.

 

5.2.4 Discontinuous (Үздіксіз емес элементтер) бөлігі

Бөлік құрамында:

а) Relay блогы кәдімгі реле сияқты жұмыс жасайды: егер де кірістегі сигнал шек мәнінен артып кетсе, блок шығуында «рұқсат ететін» сигнал пайда болады.

Блоктың 4 параметрі бар:

- Switch on point (Қосу нүктесі) – реле «қосылатын» шектеу мәнде анықтайды; 

- Switch off point (сөндіру нүктесі) -  реле «сөнетін» шартын орындайтын сигнал деңгейін белгілейді;

- Outputwhen on (қосылған жағдайда шығу) - «рұқсат ететін» сигналдың амплитудасын анықтайды; 

- Outputwhen off (сөнген жағдайда шығу) - реле «сөну» жағдайда болғанда оның шығуындағы сигнал деңгейі.

Барлық параметрлердің мәндері сандық константалар немесе есептелінетін өрнектер түрінде орнатылады;

б) Dead Zone (Мертвая зона) – белгілі диапазонда орнатылған кірудегі сигналдың мәнін нөлмен ауыстырады;

в) Hit Crossing (Обнаружено пересечение) кірудегі сигнал берілген мәннен өткендегі уақытты белгілейді, сол кезде блок шығуында бірлік сигнал туады.

Hit Crossing блогы S-үлгінің жұмысының логикасын басқаруға ыңғайлы болып табылады. Блоктың үш параметрі бар:

- Hit crossing offset – қандай мәннен өткенді белгілеу керек екенін анықтайды;

- Hit crossing direction мәннен өту бағытын анықтайды, бұл параметр ашылатын меню арқылы орнатылады, менюдІң келесі пункттері бар: rising (өсу), falling (кемиу),either (екі бағытта);

- Show output port (шығу портты көрсету) – блокты қолдану форматын орнатады.

Hit crossing offset және Hit crossing direction параметрлермен берілетін шарттар бірдей орындалса, блок шығуында бірлік импульс жасалынады. Оның ұзындығы Hit crossing блогының алдындағы блоктың Sample time параметрінің мәнімен анықталады. Егер де бұл параметр жоқ болса, Hit crossing блогының шығуындағы бірлік сигнал осы блок келесі рет жұмысқа қосылғанша сақталады.

 

5.2.5 Discrete  (Дискретті элементтер) бөлігі

Бұл бөлікке дискретті жүйелердің жҮріс-тұрысын бейнелеуге үлгіде қолданылатын блоктары кіреді. Осындай жүйелердің екі негізгі түрі бар: дискретті уақыты бар жүйелер және дискретті күйлері бар жүйелер. Бұл бөліктің блоктары жүйелердің осындай екі түрінде үлгілеуге мүмкіндік береді.

Бөлік келесі  блоктардан тұрады.

а) Unit Delay - сигналды кешіктіру блогы.

Блок кірудегі сигналды берілген периодтар санына (үлгілеу уақыт қадамдарына) кешіктіруді қамтамасыздандырады. Блок параметрлері келесідей:

- Initial condition - сигналдың бастапқы мәні яғни блок қолданыла бастағанда сигнал амплитудасының мәні; ол сандық константа немесе есептелінетін өрнек  түрінде беріледі

-  Sample time (кідірудің шамасы) - блок кірісіне түскен сигналдың мәні сақталынатын үлгі уақытының қадамдар санын белгілейді, алдыҢғы параметр сияқты кез-келген түрде анықталады, бырақ параметр мәні оң таңбалы болуЫ  керек; 

б) Discrete-Time Integrator - уақыттың дискретті сумматоры (счетчигі).

Блок кірістегі сигналдың түсу арасындағы уақыттарын қосындылайды. Имитациялық үлгінің өзінің немесе бөлек компоненттерінің жұмысының логикасын басқаруға қолданылуы мүмкін. Мысалы, кейбір ішкі жүйенің жұмысының қосынды ұзындығы үлгінің жұмысының аяқталуының шарты болуы мүмкін.

Блоктың келесі параметрлері бар:

- Integrator method - қолданылатын интегралдау әдісі; ашылатын меню көмегімен пайдаланушы келесі үш әдістің (Эйлер тіке әдісі, Эйлен кері әдісі, трапециялар әдісі) біреуін қолдануына болады; 

- External reset - қосымша басқару сигналды қосындылау; External reset параметрі келесі мәндерді қабылдайды: none - қосымша басқару сигнал   қолданылмайды; rising - басқару үшін өсетін сигнал қолданылады; falling –басқару үшін кемитін сигнал қолданылады; either - блок жұмысына басқару сигналдың амплитудасының кез келген өзгеруі әсер етеді. 

- Initial condition source - кірістегі сигналдың бастапқы мәнін сырттан орнату.  

Соңғы екі параметрді таңдау ашылатын менюден орнатылады.

Initial condition source параметрі келесі екі мәннің біреуін қабылдайды:

internal – сумматордың  өзінің бастапқы мәнді орнатуы қолданылады; external –бастапқы мән сырттан орнатылады.

Егер де осы екі параметрдің мәндері қосымша кіріс сигналдарын талап етсе, блоктың графикалық бейнесінде қосымша кіру порттары пайда болады  (блок параметрлерін орнату терезеде  Apply батырмасын басқаннан кейін).

- Initial condition - сумматордың бастапқы мәні сандық константа немесе есептелінетін өрнек түрінде редакциялау жолда еНгізіледі; 

- Limit output - қосылатын өріс (сумматордың шығу мәнін шектеу) келесі 4 параметр қолданылатынын не қолданылмайтынын анықтайды;

- уақыттың жоғарғы шектеу мәні (Upper saturation limit); автоматты түрде  -

шектелмеген (inf);

- уақыттың төменгі шектеу мәні (Lower saturation limit); автоматты түрде  параметр мәні -inf;

- қаныққан портты көрсету (Show saturation port);

- күй портын көрсету (Show state port).

Егер де Limit output өрісі белгіленген болса, сумматор мәні жоғарғы не төменгі шектен өткен кезде блоктың қосымша шығуларында (saturation port және state port) бірлік сигнал туады. Бұл сигналды S-үлгінің жұмысын басқаруға қолдану үшін Show saturation port және Show state port өрістері қосылып тұрулары керек (сол кезде блоктың графикалық бейнесінде порттардың белгілері пайда болады). State port порттың ерекшелігі: одан шыққан сигнал тек қана алгебралық циклды үзуге немесе үлгінің ішкі жүйелеренің жұмысын келістіруге қолданылады;

в) Zero-Order Hold – нөл ретті экстраполятор;

г) First-Order Hold — бірінші ретті экстраполятор;

д) Discrete State-Space — жүйе күйін құрастыратын блок;

Кірістегі сигналға Z-түрлендіруді қолданатын блоктар:  

е) Discrete Filter;

ж) Discrete Transfer Fen;

з) Discrete Zero-Pole;

е) Memory блогының мүмкіншіліктері аз, ол кірудегі сигналды үлгілеу уақыттың бір қадамына кідіртеді. Блоктың екі параметрі бар:

- Initial condition (Бастапқы күй) – блок жұмысқа қосылған кездегі кірудегі сигналдың амплитудасын анықтайды; көбінесе бұл мәнді нөлге теңестірген жөн;

- Inherit sample time (уақыт қадамын қабылдау) – сигнал кідірту қадамының шамасын таңдау: егер де параметр белгіленбесе, үлгі уақыттың 0.1 бірлігіне тең минималды қадам қабылданады; егер де параметр белгіленсе, қадам  шамасы Memory блогының алдындағы блоктың Sample time мәнімен анықталады.

 

5.2.6 Math Operators (Математикалық операциялар) бөлігі

Бұл бөліктегі блоктарды олардың міндеті бойынша бірнеше топқа бөлуге болады.

Бірінші топқа элементарлы математикалық функцияларды іске асыратын блоктар кіреді. Олар келесі:

а) Abs блогы кірудегі сигналдың абсолютиі мәнін береді (бұл блоктың параметрлері жоқ);

б) Trigonometric Function блогы кірудегі сигналды тригонометриялық функциялар көмегімен түрлендіреді; қажетті функцияны таңдау блок параметрлері терезесінде ашылатын меню көмегімен орындалады (бұл терезе блок үлгінің блок-диаграммасына орнатылғаннан кейін ашылады) ;

в) Math Function блогы кірудегі сигналды түрлендіруге элементарлы тригонометриялық емес (экспонентаны, натуралды және ондық логарифмды есептеу, дәрежені, түбірді табу, т.б.) функцияларды қолдануға мүмкіндік береді, керекті функция ашылатын менюден таңдалынады;

г) Rounding Function блоктың кірудегі сигналдың амплитудасының мәнін дөңгелектеуге негізделген әртүрлі функциялары бар; керек әдіс ашылатын менюден таңдалынады;

д) MinMax блогы кірудегі вектордың минималды және максималды элементін табуды қамтамасыздандырады. Іздеу шарты блок параметрлері терезесінде беріледі. Екінші параметр – блоктың кірістерінің саны.

Таңдалынған функцияның аты блоктың графикалық бейнесінде көрсетіледі;

е) Product блогы кірістегі бірнеше сигналдардың (шамалардың) көбейтіндісін немесе бөлігін табуға мүмкіндік береді. Блоктың параметрлері ретінде кіру сигналдарының саны және жасалынатын операция көрсетіледі. Бұл параметрлердің берілуі Sum блогының параметрлерін беруге ұқсас, көбейту операцияны көрсетуге «*» белгісі, ал бөлу операция үшін - «/» белгісі қолданылады.

Егер де параметр ретінде «1» орнатсақ, кірудегі вектордың элементтерінің көбейтіндісі есептелінеді (бұл кезде блок бейнесінде Р символы орнатылады).

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

ж) Logical Operator блогы негізгі логикалық операциялар жиынтығынан тұрады: AND («И» немесе логикалық көбейту операциясы), ОR («ИЛИ» - логикалық қосу), NAND («И-НЕ»), NOR («ИЛИ-НЕ»), XOR (модуль 2 бойынша қосу), NOТ (логикалық мойындамау операциясы). Қажетті функция ашылатын менюден таңдалынады, функцияның аты блок бейнесінде көрсетіледі.

Блоктың тағы бір параметрі – логикалық операцияның аргументтерінің саны яғни блоктың кіру порттарының саны (Number of input ports). Оның мәні натуралды сан болуы керек, редакциялау жолда енгізіледі. Максималды кірістер саны шектелмеген.

з) Relational Operator блогы екі кірістегі сигнал арасындағы келесі қатынас опеацияларды орындайды: >, <, >, <, = = (тождестволық), != (тең емес). Белгілі функция ашылатын менюден таңдалынады, операцияның белгісі блок бейнесінде көрсетіледі;

и) Combinatorial Logic блогы кірудегі сигналды берілген ақиқаттық кестеге сәйкес түрлендіреді. Блок көмегімен кез-келген құрылғының немесе жүйенің жұмысының логикасын «кіріс-шығыс» деңгейінде түрлендіруге болады. Жалғыз ғана қойылатын талап: кірудегі мәліметтер логикалық шама ретінде көрсетілуі керек. Combinatorial Logic блогын шектелген детерминирленген автоматтың үлгісі деп есептеуге болады. Осындай автомат үшін кірудегі сигналдың барлық мүмкін болатын мәндері белгілі және олардың саны шектелген. Кез-келген шығудағы мән белгілі кірудегі әсерге сәйкес болады. Блок кірісіне скаляр сигнал мен бірге векторлық сигналда түсуіне болады. Скаляр жалғыз логикалық шама, ал вектор – олардың жиыны деп есептеледі. Сонымен бірге кірудегі сигналдың нольден тыс мәні «ақиқат» мәнге сәйкес болады.

Блоктың жалғыз қалпына келтіретін параметрі бар - Truth table (ақиқат кесте), ол автоматтың шығудағы мүмкін болатын мәндерінің тізімі болады. Ақиқат кестені бергенде келесі екі ереже орындалуы керек:

- кесте жатық жолдарының саны 2n – ге тең, мұнда п – кірудегі сигналдың элементтер саны (өлшемі);

- кесте кірістері берілген деп есептелінеді.

Мысалы, Combinatorial Logic кірісіне n = 2 векторлық сигнал беріледі, онда Truth table параметрі төрт элементтен тұратын тізім болады, мысалы, келесідей: [0;1;0;1]. Сонымен, Truth table параметрі тек қана шығудағы сигнал мәндерін бейнелейді. Шығудағы сигналдың өлшемін және олардың мәндерін пайдаланушы өзі S-үлгі жұмысының логикасына қарай анықтайды. Кез-келген нөлден тыс мән Combinatorial Logic блогында «ақиқат» деп есептелінеді (кірудегі сигнал болсын, шығудағы сигнал болсын). Пайда болған шығудағы сигнал кез-келген қарап шығатын терезеде көрсетілуі немесе S-үлгінің басқа блоктарына берілуі болады.

 

5.2.7 Port&Subsystems (Порттар мен ішкі жүйелер) бөлігі

а) In және Out блоктар үлгінің ішкі жүйелер арасындағы байланыстарды орнатады;

б) Subsystem блогы ішкі жүйені жасауға негізделген дайын блок;

Ішкі жүйе дегеніміз – төменгі деңгейдегі S-үлгі, оның өзінің бір неше деңгейдегі ішкі жүйелері болуы мүмкін.

в) Enable - Рұқсат ету;

г) Trigger - бұл жағдайда сөздің тікелей аудармасы – ілгешек  – мағнасы қолданылады.

 

5.2.8 Signal Attributes (Сигналдардың қасиеттері)

а) IC (Initial Condition – бастапқы жағдай) кірудегі сигналдың бастапқы күйін орнатуға негізделген. Жүйенің осы күйде болатын уақыты үлгілеудің қадам ұзындығына тең. Блоктың қалыпына келтіретін параметрі - Initial Value (Блокка кірген кездегі сигнал шамасы болады;

б) Width (Өлшем) блогы оның кірісіне түсетін сигнал өлшемін есептейді. Есептелген мән блок бейнесінде көрсетіледі. Блоктың параметрлері жоқ.

 

5.2.9 Signal Routing (Сигналдар бағыттары)

Бұл блокта сигнал беру бағытын анықтайтын немесе «ауыстырып қосқыш» блоктар орнатылған. Олардың саны төртеу:

а) Switch - ауыстырып қосқыш.

Switch блогының үш кірісі бар: екі мәліметтік (1-ші және 3-ші) және бір басқару (2-ші). Блоктың жұмысының логикасы келесіде. Егер де екінші кіріске түсетін сигналдың амплитудасы берілген шек мәннен кіші болмаса, онда блок шығысына сигнал бірінші  кірісінен, кері жағыдайда үшінші кірісінен түседі. Блоктың жалғыз - Threshold (Шек) параметрі бар. Ол сандық константа немесе есептелінетін өрнек түрінде берілуі болады. Switch блогының жұмысқа қосылуының периоды оның басқаратын кірісіне қосылған блоктың Sample time параметрінің мәнімен анықталады.

Сигнал бағыты өзгергенде, блок бейнесіндегі сурет өзгермейтінін еске алыңыз.

б) Manual Switch - Қолмен ауыстырып қосқыш.

Manual Switch блогының қалыпқа келтіретін параметрлері жоқ, бұл блок екі кірістегі порттың біреуін «қолмен» таңдауға мүмкіндік береді. Бағытты өзгерту үшін екі рет блок бейнесіне мышка көрсеткішімен басу қажет (әрине, блок үлгі терезесінде орнатылуы керек) түседі

в) Multiport Switch - Көп кірісі бар ауыстырып қосқыш.

Multiport Switch блогы мәліметтік кірістерге түскен сигналды шығуға тасымалдауға мүмкіндік береді. Коммутацияланатын кіріс номері басқару кіріске түсетін сигнал мәніне тең. Егер де бұл мән бөлшек болса, ол арифметика заңы бойынша дөңгелектенеді. Тек қана екі кезде өзгеше: егер де басқару сигналының мәні 1-ден кем болса, ол 1-ге тең деп алынады және басқару сигналының мәні мәліметтік кірістер санынан үлкен болса, ол ең үлкен номерге тең деп алынады (кірістер жоғарыдан төменге қарай номерленеді).

Блоктың жалғыз реттелетін мәліметтік кірістер санын анықтайтын –

- Number of inputs (Кірістер саны) - параметрі бар. Параметр мәні сандық константа немесе есептелінетін өрнек түрінде орнатылады.

         Келесі үш блоктары бірге қолданылады, олар мәліметтерді тасымалдау міндетімен бірге оларды үлгілеу интервалында сақтауды қамтамасыздандырады.

г) Data Store Memory - Мәліметтердің жадысы;

д) Data Store Read - Мәліметтерді оқып алу;

е) Data Store Write  - Мәліметтерді жазу.

         Келесі екі блок S-үлгінің ішкі жүйелерінің жұмысын логикалық басқаруға негізделген:

ж) Mux блогы кірудегі шамаларды бір сызықты векторға ұйымдастырады.

Кірудегі шамалар скалярлар немесе векторлар болуы мүмкін. Нәтижеде алынатын вектордың өлшемі блоктың кіру порттарына түсетін элементтердің сандарының қосындысына тең. Mux блогының жалғыз –

Number of inputs (Кіріс саны) параметрі бар. 

з) Demux блогының функциялары Mux блогының функцияларына кері: бұл блок кірудегі векторды берілген компоненттер санына бөледі. Бұл блоктада жалғыз Number of outputs (Шығу саны) параметрі бар.

Кірудегі вектор өлшемімен блок шығуларының саны әртүрлі болуы мүмкін, сондықтан шығудағы вектордың компоненттерінің өлшемін пайдаланушы алдын-ала белгілейді. Сол кезде Demux блогының келесідей ерекшелігін есепке алу керек. Егер кірудегі вектордың (М) өлшемі Number of outputs параметр мәніне яғни блок шығуларының (N) санына тең болса, блоктың барлық шығуларында скаляр шамалар пайда болады және кірудегі вектор бөлек элементтерге ажырайды. Егер де кірудегі вектордың өлшемі блоктың шығулар санынан үлкен болса (M>N), бірінші (п-1) шығуларда пайда болатын векторлардың өлшемдері M/N қатынастың бүтін бөлігіне тең, ал соңғы шығуда – қатынастың бөлшек бөлігіне тең болады. Егер де M<N болса, үлгіні жұмысқа қосқанда қате туралы хабар  шығады («порттардың өлшемдері сәйкес емес»деген хабар) ;

 

и) Selector блогы кірудегі сигналдан таңдап алып, блок шығуына тек қана блок параметрлерінде номерлері көрсетілген элементтерді тасымалдайды. Блоктың екі параметрі бар:

- Elements (Элементтер) – кірудегі вектордың элементтерінің номерлерінің тізімі;

- lnput port width (Кіру портының өлшемі) –  блок көмегімен өңделетін кіру вектордың өлшемі; бұл параметрдің мәні кірудегі  вектордың элементтер санымен бірдей болуы керек.

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

к) Merge (Қосылу) блогы оның кірістеріне түскен сигналдарды бір сигналға бірліктіреді. Блоктың екі параметрі бар:

- Number of inputs (Кірулер саны) – блоктың кірулеріне берілетін сигналдардың санын анықтайды, блок жұмысы дұрыс болуы үшін барлық кіру сигналдарының өлшемдері бірдей болуы керек, бірақ бұл шарт орындалмаса қате туралы хабар берілмейді;

- Initial output (Шығуды жұмысқа қосу) – бірліктіруді жасауға берілетін сигнал, егер де параметр орнатылмаған болса, блок шығысына кіру сигналдардың біреуі беріледі.  

         Келесі блоктары бірге қолданылады, олардың міндеті - S-үлгінің әртүрлі компоненттері арасында оларға қолжеткізу (көріну) мүмкіншіліктерін есепке алып мәліметтермен алмасуды қамтамасыздандару:

л) Goto Tag Visibility (Көріну белгісі), From (Қабылдау) және Goto (Беру)

 

5.2.10 User-Defined Functions (Пайдаланушымен анықталған функциялар) блогы

а) Fсn блогы – универсалды «есептеу» блогы.

Блоктың параметрі ретінде аргументі кірістегі сигнал мәні болатын кез-келген есептелетін өрнекті енгізуге болады.  Өрнектің аргументі тіке көрсетілу керек, кірудегі сигнал үшін и символы қолданылады. Егер де кірудегі сигнал вектор болса, оның элементтері и(1), и(2) ... деп белгіленеді. Мысалы, кірудегі сигналдың екі элементін қосу өрнек келесідей жазылады: и(1)+и(2).

Ескерту - Есептелінетін өрнектің мәні скаляр болуы керек. Бұл шектеуден құтылу үшін MATLAB Fen блогын қолдану қажет;

б) MATLAB Fen блогы кірістегі сигналға М-файл ретінде дайындалған кез-келген өңдеу бағдарламаны қолдануға мүмкіндік береді. Ол бағдарлама MATLAB пакетінің библиотекасының функциясы немесе S-үлгіні өңдеушімен жасалған бағдарлама болуы мүмкін.

Бірінші жағыдайда MATLAB Fen блогын қолдану Fen блогын қолданғандай. Есептелінетін өрнек MATLAB function терезесіне енгізіледі. Егер де өрнекте тек қана библиотека функциясы қолданылса, оның аргументін көрсетпеуге де болады. Мысалы кірудегі шаманың түбір астындағы мәнін есептеу үшін тек қана sqrt функцияның атын енгізуге болады.

MATLAB Fen функцияның екінші, маңызды, ерекшелігі – оның екінші Outputwidth (Шығу сигналдың ені) деген параметрі бар. Басқа сөзбен айтқанда блок шығысында скаляр емес векторда болуы мүмкін. Ол вектордың элементтер саны Output width параметрінің мәніне тең.

 

5.2.11         Additional Extras (Библиотеканың қосымша блоктары)

Алдынғы бөліктерде қарастырылған блоктар Simulink пакетінің негізгі блоктары, библиотека терезесі ашылғанда, курсор осы жолда тұрады. Additional Extras қосымшада алты бөлігі бар:

а) Additional Sinks (Sinks бөлігіне қосымша) - қосымша графикалық «қарайтын» терезелерден тұрады; олардығң төртеуі сигналдардың спектрлік талдауының визуализациясын қамтамасыздандырады, тағы екеуі – сигналдардың корреляциялық сипаттамаларын көрсетеді, бұл блоктарды пайдалану үшін пакет конфигурациясына сигналдарды өңдеу инструменталдық құрылғыларын  (Signal Processing Toolbox) қосу қажет;

б) Additional Linear (Linear бөлігіне қосымша) библиотеканың бұл бөлігіндегі блоктар автоматты басқару сызықты жүйелерінің сипаттамаларын есептеуге негізделген;

в) Transformations (Түрлендірулер) – сандық шамаларға әртүрлі түрлендіруді қолдануға мүмкіндік береді:  

- координаталарды – төртбұрышты жүйеден полярлық немесе сфералық координаттар жүйесіне;

- температурыны – Фаренгейт шкаласынан Цельсий шкаласына және  керісінше;

- бұрыштарды – градус бірлігінен радианға және кері қарай;

г) Flip Flop (Триггерлер) – триггердердің негізгі типтерін (D-триггер, 5-R- тpиггep, J-K-триггер) үлгілеуге мүмкіндік береді;

д) Linearization (Сызықтандыру) бөліктегі блок кіру сигналының уақыт бойынша туындысын есептеуге мүмкіндік береді.  

 

5.3 Блок-диаграммаларды құрудың мысалдары

 

5.3.1 Мысалы. Үш кірісі бар және шығуындағы сигнал кіруіндегі сигналдардың көбімен бірдей болатын қиыстырылған сандық құрылғыны И-НЕ элементтерінде синтездеу қажет болсын. Құрылғының сөзбен айтылған жұмыс тәртібін келесі ақиқат кестесімен көрсетуге болады (1 кесте).

Үлгінің сұлбасын осы кесте бойынша құрастырайық (5.1 – суреті):

-                    үлгі  терезесінде кірістегі үш сигнал үшін үш Constant блогын орнатыңыз;

- берілген ақиқат кесте бойынша кірудегі сигналды түрлендіруді

 

 

1 кесте

Жиынтық номері

         X3

X2

X1

y

1

2

3

4

5

6

7

8

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

0

0

1

0

1

1

1

 

Combinatorial Logic блогы қаматамасыз етеді. Бұл блоктың кірісіне тек қана жалғыз сигнал берілуі мүмкін, сондықтан барлық кірістерді біріктіру үшін Mux блогын қолданамыз. Combinatorial Logic блогының жалғыз Truth table (Ақиқат кесте) параметрі бар, бұл параметр құрылғының мүмкін болатын шығу мәндерінің тізімін көрсетеді (параметрді қалпына келтіру 5.2 - суретте көрсетілген).

 5.1 - сурет. Ақиқат кесте негізінде жасалған сандық құрылғының үлгісі

 

 

5.2    – сурет. Combinatorial Logic блокты қалпына келтіру

Кестені құрастырғанда келесі екі негізгі ережені сақтау қажет:  

a)                      кесте жатық жолдарының саны 2n-ге тең болуы керек, п –кірудегі сигналдың элементтерінің саны (өлшемі);  

б) кестенің кірістері берілген деп есептелінеді.

Тудырылған шығудағы сигналды Display блогына шығарыңыз.

        Енді үлгінің жұмысын имитациялаңыз. Х1, Х2, Х3 константаларға ақиқат кесте бойынша әртүрлі мәндерді беріп, үлгіні жұмысқа қосамыз. Ол үшін Simulation менюден Start бұйрығын таңдаңыз немесе инструменттер панелінде Start Simulatin батырмасын басыңыз. Үлгі жұмысының нәтижесі яғни сандық құрылғының шығуында туатын сигнал «дисплейде» көрсетіледі. Үлгі дұрыс құрылған болса, кірудегі сигналдың бірдей мәндер жиынтығы үшін «дисплейдегі» мән кестедегі мәнмен бірдей болуы керек. Кері жағдайда Combinatorial Logic параметрлері дұрыс орнатылмаған болуы мүмкін.

Қиыстырылған сандық құрылғыны жасағанда әдетте аппараттық шығындарды минималдау қажет болады. Есептің шартын құрылғыны И-НЕ элементтерін қолданып синтездеу, орындау үшін  үлгілеуге логика алгебрасынан белгілі жетілдірген нормалы формаларды, мысалы,  жетілдірген нормалы дизъюнктивті форманы қолданамыз. Жетілдірген дизъюнктивті нормалы формада ақиқат кестені келесі  формуламен жазуға болады

                                                (1)

         Логика алгебрасынан белгілі түрлендірулерін қолданып келесіні аламыз

    

Ал, минималдау ережелері бойынша келесі шығады:

                                                            (2)

         Осы (1) және (2) формулалар негізінде үлгіні жасау үшін логикалық операциялар (Logical Operator) блоктары қолданылады (5.3, 5.4  - суреттері).

                 

 

5.3 – сурет. Жетілдірген дизъюнктивті нормалы формуласы негізінде құрастырылған сандық құрылғының үлгісі

           

5.4 – сурет. И-НЕ элементтерін қолданып құрастырылған сандық құрылғының үлгісі

Құрастырған үлгілердің жұмысын әртүрлі кірудегі сигналдар үшін тексереміз. Егер де шығудағы сигналдар кестедегі мәндермен бірдей болмаса (бірдей кірудегі сигналдар жиынтықтары үшін), онда сұлбаның қатесі бар, яғни оны жөндеу керек.

5.3.2 Мысалы. MatLab жүйесінің құрамындағы SimuLink пакетінде асинхронды вентильды каскад (АВК) сұлбасындағы асинхронды двигательді зерттеуге болады. ЭиАПУ кафедрасында АВК-ың құрамдық және электрлік имитациялық үлгілері өңделген[1]. Осы үлгілерде тәжірибелер сериясын орындап объект сипаттамаларын (басқару кернеуінің шамасының және жүктеменің өтпелі процестерге әсерін, тұрақталған параметрлердің берілген шамалармен сәйкестігін, т.б.) алуға болады. 5.5 - суретте АВК-ың құрамдық сұлбасының имитациялық үлгісі келтерілген. Сұлба тізбектеліп қосылған түйіндерден тұрады, түйіндерге беріліс функциялар енгізілген.

5.3.3 Мысалы. Сұйықтығы бар бакты қарастырайық. Бұл объектінің тәуелсіз Gin (t)  кірудегі сұйықтық ағыны және тәуелді Gout (t)  шығу ағыны бар. Шығу ағынының шамасы бактің төгу үшін арналған тесіктің f қимасымен бактегі сұйықтықтың H деңгейінен тәуелді. Бактагы сұйықтық мөлшері M = FHρ, мұнда F – бак табанының ауданы, ρ – сұйықтық тығыздылығы. Біздер бактегі деңгейдің уақыт бойынша өзгеруін зерттегіміз келеді. Әуелі осы процесс үшін математикалық үлгісін құрастырайық.

Зат мөлшерін сақтау заңын қолданып келесі дифференциалдық теңдеуді жазамыз

Сонымен бірге, қозғалыс мөлшерін сақтау заңын бейнелейтін гидродинамикадан белгілі өрнекті аламыз:

        

 

 

 

 

 

 

 

 

 

 

 

 

Подпись: 5.5 - сурет. АВК құрамдық сұлбасының үдгісі

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Соңғы теңдеуді алдындағы теңдеуге қойып, түрлендіріп, келесі деңгейдің өзгеруін сипаттайтын дифференциалды теңдеуге келеміз

 

Енді айтылған Н шаманың өзгеруінің динамикасын осы теңдеу бойынша зерттеу үшін үлгінің блок-диаграммасын құрастырайық. Блок-диаграмма 5.6 суретте келтірілген.  Диаграмманы қарапайымдылау үшін кірудегі ағын тұрақты деп алынған және үлгі коэффициенттері алдын-ала есептелген. Әрине, басқа жолмен де барлық айнымалыларды есептеу блоктардың әр түрлісін қолданып үлгіні жасауға болар еді. Блок-диаграмманы құрғанда әуелі дифференциалдық теңдеудің оң жағындағы өрнекке сұлба жасалады, бұл арада есептеулер өткізу үшін Simulink-тің Fcn блоктары қолданылған, содан кейін алынған шама интегратор кірісіне беріледі. Интегратор шығуындағы шама қайтадан үлгі кірісіне беріледі (бұл шарт дифференциалдық теңдеулерді есептеу әдістерімен байланысты). Интегратордың параметрлерін қалпына келтіретін терезеде Initial condition source (Бастапқы шарттың көзі) жолында external (сыртқы) дегенді таңдасақ, интегратордың кірісінде тағы бір кіру порты пайда болады, оған бастапқы мәннің көзін (мысалы, константаны) қосуға болады. Біздің диаграммада бұл параметр үшін internal(ішкі) деген таңдалынған, сондықтан қосымша порт жоқ. Scope блогы (аты Н деп белгіленген) деңгейдің өзгеруін қарап отыруға мүмкіндік береді.

5.6 – сурет. Бак деңгейнің өзгеру процесінің блок-диаграммасы

 

Жасалынған үлгінің шығудағы айнымалысының (деңгейдің) динамикасын 5.7 - суретте көруге болады.

5.3.4 мысалы. Ішкі жүйелер Subsystem блогын қолдануды келесі мысалда қарастырайық. Котлоагрегат топкасындағы (жинақталған параметрлері бар объект) динамикалық процестердің үлгісі қарапайым дифференциалдық теңдеулер жүйесімен бейнеленеді[2]. Осы жүйенің шешімі газдар мен ластану қабаттарының температураларының уақыт бойынша өзгеру заңын береді, олар отын жағу процесін реттеуге қолданылады.

5.7 – сурет. Шығудағы айнымалының динамикасы

 

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

Мұнда

∆t – газдар температурасы,

 ∆t1 – ластану қабаттарының температурасы,

∆Bp – ауа шығыны,

∆tB – ауа температурасы,

τ - уақыт,

(a1-a6)  – үлгінің есептелген коэффициентері.

Үлгінің құрамдық схемасы 5.8 - суретте келтірілген.

Диаграмманы ыңғайландыру мақсатымен жүйенің әр теңдеуінің оң жақтағы өрнектерін есептеу блоктарын ішкі жүйе ретінде құрастырамыз (Subsystem блогы). Integrator блоктары интегралдауды өткізеді, бұл блоктың кірісіне Constant блок арқылы бастапқы мән беріледі. Subsystem блоктарында үлгінің коэффициенттерін және газ бен шлактардың ағынды температураларын есептеуге Fcn блоктары қолданылады. Сырттағы мәліметтерді Subsystem блогына беру үшін In блоктарын, ал блоктан мәліметтерді сыртқа беру үшін Out блоктарын қолданамыз. Scope блоктары зерттеушіге қажетті жүйенің сипаттамаларын бақылауға мүмкіндек береді.

 

5.8 – сурет. Subsystem блоктарын пайдалану

 

 

Әдебиеттер тізімі

1 Лазарев Ю. MatLAB 5.x – К.: Изд.группа ВHV, 2000.

2 Бенькович Е., Колесов Ю., Сениченков Ю. практическое моделирование динамических систем. – СПб.: БХВ_Петербург, 2002.

3 MATLAB 6.5 SP1/7.06 Simulink 5/6 в математике и моделировании. – М7: СОЛОН-Пресс6 2005.

       4 Гультяев А. Имитационное моделирование в среде Windows. – С-Пб.:                                              “КОРОНАпринт”, 1999.                                                                                 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                                                                           2005 г. жиынтық жоспары, реті      

 

 

 

 

 

 

 

 

Лида Куандыковна Ибраева

 

 

MATLAB  ОРТАСЫНДА ЖҰМЫС ІСТЕУДІҢ НЕГІЗГІ АМАЛДАРЫ

 

Әдістемелік практикум

Барлық мамандық студенттері үшін

 

 

 

 

 

 

 

 

 

 

 

Редакторы Ж.А.Байбураева

 

Басуға рұқсат етілді                                                    Форматы   60Х84  1/16

Тиражы   50  дана.                                                      №1 типографиялық қағаз

Көлемі 3.75 оқу-баспа т.                                             Тапсырыс       Бағасы 30 тг.

 

 

 

 

 

 

 

 

Алматы энергетика және байланыс институтының көшірме-баспа бюросы

480013 Алматы, Байтурсын-ұлы көшесі, 126



[1] Мустафин М.А., Жусипов С.С. . Специальный курс электрических машин. Исследование асинхронного двигателя в схеме асинхронного вентильного каскада на компьютерной модели. Методические указания к лабораторным работам (для студентов всех форм обучения по специальностям 330140, 330840) – Алматы: АИСЭ, 2003. – 16 с.

[2].Богатырев А.Ф., Панченко С.В.,Стояк В.В. Моделирование и оптимизация теплотехнических процессов: Учебное пособие. – Алма-Ата:КазПТИ, 1989.