Студопедия Главная Случайная страница Задать вопрос

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Формування вихідного сигналу по величині модельного часуSample-based й кількості розрахункових кроків на один період формується за виразом





y= Amplitude* sin[(k + Number of offset samples)/Samples per period] + Bias

де k – номер поточного кроку розрахунку.

Amplitude – амплітуда.

Bias – постійна складова сигналу.

Samples per period – кількість розрахункових кроків на один період синусоїдального сигналу:

Samples per period = 2π / (Frequency* Sample time).

Number of offset samples – початкова фаза сигналу, яка задається кількістю кроків модельного часу:

Number of offset samples = Phase* Samples per period/ (2π).

Sample time – крок модельного часу.

У даному режимі помилка округлення не накопичується, оскільки Simulink починає відлік номера поточного кроку з нуля для кожного періоду. На рис. 7.21 показане застосування блоку. Для відображення графіків вихідних сигналів у моделі використаний віртуальний осцилограф Scope.

Рис. 7.21. Приклад використання джерела синусоїдально сигналу Sine Wave та його параметри

 

1.6. Блок вхідного порту In

Створює вхідний порт для підсистеми або моделі верхнього рівня ієрархії.

Основні параметри:

1) Port number – номер порту.

2) Port dimensions – розмірність вхідного сигналу. Якщо цей параметр дорівнює -1, то розмірність вхідного сигналу буде визначатися автоматично.

3) Sample time – крок модельного часу.

4) Data type – тип даних вхідного сигналу: auto, double, single, int8, uint8, int16, uint16, int32, uint32 або boolean.

5) Signal type – тип вхідного сигналу:

· auto – автоматичне визначення типу.

· real – дійсний сигнал.

· complex – комплексний сигнал.

При використанні блоків In в підсистемі вони є її входами, тобто сигнали через них передається усередину підсистеми. Назва вхідного порту буде показано на зображенні підсистеми як мітка порту. При створенні підсистем і додаванні блоку In у підсистему Simulink використовує наступні правила:

· При створенні підсистеми за допомогою команди Edit→Create subsystem вхідні порти створюються й нумеруються автоматично починаючи з 1.

· Якщо в підсистему додається новий блок In, то йому присвоюється наступний номер.

· Якщо блок In вилучається, то інші порти перейменовуються таким чином, щоб послідовність номерів портів була безперервною.

· Якщо в послідовності номерів портів є розрив, то при виконанні моделювання Simulink видасть повідомлення про помилку й зупинить розрахунок. У цьому випадку необхідно вручну перейменувати порти таким чином, щоб послідовність номерів портів не порушувалася.

На рис. 7.22 показана модель, що використовує підсистему та вхідні порти.

 

 

Рис. 7.22. Приклад використання блоку вхідного сигналу In та його параметри

 

1.7. Джерело імпульсного сигналу Pulse Generator

Блок формує прямокутні імпульси.

Параметри:

1) Pulse Type – спосіб формування сигналу, що може приймати два значення:

· Time-based – за поточним часом.

· Sample-based – по величині модельного часу й кількості розрахункових кроків.

2) Amplitude – амплітуда.

3) Period – період, що задається в секундах для Time-based Pulse Type

або в кроках модельного часу для Sample-based Pulse Type.

4) Pulse width – ширина імпульсів, що задається в % до періоду для Time-based Pulse Type або в кроках модельного часу для Sample-based Pulse Type.

5) Phase delay – фазова затримка, що задається в секундах для Time-based Pulse Type або в кроках модельного часу для Sample-based Pulse Type.

6) Sаmple time – крок модельного часу, що задається для Sample-based Pulse Type.

Приклад використання Pulse Generator показаний на рис. 7.23.

Рис. 7.23. Джерело прямокутних імпульсів Pulse Generator та його параметри

 

Більш детально з іншими блоками бібліотеки Sources та їх параметрами можна ознайомитися з додаткової літератури [2].

2. Sinks – приймачі сигналів

2.1. Осцилограф Scope

Scope будує графіки досліджуваних сигналів у функції часу. Дозволяє спостерігати за змінами сигналів у процесі моделювання.

Зображення блоку й вікно для перегляду графіків показані на рис. 7.24.

Рис. 7.24. Осцилограф Scope

Для того, щоб відкрити вікно перегляду сигналів необхідно виконати подвійне натискання лівою клавішею миші на зображенні блоку. Це можна зробити на будь-якому етапі розрахунку (як до початку розрахунку, так і після нього, а також під час розрахунку). У тому випадку, якщо на вхід блоку надходить векторний сигнал, то крива для кожного елемента вектора будується окремим кольором. Настроювання вікна осцилографа виконується за допомогою панелей інструментів (рис. 7.25.

 

Рис. 7.25. Панель інструментів блоку Scope

 

Панель інструментів містить 11 кнопок:

1) Print – друк вмісту вікна осцилографа.

2) Parameters – доступ до вікна настроювання параметрів.

3) Zoom – збільшення масштабу по обох осях.

4) Zoom X-axis – збільшення масштабу по горизонтальній осі.

5) Zoom Y-axis – збільшення масштабу по вертикальній осі.

6) Autoscale – автоматична установка масштабів по обох осях.

7) Save current axes settings – збереження поточних настроювань вікна.

8) Restore saved axes settings – установка раніше збережених настроювань вікна.

9) Floating scope – переключення осцилографа в “вільний” режим.

10) Lock/Unlock axes selection – закріпити/розірвати зв'язок між поточною координатною системою вікна й відображуваним сигналом. Інструмент доступний, якщо включено режим Floating scope.

11) Signal selection – вибір сигналів для відображення. Інструмент доступний, якщо включено режим Floating scope.

