новости  материалы  справочник  форум  гостевая  ссылки Поиск с Яндексом  
Новости
Материалы
  Логические подходы
  Нейронные сети
  Генетические алгоритмы
  Разное
  Публикации
  Алгоритмы
  Применение
Справочник
Форум
Гостевая книга
Ссылки
О сайте
 

Введение в нечеткую логику и системы нечеткого управления


Авторы:
Peter Bauer, , homepage;
Stephan Nouak, , homepage;
Roman Winkler,
Дата: 04.12.1996 (Ver. 1.2)
Перевод: С. В. Кряжевских, , 1997
Источник: http://www.ors.kirov.ru/~serg/flll/flll.html
Оригинал: http://www.flll.uni-linz.ac.at/pdw/fuzzy/

Содержание

  1. Введение
  2. Нечеткие множества
    1. Базовые определения
    2. Операции с нечеткими множествами
  3. Нечеткое управление
  4. Применения нечеткой логики в системах управления
  5. Заключение

Введение в основы нечеткой логики

Нечеткая логика - новая мощная технология

Нечеткая логика возникла как наиболее удобный способ построения систем управления метрополитенами и сложными технологическими процессами, а также нашла применение в бытовой электронике, диагностических и других экспертных системах. Несмотря на то, что математический аппарат нечеткой логики впервые был разработан в США, активное развитие данного метода началось в Японии, и новая волна вновь достигла США и Европы.

В Японии до сих пор продолжается бум нечеткой логики и экспоненциально увеличивается количество патентов, большая часть которых относится к простым приложениям нечеткого управления.

Термин fuzzy (англ. нечеткий, размытый - произносится [фаззи] ) стал ключевым словом на рынке. Статьи по электронике без нечетких компонент постепенно исчезали и пропали совсем, как будто кто-то закрыл кран. Это показывает насколько стала популярной нечеткая логика; появилась даже туалетная бумага с напечатанными на ней словами "Fuzzy Logic".

В Японии исследования в области нечеткой логики получили широкую финансовую поддержку. В Европе и США усилия были направлены на то, чтобы сократить огромный отрыв от японцев. Так например, агенство космических исследований NASA стало использовать нечеткую логику в маневрах стыковки.

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

Нечеткая логика появилась в 1965 в работах Лотфи А. Задэ (Lotfi A. Zadeh),  профессора технических наук Калифорнийского университета в Беркли.

Что такое нечеткое множество?

Самым главным понятием систем, основанных на нечеткой логике, является понятие нечеткого (под)множества.

Из классической математики известно понятие четких (определенных)  множеств.

Пример:

Рассмотрим множество X всех чисел от 0 до 10, котрое назовем универсумом рассуждения. Определим подмножество A множества X всех действительных чисел от 5 до 8.

        A = [5,8]
Покажем характеристическую функцию множества A, эта функция ставит в соответсвие число 1 или 0 каждому элементу в X, в зависимости от того принадлежит данный элемент подмножеству A или нет. Результат представлен на следующем рисунке:
Можно интерпретировать элементы, которым поставлена в соответствие 1, как элементы, находящиеся во множестве A,  а элементы, которым поставлен в соответствие 0, как элементы, не находящиеся во множестве A.

Эта концепция используется во многих областях приложений. Но можно легко обнаружить ситуации, в которых данной концепции будет недоставать гибкости.

В данном примере опишем множество молодых людей. Более формально можно записать так

B = {множество молодых людей}

Так как, вообще, возраст начинается с 0, то нижний предел этого множества должен быть нолем. Верхний предел определить немного сложнее. На первый раз установим верхний предел, скажем, равным 20 годам. Таким образом, получаем B как четко ограниченный интервал, буквально:

B = [0,20]

Возникает вопрос: почему кто-то в свой двадцатилетний юбиоей - молодой, а сразу на следующий день уже не молодой? Очевидно, это структурная проблема, и если передвинуть верхнюю границу в произвольную точку, то можно задаться точно таким же вопросом.

Более естественный путь получения множества B состоит в ослаблении строгого разделения на молодых и не  молодых. Сделаем это, вынося не только (четкие) суждения Да, он|она принадлежит множеству молодых людей или Нет, он|она не принадлежит множеству молодых люей, но и более гибки формулировки  ДА, он|она принадлежит к достаточно молодым людям или Нет, он|она не очень молод|молода.

