АЛГОРИТМЫ
ПРОГРАММИРОВАНИЯ КОНТРОЛЕРРОВ В СИСТЕМАХ УПРАВЛЕНИЯ С ИСПОЛЬЗОВАНИЕМ НЕЧЕТКОЙ
ЛОГИКИ
Атанов С.К.
Резюме
Методика нечеткой логики позволяет решать задачи управления разнообразным
оборудованием без привлечения классических методов теории автоматического
управления. Реализация нечеткого управления в системах управления с классическими
микроконтроллерами требует разработки специальных алгоритмов. Предлагаемый в
статье алгоритм позволяет осуществлять операцию дефаззификации применительно к
любым микроконтроллерам систем управления.
The resume
The technique “Fuzzy” logic allows to solve management
problems the various equipment without attraction of classical methods of the
theory of automatic control. Realisation
fuzzy management in control systems with "usual" microcontrollers
demands working out of special algorithms. The algorithm offered in article
allows to carry out operation defuzzification with reference to any
microcontrollers of control systems.
Одна из ключевых тенденций современной науки связана со сложностью
изучаемых объектов. Если раньше исследователи могли анализировать лишь точно
описываемые явления и процессы с малым числом переменных, то с развитием
теоретического знания и информационных технологий появилась возможность
исследования нового класса систем, получивших общее название – сложные
технические системы.
Теория
нечетких множеств, основные идеи которой были предложены американским
математиком Лотфи Заде (Lotfi Zadeh) более 30 лет назад, позволяет описывать
качественные, неточные понятия и знания об окружающем мире, а также оперировать
этими значениями с целью получения новой информации. Основанные на этой теории
методы построения информационных моделей существенно расширяют традиционные
области применения компьютеров и образуют самостоятельное направление
научно–технического прогресса — нечеткое моделирование. Нечеткая логика,
которая служит основой для реализации методов нечеткого управления, более
естественно описывает характер человеческого мышления и ход его рассуждений,
чем традиционные формально–логические системы. Использование математических
средств для представления нечеткой исходной информации позволяет строить
модели, которые наиболее адекватно отражают различные аспекты неопределенности,
постоянно присутствующей в окружающей реальности. В области управления
техническими системами нечеткое моделирование позволяет получать более
адекватные результаты по сравнению с результатами, которые основываются на
использовании традиционных аналитических моделей и алгоритмов управления.
В целом весь процесс нечеткого управления
можно разбить на несколько шагов: фаззификация или переход к нечеткости,
использование нечетких продукционных правил, дефаззификация или устранение
нечеткости [1]. При реализации устройств управления, использующих аппарат
нечеткой логики, возможно использование специальных микроконтроллеров, которые
способны выполнять «нечеткие» команды. Однако такие микроконтроллеры и средства
разработки к ним достаточно экзотичны, поэтому представляет интерес реализация «нечетких»
систем управления на «обыкновенных» микроконтроллерах распространенных серий.
Но при этом необходимо решить ряд проблем, связанных с выполнением операций
фаззификации и дефаззификации. Как показал опыт проектирования, при
использовании стандартных функций принадлежности [2] фаззификация входных
переменных труда не представляет.
Использование
при программировании микроконтроллеров языков высокого уровня позволяет легко
реализовать работу с нечеткими правилами. Но чтобы исполнительное устройство
смогло отработать команду, являющуюся результатом обработки нечетких правил,
необходим этап дефаззификации, на котором избавляются от нечеткости. Для
устранения нечеткости окончательного результата существует несколько методов
[1, 2]. Наиболее часто применяемым методом дефаззификации является вычисление
абсциссы центра тяжести фигуры объединенных усеченных множеств для каждого из
нечетких правил. Центр тяжести фигуры находится по следующей формуле:
где Si — площадь i–й
элементарной фигуры, — значение центра тяжести i–й
элементарной фигуры. Элементарная фигура может иметь вид трапеции или
прямоугольника. Для вычисления центра тяжести объединенных усеченных множеств
при выполнении операции дефаззификации разработан оригинальный алгоритм, позволяющий
разбивать эти множества на элементарные фигуры и рассчитывать координаты
центров тяжести этих фигур. Пусть имеется система нечеткого управления
электродвигателем привода подачи металлорежущего станка. Не рассматривая
входные нечеткие переменные этой системы, введем выходную нечеткую переменную — условная мощность двигателя. На рис. 1
показана возможная функция принадлежности этой переменной. Из рисунка видно,
что нечеткая переменная определена пятью термами: ОЧЕНЬ МАЛАЯ, МАЛАЯ,
СРЕДНЯЯ, БОЛЬШАЯ, ОЧЕНЬ БОЛЬШАЯ.
Рассмотрим фрагмент функции принадлежности
выходной переменной в интервале 0…20 % (рис. 2). Введем два
характерных уровня — степени принадлежности переменной термам ОЧЕНЬ МАЛАЯ и МАЛАЯ. Данные уровни
являются результатом обработки совокупности нечетких правил. Из анализа этих
уровней можно сделать вывод о количестве вершин ломаной, ограничивающей сверху
на рассматриваемом фрагменте часть объединенного усеченного множества и
определить координаты этих вершин. Очевидно, что первая вершина будет иметь
координаты где под координатой x будем понимать
значение угла поворота, под координатой y — величину степени
принадлежности. Вторая вершина будет находиться на границе терма ОЧЕНЬ МАЛАЯ,
причем y2 y1, а
координата x2 определяется наклоном границы терма. Для третьей вершины
Переходя
к следующему фрагменту функции принадлежности выходной переменной в
интервале 20…40 %, можно определить координаты следующих вершин. Всего должно
быть рассмотрено пять фрагментов — по количеству термов в данном примере.
Количество вершин ломаной заранее определить невозможно. На рис. 3 показаны
объединенные усеченные множества для выходной лингвистической переменной с отмеченными характерными точками — вершинами
ломаных.
Характерные
точки определяют элементарные фигуры, на которые распадаются объединенные
усеченные множества при определении центров тяжести по формуле (1). Формула (1)
может быть преобразована к виду, позволяющему вычислять координату центра
тяжести объединенного усеченного множества по координатам характерных точек:
где xi , уi —
координаты характерных точек, определяющих границы элементарных фигур.
Корректность
формулы (2) и всего алгоритма дефаззификации проверена сравнительными
вычислениями: расхождения в значениях мощности , рассчитанной в среде Matlab [1] и по
разработанному алгоритму при одинаковых значениях входных переменных не
превышают 1 %.
Если
рассматривать нечеткий регулятор как "черный ящик", то он ничем не
отличается от классических регуляторов и структура нечетких систем управления
строится по классическим образцам (рис.4 .).
Рис. 4. Функциональная схема
системы с нечеткой логикой
Заключение
Использование
аппарата нечеткой логики позволяет по иному решать задачи управления разнообразным
оборудованием — без привлечения классических методов теории автоматического
управления. Практическая реализация нечеткого управления в системах управления с
«обычными» микроконтроллерами требует разработки специальных алгоритмов.
Предлагаемый в статье алгоритм позволяет осуществлять операцию дефаззификации
применительно к любым микроконтроллерам систем управления.
Список литературы
1. Леоненков А.В.
Нечеткое моделирование в среде MATLAB и fuzzyTECH. — СПб.: БХВ–Петербург, 2003.
736 с.
2. Прикладные нечеткие
системы. Перевод с япон. / К. Асаи, Д. Ватага, С. Иваи, и др.; под ред. Т.
Тэрано. — М.: Мир, 1993. 344 с.