Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lr Matlab.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
271.62 Кб
Скачать

Додаток засоби математичного моделювання у пакеті matlab

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

Бібліотека MATLAB складається з розділів, Toolboxes, кожен із яких є набором інструментів, призначених для вирішення певного кола проблем. Бібліотека містить не тільки стандартні для математичних пакетів засоби, такі як вирішення диференціальних та алгебраїчних рівнянь, інтегральне числення, символьні обчислення, але й надає можливість цифрової обробки зображень, пошуку рішень на основі нечіткої логіки, містить апарат побудови та аналізу нейронних мереж, засоби фінансового аналізу та інші – загалом біля 30 наборів інструментів.

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

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

  • M-файли (з розширенням .m) – файли, що містять тексти програм на мові MATLAB; у вигляді M-файлів реалізовані всі бібліотечні функції MATLAB; за замовченням M-файли відкриваються за допомогою власного редактора/відладчика MATLAB;

  • Mdl-файли (з розширенням .mdl) – файли моделей SIMULINK; можуть бути відкрити або за допомогою SIMULINK (у вигляді графічного вікна з блок-діаграмою), або за допомогою редактора/відладчика MATLAB;

  • MAT-файли (з розширенням .mat) – файли, що містять данні у двійковому коді, доступ до яких можливий або з командного вікна MATLAB або за допомогою спеціальних засобів SIMULINK;

Принципи будови інтерфейсу SIMULINK у багатьох аспектах є подібними до більшості типових Windows-програм, таких як, наприклад, Microsoft Word або Borland Delphi. Розробка S-моделей основана на технології drag-and-drop (“перетягуй та залишай”). В якості “цеглинок” для побудови S-моделей використовують модулі (блоки), що зберігаються в бібліотеці SIMULINK. При запусці SIMULINK відкривається вікно перегляду розділів, що містить панель інструментів, поле дерева розділів (ліворуч на рис.), допоміжне до нього поле, в якому містяться іконки розділів бібліотеки (праворуч на рис.1). При розкритті вузла дерева, що відповідає SIMULINK, можна відкрити також кожний позначений відповідною іконкою розділ в поле праворуч. При цьому відображається набір інструментів відповідного блоку. Після створення нового M-файлу або відкриття файлу з попередньо побудованою S-моделлю, можна додавати довільні інструменти, перетаскуючи їх з поля вікна перегляду у власний файл та настроюючи потрібні параметри.

Рис.1. Загальний вигляд вікна перегляду SIMULINK

Розглянемо деякі важливі при виконанні конкретних завдань у межах даного курсу функції SIMULINK. Наведемо короткі анотації відповідних блоків.

Інструменти, що входять до складу блоку Sources призначені для описання робочого навантаження (входу) системи, а також для формування сигналів, що забезпечують керування роботою S-моделі в цілому, або її окремих частин. Усі блоки-джерела мають по одному входу і не мають виходів. Кожне джерело має параметри, які можна настроїти згідно з вимогами до конкретної моделі, що будується.

Генератор “білого шуму” з обмеженою смугою.

Джерело гармонічних коливань із змінною частотою.

Генератор неперервного часового сигналу.

Джерело постійної величини (скаляра, вектора, матриці).

Джерело дискретного часового сигналу.

Генератор дискретних імпульсних сигналів.

Ввід у модель даних безпосередньо з робочої області MATLAB.

Ввід у S-модель даних, що зберігаються в MAT-файлі.

Генератор імпульсних сигналів.

Генератор лінійно зростаючого (спадаючого) сигналу.

Генератор дискретного сигналу, амплітуда якого є випадковою величиною з нормальним розподілом.

Джерело періодичного дискретного сигналу довільної форми.

Генератор неперервного сигналу довільної форми.

Генератор гармонічних коливань.

Джерело одиничного дискретного сигналу із заданими параметрами.

Джерело дискретного сигналу, амплітуда якого є рівномірно розподіленою випадковою величиною.

Блоки розділу Sinks можна поділити за призначенням на три групи. До складу першої входять ті, що використовуються при моделюванні в якості “оглядових вікон” (блоки з номерами 1, 2, 3 у таблиці). У другій групі – блоки, що забезпечують зберігання проміжних та/або вихідних результатів моделювання (блоки 4 та 5). У третій міститься блок керування моделюванням (блок 6).

