Проектирование систем типа Сугэно.




Лабораторная работа №5. Проектирование системы типа Сугэно средствами пакета Fuzzy Logic Toolbox на примере построения нечеткой аппроксимирующей системы

Цель работы: Проектирование систем нечеткого логического вывода типа Сугэно.

Теоретическая часть

Теоретическая часть аналогична описанию, представленному в 4 лабораторной работе.

Общая постановка задачи

 

Спроектировать систему типа Сугэно средствами пакета Fuzzy Logic Toolbox на примере построения нечеткой аппроксимирующей системы. Выбранную нелинейную функцию описать базой правил для лингвистических переменных, описывающих z(x,y), определенных на множестве из пяти, семи, девяти и одиннадцати термов.

Примечание. Если z выходит за заданные границы, то z принимает значение равное значению минимальной или максимальной границы, соответственно. pi = 3,1415926535897932384626433832795

 

Список индивидуальных данных

 

Пример выполнения работы

Проектирование систем типа Сугэно.

Рассмотрим основные этапы проектирования систем типа Сугэно на примере создания системы нечеткого логического вывода, моделирующей зависимость , (рисунок 4.13).

Проектирование системы нечеткого логического вывода типа Сугэно состоит в выполнении следующей последовательности шагов.

Шаг 1. Для загрузки основного fis-редактора напечатаем слова fuzzy в командной строке.

Шаг 2. Выберем тип системы. Для этого в меню File выбираем в подменю New fis… команду Sugeno.

Шаг 3. Добавим вторую входную переменную. Для этого в меню Edit выбираем команду Add input.

Шаг 4. Переименуем первую входную переменную. Для этого сделаем один щелчок левой кнопкой мыши на блоке input1, введем новое обозначение x1 в поле редактирования имени текущей переменной и нажмем < Enter >.

Шаг 5. Переименуем вторую входную переменную. Для этого сделаем один щелчок левой кнопкой мыши на блоке input2, введем новое обозначение x2 в поле редактирования имени текущей переменной и нажмем < Enter >.

Шаг 6. Переименуем выходную переменную. Для этого сделаем один щелчок левой кнопкой мыши на блоке output1, введем новое обозначение y в поле редактирования имени текущей переменной и нажмем < Enter >.

Шаг 7. Зададим имя системы. Для этого в меню File выбираем в подменю Export команду To disk и введем имя файла, например, FirstSugeno.

Шаг 8. Перейдем в редактор функций принадлежности. Для этого сделаем двойной щелчок левой кнопкой мыши на блоке x1.

Шаг 9. Зададим диапазон изменения переменной x1. Для этого напечатаем -7 3 в поле Range (рисунок 5.1) и нажмем < Enter >.

Рисунок 5.1 - Функции принадлежности переменной x1

 

Шаг 10. Зададим функции принадлежности переменной x1. Для лингвистической оценки этой переменной будем использовать, 3 терма с треугольными функциями принадлежности. Зададим наименования термов переменной x1. Для этого делаем один щелчок левой кнопкой мыши по графику первой функции принадлежности (рисунок 5.1). Затем напечатаем наименование терма Низкий в поле Name. Затем делаем один щелчок левой кнопкой мыши по графику второй функции принадлежности и вводим наименование терма Средний в поле Name. Еще раз делаем один щелчок левой кнопкой мыши по графику третьей функции принадлежности и вводим наименование терма Высокий в поле Name и нажмем < Enter >.

Шаг 11. Зададим функции принадлежности переменной x2. Для лингвистической оценки этой переменной будем использовать 3 терма с треугольными функциями принадлежности. Для этого активизируем переменную x2 с помощью щелчка левой кнопки мыши на блоке x2. Зададим диапазон изменения переменной x2. Для этого напечатаем -4.4 1.7 в поле Range (рисунок 5.2) и нажмем < Enter >. По аналогии с предыдущим шагом зададим следующие наименования термов переменной x2: Низкий, Средний, Высокий.

Рисунок 5.2 - Функции принадлежности переменной x2

 

Шаг 12. Зададим линейные зависимости между входами и выходом, приведенные в базе знаний. Для этого активизируем переменную y с помощью щелчка левой кнопки мыши на блоке y. В правом верхнем угле появилось обозначение трех функций принадлежности, каждая из которых соответствует одной линейной зависимости между входами и выходам. В базе знаний содержится 5 различных зависимостей: y=50; y=4x1-x2; y=2x1+2x2+1; y=8x1+2x2+8; y=0.

