Технология работы
1. Запустите MatLab 2. Скопируйте в окно команд текст программы (рисунок 1)
Рисунок 1 – Программа в окне команд
3. В результате выполнения программы получим графическое изображение, приведенное на рисунке 2.
Рисунок 2 - Эталонная поверхность 4. Проектирование системы нечеткого логического вывода, соответствующей приведенному графику, состоит в выполнении следующей последовательности шагов. Шаг 1. Для загрузки основного fis-редактора напечатаем слова fuzzy в командной строке. После этого откроется нового графическое окно, показанное на рисунке 3..
Рисунок 3 -. Окно редактора FIS-Editor
Шаг 2. Добавим вторую входную переменную. Для этого в меню Edi t выбираем команду Add input. Шаг 3. Переименуем первую входную переменную. Для этого сделаем один щелчок левой кнопкой мыши на блоке input1, введем новое обозначение x 1 в поле редактирования имени текущей переменной и нажмем < Enter>. Шаг 4. Переименуем вторую входную переменную. Для этого сделаем один щелчок левой кнопкой мыши на блоке input2, введем новое обозначение x2 в поле редактирования имени текущей переменной и нажмем < Enter >. Шаг 5. Переименуем выходную переменную. Для этого сделаем один щелчок левой кнопкой мыши на блоке output1, введем новое обозначение y в поле редактирования имени текущей переменной и нажмем < Enter>. Шаг 6. Зададим имя системы. Для этого в меню File выбираем в подменю Export команду To disk и вводим имя файла, например, first. Шаг 7. Перейдем в редактор функций принадлежности. Для этого сделаем двойной щелчок левой кнопкой мыши на блоке x1. Шаг 8. Зададим диапазон изменения переменной x1. Для этого напечатаем -7 3 в поле Range (см. рисунок 4) и нажмем < Enter >. Шаг 9. Зададим функции принадлежности переменной x1. Для лингвистической оценки этой переменной будем использовать 3 терма с треугольными функциями принадлежности. Для этого в меню Edit выберем команду Add MFs... В результате появиться диалоговое окно выбора типа и количества функций принадлежностей. По умолчанию это три терма с треугольными функциями принадлежности. Поэтому просто нажимаем < Enter >. Шаг 10. Зададим наименования термов переменной x1. Для этого делаем один щелчок левой кнопкой мыши по графику первой функции принадлежности (см. рисунок 4). Затем вводим наименование терма, например, Низкий, в поле Name и нажмем < Enter >. Затем делаем один щелчок левой кнопкой мыши по графику второй функции принадлежности и вводим наименование терма, например, Средний, в поле Name и нажмем < Enter >. Еще раз делаем один щелчок левой кнопкой мыши по графику третьей функции принадлежности и вводим наименование терма, например, Высокий, в поле Nam e и нажмем <E nter >. В результате получим графическое окно, изображенное на рисунке 4.
Рисунок 4 - Функции принадлежности переменной x 1
Шаг 11. Зададим функции принадлежности переменной x2. Для лингвистической оценки этой переменной будем использовать пять термов с гауссовскими функциями принадлежности. Для этого активизируем переменную x2 с помощью щелчка левой кнопки мыши на блоке x2. Зададим диапазон изменения переменной x2. Для этого напечатаем -4.4 1.7 в поле Range (см. рисунок 5) и нажмем < Enter >. Затем в меню Edit выберем команду Add MFs.... В появившимся диалоговом окне выбираем тип функции принадлежности gaussmf в поле MF type и пять термов в поле Number of MFs. После этого нажимаем < Enter>.
Рисунок 5- Функции принадлежности переменной x2
Шаг 12. По аналогии с шагом 10 зададим следующие наименования термов переменной x2: Низкий, Ниже среднего, Средний, Выше среднего, Высокий. В результате получим графическое окно, изображенное на рисунке 5. Шаг 13. Зададим функции принадлежности переменной y. Для лингвистической оценки этой переменной будем использовать пять термов с треугольными функциями принадлежности. Для этого активизируем переменную y с помощью щелчка левой кнопки мыши на блоке y. Зададим диапазон изменения переменной y. Для этого напечатаем -50 50 в поле Range (см. рисунок 6) и нажмем < Enter >.Затем в меню Edit выберем команду Add MFs.... В появившимся диалоговом окне выбираем 5 термов в поле Number of MFs. После этого нажимаем < Enter >. Шаг 14. По аналогии с шагом 10 зададим следующие наименования термов переменной y: Низкий, Ниже среднего, Средний, Выше среднего, Высокий. В результате получим графическое окно, изображенное на рисунке6. Шаг 15. Перейдем в редактор базы знаний RuleEditor. Для этого выберем в меню Edit выберем команду Edit rules....
Рисунок 6 - Функции принадлежности переменной y
Шаг 16. На основе визуального наблюдения за графиком, изображенным на рисунке 2 сформулируем следующие девять правил:
Если x1=Средний, то y=Средний; Если x1=Низкий и x2=Низкий, то y=Высокий; Если x1=Низкий и x2=Высокий, то y=Высокий; Если x1=Высокий и x2=Высокий, то y=Выше Среднего; Если x1=Высокий и x2=Низкий, то y=Выше Среднего; Если x1=Высокий и x2=Средний, то y=Средний; Если x1=Низкий и x2=Средний, то y=Низкий; Если x1=Высокий и x2=Выше Среднего, то y=Средний; Если x1=Высокий и x2=Ниже Среднего, то y=Средний.
Для ввода правила необходимо выбрать в меню соответствующую комбинацию термов и нажать кнопку Add rule. На рисунке 7 изображено окно редактора базы знаний после ввода всех девяти правил. Число, приведенное в скобках в конце каждого правила представляет собой весовым коэффициент соответствующего правила.
Рисунок 7 - База знаний в RuleEditor
Шаг 17. Сохраним созданную систему. Для этого в меню File выбираем в подменю Export команду To disk. На рисунке 8 приведено окно визуализации нечеткого логического вывода. Это окно активизируется командой View rules... меню View. В поле Input указываются значения входных переменных, для которых выполняется логический вывод.
Рисунок 8 - Визуализация нечеткого логического вывода в RuleViewer На рисунке 9 приведена поверхность “входы-выход”, соответствующая синтезированной нечеткой системе. Для вывода этого окна необходимо использовать команду View surface... меню View. Сравнивая поверхности на рисунке 2 и на рисунке 9 можно сделать вывод, что нечеткие правила достаточно хорошо описывают сложную нелинейную зависимость.
Рисунок 9 -. Поверхность “входы-выход” в окне SurfaceViwer
|