Исходные данные для моделирования:
Входная переменная Температура (значения приведены в таблице 1).
Название терма (Name) | Тип функции принадлежности (Type) | Диапазон изменения (Params) |
---|---|---|
Очень низкая | трапецеидальная | [-30 -20 20 30] |
Низкая | треугольная | [10 30 50] |
Средняя | треугольная | [30 50 70] |
Высокая | треугольная | [50 70 90] |
Очень высокая | трапецеидальная | [70 80 120 130] |
Выходная переменная Подача тепла (значения приведены в таблице 2).
Название терма | Тип функции принадлежности | Диапазон изменения |
---|---|---|
Очень малая | треугольная | [-20 0 20] |
Малая | треугольная | [10 25 40] |
Средняя | треугольная | [30 50 70] |
Большая | треугольная | [60 75 90] |
Очень большая | треугольная | [80 100 120] |
Создание нечеткой системы управления подачей тепла:
В самом начале работы необходимо выполнить команды Fis/New и в поле Name задать имя новой системы. Например, «Управление подачей тепла».
Зададим входные (измеряемые) и выходные (вычисляемые) переменные: для этого нужно выполнить команды Fis, Inputs (Outputs), New inputs (New Outputs), в открывшемся окне задаем имя переменной, например, «Температура», открыв меню Range, указываем диапазон изменения значений этой переменной (рис.1).
Рис.1. Диапазон изменения значений переменной «Температура»
После нажатия кнопки Apply, нужно выполнить команду MFs/New MF, чтобы задать термы и функции принадлежности переменной. Здесь (рис.2) в поле Name указывается название терма, Type - тип функции принадлежности (trapezoidal - трапецеидальная функция принадлежности, triangular - треугольная и т.д.)
Рис.2. Окно Input
Для лингвистической переменной Температура зададим следующие термы в соответствии с табл.1.
Окно редактора функций принадлежности для переменной Температура представлено на рис.3.
Рис.3. Термы и функции принадлежности переменной «Температура»
Аналогично задаются термы и определяются функции принадлежности для выходной переменной Подача тепла (рис.4). Исходные данные приведены в табл.2.
Рис.4. Значения выходной переменной
Чтобы создать базу правил, нужно сначала сформулировать предложения в форме ЕСЛИ - ТО, куда бы входила введенная нами переменная Температура:
ЕСЛИ температура=очень низкая ТО подача воды=очень
большая
ЕСЛИ температура=низкая ТО подача воды=большая
ЕСЛИ температура=средняя ТО подача воды=средняя
ЕСЛИ температура=высокая ТО подача воды=малая
ЕСЛИ температура=очень высокая ТО подача
воды=очень малая
Чтобы внести эти правила в базу правил необходимо нажать на кнопку Rules в главном окне программы, далее выполнить команду New Rule меню Rules.
На рис.5 изображено окно редактора базы знаний после ввода 5 правил.
Рис.5. Окно редактора базы правил
После того как база правил создана можно приступить к этапу логического вывода, для этого нужно выполнить команду Infer меню FIS в главном окне программы.
В левой части окна в графической форме представлены функции принадлежности входной переменной Температура, в правой - выходной переменной Подача тепла (рис.6). Изменять значения входной переменной можно передвигая бегунок или же задавать числовые значения непосредственно в поле Температура.
Рис.6. Логический вывод
Для того чтобы перейти к окну просмотра поверхности выхода выполнить команду System Response/Section пункта меню Fis в главном окне.
Рис.7. Просмотр поверхности выхода
Исходные данные для обучения нейронной сети приведены в таблице 3.
X | Y | Z |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
На первом шаге подготовим обучающие примеры. Данные для обучения нейронной сети должны быть представлены в текстовом файле с разделителем (Tab или пробел) (рис.8).
Рис.8. Данные для обучения НС
Далее в главном окне программы необходимо выбрать файл, содержащий обучающую выборку (рис.9). Информация, содержащаяся в этом файле, используется для обучения сети. Можно открыть txt-файл для обучения или nnw-файл - обученную нейронную сеть.
Рис.9. Содержимое txt-файла
Следующее окно программы, представленное на рис.10, позволяет задать входные и выходные переменные, провести при необходимости процедуру нормализации данных.
Рис.10. Задание входных и выходных переменных
Здесь
Для рассматриваемого примера входными данными являются X и Y, выходной переменной - Z. Нормализация исходных данных не производится.
На следующем шаге в окне представленном на рис.11 задаем параметры конфигурации нейронной сети.
Здесь
Рис.11. Окно задания параметров нейронной сети
Для рассматриваемого нами примера будет использована сеть с одним скрытым слоем, содержащим 2 нейрона (как известно, задача моделирования функции XOR является нелинейной).
После создания нейронной сети необходимо задать параметры обучения в окне на рис.12.
Здесь
Рис.12. Окно задания параметров обучения
Далее, в окне на рис.13 можно запустить процесс обучения и наблюдать ход обучения нейронной сети
Здесь
Рис.13. Ход и результаты обучения сети
После того как сеть обучена, можно проверить результаты обучения (рис.14).
Рис.14. Проверка обучения
Результаты обучения представлены в таблице 4
X | Y | Целевой выход Z | Выход сети | Ошибка |
---|---|---|---|---|
0 | 0 | 0 | 0,1 | 0,1 |
0 | 1 | 1 | 0,96 | 0,004 |
1 | 0 | 1 | 0,97 | 0,003 |
1 | 1 | 0 | 0 | 0 |
Пользователь, раз уж ты добрался до этой строки, ты нашёл тут что-то интересное или полезное для себя. Надеюсь, ты просматривал сайт в браузере Firefox, который один правильно отражает формулы, встречающиеся на страницах. Если тебе понравился контент, помоги сайту материально. Отключи, пожалуйста, блокираторы рекламы и нажми на пару баннеров вверху страницы. Это тебе ничего не будет стоить, увидишь ты только то, что уже искал или ищешь, а сайту ты поможешь оставаться на плаву.