Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Діаграми станів

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

Розглянемо простий приклад. Будь-який технічний пристрій, такий як телевізор, комп’ютер, автомобіль, телефонний апарат у самому загальному випадку може характеризуватися такими своїми станами, як "справний" і "несправний". Інтуїтивно ясно, який зміст вкладається в кожне із цих понять. Більше того, використання за призначенням даного пристрою можливе тільки тоді, коли він перебуває в справному стані. У противному випадку необхідно почати конкретні дії з його ремонту й відновленню працездатності.

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

Зрозуміло, що кожна прикладна система характеризується не тільки структурою складових її елементів, але й деяким поводженням або функціональністю. Для загального подання функціональності модельованої системи призначені діаграми варіантів використання, які на концептуальному рівні описують поводження системи в цілому. Зараз наше завдання полягає в тім, щоб представити поводження більш детально на логічному рівні, тим самим розкрити сутність відповіді на питання: "У процесі якого поводження система забезпечує необхідну функціональність?".

Для моделювання поводження на логічному рівні в мові UML можуть використовуватися відразу кілька канонічних діаграм: станів, діяльності, послідовності й кооперації, кожна з яких фіксує увагу на окремому аспекті функціонування системи. На відміну від інших діаграм діаграма станів описує процес зміни станів тільки одного класу, а точніше – одного екземпляра певного класу, тобто моделює всі можливі зміни в стані конкретного об’єкта. При цьому зміна стану об’єкта може бути викликана зовнішніми впливами з боку інших об’єктів або ззовні. Саме для опису реакції об’єкта на подібні зовнішні впливи й використовуються діаграми станів.

Головне призначення цієї діаграми – описати можливі послідовності станів і переходів, які в сукупності характеризують поводження елемента моделі протягом його життєвого циклу. Діаграма станів представляє динамічне поводження сутностей, на основі специфікації їхньої реакції на сприйняття деяких конкретних подій. Системи, які реагують на зовнішні дії від інших систем або від користувачів, іноді називають реактивними. Якщо такі дії ініціюються в довільні випадкові моменти часу, то говорять про асинхронне поводження моделі.

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

Діаграма станів по суті є графом спеціального виду, що представляє деякий автомат. Поняття автомата в контексті UML має досить специфічну семантику, засновану на теорії автоматів. Вершинами цього графа є стани й деякі інші типи елементів автомата (псевдостани), які зображуються відповідними графічними символами. Дуги графа слугують для позначення переходів зі стану в стан. Діаграми станів можуть бути вкладені одна в одну для більш детального подання окремих елементів моделі. Для розуміння семантики конкретної діаграми станів необхідно представляти не тільки особливості поводження модельованої сутності, але й знати загальні відомості з теорії автоматів.

 

Автомати

Автомат (state machine) у мові UML являє собою деякий формалізм для моделювання поводження елементів моделі й системи в цілому. У метамоделі UML автомат є пакетом, у якому визначена множина понять, необхідних для подання поводження модельованої сутності у вигляді дискретного простору з кінцевим числом станів і переходів. З іншого боку, автомат описує поводження окремого об’єкта у формі послідовності станів, які охоплюють всі етапи його життєвого циклу, починаючи від створення об’єкта й закінчуючи його знищенням. Кожна діаграма станів представляє деякий автомат.

Найпростішим прикладом візуального подання станів і переходів на основі формалізму автоматів може служити розглянута вище ситуація зі справністю технічного пристрою, такого як комп’ютер. У цьому випадку вводяться в розгляд два самих загальних стани: "справний" і "несправний" і два переходи: "вихід з ладу" і "ремонт". Графічно ця інформація може бути представлена у вигляді зображеної нижче діаграми станів комп’ютера (рис. 2.11).

 

Рис. 2.11. Простий приклад діаграми станів для технічного пристрою

 

Основними поняттями, що входять у формалізм автомата, є стан і перехід. Головна відмінність між ними полягає у тому, що тривалість знаходження системи в окремому стані істотно перевищує час, що затрачається на перехід з одного стану в інший. Припускається, що в границі час переходу з одного стану в інший дорівнює нулю (якщо додатково нічого не сказано). Інакше кажучи, перехід об’єкта зі стану в стан відбувається миттєво.

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

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

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

Формалізм автоматів допускає вкладення одних автоматів в інші для уточнення внутрішньої структури окремих більш загальних станів (макростанів). У цьому випадку вкладені автомати одержали назву підавтоматів. Підавтомати можуть використовуватися для внутрішньої специфікації процедур і функцій, що утворять поводження вихідного об’єкта. Наприклад, стан несправності технічного пристрою (рис. 2.11) може бути деталізований на окремі підстани, кожний з яких може характеризувати несправність окремих підсистем, що входять до складу даного пристрою.

Формалізм звичайного автомата заснований на виконанні наступних обов’язкових умов:

1. Автомат не запам’ятовує історію переміщення зі стану в стан. З погляду модельованого поводження визначальним є сам факт знаходження об’єкта в тім або іншому стані, але ніяк не послідовність станів, у результаті якої об’єкт перейшов у поточний стан. Інакше кажучи, автомат "забуває" всі стани, які передували поточному у цей момент часу. Образно кажучи, існує непрозора стіна, що відокремлює поточний стан від минулого поводження об’єкта.

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

3. Хоча процес зміни станів автомата відбувається в часі, явно концепція часу не входить у формалізм автомата. Це означає, що тривалість знаходження автомата в тому або іншому стані, а також час досягнення того або іншого стану ніяк не специфікуються. Інакше кажучи, час на діаграмі станів присутній в неявному виді, хоча для окремих подій може бути зазначений інтервал часу й у явному виді.

4. Кількість станів автомата повинна бути обов’язково кінцевою (у мові UML розглядаються тільки кінцеві автомати), і всі вони повинні бути специфіковані явно. При цьому окремі псевдостани можуть не мати специфікацій (початковий і кінцевий стани). У цьому випадку їхнє призначення й семантика повністю визначаються з контексту моделі й розглянутої діаграми станів.

