Добавлен: 28.03.2023
Просмотров: 338
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
На основе рассмотренного выше метода строятся нейронные сети особого типа – так называемые самоорганизующиеся структуры.
II. Практическая часть
6. Применение нечеткой логики на практике
В практической части выполню решение задачи на нечеткую логику в программном комплексе MATLAB Fuzzy Logic Toolbox.
В задаче требуется определить расход топлива автомобиля. В качестве входных сигналов будут скорость движения автомобиля и температура окружающего воздуха. Скорость движения автомобиля может быть низкой, средней и высокой. А температура воздуха имеет 2 качественных параметра: низкая и высокая. Если температура высокая, то в машине включается кондиционер. Выходным сигналом будет расход топлива, имеющий 3 качественных значения: маленький расход, средний и большой расход.
Для решения этой задачи выделяются три основных правила, которые должны быть реализованы в сети:
1. Если скорость движения низкая, температура воздуха низкая, то расход топлива маленький.
2. Если скорость движения средняя, температура воздуха низкая, то расход средний.
3. Если скорость высокая, температура воздуха высокая, то расход большой.
Для решения этой задачи в программном комплексе MATLAB Fuzzy Logic Toolbox:
- создадим входы и выходы
- определим функции принадлежности для нечетких переменных
- определим правила работы системы.
Открываю редактор и создаю входы и выход сети. Вызвать фаззи-систему можно выбором в меню вкладки APPS, затем Fuzzy Logic Disigner, но наиболее простой способ вызова фаззи-системы, является написание в строке функций Matlab записи «fuzzy» с последующим нажатием Enter. Открывшийся редактор (рис.6.1) позволяет создавать входы, выходы, функции принадлежности, редактировать и смотреть работу правил. По умолчанию предлагается алгоритм логического вывода madman, который я буду использовать.
Рис. 6.1 Начальное состояние редактора
В моей системе два входа скорость движения и температура окружающего воздуха. Добавляю входы в редакторе: Edit→Add Variable.. →Input. При этом в редакторе появляется новый блок с именем input2. Далее по щелчку на блок input1 изменяю его имя в графе Name на «скорость» и завершаю ввод нажатием на Enter. Аналогично меняю имя второго входа на «температура». Выходной блок назову «топливо». Присваиваю имя всей сети «Fuel» (рис. 6.2) через меню File→Export→То Workspace...
Рис 6.2 Состояние редактора после создания и переименования входных и выходных сигналов
Задаю функциии принадлежности Edit→Membership Functions... Задам и отредактирую функцию принадлежности для входа «скорость». Сначала в полях Range, Display Range устанавливаю диапазон изменения переменных [0, 120]. Задаю функцию принадлежности гаусовского вида «gaussmf» с общим числом 3. Изменяю имена функций на «низкая», «средняя» и «высокая». Для функций устанавливаю следующие значения параметров «низкая» - Params [25 0], «средняя» Params [25 60], а для «высокая» - Params [25 120].
Рис. 6.3 Редактирование функций принадлежности входного сигнала «скорость»
Далее редактирую функции принадлежности для входа «температура». Сделаю диапазон Range, Display Range [-30 +40] Создаю 2 функции принадлежности трапецеидальной формы «tramf» с соответствующими параметрами. Функции будут «низкая» и «высокая». Для функции «низкая» устанавливаю следующие с значения параметров Рагаms [-30 -30 15 20] и для функции «высокая» Рагаms [22 27 40 40].
Рис. 6.4 Редактирование функций принадлежности входного сигнала «температура»
Далее редактирую функции принадлежности «топливо». Устанавливаю диапазон для переменной Range [0 24]. Задаю 3 функции принадлежности треугольной формы (trimf) с именами «маленький» Рагаms [0 4 8], «средний» Рагаms [8 12 16]), «большой» Рагаms [16 20 24].
Рис. 6.5 Редактирование функций принадлежности выходного сигнала «топливо»
Конструирую правила. Для создания правил, соответствующий пункт меню Edit→Rules. У меня в задаче три правила:
1. Если скорость низкая, температура низкая, то расход топлива маленький.
2. Если скорость средняя, температура низкая, то расход средний.
3. Если скорость высокая, температура высокая, то расход большой.
Рис. 6.6 Создание правил