Методичні вказівки до виконання лабораторних робіт з курсу Моделювання і проектування інформаційних систем в економіці, ТНЕУ
« Назад МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ ТЕРНОПІЛЬСЬКИЙ НАЦІОНАЛЬНИЙ ЕКОНОМІЧНИЙ УНІВЕРСИТЕТФАКУЛЬТЕТ КОМП’ЮТЕРНИХ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ
Методичні вказівки до виконаннялабораторних робіт з курсу“Моделювання і проектування інформаційних систем в економіці”для студентів напряму підготовки 6.050103 “Програмна інженерія ” Тернопіль - 2011 Л.І. Гончар, Т.В. Гончар // Методичні вказівки до виконання лабораторних робіт з курсу „ Моделювання і проектування інформаційних систем в економіці ”, для студентів напряму підготовки 6.050103 “Програмна інженерія ”. – Тернопіль, 2011. – 87 с. Анотація. Моделювання – основа будь-якої інформаційної системи. Любий програмний комплекс – це по суті комп’ютерна модель деякої предметної області. Проектування – процес створення проекту, прототипу, праобразу майбутнього об'єкта, стану та способів його виготовлення. Тому, особливо важливим аспектом підготовки спеціалістів з програмної інженерії є успішне засвоєння ними дисципліни “Моделювання і проектування інформаційних систем в економіці ”. Першим кроком на цьому шляху є цикл лабораторних робіт, що дозволить студентам одержати ґрунтовні навички обробки результатів моделювання і проектування засобами обчислювальної техніки. Цикл лабораторних робіт складається з дев’яти робіт, кожна з яких містить необхідний методичний матеріал, завдання, порядок виконання роботи, приклади та додаткову літературу. Розглянуті лабораторні роботи мають традиційну структуру: студент вивчає теорію, одержує допуск, виконує роботу, оформляє звіт, відповідає на контрольні запитання.
Зміст
Лабораторна робота №1
Тема: Моделювання систем керування засобами інтегрованого програмного комплексу MATLABМета: Вивчити основні принципи роботи, та ознайомитись з базовими командами системи MATLAB. 1. Теоретичні відомості1.1. Інтегрований програмний комплекс МаtlаbМаtlаb - це інтерактивне середовище для виконання різноманітних наукових та інженерних розрахунків. Назва пакета походить від скорочень англійських слів Маtrіх Lаbоrаtоrу і найкраще характеризує його сутність, де матричні операції є основою більшості розрахунків. Пакет підтримує виконання операцій з векторами, матрицями та масивами даних, реалізує сингулярні і спектральні розкладання, підтримує роботу з алгебраїчними поліномами, вирішує нелінійні рівняння і задачі оптимізації, інтегрування в квадратурах, вирішує диференціальні рівняння, будує різного виду графіки, трьохмірні поверхні та лінії рівня. До найважливіших особливості пакета відносять: • можливість вибору та зміни платформи - програми та дані можна переносити на різні типи комп'ютерів з різними операційними системами; • відкрита архітектура з точки зору можливості створення спеціальних підпрограм, спрямованих на розв'язування певного класу задач. Такі підпрограми можна написати як за допомогою мови програмування самого пакета (так звані m-файли), так і мовою програмування С. Отже, кожен користувач пакета може зробити свій внесок у розширення його можливостей. До основних областей використання Matlab відносять: - математичні обчислення; - розробка алгоритмів; - обчислювальний експеримент, моделювання; - аналіз інформації, дослідження та візуалізація результатів; - наукова та інженерна графіка; - розробка додатків. Спеціальні підпрограми, пов'язані з розв'язанням певного класу задач, формують тематичні підкаталоги (toolbox). Можна виділити такі найважливіші toolbox -и: • System Identification Тооlbох призначений для аналізу сигналів у системах керування. Дозволяє використовувати параметричні та непараметричні алгоритми ідентифікації, зокрема, розрахунок і верифікацію моделі, вибір порядку моделі, демонстрацію та перетворення сигналів. Дає змогу за відомими вхідними та вихідними сигналами об'єкта, попередньо задавши порядок моделі, створити його модель у вигляді рівнянь стану. • Control System Тооlbох призначений для синтезу, аналізу та моделювання неперервних у часі та дискретних систем. Дозволяє використовувати різні форми опису системи (передавальна функція, система рівнянь змінних стану, розкладання на прості дроби). Виконує перетворення від однієї форми запису системи до іншої, а також від неперервної до дискретної та навпаки. Дає змогу досліджувати реакцію системи на різні типи вхідних сигналів, а також синтезувати регулятори. Дозволяє аналізувати поведінку системи в частотній області. • Signal Processing Тооlbох призначений для цифрового перетворення та аналізу сигналів у часовій та частотній областях. Дозволяє проектувати цифрові та аналогові фільтри. Можливим є параметричне моделювання. • Fuzzy Logic Тооlbох включає середовище моделювання в областінечіткої логіки разом з засобами до проектування інтелектуальних систем керування. • m-Analysis and Synthesis Тооlbох вимагає інсталяції Signal Processing Тооlbох і є пакетом для аналізу та синтезу лінійних робастних систем керування(систем керування з підвищеною стійкістю). Використовується для проектування оптимальних систем керування, основнаувага акцентується напитаннях стійкості системи та її вразливості до зміни параметрів. • Неиral Network Тооlbох спрощує побудову та дослідження штучних нейронних мереж. Дає змогу використовувати різні алгоритми навчання нейронних мереж. Реалізує різні типи нейронів і нейронних мереж. Кожен нейрон описується вектором ваг, значенням зміщення та видом активаційної функції. Зв'язок із Simulink-ом дає змогу використовувати штучні нейронні мережі як окремі блоки в моделях досліджуваних систем. • Nonlinear Control Design Тооlbох дає змогу виконувати оптимізацію лінійних та нелінійних систем керування. • Орtimizatiоп Тооlbох реалізує різні методи оптимізації лінійних і нелінійних систем та розв'язування систем нелінійних рівнянь. Функціїпакету дають змогу знаходити екстремум довільної функції як за наявності, так і за відсутності обмежень, а також для випадку багатокритеріальної оптимізації. • Robust Control Тооlbох призначений для дослідження багатовимірних робастних систем керування. Виконує синтез оптимальних регуляторів. • Spline Тооlbох призначений для розв'язування задач апроксимації та інтерполяціїзадопомогою сплайнів, з можливістю інтегрування та диференціювання отриманого рівняння. • Statistics Тооlbох реалізує різноманітні статистичні функції, включаючи моделювання випадкових подій та генератори випадкових сигналів. 1.2. Режими роботи Matlab.Після входу в середовище Matlab на екрані розкривається вікно (Рисунок 1.1), у якому з'являється символ ">>", що сигналізує про готовність пакета до роботи. Починаючи з цього моменту кожна команда з клавіатури буде сприйнята, інтерпретована та виконана. Результат обчислення значення виразу є доступним як значення змінної, якій присвоєний вираз. Так, виконання команди наступного синтаксису: >> змінна = вираз дозволить обраховувати значення виразу, внести змінну до робочої області, а на появиться результат. Пакет Matlab має деякі особливості: - вбудовані функції (наприклад, sin x) записуються прописними буквами, а їх аргументи вказуються в круглих дужках; - значення змінних записані з використанням букв різного регістру будуть різними (наприклад, А і а); - для блокування виводу результату обчислень деякого виразу після нього треба поставити знак “;” (крапка з комою); - у деяких випадках математичний вираз, що вводиться, може виявитися настільки довгим, що для нього не вистачить одного рядка. У цьому випадку частину виразу можна перенести на новий рядок за допомогою знаку три крапки “...”; - пакет MatLab є насамперед програмою для роботи з матрицями, тому звичайні математичні операції *, /, +, - виконуються в матричному виді. Для поелементного виконання арифметичних операцій використовується оператор “.” (наприклад Z=V./A); - елементи векторів і матриць записуються в квадратних дужках, та розділяються пробілами або комами (наприклад і – ці записи є ідентичними). 1.3. Команди керування вікном командного режимуДо основних команд керування вікном командного режиму відносять наступні команди: - clc – очищає екран та розміщує курсор у лівому верхньому куті порожнього екрану; - home – повертає курсор у лівий верхній кут вікна; - echo <file_name> on – включає режим виведення на екран тексту Script-файлу (файлу-сценарію); - echo <file_name> off – відключає режим виведення на екран тексту Script-файлу; - echo <file_name> – змінює режим виведення на протилежний; - echo on all – включає режим виведення на екран тексту всіх m-файлів; - echo off all – відключає режим виведення на екран тексту всіх m-файлів; - more on – включає режим посторінкового виведення (корисний при перегляді великих m-файлів); - more off – відключає режим посторінкового виведення (у цьому випадку для перегляду великих файлів треба використовувати лінійку прокручування); - diary file_name.txt – веде запис на диск усіх команд у рядках введення та отриманих результатів у вигляді текстового файлу з зазначеним ім'ям; - diary off – призупинити запис у файл; - diary on – починає запис у файл. - clear <name І>, <name 2>, ..., – використовується для знищення певних змінних чи функцій з робочої області пакету; - clear all – знищення усіх змінних або функцій з робочої області пакету; - help – видає назви всіх доступних файлів допомоги; - help <filename> – допомога в роботі з окремим файлом з зазначеним ім’ям. Клавіші і ¯ використовуються для підстановки після маркера рядка введення “>>” раніше введених стрічок, наприклад для їхнього виправлення, дублювання або доповнення. У випадку великих програм, під час використання циклічних операторів доцільніше записати необхідну програму у вигляді m-файлу, а потім подати його назву в командній стрічці. При необхідності програму з файлу можна вивести на екран за допомогою команди type. Створення такого файлу можна здійснювати за допомогою будь-якого текстового редактора, навіть поза пакетом. Для ілюстрації можливостей пакета та окремих його tооlbох-ів служать численні демонстраційні програми, що мають потужну систему підказок та пояснень виконаних дій. Для доступу до описаних вище ілюстрацій роботи пакета необхідно в командній стрічці набрати: >>demo Відкривши за допомогою "мишки" необхідний каталог у дереві каталогів “Matlab Demos”, користувач отримує доступ до демонстраційних файлів, запуск яких здійснюється за допомогою кнопки “Run”.
1.4. Типи та формати данихМаtlab не вимагає декларації типу даних чи їх розміру. Ім'я змінної може складатися з довільної комбінації букв та цифр, але не більше 19 знаків, при цьому перший символ має бути буквою. Дані можуть бути занесені в робочу область пакету в скалярній та матричній формі. Для ілюстрації різних форматів розглянемо вектор, що містить два елементи – числа. У різних форматах представлення числа будуть мати наступний вигляд:
Задання формату відбивається тільки на формі виведення чисел. Обчислення завжди відбуваються у формі подвійної точності, а введення чисел можливе в будь-якому зручному для користувача вигляді. У середовищі пакету визначена змінна типу string. Змінна такого типу є довільним текстовим фрагментом, записаним з допомогою апострофів, причому розрізняють верхні та нижні символи. Текст запам'ятовується у вигляді вектора, а кожен знак тексту становить окремий елемент такого вектора. Наприклад, запис s = 'student' є текстовою змінною s = student.
1.5. Системні змінніОсновні системні змінні, що застосовувані в системі MatLab: - і або j – уявна одиниця (квадратний корінь з -1), (наприклад >> ); - pi – число - eps – похибка операцій над числами з плаваючою крапкою (2-52); - realmax – найбільше число з плаваючою крапкою; - realmin – найменше число з плаваючою крапкою; - ans – змінна, що зберігає результат останньої операції; - NaN – вказівка на нечисловий характер даних (Not-a-Number), а також на невизначеність 0/0
1.6. Елементарні математичні функції пакетуПрийнято, що всі функції пакета Маtlab визначені за допомогоюмалих літер, а звертання до них з використанням великих літер буде трактовано якпомилка. Деякіелементарні математичні функції, доступні в середовищі пакета наведені в Таблиці 1.1. Таблиця 1.1 - Основні математичні функції пакету
1.7. Текстові коментаріОскільки MatLab використовується для досить складних обчислень, важливе значення має наочність їхнього опису. Вона досягається за допомогою текстових коментарів. Текстові коментарі вводяться за допомогою символу % (наприклад % It is factorial function). При введенні букви “с” російського алфавіту буде відбуватися перехід на наступну стрічку. Рекомендуємо міняти російське “c” на англійське, що на загальний вид коментарю ніяк не позначається. Так само не рекомендуємо вводити російськомовні коментарі й у тексти m-файлів, що може привести до того, що програма стане непрацездатною.
1.8. Робота з mat-файламиФайли з розширенням *.mat є бінарними, у них можуть зберігатися значення змінних робочої області. Для збереження використовується команда: >> save FILENAME У разі необхідності збереження значення тільки окремих змінних після імені файлу необхідно податі перелік цих змінних, наприклад >>save C:\Users\mia\labor1.mat X Y Z Другий спосіб збереження через панель інструментів Save Workspace as… Для завантаження збережених змінних у робочу область необхідно виконати наступну команду: >> load FILENAME де FILENAME –ім’я файлу у якому збережені дані. Якщо потрібно завантажити окремі змінні необхідно ввести команду: >> load FILENAME X Y Z
2. Завдання для виконання2.1. Перед виконанням роботи ознайомитись з теоретичними відомостями. 2.2. У відповідності до отриманого номеру варіанту вибрати значення змінних для виконання лабораторної роботи (Таблиця 1) та вирази для обчислення (Таблиця 2). 2.3. Зберегти значення змінних у mat-файл з назвою <name>, де name – ваше прізвище. 2.4. Очистити робочу область та вікно. Завантажити значення змінних з mat-файлу та обчислити значення виразу. Результат зберегти. 2.5. Створити текстові коментарі до роботи, провести запис на диск фрагменту роботи, використовуючи команди керування вікном.
3. Зміст звіту3.1. Тема та мета роботи. 3.2. Коротко основні теоретичні відомості. 3.3. Відобразити отримані результати (п. 2.3-2.5) у вигляді копій екрану. 3.4. Висновки за результатам виконаної роботи.
4. Контрольні запитання4.1. Коротка характеристика MATLAB. 4.2. Перелічіть основні операції, що можна виконувати засобами MATLAB. 4.3. Перелічіть та дайте коротку характеристику тематичним підкаталогам MatLab (toolbox). 4.4. Головне вікно пакету MatLab. 4.5. Перелічіть області використання MatLab. 4.6. Особливості роботи з пакетом MatLab. 4.7. Які ви знаєте команди керування вікном командного режиму? 4.8. Як подивитись демонстрації програми? 4.9. Для чого використовується команда format? 4.10. Перелічіть системні змінні Matlab. 4.11. Назвіть основні тригонометричні функції Matlab. 4.12. Як закоментувати стрічку Matlab? 4.13. Робота з mat-файлами.
Література
Таблиця 1 – Варіанти завдання
Таблиця 2 – Математичні вирази
Лабораторна робота № 2
Тема: Представлення математичних моделей і їх перетворення з використанням програм пакета CONTROL SYSTEM TOOLBOXМета: Експериментально дослідити процеси представлення та перетворення математичних моделей за допомогою пакету CONTROL SYSTEM TOOLBOX системи MATLAB. 1. Теоретичні відомості 1.1. Математичний опис динамічних систем.Програми пакету CONTROL SYSTEM TOOLBOX реалізують основні функції, необхідні для математичного опису системи. В цей пакет також включені функції пов’язані з графічною побудовою різних характеристик систем автоматичного керування. Процеси в системах автоматичного керування описують звичайними диференціальними рівняннями. Математичні моделі можуть бути записані у формі диференціального рівняння n-го порядку, або у вигляді системи n-диференціальних рівнянь першого порядку. В першому випадку, застосовуючи до диференціального рівняння: при нульових початкових умовах перетворення Лапласа (функція laplace), одержуємо зв’язок між вхідною змінною u і вихідною y через предаточну функцію: Для створення предаточної функції використовується команда tf. Аналіз стійкості, показників якості та синтез коректуючи пристроїв може бути виконаний по частотним характеристикам, відповідно до комплексної предаточної функції W(jw). Математичний опис лінійної динамічної системи може бути також представлений в нормальній формі Коші, в вигляді сукупності диференціальних змінних.
1.2. Формування предаточних функцій.Сформуємо предаточну функцію W1: Для цього в командній стрічці Matlab набираємо: >>W1=tf(12,[1 2 3 1]) Одержимо наступний результат: Transfer function: 12 --------------------- s^3 + 2 s^2 + 3 s + 1 Сформуємо предаточну функцію W2: Для цього в командній стрічці Matlab набираємо: >>W2=tf([3 5 4],[1 2 3 1]) Одержимо наступний результат: Transfer function: 3 s^2 + 5 s + 4 --------------------- s^3 + 2 s^2 + 3 s + 1 Формування предаточної функцій з розкладанням на множники знаменника та чисельника з заданим коефіцієнтом передачі - zpk (zero-pole-gain), символ kвідображає gain. Нулі предаточної функції – це корені чисельника, полюси – корені знаменника. Для прикладу, сформуємо предаточну функцію з статичним коефіцієнтом, рівним 7,7, і з полюсами s1=-3.3, s2=-0.25, s3=-12.7. В командній стрічці набираємо: >>W3=zpk([],[-3.3,-0.25,-12.7],7.7) Одержимо наступний результат: Zero/pole/gain: 7.7 ------------------------- (s+3.3) (s+12.7) (s+0.25) Назвемо цю предаточну функцію з виділеними нулями і полюсами. Сформуємо предаточну функцію з статичним коефіцієнтом, рівним 7,7, і з полюсами s1=-3.3, s2=-0.25, s3=-12.7 та з нулями s1=-5, s2=+4. В командній стрічці набираємо: >>W4=zpk([4,-5],[-3.3,-0.25,-12.7],7.7) Одержимо наступний результат: Zero/pole/gain: 7.7 (s-4) (s+5) ------------------------- (s+3.3) (s+12.7) (s+0.25)
1.3. Взаємне перетворення форм предаточних функційПеретворимо одержану предаточну функцію W4 в раціональну форму. Для цього в командній стрічці набираємо: >>w44=tf(W4) Одержимо наступний результат: Transfer function: 7.7 s^2 + 7.7 s - 154 --------------------------------- s^3 + 16.25 s^2 + 45.91 s + 10.48 Для перетворення раціональної предаточної функції в форму з виділеними нулями і полюсами. В командній стрічці сформуємо просту предаточну функцію виду: Одержана предаточна функція буде відповідати опису об’єкту, який складається з двох послідовно з’єднаних інерційних складових з результуючим коефіцієнтом передачі, рівним 10, і постійним часом T1=1, T2=2. Предаточна функція з виділеними нулями і полюсами w55: >>w55=zpk(W5) % Формат перетворення Одержимо наступний результат: Zero/pole/gain: 10 ----------- (s+2) (s+1) Перетворимо раціональну предаточну функцію W2 в форму з виділеними нулями і полюсами: >>w22=zpk(W2) % Формат перетворення Результат перетворення Zero/pole/gain: 3 (s^2 + 1.667s + 1.333) -------------------------------- (s+0.4302) (s^2 + 1.57s + 2.325)
1.4. Оцінка динаміки об’єкта керування по заданій предаточній функціїДинаміка об'єкту керування визначається знаменником предаточної функції, точніше коренями характеристичного рівняння, складеного із знаменника. Якщо корені характеристичного рівняння "ліві", то відповідний перехідний процес буде сталим, якщо ж корені "праві", то перехідний процес буде несталим, тобто буде прямувати до нескінченності (по вихідній координаті об'єкту або по всіх можливих координатах). Для розрахунку коренів характеристичного рівняння можна використовувати функцію eig. Визначимо корені характеристичного рівняння для об’єкту з предаточною функцією W5 і W55. >>eig(W5)% W5 — раціональна предаточна функція Одержимо результат ans = -2 -1 >>eig(w55)% w55 — предаточна функція з виділеними нулями і полюсами Одержимо результат ans = -2 -1 Форма w55 дозволяє зразу визначити корені, якщо вони прості. Для визначення кратних коренів предаточних функцій задамо простий корінь, рівний 6.78 тройної кратності і з допомогою zpk сформуємо наступну предаточну функцію w66: >>w66=zpk([],[-6.78,-6.78,-6.78],7) Розрахуємо корені відповідного характеристичного рівняння: >>eig(w66) ans = -6.7800 -6.7800 -6.7800 Результатом є три простих однакових корені.
1.5. Предаточні функції багатовимірних системФормування предаточних функцій для багатовимірних систем (MIMO — multiple input multiple output) базується на представленні чисельника і знаменника у вигляді предаточних функцій одновимірних систем. 1-й спосіб формування предаточної функції системи MIMO за допомогою tf. - формування масиву комірок, що містять многочлени чисельника - N; - формування масиву комірок, що містять многочлени знаменника - D. Масиви чисельника і знаменника містять вектори-рядки, які розташовані у фігурних дужках. Для формування багатовимірної предаточної функції, яка описує об'єкт управління з двома входами (дві керуючі дії) для об'єкту третього порядку. Формуємо масив комірок чисельника N >>N={[1, - 2.3];[2,3.4]}; Формуємо масив знаменника D >>D={[1 3.6 ];[2 3 5]}; Формуємо предаточну функцію багатовимірної системи М >>M1=tf(N,D) Результат повертається у вигляді: Transfer function from input to output... s - 2.3 #1: ------- % По першому входу s + 3.6 2 s + 3.4 #2: --------------- % По другому входу 2 s^2 + 3 s + 5 2-й спосіб формування предаточної функції системи MIMO за допомогою tf. Полягає в об'єднанні предаточних функцій одновимірних систем. Сформуємо предаточну функцію системи MIMO по відомих предаточних функціях систем SISO (single input single output – одновимірна система). Перша система SISO має предаточну функцію S11 >>S11=tf([1 2],[1 3 2]) % Послідовне з'єднання двох інерційних ланок Transfer function: s + 2 ------------- s^2 + 3 s + 2 Друга система SISO має предаточну функцію S21 >>S21=tf([7],[2 1]) % Предаточнана функція однієї інерційної ланки Transfer function: 7 ----- 2s + 1 Предаточна функція багатовимірної системи М2 >>M2=[S11;S21] Transfer function from input to output... s + 2 #1: ------------- s^2 + 3 s + 2 7 #2: ------- 2 s + 1 3-й спосіб формування предаточної функції системи MIMO за допомогою zpk. Формування предаточної функції системи MIMO по масиву комірок. Формуємо масив комірок чисельника предаточної функції MIMO >>Z={[1],5;[-1],[-2 -4]}; Формуємо масив комірок знаменника предаточної функції MIMO >>P={[-1 -2],[-3 -6];[-1 -2],[-4 -5]}; Формуємо масив комірок статичного коефіцієнта передачі MIMO >>K=[3 5;7 9]; Формуємо предаточну функцію М3 системи MIMO >>M3=zpk(Z1,P1,K) Результат формування М3 по заданих комірках видається по кожному керуванню (яких два) до кожної вихідної координати (яких дві) Zero/pole/gain from input 1 to output... 3 (s-1) #1: ----------- (s+1) (s+2) 7 (s+1) #2: ----------- (s+1) (s+2) Zero/pole/gain from input 2 to output... 5 (s-5) #1: ----------- (s+3) (s+6) 9 (s+2) (s+4) #2: ------------- (s+4) (s+5) 4-й спосіб формування предаточної функції системи MIMO за допомогою zpk. Базується на попередньому способі формуванні за допомогою zpk предаточних функцій одновимірних систем. Формуємо першу предаточну функцію SISO >>z1=zpk([1],[-1 -2],2)% Для масиву чисельника MIMO Zero/pole/gain: 2 (s-1) ----------- (s+1) (s+2) Формуємо другу предаточну функцію SISO >>z2=zpk([],[-3 -4],4) % Для масиву чисельника MIMO Zero/pole/gain: 4 ----------- (s+3) (s+4) Формуємо третю предаточну функцію SISO >>p1=zpk(2,[-1.2 -2.3],5) % Для масиву знаменника MIMO Zero/pole/gain: 5 (s-2) --------------- (s+1.2) (s+2.3) Формуємо четверту предаточну функцію SISO >>p2=zpk([],[-3 -5],6) % Для масиву знаменника MIMO Zero/pole/gain: 6 ----------- (s+3) (s+5) Формуємо предаточну функцію MIMO з двома входами і двома виходами >>M4=[z1 z2;p1 p2;[]] Zero/pole/gain from input 1 to output... 2 (s-1) #1: ----------- (s+1) (s+2) 5 (s-2) #2: --------------- (s+1.2) (s+2.3) Zero/pole/gain from input 2 to output... 4 #1: ----------- (s+3) (s+4) 6 #2: ----------- (s+3) (s+5) Знак порожньої множини [] відноситься до статичного коефіцієнта K передачі системи MIMO. Заповнення коефіцієнта K має відбуватися з врахуванням кількості входів або кількості вхідних дій. В цьому випадку число стовпців K має дорівнювати двом.
2. Завдання для виконання 2.1. Перед виконанням роботи ознайомитись з теоретичними відомостями. 2.2. У відповідності до отриманого номеру варіанту вибрати предаточні функції S1, S2, S3 (Таблиця 1). 2.3. Сформулювати предаточні функції S1, S2, S3. 2.4. Перетворити предаточну функцію S3 в раціональну форму S33. 2.5. Перетворити предаточну функцію S1 в форму з виділеними нулями і полюсами S11. 2.6. Перетворити раціональну предаточну функцію S3 в форму з виділеними нулями і полюсами S333. 2.7. Визначити корені характеристичного рівняння для предаточних функцій отриманих згідно варіанту індивідуального завдання (Таблиця 2). 2.8. Сформувати предаточну функцію системи MIMO відповідно до індивідуального завдання (Таблиця 3).
3. Зміст звіту 3.1. Тема та мета роботи. 3.2. Коротко основні теоретичні відомості. 3.3. Відобразити отримані результати (п. 2.3-2.8). 3.4. Висновки за результатам виконаної роботи.
4. Контрольні запитання 4.1. Форми представлення математичних моделей в Matlab. 4.2. Що ви розумієте під перетворенням Лапласа? 4.3. Записати математичне формулювання перетворення Лапласа. 4.4. Що таке предаточна функція? 4.5. Навести приклад формування простої предаточної функції. 4.6. Навести приклад формування предаточної функції з статичним коефіцієнтом. 4.7. Як здійснюється перетворення форм предаточних функцій? 4.8. Як розраховуються корені характеристичного рівняння? 4.9. Що таке MIMO? 4.10. Які способи формування предаточної функції системи МІМО ви знаєте? Література
Таблиця 1 – Предаточні функції
Таблиця 2 – Вибір функцій для визначення коренів характеристичного рівняння
Таблиця 3 – Предаточні функції багатовимірних систем
Лабораторна робота № 3
Тема: Аналіз математичних моделей у просторі станівМета: Вивчення можливостей системи MATLAB для аналізу динамічних властивостей лінійних неперервних систем керування у просторі станів. 1. Теоретичні відомості 1.1. Математичний опис стаціонарної системи керування у просторі станів.Простір станів, представляє собою уніфіковану форму представлення математичних моделей, зручну для застосування у багатьох випадках, наприклад, при прогнозуванні значень змінних та синтезі систем керування. Математичний опис стаціонарної системи керування у просторі станів має вигляд: де Х — n-міний вектор стану, U — r-мірний вектор керування, Y — m-мірний вектор виходу, A — n´n матриця, В — n´r матриця, С — m´n матриця, D — m´r матриця (A, B, C, D — сталі матриці). Векторне диференціальне рівняння в (1) визначає собою явну форму Коші, тобто таку форму запису, коли диференціальне рівняння дозволено щодо похідної від невідомої (або шуканої) функції. Опис в неявній формі Коші має вигляд: де Е — квадратна матриця розміру n–n, яка задає числові коефіцієнти при похідних. Матриця Е по замовчуванню рівна пустій матриці [].
1.2. Формування моделі неперервної системи керування у явній формі КошіДля формування системи (1) необхідно задати чотири матриці А, B, С, D відповідних розмірностей. Вводимо чотири матриці: >>A=[-1.23 0 0;2.5 -0.56 0;0 3 -2.3]; >>B=[4;0;0]; >>C=[0 0 3.3]; >>D=0; % У більшості випадків матриця D залишається нульовою Створюємо модель системи під ім'ям s1 >>s1=ss(A,B,C,D) Корені характеристичного рівняння системи s1 можна визначити наступним чином: >>eig(s1) % Можна використовувати і функцію роle ans = -2.3000 -0.5600 -1.2300 Корені характеристичного рівняння є також власними числами матриці А Для сформованої системи можна подивитися перехідні та імпульсні характеристики щодо виходу Y. >>step(s1,15),grid % Перехідна характеристика від 0 до 15 од. часу >>impulse(s1,12),grid % Імпульсна характеристика від 0 до 12 од. часу Для визначення розмірності моделі та результуючого статичного коефіцієнта передачі використовуються функції size, dcgain: >> s1=ss(A,B,C,D); % Формування моделі по заданих матрицях >> size(s1) Результат виконання функції size(s1): 1 вхід, 1 вихід, три змінних стану: State-space model with 1 output, 1 input, and 3 states. Визначення коефіцієнта передачі системи s1: >> dcgain(s1) ans = 62.4905 2. Формування предаточної функції системи керування по заданій моделі в просторі станів.Для створення раціональної предаточної функції скористаємось командою tf >> tf(s1) Transfer function: 99 -------------------------------- s^3 + 4.09 s^2 + 4.806 s + 1.584 Статичний коефіцієнт передачі рівний: 99/1.584=62.5 Предаточна функція з виділеними нулями і полюсами будується з допомогою функції zpk >> zpk(s1) Zero/pole/gain: 99 ------------------------- (s+2.3) (s+1.23) (s+0.56) Статичний коефіцієнт передачі рівний: >> 99/(2.3*1.23*0.56) ans = 62.4905 Повторні перетворення від систем до передаточних функцій і назад приводять до накопичення помилок
3. Побудова перехідного процесу для опрацюванні заданих початкових умов.Якщо початкові умови не нульові для системи (1), то її динаміка буде визначатись власними рухами, тобто вирішенням системи Для аналізу вирішення системи (3) по виходу Y можна використовувати сформовану модель у вигляді (1) по функції ss (модель s1). Розглянемо реакцію системи s1 на наступні умови по вектору стану Х(0): вектор початкових умов визначається вектором-стовпцем [10; 10; 10]. Сформуємо перехідний процес по обробці початкових умов [10; 10; 10] >> initial(s1,[10;10;10],15),grid % На відрізку часу від 0 до 15 >> initial(s1,[10;10;10],[0:0.1:7]),grid % Від 0 до 7 з кроком 0.1 Побудуємо два перехідні процеси в одній системі координат. Спочатку сформуємо дві моделі s1 і s2 >> A1=[-1.23 0 0;2.5 -0.56 0;0 3 -2.3]; >> B1=[4;0;0]; >> C1=[0 0 3.3]; >> D1=0; >> A2=[-3 0 0;5 -2.56 0;0 3.3 -1.3]; >> B2=[3;0;0]; >> C2=[0 0 3.3]; >> D2=0; s1=ss(A1,B1,C1,D1); s2=ss(A2,B2,C2,D2); Задаємо формат запису функції initial для двох систем >> initial(s1,s2,[10;10;10],9),grid,legend('s1','s2') Вектор початкових умов і тривалість часу, що задається, повинен бути одним і тим же для обох систем. 2. Завдання для виконання 2.1. Перед виконанням роботи ознайомитись з теоретичними відомостями. 2.2. Побудувати імпульсні та перехідні характеристики системи при різних значеннях матриці С (Таблиця 1). Значення матриці А,В,D взяти з приклада. 2.3. Обчислити коефіцієнт передачі системи. 2.4. Побудувати і порівняти перехідні процеси за допомогою функції initial. Значення вектора початкових умов та відрізок часу взяти з Таблиці 1. 2.5. Сумістити декілька графіків перехідних процесів для однієї системи з різними початковими умовами. 3. Зміст звіту 3.1. Тема та мета роботи. 3.2. Коротко основні теоретичні відомості. 3.3. Відобразити отримані результати (п. 2.2-2.5). 3.4. Висновки за результатам виконаної роботи. 4. Контрольні запитання 4.1. Що ви розумієте під простором станів? 4.2. Записати вираз який описує стаціонарну систему керування у просторі станів. 4.3. Явна та неявна форма Коші. 4.4. Назвіть умови формування моделі неперервної системи керування у явній формі Коші. 4.5. Яка функція визначає корені характеристичного рівняння? 4.6. Назвіть функції визначення перехідних та імпульсних характеристик щодо виходу. 4.7. Як визначити результуючий статичний коефіцієнт передачі? 4.8. Що потрібно для побудови перехідного процесу для опрацювання заданих початкових умов? Література
Таблиця 1 – Варіанти завдання
Лабораторна робота №4Тема: Принципи побудови та дослідження імітаційних моделей в системах класу GPSSМета роботи: Ознайомитись з принципами роботи та основами побудови простих імітаційних моделей в системах класу GPSS. 1. Теоретичні відомостіОднією з перших мов опису стохастичних моделей дискретних процесів була мова блок-діаграм розроблена на початку 60-х років. На основі цієї мови в 1961 році співробітником компанії IBM Дж. Гордоном була створена мова імітаційного моделювання GРSS (General Рurрose Simulation System - система моделювання загального призначення). Система GPSS призначена для написання імітаційних моделей систем з дискретними подіями. Найбільше зручно в системі GPSS описуються моделі систем масового обслуговування, для яких характерні відносно прості правила функціонування складових елементів. В даний час існує безліч програмних систем, що реалізують різні діалекти мови GPSS. Розроблено версії системи GPSS, призначені для роботи на різних апаратних платформах (IBM/360, Vax, PC, Macintosh). До числа програмних комплексів, призначених для роботи на платформі IBM PC можуть бути віднесені системи GPSS/PC різних версій (Minuteman Software), GPSS/H (Wolverine і Meridian Marketing Group), micro‑ GPSS, GPSSV, GPSSS (GPSS‑ Simula), GPSS World. У системах класу GPSS модулююча система представляється за допомогою набору абстрактних елементів - об'єктів. Об'єкт кожного типу характеризується індивідуальним способом поводження і набором атрибутів, які залежать від його типу. У теорії масового обслуговування ці об'єкти називаються приладами і заявками (обслуговуючими апаратами і транзактами). Коли обробка об'єкта, що надійшов, закінчується, він залишає систему. Якщо в момент надходження заявки прилад обслуговування зайнятий, то заявка стає в чергу, де чекає доти, поки прилад не звільниться. Кожен об'єкт може характеризуватися рядом атрибутів, що відображають його властивості. Наприклад, прилад обслуговування має деяку продуктивність, що виражається числом заявок (транзактів), оброблюваних ним за одиницю часу. Сама заявка може мати атрибути, що враховують час її перебування в системі, час чекання в черзі і т.д. Характерним атрибутом черги є її поточна довжина, спостерігаючи за якою в ході роботи системи (чи її імітаційної моделі), можна визначити її середню довжину за час роботи (чи моделювання). У мові GPSS визначені класи об'єктів, за допомогою яких можна задавати прилади обслуговування, потоки заявок, черги і т.д., а також задавати для них конкретні значення атрибутів. Об'єкти програми GPSS описуються в тексті програми за допомогою операторів. Кожен оператор GPSS відноситься до одного з чотирьох типів: оператори-блоки, оператори визначення об'єктів, керуючі оператори та оператори-команди. Оператори-блоки формують логіку моделі. У GPSS/PC є приблизно 50 різних видів блоків, кожен з який виконує свою конкретну функцію. За кожним з таких блоків стоїть відповідна підпрограма транслятора, а операнди кожного блоку служать параметрами цієї підпрограми. Оператори визначення об'єктів служать для опису параметрів деяких об'єктів GPSS. Прикладами параметрів об'єктів можуть бути кількість каналів у багатоканальній системі масового обслуговування, кількість рядків і стовпців матриці і т.п. Керуючі оператори служать для керування процесом моделювання (прогоном моделі). Оператори-команди дозволяють керувати роботою інтегрованого середовища GPSS/PC. Керуючі оператори й оператори-команди, звичайно, не включаються у вихідну програму, а вводяться безпосередньо з клавіатури ПК у процесі інтерактивної взаємодії з інтегрованим середовищем. Після трансляції вихідної програми в пам'яті ПК створюється так звана поточна модель, що є сукупністю різного типу об'єктів, кожен з який являє собою деякий набір чисел у пам'яті ПК, що описує властивості і поточний стан об'єкту. Об'єкти GPSS/PC можна розділити на сім класів: динамічні, операційні, апаратні, статистичні, обчислювальні, запам'ятовуючі та групуючі. Динамічні об'єкти, що відповідають заявкам в системах масового обслуговування, називаються в GPSS транзактами. Вони “створюються” і “знищуються” так, як це необхідно по логіці моделі в процесі моделювання. З кожним транзактом може бути зв'язане довільне число параметрів, що несуть у собі необхідну інформацію про транзакт. Крім того, транзакти можуть мати різні пріоритети. Операційні об'єкти GPSS відповідають операторам-блокам вихідної програми. Вони формують логіку моделі, даючи транзактам вказівки: куди йти і що робити далі. Модель системи на GPSS можна представити сукупністю блоків, об'єднаних відповідно до логіки роботи реальної системи в так звану блок-схему. Блок-схема моделі може бути зображена графічно, наочно показуючи взаємодію блоків у процесі моделювання. Апаратні об'єкти GPSS — це абстрактні елементи, на які може бути розділене устаткування реальної системи. До них відносяться одноканальні і багатоканальні пристрої і логічні перемикачі. Багатоканальний пристрій іноді називають пам'яттю. Одноканальні і багатоканальні пристрої відповідають обслуговуючим приладам у СМО. Одноканальний пристрій може обслуговувати одночасно тільки один транзакт. На рис. 1 представлена схема найпростішої системи масового обслуговування з одним обслуговуючим апаратом і чергою заявок. Багатоканальний пристрій може обслуговувати одночасно декілька транзактів. Логічні перемикачі (ЛП) використовуються для моделювання двійкових станів логічного чи фізичного характеру. ЛП може знаходитися в двох станах: включено і виключено. Статистичні об'єкти GPSS служать для збору й обробки статистичних даних про функціонування моделі. До них відносяться черги і таблиці. Кожна черга забезпечує збір і обробку даних про транзакти, затримані в якій-небудь точці моделі, наприклад, перед одноканальним пристроєм. Таблиці використовуються для одержання вибіркових розподілів деяких випадкових величин, наприклад, часу перебування транзакта в моделі. До обчислювальних об'єктів GPSS відносяться змінні (арифметичні і булеві) та функції. Вони використовуються для обчислення деяких величин, заданих арифметичними чи логічними виразами або табличними залежностями. Запам'ятовуючі об'єкти GPSS забезпечують збереження в пам'яті ПК окремих величин, які використовуються у моделі, а також масивів таких величин. До них відносяться так звані величини та матриці величин, що зберігаються. До об'єктів класу, що групує, відносяться списки користувача і групи. Списки користувача використовуються для організації черг із дисциплінами, відмінними від принципу FIFO. Кожному об'єкту того чи іншого класу відповідають числові атрибути, що описують його стан у даний момент модельного часу. Крім того, є ряд так званих системних атрибутів, що відносяться не до окремих об'єктів, а до моделі в цілому. Значення атрибутів всіх об'єктів моделі по закінченні моделювання виводяться в стандартний звіт GPSS. Велика частина атрибутів доступна програмісту і складає так звані стандартні числові атрибути (СЧА), що можуть використовуватися в якості операндів операторів вихідної програми. Кожен об'єкт GPSS має ім'я і номер. Імена об'єктам даються в різних операторах вихідної програми, а відповідні їм номера транслятор привласнює автоматично. Блокам привласнюються їхні порядкові номери у вихідній програмі. “Прогін” поточної моделі, тобто моделювання, виконується за допомогою спеціальної керуючої програми, що називають симулятором (від англійського SIMULATE — моделювати, імітувати). Робота GPSS-моделі під керуванням симулятора полягає в переміщенні транзактів від одних блоків до інших, аналогічно тому, як у моделюючій СМО переміщаються заявки, що відповідають транзактам. В початковий момент часу в GPSS-моделі немає жодного транзакта. В процесі моделювання симулятор генерує транзакти у визначені моменти часу відповідно до тих логічних потреб, що виникають у моделюючій системі. Подібним чином транзакти залишають модель у визначені моменти часу в залежності від специфіки моделюючої системи. В загальному випадку в моделі одночасно існує велике число транзактів, однак у кожен момент часу симулятор здійснює просування тільки одного транзакта. Якщо транзакт почав свій рух, він переміщається від блоку до блоку по шляху, запропонованому блок-схемою. У той момент, коли транзакт входить у деякий блок, на виконання викликається підпрограма симулятора, що відповідає типу цього блоку, а після її виконання, при якому реалізується функція даного блоку, транзакт “намагається” увійти в наступний блок. Таке просування транзакта продовжується доти, поки не відбудеться одна з наступних можливих подій: 1) транзакт входить у блок, функцією якого є видалення транзакта з моделі; 2) транзакт входить у блок, функцією якого є затримка транзакта на деякий визначений в моделі час; 3) транзакт “намагається” увійти в наступний блок, однак блок «відмовляється» прийняти його. У цьому випадку транзакт залишається в тому блоці, де знаходився, і пізніше буде повторювати свою спробу ввійти в наступний блок. Коли умови в моделі змінюються, така спроба може виявитися успішною, і транзакт зможе продовжити своє переміщення по блок-схемі. Якщо виникла одна з описаних вище подій, обробка транзакту припиняється, і починається переміщення іншого транзакта. Таким чином, виконання моделювання симулятором продовжується постійно. Проходячи через блоки моделі, кожен транзакт вносить зміни у вміст лічильників блоків. Значення цих лічильників доступні програмісту через СЧА блоків. Кожне просування транзакта в моделі є подією, яка повинна відбутися у визначений момент модельного часу. Для того, щоб підтримувати правильну тимчасову послідовність подій, симулятор має таймер модельного часу, що автоматично коректується відповідно до логіки, запропонованої моделлю. Таймери більшості версій GPSS мають наступні особливості: 1) реєструються тільки цілі значення (усі тимчасові інтервали в моделі зображуються цілими числами); 2) одиниця модельного часу визначається розробником моделі, що задає всі тимчасові інтервали в тих самих одиницях; 3) симулятор не аналізує стан моделі в кожний наступний момент модельного часу. Значення таймера доступні програмісту через системні СЧА. Усяка зміна стану моделі, наприклад, перехід транзакта від одного блоку до іншого, розглядається як деяка подія, що відбувається у визначений момент умовного (системного) часу, що задається таймером системи. Фактично, таймер в інтерпретаторі GPSS - це цілочислена змінна. При побудові моделі користувач повинен задати співвідношенням одиниці системного часу, що будуть використовуватись в моделі реального часу у якій відбувається функціонування моделюючої системи. Слід зазначити, що системний час ніяк не зв'язаний з машинним часом, що затрачається на моделювання. Центральною задачею симулятора є визначення того, який транзакт потрібно вибрати наступним для просування в моделі, коли його попередник припинив своє просування. З цією метою симулятор розглядає кожен транзакт як елемент деякого списку. У відносно простих моделях використовуються лише два основних списки подій: список поточних подій і список майбутніх подій. Список поточних подій містить у собі ті транзакти, планований час просування яких дорівнює чи менший поточного модельного часу (до останнього відносяться транзакти, рух яких було заблоковано раніше). Він організується в порядку вибування пріоритетів транзактів, а в межах кожного рівня пріоритету —в порядку надходження транзактів. Список майбутніх подій містить у собі транзакти, планований час просування яких більший поточного часу (тобто події, зв'язані з просуванням цих транзактів, повинні відбутися в майбутньому). Цей список організується в порядку зростання планованого часу просування транзактів. Симулятор GPSS поміщає транзакти в залежності від умов в той чи інший список і переносить транзакти зі списку в список, переглядає списки, вибираючи наступний транзакт для обробки, коректує таймер модельного часу після обробки всіх транзактів в списку поточних подій. Таким чином, у процесі моделювання інтерпретатор автоматично визначає правильну черговість настання подій. У випадку, якщо потрібні дії в намічений момент часу не можуть бути виконані (наприклад, зайнятий пристрій, до якого звертається транзакт), інтерпретатор тимчасово припиняє обробку транзакта, але продовжує стежити за причиною, що викликала блокування його обробки. Як тільки ця причина усувається (наприклад, звільняється зайнятий пристрій), інтерпретатор повертається до обробки затриманого транзакта. Таким чином, на відміну від традиційних мов програмування, у GPSS програмується не послідовність обчислень, а структура системи масового обслуговування, а також правила генерації й обробки транзактів. 2. Завдання для виконання2.1. Перед виконання роботи ознайомитись з теоретичними відомостями. 2.2. Ознайомитись з інтерфейсом будь-якої системи класу GPSS для платформи Windows. 2.3. Дослідити пункти меню системи GPSS (рекомендовано GPSS World). 2.4. У відповідності до отриманого номеру варіанту вибрати параметри функцій GENERATE та START (Таблиця 1). 2.5. В відповідності до отриманих параметрів та лістингу програми – оформити та виконати програму. 3. Зміст звіту 3.1. Тема та мета роботи. 3.2. Коротко основні теоретичні відомості. 3.3. Отримані результати (п. 2.3-2.5). 3.4. Висновки по результатам виконаної роботи. 4. Контрольні запитання 4.1. Дати коротку характеристику мові імітаційного моделювання GPSS. 4.2. Що таке об’єкт, характеристики об’єкту? 4.3. Що ви розумієте під транзактом? 4.4. Для чого служать оператори-блоки? Наведіть приклади операторів-блоків. 4.5. Для чого служать керуючі оператори? Наведіть приклади керуючих операторів. 4.6. Що ви розумієте під системою масового обслуговування? 4.7. Апаратні об’єкти GPSS. 4.8. Поясніть різницю між одноканальним і багатоканальним пристроєм. 4.9. Де використовуються логічні перемикачі? 4.10. Що таке обчислювальні об’єкти GPSS? 4.11. Як працює GPSS модель? 4.12. Рух транзактів в моделі. 4.13. Особливості таймерів GPSS. 4.14. Принцип роботи та задачі симулятора. Література
Таблиця 1. Варіанти завдання
Лістинг програми для моделювання. GENERATE A,B,C,D,E TERMINATE GENERATE A TERMINATE 1 START A Лабораторна робота №5Тема: Використання блоків та операторів в системі імітаційного моделювання GPSS WorldМета роботи: Вивчити та описати базові блоки та оператори системи імітаційного моделювання GPSS World. 1. Теоретичні відомостіМова GPSS містить словник та граматику, за допомогою яких легко можуть бути розроблені точні моделі систем певного класу. Відповідно до правил мови розробляється текст програми, який за допомогою будь-якого текстового редактора зберігається на диску у форматі ASCII‑ файлу. Машинна програма (транслятор) виконує модель, написану на мові GPSS, надаючи тим самим користувачу можливість проведення експериментів з цією моделлю на ЕОМ. Транслятор GPSS є інтерпретатором, тобто виконання програми здійснюється одночасно з її трансляцією. 1.1. Правила оформлення програми на GPSSПочаткова програма на мові GPSS, як і програма на будь-якій мові програмування, є послідовністю операторів. Оператори GPSS/PC записуються і вводяться в ЕОМ в наступному форматі: номер_стрІЧКИ МІТКА операція операнди ; коментарі В деяких версіях системи (у тому числі і в системі GPSS World) нумерація рядків програми виконується автоматично і в текст програми номера рядків включати не вимагається. Крім того, в деяких GPSS системах коментар відділяється від тексту програмного рядка не крапкою з комою (символ “;”), а знаком оклику (символ “!”). Окремі оператори можуть мати поле “МІТКА” для посилання на ці оператори в інших операторах. Якщо такі посилання відсутні, то цей елемент оператора не є обов'язковим. У полі “операція” записується ключове слово (назва оператора), яке вказує на конкретну функцію, що виконується оператором. Це поле оператора є обов'язковим. У деяких операторів поле операції включає також допоміжний операнд. У полях “операнди” записується інформація, яка уточнює та конкретизує виконання функції, визначеної в полі операції. Ці поля залежно від типу операції містять до семи операндів, розташованих в певній послідовності. Операнди позначаються звичайно першими буквами латинського алфавіту від А до G. Деякі оператори взагалі не мають операндів, а в деяких операнди можуть бути опущені, при цьому встановлюються їх стандартні значення. При записі операндів використовується позиційний принцип: пропуск операнда відзначається комою. Поле “коментарі” є необов'язковим. У разі присутності коментарів, вони відділяються від поля операндів крапкою з комою (GPSS/PC) або знаком оклику. В системі GPSS/PC в текст коментарів не допускається включати символи кирилиці. У випадку, якщо коментар займає рядок повністю (в рядку немає операторів, які повинні виконуватися при “прогоні” моделі), в першій позиції рядка ставиться символ “*”. Приймаючи до уваги, що програми на GPSS достатньо важкі для сприйняття, при виконанні учбових завдань слід забезпечувати коментарями кожну включену в програму конструкцію. Приклад програми на мові GPSS наведений нижче: *Рядок відведений під коментар MET1 GENERATE 10,5,,6 ! Далі по рядку йде коментар Оператори GPSS записуються, починаючи з першої позиції, у довільному форматі, тобто окремі поля розділяються довільною кількістю пропусків. В ранніх версіях мови GPSS застосовувалася “бланкова форма” запису програм, тобто вимагалося враховувати номери позицій (“колонок”), в яких розміщувалися різні елементи запису. При введенні початкової програми в інтегрованому середовищі GPSS/PC розміщення окремих полів операторів з певною кількістю інтервалів між ними проводиться автоматично.
1.2. Блоки створення і знищення транзактівДля створення і знищення транзактів в системі GPSS використовуються блоки GENERATE (породження транзактів), TERMINATE (знищення транзактів), SPLIT і ASSEMBLE (управління копіями транзактів). GENERATE - блок, через який транзакти входять в модель (породжуються). В одній моделі може бути декілька таких блоків. Необхідну для даного блоку інформацію задає розробник за допомогою операндів. Відомості про ці операнди зведені в таблиці 1. Операнди А і В в блоці є основними (їх наявність обов'язково), операнди С,D і E - додаткові. Всі ці операнди не обов'язково повинні бути задані явно. Коли операнди задані у вигляді констант, вони повинні бути ненегативними цілими числами. В деяких версіях системи для операндів А і В допускаються також дійсні числа. Цілі числа повинні мати максимум 5 цифр, дійсні - 8 цифр, причому значення операнда А не повинно бути менше В. Таблиця 1 - Операнди блоку GENERATE
Приклади використання блоку GENERATE: GENERATE 15,3 Тут задані операнди А і В (15 і 3 відповідно). Такий запис означає, що інтервал часу прибуття рівний 15 плюс-мінус 3, тобто інтервалом часу прибуття є випадкове число з середнім значенням, рівним 15, і полем допуску, рівним 6 (оскільки 3 - це половина поля допуску), тобто інтервал може бути виражений числами 12, 13, 14, 15, 16, 17 і 18. GENERATE 3,3,10,5 Тут не заданий тільки операнд Е. В цьому випадку моментом першого приходу є значення 10. Після цього інтервали часу прибуття знаходять з рівномірного розподілу 3±3 (інакше кажучи, від 0 до 6 включно). Проте тільки перші п'ять транзактів повинні увійти до моделі через цей блок. GENERATE 5,,2 Тут задані операнди А і С. Час першого прибуття задано числом 2. Після цього прихід транзактів здійснюватиметься через кожні п'ять одиниць часу. Оскільки ніякого значення не використано між двома комами, це значить, що операнд В заданий по замовчуванню, а операнди D і Е відсутні. З моделі транзакти потрапляють в блок TERMINATE. У моделі може бути будь-яке число цих блоків. Інформація для цього блоку задається за допомогою одного операнда - операнд А. Операнд А задає величину, яка повинна відніматися з спеціального лічильника (лічильник завершень) кожного разу, коли транзакт входить в блок TERMINATE. Якщо операнд А не заданий, то по замовчуванню мається на увазі значення 0. В цьому випадку вхід транзакта в такий блок не викликає зменшення змісту лічильника. При досягненні змістом лічильника нуля моделювання завершується. Значення лічильника задається на початку моделювання за допомогою оператора START таким чином: START А. В приведеному записі значення операнда А відповідає значенню лічильника. Для призначення пріоритету транзакта використовується операнд Е блоку GENERATE. Проте для цих цілей може використовуватися і спеціальний блок PRIORITY. Формат даного блоку: PRIORITY А. В приведеному записі операнд А - значення пріоритету, привласнюваного транзакту, що увійшов до блоку. Пріоритет транзакта у блоці PRIORITY виражається цілим позитивним числом в інтервалі від 0 до 99 999.
1.3. Блоки, що описують роботу обладнанняДля опису роботи обладнання в мові GPSS використовуються блоки SEIZE і RELEASE (блоки заняття вільних обслуговуючих апаратів), PREETMP, RETURN (блоки захоплення приладів), ADVANCE (блок затримки). Блоки SEIZE і RELEASE. В процесі переміщення по моделі СМО транзакти займають прилади. Для того, щоб зайняти прилад, транзакт входить (або намагається увійти) в відповідний блок, що описує прилад. Цей блок повинен володіти наступними властивостями:
Для моделювання приладів подібного типу використовується блок SEIZE. У результаті входу транзакта в блок SEIZE вказаний в ньому пристрій стає зайнятим даним транзактом і залишається в цьому стані до тих пір, поки цей транзакт не пройде через блок RELEASE, вказуючий на цей пристрій. Один транзакт може зайняти будь-яке число пристроїв, але кожен пристрій у будь-який момент часу може бути зайнятий лише одним транзактом. Для оператора SEIZE, використаного в програмі, обов'язково повинен бути вказаний операнд А. Значенням операнда А є ім'я займаного приладу. Ім'я приладу може бути символічним або числовим. Якщо приладу привласнюється символічне ім'я, то воно має складатися з трьох-п'яти алфавітно-цифрових символів, причому перші три символи повинні бути буквами. Якщо приладу привласнюється числове ім'я, то числа повинні бути позитивними і цілими. Найбільше дозволене число приладів залежить від об'єму пам'яті, доступної системі GPSS. Операнду В оператора SEIZE можуть бути вказані символи “Q” або “L”. Символ “Q” використовується в тих випадках, коли потрібно зібрати статистику про середню довжину черги або про середній час очікування. Так, запис SEIZE point,Q означає, що черга перед об'єктом “point” не створюватиметься, але в процесі моделювання буде збиратись і роздруковуватись статистика. Якщо як операнд У вказаний символ “L”, то блок стає “логічним блоком” SEIZE. Це значить, що якщо прилад А зайнятий, то транзакт проходить через цей блок. Він не чекає перед блоком поки звільниться прилад. Приклад використовування блоку SEIZE: SEIZE Stan1, Q ! Зайняти Stan1 (верстат №1) ADVANCE 10,5 ! Виконати обробку RELEASE Stan1 ! Звільнити Stan1 SEIZE Stan2 ! Зайняти Stan2 (верстат №2) SEIZE Robot ! Зайняти Robot ADVANCE 14 ! Виконати обробку RELEASE Stan2 ! Звільнити Stan2 RELEASE Robot ! Звільнити Robot Проходження транзактів через цю ділянку програми моделює обслуговування заявок спочатку приладом Stan1 в інтервалі від 5 до 15 одиниць часу, а потім одночасно двома приладами Stan2 і Robot протягом 14 одиниць часу. При спробі звільнити вільний прилад, системою видається повідомлення про помилку і процес моделювання зупиняється. Те ж саме відбувається, якщо транзакт намагається звільнити прилад, зайнятий іншим транзактом. Блок затримки транзактів ADVANCE. Зручним засобом моделювання різного роду обслуговування, що триває деякий проміжок часу, є затримка транзакту, яка виконується в GPSS за допомогою блоку ADVANCE. Транзакт займає прилад (оператор SEIZE) для того, щоб негайно почати на ньому обслуговування. Протягом часу обслуговування транзакт повинен припинити рухатися по моделі. Блок ADVANCE використовується для затримки просування транзакта протягом деякого інтервалу часу. Звичайно цей інтервал задається випадковою змінною. Інформація, необхідна для опису часу обслуговування і його розподілу, задається операндами А і В. Операнд А використовують для визначення середнього часу, який транзакт, що входить в блок, проведе в ньому. Операнд В використовують для встановлення половини поля допуску. Значення цих двох операндів по замовчуванню рівні нулю. Постійний час затримки вказується в полі А, операнд B при цьому залишається порожнім. Приклад програмної конструкції, в якій використовується блок затримки ADVANCE: SEIZE Sbor1 ADVANCE 30,5 RELEASE Sbor1 Такий запис означає, що для кожного транзакта, що входить в цей блок, можливі значення інтервалів часу знаходяться в межах 25-35 одиниць часу включно. Наприклад, транзакт увійшов до блоку ADVANCE (тобто зайняв прилад обслуговування Sbor1) у момент часу, рівний 134, а “розіграним значенням” з рівномірного розподілу 30±5 є 31. У подібному випадку транзакт залишатиметься в блоці ADVANCE до моменту часу, рівного 134+31=165. Протягом цього часу прилад Sbor1 залишатиметься у стані “зайнятий”.
1.4. Керуючі оператори GPSSВ мові GPSS існує ряд операторів, які не використовуються для визначення блоків. Оператори цього класу служать для задання режимів моделювання і керування роботою інтерпретатора GPSS Оператор SIMULATE (МОДЕЛЮВАТИ). Якщо розробник має намір виконати прогін моделі, то, звичайно, оператор SIMULATE ставиться у першому рядку програми. Оператор має єдиний операнд А (ціле позитивне число), яке вказує, скільки разів виконується програма. Значення операнда по замовчуванню рівне 1. Оператор START (ПОЧАТИ). Моделювання почнеться тільки після того, як інтерпретатором в тексті моделі буде знайдений оператор START. Тому цей оператор повинен бути поміщений в кінці програми (після повного визначення моделі). Операнд А задає початкове значення лічильника числа завершень (звичайно приймається рівним одиниці). Як операнд В, може використовуватися запис “NP”. В цьому випадку після закінчення моделювання не роздруковуватиметься статистика. Оператор END (ЗАКІНЧИТИ). Оператор END розміщується в останньому рядку програми, після вказівки всіх команд управління прогонами моделі. Він вказує інтерпретатору повернути керування в операційну систему. Оператор END не має операндів і стоїть після оператора START. Оператор CLEAR (ОЧИСТИТИ). У деяких випадках розробнику необхідно виконати послідовно декілька прогонів моделі змінюючи її параметри. Оператор CLEAR дозволяє об'єднати всі ці прогони в один етап моделювання. Припустимо, потрібно виконати три прогони моделі при різних значеннях операнда В в блоці GENERATE. Використання оператора CLEAR виглядає таким чином : KEY GENERATE,,,4 ! KEY - символічне ім'я блоку ... ! повний опис моделі ... ... START 1 ! почати перший прогін KEY GENERATE,,,5 ! зміна для другого прогону CLEAR ! очищення для другого прогону START 1 ! почати другий прогін і т.д. KEY GENERATE,,,6 CLEAR START 1 END Оператор RESET (СКИДАННЯ). Оператор RESET встановлює значення всіх стандартних числових атрибутів (СЧА) в їх початкові значення. Виняток становлять: випадкові числа; абсолютний час; поточний список кожного блоку та всі С-величини.
2. Завдання для виконання2.1. Перед виконання роботи ознайомитись з теоретичними відомостями. 2.2. Описати вказаний блок, згідно варіанту (Таблиця 1), використовуючи засоби довідки GPSS. До опису входить: опис всіх можливих параметрів з прикладами їх практичного застосування. У лабораторній роботі повинні бути 2-5 копій екрану. 2.3. Привести лістинг програми, в якій використовується описаний в п. 2.2 блок. Представити результати моделювання програми. 3. Зміст звіту 3.1. Тема та мета роботи. 3.2. Коротко основні теоретичні відомості. 3.3. Отримані результати (п. 2.2-2.3). 3.4. Висновки по результатам виконаної роботи. 4. Контрольні запитання 4.1. Формат запису операторів на мові GPSS. 4.2. Характеристика блоку GENERATE. 4.3. Характеристика блоку TERMINATE. 4.4. Характеристика блоку SPLIT. 4.5. Характеристика блоку ASSEMBLE. 4.6. Блоки, що описують роботу обладнання? 4.7. Характеристика блоку SEIZE. 4.8. Характеристика блоку RELEASE. 4.9. Характеристика блоку ADVANCE. 4.10. Характеристика блоку RETURN. 4.11. Керуючі оператори? 4.12. Оператор SIMULATE. 4.13. Оператор START. 4.14. Оператор END. 4.15. Оператор CLEAR. Література
Таблиця 1 – Варіанти завдання
З повагою ІЦ “KURSOVIKS”! |