Исследование функций принадлежности нечетких множеств
Лабораторная работа №1.
Введение
В теории нечетких множеств большую роль играют функции принадлежностей, описывающие степени принадлежности нечетких переменных нечетким множествам. Существует немалое количество типовых форм кривых для задания функций принадлежности.
В данной лабораторной работе будет разработана модель на базе нечеткой логики для исследования наиболее распространенных функций принадлежности: треугольной, трапецеидальной и Гауссова типа.
Цель работы
- Приобрести первичные навыки для работы с функциями принадлежности в SimInTech
Задачи работы
- Изучить особенности различных типов функций принадлежности
- Разработать модель на базе библиотеки Нечеткая логика для исследования функций принадлежности
- Разработать модель на основе блока Язык программирования для исследования двусторонней функции принадлежности Гаусса
- Построить графики типовых функций принадлежности
- Сравнить графики двусторонней функции принадлежности Гаусса, построенные разными способами
- Исследовать влияние параметров на форму графиков функций принадлежности
Основные теоретические сведения
В обычной теории множеств одним из способов задания множеств является задание с помощью характеристической функции. Характеристическая функция множества A ∈ Х — это функция μA(x), значения которой указывают, является ли x ∈ Х элементом множества A, и принимает значение 1, если x ∈ A, или 0, если x ∉ A.
Нечеткое множество представляет собой совокупность элементов произвольной природы, относительно которых нельзя точно утверждать – обладают ли эти элементы некоторым характеристическим свойством, которое используется для задания нечеткого множества. Нечеткое множество является расширением классического (четкого) множества. Нечеткое подмножество A универсального множества X определяется как множество упорядоченных пар A = {(x, μA(x)) | x ∈ X}, где μA(x) - характеристическая функция принадлежности (или просто функция принадлежности), принимающая значения в некотором вполне упорядоченном множестве M = [0;1]. Функция принадлежности указывает степень (или уровень) принадлежности элемента x подмножеству A.
Аналитическое представление функций принадлежности
- Треугольная функция принадлежности:
Переменные "a" и "c" задают основание треугольника, "b" – вершину, противолежащую основанию.
- Трапецеидальная функция принадлежности:
Переменные "a" и "d" задают нижнее основание трапеции, "b" и "c" задают верхнее основание трапеции - Функция принадлежности Гаусса:
Переменная "с" задает координату максимума функции принадлежности,а переменная "σ" - коэффициент концентрации функции принадлежности - Двусторонняя функция принадлежности Гаусса: Двусторонняя функция принадлежности Гаусса является комбинацией двух простых функций принадлежности Гаусса:
- первая – возрастающая функция – определяется параметрами "a1", "c1" и задает форму левой стороны функции принадлежности
- вторая – убывающая функция – определяется параметрами "a2", "c2" и задает форму правой стороны
Если c1<c2, то параметры функции принадлежности геометрически интерпретируются следующим образом:- "с1" и "с2"– соответственно минимальное и максимальное значение ядра нечеткого множества
- "a1" и "a2" – коэффициент концентрации соответственно левой и правой части функции принадлежности
При этом функция принадлежности достигает своего максимального значения на уровне "1".
Когда c1>c2, нечеткое множество получается субнормальным, и функция в точке максимума имеет значение меньшее единицы.
Задание 1. Построение графика треугольной функции принадлежности
- создать новый проект
- поместить блоки на схему, соединить их линиями связи и задать подписи
- задать свойства блоков
- построить график треугольной функции принадлежности
Создание нового проекта
- В главном окне SimInTech нажать кнопку Файл и выбрать пункт Новый проект
- В выпадающем меню выбрать пункт Схема модели общего вида (Рисунок 1)


- В главном окне SimInTech нажать кнопку Файл и выбрать пункт Сохранить проект как
- В появившемся окне выбрать или при необходимости создать папку, в которой будет сохранен данный проект
- В поле Имя файла указать желаемое имя проекта либо оставить имя проекта по умолчанию и нажать на кнопку Сохранить
Добавление блоков на схему
- 1 блок Линейный источник из вкладки Источники – с помощью данного блока будут формироваться значения элементов множества X
- 1 блок Треугольная из подменю Функция принадлежности вкладки Нечеткая логика – с помощью данного блока будут вычисляться значения треугольной функции принадлежности μ(x, a, b, c)
- 1 блок Фазовый портрет из вкладки Вывод данных – с помощью данного блока будет производиться графическое отображение результатов работы функции принадлежности

Задание подписей блоков
- Нажатием левой кнопки мыши выделить блок Фазовый портрет. При этом появится
пустая прямоугольная область под выделенным блоком (Рисунок 4).

