Автор: Пользователь скрыл имя, 24 Января 2012 в 19:30, лабораторная работа
Цель работы:
Ознакомиться с принципами построения нечетких систем с помощью ППП Fuzzy Logic Toolbox среды Matlab;
Создать систему типа Мамдани
Цель работы
Ознакомиться с принципами построения нечетких систем с помощью ППП Fuzzy Logic Toolbox среды Matlab;
Создать систему типа Мамдани
Перечень используемого оборудования
Персональный компьютер
Программное обеспечение Matlab
Контрольные вопросы
Содержание
Лабораторная работа 1
Построение
нечетких систем с
помощью ППП Fuzzy
Logic Toolbox среды Matlab. Проектирование
систем типа Мамдани.
Системами нечеткой логики называются системы, которые оперируют с нечеткими понятиями, такими как нечеткие множества, лингвистические переменные и т.п., и используют при этом нечеткую логику. Системы нечеткой логики могут быть классифицированы по трем основным типам:
1) простые системы нечеткой логики (pure Fuzzy Logic Systems);
2) нечеткие системы Такаги и Суджено (Takagi and Sugeno);
3)
системы нечеткой логики с
фаззификатором и
Механизм Мамдани (Mamdani) – наиболее распространенный способ логического вывода в нечетких системах. В нем используется минимаксная композиция нечетких множеств. Данный механизм включает в себя следующую последовательность действий.
Далее находятся "усеченные" функции принадлежности:
,
где MF(y) – функция принадлежности итогового нечеткого множества.
Желтая
и голубая заливки графиков функции
принадлежности означают “входы-выход”,
соответствующей синтезированной нечеткой
системе, и графически показывают процесс
нечеткого вывода по Мамдани для двух
входных переменных и двух нечетких правил.
Для загрузки основного fis-редактора было напечатано слово fuzzy в командной строке для вызова основного редактора Fuzzy inference system. Редактор позволяет создавать и редактировать FIS двух типов - Мамдани и Сугэно, а также обеспечивает визуализацию процедуры нечеткого логического вывода и поверхностей “входы-выход”. По умолчанию выбран FIS Мамдани (рис.1).
Рисунок 1. Fis-редактор Мамдани
Добавляем вторую входную переменную. Для этого в меню Edit выбираем команду Add input. Переименовываем входные переменные input1, input2 в x1 и x2 соответственно, выходную переменную output1 в y (рис.2).
Рисунок 2. Переименование выходной переменной
Задаем имя системы: first. Для этого в меню File выбрали подменю Export команду To disk и ввели имя файла.
Перейдем в редактор функций принадлежности. Для этого нажимаем на блок х1 (рисунок 3).
Рисунок 3. Редактор функции принадлежности
Зададим диапазон переменной х1. Для этого вводим [-7 3] в поле Range.
Зададим наименования термов переменной x1. Для этого сделаем один щелчок левой кнопкой мыши по графику первой функции принадлежности. Затем вводим наименование терма «Низкий», в поле Name. Аналогично вводим наименование для второй и третьей функции принадлежности – «Средний» и «Высокий».
В
результате получаем графическое окно,
изображенное на рис. 4.
Рисунок 4. Редактирование термов
Зададим функцию принадлежности переменной x2. Для лингвистической оценки этой переменной использовали 5 термов с гауссовскими функциями принадлежности. Для этого активизируем переменную x2 с помощью щелчка левой кнопки мыши на блоке x2 и удалим все графики переменной х2. Затем в меню Edit выполняем команду Add MFs.... В появившимся диалоговом окне выбрать тип функции принадлежности gaussmf в поле MF type и 5 термов в поле Number of MFs.
Вводим диапазон изменения переменной x2 [-4.4 1.7] в поле Range,
По
аналогии c предыдущим шагом
зададим следующие наименования термов
переменной x2: Низкий, Ниже среднего, Средний,
Выше среднего, Высокий. В результате получим
изображенное графическое окно на рисунке
5.
Рисунок 5. Задание терма переменной х2
Зададим функцию принадлежности переменной y. Для лингвистической оценки этой переменной будем использовать 5 термов с треугольными функциями принадлежности. Для этого активизируем переменную y с помощью щелчка левой кнопки мыши на блоке y и удалим все функции принадлежности переменной y. Затем в меню Edit выберем команду Add MFs.... В появившимся диалоговом окне выбрать 5 термов в поле Number of MFs.
Зададим диапазон изменения переменной y [50 50] в поле Range.
Рисунок 6. Задание диапазона
По аналогии с предыдущем шагом зададим следующие наименования термов переменной y: Низкий, Ниже среднего, Средний, Выше среднего, Высокий. В результате получим изображенное графическое окно изображенное на рисунке 7.
Рисунок 7. Наименования термов переменной y
Перейдем в редактор базы знаний RuleEditor. Для этого выбираем в меню Edit команду Edit rules.
На основе визуального наблюдения за графиком, сформулируем следующие девять правил:
Рисунок 8. Ввода правила
Сохраним созданную систему. Для этого в меню File выбираем в подменю Export команду To disk (рисунок 9).
Рисунок 9. Сохранение
Зайдем командой View в меню Rules.
В поле Input указываем значения входных переменных, для которых выполняется логический вывод (рисунок 10).
Рисунок 10. Значения входных переменных
Выведем поверхность “входы-выход”, соответствующая синтезированной нечеткой системе. Для вывода этого окна используем команду View surface... меню View.
Рисунок 11. Вывод поверхности “входы-выход”
Рисунок 12. Поверхность “входы-выход”
Можно сделать вывод, что нечеткие правила достаточно хорошо описывают сложную нелинейную зависимость (рисунок 12).
Лабораторная работа 2
Проектирование
систем типа Мамдани
с помощью FIS-редактора
пакета Matlab
Fuzzy Logic Toolbox содержит следующие категории программных инструментов:
Первая категория программных инструментов пакета Fuzzy Logic Toolbox содержит функции, которые могут быть вызваны непосредственно путем набора имени функции в командном окне (command line) или из собственных пользовательских приложений. Большинство из этих функций представляют собой матлабовские функции в виде m-файлов. В этом случае пользователь может посмотреть запрограммированные в этих функциях алгоритмы, а также редактировать и корректировать эти файлы. Ниже приведены названия функций с кратким описанием их назначения:
addmf
- добавление функции
addrule - добавление правила в FIS
addvar - добавление переменной в FIS
anfis - обучение FIS типа Сугэно (Sugeno type)
convertfis - преобразование FIS-матрицы (Fuzzy Logic Toolbox v.1) в FIS-структуру (Fuzzy Logic Toolbox v.2)
defuzz
- дефаззификация нечеткого
discfis
- дискретизация функций
dsigmf
- функция принадлежности в виде
разности между двумя
evalfis
- выполнение нечеткого
evalmf
- вычисление значений
evalmmf
- расчет степеней
fcm - поиск кластеров по алгоритму fuzzy c-means
findrow - нахождение строки в матрице, совпадающей с входной строкой
Интерактивные модули с графическим пользовательским интерфейсом
Вторая категория программных инструментов пакета Fuzzy Logic Toolbox содержит диалоговые модули, которые обеспечивают доступ к большинству функций через графический интерфейс. Кроме того, эти модули обеспечивают удобную среду для проектирования, исследования и внедрения систем на основе нечеткого логического вывода. Для запуска интерактивных модулей достаточно напечатать имя модуля в командной строке. Ниже приведены названия модулей с кратким описание их назначения:
anfisedit - модуль для генерирования из данных FIS типа Сугэно, ее обучения с использованием ANFIS алгоритма и тестирования