НЕЧІТКА ЛОГІКА ТА НЕЙРО-НЕЧІТКІ МЕРЕЖІ



У ПАКЕТІ MATLAB

 

Операції з нечіткою логікою у пакеті MATLAB дозволяє виконувати модуль Fuzzy Logic Toolbox. Він дозволяє створювати системи нечіткого логічного виведення і нечіткої класифікації в рамках середовища MatLab, з можливістю їхнього інтегрування в Simulink.

Fuzzy Logic Toolbox містить наступні категорії програмних інструментів: функції; інтерактивні модулі з графічним користувальницьким інтерфейсом (з GUI); блоки для пакета Simulink; демонстраційні приклади.

 

Б.1 FIS - структура

 

Базовим поняттям Fuzzy Logic Toolbox є FIS-структура - система нечіткого виведення (Fuzzy Inference System). FIS-структура містить усі необхідні дані для реалізації функціонального відображення “входи-виходи” на основі нечіткого логічного виведення відповідно до схеми, приведеної на рис. Б.1.

 

 

Рисунок Б.1 - Нечітке логічне виведення

 

Позначення: X - вхідний чіткий вектор; - вектор нечітких множин, що відповідає вхідному вектору X; - результат логічного виведення у виді вектора нечітких множин; Y - вихідний чіткий вектор.

Система нечіткого логічного виведення представляється в робочій області MatLab у вигляді структури даних, зображеної на рис. Б.2.


Рисунок Б.2 - FIS-структура

Існує два способи завантаження FIS у робочу область: зчитування з диска за допомогою функції readfis; передача з основного fis-редактора шляхом вибору в меню File підміню Export і команди To workspace.

Поля структури дані системи нечіткого логічного виведення призначені для збереження наступної інформації:

- name - найменування системи нечіткого логічного виведення;

- type - тип системи (припустимі значення 'Mamdani' та 'Sugeno');

- andMethod - реалізація логічної операції "ТА" (запрограмовані реалізації: 'min' – мінімум і 'prod' – множення);

- orMethod - реалізація логічної операції "АБО" (запрограмовані реалізації: 'max' – максимум і 'probor' – імовірнісне "АБО");

- defuzzMethod - метод дефазифікації (запрограмовані методи для систем типу Мамдані: 'centroid' – центр ваги; 'bisector' – медіана; 'lom' – найбільший з максимумів; 'som' – найменший з максимумів; 'mom' – середнє з максимумів; запрограмовані методи для систем типу Сугено: 'wtaver' – зважене середнє і 'wtsum' – зважена сума);

- impMethod - реалізація операції імплікації (запрограмовані реалізації: 'min' – мінімум і 'prod' – множення);

- aggMethod - реалізація операції об'єднання функцій приналежності вихідної змінної (запрограмовані реалізації: 'max' – максимум; 'sum' – сума і 'probor' – імовірнісне "АБО");

- input - масив вхідних змінних;

- input.name - найменування вхідної змінної;

- input.range - діапазон зміни вхідної змінної;

- input.mf - масив функцій приналежності вхідної змінної;

- input.mf.name - найменування функції приналежності вхідної змінної;

- input.mf.type - модель функції приналежності вхідної змінної (запрограмовані моделі: dsigmf - функція приналежності у виді різниці між двома сигмоїдними функціями; gauss2mf - двостороння гаусівська функція приналежності; gaussmf - гаусівська функція приналежності; gbellmf - узагальнена колоколообразна функція приналежності; pimf - пі-подібна функція приналежності; psigmf - добуток двох сигмоїдних функцій приналежності; sigmf - сигмоїдна функція приналежності; smf - s-подібна функція приналежності; trapmf - трапецієподібна функція приналежності; trimf - трикутна функція приналежності; zmf - z-подібна функція приналежності);

- input.mf.params - масив параметрів функції приналежності вхідної змінної;

- output - масив вихідних змінних;