Если x1=Средний, то y=0;

Если x1=Высокий и x2=Высокий, то y=2x1+2x2+1;

Если x1=Высокий и x2=Низкий, то y=4x1-x2;

Если x1=Низкий и x2=Средний, то y=8x1+2x2+8;

Если x1=Низкий и x2=Низкий, то y=50;

Если x1=Низкий и x2=Высокий, то y=50.

Поэтому добавим еще две зависимости путем выбора команды Add Mfs… меню Edit. В появившимся диалоговом окне в поле Number of MFs выбираем 2 и нажимаем кнопку OK.

Шаг 13. Зададим наименования и параметры линейных зависимостей. Для этого делаем один щелчок левой кнопкой мыши по наименованию первой зависимости mf1. Затем печатаем наименование зависимости, например 50, в поле Name, и устанавливаем тип зависимости – константа путем выбора опции Сonstant в меню Type. После этого вводим значение параметра – 50 в поле Params.

Аналогично для второй зависимости mf2 введем наименование зависимости, например 8x1+2x2+8. Затем укажем линейный тип зависимости путем выбора опции Linear в меню Type и введем параметры зависимости 8 2 8 в поле Params. Для линейной зависимости порядок параметров следующий: первый параметр – коэффициент при первой переменной, второй – при второй и т.д., и последний параметр – свободный член зависимости.

Аналогично для третьей зависимости mf3 введем наименование зависимости, например 1+2x1+2x2, укажем линейный тип зависимости и введем параметры зависимости 2 2 1.

Для четвертой зависимости mf4 введем наименование зависимости, например 4x1-x2, укажем линейный тип зависимости и введем параметры зависимости 4 -1 0.

Для пятой зависимости mf5 введем наименование зависимости, например 0, укажем тип зависимости - константа и введем параметр зависимости 0.

В результате получим графическое окно, изображенное на рисунке 5.3.

Рисунок 5.3 - Окно линейных зависимостей «входы-выход»

 

Шаг 14. Перейдем в редактор базы знаний RuleEditor. Для этого выберем в меню Edit команду Edit rules.... и введем правила базы знаний. Для ввода правила необходимо выбрать соответствующую комбинацию термов и зависимостей и нажать кнопку Add rule. На рисунке 5.4 изображено окно редактора базы знаний после ввода всех шести правил.

Рисунок 5.4 - Нечеткая база знаний для системы типа Сугэно

 

На рисунке 5.5 приведено окно визуализации нечеткого логического вывода. Это окно активизируется командой View rules... меню View. В поле Input указываются значения входных переменных, для которых выполняется логический вывод. Как видно из этого рисунка значение выходной переменной рассчитывается как среднее взвешенное значение результатов вывода по каждому правилу.

Рисунок 5.5 - Визуализация нечеткого логического вывода для системы типа Сугэно

 

На рисунке 5.6 приведена поверхность «входы-выход», соответствующая синтезированной нечеткой системе. Для вывода этого окна необходимо использовать команду View surface... меню View. Сравнивая поверхности на рисунке 4.13, рисунке 4.19 и на рисунке 5.6 можно сделать вывод, что нечеткие правила достаточно хорошо описывают сложную нелинейную зависимость. При этом, модель типа Сугэно более точная. Преимущество моделей типа Мамдани состоит в том, что правила базы знаний являются прозрачными и интуитивно понятными, тогда как для моделей типа Сугэно не всегда ясно какие линейные зависимости «входы-выход» необходимо использовать.

Рисунок 5.6 - Поверхность «входы-выход» для системы типа Сугэно

 

Контрольные вопросы к защите

1. Для чего предназначен FIS-редактор?

2. Назовите основные элементы окна FIS-редактора?

3. Опишите редактор функций принадлежности?

4. Какого типа имеются функции принадлежности в пакете fuzzy logic?

5. Опишите окно редактора баз знаний?

6. Каким образом можно произвести визуализацию нечеткого логического вывода?

7. Что такое визуализация поверхности типа «входы-выходы»?

8. Назовите ключевые отличия подходов проектирования нечетких систем Мамдани и Сугэно?



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: