
- •Островерхов м.Я., Бур’ян с.О. Обчислювальна техніка та програмування-2
- •Лабораторна робота № 1 основи роботи з функціями, векторами та матрицями
- •Основні теоретичні відомості
- •Програма роботи
- •1.4. Контрольні запитання
- •Лабораторна робота № 2 побудова та правила оформлення графіків функцій
- •Основні теоретичні відомості
- •Програма роботи
- •Програма роботи
- •3.4. Контрольні запитання
- •Лабораторна робота № 4 програмування у м-файлах
- •Основні теоретичні відомості
- •Програма роботи
- •4.4. Контрольні запитання
- •Лабораторна робота № 5 Чисельне Вирішення диференційних рівнянь у м-файлах
- •Основні теоретичні відомості
- •Програма роботи
- •Програма роботи
- •6.4. Контрольні запитання
- •Лабораторна робота № 7 Основні бібліотеки блоків тулбоксу simulink та їх застосування
- •Основні теоретичні відомості
- •Програма роботи
- •7.4. Контрольні запитання
- •Лабораторна робота № 8 вирішення диференційних рівнянь за допомогою структурних схем
- •Основні теоретичні відомості
- •Програма роботи
- •8.4. Контрольні запитання
- •Лабораторна робота № 9 вирішення систем диференційних рівнянь за допомогою структурних схем
- •9.1. Основні теоретичні відомості
- •Програма роботи
- •9.4. Контрольні запитання
- •Лабораторна робота № 10 вирішення диференційних рівнянь за допомогою редактора dee
- •Основні теоретичні відомості
- •Програма роботи
- •10.4. Контрольні запитання
- •Лабораторна робота № 11 моделювання за допомогою структурних схем підсистем
- •Основні теоретичні відомості
- •Програма роботи
- •Контрольні запитання
- •Лабораторна робота № 12 моделювання електромеханічних систем на основі двигуна постійного струму
- •12.1. Основні теоретичні відомості
- •Програма роботи
- •12.4. Контрольні запитання
- •Список рекомендованої літератури
6.4. Контрольні запитання
Що таке Symbolic Toolbox? Які його основні функції?
Наведіть процедуру створення символічних змінних, чисел, виразів та масивів.
Основні команди для спрощення та перетворення виразів.
Як вирішуються алгебричні рівняння та системи рівнянь символічними методами?
Символьне інтегрування та вирішення границь.
Способи вирішення диференційних рівнянь та систем диференційних рівнянь символічними методами.
Лабораторна робота № 7 Основні бібліотеки блоків тулбоксу simulink та їх застосування
Тривалість лабораторної роботи – 4 год.
Мета роботи – ознайомлення з тулобоксом візуального моделювання Simulink та з його основними бібліотеками блоків, вивчення правил їх з’єднання, правил створення структурних схем та прикладів їх застосування.
Основні теоретичні відомості
Запуск Simulink та послідовність створення нової моделі.
Для запуску тулбоксу Simulink необхідно попередньо запустити пакет MatLab, основне вікно якого представлено на рис. 7.1. У вікні показана підказка, що з’являється при наведенні курсору миші на ярлик Simulink у панелі інструментів.
Рис. 7.1. Основне вікно пакету MatLab з ярликом Simulink
Після
натиснення на кнопку
відкривається вікно, що зображено на
рис. 7.2.
Рис. 7.2. Бібліотеки блоків Simulink
На рис. 7.2 у лівій частині вікна розкритий наступний список бібліотек блоків Simulink:
Commonly Used Blocks – блоки, що часто використовуються;
Continuous – аналогові блоки;
Discontinuities – нелінійні блоки;
Discrete – дискретні блоки;
Logic and Bit Operations – логічні операції та операції з бітами;
Lookup Tables – блоки таблиць;
Math Operations – блоки математичних операцій;
Model Verification – блоки перевірки моделей;
Model-Wide Utilities – блоки розширення моделей;
Ports & Subsystems – порти та підсистеми;
Signal Attributes – блоки властивостей сигналів;
Signal Routing – блоки маршрутизації (перетворення) сигналів;
Sinks – блоки приймачів сигналів;
Sources – блоки джерел сигналів
Used-Defined Functions – функції, що задаються користувачем;
Additional Math & Discrete – додаткові математичні та дискретні блоки.
Список розділів бібліотеки Simulink представлено у вигляді дерева і правила роботи з ним є загальними для списків такого виду: піктограма згорнутого вузла дерева містить символ "+", а піктограма розгорнутого містить символ "-"; для розгортання або згортання вузла дерева достатньо натиснути на його піктограмі лівою клавішею мишки.
При виборі відповідного розділу бібліотеки в правій частині вікна відображається його вміст (рис. 7.3).
Рис. 7.3. Бібліотека Continuous з її набором блоків
Для роботи з представленим вікном використовуються команди меню:
File (Файл) – робота з файлами бібліотек;
Edit (Редагування) – додавання блоків і їхній пошук (за назвою);
View (Вид) – керування показом елементів інтерфейсу;
Help (Довідка) – вивід вікна довідки по оглядачу бібліотек;
Повний список команд меню бібліотек наведений у додатковій літературі [2].
Для створення моделі в середовищі Simulink необхідно послідовно виконати наступні дії:
Створити нове вікно моделі за допомогою команди File→New→Model або кнопки
на панелі інструментів. Вигляд нового вікна моделі показано на рис. 7.4.
Рис. 7.4. Вікно нової Simulink-моделі
Розташувати у створеному вікні необхідні бібліотечні блоки, що реалізують задану модель структурної схеми. Для цього необхідно відкрити відповідний розділ бібліотеки, наприклад, Sources – блоки джерел сигналів. Далі, виділити вказівником миші необхідний блок бібліотеки, натиснути на ліву клавішу миші, перетягнути блок у створене вікно моделі та відпустити клавішу. На рис. 7.5 показано вікно моделі з чотирма перетягнутими бібліотечними блоками. При необхідності блок з вікна моделі можна вилучити. Для цього блок спочатку виділяється натисканням лівої клавіші мишки при знаходження курсору на його зображенні, а потім натискається клавіша Delete на клавіатурі. Для зміни розмірів блоку потрібно вибрати блок, установити курсор в один з його кутів, натиснувши ліву клавішу мишки змінити розмір блоку (курсор при цьому перетворюється у двосторонню стрілку).
Рис. 7.5. Вікно Simulink-моделі з бібліотечними блоками
Змінити параметри кожного блоку, установлені програмою автоматично, тобто “за згодою”. Для цього необхідно вибрати вказівником миші блок та двічі натиснути її лівою клавішею, після чого відкривається вікно редагування параметрів даного блоку. При завданні числових значень параметрів варто мати на увазі, що десятковим роздільником повинна використовуватися крапка, а не кома. Після внесення змін нові параметри активуються кнопкою Apply чи кнопкою OK (в останньому випадку вікно закривається). На рис. 7.6, як приклад, показано блок, що моделює похідну від функції, та вікно редагування параметрів даного блоку.
Рис. 7.6. Блок, що моделює похідну від функції, та вікно редагування параметрів блоку
Виконати з’єднання елементів схеми. Для з’єднання блоків необхідно вказати курсором на вихід необхідного блоку, а потім при натиснутій лівій клавіші миші, провести лінію до входу іншого блоку. Після чого відпустити клавішу. У випадку правильного з’єднання зображення стрілки на вході блоку змінює колір. Для створення точки розгалуження на лінії сполучення потрібно підвести курсор до передбачуваного вузла й, нажавши праву клавішу мишки, провести лінію. Для видалення лінії потрібно її вибрати лінію (так само, як це виконується для блоку), а потім нажати клавішу Delete на клавіатурі. Схема моделі, у якій виконані з’єднання між блоками, показана на рис. 7.7.
Рис.
7.7.
Simulink-модель структурної схеми
Зберегти модель у файл на диску, вибравши пункт меню FileSave As у вікні схеми й указавши папку й ім’я файлу. Варто мати на увазі, що ім’я файлу повинне починатися з букви, не повинне перевищувати 32 символів й не може містити символів кирилиці і спецсимволів. Ця ж вимога ставиться й до шляху файлу (до тих папок, у яких зберігається файл). При наступному редагуванні схеми можна користуватися пунктом меню FileSave. При повторних запусках програми Simulink завантаження схеми здійснюється за допомогою меню FileOpen у вікні оглядача бібліотеки або з основного вікна MatLab.
Вікно моделі містить наступні елементи (7):
Заголовок з назвою вікна. Новому вікну привласнюється ім'я Untitled з відповідним номером;
Меню з командами File, Edit, View і т.д.;
Панель інструментів;
Вікно для створення схеми моделі;
Рядок стану, що містить інформацію про поточний стан моделі.
Меню вікна містить команди для редагування моделі, її настроювання й керування процесом розрахунку, роботи з файлами тощо:
File (Файл) – робота з файлами моделей;
Edit (Редагування) – зміна моделі й пошук блоків;
View (Вид) – керування показом елементів інтерфейсу;
Simulation (Моделювання) – завдання настроювань для моделювання й керування процесом розрахунку;
Format (Форматування) – зміна зовнішнього вигляду блоків і моделі в цілому;
Tools (Інструментальні засоби) – застосування спеціальних засобів для роботи з моделлю;
Help (Довідка) – вивід вікон довідкової системи.
Повний список команд меню вікна моделі наведений у додатковій літературі [2].
Для роботи з моделлю можна також використовувати кнопки на панелі інструментів (рис. 7.8).
Рис. 7.8. Панель інструментів вікна моделі
Кнопки панелі інструментів мають наступне призначення:
New Model – відкрити нове (порожнє) вікно моделі;
Open Model – відкрити існуючий mdl-файл;
Save – зберегти mdl-файл на диску;
Print – вивід на друк блок-діаграми моделі;
Cut – вирізати виділену частину моделі в буфер проміжного зберігання;
Copy – скопіювати виділену частину моделі в буфер проміжного зберігання;
Paste – вставити у вікно моделі вміст буфера проміжного зберігання;
Navigate Back – навігація масштабів (якщо використовувалися команди Viev→Zoom In або Viev→Zoom Out);
Navigate Forward – навігація масштабів (якщо використовувалися команди Viev→Zoom In або Viev→Zoom Out);
Go To Parent System – перейти до батьківської системи (у разі якщо користувач знаходиться у підсистемі);
Undo – скасувати попередню операцію редагування;
Redo – відновити результат скасованої операції редагування;
Start/Pause/Continue Simulation – запуск моделі на виконання (команда Start). Після запуску моделі на зображенні кнопки виводиться символ
, і їй відповідає вже команда Pause (призупинити моделювання). Для поновлення моделювання варто натиснути по тій же кнопці, оскільки в режимі паузи їй відповідає команда Continue (продовжити);
Stop – закінчити моделювання. Кнопка стає доступної після початку моделювання, а також після виконання команди Pause;
Simulation Stop Time – час закінчення моделювання;
Simulation Mode – вибір режиму моделювання;
Show Port Values When Hovering – показувати значення портів;
Incremental Build – режим інкрементації (тільки для систем з фіксованим кроком);
Refresh Model Blocks – відновити блоки моделі;
Update Diagram – відновити діаграму;
Build System – побудувати систему (тільки якщо створена підсистема);
Library Browser – відкрити вікно оглядача бібліотек;
Launch Model Explorer – запустити провідник моделі;
Toggle Model Browser – відкрити вікно оглядача моделі;
Debug – запуск відладчика моделі.
У нижній частині вікна моделі є рядок стану, у якому відображаються короткі коментарі до кнопок панелі інструментів, а також до пунктів меню, коли вказівник мишки перебуває над відповідним елементом інтерфейсу. Це ж текстове поле використовується й для індикації стану Simulink: Ready (Готово) або Running (Виконання). У рядку стану відображаються також:
масштаб відображення блок-діаграми (у відсотках, вихідне значення дорівнює 100%);
індикатор ступеня виконання сеансу моделювання (з'являється після запуску моделі);
поточного значення модельного часу (виводиться також тільки після запуску моделі);
використовуваний алгоритм розрахунку моделі (метод вирішення).
Додавання текстових написів до моделі.
Для підвищення наочності моделі зручно використовувати текстові написи. Для створення напису потрібно вказати мишею місце напису й двічі натиснути лівою клавішею миші. Після цього з’явиться прямокутна рамка з курсором для введення тексту. Аналогічним чином можна змінити й підпис до блоку. На рис. 1.9 показано текстовий напис і зміна напису в блоці передатної функції. (Варто мати на увазі, що деякі версії Simulink не адаптовані до використання кириличних шрифтів. В цьому випадку застосування написів кирилицею не бажано).
Pис. 7.9. Приклад додавання напису та зміна підпису блоків
Виділення, копіювання, переміщення, вставка, видалення об’єктів та робота з буфером обміну Windows.
Для виконання якої-небудь дії з елементом моделі (блоком, сполучною лінією, написом) цей елемент необхідно спочатку виділити. Виділення об'єктів простіше всього здійснюється мишею. Для цього необхідно встановити курсор миші на потрібному об’єкті й натиснути лівою клавішею. Відбудеться виділення об’єкта. Про це будуть свідчити маркери по кутах об’єкта (див. рис. 7.9). Можна також виділити кілька об’єктів. Для цього треба встановити курсор миші поблизу групи об’єктів, нажати ліву клавішу й, не відпускаючи її, почати переміщувати мишу. З’явиться пунктирна рамка, розміри якої будуть змінюватися при переміщенні мишки. Всі охоплені рамкою об’єкти стають виділеними. Виділити всі об'єкти також можна, використовуючи команду Edit→Select All.
Після виділення об’єкта його можна копіювати або переміщати в буфер проміжного зберігання, витягати з буфера, а також видаляти, використовуючи стандартні прийоми роботи в Windows.
Для
копіювання об’єкта
в буфер його необхідно попередньо
виділити, а потім виконати команду
Edit→Copy
або скористатися кнопкою
на
панелі інструментів. Копіювання можна
виконати й у такий спосіб: нажати праву
клавішу миші і не відпускаючи її,
перемістити об’єкт. При цьому буде
створена копія об’єкта,
яку можна перемістити в необхідне місце.
Для
вирізання об’єкта
в буфер його необхідно попередньо
виділити, а потім виконати команду
Edit→Cut
або скористатися кнопкою
на
панелі інструментів.
При виконанні даних операцій варто мати на увазі, що об’єкти знаходяться у власному буфері MatLab і недоступні з інших додатків. Використання команди Edit→Copy Model To Clipboard дозволяє помістити графічне зображення моделі в буфер Windows і робить його доступним для інших програм.
Для
вставки об’єкта
з буфера необхідно попередньо вказати
місце вставки, натиснувши лівою клавішею
мишки в передбачуваному місці вставки,
а потім виконати команду Edit→Paste
або скористатися кнопкою
на
панелі інструментів.
Для видалення об’єкта його необхідно попередньо виділити, а потім виконати команду Edit→Delete або скористатися клавішею Delete на клавіатурі. Варто врахувати, що команда Delete видаляє блок без переміщення його в буфер обміну. Однак цю операцію можна скасувати командою меню Edit→Undo. Для видалення всіх об’єктів можна використати команду Edit→Delete All, або виділити усі об’єкти та натиснути клавішу Delete на клавіатурі.
З’єднання, зміна розмірів та переміщення блоків.
Для з’єднання блоків необхідно спочатку встановити курсор миші на вихідний порт одного із блоків. Курсор при цьому перетвориться у великий хрест із тонких ліній (рис. 7.10).
Рис. 7.10. Початок створення з’єднання
Тримаючи натиснутою ліву кнопку миші, потрібно перемістити курсор до вхідного порту потрібного блоку. Курсор миші прийме вид хреста з тонких здвоєних ліній (рис. 7.11).
Рис. 7.11. Завершення створення з'єднання
Після створення лінії необхідно відпустити ліву клавішу миші. Свідченням того, що з’єднання створене, буде жирна стрілка у вхідного порту блоку. Виділення лінії виробляється точно також як і виділення блоку – одинарним натисканням лівої клавіші миші. Чорні маркери, розташовані у вузлах сполучної лінії будуть говорити про те, що лінія виділена.
Створення петлі лінії з’єднання виконується також як переміщення блоку. Лінія з’єднання виділяється, і потім потрібна частина лінії переміщується (рис. 7.12). Видалення з’єднань виконується як і будь-яких інших об’єктів.
Рис. 7.12. Створення петлі в сполучній лінії
Для зміни розміру блоку він виділяється, після чого курсор миші встановлюється на один з маркерів по кутах блоку. Після перетворення курсору у двосторонню стрілку, необхідно нажати ліву клавішу миші й розтягти (або стиснути) зображення блоку. На рис. 7.13 показаний цей процес. Розміри написів блоку при цьому не змінюються.
Рис. 7.13. Зміна розміру блоку
Будь-який блок моделі можна перемістити, виділивши його, і пересунувши, тримаючи натиснутої ліву клавішу миші. Якщо до входів і виходів блоку підведені сполучні лінії, то вони не розриваються, а лише скорочуються або збільшуються в довжині. У з’єднання можна також вставити блок, що має один вхід і один вихід. Для цього його потрібно розташувати в необхідному місці сполучної лінії.
У
процесі освоєння програми користувач
може робити дії, які на перший погляд є
незворотними, (наприклад, випадкове
видалення частини моделі, копіювання
тощо). У цьому випадку варто скористатися
командою Undo
–
скасування
останньої операції. Команду можна
викликати також за допомогою кнопки
в
панелі інструментів вікна моделі або
з меню Edit.
Для відновлення скасованої операції
служить команда Redo
(інструмент
).
Форматування об’єктів.
У меню Format (також як і в контекстному меню, що викликається натисканням правої клавіші миші на об’єкті) присутній набір команд форматування блоків. Команди форматування розділяються на кілька груп:
1) Зміна відображення написів:
Font – форматування шрифту написів і текстових блоків.
Text alignment – вирівнювання тексту в текстових написах.
Flip name – переміщення підпису блоку.
Show/Hide name – відображення або приховання підпису блоку.
2) Зміна кольорів відображення блоків:
Foreground color – вибір кольору ліній для виділених блоків.
Background color – вибір кольору фону виділених блоків.
Screen color – вибір кольору фону для всього вікна моделі.
3) Зміна положення блоку і його виду:
Flip block – дзеркальне відображення щодо вертикальної осі симетрії.
Rotate block – поворот блоку на 90о за годинниковою стрілкою.
Show drop shadow – показ тіні від блоку.
Show port labels – показ міток портів.
Установка параметрів моделювання.
Перед виконанням розрахунків (перед початком моделювання) необхідно попередньо задати параметри моделювання. Завдання параметрів розрахунку виконується в панелі керування меню Simulation→Configuration Parameters. Вид панелі керування наведений на рис. 7.14.
Рис. 7.14. Вікно з налаштуваннями параметрів моделювання
Це вікно має декілька вкладок зліва. Зупинимось на вкладці Solver, що задає налаштування параметрів розрахунку моделі. Вона містить наступні 4 групи:
Simulation time – час розрахунку;
Solver options – параметри розрахунку;
Tasking and sample time options – параметри періоду квантування моделі;
Zero-crossing options – параметри режиму пересікання нуля.
Для звичайних налаштувань потрібні тільки перші дві групи. Розглянемо детальніше кожну з них.
Час розрахунку (Simulation time) задається початковим (Start time) і кінцевим (Stop time) значенням часу розрахунку. Початковий час, як правило, задається рівним нулю. Величина кінцевого часу задається користувачем, виходячи з умов розв’язання завдання.
При виборі параметрів розрахунку необхідно вказати спосіб моделювання (Type) і метод розрахунку нового стану системи (Solver). Для параметра Type доступні два варіанти – c фіксованим (Fixed-step) або зі змінним (Variable-step) кроком. Список методів розрахунку нового стану системи містить кілька варіантів. Перший варіант (discrete) використовується для розрахунку дискретних систем. Інші методи використовуються для розрахунку безперервних систем. Ці методи різні для змінного (Variable-step) і для фіксованого (Fixed-step) кроку часу та являють собою процедури числового вирішення систем диференціальних рівнянь, що описують модель. Докладний опис кожного з методів розрахунку системи наведено в довідковій системі MatLab, а також стислий опис їх наведений у теоретичних відомостях до лабораторної роботи №5.
Нижче двох списків Type перебуває область, вміст якої змінюється в залежності від обраного способу зміни модельного часу. При виборі Fixed-step у даній області з’являється текстове поле Fixed-step size (величина фіксованого кроку), що дозволяє задавати величину кроку моделювання (рис. 7.15). Величина кроку моделювання за згодою установлюється системою автоматично (auto). Необхідна величина кроку може бути введена замість значення auto або у формі числа, або у вигляді виразу (це відноситься й до всіх параметрів, що встановлюються системою автоматично).
При виборі Fixed-step необхідно також задати режим розрахунку (Tasking mode for periodic sample times), для якого доступні три варіанти:
MultiTasking (багатозадачний) – використовується, якщо в моделі присутні паралельно працюючі підсистеми, і результат роботи моделі залежить від часових параметрів цих підсистем. Режим дозволяє виявити
Рис. 7.15. Вікно з налаштуваннями параметрів моделювання при виборі фіксованого кроку розрахунку
невідповідність швидкості й дискретності сигналів, що пересилаються блоками один одному.
SingleTasking (однозадачний) – використовується для тих моделей, у яких недостатня синхронізація роботи окремих складових не впливає на кінцевий результат моделювання.
Auto (автоматичний вибір режиму) – дозволяє Simulink автоматично встановлювати режим MultiTasking для тих моделей, у яких використовуються блоки з різними швидкостями передачі сигналів, і режим SingleTasking для моделей, у яких є блоки, що оперують однаковими швидкостями.
При виборі Variable-step в області з'являються поля для установки трьох параметрів:
Мах step size – максимальний крок розрахунку. За згодою крок встановлюється автоматично (auto) і його значення в цьому випадку визначається виразом (SfopTime мінус StartTime)/50. Досить часто це значення виявляється занадто великим, що може призвести до нестійкості процесу моделювання та до графіків змінних у вигляді ламаних ліній. У цьому випадку величину максимального кроку розрахунку необхідно задавати явно.
Мin step size – мінімальний крок розрахунку.
Initial step size – початкове значення кроку моделювання.
При моделюванні безперервних систем з використанням змінного кроку необхідно вказати точність обчислень: відносну (Relative tolerance) і абсолютну (Absolute tolerance). За згодою вони рівні і дорівнюють 10-3 чи auto.
Виконання розрахунку та завершення роботи.
Запуск
розрахунку виконується за допомогою
вибору пункту меню Simulation→Start
або інструмента
на
панелі інструментів. Процес розрахунку
можна завершити достроково, вибравши
пункт меню Simulation→Stop
або
інструмент
.
Розрахунок також можна призупинити
(Simulation→Pause)
і
потім продовжити (Simulation→Continue).
Для завершення роботи необхідно зберегти модель у файлі, закрити вікно моделі, вікно оглядача бібліотек, а також основне вікно пакета MatLab.
Основні бібліотекі блоків Simulink.
1.Sources – джерела сигналів.
1.1. Джерело постійного сигналу Constant
Constant задає постійний за рівнем сигнал.
Основні параметри:
1) Constant value – постійна величина.
2) Interpret vector parameters as 1-D – інтерпретувати вектор параметрів як одномірний (при встановленому прапорці). Даний параметр зустрічається в більшості блоків бібліотеки Simulink. Надалі він розглядатися не буде.
3) Sample time – крок квантування (дискретизації). Даний параметр зустрічається в більшості блоків бібліотеки Simulink. Надалі він розглядатися не буде.
Значення константи може бути дійсним або комплексним числом, що обчислюється виразом, вектором або матрицею. Рис. 7.16 ілюструє застосування цього джерела й вимір його вихідного сигналу за допомогою цифрового індикатора Display.
Рис. 7.16. Приклад використання джерела постійного сигналу Constant та його параметри
1.2. Генератор стрибкового сигналу Step.
Step Формує стрибковий сигнал.
Основні параметри:
1) Step time – час настання перепаду сигналу (с).
2) Initial value – початкове значення сигналу.
3) Final value – кінцеве значення сигналу.
4) Sample time– крок квантування (дискретизації).
Перепад може бути як у більшу сторону (кінцеве значення більше, чим початкове), так і в меншу (кінцеве значення менше, ніж початкове). Значення початкового й кінцевого рівнів можуть бути не тільки додатними, але й від’ємними (наприклад, зміна сигналу з рівня -5 до рівня -3). На рис. 7.17 показано використання генератора стрибкового сигналу.
Рис. 7.17. Приклад використання генератора стрибкового сигналу Step та його параметри
1.3. Джерело лінійнонаростаючого сигналу Ramp
Формує лінійний сигнал виду y= Slope* time + Initial value
Основні параметри:
1) Slope – швидкість зміни вихідного сигналу.
2) Start time – час початку формування сигналу.
3) Initial output – початковий рівень сигналу на виході блоку.
На рис. 7.18. показано приклад використання даного блоку.
Рис. 7.18. Приклад використання джерела лінійнонаростаючого сигналу Ramp та його параметри
Параметр
Slope розраховується для конкретної
задачі, як тангенс кута нахилу сигналу.
Нехай потрібно задати сигнал, що за 10
секунд наростає до величини 50, як показано
на рис. 7.19. У цьому випадку величина
Slope розраховується як
.
Вигляд отриманого сигналу показаний на рис.7.19.
Рис. 7.19. Приклад створення заданого лінійнонаростаючого сигналу
1.4. Джерело сигналу часу Clock
Формує сигнал, величина якого на кожному кроці розрахунку дорівнює поточному часу моделювання.
Основні параметри:
1) Decimation – крок, з яким обновляються показання часу на зображенні джерела, якщо встановлено прапорець параметра Display time. Параметр задається як кількість кроків розрахунку. Наприклад, якщо крок розрахунку моделі у вікні діалогу Simulation parameters установлений рівним 0.01 с, а параметр Decimation блоку Clock заданий рівним 1000, то відновлення показань часу буде вироблятися кожні 10 с модельного часу.
2) Display time – відображення значення часу в блоці джерела.
На рис. 7.20 показаний приклад роботи даного джерела.
Рис.
7.20.
Приклад використання джерела сигналу
часу Clock
та його параметри
1.5. Джерело синусоїдального сигналу Sine Wave
Формує синусоїдальний сигнал із заданою частотою, амплітудою, фазою й зсувом.
Для формування вихідного сигналу блоком можуть використовуватися два алгоритми. Вид алгоритму визначається параметром Sine Type (спосіб формування сигналу):
Time-based – за поточним часом.
Sample-based – по величині кроку модельного часу.
При формуванні вихідного сигналу за поточним часом Time-based сигнал джерела для безперервних систем формується за виразом
y = Amplitude* sin(Frequency*(Sample time) + Phase) + Bias
де Amplitude – амплітуда.
Bias – постійна складова сигналу.
Frequency (rads/sec) – частота (рад/с).
Phase (rads) – початкова фаза (рад).
При розрахунках дуже великих значень часу точність розрахунку вихідних значень сигналу падає внаслідок значної помилки округлення.
При формуванні вихідного сигналу за поточним часом Time-based сигнал джерела для дискретних систем формується за таким виразом (у матричній формі)
де ∆t – постійна величина, рівна значенню Sample time.
У даному режимі помилка округлення для великих значень часу також зменшує точність розрахунку.
Формування вихідного сигналу по величині модельного часу 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 кнопок:
Print – друк вмісту вікна осцилографа.
Parameters – доступ до вікна настроювання параметрів.
Zoom – збільшення масштабу по обох осях.
Zoom X-axis – збільшення масштабу по горизонтальній осі.
Zoom Y-axis – збільшення масштабу по вертикальній осі.
Autoscale – автоматична установка масштабів по обох осях.
Save current axes settings – збереження поточних настроювань вікна.
Restore saved axes settings – установка раніше збережених настроювань вікна.
Floating scope – переключення осцилографа в “вільний” режим.
Lock/Unlock axes selection – закріпити/розірвати зв'язок між поточною координатною системою вікна й відображуваним сигналом. Інструмент доступний, якщо включено режим Floating scope.
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.
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
Блок реалізує релейну нелінійність.
Основні параметри:
Switch on point – поріг включення. Значення, при якому відбувається включення реле.
Switch off point – поріг вимикання. Значення, при якому відбувається вимикання реле.
Output when on – величина вихідного сигналу у включеному стані.
Output when off – величина вихідного сигналу у виключеному стані.
Вихідний сигнал блоку може приймати два значення. Одне з них відповідає включеному стану реле, друге – виключеному. Перехід одного стану в інше відбувається стрибком при досягненні вхідним сигналом порога включення або вимикання реле. У тому випадку, якщо пороги включення й вимикання реле мають різні значення, то блок реалізує релейну характеристику з гістерезисом. При цьому значення порога включення повинне бути більше, ніж значення порога вимикання.
На рис. 7.42 показаний приклад використання блоку Relay. На часових діаграмах видно, що включення реле відбувається при досягненні вхідним сигналом величини 0,5, а вимикання при -0,5.
Рис. 7.42. Приклад використання блоку Relay та його параметри
5. Signal Routing – маршрутизатори сигналів
5.1. Мультиплексор (змішувач) Mux
Блок поєднує вхідні сигнали у вектор.
Параметри:
Number of Inputs – кількість входів.
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 розділяє вхідний векторний сигнал на окремі складові.
Параметри:
Number of Outputs – кількість виходів.
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
Блок виконує обчислення суми поточних значень сигналів.
Параметри:
Icon shape – форма блоку, що вибирається зі списку:
round – окружність.
rectangular – прямокутник.
List of sign – список знаків. У списку можна використовувати наступні знаки: + (плюс), - (мінус) та | (роздільник знаків).
Saturate on integer overflow (прапорець) – подавляти переповнення цілого. При встановленому прапорці обмеження сигналів цілого типу виконується коректно.
Кількість входів і операція (додавання або віднімання) визначається списком знаків параметра List of sign. При цьому мітки входів позначаються відповідними знаками. У параметрі List of sign можна також указати число входів блоку. У цьому випадку всі входи будуть підсумовуючими. Якщо кількість входів блоку перевищує 3, то зручніше використовувати блок Sum прямокутної форми. Блок може використовуватися для підсумовування скалярних, векторних або матричних сигналів. Типи сигналів суми повинні збігатися. Не можна, наприклад, подати на той самий підсумовуючий блок сигнали цілого й дійсного типів. Якщо кількість входів блоку більше, ніж один, то блок виконує поелементні операції над векторними й матричними сигналами. При цьому кількість елементів у матриці або векторі повинне бути однаковим. Якщо в якості списку знаків указати цифру 1 (один вхід), то блок можна використовувати для визначення суми елементів вектора.
Приклади використання блоку Sum показані на 7.48.
Рис. 7.48. Приклади використання блоку Sum та його параметри
6.3. Блок множення Product
Блок виконує обчислення добутку поточних значень сигналів.
Параметри:
Number of inputs – кількість входів, що може задаватися як число або як список знаків. У списку знаків можна використовувати знаки * (помножити) та / (розділити).
Multiplication – спосіб виконання операції, що може приймати значення (зі списку):
Element-wise – поелементний.
Matrix – матричний.
Saturate on integer overflow (прапорець) – подавляти переповнення цілого. При встановленому прапорці обмеження сигналів цілого типу виконується коректно.
Якщо параметр Number of inputs заданий списком, що включає крім знаків множення також знаки ділення, то мітки входів будуть позначені символами відповідних операцій. Блок може використовуватися для операцій множення або розподілу скалярних векторних або матричних сигналів. Типи вхідних сигналів блоку повинні збігатися. Якщо як кількість входів указати цифру 1 (один вхід), то блок можна використовувати для визначення добутку елементів вектора.
Приклади використання блоку Product при виконанні скалярних і поелементних операцій показані на 7.49.
При виконанні матричних операцій необхідно дотримувати правил їхнього виконання. Наприклад, при множенні двох матриць необхідно, щоб кількість рядків першої матриці рівнялося кількості стовпців другої матриці.
Рис.
7.49. Приклади
використання блоку Product
та його параметри
6.4. Підсилювач Gain
Блок виконуює множення вхідного сигналу на постійний коефіцієнт.
Параметри:
Gain – коефіцієнт підсилення.
Multiplication – спосіб виконання операції, що може приймати значення (зі списку):
Element-wise K* u – поелементний.
Matrix K*u – матричний. Коефіцієнт підсилення є лівостороннім операндом.
Matrix u*K – матричний. Коефіцієнт підсилення є правостороннім операндом.
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
Блок виконує обчислення математичної функції.
Параметри:
Function – вид функції (вибирається зі списку):
exp – експонентна функція.
log – функція натурального логарифма.
10^u – обчислення ступеня 10.
log10 – функції логарифма.
magnitude^2 – обчислення квадрата модуля вхідного сигналу.
square – обчислення квадрата вхідного сигналу.
sqrt – квадратний корінь.
pow – введення в ступінь.
conj – обчислення комплексно-спряженого числа.
reciprocal – обчислення частки від ділення вхідного сигналу на 1.
hypot – обчислення кореня квадратного із суми квадратів вхідних сигналів (гіпотенузи прямокутного трикутника за значеннями катетів).
rem – функція, що обчислює залишок від ділення першого вхідного сигналу на другий.
mod – функція, що обчислює залишок від ділення з урахуванням знака.
transpose – транспонування матриці.
hermitian – обчислення ермітової матриці.
Output signal type – тип вихідного сигналу (вибирається зі списку):
auto – автоматичне визначення типу.
real – дійсний сигнал.
complex – комплексний сигнал.
Тип вихідного сигналу залежить від типу вхідного сигналу й параметра блоку Output signal type.
Приклади використання блоку Math Function та його параметри показані на рис. 7.51.
Рис. 7.51. Приклади використання блоку Math Function та його параметри
6.6. Блок обчислення тригонометричних функцій Trigonometric Function
Блок виконує обчислення тригонометричної функції.
Параметри:
Function – вид функції (вибирається зі списку): sin, cos, tan, asin, acos, atan, atan2, sinh, cosh і tanh.
Output signal type – тип вихідного сигналу (вибирається зі списку):
auto – автоматичне визначення типу.
real – дійсний сигнал.
complex – комплексний сигнал.
При векторному або матричному вхідному сигналі блок виконує поелементне обчислення заданої функції.
Приклади використання блоку Trigonometric Function та його параметри показані на рис. 7.52.
Рис. 7.52. Приклади використання блоку Trigonometric Function та його параметри
6.7. Блок визначення мінімального або максимального значення MinMax
Блок визначає максимальне або мінімальне значення із всіх сигналів, що надходять на його входи.
Параметри:
Function – вихідний параметр. Вибирається зі списку:
min – мінімальне значення.
max – максимальне значення.
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. Структурна схема для створення зміненої синусоїди