Рис. 4. Окно проекта с выделенным блоком "Фазовый портрет". - После двойного нажатия левой кнопкой мыши по данной области, появляется текстовый
курсор для ввода подписи. Задать подпись "График треугольной функции
принадлежности" к блоку Фазовый портрет (Рисунок 5).

Рис. 5. Окно проекта с блоком "Фазовый портрет" с подписью "График треугольной функции принадлежности".
Соединение блоков на схеме
- Навести курсор мыши на выходной порт блока Линейный источник (курсор мыши изменится на вертикальную стрелку) и нажать левую кнопку мыши
- Появившуюся линию соединить с входным портом блока Функция принадлежности – Треугольная и нажать левую кнопку мыши

- Навести курсор мыши на входной порт "inport_1" блока Фазовый портрет (курсор мыши изменится на вертикальную стрелку) и нажать левую кнопку мыши
- Совершая одинарные нажатия левой кнопкой мыши, провести появившуюся линию к линии связи, соединяющую блоки Линейный источник и Функция принадлежности – Треугольная, и нажать левую кнопку мыши

Задание свойств блоков
- Совершить двойное нажатие левой кнопкой мыши по блоку Функция принадлежности – Треугольная. После этого на экране появится окно Свойства (Рисунок
8).

Рис. 8. Окно "Свойства" блока "Функция принадлежности – Треугольная"" со свойствами по умолчанию. - Для изменения свойств блока в поле "Значение" необходимо задать новые
значения свойств согласно рисунку (Рисунок 9).

Рис. 9. Окно "Свойства" блока "Функция принадлежности – Треугольная"" с новыми значениями свойств.
Величины "а" и "с" задают основание треугольника, то есть минимальное и максимальное значение входа, при котором треугольная функция равна "0"; величина "b" – его вершину, то есть значение входа, при котором функция принадлежности равна "1". Закрыть окно, тем самым сохранив внесенные изменения.
- Двойным нажатием левой кнопки мыши по блоку Фазовый портрет открыть окно
График. Одинарным нажатием правой кнопкой мыши по окну График
вызвать контекстное меню и в нем выбрать пункт Свойства (Рисунок 10).

Рис. 10. Окно графика с контекстным меню с выделенным пунктом "Свойства". - На вкладке Графики и оси задать
следующие значения свойств (Рисунок 11):
- "Название графика" = "График треугольной функции принадлежности"
- "Название оси" в колонке "Ось X" = "Значение x"
- "Название оси" в колонке "Ось Y" = "Значение y(x)"

Рис. 11. Окно "Свойства графика" блока "Фазовый портрет" с выделенными свойствами, которые необходимо изменить. - На вкладке Общие ввести в поле "Заголовок" название графика "График
треугольной функции принадлежности" (Рисунок 12).

Рис. 12. Окно "Свойства графика" блока "Фазовый портрет".
Для сохранения изменений и закрытия окна необходимо нажать кнопку Ok.
Запуск моделирования и построение графика


В результате анализа полученного графика установлено, что переменные "а" и "с", заданные равными "1" и "7", действительно задают основание с координатами "(1; 0)" и "(7; 0)", а переменная "b", значение которой задано равным "4" – вершину с координатой "(4; 1)". График полностью соответствует ожидаемым результатам.
Задание 2. Построение графика трапецеидальной функции принадлежности
- добавить блоки на схему, соединить их линиями связи и задать подписи
- задать свойства блокам
- построить график трапецеидальной функции принадлежности
Разработка модели
- 1 блок Трапецеидальная из подменю Функция принадлежности вкладки Нечеткая логика – с помощью данного блока будут вычисляться значения трапецеидальной функции принадлежности μ(a, b, c, d)
- 1 блок Фазовый портрет из вкладки Вывод данных – с помощью данного блока будет производиться графическое отображение результатов работы функции принадлежности


Величины "а" и "d" задают нижнее основание трапеции, то есть минимальное и максимальное значение входа, при котором трапецеидальная функция равна "0"; "c", "b" – верхнее основание трапеции, то есть минимальное и максимальное значение входа, при котором функция принадлежности равна "1".
- Открыть окно Свойства графика и на вкладке Графики и оси задать
значения свойства "Название графика" равным "График трапецеидальной функции
принадлежности", остальные свойства задать согласно рисунку (Рисунок 17).

Рис. 17. Окно "Свойства графика" блока "Фазовый портрет" с подписью "График трапецеидальной функции принадлежности" с выделенными свойствами, которые необходимо изменить. - На вкладке Общие ввести в поле "Заголовок" название графика "График трапецеидальной функции принадлежности"
Нажатием кнопки Ok закрыть окно, при этом внесенные изменения сохраняются.
Запуск моделирования и построение графика

