Обработка экспериментальных данных

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

Показывать лекцию целиком

Подготовка к работе

По указанной литературе изучить приёмы работы построение системы типа Мамдани в программе MATLAB.

Контрольные вопросы

  • Правила создания системы типа Мамдани.
  • Порядок использования графического интерфейса для построения системы типа Мамдани.
  • Какова последовательность проектирование системы нечеткого логического вывода?
  • Дайте определение терма
  • Как просмотреть результаты проектирование системы?
  • Порядок задания нечетких правил в системе типа Мамдани?
  • Задание к работе

  • Создайте систему типа Мамдами
  • Получите графическое изображение этой системы
  • Построить систему Мамдами с помощью графического интерфейса нечеткой логики Fuzzy Logic.
  • Исходные данные в таблице 13.1.

    №№ Функция Пределы
    1 $$y=x_1 \cdot cos(x_2)$$ $$x_1 \in [-3,3]; x_2 \in [-1,1]$$
    2 $$y=2 \cdot x_1 \cdot tan x_2$$ $$x_1 \in [-5,10]; x_2 \in [-1.2,0.7]$$
    3 $$y=x_1 \cdot cos (x_2^2)$$ $$x_1 \in [-7,12]; x_2 \in [-0.9,1.5]$$
    4 $$y=x_1^2+5 \cdot x_2$$ $$x_1 \in [-9,15]; x_2 \in [-0,12]$$
    5 $$y=2 \cdot sin(x_1)+3 \cdot cos(x_2)$$ $$x_1 \in [-0.8,0.7]; x_2 \in [-1,0.9]$$
    6 $$y=4 \cdot x_1 + \frac {x_1} {cos(x_2)}$$ $$x_1 \in [1.2,4.7]; x_2 \in [0.1,0.9]$$

    Пример построения системы типа Мамдани. $$y=x_1^2 \cdot sin(x-1) \qquad x_1 \in [-7,3]; x_2 \in [-4.4,1.7]$$

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

    %Построение графика функции y=x1^2*sin(x2-1);
    %в области x1є[-7,3] и x2є[-4.4,1.7];
    n=15; % количество точек для построения графика
    x1=-7:10/(n-1):3; % диапазон изменения х1 с необходимым количеством шагов
    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') % прописывается название оси х1
    ylabel('x2')
    zlabel('y')
    title('Базовый ');
     

    В результате выполнения программы получим графическое изображение, приведенное на рисунке 13.1. (рис 13.1) Эталонная поверхность

    Спроектируем системы нечеткого логического вывода, в графическом редакторе Fuzzy Logic.

    Откроем графическое окно при помощи функции fuzzy (рисунок 13.2). (рис 13.2) Окно редактора FIS-Editor

    Изначально в окне редактора задана только одна переменная, добавим вторую переменную, в меню Edit выбираем команду Add input . Далее переименуем переменные для этого на блоке input1 , введем новое обозначение x1 в поле редактирования имени текущей переменной и нажмем <Enter>. Аналогично поступим с переменными x2 , и y используя блоки input2 и output1 .

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

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

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

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

    Для лингвистической оценки переменной x2 используем 5 термов с гауссовскими функциями принадлежности (Рисунок 13.4). (рис 13.4) Функции принадлежности переменной x2

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

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

    Зададим функции принадлежности переменной y, используя 5 термов с треугольными функциями принадлежности. Зададим диапазон изменения переменной y. Напечатаем -50 50 в поле Range (рисунок 13.5) и нажмем <Enter>. В меню Edit выберем команду Add MFs. Выбираем 5 термов в поле Number of MFs, нажимаем <Enter>. (рис 13.5) Функции принадлежности переменной y

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

    Чтобы создать правила работы с нечеткими множествами перейдем в редактор базы знаний RuleEditor. Выберем в меню Edit команду Edit rules.

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

  • Если 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. На рисунке 13.6 изображено окно редактора базы знаний после ввода всех девяти правил. Число, приведенное в скобках в конце каждого правила представляет собой весовым коэффициент соответствующего правила. (рис 13.6) База знаний в RuleEditor

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

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

    На рисунке 13.8 приведена поверхность "входы-выход", соответствующая синтезированной нечеткой системе. Для вывода этого окна необходимо использовать команду View surface меню View. Сравнивая поверхности на рисунке 13.1 и на рисунке 13.8 можно сделать вывод, что нечеткие правила с высокой точностью описывают сложную нелинейную зависимость. (рис 13.8) Поверхность “входы-выход” в окне SurfaceViwer

    Вернуться к учебному плану