Зміна масштабів відображуваних графіків можна виконувати декількома способами:

1) Нажати відповідну кнопку ( , або ) і натиснути один раз лівою клавішею мишки у потрібнім місці графіка. Відбудеться 2,5 кратне збільшення масштабу.

2) Нажати відповідну кнопку ( , або ) і, натиснувши ліву клавішу мишки, за допомогою динамічної рамки або відрізка вказати область графіка для збільшеного зображення.

3) Натиснути правою клавішею миші у вікні графіків і, вибрати команду Axes properties… у контекстному меню. Відкриється вікно властивостей графіка, у якому за допомогою параметрів Y-min та Y-max можна вказати граничні значення вертикальної осі. У цьому ж вікні можна вказати заголовок графіка (Title), замінивши вираження %<SignalLabel> у рядку уведення. Вікно властивостей показане на рис. 7.26.

Рис. 7.65. Вікно властивостей графіка

 

Основні параметри: Параметри блоку Scope встановлюються у вікні ‘Scope’ parameters, що відкривається за допомогою інструмента (Parameters) панелі інструментів. Вікно параметрів має дві вкладки:

1) General – загальні параметри.

2) Data history – параметри збереження сигналів у робочій області MATLAB.

Вкладка загальних параметрів показана на рис. 7.27.

На вкладці General задаються наступні параметри:

1) Number of axes – число входів (систем координат) осцилографа. При зміні цього параметра на зображенні блоку з'являються додаткові вхідні порти.

Рис. 7.27. Вкладка загальних параметрів General

 

2) Time range – величина інтервалу часу, для якого відображаються графіки. Якщо час розрахунку моделі перевищує задане параметром Time range, то вивід графіка здійснюється порціями. При цьому інтервал відображення кожної порції графіка дорівнює заданому значенню Time range.

3) Tick labels – вивід/приховання осей і міток осей. Може приймати три значення (вибираються зі списку):

· all – підпису для всіх осей,

· none – відсутність всіх осей і підписів до них,

· bottom axis only – підпису горизонтальної осі тільки для нижнього графіка.

4) Sampling – установка параметрів виводу графіків у вікно. Задає режим виводу розрахункових точок на екран. При виборі Decimation кратність виводу встановлюється числом, що задає крок виведених розрахункових точок. На рис. 7.28 показано графіки синусоїдальних сигналів розрахованих з фіксованим кроком 0,1 с. На рис. 7.28, а у вікні блоку Scope виводиться кожна розрахункова точка (параметр Decimation дорівнює 1). На рис. 7.28, б показаний вивід кожного другого значення (параметр Decimation дорівнює 2).

Рис. 7.28. Відображеня синусоїдального сигналу: а – параметр Decimation=1; б – параметр Decimation=2

 

У тому випадку, якщо режим виводу розрахункових точок задається як Sample time, те його числове значення визначає інтервал квантування при відображенні сигналу. На рис. 7.29 показаний графік синусоїдального сигналу, для випадку, коли значення параметра Sample time дорівнює 0.1.

Рис. 7.29. Відображення синусоїдального сигналу (Sample time = 0.1)

5). Floating scope – переключення осцилографа в “вільний” режим (при встановленому прапорці).

На вкладці Data history (рис. 7.30) задаються наступні параметри:

1) Limit data points to last – максимальна кількість відображуваних розрахункових точок графіка. При перевищенні цього числа початкова частина графіка обрізується. У тому випадку, якщо прапорець параметра Limit data points to last не встановлений, то Simulink автоматично збільшить значення цього параметра для відображення всіх розрахункових точок.

2) Save data to workspace – збереження значень сигналів у робочій області MatLab.

3) Variable name – ім'я змінної для збереження сигналів у робочій області MatLab.

4) Format – формат даних при збереженні в робочій області MatLab. Може приймати значення:

· Array – масив,

· Structure – структура,

· Structure with time – структура з додатковим полем “час”.

Рис. 7.30. Вкладка Data history

 

2.2. Графобудівник ХУ Graph

XY Graph Будує графік одного сигналу у функції іншого (графік виду Y(X)).

Основні параметри:

1) x-min – мінімальне значення сигналу по осі X.

2) x-max – максимальне значення сигналу по осі X.

3) y-min – мінімальне значення сигналу по осі Y.

4) y-max – максимальне значення сигналу по осі Y.

5) Sample time – крок модельного часу.

Блок має два входи. Верхній вхід призначений для подачі сигналу, що є аргументом (X), нижній – для подачі значень функції (Y). На рис. 7.31, як приклад використання графобудівника, показана побудова квадратичної функції та вікно параметрів блоку.

Рис. 7.31. Приклад використання графобудівника ХУ Graph

 

2.3. Цифровий дисплей Display

Display відображає значення сигналу у вигляді числа.

Основні параметри:

1) Format – формат відображення даних, що може приймати наступні значення:

· short – 5 значущих десяткових цифр.

· long – 15 значущих десяткових цифр.

· short_e – 5 значущих десяткових цифр і 3 символи ступеня десяти.

· long_e – 15 значущих десяткових цифр і 3 символи ступеня десяти.

· bank – "грошовий" формат з фіксованою крапкою й двома десятковими цифрами в дробовій частині числа.

2) Decimation – кратність відображення вхідного сигналу. При Decimation = 1 відображається кожне значення вхідного сигналу, при Decimation = 2 відображається кожне друге значення, при Decimation = 3 – кожне третє значення й т.д.

3) Sample time – крок модельного часу, що визначає дискретність відображення даних.