На следующей странице рассмотрим как с помощью нечеткого множества определить такое выражение, как он|она еще молоды.
 

Как было сказано во введении мы используем нечеткие множества, чтобы сделать компьютер более умным. Представим эту мысль более формализованно. В первом примере мы кодировали все элементы универсума рассуждения с помощью 0 или 1. Простой способ обобщить данную концепцию - ввести значения между 0 и 1. Реально можно даже допустить бесконечное число значений между 0 и 1, называемое единичным интервалом I = [0, 1].

Интерпретация чисел при соотнесении всех элементов универсума рассуждений становится теперь более сложной. Конечно, снова число 1 ставится в соответствие (соотносится) тому элементу, который принедлежит множеству B, а 0 означает, что элемент точно не принадлежит множеству B. Все другие значения определяют степень принадлежности ко множеству B.
 

Для наглядности приведем характеристическую функцию множества молодых людей, как и в первом примере.

То есть 25-летние все еще молоды со степенью 50 процентов.

Теперь вы поняли что такое нечеткое множество. Но что с ним можно делать?

Операции с нечеткими множествами

Сейчас, когда мы уже знаем, что такое нечеткие множества, попытаемся определить базовые операции (действия) над нечеткими множествами. Аналогично действиям с обычными множествами нам потребуется определить пересечение, объединение и отрицание нечетких множеств. В своей самой первой работе по нечетким множествам Л. А. Задэ предложил оператор минимума  для пересечения и оператор максимума для объединения двух нечетких множеств. Легко видеть, что эти операторы совпадают с обычными (четкими) объединением и пересечением, только рассматриваются степени принадлежности 0 и 1.
 
 

Чтобы пояснить это, приведем несколько примеров. Пусть нечеткий интервал от 5 до 8 и B нечеткое число около 4, как показано на рисунке.

Следующий пример иллюстрирует нечеткое множество между 5 и 8 И  (AND)  около 4 (синяя линия).

Нечеткое множество между 5 и 8 ИЛИ  (OR)  около 4 показано на следующем рисунке (снова синяя линия).

Следующий рисунок иллюстрирует операцию отрицания. Синяя линия - это ОТРИЦАНИЕ нечеткого множества A.

Нечеткое управление

Контроллеры нечеткой логики - наиболее важное приложение теории нечетких множеств. Их функционирование немного отличается от работы обычных контроллеров; для описания системы используются знания экспертов вместо дифференциальных уравнений. Эти знания могут быть выражены естесственным образом с помощью лингвистических переменных, которые описываются нечеткими множествами.

Пример: Перевернутый маятник

Проблема состоит в балансировке вертикальной мачты, подвижно закрепленной нижним концом на тележке, которая может двигаться только в двух направлениях - влево или вправо.

Во-первых, мы должны определить (субъективно) что такое высокая скорость, низкая  скорость и т.п. для тележки. Это делается описанием функции принадлежности для нечетких множеств.

  • отрицательная высокая, neg.high (голубой)
  • отрицательная низкая, neg.low (зеленый)
  • нулевая, zero (красный)
  • положительная низкая, pos.low (синий)
  • положительная высокая, pos.high (розовый)

Тоже самое делается для угла между тележкой и мачтой маятника и для угловой скорости изменения этого угла

Пожалуйста заметьте, что для упрощения предполагается, что начальное положение мачты около центра справа, так что угол более чем, скажем, 45 градусов в любом направлении по определению никогда не возникнет.

На следующей странице определим некоторые правила,  которые желательно применить в данной ситуации.

Сейчас определим несколько правил, которые определяют что делать в данной ситуации.

Положим, например, что мачта находится справа (угол равен нулю) и не двигается (угловая скорость - ноль). Очевидно, что это желаемое положение, и ничего предпринимать не надо (скорость равна нулю).

Рассмотрим другой случай: мачта находится справа, как и прежде, но движется с низкой скоростью в положительном  направлении. Естественно необходимо компенсировать движение мачты, передвигая тележку в том же направлении с низкой  скоростью.

Итак, получаем два правила, которые более формально представляются в следующей форме:

  • Если угол равен нулю И угловая скорость равна нулю, тогда скорость должна быть равна нулю.
  • Если угол равен нулю И угловая скорость положительная низкая, тогда скорость должна быть положительной низкой.
