Проектування пристрою керування на базі нечіткої логіки

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2019
Тип роботи:
Лабораторна робота
Предмет:
СП

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Кафедра ЕОМ / Лабораторна робота №3 з дисципліни: «Технології штучного інтелекту в комп’ютерних та кіберфізичних системах» на тему: «Проектування пристрою керування на базі нечіткої логіки» ТЕОРЕТИЧНІ ВІДОМОСТІ Поняття теорії нечітких множин (fuzzy sets) та нечіткої логіки (fuzzy logic) вперше з’явились у 1965р і були запропоновані Лотфі Заде (Lotfi Zadeh). Причиною появи нової теорії слугувала наявність нечітких та наближених міркувань при описанні людиною процесів, систем та об’єктів. Теорія знайшла своє застосування у таких галузях як автомобільна, аерокосмічна, транспортна, у сфері побутової техніки, фінансів, аналізу Для опису нечітких множин вводиться поняття нечіткої та лінгвістичної змінної. Лінгвістична змінна описується набором (N,X,A), де N – назва змінної, X – універсальна множина, A – нечітка множина на Х. Це змінна значенням якої можуть виступати слова або твердження природної мови. Як приклад можна назвати такі твердження як “молода людина”, “помірна ціна”, “висока швидкість”. Характеристикою нечіткої множини є функція приналежності (Membership Function). Позначимо через MFc(x) – степінь приналежності до нечіткої множини C, що представляє собою узагальнене поняття характеристичної функції звичайної множини. Тоді нечіткою множиною С називається множина впорядкованих пар виду C={MFc(x)/x}, MFc(x)Î[0,1]. Значення MFc(x)=0 означає відсутність приналежності до множини, MFc(x)=1 – повну приналежність. Приведемо простий приклад. Формалізуємо неточне визначення “гарячий чай”. В якості x буде виступати шкала температури. Очевидно, що вона буде змінюватись від 0 до 100 градусів. Нечітка множина для поняття 'гарячий чай' може виглядати наступним чином: C={0/0; 0/10; 0/20; 0,15/30; 0,30/40; 0,60/50; 0,80/60; 0,90/70; 1/80; 1/90; 1/100}. Так, чай з температурою 60°С належить до множини 'Гарячий' зі степенню приналежності 0,80. Для однієї людини чай при температурі 60°С може бути гарячим, для іншого – не дуже. Саме в цьому і проявляється нечіткість визначення відповідної множини. Для задання функції приналежності зазвичай використовують трикутну, трапецієподібну, гаусову форми. Трикутна функція приналежності визначається набором чисел (a,b,c) і її значення в точці х вираховуються відповідно до виразу / Для визначення трапецієподібної функції використовується четвірка чисел (a,b,c,d) / Гаусова функція приналежності описується формулою / Графічне зображення функцій приналежності зображені на рисунках 1,2,3 / Для нечітких множин визначені основні логічні операції . Найважливішими з них є перетин (нечітке І): A Ç B : MFAB (x) = min( MFA (x), MFB (x)) та об’єднання (нечітке АБО) : A È B : MFAB (x) = max(MFA (x), MFB (x)) . Графічно операції представлені на рис. 4,5,6,7,8. / Основою для проведення операції нечіткого логічного виводу є база правил, що представляються у формі “Якщо-то” . Основним правилом виведення у звичайній логіці є правило modus ponens: / У цьому правилі припущеннями є умова A та імплікація/, а висновком – B. Сформулюємо відповідне правило виведення modus ponens для розмитої логіки. Розмите узагальнення правила modus ponens задається наступною схемою логічного виведеня. У випадку чіткого та розмитого правил виведення імплікація мають однаковий вигляд A ® B , де A та B є твердженнями або розмитими множинами. Однак вираз A в імплікації чіткого правила той самий, що і в умові. У випадку розмитого правила змінна у умові не стосується розмитої множини A, а має відношення до певної розмитої множини A¢, яка у певному сенсі є близькою до A, або, що не обов’язково, A A = ¢. Завдання: / Розв’язок: Задана схема розмитого логічного виведення Тут умова, імплікація та висновок є неточними твердженнями. Введемо лінгвістичну змінну x – „швидкість автомобіля” з множиною її значень T1 = {„мала”, „середня”, „велика”, „дуже велика”} та лінгвістичну змінну y – „рівень шуму” з множиною значень T2 = {„малий”, „середній”, „не дуже високий”, „високий”}. Кожному елементу множин T1 та T2 можна поставити у відповідність певну розмиту множину. Аналізуючи наведену схему виведення, отримаємо такі розмиті множини: A = „дуже велика швидкість автомобіля”, A' = „велика швидкість автомобіля”, B = „високий рівень шуму”, B' = „не дуже високий рівень шуму”. Тут розмита множина A = „дуже велика швидкість автомобіля” відрізняється від розмитої множини A¢ = „велика швидкість автомобіля”. Алгоритми нечіткого виводу розрізняються між собою видом використовуваних правил, логічних операцій і різновидністю методу дефузифікації. Були розроблені моделі нечіткого виводу Мамдані, Сугено, Ларсена, Цукамото. Система нечіткого логічного виводу зображена на рис.9. / Для прикладу розглянемо нечіткий вивід на базі механізму Мамдані (Mamdani). Алгоритм роботи може бути таким Фузифікація. Визначається степінь істинності, тобто значення функцій приналежності для лівих частин кожного правила. Для бази правил з m правилами позначимо степені істинності як /. Нечіткий вивід. Спочатку визначаються рівні відсікання для лівої частини кожного з правил ai = min( Aik (xk )) . Далі знаходимо відсічені функції приналежності Bi * (y) = min(ai , Bi (y)) . 3. Обчислюємо об’єднання отриманих відсічених функцій MF(y) = max(Bi* (y)) , де MF(y) – функція приналежності результуючої нечіткої множини 4. Дефузифікація. За допомогою методу середнього центру MF(y) = max(Bi* (y)) Змоделювати залежність y = x1 2 sin( x2 -1) в області x1 Î[-7,3], x2 Î[-4.4,1.7] створивши систему нечіткого виводу типу Мамдані. Для початку створимо базу правил, що складатиметься із семи нечітких правил: 1) ЯКЩО x1 =”низьке” І x2 =”низьке” ,ТО у=”високе”; 2) ЯКЩО x1=”низьке” І x2 = “середнє”, ТО у=”низьке”; 3) ЯКЩО x1=”низьке” І x2 =”високе”, ТО у=”високе”; 4) ЯКЩО x1=”середнє”, ТО у=”середнє”; 5) ЯКЩО x1=”високе” І x2 =”низьке”, ТО у=”вище середнього”; 6) ЯКЩО x1=”високе” І x2 =”середнє”, ТО у=”нижче середнього”; 7)ЯКЩО x1=”високе” І x2 =”високе”, ТО у=”вище середнього”. Для розв’язку задачі доцільно скористатись MATLAB та вбудованим пакетом для роботи із нечіткою логікою -- Fuzzy Logic Toolbox Крок 1. Для запуску FIS-редактора необхідно набрати слово fuzzy у командній стрічці MATLAB. У вікні, що з’явилось додамо другу вхідну змінну. Для цього в меню Edit вибираємо команду Add input . Крок 2. Перейменуємо першу вхідну змінну. Для цього у блоці, де написано input1 вводимо нове ім’я -- х1 і натискаємо <Enter>. Аналогічну операцію проводимо і з другою вхідною змінною. Для перейменування вихідної змінної в блоці, де написано output1 вказуємо – у і натискаємо <Enter>. Крок 3. Для переходу в редактор функцій приналежності необхідно двічі клацнути лівою кнопкою миші на блоці х1. Задамо діапазон зміни x1, увівши в полі Range значення [–7 3]. Далі потрібно задати функції приналежності змінній x1. Для лінгвістичної оцінки цієї змінної будемо використовувати три терми із трикутними функціями приналежності. Вони встановлені по замовчуванню, тому переходимо до наступного кроку. Крок 4. Далі потрібно задати назви термів змінної x1. Для цього потрібно клацнути мишею по графіку першої функції приналежності. Графік активної функції приналежності виділиться червоною жирною лінією. Далі вводимо назву терму “низьке” в полі Name і натискаємоо <Enter>. Ті самі операції проводимо із другою та третьою функціями приналежності вписавши у поле Name відповідно значення – середнє, високе. Крок 5. Задамо функції приналежності змінній x2 . Для цього активуємо змінну x2 , клацанням мишею по блоку x2 . Проведемо для цієї змінної кроки 3 та 4 з тою відмінністю, що в полі Range вкажемо значення значення [–4.4 ; 1.7]. Крок 6. Задамо функції приналежності змінній у. Для лінгвістичної оцінки цієї змінної будемо використовувати п’ять термів з гаусовими функціями приналежності. Для цього клацанням миші по блоку у активуємо змінну у . Задамо діапазон зміни змінної у . В полі Range введемо діапазон [–50 50] і натискаємо <Enter>. В меню Edit вибираємо команду Remove All MFs для видалення встановлених по замовчуванню функції приналежності. Далі в меню Edit вибираємо команду Add MFs… У вікні, що з’явилось вибираємо тип функцій приналежності gaussmf в полі MF type і п’ять термів в полі Number of MFs . Висновок: Після вводу функцій приналежності редактор активує першу вхідну змінну, тому для продовження потрібно клацнути мишею по піктограмі у. По аналогії із вхідними змінними потрібно назвати терми змінної у: низьке, нижче середнього.
Антиботан аватар за замовчуванням

01.06.2019 16:06-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!