4) Floating display (прапорець) – переключення блоку в “вільний” режим. У даному режимі вхідний порт блоку відсутній, а вибір сигналу для відображення виконується натисканням лівої клавіші мишки на відповідній линії зв'язку. У цьому режимі для параметра розрахунку Signal storage reuse повинне бути встановлене значення off (вкладка Advanced у вікні діалогу Simulation parameters…).

На рис. 7.32 показане застосування блоку Display з використанням різних варіантів параметра Format.

Рис. 7.32. Застосування блоку Display з використанням різних

варіантів параметра Format

 

Блок Display може використовуватися для відображення не тільки скалярних сигналів, але також векторних, матричних і комплексних. Рис. 7.33 ілюструє це. Якщо всі відображувані значення не можуть поміститися у вікні блоку, у правому нижньому куті блоку з'являється символ , що вказує на необхідність збільшити розміри блоку (див. блок Display3 на рис. 7.33).

Рис. 7.33. Застосування блоку Display для відображення векторних, матричних і комплексних сигналів

 

2.4. Блок зупинки моделювання Stop Simulation

Stop Simulation забезпечує завершення розрахунку, якщо вхідний сигнал блоку стає не рівним нулю.

Параметри: Немає.

При подачі на вхід блоку ненульового сигналу Simulink виконує поточний крок розрахунку, а потім зупиняє моделювання. Якщо на вхід блоку поданий векторний сигнал, то для зупинки розрахунку досить, щоб один елемент вектора став ненульовим. На рис. 7.34 показаний приклад використання даного блоку. У прикладі зупинка розрахунку відбувається, якщо вихідний сигнал блоку Ramp стає більшим або рівним 50.

Рис. 7.34. Застосування блоку Stop Simulation

 

2.5. Блок збереження даних у робочій області То Workspace

Блок записує у робочу область MatLab дані, що надходять на його вхід.

Основні параметри:

1) Variable name – ім'я змінної, в якій зберігаються записувані дані.

2) Limit data points to last – максимальна кількість розрахункових точок за часом, що зберігаються (відлік ведеться від моменту завершення моделювання). У тому випадку, якщо значення параметра Limit data points to last задано як inf, то в робочій області будуть збережені всі дані.

3) Decimation – кратність запису даних у робочу область.

4) Sample time – крок модельного часу, що визначає дискретність запису даних.

5) Save format – формат збереження даних, який може приймати значення:

· Matrix – матриця. Дані зберігаються як масив, у якому число рядків визначається числом розрахункових точок за часом, а число стовпців – розмірністю вектора подаваного на вхід блоку. Якщо на вхід подається скалярний сигнал, то матриця буде містити лише один стовпець.

· Structure – структура. Дані зберігаються у вигляді структури, що має три поля: time – час, signals – збережені значення сигналів, blockName – ім'я моделі й блоку To Workspace. Поле time для даного формату залишається не заповненим.

· Structure with Time – структура з додатковим полем „час”. Для даного формату, на відміну від попереднього, поле time заповнюється значеннями часу.

На рис. 7.35 показаний приклад використання даного блоку та його параметри. Результати розрахунку зберігаються в змінній simout. Для зчитування даних збережених у робочій області MatLab можна використовувати блок From Workspace бібліотеки Sources.

Рис. 7.35. Застосування блоку To Workspace

 

2.6. Кінцевий приймач Terminator

Блок використовується для подачі сигналу з невикористовуваного виходу іншого блоку.

Параметри: Немає.

У тому випадку, якщо вихід якого-небудь блоку виявляється не підключеним до входу іншого блоку, Simulink видає попереджуюче повідомлення в командному вікні MatLab. Для виключення цього необхідно використовувати блок Terminator. На рис. 7.36 показаний приклад використання кінцевого приймача. У блоці Demux другий елемент не використовується, тому він подається на вхід блоку Terminator.

Рис. 7.36. Застосування блоку Terminator

 

2.7. Блок вихідного порту Out

Out cтворює вихідний порт для підсистеми або для моделі верхнього рівня ієрархії.

Параметри:

1) Port number – номер порту.

2) Output when disabled – вид сигналу на виході підсистеми, у випадку якщо підсистема виключена. Використовується для керованих підсистем. Може приймати наступні значення (вибираються зі списку):

· held – вихідний сигнал підсистеми дорівнює останньому розрахованому значенню.

· reset – вихідний сигнал підсистеми дорівнює значенню заданому параметром Initial output.

1) Initial output – значення сигналу на виході підсистеми до початку її роботи й у випадку, якщо підсистема виключена. Використовується для керованих підсистем.

При використанні блоків Out у підсистемі вони є її виходами, тобто сигнали із підсистеми передаються в модель (або підсистему) верхнього рівня. Назва вихідного порту буде показано на зображенні підсистеми як мітка порту.

При створенні підсистем і додаванні блоку Out у підсистему Simulink використовує наступні правила:

1) При створенні підсистеми за допомогою команди Edit→Create subsystem вихідні порти створюються й нумеруються автоматично починаючи з 1.

2) Якщо в підсистему додається новий блок Out, то йому присвоюється наступний номер.

3) Якщо блок Out вилучається, то інші порти перейменовуються таким чином, щоб послідовність номерів портів була безперервною.

4) Якщо в послідовності номерів портів є розрив, то при виконанні моделювання Simulink видасть повідомлення про помилку й зупинить розрахунок. У цьому випадку необхідно вручну перейменувати порти таким чином, щоб послідовність номерів портів не порушувалася.

На рис. 7.37 показана модель, що використовує підсистему, схема цієї підсистеми та параметри блоку.

Рис. 7.37. Використання блоку Outport у підсистемі

 

3. Continuous – аналогові блоки

3.1. Блок обчислення похідної Derivative

Derivative виконує числове диференціювання вхідного сигналу.