5. Граф автомата не повинен містити ізольованих станів і переходів. Ця умова означає, що для кожного зі станів, крім початкового, повинний бути визначений попередній стан. Кожний перехід повинен обов’язково з’єднувати два стани автомата. Допускається перехід зі стану в себе, такий перехід ще називають "петлею".

6. Автомат не повинен містити конфліктуючих переходів, тобто таких переходів з одного й того самого стану, коли об’єкт одночасно може перейти у два та більше наступні стани (крім випадку паралельних підавтоматів). У мові UML виключення конфліктів можливе на основі введення так званих сторожових умов.

Таким чином, правила поведінки об’єкта, модельованого деяким автоматом, визначаються, з одного боку, загальним формалізмом автомата, а з іншого боку – його графічним зображенням у мові UML у формі конкретної діаграми станів.

 

Стан

Поняття стану (state) є фундаментальним не тільки в метамоделі мови UML, але й у прикладному системному аналізі. Уся концепція динамічної системи ґрунтується на понятті стану системи. Однак семантика стану в мові UML має цілий ряд специфічних особливостей.

У мові UML під станом розуміється абстрактний метаклас, використовуваний для моделювання окремої ситуації, протягом якої має місце виконання деякої умови. Стан може бути заданим у виді набору конкретних значень атрибутів класу або об’єкта, при цьому зміна їхніх окремих значень буде відбивати зміну стану модельованого класу або об’єкта.

Варто відмітити, що не кожен атрибут класу може характеризувати його стан. Як правило, мають значення тільки такі властивості елементів системи, які відбивають динамічний або функціональний аспект її поводження. У цьому випадку стан буде характеризуватися деякою інваріантною умовою, що включає в себе тільки значимі для поводження класу атрибути і їхні значення. Наприклад, інваріант може представляти статичну ситуацію, коли об’єкт знаходиться в стані чекання виникнення деякої зовнішньої події. З іншого боку, інваріант використовується для моделювання динамічних аспектів, коли в ході процесу виконуються деякі дії. У цьому випадку модельований елемент переходить у розглянутий стан у момент початку відповідної діяльності і залишає даний стан у момент її завершення.

 

Рис. 2.12. Графічне зображення станів на діаграмі станів

 

Стан на діаграмі зображується прямокутником з округленими вершинами (рис. 2.12). Цей прямокутник, у свою чергу, може бути розділений на дві секції горизонтальною лінією. Якщо вказана лише одна секція, то в ній записується тільки ім’я стану (рис. 2.12, а). У іншому випадку в першій з них записується ім’я стану, а в другий – список деяких внутрішніх дій або переходів у даному стані (рис. 2.12, б). При цьому під дією в мові UML розуміють деяку атомарну операцію, виконання якої приводить до зміни стану або поверненню деякого значення (наприклад, "істина" або "неправда").

 

Ім’я стану

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

 

Список внутрішніх дій

Ця секція містить перелік внутрішніх дій або діяльностей, які виконуються в процесі знаходження модельованого елемента в даному стані. Кожна з дій записується у вигляді окремого рядка та має наступний формат:

<мітка дії '/' вираз дії>

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

Перелік міток дії має фіксовані значення в мові UML, які не можуть бути використані як імена подій. Ці значення наступні:

  • entry – ця мітка вказує на дію, яка специфікована наступним за нею виразом дії, що виконується в момент входу в даний стан (вхідна дія);
  • exit – ця мітка вказує на дію, яка специфікована наступним за нею виразом дії, що виконується в момент виходу з даного стану (вихідна дія);
  • do – ця мітка специфікує діяльність ("do activity"), що виконується протягом усього часу, поки об’єкт перебуває в даному стані, або доти, поки не закінчиться обчислення, специфіковане наступним за нею виразом дії. В останньому випадку при завершенні події генерується відповідний результат;
  • include – ця мітка використовується для звертання до підавтомату, при цьому наступний за нею вираз дії містить ім’я цього підавтомата.

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

Як приклад стану розглянемо ситуацію введення пароля користувача при аутентифікації входу в деяку програмну систему (рис. 2.13). У цьому випадку список внутрішніх дій у даному стані не порожній і включає 4 окремі дії, перші дві з яких стандартні й описані вище, а дві останніх визначаються своєю специфікацією.

 

Рис. 2.13. Приклад стану з не порожньою секцією дії

 

Початковий та кінцевий стани

Початковий стан являє собою окремий випадок стану, що не містить ніяких внутрішніх дій (псевдостан). У цьому стані перебуває об’єкт за замовчуванням у початковий момент часу. Він служить для вказування на діаграмі станів графічної області, від якої починається процес зміни станів. Графічно початковий стан у мові UML позначається у вигляді зафарбованого кружка (рис. 2.14, а), з якого може тільки виходити стрілка, що відповідає переходу.

 

Рис. 2.14. Графічне зображення початкового та кінцевого станів
на діаграмі станів

 

Кінцевий (фінальний) стан являє собою окремий випадок стану, що також не містить ніяких внутрішніх дій (псевдостан). У цьому стані буде перебувати об’єкт за замовчуванням після завершення роботи автомата в кінцевий момент часу. Він служить для вказування на діаграмі станів графічної області, у якій завершується процес зміни станів або життєвий цикл даного об’єкта. Графічно кінцевий стан у мові UML позначається у вигляді зафарбованого кружка, поміщеного в окружність (рис. 2.14, б), в який може тільки входити стрілка, що відповідає переходу.

 

Перехід

Простий перехід (sіmple transіtіon) являє собою відношення між двома послідовними станами, що вказує на факт зміни одного стану іншим. Перебування модельованого об’єкта в першому стані може супроводжуватися виконанням деяких дій, а перехід у другий стан буде можливий після завершення цих дій, а також після задоволення деяких додаткових умов. У цьому випадку говорять, що перехід спрацьовує, або відбувається спрацювання переходу. До спрацьовування переходу об’єкт знаходиться в попередньому від нього стані, який називається вихідним станом (не плутати з початковим станом – це різні поняття), а після його спрацьовування об’єкт знаходиться в наступному від нього стані (цільовому стані).