1

Для відображення числових значень величин.

2

Для спостереження динаміки змін деякої характеристики системи у часі (її значення відкладаються по вісі ординат; по вісі абсцис – значення модельного часу).

3

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

4

Запис у файл.

5

Запис у робочу область.

6

Дозволяє перервати моделювання при виконанні певних умов (коли на вхід подається ненульовий сигнал).

Розділ Functions & tables містить три найважливіших універсальних блока, що описані в таблиці та спеціальні блоки (Direct Look-Up-Table (n-D), Interpolation (n-D), using PreLook-Up, Look-Up-Table, Look-Up-Table(2-D), Look-Up-Table (n-D), та PreLook-Up Index Search), пов’язані з забезпеченням можливості табличного завдання функцій.

Універсальний “обчислювальний блок”. Може обробляти довільний обчислюваний вираз, аргументом якого є значення вхідного сигналу. Аргумент виразу повинний бути вказаний явно. Вхідний сигнал позначається символом u. Пріоритети операцій – ті ж, що й в мові С. Блок також дозволяє застосувати до вхідного сигналу процедури обробки, які реалізовані у вигляді М-файлу.

Задає функцію однієї змінної за правилами мови базової системи MATLAB 6.0 (можуть бути використані як вбудовані функції MATLAB, так і довільні реалізовані у вигляді М-файлів). На вході блоку задається вектор значень вхідного сигналу, на виході формується вектор вихідного сигналу, тієї ж довжини.

Обчислює значення поліному, що задається вектором коефіцієнтів (у порядку зменшення степеню незалежної змінної). На вході – вектор значень незалежної змінної, на виході – вектор значень поліному, тієї ж довжини.

Дозволяє створювати нові блоки, за допомогою включення програм на мовах С, Ада, Фортран та MATLAB, що представлені файлами відповідних форматів.

Блоки розділу Signal and Systems можна умовно поділити на чотири групи. Пояснення надаються щодо тих двох з них, які мають безпосереднє відношення до вирішення завдань даного курсу. Першу групу утворюють блоки з першого по восьмий, які забезпечують керування сигналами, що використовуються у блок-діаграмі. У другу групу входять блоки з дев'ятого по п'ятнадцятий, що призначені для реалізації механізму підсистем та забезпечують модульну побудову S-моделей.

1

2

Вхідний та вихідний порти забезпечують обмін даними між підсистемами моделі, між моделлю та робочою областю MATLAB.

3

Селектор шини виділяє з групи сигналів – один заданий сигнал.

4

5

Змішувач об'єднує вхідні сигнали в один векторний сигнал Розподілювач виконує обернені функції.

6

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

7

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

8

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

9

“Заготовка” для створення підсистеми – достатньо самостійної системи більш низького рівня.

10

11

12

“Ознака видимості блоку передачі”, “Прийняти” та “Передати” використовуються разом та призначені для обміну даними між різними компонентами S-моделі з урахуванням видимості цих даних.

13

14

15

“Пам'ять для даних”, “Читання даних”, та “Запис даних” забезпечують при сумісному використанні передавання та зберігання даних на проміжку моделювання.

Блоки, що складають розділ Nonlinear, є досить спеціальним у функціональному відношенні, тому їх опис не наводиться. Ознайомитися з правилами їх використання можна за допомогою [7].

Розділ Continuous містить блоки, які можна умовно поділити на дві групи: блоки, що безпосередньо призначені для описання неперервних систем (їм відповідають рядки 1, 4, 5, 8 таблиці), та блоки загального призначення, які можуть бути використані в моделі довільної системи (2, 3, 6, 7).

1

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

2

Суматор неперервного часу. Обчислює “час існування” вхідного сигналу.

3

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

4

Блок формування стану системи.

5

Передатна функція.

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

7

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

8

Блок реалізує передатну функцію описану за допомогою оператору Лапласа.

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

Дискретна передатна функція.

Дискретна область переходу.

Дискретний фільтр.

Блок формування стану системи.

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

Виконує екстраполяцію першого порядку.

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

Виконує екстраполяцію нулевого порядку.

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

Формує абсолютне значення вхідного сигналу.

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

Виділяє дійсну та уявну частини комплексного числа, що подано на вхід.

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

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

Використовується для множення вхідного сигналу на матрицю, ім'я якого є параметром блокую

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