Параметри: Немає.

Для обчислення похідної використовується наближена формула Ейлера

де ∆u – величина зміни вхідного сигналу за час ∆t.

∆t – поточне значення кроку модельного часу.

Значення вхідного сигналу блоку до початку розрахунку вважається рівним нулю. Початкове значення вихідного сигналу також покладається рівним нулю. Точність обчислення похідної істотно залежить від величини встановленого кроку розрахунку. Вибір меншого кроку розрахунку поліпшує точність обчислення.

На рис. 7.38 показаний приклад використання блоку, для обчислення похідної прямокутного сигналу. У розглянутому прикладі, для підвищення наочності, крок розрахунку обраний досить великим.

 

Рис. 7.38. Використання блоку Derivative для диференціювання сигналу

Даний блок використовується для диференціювання аналогових сигналів. При диференціюванні дискретного сигналу за допомогою блоку Derivative його вихідний сигнал буде являти собою послідовність імпульсів відповідним моментам часу стрибкоподібної зміни дискретного сигналу.

3.2. Інтегруючий блок lntegrator

Блок виконує інтегрування вхідного сигналу.

Основні параметри:

1) External reset – зовнішнє скидання. Тип зовнішнього керуючого сигналу, що забезпечує скидання інтегратора до початкового стану. Вибирається зі списку:

· none – немає (скидання не виконується).

· rising – наростаючий сигнал (передній фронт сигналу).

· falling – спадаючий сигнал (задній фронт сигналу).

· either – наростаючий або спадаючий сигнал.

· level – не нульовий сигнал (скидання виконується, якщо сигнал на керуючому вході стає не рівним нулю).

У тому випадку, якщо обрано який-небудь (але не none), тип керуючого сигналу, то на зображенні блоку з'являється додатковий керуючий вхід. Поруч із додатковим входом буде показана умовна позначка керуючого сигналу.

2) Initial condition source – джерело початкового значення вихідного сигналу. Вибирається зі списку:

· internal – внутрішній.

· external – зовнішній. У цьому випадку на зображенні блоку з'являється додатковий вхід, позначений x0, на який необхідно подати сигнал, що задає початкове значення вихідного сигналу інтегратора.

3) Initial condition – початкова умова. Установка початкового значення вихідного сигналу інтегратора. Параметр доступний, якщо обрано внутрішнє джерело початкового значення вихідного сигналу.

4) Limit output (прапорець) – використання обмеження вихідного сигналу.

5) Upper saturation limit – верхній рівень обмеження вихідного сигналу. Може бути заданий як числом, так і символьною послідовністю inf, тобто +∞.

6) Lower saturation limit – нижній рівень обмеження вихідного сигналу. Може бути заданий як числом, так і символьною послідовністю inf, тобто - ∞.

7) Show saturation port – керує відображенням вихідного порту при виході інтегратора на обмеження. Вихідний сигнал даного порту може приймати наступні значення:

· Нуль, якщо інтегратор не перебуває на обмеженні.

· +1, якщо вихідний сигнал інтегратора досяг верхнього обмежуючої межі.

· -1, якщо вихідний сигнал інтегратора досяг нижнього обмежуючої межі.

8) Show state port (прапорець) – відобразити/сховати порт стану блоку. Даний порт використовується в тому випадку, якщо вихідний сигнал інтегратора потрібно подати як сигнал зворотного зв'язка цього ж інтегратора. На приклад, при установці початкових умов через зовнішній порт або при скиданні інтегратора через порт скидання. Вихідний сигнал із цього порту може використовуватися також для організації взаємодії з керованою підсистемою.

9) Absolute tolerance – абсолютна погрішність.

На рис. 7.39 показаний приклад роботи інтегратора при подачі на його вхід стрибкового сигналу. Початкова умова прийнята рівна нулю.

Приклад на рис. 7.40 відрізняється від попереднього подачею початкового значення через зовнішній порт. Початкове значення вихідного сигналу в даному прикладі задано рівним -10.

 


Рис. 7.39. Приклад застосування блоку Integrator та вікно його параметрів

 

Рис. 7.40. Інтегрування стрибкового сигналу з установкою початкового значення вихідного сигналу

 

4. Discontiniuties – нелінійні блоки

4.1. Блок обмеження Saturation

Блок виконує обмеження величини сигналу.

Параметри:

1) Upper limit – верхній поріг обмеження.

2) Lower limit – нижній поріг обмеження.

3) Treat as gain when linearizing (прапорець) – трактувати як підсилювач із коефіцієнтом передачі рівним 1 при лінеаризації.

Вихідний сигнал блоку дорівнює вхідному, якщо його величина не виходить за поріг обмеження. По досягненні вхідним сигналом рівня обмеження вихідний сигнал блоку перестає змінюватися й залишається рівним порогу. На рис. 7.41 показаний приклад використання блоку для обмеження синусоїдального сигналу. На малюнку приводяться часові діаграми сигналів і залежність вихідного сигналу блоку від вхідного.

Рис. 7.41. Приклад використання блоку Saturation та його параметри

 

4.2. Релейний блок Relay

Блок реалізує релейну нелінійність.

Основні параметри:

1) Switch on point – поріг включення. Значення, при якому відбувається включення реле.

2) Switch off point – поріг вимикання. Значення, при якому відбувається вимикання реле.

3) Output when on – величина вихідного сигналу у включеному стані.

4) Output when off – величина вихідного сигналу у виключеному стані.

Вихідний сигнал блоку може приймати два значення. Одне з них відповідає включеному стану реле, друге – виключеному. Перехід одного стану в інше відбувається стрибком при досягненні вхідним сигналом порога включення або вимикання реле. У тому випадку, якщо пороги включення й вимикання реле мають різні значення, то блок реалізує релейну характеристику з гістерезисом. При цьому значення порога включення повинне бути більше, ніж значення порога вимикання.