Перехід здійснюється при настанні деякої події: закінчення виконання діяльності (do actіvіty), одержанні об’єктом повідомлення або прийомі сигналу. На переході вказується ім’я події. Крім того, на переході можуть вказуватися дії, що виконуються об’єктом у відповідь на зовнішні події при переході з одного стану в інше. Спрацьовування переходу може залежати не тільки від настання деякої події, але і від виконання визначеної умови, яка називається сторожовою умовою. Об’єкт перейде з одного стану в інше в тому випадку, якщо відбулася зазначена подія і сторожова умова прийняла значення "істина".

 

Подія

Термін подія (event) вимагає окремого пояснення, оскільки є самостійним елементом мови UML. Формально, подія являє собою специфікацію деякого факту, що має місце в просторі і в часі. Про події говорять, що вони "відбуваються", при цьому окремі події повинні бути упорядковані в часі. Після настання деякої події не можна вже повернутися до попередніх подій, якщо така можливість не передбачена явно в моделі.

Семантика поняття події фіксує увагу на зовнішніх проявах якісних змін, що відбуваються при переході модельованого об’єкта зі стану в стан. Наприклад, при включенні електричного перемикача відбувається деяка подія, у результаті якого кімната стає освітленою. Після успішного ремонту комп’ютера також відбувається немаловажна подія – відновлення його працездатності. Якщо підняти трубку звичайного телефону, то, у випадку його справності, ми очікуємо почути тоновий сигнал. І цей факт теж є подією.

У мові UML події відіграють роль стимулів, що ініціюють переходи з одних станів в інші. Як події можна розглядати сигнали, виклики, закінчення фіксованих проміжків часу або моменти закінчення виконання визначених дій. Ім’я події ідентифікує кожен окремий перехід на діаграмі станів і може містити рядок тексту, що починається з малої літери. У цьому випадку прийнято вважати перехід тригерним, тобто таким, котрий специфікує подія-тригер. Наприклад, переходи на рис. 2.11 є тригерними, оскільки з кожним з них зв’язана якась подія-тригер, що відбувається асинхронно в момент виходу з ладу технічного пристрою або в момент закінчення його ремонту.

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

 

Складений стан і підстан

Складений стан (composіte state) – такий складний стан, що складається з інших вкладених у нього станів. Останні будуть виступати відносно першого як підстани (substate). Хоча між ними має місце відношення композиції, графічно усі вершини діаграми, що відповідають вкладеним станам, зображуються усередині символу складеного стану (рис. 2.15). У цьому випадку розміри графічного символу складеного стану збільшуються, так щоб вмістити в себе всі підстани.

 

Рис. 2.15. Графічне представлення складеного стану з двома
вкладеними в нього послідовними підстанами

 

Складений стан може містити два або більше паралельних підавтомата або декілька послідовних підстанів. Кожен складний стан може уточнюватися тільки одним із зазначених способів. При цьому кожний з підстанів, у свою чергу, може бути складеним станом і містити усередині себе інші вкладені підстани. Кількість рівнів вкладеності складених станів не фіксована в мові UML.

 

Послідовні підстани

Послідовні підстани (sequentіal substates) використовуються для моделювання такого поводження об’єкта, під час якого в кожен момент часу об’єкт може знаходитися в одному і тільки одному підстані. Поводження об’єкта в цьому випадку являє собою послідовну зміну підстанів починаючи від початкового і закінчуючи кінцевим підстанами. Хоча об’єкт продовжує знаходитися в складеному стані, введення в розгляд послідовних підстанів дозволяє врахувати більш тонкі логічні аспекти його внутрішнього поводження.

Для прикладу розглянемо в якості модельованого об’єкта звичайний телефонний апарат. Він може знаходитися в різних станах, одним із яких є стан додзвону до абонента. Очевидно, для того щоб подзвонити, необхідно зняти слухавку, почути тоновий сигнал, після чого набрати потрібний телефонний номер. Таким чином, стан додзвону до абонента є складеним і складається з двох послідовних підстанів: "підняти слухавку" і "набрати телефонний номер". Фрагмент діаграми станів для цього приклада містить один складений стан і два послідовних підстани (рис. 2.16).

 

Рис. 2.16. Приклад складеного стану з двома вкладеними послідовними підстанами.

 

Деяких пояснень можуть вимагати переходи. Два з них специфікують подію-тригер набір цифри, що має ім’я "цифра" з параметром "n". Як параметр, як легко припустити, виступає окрема цифра на диску телефонного апарата. Перехід з початкового підстану нетригерний, оскільки він не містить ніякого рядка тексту. Останній перехід у кінцевий підстан не має події-тригера, але має сторожову умову, що перевіряє правильність набраного номера абонента. Тільки у випадку істинності цієї умови телефонний апарат може перейти в кінцевий підстан, що характеризує суперстан "додзвон до абонента" у цілому.

Складений стан може містити в якості вкладених підстанів початковий і кінцевий стани. При цьому початковий підстан є вихідним, коли відбувається перехід об’єкта в даний складений стан. Якщо складений стан містить усередині себе кінцевий підстан, то перехід у цей вкладений кінцевий стан означає завершення перебування об’єкта в даному вкладеному стані. Важливо пам’ятати, що для послідовних підстанів початковий і кінцевий стани повинні бути єдиними в кожнім складеному стані.

Це можна пояснити в такий спосіб. Кожна сукупність вкладених послідовних підстанів являє собою підавтомат того автомата, якому належить розглянутий складений стан. Оскільки кожен автомат може мати за визначенням єдиний початковий і єдиний кінцевий стани, то для підавтомату ця умова також повинна виконуватися (рис. 2.16).

 

Паралельні підстани

Паралельні підстани (concurrent substates) дозволяють специфікувати два і більш підавтомати, що можуть виконуватися паралельно усередині складеної події. Кожний з підавтоматів займає деяку область (регіон) усередині складеного стану, що відокремлюється від інших горизонтальною пунктирною лінією. Якщо на діаграмі станів є складений стан із вкладеними паралельними підстанами, то об’єкт може одночасно знаходитися в кожному з цих підстанів.

