1 опис засобів моделювання складних динамічних систем
Вид материала | Документы |
Содержание1.2 Опис системи MatLab 1.4 Підсистема Simulink пакета Matlab |
- Реферат циклу робіт «Конструктивна теорія моделювання, аналізу та оптимізації систем, 263.81kb.
- Інформаційний бюлетень №3 від 08. 04. 10 Відділу міжнародних зв’язків, 403.32kb.
- Бондаренко Дмитро Володимирович удк 621. 373. 826 Моделювання динамічних процесів, 203.61kb.
- А. М. Підгорного цикл робіт "математичні методи оптимізації та інтелектуальні комп’ютері, 172.06kb.
- А. М. Підгорного цикл робіт "математичні методи оптимізації та інтелектуальні комп’ютері, 173.83kb.
- Назва модуля: Методи прийняття рішень в стохастичному середовищі Код модуля, 22.66kb.
- Назва модуля: Моделювання комплексів та систем транспортних засобів Код модуля, 88.98kb.
- Програма навчальної дисципліни «контроль І діагностика складних систем» за кредитово-модульною, 218.58kb.
- Робоча навчальна програма з дисципліни "Програмне забезпечення процесів моделювання, 462.53kb.
- Основи об'ємного комп'ютерного моделювання, 82.53kb.
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.