На рис. 7.42 показаний приклад використання блоку Relay. На часових діаграмах видно, що включення реле відбувається при досягненні вхідним сигналом величини 0,5, а вимикання при -0,5.

Рис. 7.42. Приклад використання блоку Relay та його параметри

 

5. Signal Routing – маршрутизатори сигналів

5.1. Мультиплексор (змішувач) Mux

Блок поєднує вхідні сигнали у вектор.

Параметри:

1) Number of Inputs – кількість входів.

2) Display option – спосіб відображення. Вибирається зі списку:

· bar – вертикальний вузький прямокутник чорного кольору.

· signals – прямокутник з білим фоном і відображенням міток вхідних сигналів.

· none – прямокутник з білим фоном без відображення міток вхідних сигналів.

Вхідні сигнали блоку можуть бути скалярними й (або) векторними. Якщо серед вхідних сигналів є вектори, то кількість входів можна задавати як вектор із вказівкою числа елементів кожного вектора. Наприклад, вираз [2 3 1] визначає три вхідних сигнали, перший сигнал – вектор із двох елементів, другий сигнал – вектор із трьох елементів, і останній сигнал – скаляр. У тому випадку, якщо розмірність вхідного вектора не збігається із зазначеної в параметрі Number of Inputs, то після початку розрахунку Simulink видасть повідомлення про помилку. Розмірність вхідного вектора можна задавати як -1 (мінус один). У цьому випадку розмірність вхідного вектора може бути будь-якою. Параметр Number of Inputs можна задавати також у вигляді списку міток сигналів, наприклад: Vector1, Vector2, Scalar. У цьому випадку мітки сигналів будуть відображатися поруч із відповідними сполучними лініями. Сигнали, що подаються на входи блоку повинні бути одного типу (дійсного або комплексного).

Приклади використання блоку Mux показані на рис. 7.43.

 

 

Рис. 7.43. Приклади використання блоку Mux та його параметри

 

5.2. Демультиплексор (роздільник) Demux

Demux розділяє вхідний векторний сигнал на окремі складові.

Параметри:

1) Number of Outputs – кількість виходів.

2) Bus Selection Mode (прапорець) – режим поділу векторних сигналів.

Вхідним сигналами у звичайному режимі є вектор, сформований будь-яким способом. Вихідними сигналами є скаляри або вектори, кількість яких і розмірність визначається параметром Number of Outputs і розмірністю вхідного вектора. Якщо кількість виходів P (значення параметра Number of Outputs) дорівнює розмірності вхідного сигналу N, то блок виконує поділ вхідного вектора на окремі елементи. Якщо кількість виходів P менше, ніж розмірність вхідного сигналу N, то розмірність перших P-1 вихідних сигналів дорівнює відношенню N/P, округленому до найближчого більшого числа, а розмірність останнього вихідного сигналу дорівнює різниці між розмірністю вхідного сигналу й сумою розмірностей перших P-1 виходів. Наприклад, якщо розмірність вхідного сигналу дорівнює 8, а кількість виходів дорівнює 3, то перші два вихідних вектори будуть мати розмірність ceil(8/3)=3, а останній вихідний вектор буде мати розмірність 8-(3+3)=2. Параметр Number of Outputs може бути заданий також за допомогою вектора, що визначає розмірність кожного вихідного сигналу. Наприклад, вираз [2 3 1] визначає три вихідних сигнали, перший сигнал – вектор із двох елементів, другий сигнал –вектор із трьох елементів, і останній сигнал – скаляр. Розмірність можна також задавати як -1 (мінус один). У цьому випадку розмірність відповідного вихідного сигналу визначається як різниця між розмірністю вхідного вектора й сумою розмірностей заданих вихідних сигналів. Наприклад, якщо розмірність вхідного вектора дорівнює 6, а параметр Number of Outputs заданий вираженням [1 -1 3], то другий вихідний сигнал буде мати розмірність 6-(3+1)=2.

Приклади використання блоку Demux показані на рис. 7.44.

Рис. 7.44. Приклади використання блоку Demux та його параметри

 

5.3. Блок перемикача Switch

Switch виконує перемикання вхідних сигналів по сигналу керування.

Параметри: Threshold – поріг керуючого сигналу.

Якщо сигнал керування, що подається на середній вхід блоку більше, ніж величина граничного значення Threshold, то на вихід блоку проходить сигнал з першого (верхнього) входу. Якщо сигнал керування стане менше, ніж граничне значення, то на вихід блоку буде надходити сигнал із другого (нижнього) входу.

На рис. 7.45 показаний приклад роботи блоку Switch, коли сигнал на керуючому вході ключа дорівнює 1, то на вихід блоку проходить гармонійний сигнал. Якщо ж керуючий сигнал дорівнює нулю, то на вихід проходить нульовий сигнал від блоку Constant. Граничне значення керуючого сигналу задано рівним 0,5.

Рис. 7.45. Застосування перемикача Switch та його параметри

 

5.4. Блок ручного перемикача Manual Switch

Блок виконує перемикання вхідних сигналів по команді користувача.

Параметри: Немає.

Командою на перемикання є подвійне натискання лівою клавішею мишки на зображенні блоку. При цьому зображення блоку змінюється, показуючи, який вхідний сигнал у цей момент проходить на вихід блоку. Перемикання блоку можна виконувати як до початку моделювання, так і в процесі розрахунку.

На рис. 7.46 показаний приклад використання блоку Manual Switch.

 

 