Однак окремі рівнобіжні підстани можуть, у свою чергу, складатися з декількох послідовних підстанів (підавтомати 1 і 2 на рис. 2.17). У цьому випадку за визначенням об’єкт може знаходитися тільки в одному з послідовних підстанів підавтомата. Таким чином, для абстрактного приклада (рис. 2.16) припустиме одночасне перебування об’єкта в підстанах (1, 3, 4), (2, 3, 4), (1, 3, 5), (2, 3, 5). Неприпустиме перебування об’єкта одночасно в підстанах (1, 2, 3) або (3, 4, 5).

 

Рис. 2.16. Графічне зображення складеного стану з вкладеними
рівнобіжними підстанами.

 

Оскільки кожен регіон вкладеного стану специфікується деяким підавтоматом, то для кожного з вкладених підавтоматів можуть бути визначені власні початкове і кінцеві підстани (рис. 2.17). При переході в даний складений стан кожний з підавтоматів опиняється у своєму початковому підстані. Далі відбувається паралельне виконання кожного з цих підавтоматів, причому вихід зі складеного стану буде можливий лише в тому випадку, коли всі підавтомати будуть знаходитися у своїх кінцевих підстанах.

Якщо який-небудь з підавтоматів прийшов у свій кінцевий стан раніше за інших, то він повинен очікувати, поки й інші підавтомати не прийдуть у свої кінцеві стани.

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

 

Рис. 2.18. Складений стан зі схованою внутрішньою структурою і
спеціальною піктограмою.

 


РОЗДІЛ 3. МЕТОДИ ТА ЗАСОБИ АНАЛІЗУ І МОДЕЛЮВАННЯ
СИСТЕМ УПРАВЛІННЯ

 

3.1. Моделювання систем

 

Основи моделювання, терміни, поняття. Обчислювальний експеримент

Під математичним моделюванням розуміють опис поводження фізичних систем за допомогою математичних рівнянь або співвідношень (математичних моделей) [7].

Відмінна риса моделювання як методу дослідження полягає в можливості вивчення, прогнозування й оптимізації таких процесів і об’єктів, фізичний (натурний) експеримент із якими дуже скрутний або економічно невигідний. У багатьох випадках натурний експеримент небезпечний і може бути виконаний лише один раз (зміна стану екологічних систем, керування кліматом), він вимагає багато часу (селекційні дослідження) або попросту неможливий (відтворення гео- і астрофізичних процесів).

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

Науково-технічний розвиток у будь-якій області зазвичай відбувається так: спостереження й експеримент → теоретичні дослідження → організація виробничих процесів.

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

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

Специфіка дослідницької роботи визначає наступні етапи моделювання складних систем:

1. Постановка конкретної задачі в термінах, якими описують процеси в розглядуваній системі.

2. Формалізація задачі – побудова математичної моделі розглядуваної системи, на підставі сформульованої прикладним фахівцем постановки задачі.

3. Перевірка і корегування моделі, з’ясування ступеня адекватності моделі і реального об’єкта за допомогою порівняння фактично виміряних (або зареєстрованих раніше) вхідних або вихідних параметрів об’єктів і відповідних параметрів моделей. У разі потреби виконується корегування моделі.

4. Знаходження оптимального рішення задачі на підставі уточненої моделі за допомогою того або іншого чисельного методу. Вибір відповідного методу рішення задачі цілком визначається видом отриманої математичної моделі. На цьому етапі складається програма для ЕОМ, що реалізує обраний алгоритм, і проводиться обчислювальний експеримент, що багато в чому схожий на звичайний. На ЕОМ проводять серії розрахунків (вимірів), у результаті яких дослідник одержує сукупність даних, що описують поводження об’єкта.

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

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

Сучасні інструменти комп’ютерного моделювання дозволяють у значній мірі автоматизувати проведення обчислювального експерименту.

З приведеного опису випливає, що моделювання – процес циклічний, у якому ті самі операції повторюються багаторазово. Ця циклічність обумовлена двома обставинами: технологічними, зв’язаними з помилками, допущеними на кожному з розглянутих етапів моделювання, і "ідеологічними", зв’язаними з уточненням моделі, і навіть з відмовою від неї, і переходом до іншої моделі. Ще один додатковий "зовнішній" цикл може з’явитися, якщо ми захочемо розширити область застосовності моделі, і змінимо вихідні дані, котрі вона повинна правильно враховувати, або допущення, при яких вона повинна бути справедливою [5].

Після циклу моделювання розроблена модель може бути:

· відкинута як непотрібна;

· продемонстрована замовнику як макет проектованого виробу;

· використана протягом життєвого циклу проектованого виробу на так називаному етапі супроводу, коли виправляються помилки, вносяться зміни, випробуються позаштатні режими;

· застосована як тренажер для навчання обслуговуючого персоналу;

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

 

Види моделей

Моделювання – це процес представлення об’єкта дослідження адекватною (подібною) йому моделлю і проведення експериментів з моделлю для одержання інформації про об’єкт дослідження [7]. Іншими словами, модель – це фізична або абстрактна система, що адекватно представляє собою об’єкт дослідження. Розрізняють фізичні та абстрактні моделі.

Фізичні моделі утворюються із сукупності матеріальних об’єктів. Для їхньої побудови використовуються різні фізичні властивості об’єктів, причому природа застосовуваних у моделі матеріальних елементів не обов’язково така ж, що й у досліджуваному об’єкті. Прикладом фізичної моделі є макет.

Абстрактна модель – це опис об’єкта досліджень на якій-небудь мові. Абстрактність моделі виявляється в тім, що її компонентами є поняття, а не фізичні елементи (наприклад, словесні описи, креслення, схеми, графіки, таблиці, алгоритми або програми, математичні описи).

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

Гносеологічні моделі спрямовані на вивчення об’єктивних законів природи (наприклад, моделі сонячної системи, біосфери, світового океану, катастрофічних явищ природи).

Інформаційні моделі описують поводження об’єкта-оригіналу, але не копіюють його.

Сенсуальні моделі – моделі якихось почуттів, емоцій, або моделі, що роблять вплив на почуття людини (наприклад, музика, живопис, поезія).

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

Математична модель – абстрактна модель, представлена мовою математичних відношень. Вона має форму функціональних залежностей між параметрами, що враховуються відповідною концептуальною моделлю. Ці залежності конкретизують причинно-наслідкові зв’язки, виявлені в концептуальній моделі, і характеризують їх кількісно.

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

 