- output.name - найменування вихідної змінної;

- output.range - діапазон зміни вихідної змінної;

- output.mf - масив функцій приналежності вихідної змінної;

- output.mf.name - найменування функції приналежності вихідної змінної;

- output.mf.type - модель функції приналежності вихідної змінної (запрограмовані моделі для системи типу Мамдані: dsigmf - функція приналежності у виді різниці між двома сигмоїдними функціями; gauss2mf - двостороння гаусівська функція приналежності; gaussmf - гаусівська функція приналежності; gbellmf - узагальнена колоколообразна функція приналежності; pimf - пі-подібна функція приналежності; psigmf - добуток двох сигмоїдних функцій приналежності; запрограмовані моделі для системи типу Сугено: constatnt – константа (функція приналежності у виді сінглтона); linear – лінійна комбінація вхідних змінних);

- output.mf.params - масив параметрів функції приналежності вихідної змінної;

- rule - масив правил нечіткої бази знань;

- rule.antecedent - посилки правила (вказуються порядкові номери термів у порядку запису вхідних змінних. Число 0 указує на те, що значення відповідної вхідний змінної не впливає на істинність правила);

- rule.consequent - висновок правила (вказуються порядкові номери термів у порядку запису вихідних змінних. Число 0 указує на те, що правило не поширюється на відповідну вихідну змінну);

- rule.weight - вага правила. Задається числом з діапазону [0, 1];

- rule.connection - логічне зв'язування змінних усередині правила: 1 – логічне "ТА"; 2 – логічне "АБО".

Для доступу до властивостей системи нечіткого логічного виведення досить вказати ім'я відповідного поля. Наприклад, команда FIS_NAME.rule(1).weight=0.5 встановлює вагу першого правила в 0.5, команда length(FIS_NAME.rule) визначає кількість правил у базі знань, а команда FIS_NAME.input(1).mf(1).name='низький' перейменовує перший терм першої вхідної змінної в “низький”.

 

Б.2 FIS-редактор

FIS-редактор (рис. Б.3) призначений для створення, збереження, завантаження і виведення у друк систем нечіткого логічного виведення, а також для редагування наступних властивостей: тип системи; найменування системи; кількість вхідних і вихідних змінних; найменування вхідних і вихідних змінних; параметри нечіткого логічного виведення.

 

 

Рисунок Б.3 - FIS-редактор

 

Завантаження FIS-редактора відбувається за допомогою команди fuzzy. У результаті з'являється інтерактивне графічне вікно. У нижній частині графічного вікна FIS-редактори розташовані кнопки Help і Close, що дозволяють викликати вікно довідки і закрити редактор, відповідно.

FIS-редактор містить 8 меню. Це три загальносистемних меню - File, Edit, View, і п'ять меню для вибору параметрів нечіткого логічного виведення – And Method, Or Method, Implication, Aggregation і Defuzzification.

Меню File - це загальне меню для всіх GUI-модулів використовуваних із системами нечіткого логічного виведення.

За допомогою команди New FIS... користувач має можливість створити нову систему нечіткого логічного виведення. При виборі цієї команди з'являться дві альтернативи: Mamdani і Sugeno, що визначають тип створюваної системи. Створити систему типу Mamdani можна також натисканням Ctrl+N.

За допомогою команди Import користувач має можливість завантажити раніше створену систему нечіткого логічного виведення. При виборі цієї команди з'являться дві альтернативи From Workspace... і From disk, що дозволяють завантажити систему нечіткого логічного виведення з робочої області MatLab і з диска, відповідно. При виборі команди From Workspace... з'явиться діалогове вікно, у якому необхідно вказати ідентифікатор системи нечіткого логічного виведення, що знаходиться в робочій області MatLab. При виборі команди From disk з'явиться діалогове вікно, у якому необхідно вказати ім'я файлу системи нечіткого логічного виведення. Файли систем нечіткого логічного виведення мають розширення .fis . Завантажити систему нечіткого логічного виведення з диска можна також натисканням Ctrl+N чи командою fuzzy FIS_name, де FIS_name – ім'я файлу системи нечіткого логічного виведення.