Рис. 7.46. Приклад використання блоку Manual Switch

 

6. Math Operations – блоки математичних операцій

6.1. Abs – блок обчислення модуля

Блок виконує обчислення абсолютного значення величини сигналу.

Параметри: Saturate on integer overflow (прапорець) – подавляти переповнення цілого. При встановленому прапорці обмеження сигналів цілого типу виконується коректно.

Приклад використання блоку Abs, що обчислює модуль поточного значення синусоїдального сигналу, показаний на рис. 7.47.

Рис. 7.47. Приклад використання блоку Abs

 

6.2. Блок обчислення суми Sum

Блок виконує обчислення суми поточних значень сигналів.

Параметри:

1) Icon shape – форма блоку, що вибирається зі списку:

· round – окружність.

· rectangular – прямокутник.

2) List of sign – список знаків. У списку можна використовувати наступні знаки: + (плюс), - (мінус) та | (роздільник знаків).

3) Saturate on integer overflow (прапорець) – подавляти переповнення цілого. При встановленому прапорці обмеження сигналів цілого типу виконується коректно.

Кількість входів і операція (додавання або віднімання) визначається списком знаків параметра List of sign. При цьому мітки входів позначаються відповідними знаками. У параметрі List of sign можна також указати число входів блоку. У цьому випадку всі входи будуть підсумовуючими. Якщо кількість входів блоку перевищує 3, то зручніше використовувати блок Sum прямокутної форми. Блок може використовуватися для підсумовування скалярних, векторних або матричних сигналів. Типи сигналів суми повинні збігатися. Не можна, наприклад, подати на той самий підсумовуючий блок сигнали цілого й дійсного типів. Якщо кількість входів блоку більше, ніж один, то блок виконує поелементні операції над векторними й матричними сигналами. При цьому кількість елементів у матриці або векторі повинне бути однаковим. Якщо в якості списку знаків указати цифру 1 (один вхід), то блок можна використовувати для визначення суми елементів вектора.

Приклади використання блоку Sum показані на 7.48.

Рис. 7.48. Приклади використання блоку Sum та його параметри

6.3. Блок множення Product

Блок виконує обчислення добутку поточних значень сигналів.

Параметри:

1) Number of inputs – кількість входів, що може задаватися як число або як список знаків. У списку знаків можна використовувати знаки * (помножити) та / (розділити).

2) Multiplication – спосіб виконання операції, що може приймати значення (зі списку):

· Element-wise – поелементний.

· Matrix – матричний.

3) Saturate on integer overflow (прапорець) – подавляти переповнення цілого. При встановленому прапорці обмеження сигналів цілого типу виконується коректно.

Якщо параметр Number of inputs заданий списком, що включає крім знаків множення також знаки ділення, то мітки входів будуть позначені символами відповідних операцій. Блок може використовуватися для операцій множення або розподілу скалярних векторних або матричних сигналів. Типи вхідних сигналів блоку повинні збігатися. Якщо як кількість входів указати цифру 1 (один вхід), то блок можна використовувати для визначення добутку елементів вектора.

Приклади використання блоку Product при виконанні скалярних і поелементних операцій показані на 7.49.

При виконанні матричних операцій необхідно дотримувати правил їхнього виконання. Наприклад, при множенні двох матриць необхідно, щоб кількість рядків першої матриці рівнялося кількості стовпців другої матриці.

Рис. 7.49. Приклади використання блоку Product та його параметри

 

6.4. Підсилювач Gain

Блок виконуює множення вхідного сигналу на постійний коефіцієнт.

Параметри:

1) Gain – коефіцієнт підсилення.

2) Multiplication – спосіб виконання операції, що може приймати значення (зі списку):

3) Element-wise K* u – поелементний.

4) Matrix K*u – матричний. Коефіцієнт підсилення є лівостороннім операндом.

5) Matrix u*K – матричний. Коефіцієнт підсилення є правостороннім операндом.

6) Saturate on integer overflow (прапорець) – подавляти переповнення цілого. При встановленому прапорці обмеження сигналів цілого типу виконується коректно.

Параметр Multiplication блоку Gain може бути додатним або від’ємним числом, як більше, так і менше 1. Коефіцієнт підсилення можна задавати у вигляді скаляра, матриці або вектора, а також у вигляді виразу, що обчислюється. У тому випадку, якщо параметр Multiplication заданий як Element-wise K*u, то блок виконує операцію множення на заданий коефіцієнт скалярного сигналу або кожного елемента векторного сигналу. У противному випадку блок виконує операцію матричного множення сигналу на коефіцієнт заданий матрицею. За згодою коефіцієнт підсилення є дійсним числом типу double. Для операції поелементного підсилення вхідний сигнал може бути скалярного, векторного або будь-якого матричного типу, за винятком логічного (boolean). Елементи вектора повинні мати однаковий тип сигналу. Вихідний сигнал блоку буде мати той же самий тип, що й вхідний сигнал. Параметр блоку Gain може бути скаляром, вектором або матрицею будь-якого типу, за винятком логічного (boolean). При обчисленні вихідного сигналу блок Gain використовує наступні правила:

· Якщо вхідний сигнал дійсного типу, а коефіцієнт підсилення комплексний, то вихідний сигнал буде комплексним.

· Якщо тип вхідного сигналу відрізняється від типу коефіцієнта підсилення, то Simulink намагається виконати приведення типу коефіцієнта підсилення до типу вхідного сигналу. У тому випадку, якщо таке приведення неможливо, то розрахунок буде зупинений з виводом повідомлення про помилку. Така ситуація може виникнути, наприклад, якщо вхідний сигнал є беззнакове ціле (uint8), а параметр Gain заданий від’ємним числом.