Точність і основні джерела похибок

Процес дослідження об’єкта методом математичного моделювання та обчислювального експерименту неминуче носить наближений характер, тому, що на кожному етапі вносяться ті або інші похибки [8]. Так, побудова математичної моделі пов’язана зі спрощенням вихідного явища, недостатньо точним завданням коефіцієнтів рівняння й інших вхідних даних. Стосовно чисельного методу, що реалізує дану математичну модель, зазначені похибки є непереборними, оскільки вони неминучі в рамках даної моделі.

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

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

Дискретна модель являє собою систему великого числа алгебраїчних рівнянь. Неможливо знайти рішення такої системи точно й у явному виді. Тому доводиться використовувати той або інший чисельний алгоритм рішення системи алгебраїчних рівнянь. Вхідні дані цієї системи, а саме коефіцієнти і праві частини, задаються в ЕОМ не точно, а з округленням. У процесі роботи алгоритму похибки округлення зазвичай накопичуються, і в результаті рішення, отримане на ЕОМ, буде відрізнятися від точного рішення дискретизованої задачі. Результуюча похибка називається похибкою округлення (іноді її називають обчислювальною похибкою). Величина цієї похибки визначається двома факторами: точністю представлення дійсних чисел в ЕОМ і чутливістю даного алгоритму до похибок округлення.

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

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

 

 

3.2. Комп’ютерні системи для проведення математичних розрахунків
та моделювання

 

Комп’ютерне дослідження

Навіть невелика дослідницька або конструкторська проблема складається з ряду етапів, для виконання яких багаторазово приходиться звертатися до допомоги комп’ютера [9]. Постановка задачі і її уточнення, аналіз найпростіших моделей і ключових факторів, пробне дослідження, побудова розрахункової моделі й обрахування задачі, обробка результатів. З високою імовірністю дослідника чекає повторення даного циклу або деяких його частин: постановка, аналіз, дослідження, обробка і т.д..

При математичному моделюванні природничо-наукових і технічних задач потрібно бути готовими до того, що для проведення намічуваних робіт виявиться недосить наявних знань і умінь і знадобиться вивчити, розібрати, освоїти щось нове. Заздалегідь невідомо, які труднощі виникнуть при рішенні задачі і які засоби допоможуть справитися з проблемою. Мова тут, звичайно, не йде про рішення типових проблем (задач з відповідями), які також приходиться вирішувати в цьому житті. Хоча і прості проблеми можуть викликати великі складності.

Сформулюємо кілька загальних зауважень про рішення задач за допомогою обчислювальної машини. Перед тим як приступити до комп’ютерного дослідження математичної задачі, важливо ретельно обміркувати ряд питань:

1. Що відомо про вихідну задачу? Тобто якими властивостями вона володіє і чи вся ця інформація враховується при рішенні задачі (наприклад, якщо задача має симетрію, то вона повинна збережуватися й в апроксимаціях). Які вхідні дані, який інтервал їхньої зміни і як ці зміни можуть вплинути на хід рішення? Що приблизно ми хочемо одержати в результаті рішення, як повинна виглядати передбачувана відповідь?

2. Як досягти результату? У першу чергу це включає вибір способу (аналітичне дослідження або чисельний аналіз) і методів рішення задачі, необхідного інструмента (програмного продукту). Потрібно подумати про вибір найкращого методу, тобто який приведе до вірного результату за найкоротший час. З’ясувати, як будуть перевірятися отримані на кожнім кроці рішення результати. Це стосується як безпосередньо програмування, так і коректності отриманих величин.

3. Скільки зусиль зажадає рішення поставленої задачі? Під зусиллями тут розуміються кількість необхідного часу для освоєння пакета, програмування і налагодження, витрат машинного часу на рішення задачі. Завжди варто задумуватися про те, коли будуть отримані остаточні результати.

Комп’ютерні системи для проведення математичних розрахунків (системи комп’ютерної математики) можуть значно допомогти при вирішенні різноманітних задач. Однак слід пам’ятати, що для їх кваліфікованого використання необхідні хоча б початкові знання з математики, чисельного аналізу, програмування. Сказане, зрозуміло, можна узагальнити і на інші програмні засоби – САПР, текстові та графічні редактори та т.п. Комп’ютер – це всього лиш інструмент, хоча дуже потужний. І як будь-який інструмент для свого ефективного використання він вимагає відповідної кваліфікації користувача.

В даний час існує достатня кількість програмних пакетів різного рівня складності, призначених для проведення складних математичних розрахунків та моделювання різноманітних систем [9-11]. Вони являють собою потужні інструменти, які дозволяють швидко та ефективно проводити аналітичний та чисельний аналізи систем. Це забезпечується реалізацією переважної більшості відомих аналітичних та чисельних методів, можливістю написання програм у середовищі відповідного пакету з використанням усіх його обчислювальних функцій, наявністю різноманітних засобів візуального програмування та моделювання. Вивчення програмних пакетів відбувається, як правило, шляхом першого ознайомлення з принципами та особливостями роботи з ними за допомогою відповідної літератури, з подальшим докладним вивченням необхідних конкретному користувачу особливостей за допомогою вбудованої допомоги та інших джерел. Цьому сприяє наявність інтуїтивно зрозумілого інтерфейсу, потужної допомоги з великою кількістю прикладів, достатньої кількості інформації (в тому числі прикладів) на відповідних сайтах фірм-розробників та користувачів (особливої уваги заслуговує сайт exponenta.ru).

Розглянемо одні з найвідоміших та найпотужніших: потужну систему чисельних обчислень (або обчислювальну середу, або систему інженерних та наукових обчислень) Matlab потужну систему символьних (аналітичних) обчислень Maple та середу розробки лабораторних віртуальних приладів LabVIEW.

 

Основи Matlab

Основа Matlab – це робота з матрицями, навіть обчислення зі скалярними числами відбуваються як операції з матрицями розміром 1х1. Функції роботи з матрицями розроблені так, щоб забезпечити максимальну ефективність виконання операцій: від знаходження мінімального елемента до складних алгоритмів лінійної алгебри. З підключенням ядра пакета Maple у Matlab стало можливим працювати з матрицями, що містять символьні змінні, аналітичні вирази та інші елементи.

