1 ОПИС ЗАСОБІВ моделювання складних динамічних систем. Сучасні підходи до візуального моделювання складних динамічних системСьогодні комп'ютерна промисловість пропонує сучасному інженерові цілий ряд різноманітних засобів моделювання, що дозволяють не тільки моделювати складні динамічні системи, але і проводити з ними експерименти. Найбільш повне дослідження загальносистемних проблем виходить у результаті моделювання об'єктів за допомогою сучасних технологій, реалізованих у спеціалізованих обчислювальних пакетах візуального моделювання. Існує величезне число пакетів візуального моделювання. В них користувачеві надається можливість описувати моделюючу систему переважно у візуальній формі, наприклад, графічно представляючи як структуру системи, так і її поводження (наприклад, за допомогою карти станів). Такий підхід дозволяє користувачеві не піклуватися про реальну програмну реалізацію моделі, що значно спрощує процес моделювання. Результати експерименту в пакетах візуального моделювання надаються в більш наочній для людини формі: у вигляді графіків, гістограм, схем, із застосуванням анімації і т.д. Також підтримується технологія об’єктно-орієнтованого моделювання, що дозволяє повторно використовувати екземпляри моделей з можливістю внесення в них тих чи інших змін. З безлічі існуючих на сьогоднішній день пакетів візуального моделювання особливий інтерес викликають універсальні пакети, не орієнтовані на визначену вузьку-спеціальну область (фізика, хімія, електроніка і т.д.), а що дозволяють моделювати структурно-складні гібридні системи у різних прикладних областях. Незважаючи на те що сучасні універсальні пакети візуального моделювання володіють безліччю загальних властивостей (дозволяють будувати з блоків ієрархічні функціональні схеми, надають користувачеві схожі бібліотеки чисельних методів, засоби візуалізації поводження і набори анімаційних можливостей, підтримують технологію об’єктно-орієнтованого моделювання), все-таки можна їх розділити на три основні групи (мал. 1.1) : пакети, що використовують мову блокового моделювання; пакети, що використовують мову фізичного моделювання; пакети, орієнтовані на використання схеми гібридного автомата. малюнок 1.1 – Групи пакетів візуального моделювання. Пакети, що належать до першої групи, використовують графічну мову ієрархічних блок-схем. Блок вищого рівня ієрархії збирається з деякого набору стандартних блоків (створених раніше розроблювачами пакета, або написаних самим користувачем), що з'єднуються односпрямованими функціональними зв'язками. Зібрану функціональну схему можна використовувати як блок на наступному рівні ієрархії і можна запам'ятати в бібліотеці блоків. До достоїнств цього підходу варто віднести, насамперед, надзвичайну простоту створення не дуже складних моделей навіть не занадто підготовленим користувачем. У той же час при створенні складних моделей приходиться будувати досить громіздкі багаторівневі блок-схеми, що не відбивають природної структури системи, яка моделюється. Це ускладняє процес моделювання. Найбільш відомими представниками першої групи є: підсистема Simulink пакета MATLAB [4]; пакет EASY5 [5]; підсистема SystemBuild пакета MATRIXx [6]; VisSim [7]. Пакети, що належать до другої групи, дозволяють при створенні моделі використовувати неорієнтовані і потокові зв'язки. Користувач може сам визначати нові класи блоків. Безупинна складова поводження елементарного блоку задається системою алгебро-диференціальних рівнянь і формул. Дискретна складова задається описом дискретних подій, при виникненні яких можуть виконуватися миттєві присвоювання перемінним нових значень. Дискретні події можуть поширюватися спеціальними зв'язками. Зміна структури рівнянь можлива тільки побічно через коефіцієнти в правих частинах (це обумовлено необхідністю символьних перетворень при переході до еквівалентної системи). Підхід дуже зручний і природний для опису типових блоків фізичних систем. Недоліками є необхідність символьних перетворень, що різко звужує можливості опису гібридного поводження, а також необхідність чисельного рішення великого числа алгебраїчних рівнянь, що значно ускладнює задачу автоматичного одержання достовірного рішення. Серед пакетів, що належать до другої групи, можна відзначити: Dymola [8]; Мова Dymola була спроектована засновником Dynasim, розроблювачем Simnon пакета моделювання доктором Hilding Elmqvist у 1996 році. Omola і OmSim [9]; OmSim - діалогове середовище інтегрованих інструментальних засобів, що підтримує розробку моделі і моделювання. OmSim заснований на базі об’ектно-ориентованої мови моделювання Omola. Smile [10]; Modelica [11]. Третя група містить у собі пакети, засновані на використанні схеми гібридного автомата. Використання карти станів при описі переключень станів, а також безпосередній опис безупинних поводжень системи системами алгебро-дифференциальных рівнянь надає великі можливості в описі гібридного поводження зі складною логікою переключень. До недоліків варто також віднести надмірність опису при моделюванні чисто безупинних систем. До цієї групи відносяться: пакет Shift [12]; Shift - мова програмування для опису динамічних мереж гібридних автоматів. пакет Model Vision Studium [13]. ^ 1.2 Опис системи MatLab Сучасна комп'ютерна математика пропонує цілий набір інтегрованих програмних систем і пакетів програм для автоматизації математичних розрахунків: Eureka, Gauss, TK Solver!, Derive, Mathcad, Mathematica, Maple V і ін. Виникає питання: «А яке місце займає серед них система MATLAB?» MATLAB — одна з найстарших, ретельно пророблених й перевірених часом систем автоматизації математичних розрахунків, яка побудована на розширеному представленні й застосуванні матричних операцій. Це знайшло відображення в назві системи — MATrix LABoratory — матрична лабораторія. Однак синтаксис мови програмування системи продуманий настільки ретельно, що ця орієнтація майже не відчувається тими користувачами, яких не цікавлять безпосередньо матричні обчислення. Матриці широко застосовуються в складних математичних розрахунках, наприклад, при рішенні задач лінійної алгебри і математичного моделювання статичних і динамічних систем і об'єктів. Вони є основою автоматичного складання й рішення рівнянь стану динамічних об'єктів і систем. Прикладом може служити розширення MATLAB — Simulink. Це істотно підвищує інтерес до системи MATLAB, що увібрала в себе кращі досягнення в області швидкого рішення матричних задач. Однак сьогодні MATLAB далеко вийшла за межі спеціалізованої матричної системи і стала однією з найбільш могутніх універсальних інтегрованих обчислювальних систем. Слово «інтегрована» указує на те, що в цій системі об'єднані зручна оболонка, редактор виражень і текстових коментарів, обчислювач і графічний програмний процесор. У новій версії використовуються такі могутні типи даних, як багатомірні масиви, масиви осередків, масиви структур, масиви Java і розріджені матриці, що відкриває можливості застосування системи при створенні й налагодженні нових алгоритмів матричних і заснованих на них рівнобіжних обчислень і великих баз даних. У цілому MATLAB — це унікальна колекція реалізацій сучасних чисельних методів комп'ютерної математики, створених за останні три десятки років. Вона увібрала в себе і досвід, правила і методи математичних обчислень, які були накопичені за тисячі років розвитку математики. Це сполучається з могутніми засобами графічної візуалізації і навіть анімаційної графіки. Систему з прикладеної до неї великою документацією цілком можна розглядати як фундаментальний багатотомний електронний довідник по математичному забезпеченню ЕОМ — від масових персональних комп'ютерів до супер-ЕОМ. На жаль, поки представлений цілком лише англійською і частково японською мовами. Система MATLAB була розроблена Молером (С. В. Moler) і з кінця 70-х рр. широко використовувалася на великих ЕОМ. На початку 80-х рр. Джон Литл (John Little) з фірми MathWorks, Inc. розробив версії системи PC MATLAB для комп'ютерів класу IBM PC, VAX і Macintosh. Надалі були створені версії для робочих станцій Sun, комп'ютерів з операційною системою UNIX і багатьох інших типів великих і малих ЕОМ. Зараз понад десяток популярних комп'ютерних платформ можуть працювати із системою MATLAB. До розширення системи були притягнуті найбільші наукові школи світу в області математики, програмування й природознавства. І от тепер з'явилася новітня версія цієї системи — MATLAB 6. Однією з основних задач системи було надання користувачам могутньої мови програмування, орієнтованого на математичні розрахунки і здатного перевершити можливості традиційних мов програмування, що багато років використовувалися для реалізації чисельних методів. При цьому особлива увага приділялася як підвищенню швидкості обчислень, так і адаптації системи до рішення найрізноманітніших задач користувачів. Можливості MATLAB дуже великі, а по швидкості виконання задач система нерідко перевершує своїх конкурентів. Вона застосовна для розрахунків практично в будь-якій області науки й техніки. Наприклад, дуже широко використовується при математичному моделюванні механічних пристроїв і систем, зокрема, в динаміці, гідродинаміці, аеродинаміці, акустиці, енергетиці і т.д. Цьому сприяє не тільки розширений набір матричних і інших операцій і функцій, але і наявність пакета розширення (toolbox) Simulink, спеціально призначеного для рішення задач блокового моделювання динамічних систем і пристроїв, а також десятків інших пакетів розширень. У великому й постійно поповнюваному комплексі команд, функцій і прикладних програм системи MATLAB містяться спеціальні засоби для електротехнічних і радіотехнічних розрахунків (операції з комплексними числами, матрицями, векторами й поліномами, обробка даних, аналіз сигналів і цифрова фільтрація), обробки зображень, реалізації нейроних мереж, а також засоби, що відносяться до інших нових напрямків науки й техніки. Вони ілюструються безліччю практично корисних прикладів. До розробок розширень для системи MATLAB притягнуто багато наукових шкіл світу, якими керують великі вчені й педагоги університетів. Важливими достоїнствами системи є її відкритість і розширюваність. Більшість команд і функцій системи реалізовані у виді текстових m-файлів (з розширенням .m) і файлів мовою Си, крім того усі файли доступні для модифікації. Користувачеві надана можливість створювати не тільки окремі файли, але і бібліотеки файлів для реалізації специфічних задач. Разюча легкість модифікації системи і можливість її адаптації до рішення специфічних задач науки і техніки привели до створення десятків пакетів прикладних програм (toolbox), які набагато розширили сфери застосування системи. Однією з проблем сучасної науки є розробка і впровадження в практику методів дослідження функціонування складних систем. До класу складних систем відносять технологічні, виробничі, енергетичні комплекси, системи автоматизації керування й інших об'єктів. Моделювання є одним із найбільш могутніх засобів дослідження подібних систем на сьогоднішній день. Моделювання - один із найбільш розповсюджених засобів вивчення різних процесів і явищ. Моделлю вихідного об'єкта називається представлення об'єкта в деякій формі, відмінної від форми його реального існування [1]. В інженерній практиці модель, звичайно, створюється для: проведення на моделі експериментів, які неможливо або складно провести на реальному об'єкті (що надає можливість одержання нових знань про об'єкт); прискорення, здешевлення, спрощення і будь-якого іншого удосконалення процесу проектування, що досягається за рахунок роботи з більш простим об'єктом, чим вихідний, тобто з моделлю. Сьогодні відомі і широко використовуються в наукових дослідженнях і інженерній практиці різні типи моделей і численні методи моделювання. Якщо взяти за основу ступінь абстрактності (ступінь відмінності від реального об'єкта), то можна визначити наступні типи моделей: фізичні (натурні) моделі (відтворюють досліджуваний процес із збереженням його фізичної природи і є інструментом фізичного моделювання); аналогові моделі (заміняють один об'єкт на іншій зі схожими властивостями); математичні моделі (абстрактні моделі, існують у формі спеціальних математичних конструкцій ). Під математичним моделюванням розуміють засіб дослідження різних процесів шляхом вивчення явищ, що мають різний фізичний зміст, але описуваних однаковими математичними співвідношеннями [2].1.3 Можливості систем MATLAB 1.3.1 Можливості колишніх версій MATLAB 4.x Уже перші орієнтовані на Microsoft Windows версії системи (MATLAB 4.x) мали могутні засоби. В області математичних обчислень: матричні, векторні, логічні оператори; елементарні і спеціальні функції; поліноміальна арифметика; багатомірні масиви; масиви записів; масиви осередків. В області реалізації чисельних методів: диференціальні рівняння; обчислення одномірних і двовимірних квадратур; пошук коренів нелінійних алгебраїчних рівнянь; оптимізація функцій декількох перемінних; одномірна і багатомірна інтерполяція. В області програмування: понад 500 математичних функції; уведення/вивід двоичных і текстових файлів; застосування програм, написаних на Си і ФОРТРАН; автоматичне перекодування процедур MATLAB у тексти програм на мовах С і C++; типові керуючі структури. В області візуалізації і графіки: можливість створення двовимірних і тривимірних графіків; здійснення візуального аналізу даних. Ці засоби сполучалися з відкритою архітектурою систем, що дозволяє змінювати вже існуючі функції і додавати свої власні. Вхідна до складу MATLAB програма Simulink дає можливість імітувати реальні системи і пристрої, задаючи їх моделями, складеними з функціональних блоків. Simulink має велику і розширювану користувачами бібліотеку блоків і прості засоби завдання і зміни їхніх параметрів.1.3.2 Можливості версій MATLAB 5.x У версіях системи MATLAB 5.x уведені нові могутні засоби. Поліпшене середовище програмування: оцінка часу виконання фрагментів програм; редактор/отладник m-файлів із зручним графічним інтерфейсом; об’єктно-ориентоване програмування, включаючи перепризначення функцій і операторів; засоби перегляду вмісту робочої області і шляхів доступу; конвертування m-файлів функцій у проміжний р-код. Графічний інтерфейс користувача (GUI): інтерактивний засіб побудови графічного інтерфейсу користувача — GUI; новий редактор властивостей графічних об'єктів — Handle Graphics Property Editor (редактор властивостей дескрипторної графіки); панелі списків, включаючи списки з множинним вибором; форма діалогових панелей і панелей повідомлень; багатостроковий режим редагування тексту; запам'ятовування послідовності графічних елементів керування; розширення параметрів елементів керування; властивість перенесення між платформами; курсор, обумовлений користувачем; підготовка документів у форматі HTML (мови розмітки гіпертексту Hypertext Mark Up Language) починаючи з версії 5.3. Нові типи даних: багатомірні масиви; масиви структур (записів); масиви осередків даних різного типу; масиви символів із 16-розрядним кодуванням; масиви із 8-розрядним кодуванням елементів. Засоби програмування: списки аргументів перемінної довжини; перепризначення функцій і операторів; застосування локальних функцій у m-файлах; оператор-перемикач switch...case...end; оператор wait for; функції обробки бітів. Математичні обчислення й аналіз даних: п'ять нових чисельних методів рішення (solver) звичайних диференціальних рівнянь(ОДУ); прискорене обчислення функцій Бесселя; обчислення власних значень і сингулярних чисел для матриць розрідженої структури; двовимірні квадратурні формули; багатомірна інтерполяція; тріангуляція і вивід на термінал даних, визначених на нерівномірній сітці; аналіз і обробка багатомірних масивів; функції обробки часу і дати. Нові можливості звичайної графіки: Z-буферизація для швидкої і точної тримірної візуалізації; 24-бітова підтримка RGB; множинне підсвічування поверхонь і полігонів; перспективні зображення з довільної крапки; нові моделі підсвічування; векторизовані полігони для великих тримірних моделей; підтримка даних, визначених на нерівномірній сітці, включаючи тріангуляційні і сіткові дво- і тримірні поверхні; дескріпторна графіка для множинних об'єктів; вивід на термінал, збереження й імпорт 8-розрядних зображень; додаткові формати графічних об'єктів. Презентаційна графіка і звук: подвійні х- і y-осі; легенда — пояснення у виді відрізків ліній з довідковими написами, розташовуване усередині графіка чи біля нього; керування шрифтом текстових об'єктів; надрядкові, підрядкові і грецькі символи; тримірні діаграми, полючи напрямків, стрічкові і стрижневі графіки; збільшена кількість стилів для маркірування ліній; 16-бітний стереозвук. Інтерактивна документація: можливість перегляду за допомогою Netscape Navigator чи Microsoft Internet Explorer; повна довідкова документація у форматах HTML і PDF; 1.3.3 Можливості новітньої версії MATLAB 6 Новітня версія системи MATLAB 6 не тільки має перераховані вище можливості попередніх версій, але і характеризується новими й важливими можливостями: доведене до більш ніж 600 число функцій і команд; новий інтерфейс із набором інструментів для керування середовищем; нові інструменти, що дозволяють за допомогою миші интерактивно редагувати і форматировати графіки, оптимізувати їхні коди і витрати пам'яті на графічні команди й атрибути; поліпшені алгоритми на основі оптимізованої бібліотеки LAPACK; нова бібліотека FFTW (швидких перетворень Фур'є) Массачусетського технологічного інституту Кембріджського університету (США); прискорені методи інтегральних перетворень; нові, більш могутні і точні, алгоритми інтегрування диференціальних рівнянь і квадратур; нові сучасні функції візуалізації: вивід на екран двовимірних зображень, поверхонь і об'ємних фігур у виді прозорих об'єктів; нова інструментальна панель Camera для керування перспективою і прискорення виводу графіки за допомогою OpenGL; новий інтерфейс для виклику Java-процедур і використання Java-об'єктів безпосередньо з MATLAB; нові, сучасні інструменти проектування графічного користувальницького інтерфейсу; обробка (регресія, інтерполяція, апроксимація й обчислення основних статистичних параметрів) графічних даних прямо з вікна графіки; новий додаток MATLAB для системи розробки Visual Studio, що дозволяє автоматично, безпосередньо з Microsoft Visual Studio, перетворювати Си і Си++ коди у виконувані MATLAB файли (Хутра-файли); інтеграція із системами контролю версій коду, такими як Visual Source Safe; новий інтерфейс (послідовний порт) для обміну даними із зовнішнім устаткуванням з MATLAB; новий пакет керування вимірювальними приладами (Instrument Control ToolBox) для обміну інформацією з приладами, підключеними до Каналу загального користування (GPIB, HP-IB, IEEE-488) істотно обновлені пакети розширення, зокрема, нові версії пакета моделювання динамічних систем Simulink 4 і Real Time Workshop 4; інтеграція із системами керування потребами, наприклад, DOORS. Поставляється із системою MATLAB 6.0 новий пакет розширення Simulink 4 також має ряд новинок. Вони перераховані нижче по категоріях. Удосконалення користувальницького інтерфейсу: новий графічний налагоджувач для інтерактивного пошуку і діагностики помилок у моделі; удосконалено навігатора моделей (Model Browser, Windows 95/98/Me/ 2000/NT4); новий одновіконний режим для відкриття підсистем; контекстне меню для блок-діаграм (відкривається щигликом правої кнопки миші) як у Windows, так і в Unix версіях; новий діалог Finder для пошуку моделей і бібліотек. ^ 1.4 Підсистема Simulink пакета Matlab Серед великого числа пакетів візуального моделювання пакет Matlab займає особливе місце. Спочатку орієнтований на дослідницькі проекти, пакет в останні роки став робочим інструментом інженерів, студентів, керівників, фізиків, зв'язківців. Однією з основних причин широкого використання пакета Matlab є великий спектр засобів, що надає користувачеві для рішення різноманітних задач у різних областях людської діяльності. Серед цих засобів особливе місце займає підсистема Simulink. Simulink - це інтерактивне середовище для моделювання й аналізу широкого класу динамічних систем за допомогою блок-діаграм. Основні властивості підсистеми Simulink: містить у собі велику бібліотеку блоків (безупинні елементи, дискретні елементи, математичні функції, нелінійні елементи, джерела сигналів, засоби відображення, додаткові блоки), які можна використовувати для графічного збирання систем; надає можливість моделювання лінійних, нелінійних, безупинних, дискретних і гібридних систем; блок-діаграми можуть бути об'єднані в складені блоки, що дозволяє використовувати ієрархічне представлення структури моделі, тим самим забезпечуючи спрощений погляд на компоненти і підсистеми ; містить засоби для створення користувальницьких блоків і бібліотек блоків; підтримує підсистеми, що працюють за умовами, тригерів. Simulink забезпечують інтерактивне середовище для моделювання, при цьому поводження моделі і результати її функціонування відображаються в процесі роботи, і існує можливість змінювати параметри моделі навіть у той момент, коли вона виконується. Simulink дозволяє створювати власні блоки і бібліотеки блоків з доступом із програм на Matlab, Fortran чи C, зв'язувати блоки з розробленими раніше програмами на Fortran і C, що містять вже перевірені моделі. Починаючи з версії 3.0 у Simulink з'явилися спеціалізовані додатки, що значно збільшили міць даного середовища моделювання: Stateflow - графічний інструментарій для проектування складних систем керування. Stateflow дає можливість моделювати поводження складних подійно-керувальних систем, базуючись на теорії кінцевих автоматів. Це дозволяє користувачам Simulink додавати подійно-керувальне поводження до їхніх моделей. Stateflow Coder - генерація З коду для діаграм Stateflow . Використовуючи Stateflow і Stateflow Coder, користувач може генерувати код винятково для Stateflow-частин моделі Simulink. Real-Time Workshop - доповнює Simulink і Stateflow Coder, забезпечуючи автоматичну генерацію коду C з моделей Simulink. За допомогою Real -Time Workshop можна легко генерувати код для дискретних, безупинних і гібридних систем, включаючи системи, що містять підсистеми працюючі при виконанні визначених умов. DSP Blockset - бібліотеки блоків Simulink для створення, моделювання і макетування цифрових систем обробки сигналів. Nonlinear Control Design Blockset - інтерактивний підхід до автоматизованого проектування систем керування. Fixed-Point Blockset - бібліотеки блоків Simulink для моделювання поводження систем керування і динамічних фільтрів з фіксованою крапкою. Simulink Report Generator - дозволяє створювати і будувувати звіти з моделей Simulink і Stateflow у різних форматах, серед яких HTML, RTF, XML і SGML.