Приклади використання блоку Gain при виконанні скалярних і поелементних операцій показані на 7.50.

Рис. 7.50. Приклади використання блоку Gain та його параметри

6.5. Блок обчислення математичних функцій Math Function

Блок виконує обчислення математичної функції.

Параметри:

1) Function – вид функції (вибирається зі списку):

exp – експонентна функція.

log – функція натурального логарифма.

10^u – обчислення ступеня 10.

log10 – функції логарифма.

magnitude^2 – обчислення квадрата модуля вхідного сигналу.

square – обчислення квадрата вхідного сигналу.

sqrt – квадратний корінь.

pow – введення в ступінь.

conj – обчислення комплексно-спряженого числа.

reciprocal – обчислення частки від ділення вхідного сигналу на 1.

hypot – обчислення кореня квадратного із суми квадратів вхідних сигналів (гіпотенузи прямокутного трикутника за значеннями катетів).

rem – функція, що обчислює залишок від ділення першого вхідного сигналу на другий.

mod – функція, що обчислює залишок від ділення з урахуванням знака.

transpose – транспонування матриці.

hermitian – обчислення ермітової матриці.

2) Output signal type – тип вихідного сигналу (вибирається зі списку):

auto – автоматичне визначення типу.

real – дійсний сигнал.

complex – комплексний сигнал.

Тип вихідного сигналу залежить від типу вхідного сигналу й параметра блоку Output signal type.

Приклади використання блоку Math Function та його параметри показані на рис. 7.51.

Рис. 7.51. Приклади використання блоку Math Function та його параметри

 

6.6. Блок обчислення тригонометричних функцій Trigonometric Function

Блок виконує обчислення тригонометричної функції.

Параметри:

1) Function – вид функції (вибирається зі списку): sin, cos, tan, asin, acos, atan, atan2, sinh, cosh і tanh.

2) Output signal type – тип вихідного сигналу (вибирається зі списку):

· auto – автоматичне визначення типу.

· real – дійсний сигнал.

· complex – комплексний сигнал.

При векторному або матричному вхідному сигналі блок виконує поелементне обчислення заданої функції.

Приклади використання блоку Trigonometric Function та його параметри показані на рис. 7.52.

Рис. 7.52. Приклади використання блоку Trigonometric Function та його параметри

 

6.7. Блок визначення мінімального або максимального значення MinMax

Блок визначає максимальне або мінімальне значення із всіх сигналів, що надходять на його входи.

Параметри:

1) Function – вихідний параметр. Вибирається зі списку:

· min – мінімальне значення.

· max – максимальне значення.

2) Number of input ports – кількість вхідних портів.

Вхідні сигнали блоку можуть бути скалярними або векторними. Блок визначає максимальне або мінімальне значення із всіх скалярних сигналів, що надходять на його входи. Якщо вхідні сигнали є векторними, то блок виконує поелементну операцію пошуку мінімального або максимального значення. У цьому випадку розмірності векторів повинні збігатися. Якщо кількість вхідних портів блоку задано рівним 1, то блок може використовуватися для знаходження мінімального або максимального значення у вхідному векторі.

Приклади використання блоку MinMax та його параметри показані на рис. 7.53.

 

Рис. 7.54. Приклади використання блоку MinMax та його параметри

 

У даному розділі розглянуті тільки бібліотекі та їх блоки, необхідні для початкового рівня користування Simulink. Більш детально з іншими бібліотеками Simulink та їх параметрами можна ознайомитися з додаткової літератури [2].

Вирішення алгебричних рівнянь графічним методом за допомогою Simulink.

Розглянемо наступний приклад. Змінна x змінює своє значення від -10 до 10 за 10 секунд. Отримати графічну залежність y=f(x), якщо

.

Використаємо для створення змінної x блок Slope з бібліотеки Sources. За умовою x змінює своє значення на 20 одиниць за 10 секунд, тому параметр Slope обраховується як 20/10=2. Для зміщення сигналу x на -10 віднімаємо від вихідного сигналу зі Slope 10 за допомогою суматора. Змінна x створена. Час моделювання заданий 10 секунд. Структурна схема у Simulink заданого рівняння показана на рис. 7.55. Для виводу графіка y=f(x) потрібно додати на вихід схеми блок XYGraph. Графіки y=f(x) та x(t) також зображені на рис. 7.55.

Рис. 7.55. Приклад складання структурної схеми для графічного вирішення алгебричного рівняння

 

Розглянемо наступний приклад. Задана система алгебричних рівнянь

.

Змінна х змінюється від -25 до 40 за 20 секунд. Отримати графічні залежності y1=f(x) та y2=f(x). Занести дані у робочу область MatLab та використати команди для побудови графіків, оформити їх та підписати осі.

Структурна схема для розв’язання системи алгебричних рівнянь зображена на рис. 7.56. Для занесення масивів x, y1 та y2 використані блоки To Workspace з бібліотеки Sinks. У цих блоках виставлений формати виводу – array та присвоєні наступні назви змінним: x – х, y1 – y1, y2 – y2. Програма для побудови та оформлення графіків буде мати наступний вигляд

plot(x,y1,'r-','LineWidth',2) %побудова першого графіка

hold %затримка

plot(x,y2,'b--','LineWidth',2) %побудова другого графіка

xlabel('агрумент х','FontName','Arial','FontSize', 12)

ylabel('функція y','FontName','Arial','FontSize', 12)

title('графіки залежності y_1(x) та y_2(x)','FontName','TimesNewRoman','FontSize',12)

grid %активація сітки

axis([-25 40 -200000 200000]) %масштабування графіків

Побудовані і оформлені за даною програмою графіки, що є рішенням для системи алгебричних рівнянь показані на рис. 7.57.