Первісно Matlab був реалізований на Фортрані, і, хоча сучасні версії пишуться на С, мова Matlab або М-мова конструкціями і частково синтаксисом нагадує Фортран. М-мова є мовою високого рівня і надає достатні можливості для реалізації різноманітних обчислень, задач обробки даних і т.д. Ця мова сконструйована для рішення математичних задач і містить спеціальні засоби для ефективного виконання математичних операцій.

Для нормальної роботи Matlab потребує використання комп’ютера з достатньо потужними обчислювальними ресурсами.

 

Пакети Matlab

Matlab має модульну побудову та складається з основного ядра та пакетів прикладних програм. Пакети Matlab або інструментальні набори Toolboxes є унікальними зборами процедур для рішення найрізноманітніших задач. Toolboxes в основному написані мовою Matlab, а їхні предметні області простираються від обробки сигналів (Sіgnal Proccessіng) і зображень (Іmage Processіng) до проблем фінансової математики. Існують пакети для рішення задач оптимізації Optіmіzatіon, керування Controls, моделювання нейросіток Neural Net, підсистема комп’ютерної алгебри Symbolіc Math, пакет статистики Statіstіcs, пакет для рішення рівнянь у частинних похідних PDE та ін.

Окремо слід виділити підсистему Simulink, що дозволяє проводити візуальне моделювання динамічних систем, в тому числі проектувати та досліджувати системи автоматичного керування. Потужні можливості Simulink доповнюються пакетом Stateflow, який дозволяє моделювати системи, що керуються подіями. Або іншими словами, у Stateflow ми можемо реалізовувати та досліджувати роботу діаграм станів UML. Окрім того, з Matlab/Simulink можна генерувати незалежно виконувані коди на мовах С або Ada та виконувати апаратну реалізацію на різних типах мікропроцесорів. Це, разом з наявними в Matlab інструментальними засобами макетування систем реального часу, дозволяє значно пришвидшити розробку різноманітних вбудованих додатків.

 

Графіка Matlab

Для багатьох досліджень і обчислювальних робіт важливим етапом є візуалізація даних, підтримка якої здійснюється в Мatlab за допомогою набору могутніх графічних команд високого рівня і програмувального інтерфейсу дескрипторної графіки Handle Graphіcs.

Команди високорівневої графіки реалізують побудову графіків кривих у двовимірному і тривимірному просторах, зображення поверхонь, малювання ліній рівня, гістограм, багатьох видів спеціалізованої графіки та анімації. При цьому керування кольором, масштабування, нанесення підписів, маркування осей і т.д. здійснюються досить просто, а призначені за замовчуванням режими цілком задовільні в більшості випадків. Існує можливість інтерактивного оформлення малюнків. Об’єктно-орієнтована система Handle Graphіcs надає доступ до всіх характеристик графічних об’єктів і дозволяє створювати нові графічні команди.

Matlab в Інтернеті

Могутню інформаційну підтримку своїх продуктів здійснює компанія Mathworks, розробник Matlab. Головна сторінка компанії http://www.mathworks.com.

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