В результате анализа полученного графика установлено, что переменные "а" и "d", заданные равными "1" и "9" действительно задают основание с координатами "(1; 0)" и "(9; 0)", а переменные "b" и "c", значения которых заданы равными "3" и "6" - верхнее основание с координатами "(3; 1)" и "(6; 1)". График полностью соответствует ожидаемым результатам.
Задание 3. Построение графика функции принадлежности Гаусса
- добавить блоки на схему, соединить их линиями связи и задать подписи
- задать свойства блокам
- построить график функции принадлежности Гаусса
Разработка модели
- 1 блок Гауссова из подменю Функция принадлежности вкладки Нечеткая логика – с помощью данного блока будут вычисляться значения гауссовой функции принадлежности μ(x, σ, c)
- 1 блок Фазовый портрет из вкладки Вывод данных – с помощью данного блока будет производиться графическое отображение результатов работы функции принадлежности


Величина "c_vn" задает координату максимума функции принадлежности, то есть значение входа, при котором гауссова функция равна "1", "sigma_vn" – коэффициент концентрации, отвечающий за форму функции.
- Открыть окно Свойства графика и на вкладке Графики и оси задать
значения свойства "Название графика" равным "График функции принадлежности
Гаусса", остальные свойства задать согласно рисунку (Рисунок 21).

Рис. 21. Окно "Свойства графика" блока "Фазовый портрет" с подписью "График функции принадлежности Гаусса", с выделенными свойствами, которые необходимо изменить. - На вкладке Общие ввести в поле "Заголовок" название графика "График функции принадлежности Гаусса"
Сохранить изменения нажатием кнопки Ok.
Запуск моделирования и построение графика

В результате анализа полученного графика установлено, что переменная "c_vn", заданная равной "5" действительно задает максимум с координатами "(5; 1)", а переменная "sigma_vn", значение которой задано равной "1" - задает дисперсию: функция в точках с координатами "c_vn±sigma_vn", равными "4" и "6" соответственно, имеет значения равные "0.6", что согласуется с теоретическим значением, рассчитанным по формуле:
График полностью соответствует ожидаемым результатам.
Задание 4. Построение графика двусторонней функции принадлежности Гаусса
В данном задании необходимо разработать модель для исследования пяти двусторонних функций принадлежности Гаусса, то есть для пяти различных комбинаций значений параметров "a1", "c1", "a2", "c2", определяющих данную функцию.
- используя блок Язык программирования и реализуя в нем расчет значений двусторонней функции принадлежности Гаусса
- используя комбинации блоков библиотеки Нечеткая логика для задания двусторонней функции принадлежности Гаусса
Первый способ: реализация функции в блоке "Язык программирования"
Необходимо создать новый проект Схема модели общего вида и сохранить проект, указав желаемое имя проекта либо оставив имя проекта по умолчанию.
Добавление блоков на схему
- 1 блок Линейный источник из вкладки Источники – с помощью данного блока будут формироваться значения элементов множества X
- 1 блок Язык программирования из вкладки Динамические – с помощью данного блока будут вычисляться значения двусторонней функции принадлежности Гаусса для множества элементов
- 1 блок Размножитель из вкладки Векторные - с помощью данного блока скалярный сигнал будет преобразован в вектор необходимой размерности
- 1 блок Фазовый портрет из вкладки Вывод данных – с помощью данного блока будет производиться графическое отображение результатов работы реализованной двусторонней функции принадлежности Гаусса для множества элементов


Формирование функций принадлежности с использованием блока "Язык программирования"
input x;
output y[5];
function Gauss2FM(x,a1, c1, a2, c2)
if (c1 < c2) then
begin
if (x < c1) then Gauss2FM = exp(-0.5 * (x - c1)^2 / a1^2);
if (x >= c1) and (x <= c2) then Gauss2FM = 1;
if (x > c2) then Gauss2FM = exp(-0.5 * (x - c2)^2 / a2^2);
end
else
begin
if (x < c2) then Gauss2FM = exp(-0.5 * (x - c1)/ a1^2);
if (x >= c2) and (x <= c1) then
Gauss2FM = exp(-0.5 * (x - c1)^2 / a1^2) * exp(-0.5 * (x - c2)^2 / a2^2);
if (x > c1) then Gauss2FM = exp(-0.5 * (x - c2)^2 / a2^2);
end;
end;
y[1] = Gauss2FM(x, 1,3,3,9);
y[2] = Gauss2FM(x, 1,1,3,4);
y[3] = Gauss2FM(x, 1,6,3,7);
y[4] = Gauss2FM(x, 1,8,3,2);
y[5] = Gauss2FM(x, 1,2,3,9);
При подаче на вход блока сигнала, его значение передается во входную переменную
x. В качестве выходной переменной задается вектор y[5].
Размерность задается явно, так как значения векторной переменной y
передаются на выходной порт блока, который соединен с входным портом блока
Фазовый портрет, на который должен подаваться
вектор размерности "5". После декларации входных и выходных переменных производится
расчет значений двусторонней функции принадлежности Гаусса с помощью реализованной функции
Gauss2FM для входной переменной x и заданных параметров
a1, c1, a2, c2, при этом полученные значения записываются в
соответствующие элементы выходного вектора y (строки 20–24). Расчет
производится для пяти различных комбинаций параметров a1, c1, a2, c2,
которые указываются в скобках при вызове функции Gauss2FM.Запуск моделирования и построение графиков
После настройки модели и реализации функции для построения графиков двусторонней функции принадлежности Гаусса необходимо запустить процесс моделирования и дождаться окончания расчета.
- Открыть окно Свойства графика блока Фазовый портрет с подписью
"Графики двусторонней функции принадлежности Гаусса – Первый способ" и задать
значения свойств согласно рисунку (Рисунок 26).

