MATLAB.Exponenta
–Û·Ë͇ Matlab&Toolboxes

Проектирование систем управления\Fuzzy Logic Toolbox

С.Д.Штовба "Введение в теорию нечетких множеств и нечеткую логику"
3. Построение нечетких систем в диалоговом режиме с помощью модуля Fuzzy

В оглавление книги \ К следующему разделу \ К предыдущему разделу

3.1. Проектирование систем типа Мамдани

Рассмотрим основные этапы проектирования систем типа Мамдани на примере создания системы нечеткого логического вывода, моделирующей зависимость , . Проектирование системы нечеткого логического вывода будем проводить на основе графического изображения указанной зависимости.

Для построения трехмерного изображения функции в области составим следующую программу:

%Построение графика функции y=x1^2*sin(x2-1)
%в области x1є[-7,3] и x2є[-4.4,1.7].
n=15;
x1=-7:10/(n-1):3;
x2=-4.4:6.1/(n-1):1.7;
y=zeros(n,n);
for j=1:n
y(j,:)=x1.^2*sin(x2(j)-1);
end
surf(x1,x2,y)
xlabel('x1')
ylabel('x2')
zlabel('y')
title('Target');

В результате выполнения программы получим графическое изображение, приведенное на рис. 3.1. Проектирование системы нечеткого логического вывода, соответствующей приведенному графику, состоит в выполнении следующей последовательности шагов.

Рис.3.1. Эталонная поверхность

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

image59351.gif (29336 bytes)

Рис.3.2. Окно редактора FIS-Editor

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

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

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

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

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

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

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

Шаг 9. Зададим функции принадлежности переменной x1. Для лингвистической оценки этой переменной будем использовать 3 терма с треугольными функциями принадлежности. Для этого в меню Edit выберем команду Add MFs... В результате появиться диалоговое окно выбора типа и количества функций принадлежностей. По умолчанию это 3 терма с треугольными функциями принадлежности. Поэтому просто нажимаем <Enter>.

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

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

Шаг 11. Зададим функции принадлежности переменной x2. Для лингвистической оценки этой переменной будем использовать 5 термов с гауссовскими функциями принадлежности. Для этого активизируем переменную x2 с помощью щелчка левой кнопки мыши на блоке x2. Зададим диапазон изменения переменной x2. Для этого напечатаем -4.4 1.7 в поле Range (см. рис. 3.4) и нажмем <Enter>. Затем в меню Edit выберем команду Add MFs.... В появившимся диалоговом окне выбираем тип функции принадлежности gaussmf в поле MF type и 5 термов в поле Number of MFs. После этого нажимаем <Enter>.

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

Шаг 12. По аналогии с шагом 10 зададим следующие наименования термов переменной x2: Низкий, Ниже среднего, Средний, Выше среднего, Высокий. В результате получим графическое окно, изображенное на рис. 3.4.

Шаг 13. Зададим функции принадлежности переменной y. Для лингвистической оценки этой переменной будем использовать 5 термов с треугольными функциями принадлежности. Для этого активизируем переменную y с помощью щелчка левой кнопки мыши на блоке y. Зададим диапазон изменения переменной y. Для этого напечатаем -50 50 в поле Range (см. рис. 3.5) и нажмем <Enter>.Затем в меню Edit выберем команду Add MFs.... В появившимся диалоговом окне выбираем 5 термов в поле Number of MFs. После этого нажимаем <Enter>.

Рис 3.5. Функции принадлежности переменной y

Шаг 14. По аналогии с шагом 10 зададим следующие наименования термов переменной y: Низкий, Ниже среднего, Средний, Выше среднего, Высокий. В результате получим графическое окно, изображенное на рис. 3.5.

Шаг 15. Перейдем в редактор базы знаний RuleEditor. Для этого выберем в меню Edit выберем команду Edit rules....

Шаг 16. На основе визуального наблюдения за графиком, изображенным на рис. 3.1 сформулируем следующие девять правил:

  1. Если x1=Средний, то y=Средний;
  2. Если x1=Низкий и x2=Низкий, то y=Высокий;
  3. Если x1=Низкий и x2=Высокий, то y=Высокий;
  4. Если x1=Высокий и x2=Высокий, то y=Выше Среднего;
  5. Если x1=Высокий и x2=Низкий, то y=Выше Среднего;
  6. Если x1=Высокий и x2=Средний, то y=Средний;
  7. Если x1=Низкий и x2=Средний, то y=Низкий;
  8. Если x1=Высокий и x2=Выше Среднего, то y=Средний;
  9. Если x1=Высокий и x2=Ниже Среднего, то y=Средний.

Для ввода правила необходимо выбрать в меню соответствующую комбинацию термов и нажать кнопку Add rule. На рис. 3.6 изображено окно редактора базы знаний после ввода всех девяти правил. Число, приведенное в скобках в конце каждого правила представляет собой весовым коэффициент соответствующего правила.

Рис 3.6. База знаний в RuleEditor

Шаг 17. Сохраним созданную систему. Для этого в меню File выбираем в подменю Export команду To disk.

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

Рис 3.7. Визуализация нечеткого логического вывода в RuleViewer

На рис. 3.8 приведена поверхность “входы-выход”, соответствующая синтезированной нечеткой системе. Для вывода этого окна необходимо использовать команду View surface... меню View. Сравнивая поверхности на рис. 3.1 и на рис. 3.8 можно сделать вывод, что нечеткие правила достаточно хорошо описывают сложную нелинейную зависимость.

Рис 3.8. Поверхность “входы-выход” в окне SurfaceViwer

В оглавление книги \ К следующему разделу \ К предыдущему разделу


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

Система Orphus

Яндекс.Метрика