Сведем все полученные правила в таблицу:
             |            угол
             |
    скорость |  ОВ    ОН    0     ПН    ПВ  
  -----------+------------------------------
        ОВ   |              ОВ
  угл.  ОН   |              ОН    0
  скор. 0    |  ОВ    ОН    0     ПН    ПВ
        ПН   |        0     ПН
        ПВ   |              НВ
где  ОВ - Отрицательное Высокое (большое) значение, ОН - Отрицательное Низкое (малое) значение, 0 - нуль и т.д.
 

Для дальнейших расчетов определим численные значения для угла и угловой скорости. Рассмотрим следующую ситуацию:

Реальное значение угла:

Реальное значение угловой скорости:







Применим правило

Если угол равен нулю И угловая скорость равна нулю, тогда скорость равна нулю

к реальным значениям переменных.

Здесь представлена лингвистическая переменная "угол", отображаемая нечетким множеством "ноль" и реальный угол наклона маятника.

Проследим получение результата с помощью нечеткого вывода.

1. Если угол равен нулю И угловая скорость равна нулю тогда скорость равна нулю

Получаем, что реальное значение угла принадлежит нечеткому множеству "ноль" со степенью 0.75.

2. Если угол равен нулю И угловая скорость равна нулю тогда скорость равна нулю

Реальное значение угла принадлежит нечеткому множеству "ноль" со степенью 0.75.

Здесь представлена лингвистическая переменная "угловая скорость", отображаемая нечетким множеством "ноль" и реальная угловая скорость.

3. Если угол равен нулю И угловая скорость равна нулю тогда скорость равна нулю
 

Реальное значение угла принадлежит нечеткому множеству "ноль" со степенью 0.75.

Реальное значение угловой скорости принадлежит нечеткому множеству "ноль" со степенью 0.4.

4. Если угол равен нулю И угловая скорость равна нулю тогда скорость равна нулю

Так как две части условий правила объединяются по И, то вычисляем min (0.75, 0.4) = 0.4 и уменьшаем нечеткое множество "ноль" для переменной  "скорость" до этого уровня (в соответствии с рассматриваемым правилом).

Только четыре правила приводят к результату. Объединим их в одно решение.

Таким образом результатом правила

Если угол равен нулю И угловая скорость равна нулю тогда скорость равна нулю

является:

Результатом правила

Если угол равен нулю И угловая скорость отрицательная низкая тогда скорость - отрицательная низкая

является:

Результатом правила

Если угол положительный малый И угловая скорость равна нулю тогда скорость - положительная низкая

является:

Результатом правила

Если угол положительный малый И угловая скорость отрицательная низкая тогда скорость равна нулю

является:

Объединение этих четырех результатов дает общее решение:

Таким образом, решением контроллера нечеткой логики является нечеткое множество (для скорости). Далее необходимо выбрать одно значение для представления конечного выходного значения. Существует несколько эвристических методов (методов дефаззификации), один из которых, например, предполагает выбирать в качестве конечного значения центр тяжести нечеткого множества:

Вся данная процедура получения решения называется контроллером Мамдани  (Mamdani controller).

Приложения нечеткой логики

Во-первых, необходимо определить в общих словах области применения нечеткого управления.

Использование нечеткого управления рекомендуется...

  • для очень сложных процессов, когда не существует простой математической модели
  • для нелинейных процессов высоких порядков
  • если должна производиться обработка (лингвистически сформулированных) экспертных знаний
Использование нечеткого управления не рекомендуется, если...
  • приемлемый результат может быть получен с помощью общей теории управления
  • уже существует формализованная и адекватная математическая модель
  • проблема не разрешима
Сейчас приведем несколько примеров, где реально применяется нечеткое управление.