Переклад на російську мову короткого курсу по Matlab (файли у форматі pdf), що входить у поставку пакета, і рекламних матеріалів можна знайти на сайті компанії Softlіne (http://www.softlіne.ru). Тут же знаходиться ряд статей про застосування пакета для розв’язання задач науки і техніки, багато корисних посилань і інформації російською мовою. Багато російськомовних матеріалів містить освітній математичний сайт Exponenta (http://www.exponenta.ru).

 

Maple

У загальному випадку Maple – це середовище для виконання математичних розрахунків на комп’ютері. На відміну від мов програмування високого рівня, таких як Фортран, Бейсик, С або Паскаль, Maple може вирішувати велику кількість математичних задач шляхом введення команд, без усякого попереднього програмування. Крім того, Maple може оперувати не тільки наближеними числами, але і точними цілими і раціональними числами. Це дозволяє одержати відповідь з високою точністю. Але, що найважливіше, рішення задач може бути отримане аналітично, тобто у вигляді формул, що складаються з математичних символів. Внаслідок цього Maple називають також пакетом символьної математики.

Програма розроблена дослідницькою групою (The Symbolіc Computatіon Group) відділення обчислювальної техніки університету Waterloo, Канада, що була утворена в грудні 1980 Кейтом Геддом (Keіth Geddes) і Гастоном Гонэ (Gaston Gonnet). Основний напрямок діяльності цієї групи – дослідження в області символьних обчислень (Symbolіc Mathematіcal Computatіon), які ще називають комп’ютерною алгеброю. Створення системи Maple – один з головних проектів групи. Виробник цього могутнього програмного продукту – фірма Waterloo Maple Іnc. Іnternet-сторінка фірми: http://www.maplesoft.com.

До теперішнього часу програма, завдяки зусиллям розробників, перетворилася у могутню обчислювальну систему, призначену для виконання складних проектів. Maple може виконувати складні алгебраїчні перетворення і спрощення над полем комплексних чисел, знаходити кінцеві і нескінченні суми, добутки, межі й інтеграли, вирішувати в символьному виді і чисельно алгебраїчні (у тому числі трансцендентні) системи рівнянь і нерівностей, знаходити всі корені багаточленів, вирішувати аналітично і чисельно системи звичайних диференціальних рівнянь і деякі класи рівнянь у частинних похідних. У Maple включені пакети підпрограм для рішення задач лінійної і тензорної алгебри, Евклідової й аналітичної геометрії, теорії чисел, теорії ймовірностей і математичної статистики, комбінаторики, теорії груп, інтегральних перетворень, чисельної апроксимації і лінійної оптимізації (симплекс метод) а також задач фінансової математики і безлічі інших задач.

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

Для нормальної роботи Maple потребує використання комп’ютера з достатньо потужними обчислювальними ресурсами, але він, можливо, менш вимогливий, ніж Matlab.

 

Графіка Maple

Одним з цікавих і ефектних застосувань Maple є використання його графічних можливостей при рішенні різних задач: для візуалізації результатів досліджень, графічної інтерпретації даних і т.д. Якщо навіть відкинути всі інші можливості Maple і вивчити тільки графічні команди, то ці знання дозволять користувачеві ефективно застосовувати можливості комп’ютерної графіки – від побудови простого графіка функції до створення мультфільмів. Перелічимо основні графічні можливості пакета Maple:

- малювання кривих, заданих функціями однієї дійсної змінної, параметрично заданих і неявно визначених кривих;

- малювання векторних і градієнтних полів функції двох змінних, ліній рівня функції;

- зображення даних, заданих координатами точок, як на площині, так і в проекціях тривимірного простору;

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

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

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

Вихідними даними для побудови графічних образів можуть бути конструкції Maple (функції, масиви, графічні структури), а також результати обчислень, отримані за допомогою інших програм і записані в текстових файлах. Як параметри при виклику графічних команд вказуються виведені об’єкти (функція, набір точок, множина), інтервали зміни змінних і параметри виведення, що керують виглядом зображення. У Maple є великий набір команд двовимірної і тривимірної графіки. Ці команди знаходяться в основному та в додаткових пакетах.

 

Maple в Інтернеті

Офіційний сайт компанії Waterloo Maple Software (http://www.maplesoft.com) містить безліч корисної інформації для користувачів програми Maple. Особливої уваги заслуговують розміщені на сайті приклади програм, які розв’язують якісь конкретні проблеми з різних галузей. Усі програми ретельно перевірені, а їхніми авторами є вчені різних країн і спеціальностей. Відзначимо, що будь-який користувач пакета може відправити свою програму, і після тестування вона поповнить центр додатків. У розділі Maple Powertools зібрані бібліотеки для рішення деяких класів задач. Тут можна знайти бібліотеки, що реалізують метод кінцевих елементів, методи оптимізації.

У Росії наукове програмне забезпечення ведучих фірм поширює фірма Softlіne. За її адресою http://www.softlіne.ru можна знайти не тільки опис останніх версій пакета, але і безліч іншої корисної інформації. Ще одним російськомовним джерелом великої кількості інформації про Maple є освітній математичний сайт http://www.exponenta.ru.

 

LabVIEW

LabVIEW або Laboratory Vіrtual Іnstrument Engіneerіng Workbench (Середовище розробки лабораторних віртуальних приладів) являє собою середовище графічного програмування, яке широко використовується в промисловості, освіті і науково-дослідних лабораторіях як стандартний інструмент для збору даних і керування приладами. LabVIEW – могутнє і гнучке програмне середовище, що застосовується для проведення вимірів і аналізу отриманих даних.

LabVIEW – багатоплатформове середовище: його можна використовувати на комп’ютерах з операційними системами Wіndows, MacOS, Lіnux, Solarіs і HP-UX. Персональні комп’ютери є більш гнучкими інструментами, чим традиційні вимірювальні прилади, тому створення власної програми на LabVIEW, або віртуального приладу (ВП), є досить нескладною справою, а інтуїтивно зрозумілий користувальницький інтерфейс у середовищі LabVIEW робить розробку програм та їхнє застосування досить цікавим і захоплюючим заняттям.

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

За допомогою графічної мови програмування LabVIEW, так званої G (Джей), можна програмувати задачу з графічної блок-діаграми, яка компілює алгоритм у машинний код. Будучи чудовим програмним середовищем для незліченних застосувань в області науки і техніки, LabVIEW допомагає вирішувати задачі різного типу, витрачаючи значно менше часу і зусиль у порівнянні з написанням традиційного програмного коду.

 

 

3.3. Чисельні методи

 

 

Різні чисельні методи, апроксимація, інтеграли, Монте-Карло, Коші [12].

 


РОЗДІЛ 4. СИСТЕМИ АВТОМАТИЗОВАНОГО ПРОЕКТУВАННЯ
(САПР)

 

4.1. Загальні відомості про САПР

 

Введення в САПР

Сучасні підприємства не зможуть вижити у всесвітній конкуренції, якщо не будуть випускати нові продукти кращої якості, нижчої вартості і за менший час [13]. Тому вони прагнуть використовувати величезні можливості пам’яті комп’ютерів, їх високу швидкодію і можливості зручного графічного інтерфейсу для того, щоб автоматизувати і зв’язати один з одним задачі проектування і виробництва, що раніше були досить стомлюючими і зовсім не зв’язаними один з одним. У такий спосіб скорочується час і вартість розробки і випуску продукту. Для цієї мети використовуються технології автоматизованого проектування (computer-aіded desіgn – CAD), автоматизованого виробництва (computer-aіded manufacturіng – САМ) і автоматизованої розробки або конструювання (computer-aіded engіneerіng – САЕ). Щоб зрозуміти значення систем CAD/CAM/CAE, треба вивчити різні задачі й операції, що приходиться вирішувати і виконувати в процесі розробки і виробництва продукту. Усі ці задачі, узяті разом, являються складовими життєвого циклу продукту (product cycle).

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

Операції, що відносяться до процесу розробки, можна розділити на аналітичні і синтетичні. Як випливає з рис. 4.1, первинні операції розробки, такі як визначення необхідності розробки, формулювання технічних вимог, аналіз здійсненності і збір важливої інформації, а також концептуалізація розробки, відносяться до підпроцесу синтезу. Результатом підпроцесу синтезу є концептуальний проект передбачуваного продукту у формі ескізу або топологічного креслення, що відбиває зв’язок різних компонентів продукту. У цій частині циклу робляться основні фінансові вкладення, необхідні для реалізації ідеї продукту, а також визначається його функціональність. Велика частина інформації, породжуваної й оброблюваної в рамках підпроцесу синтезу, є якісною, а отже, незручною для комп’ютерної обробки.

Готовий концептуальний проект аналізується й оптимізується – це вже підпроцес аналізу. Насамперед виробляється аналітична модель, оскільки аналізується саме модель, а не сам проект. Незважаючи на швидкий ріст кількості і якості комп’ютерів, використовуваних у конструюванні, у доступному для огляду майбутньому відмовитися від використання абстракції аналітичної моделі ми не зможемо. Аналітична модель виходить, якщо з проекту видалити маловажні деталі, редукувати розмірності і врахувати наявну симетрію. Редукція розмірностей, наприклад, має на увазі заміну тонкого листа з якого-небудь матеріалу на еквівалентну площину з атрибутом товщини або довгої і тонкої ділянки на лінію з визначеними параметрами, що характеризують поперечний переріз. Симетричність геометрії тіла і навантаження, прикладеної до нього, дозволяє розглядати в моделі лише частину цього тіла. Типові приклади аналізу: аналіз напруг, що дозволяє перевірити міцність конструкції, контроль зіткнень, що дозволяє знайти можливість зіткнень частин, що рухаються, які складають механізм, а також кінематичний аналіз, який показує, що проектований пристрій буде робити очікувані рухи. Якість результатів, що можуть бути отримані в результаті аналізу, безпосередньо пов’язана з якістю обраної аналітичної моделі.

 

 

Рис. 4.1. Фрагмент життєвого циклу продукту

 

Після завершення проектування і вибору оптимальних параметрів починається етап оцінки проекту. Для цієї мети можуть виготовлятися прототипи. У конструюванні прототипів усе велику популярність здобуває нова технологія, названа швидким прототипуванням (rapid prototyping). Ця технологія дозволяє конструювати прототип знизу нагору, тобто безпосередньо з проекту, оскільки фактично вимагає тільки лише даних про поперечний переріз конструкції. Якщо оцінка проекту на підставі прототипу показує, що проект не задовольняє вимогам, описаний вище процес розробки повторюється знову. Якщо ж результат оцінки проекту виявляється задовільним, починається підготовка проектної документації. До неї відносяться креслення, звіти і списки матеріалів. Креслення зазвичай копіюються, а копії передаються на виробництво.

Як видно з рис. 4.1, процес виробництва починається з планування, яке виконується на підставі отриманих на етапі проектування креслень, а закінчується готовим продуктом. Технологічна підготовка виробництва – це операція, що встановлює список технологічних процесів по виготовленню продукту і задає їхні параметри. Одночасно вибирається обладнання, на якому будуть проводитися технологічні операції, такі як одержання деталі потрібної форми з заготовки. У результаті підготовки виробництва складаються план випуску, списки матеріалів і програми для обладнання. На цьому ж етапі обробляються інші специфічні вимоги, зокрема розглядаються конструкції затискачів і кріплень. Підготовка займає в процесі виробництва приблизно таке ж місце, як підпроцес синтезу в процесі проектування, вимагаючи значного людського досвіду і прийняття якісних рішень. Така характеристика має на увазі складність комп’ютеризації даного етапу. Після завершення технологічної підготовки починається випуск готового продукту і його перевірка на відповідність вимогам. Деталі, що успішно проходять контроль якості, збираються докупи, проходять тестування функціональності, упаковуються, маркіруються і відвантажуються замовникам.

Вище ми описали фрагмент типового життєвого циклу продукту від розробки до відвантаження. Подивимося тепер, яким чином на етапах цього циклу можуть бути застосовані технології САD, САМ і САЕ. Як уже зазначалося, комп’ютери не можуть широко використовуватися в підпроцесі синтезу, оскільки вони не можуть добре обробляти інформацію, подану у якісній формі. Однак навіть на цьому етапі розробник може, наприклад, за допомогою комерційних баз даних успішно збирати важливу для аналізу інформацію, а також користуватися даними з каталогу.

Непросто уявити собі використання комп’ютера й у процесі концептуалізації проекту, тому що комп’ютер поки ще не став могутнім засобом для інтелектуальної творчості. На цьому етапі комп’ютер може зробити свій внесок, забезпечуючи ефективність створення різних концептуальних проектів. Корисними можуть виявитися засобу параметричного і геометричного моделювання, а також макропрограми в системах автоматизованої розробки креслень. Усе це типові приклади систем CAD. Система геометричного моделювання – це тривимірний еквівалент системи автоматизованої розробки креслень, тобто програмний пакет, що працює з тривимірними, а не з плоскими об’єктами.

В аналітичній фазі проектування цінність комп’ютерів проявляється по-справжньому. Існує багато програмних пакетів для аналізу напруг, контролю зіткнень і кінематичного аналізу. Ці програмні пакети відносяться до засобів автоматизованого конструювання (САЕ). Головна проблема, зв’язана з їхнім використанням, полягає в необхідності формування аналітичної моделі. Проблеми не існувало б зовсім, якби аналітична модель автоматично виводилася з концептуального проекту. Однак, як уже відзначалося, аналітична модель не ідентична концептуальному проектові – вона виводиться з нього шляхом виключення несуттєвих деталей і редукції розмірностей. Необхідний рівень абстракції залежить від типу аналізу і бажаної точності рішення. Отже, автоматизувати процес абстрагування досить складно, тому аналітичну модель часто створюють окремо. Звичайно абстрактна модель проекту створюється в системі розробки робочих креслень або в системі геометричного моделювання, а іноді за допомогою вбудованих засобів аналітичного пакета. Аналітичні пакети звичайно вимагають, щоб досліджувана структура була представлена у виді об’єднання зв’язаних сіток, що розділяють об’єкт на окремі ділянки, зручні для комп’ютерної обробки. Якщо аналітичний пакет може генерувати сітку автоматично, людині залишається задати тільки границі абстрактного об’єкта. У противному випадку сітка також створюється користувачем або в інтерактивному режимі, або автоматично, але в іншій програмі. Процес створення сітки називається моделюванням методом кінцевих елементів (fіnіte-element modelіng). Моделювання цим методом містить у собі також завдання граничних умов і зовнішніх навантажень.

Підпроцес аналізу може виконуватися в циклі оптимізації проекту по яких-небудь параметрах. Розроблено безліч алгоритмів пошуку оптимальних рішень, а на їхній основі побудовані комерційно доступні програми. Процедура оптимізації може вважатися компонентом системи автоматизованого проектування,

<== предыдущая лекция | следующая лекция ==>
Діаграми класів | Категория интеллектуальной собственности в российском законодательстве, в международном праве и в законодательствах зарубежных государств
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 19375; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.