Рис. 25. Окно "Свойства графика" блока "Фазовый портрет" с подписью "Графики двусторонней функции принадлежности Гаусса – Первый способ", с выделенными свойствами, которые необходимо изменить. - На вкладке Общие ввести в поле "Заголовок" название графика "График двусторонней функции принадлежности Гаусса – Первый способ"

В результате анализа полученного графика установлено, что функции, для которых с1 < c2, действительно достигают своего максимального значения, равного "1", на отрезке "[c1; c2]" ("График 1 - 3, 5"), если же с1 > с2, то максимальное значение функции меньше "1" ("График 4"). График полностью соответствует ожидаемым результатам.
Второй способ: реализация функции с помощью блоков библиотеки "Нечеткая логика"
Для создания модели на базе нечеткой логики необходимо воспользоваться тем свойством, что двусторонняя функция принадлежности Гаусса представляет собой комбинацию двух простых гауссовых функций принадлежности – возрастающей и убывающей, согласно четвертому пункту раздела "Аналитическое представление функций принадлежности".
На первом этапе требуется реализовать модель для построения одного графика двусторонней функции принадлежности Гаусса с параметрами "a1", "c1", "a2", "c2", равными соответственно "1", "3", "3", "9", и убедиться, что график совпадает с "График 1", построенным первым способом для того же набора параметров (Рисунок 27), то есть модель верна.
Добавление блоков на схему
- 2 блока Гауссова из подменю Функция принадлежности, 1 блок И (конъюнкция) из подменю Операции вкладки Нечеткая логика – с помощью данных блоков будут вычисляться значения двусторонней функции принадлежности Гаусса для множества элементов
- 1 блок Фазовый портрет из вкладки Вывод данных – с помощью данного блока будет производиться графическое отображение результатов работы функции принадлежности

Задание свойств блоков



- Открыть окно Свойства графика блока Фазовый портрет с подписью
"График двусторонней функции принадлежности Гаусса – Второй способ" и задать
значения свойств согласно рисунку (Рисунок 32).

Рис. 31. Окно "Свойства графика" блока "Фазовый портрет" с подписью "График двусторонней функции принадлежности Гаусса – Второй способ", с выделенными свойствами, которые необходимо изменить. - На вкладке Общие ввести в поле "Заголовок" название графика "График двусторонней функции принадлежности Гаусса – Второй способ"
Закрыть окно нажатием кнопки Ok.
Запуск моделирования и построение графика

В результате анализа полученного графика установлено, что он совпадает с "График 1", построенным первым способом для того же набора параметров (Рисунок 27), то есть модель верна.
Для построения всех пяти графиков и сравнения полученных результатов с графиками, построенными первым способом, необходимо добавить по комбинации из трех блоков для каждого набора параметров.
Добавление блоков на схему




Задание свойств блоков
- "1", "6", "8", "2" соответственно по порядку для блоков, значение свойства "S-функция" которых равно "Возрастающая"
- "4", "7", "2", "9" соответственно для блоков, значение свойства "S-функция" которых равно "Убывающая"

Соединение блоков на схеме


Запуск моделирования и построение графиков
После настройки схемы, для построения графиков двусторонней функции принадлежности, необходимо запустить процесс моделирования и дождаться окончания расчета.
- Открыть окно Свойства графика блока Фазовый портрет с подписью "Графики двусторонней функции принадлежности Гаусса – Второй способ" и задать на вкладке Графики и оси названия графиков аналогично первому способу (Рисунок 26)
- На вкладке Общие в поле "Заголовок" изменить название графика на "Графики двусторонней функции принадлежности Гаусса – Второй способ"
Сохранить изменения и закрыть окно нажатием кнопки Ok.

Заключение
В ходе данной лабораторной работы были приобретены навыки работы с библиотекой Нечеткая логика для исследования наиболее распространенных функций принадлежности – треугольной, трапецеидальной, Гаусса и двусторонней Гаусса.