Реализация в системе
MatLab.
Запустим программу и откроем редактор системы
нечеткого вывода FuzzyLogic. Для этого можно
ввести команду fuzzy в командной строке
программы.
По-умолчанию установлен алгоритм вывода Мамдани.
Альтернативой к нему является алгоритм Сугено, но оставим первый
вариант, т.к. наши правила наиболее лучшим образом удовлетворяют первому
алгоритму. Для определения степеней истинностей условия каждого
правила системы нечеткого вывода будем использовать min-конъюнкцию (т.к.
в правилах 1-6 в качестве связки используется
только нечеткая конъюнкция («И»)). Согласно алгоритму Мамдани, в
процессе композиции используем метод max-дизъюнкции. Приведение к
четкости осуществим при помощи метода центра тяжести.
После этого включим в нашу систему 2 входных
переменных (расстояние и угол) и одну выходную(мощность). Приступим к их
редактированию двойным щелчком левой кнопки мыши на каждой из них.
Для переменной расстояние используем 5 функций
принадлежности для каждого из термов в соответствии с пунктом подготовки
данных.
Аналогично поступим и с переменной угол.
К сожалению, система MatLab
не содержит в себе функций одноточечных множеств и это
побудило использовать в качестве замены оных треугольные функции
принадлежности для каждого из термов, максимально приближенные к
одноточечным. Выразим надежду на учет этого фактора в последующих
версиях программного продукта.
Теперь перейдем к заданию правил. Для этого
дважды щелкнем левой кнопкой мыши по центру проекта:
Введем все правила нечетких продукций так же, как
мы и определили в процессе подготовительного этапа.
Выполнив все эти этапы, мы нечеткую систему
управления контейнерным краном. Самое время перейти к этапу
тестирования. Для этого мы откроем Rule-Viewer:
Зададим значение переменной расстояние равное
7.5, а значение переменной угол равное 10. Получим значение мощности на
выходе равное 12. Для пытливого читателя замечу, что система
тестирования правил представляет дополнительный интерес из-за наличия
возможности в реальном времени изменять значение переменных и смотреть
на результат.
Теперь перейдем к просмотру общей зависимости
путем рассмотрения поверхности отклика, для этого запустим
View-Surface:
Итак, мы завершили построение нечеткой системы
управления контейнерным краном с помощью системы MatLab.
Рекомендую читателю запомнить контрольные значения с
целью их последующего сравнения.
Далее. |