Рис. 7.56. Структурна схема для вирішення системи алгебричних рівнянь

Рис. 7.57. Графічний розв’язок системи алгебричних рівнянь

 

 

Розглянемо ще один приклад. Задане алгебричне рівняння вигляду

.

Змінна х змінюється від -100 до 100 за 100 секунд. Отримати графічну залежності y=f(x). Занести дані у робочу область MatLab та використати команди для побудови графіків, оформити їх та підписати осі.

Структурна схема для розв’язання цього рівняння зображена на рис. 7.58. Для занесення масивів x, y використані блоки To Workspace з бібліотеки Sinks. У цих блоках виставлений формати виводу – array та присвоєні наступні назви змінним: x – х, y – y. Програма для побудови та оформлення графіків буде мати наступний вигляд

plot(x,y,'r-','LineWidth',2) %побудова першого графіка

xlabel('агрумент х','FontName','Arial','FontSize', 12)

ylabel('функція y','FontName','Arial','FontSize', 12)

title('графіки залежності y(x)','FontName','TimesNewRoman', 'FontSize',12)

grid %активація сітки

Побудований і оформлений за даною програмою графік, що є рішенням для алгебричного рівняння показані на рис. 7.59.

Рис. 7.58. Структурна схема для вирішення алгебричного рівняння

 

 

Рис. 7.59. Графічний алгебричного рівняння

 

Побудова заданої траєкторії руху

У задачах автоматизації електромеханічних систем важливим є питання відпрацювання об’єктом керування заданої траєкторії руху. Нехай задана траєкторія, що зображена на рис. 7.60. Необхідно скласти структурну схему з блоків Simulink для задання цієї траєкторії та побудувати за допомогою відповідних команд.

Рис. 7.60. Задана траекторія руху

На початку руху потрібно задати пряму розгону. Це можна зробити за допомогою блоку Ramp з параметром Slope=314/5=62.8 та обмежити його наростання блоком Saturation з параметром верхньої межі обмеження Upper Limit=314 (Lover Limit можна поставити рівним 0 або залишити за умовчуванням так як він ні на що не впливає у даному прикладі). Ця початкова схема та вихідний сигнал показані на рис. 7.61.

Рис. 7.61. Початок формування траекторії

 

Далі у час 15 секунд потрібно відняти від вихідного сигналу 114 для того, щоб отримати величину 200. Це робиться за допомогою блоків Sum та Step. У параметрі Step Time блока Step необхідно поставити 15, а параметри Final Value=114. Цей блок необхідно підключити до «-» суматора на вихідному сигналі. Ця частина схеми та відповідна частина траєкторії зображени на рис. 7.62.

Рис. 7.62. Другий етап формування траєкторії

Наступним етапом буде на 25-й секунді підключення блоку Ramp з від’ємним коефіцієнтом нахилу для досягнення сигналом величини -200 за 20 секунд (з 25-ї по 45-у секунди) Slope=-400/20=-20 та обмежити його на виході блоком Saturation з параметром Lover Limit=-400 (параметр Upper Limit можна задати 0 або залишити за умовчуванням). Цей сигнал необхідно подати на додатній вхід суматора. Цей етап формування траєкторії показаний на рис. 7.63.

Рис. 7.63. Третій етап формування траєкторії

 

Далі за допомогою блоку Step у 55 секунд віднімаємо від вихідного сигнала 114 для отримання величини -314. Для цього вводяться наступні параметри блока Step Time=55, Final Value=114 та його сигнал заводиться на від’ємний вхід суматора. Цей етап формування траєкторії показаний на рис. 7.64.

Рис. 7.64. Четвертий етап формування траєкторії

Останнім етапом є зниження сигналу до 0 за 5 секунд, починаючи з 65-ї секунди. Для цього знову застосовується блок Ramp з параметрами Start Time=65, Slope=314/5=68.2 та блок Saturation на виході з параметром Upper Limit=314 (Lover Limit можна поставити рівним 0 або залишити за умовчуванням). Цей сигнал необхідно подати на додатній вход суматора. Сформована траєкторія та структурна схема показані на рис. 7.65.

Рис. 7.65. Сформована траекторія та її структурна схема

 

Створення заданих сигналів

Розглянемо створення заданого сигналу на прикладі синусоїди u(t)=3sin(2t), що показана на рис. 7.66. Необхідно привести її до вигляду, що зображений на рис. 7.67.

Рис. 7.66. Вигляд заданої синусоїди u(t)=3sin(2t)

Рис. 7.67. Вигляд зміненої синусоїди

 

Як видно з рис. 7.66 період синосоїди дорівнює π. Щоб отримати синусоїду, зображену на рис. 7.67, потрібно починаючи у час t=3π/4 выдключати подачу синусоїдального сигналу, у час t=5π/4 знову включати, у час t=7π/4 виключати и т.д. Застосовуємо блок Switch з параметром Threshold=0 і критерієм переключення u2>= Threshold, що буде перемикатися у потрібний час. На верхній вхід подається задана синусоїда за допомогою блоку SineWave, на нижній вхід подається нульовий сигнал за допомогою блоку Constant. На керуючий вхід блоку у відповідні моменти часу потрібно подавати ступінчаті сигнали -1 (для переключення на нижній вхід) та +1 (для переключення на верхній вхід). Структурна схема, що реалізує змінену синусоїду, показана на рис. 7.68.

Рис. 7.68. Структурна схема для створення зміненої синусоїди






Дата добавления: 2014-11-10; просмотров: 275. Нарушение авторских прав

Studopedia.info - Студопедия - 2014-2017 год . (0.354 сек.) русская версия | украинская версия