При виборі команди Export з'являться дві альтернативи To Workspace... і To disk, що дозволяють скопіювати систему нечіткого логічного виведення в робочу область MatLab і на диск, відповідно. При виборі команди To Workspace... з'явиться діалогове вікно, у якому необхідно вказати ідентифікатор системи нечіткого логічного виведення, під яким вона буде збережена в робочій області MatLab. При виборі команди To disk з'явиться діалогове вікно, у якому необхідно вказати ім'я файлу системи нечіткого логічного виведення. Скопіювати систему нечіткого логічного виведення в робочу область і на диск можна також натисканням Ctrl+T і Ctrl+S, відповідно.

Команда Print дозволяє вивести на принтер копію графічного вікна. Печатка можлива також по натисканню Ctrl+P.

Команда Close закриває графічне вікно. Закриття графічного вікна відбувається по натисканню Ctrl+W чи однократного щиглика лівої кнопки миші по кнопці Close.

Меню Edit:

Команда Undo скасовує раніше зроблену дію. Виконується також по натисканню Ctrl+Z.

Команда Add Variable... дозволяє додати в систему нечіткого логічного виведення ще одну змінну. При виборі цієї команди з'являться дві альтернативи Input і Output, що дозволяють додати вхідну і вихідну змінну, відповідно.

Команда Remove Selected Variable видаляє поточну змінну із системи. Ознакою поточної змінної є червона окантовка її прямокутника. Призначення поточної змінної відбувається за допомогою однократного щиглика лівої кнопки миші по її прямокутнику. Видалити поточну змінну можна також за допомогою натискання Ctrl+X.

Команда Membership Function... відкриває редактор функцій приналежностей. Ця команда може бути також виконана натисканням Ctrl+2.

Команда Rules…відкриває редактор бази знань. Ця команда може бути також виконана натисканням Ctrl+3.

Меню View - це загальне меню для всіх GUI-модулів, використовуваних із системами нечіткого логічного виведення. Дане меню дозволяє відкрити вікно візуалізації нечіткого логічного виведення (команда Rules або натискання клавіш Ctrl+5) і вікно виведення поверхні “вхід-вихід”, що відповідає системі нечіткого логічного виведення (команда Surface або натискання клавіш Ctrl+6).

Меню And Method - це меню дозволяє установити наступні реалізації логічної операції "ТА": min – мінімум; prod – множення.

Користувач також має можливість установити власну реалізацію операції "ТА". Для цього необхідно вибрати команду Custom…і в графічному вікні, що з'явилося, надрукувати ім'я функції, що реалізує цю операцію.

Меню Or Method - це меню дозволяє установити наступні реалізації логічної операції "АБО": max – множення; probor - імовірнісне "АБО".

Користувач також має можливість установити власну реалізацію операції "АБО". Для цього необхідно вибрати команду Custom… і в графічному вікні, що з'явилося, надрукувати ім'я функції, що реалізує цю операцію.

Меню Implication - це меню дозволяє установити наступні реалізації імплікації: min – мінімум; prod – множення.

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

Меню Aggregation - це меню дозволяє установити наступні реалізації операції об'єднання функцій приналежності вихідної змінної: max – максимум; sum – сума; probor - імовірнісне "АБО".

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

Меню Defuzzification - це меню дозволяє вибрати метод дефазифікації. Для систем типу Мамдані запрограмовані наступні методи: centroid – центр ваги; bisector –медіана; lom – найбільший з максимумів; som – найменший з максимумів; mom – середнє з максимумів. Для систем типу Сугено запрограмовані наступні методи: wtaver – зважене середнє; wtsum – зважена сума.

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


Дата добавления: 2018-04-15; просмотров: 362; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!