Ниже приведены несколько примеров того, как реально применяется нечеткая логика:

  • Автоматическое управление воротами плотины на гидроэлектростанциях
    (Tokio Electric Pow.)
  • Упрощенное управление роботами
    (Hirota, Fuji Electric, Toshiba, Omron)
  • Наведение телекамер  при трансляции спортивных событий
    (Omron)
  • Замена экспертов при анализе работы биржи
    (Yamaichi, Hitachi)
  • Предотвращение нежелательных температурных флуктуаций в системах кондиционирования воздуха
    (Mitsubishi, Sharp)
  • Эффективное и стабильное управление автомобильными двигателями
    (Nissan)
  • Управление экономичной скоростью автомобилей
    (Nissan, Subaru)
  • Улучшение эффективности и оптимизация промышленных систем управления
    (Aptronix, Omron, Meiden, Sha, Micom, Mitsubishi, Nisshin-Denki, Oku-Electronics)
  • Позиционирование приводов в производстве полупроводников  wafer-steppers
    (Canon)
  • Оптимизированное планирование автобусных расписаний
    (Toshiba, Nippon-System, Keihan-Express)
  • Системы архивации документов
    (Mitsubishi Elec.)
  • Системы прогнозирования  землетрясений
    (Inst. of Seismology Bureau of Metrology, Japan)
  • Медицина: диагностика рака
    (Kawasaki Medical School)
  • Сочетание методов нечеткой логики и нейронных сетей
    (Matsushita)
  • Распознавание рукописных символов в карманных компьютерах (записных книжках)
    (Sony)
  • Распознавание движения изображения в видеокамерах
    (Canon, Minolta)
  • Автоматическое управление двигателем пылесосов с автоматическим определением типа поверхности и степени засоренности
    (Matsushita)
  • Управление освещенностью в камкодерах
    (Sanyo)
  • Компенсация вибраций в камкодерах
    (Matsushita)
  • Однокнопочное управление стиральными машинами
    (Matsushita, Hitatchi)
  • Распознавание  рукописных текстов, объектов, голоса
    (CSK, Hitachi, Hosai Univ., Ricoh)
  • Вспомагательные средства полета вертолетов
    (Sugeno)
  • Моделирование судебных процессов
    (Meihi Gakuin Univ, Nagoy Univ.)
  • САПР  производственных процессов
    (Aptronix, Harima, Ishikawajima-OC Engeneering)
  • Управление скоростью линий и температурой при производстве стали
    (Kawasaki Steel, New-Nippon Steel, NKK)
  • Управление метрополитенами для повышения удобства вождения, точности остановки и экономии энергии
    (Hitachi)
  • Оптимизация потребления бензина в автомобилях
    (NOK, Nippon Denki Tools)
  • Повышение чувствительности и эффективности управления лифтами
    (Fujitec, Hitachi, Toshiba)
  • Повышение безопасности ядерных реакторов
    (Hitachi, Bernard, Nuclear Fuel div.)
Здесь представлены некоторые проекты, разработанные нашей лабораторией.

Пример: Система кондиционирования воздуха Mitsubishi

Постановка задачи:
Промышленная система кондиционирования воздуха, обеспечивающая гибкую реакцию на изменения окружающих условий
Реализация:
  • 50 правил
  • 6 лингвистических переменных
  • Разрешение: 8 бит
  • Входные значенияs: температура в комнате, температура стены и мгновенные значения этих сигналов
Разработка:
  • 4 дня на создание прототипа
  • 20 дней на тестирование и интеграцию
  • 80 дней на оптимизацию на реальных тестовых объектах
  • Реализация в виде чисто программного комплекса на стандартном микроконтроллере
Результаты:
  • Уменьшение времени начала работы до 40 процентов к стандартному решению
  • Поддержка температуры при наличии возмущающих факторов (открытые окна и т.п.) существенно улучшена
  • Небольшое требуемое число датчиков
  • Экономия энергии - 24 процента

Пример: Камкодер со стабилизатором изображения, Matsushita

Основные функции:

Сохранение моментального кадра
Деление картинки на 4 части по 30 точек в каждой. Сохранение сигналов от этих точек
Получение следующего кадра и сравнение
Сравнение сигналов от нового кадра с сигналами сохраненного
Стабилизация или обновление соответственно
Если имеются небольшие равно ориентированные  отклонения (= вибрации), тогда передать сохраненный кадр.
Если имеются большие  (= предполагаемые) или не равно ориентированные отклонения (= движенния), тогда передать и сохранить новый кадр.

Блок-схема:

Заключение

В заключении данного введения в основы нечеткой логики и нечеткого управления авторы надеются, что краткий курс оказался полезен и все объяснения и примеры как-то помогут Вам в дальнейшем.

Заглядывайте на этот web-сервер, где возможно появится дальнейшая информация по нечеткой логике. (Последняя редакция: декабрь 1996).