Краткая характеристика программных средств реализации СНВ
В состав программных средств Fuzzy Logic Toolbox входят следующие основные программы, позволяющие работать в режиме графического интерфейса:
редактор нечеткой системы вывода Fuzzy Inference System Editor вместе с вспомогательными программами, редактором функций принадлежности (Member Ship Function Editor), редактором правил (Rule Editor), наблюдателем правил (Rule Viewer) наблюдателем поверхности отклика (Surface Viewer); редактор гибридных систем (ANFIS Editor,ANFIS-редактор); программа нахождения центров кластеров (программа Clustering -кластеризация).
Пример. Построение аппроксимирующей системы нечеткого вывода.
При решении задач управления в ряде случаев необходимо построить зависимость критерия оптимизации от параметров, которые можно было бы изменять для получения оптимального значения критерия оптимизации. При этом и критерий оптимизации и управляемые параметры могут быть представлены не в количественном виде. В настоящей работе студент, знакомясь с теоретическими положениями системы нечеткого вывода, программными средствами ее реализации (Приложение 3), подготавливает себя к дальнейшей работе в этом направлении.
Командой Fuzzy из режима командной строки MatLab запускается основная программа пакета Fuzzy Logic - редактор нечеткой системы вывода.
Строка меню редактора содержит позиции:
· File-работа с файлами;
· Edit-операции редактирования;
· View-переход к дополнительному инструментарию.
Рассмотрим порядок построения аппроксимирующей системы на примере значений Y и X (табл.№1).
Таблица №24.
х | -1 | -0.5 | 0.5 | ||
y | -2 | -1 |
Порядок построения:
1) В меню File выбираем команду New Sugeno FIS и соглашаемся с именем файла (Untitled )
2) На блоке input 1. Затем в правой части редактора в поле Name вместо input введем обозначения аргумента х.
3) Дважды щелкнем на блоке. Откроется окно редактора функций принадлежности -Membership Function Editor. Откроем меню Edit данного редактора и выберем в нем команду Add MFs (Добавить функцию принадлежности). При этом появляется окно, позволяющее задать тип (MF type) и количество (Number of MFs) функций принадлежностей (в данном случае все относится к входному сигналу, т.е. к переменной х). Выберем гауссовы функции принадлежности (gassing), а их количества зададим равным пяти по числу значений Х в таблице №1. Подтвердим ввод информации нажатием кнопки ОК, после чего произойдет возврат к окну редактора функции принадлежностей.
4) В поле Range (диапазон) установим диапазон изменения Х от -1 до 1, т.е. диапазон, установленный в таблице №1. Щелкнем затем левой кнопкой мыши где-нибудь в поле редактора (или нажмем клавишу Enter). После этого произойдет соответствующее изменение диапазона в поле Display Range (Диапазон отображения)
5) Рассмотрим графики заданных нами функций принадлежностей, изображенные в верхней части окна редактора функций принадлежностей. Для успешного решения поставленной задачи необходимо, чтобы ординаты максимумов этих функций совпадали с заданными значениях. Для левой, центральной и правой функции такое условие выполнено, что две других необходимо «подвинуть» вдоль горизонтальной оси. Это можно выполнить, активизировав нужную кривую с помощью мыши и передвинуть ее в нужную позицию. Таким же образом можно изменить ее форму, установить новое имя. Проделаем требуемые перемещения кривых и зададим всем пяти кривым новые имена:
· Самой левой -Bn,
· Следующий -n,
· Центральной -z,
· следующей за ней справа -P,
· самой правой – bp.
Выйдем из редактора функций принадлежностей, нажав кнопку Close, и таким образом возвратимся в окно редактора нечеткой системы (FisEditor).
6) Сделаем однократный щелчок на голубом блоке, озаглавленным output1. В поле заменим имя output 1 на y.
7) Дважды щелкнем на выделенном блоке и перейдем к редактору функции принадлежности. В меню Edit выберем команду Add Mfs. Появляющееся окно позволяет задать в качестве функций принадлежностей линейные (linear) или постоянные (coustant) -в зависимости от того какой алгоритм Сугено (1-го или 0-го порядка) мы выбираем. В решаемой задаче выбираем постоянные функции принадлежностей с общим числом 5. Подтвердим введенные данные нажатием кнопки ОК, после чего произойдет возврат в окно редактора функции принадлежностей.
8) Установим диапазон изменения (Range) равным -2 до 2. Изменим имена функций принадлежностей, задав им следующие значения: -2,-1,0,1,2. Одновременно эти же числовые значения y, т.е. -2,-1,0,1,2 введем в поле Parms. Затем закроем окно нажатием кнопки clоse и вернемся в окно FIS-редактора.
9) Дважды щелкнем на среднем (белом) блоке, при этом раскроется окно еще одной программы-редактора правил (Rule Editor).Введем соответствующие правила. При вводе каждого правила необходимо обозначить соответствие между каждой функцией принадлежностей аргумента Х и числовым значением Y. Кривая, обозначенная нами bn, соответствует х =-1, т.е. у=-2. Выберем поэтому в левом поле (с заголовком X is) вариант bn, а в правом 1 и нажмем кнопку Addrule (Добавить правило). Введенное правило появляется в окне правил и будем представлять собой такую запись:
1.If (x is bn) then (y is) (1)
Аналогично поступим для всех других значений х, в результате чего сформируется набор из пяти правил.
Закроем окно редактора правил и возвратимся в окно FIS-редактора. Построение системы закончено.
10) Сохраним на диске, используя команды меню File\Save to disk as. Раскроем меню View. С помощью его команд Edit membership functions и Edit rules можно перейти к двум рассмотренным ранее программам -редакторам функций принадлежности и правил. Используем две следующие команды: View rules(просмотр правил) и View surface( просмотр поверхности). Выберем команду View rules, при этом откроется окно программы-просмотра правил (Rule Viewer).
11) В правой части окна в графическом форме представлены функции принадлежностей аргумента Х, в левой функции принадлежностей переменной выхода У с пояснением механизма принятия решения. Красная вертикальная черта, пересекающая графики в правой части окна, которую можно перемещать с помощью мыши, позволяет изменять значения переменной входа, при этом соответственно изменяются значения у в правой верхней части окна. Таким образом, с помощью построенной модели и окна просмотра правил можно решать задачу интерполяции изменение аргумента путем перемещения красной вертикальной линии наглядно демонстрирует как система определяет значение выхода.
12) Закроем окно просмотра правил и выбором команды меню view/view surface перейдем к окну просмотра поверхностей отклика(вывода), в нашем случае - к просмотру прямой у(х).