Дозволяє виконати множення або ділення декількох вхідних сигналів.

Утворює з двох дійсних чисел на вході – комплексне число з відповідними дійсної та уявної частинами.

Виконує округлення величини, що подано на вхід блока.

Виконує сумування або окремих вхідних сигналів, або елементів вхідного вектору.

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

Для моделювання подій у системі MATLAB призначений пакет Stateflow. Цей пакет, оснований на теорії скінчених автоматів, дозволяє представити функціонування системи на основі послідовності правил, які задають відповідність між подіями та діями, що повинні виконуватись у відповідь на ці події.

Засоби Stateflow можна використовувати як самостійно, так і у складі моделей Simulink. Вони використовуються разом із розробленою користувачем моделлю за допомогою вставки в неї блоку бібліотеки Stateflow з ім'ям Chart (Діаграма). Все, що необхідно зробити для підключення блоку Chart к моделі Simulink – це перетягнути його мишею у вікно моделі та підключити у потрібне місце. Активація підключеного блоку викликає порожнє вікно редактора SF-діаграм, яке можна використовувати для створення їх створення та відладки з метою отримання потрібних функцій. Сукупність усіх SF-блоків, що входять до складу моделі утворює State flow –машину.

Рис.2. Загальний вигляд вікна Stateflow: 1 - стани,

2 - ознаки пам’яті,

3 – ознаки альтернативи

Конструювання SF-діаграми виконується шляхом додавання блоків, що вказані на панелі інструментів (зліва) за технологією drag-and-drop. Серед об'єктів SF-діаграм є графічні: стани, ознаки пам'яті, переходи, ознаки альтернативи; та неграфічні: події, процедури та данні.

1 – Стани використовують для побудови SF-діаграми, яка складається з вкладених один в водний станів. Кожний стан має батька та нащадка (стан більш низького рівня). Якщо стан є єдиним, то його батьком є сама SF-діаграма, яка називається також кореневою. Властивості активності та пасивності станів змінюються динамічно, в залежності від подій, що відбуваються. Стани можуть бути нейтральними та зайнятими. Стани можуть бути двох типів: паралельні (що можуть існувати одночасно) та такі, що взаємно виключають один одного.

2 - Ознака пам'яті відображає хронологію стану, яка забезпечує визначення наступного переходу в інший стан на основі інформації про минуле системи. Ознака пам'яті – це функція, що має найвищий пріоритет виконання.

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

3 - Ознаки альтернативи використовують для позначення альтернативних шляхів переходу систем з одного стану до іншого. Застосування цих об'єктів виключає перетинання переходів, що спрощує побудову SF-діаграм.

Події – дуже важливе поняття пакету Stateflow. Виникнення події змінює статус пов'язаних з ним станів та може ініціювати дію або перехід, пов'язані з нею. При цьому події розповсюджуються з гори до низу ( від події-батька до події-нащадка).

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

Події мають властивості. Головною з них є властивість видимості. В залежності від значення властивості видимості, події можуть бути наступних типів:

  • Локальні, тобто видимі тільки у межах SF-діаграми.

  • Вхідні – ті, що передаються в SF-діаграму із Simulink -моделі.

  • Вихідні – ті, що передаються із SF-діаграми в Simulink -модель.

  • Ті, що експортуються (передаються із SF- або Simulink-моделі у зовнішню програму).

  • Ті, що імпортуються (надходять із зовнішніх програм).

Процедури моделюються скінченими автоматами Мілі або Мура. Процедура може бути задана як виклик функції, завдання певної події, переходу, та ін.

Данні в SF-моделі є числовими значеннями. Вони не вказуються безпосередньо на діаграмі, можуть створюватись на довільному рівні ієрархії моделі та мають властивості. Данні, що мають властивість видимості можуть бути наступних типів:

  • Локальні, тобто видимі тільки у межах SF-діаграми.

  • Вхідні – ті, що передаються в SF-діаграму із Simulink -моделі.

  • Вихідні – ті, що передаються із SF-діаграми в Simulink -модель.

  • Тимчасові (проміжні).

  • Ти, що зберігаються (в робочому просторі MATLAB).

  • Константи.

  • Ті, що експортуються (передаються із SF- або Simulink-моделі у зовнішню програму).

  • Ті, що імпортуються (надходять із зовнішніх програм).

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