Нечетко-логические модели и алгоритмы
Для описания неопределенностей в задачах автоматического управления используются три метода:
· вероятностный ( стохастический );
· использование нечеткой логики (fuzzy logic );
· хаотические системы.
Более подробно остановимся на втором пункте.
Впервые термин нечеткая логика (fuzzy logic) был введен амерканским профессором не то иранского, не то азербайджанского происхождения (в разных источниках указывается по-разному) Лотфи Заде в 1965 году в работе “Нечеткие множества” в журнале “Информатика и управление”.
Основанием для создания новой теории послужил спор профессора со своим другом о том, чья из жен привлекательнее. К единому мнению они, естественно, :) так и не пришли. Это вынудило Заде сформировать концепцию, которая выражает нечеткие понятия типа “привлекательность” в числовой форме.
Очевидной областью внедрения алгоритмов нечеткой логики являются всевозможные экспертные системы, в том числе:
· нелинейный контроль за процессами ( производство );
· самообучающиеся системы ( или классификаторы ), исследование рисковых и критических ситуаций ;
· распознавание образов;
· финансовый анализ ( рынки ценных бумаг ) ;
· исследование данных ( корпоративные хранилища );
· совершенствование стратегий управления и координации действий, например сложное промышленное производство.
В Японии это направление переживает настоящий бум. Здесь функционирует специально созданная лаборатория Laboratory for International Fuzzy Engineering Research (LIFE). Программой этой организации является создание более близких человеку вычислительных устройств.LIFE объединяет 48 компаний в числе которых находятся: Hitachi, Mitsubishi, NEC, Sharp, Sony, Honda, Mazda, Toyota. Из зарубежных ( не Японских ) участниковLIFEможно выделить: IBM, Fuji Xerox, а также к деятельности LIFE проявляет интерес NASA.
Мощь и интуитивная простота нечеткой логики как методологии разрешения проблем гарантирует ее успешное использование во встроенных системах контроля и анализа информации. При этом происходит подключение человеческой интуиции и опыта оператора.
В отличие от традиционной математики, требующей на каждом шаге моделирования точных и однозначных формулировок закономерностей, нечеткая логика предлагает совершенно иной уровень мышления, благодаря которому творческий процесс моделирования происходит на наивысшем уровне абстракции, при котором постулируется лишь минимальный набор закономерностей.
Нечеткие числа, получаемые в результате “не вполне точных измерений”, во многом аналогичны распределениям теории вероятностей, но свободны от присущих последним недостатков: малое количество пригодных к анализу функций распределения, необходимость их принудительной нормализации, соблюдение требований аддитивности, трудность обоснования адекватности математической абстракции для описания поведения фактических величин. В пределе, при возрастании точности, нечеткая логика приходит к стандартной, Булевой. По сравнению с вероятностным методом, нечеткий метод позволяет резко сократить объем производимых вычислений, что, в свою очередь, приводит к увеличению быстродействия нечетких систем.
Недостатками нечетких систем являются:
· отсутствие стандартной методики конструирования нечетких систем;
· невозможность математического анализа нечетких систем существующими методами;
· применение нечеткого подхода по сравнению с вероятностным не приводит к повышению точности вычислений.
1. Общие положения.
Нечеткая логика является одним из наиболее перспективных направлений современной теории управления. В мире ежегодно выходят сотни книг и десятки специализированных журналов, посвященных, как теории нечеткой логики, так и вопросам ее применения, выпускаются специальные нечеткие контроллеры и микрочипы. Разработано множество программных пакетов, позволяющих реализовывать нечеткие алгоритмы.
В основе нечеткой логики лежит теория нечетких множеств, где функция принадлежности элемента множеству не бинарна (да/нет), а может принимать любое значение в диапазоне 0-1. Это дает возможность определять понятия, нечеткие по самой своей природе: "хороший", "высокий", "слабый" и т.д. Нечеткая логика позволяет выполнять над такими величинами весь спектр логических операций: объединение, пересечение, отрицание и др. Нечеткая логика дает возможность строить базы знаний и экспертные системы нового поколения, способные хранить и обрабатывать неточную информацию.
Другая область применения нечеткой логики - электронные системы различного назначения, от систем оценки глобального загрязнения атмосферы и предсказания землетрясений до АСУ заводских цехов и технологических процессов.
По сравнению с традиционными методами анализа и вероятностным подходом методы нечеткого управления позволяют быстро производить анализ задачи и получать результаты с высокой точностью. Характерными чертами алгоритмов решения задач методами нечеткой логики является наличие некоторого набора утверждений (правил), каждое правило состоит из совокупностей событий (условий) и результатов (выводов).
После постановки задачи в терминах правил, состоящих из условий и выводов, производится их обработка по специальным алгоритмам. Идея обработки состоит в преобразовании (фазификация — fz) нечетких значений условий и выводов в количественную форму. Для этого используются различного рода функции принадлежности: треугольные, трапециидальные, колоколообразные и другие. Выбор типа функции зависит от решаемой задачи. Операция fz, по аналогии с интегральными преобразованиями Лапласа, Фурье и другими, может быть интерпретирована, как переход в другое пространство. В новом пространстве производится обработка нечетких переменных с использованием логических операций. В теории управления наиболее часто используется принцип максимина (алгоритм Мамдани). Затем полученный результат логической обработки с использованием обратного преобразования (дефазификации — dfz) переводится в исходное пространство числовых переменных.
Основные преимущества применения нечеткой логики для решения задач автоматизации по сравнению с традиционными подходами теории автоматического управления состоят в следующем:
· значительное повышение быстродействия процессов управления при использовании нечетких контроллеров;
· возможность создания систем управления для объектов, алгоритмы функционирования которых трудно формализуемы методами традиционной математики;
· возможность синтеза адаптивных регуляторов на базе классических ПИД регуляторов;
· повышение точности алгоритмов фильтрации случайных возмущений при обработке информации от датчиков;
· снижение вероятностей ошибочных решений при функционировании управляющих алгоритмов, что позволяет увеличить срок службы технологического оборудования.
Традиционные системы автоматизированного управления технологическими процессами строятся на основе линейных моделей объектов, построенных по некоторым критериям оптимальности. Полученные таким образом регуляторы являются оптимальными и устойчивыми по отношению к заложенным в их основу моделям реальных технологических процессов - объектов управления и регулирования. Однако часто методы упрощения и линеаризации, применяемые к нелинейным, динамическим, нечетко определенным объектам не дают ожидаемых результатов устойчивого управления и желаемого качества управления реальным технологическим процессом. С увеличиением сложности структуры объекта и выполняемых им функций становится все сложнее использовать классические методы управления.
Одним из альтернативных методов построения систем управления и регулирования объектами, нечетко определенными с точки зрения классической теории (для которых не получена аналитическая модель), является использование так называемых контроллеров нечеткой логики.
Данный подход предполагает использование знаний экспертов об объекте управления, представляемых в виде правил, выраженных на естественном языке. При описании объекта используются лингвистические переменные, определяющие состояние объекта. Дальнейшие процедуры формализации направлены на получение так называемых нечетких множеств, определяющих параметры объекта управления. Дальнейший расчет управления производится с помощью применения бинарных операций - t-норм - к нечетким множествам. t-нормы, или триангулярные нормы, реализуют логические операции "И", "ИЛИ", "НЕ", а также операции взятия минимума, максимума над нечеткими множествами. Последним этапом является обратное преобразование управления, полученного в виде нечеткого множества, в реальное значение выхода регулятора. Базовыми типами такого рода регуляторов являются контроллеры Мамдани и Суджено.
На основе описанного подхода реализован простейший регулятор управления технологическим процессом распределения тепла на центральных тепловых пунктах (ЦТП) города Кирова. Построена базовая модель регулятора, реализующего набор из трех правил. Показаны основные параметры, необходимые для настройки регуляторов, отмечены общие особенности данного подхода с классическими методами, реализующими ПИ, ПИД-регуляторы. Реализованы алгоритмы расчета управления на основе алгебры нечетких множеств. Получены экспериментальные зависимости, определяющие устойчивость системы управления, выявлены возмущающие факторы, влияющие на характер переходных процессов в объекте управления.
Перспективность использования данного метода определяется такими факторами, как достаточная простота настройки на объект управления, возможность учесть различные недетерминированные возмущения и параметры объекта, использовать для описания технологических и управленческих целей и критериев качества управления единый подход.
1.1. Постановка задачи.
Когда Вы управляете автомобилем, двигаясь в плотном городском потоке, Вы заняты разгоном, торможением, маневрированием, соблюдением правил движения и т.д. Если Вас спросить в этот момент, что вы думаете о температуре Ваших тормозов или как Вам смотрится давление масла в гидроусилителе, Вы вряд ли ответите что-то определенное. Вы заняты процессом движения. Все агрегаты автомобиля интересуют Вас постольку, поскольку они способствуют этому процессу. Или не способствуют. У вас просто нет ни времени, ни возможности отвлекаться на детали.
Иными словами, рассматривая Вашу поездку с точки зрения системы, можно сказать, что Вас в большей степени волнуют принципы действия этой системы, то есть насколько способен Ваш автомобиль доставить Вас из точки А в точку Б за заданное время и при заданных известных условиях. И в меньшей степени волнует конструкция этой системы, то есть то, каким способом автомобиль решает эту задачу.
При более детальном изучении вопроса Вы можете заметить, что в подавляющем большинстве задач, которые Вы решаете, входные условия и критерии оценок непрерывно изменяются.
Если уж вернуться к примеру автомобиля, то когда Вы прикидываете расход топлива при езде по городу (целевая функция), Вы строите утверждения примерно так:
· "обычно я двигаюсь по городу из точки А в точку Б со скоростью 60 км/час", подразумевая при этом, что в некоторых местах скорость выше, а в других - близка к нулевой;
· "при этом обороты двигателя примерно 2500 об/мин", понимая, что на светофорах это холостой ход, а при разгоне - близки к максимальным;
· "движение обычно происходит на третьей передаче", хотя знаете, что к вечеру у Вас затекает рука от непрерывных переключений.
· и так далее...
В результате вы замеряете средний расход топлива в литрах на 100 км и обнаруживаете, что он существенно отличается от паспортных значений. Вас это отличие не устраивает, но как решить эту проблему ?
Вы допускаете, что Вам в принципе не нужен ответ с точностью до миллилитра. Вам важно просто минимизировать целевую функцию. Иными словами Вы можете для себя определить некоторую степень точности решения задачи, соблюдение которой Вас устроит.
Если Вы зададитесь целью свести значение целевой функции (расхода топлива) к минимуму, причем сделать это, не прибегая к созданию системы, по цене сравнимой со стоимостью автомобиля, Вам понадобится инструмент, который может решать такую задачу при непрерывно меняющихся входных значениях и который может легко подстраиваться под изменение оценочных критериев (например, движение в городе/на трассе). Причем инструмент должен быть прост в управлении и понятен Вам без долгого изучения специальных дисциплин.
1.2. Fuzzy thinking. Системы, основанные на принципах.
Прежде, чем приступить к описанию конкретных пакетов, необходимо иметь в виду следующее обстоятельство: пути решения каждой конкретной задачи могут быть весьма разнообразны. Современный математический аппарат предоставляет целый спектр методов, приемов и инструментов для решения практически любой задачи. Все они воплощены в виде алгоритмов в разнообразных программных продуктах.
Приступая к решению очередной задачи и выбирая для нее подходящий "молоток", Вы беспокоитесь не только о самом факте существования решения, но и о эффективности собственно "молотка", то есть о том, за какое время и с какими затратами задача будет решаться.
Существующие подходы к эффективному решению задач таковы:
1. Если Вы знаете правила, по которым действует объект Вашего внимания, вы можете их обобщить и свести в некоторую систему, действующую и генерирующую выводы по схеме "если - то - иначе". Такой подход "на правилах" реализован, например, в техническом анализе и успешно применяется достаточно давно.
2. Если Вы правил поведения объекта не знаете, но подразумеваете их присутствие, то вы создаете систему, которая вначале обучается на некотором множестве примеров (представленных в виде "набор входных значений - критерии оценки - правильные выводы"), а затем адекватно строит выводы на новых входных данных. Такой подход "на примерах" реализован в применении нейросетей и показывает высокие результаты точности оценок и прогнозов.
3. Если Вы не знаете ни правил поведения объекта, ни того, известны ли они вообще и могут ли быть получены, вы пытаетесь смоделировать объект, применяя известные Вам правила и зависимости, что называется, "по аналогии", а затем делаете выводы о том, насколько объект соответствует модели. Такой подход "на моделях" реализован в современной "теории хаоса" и позволяет оценивать события, качественно изменяющиеся за малые промежутки времени.
4. Если правил, примеров и моделей достаточно много, возникают принципы действия объекта - "правила взаимодействия правил (примеров, моделей и т.д.)". То есть Вы можете оценивать и управлять объектом не только на микро-уровне (правила), но и на макро-уровне (принципы). Эти принципы также можно обобщать и сводить к некоторым системам. Этот подход "на принципах" реализован с помощью применения fuzzy-математики в разнообразных инструментальных пакетах: от несложных электронных таблиц до совершенных экспертных систем.
Решение конкретной задачи предполагает комбинации перечисленных подходов.
Коротко перечислим отличительные преимущества fuzzy-систем по сравнению с прочими :
· возможность оперировать входными данными, заданными нечетко: например, непрерывно изменяющиеся во времени значения (динамические задачи), значения, которые невозможно задать однозначно (результаты статистических опросов, рекламные компании и т.д.);
· возможность нечеткой формализации критериев оценки и сравнения: оперирование критериями "большинство", "возможно", предпочтительно" и т.д.;
· возможность проведения качественных оценок как входных данных, так и выводимых результатов: вы оперируете не только собственно значениями данных, но их степенью достоверности (не путать с вероятностью!) и ее распределением;
· возможность проведения быстрого моделирования сложных динамических систем и их сравнительный анализ с заданной степенью точности: оперируя принципами поведения системы, описанными fuzzy-методами, вы во-первых, не тратите много времени на выяснение точных значений переменных и составление уравнений, которые их описывают, во-вторых, можете оценить разные варианты выходных значений.
Математический аппарат, предоставляющий такие возможности, детально описан в специальной литературе как комбинация множественных и вероятностных приемов.
В программных пакетах и системах этот аппарат реализован в полной мере, но внешне не виден, спрятан "за кадром", что делает процесс освоения этих инструментов более доступным и интуитивно понятным.
2. Базовые понятия нечеткой логики
Вспомните прогноз погоды на любом из телевизионных каналов: завтра температура воздуха +5 градусов С, возможен дождь. В этом случае даже профессиональные синоптики не могут точно сказать будет дождь или нет. Это и есть проявление нечеткой логики: погода завтра может быть в данном случае как просто пасмурной, так и дождливой: события здесь предсказываются с некоторой долей уверенности (рангом).
Рассмотрим теперь другой пример, связанный с возрастом человека (рис.2.1). До 16 лет нельзя однозначно утверждать, что человек молодой (например, 15-летие относится к термину молодой с рангом около 0,9 ). Зато диапазону от 16 до 30 лет можно смело присвоить ранг 1, т.е. человек в этом возрасте молодой. После 30 лет человек вроде уже не молодой, но еще и не старый, здесь принадлежность (ранг) термина молодой возрасту будет принимать значения в интервале от 0 до 1. И чем больше возраст человека, тем мень ше становится его принадлежность к молодым, т.е. ранг будет стремиться к 0.
Рис.2.1. Нечеткое множество для термина молодой.
Рассуждая таким образом, было получено нечеткое множество, описывающее понятие молодости для всего диапазона возрастов человека. Если ввести остальные термины (например, очень молодой, старый и т.д.) , то можно охарактеризовать такую переменную как возраст, состоящую из нескольких нечетких множеств и полностью перекрывающую весь жизненный период.
К нечетким множествам можно применять следующие операции:
1.объединение
2.пересечение
3.дополнение
4.концентрация
5.размывание (или размытие)
Фаззификация - сопоставление множества значений х ее функции принадлежности М(х), т.е. перевод значений х в нечеткий формат (пример с термином молодой).
Дефаззификация - процесс, обратный фаззификации.
Все системы с нечеткой логикой функционируют по одному принципу: показания измерительных приборов фаззифицируются (переводятся в нечеткий формат), обрабатываются (см. ниже), дефаззифицируются и в виде привычных сигналов подаются на исполнительные устройства.
Степень принадлежности - это не вероятность , т.к. неизвестна функция распределения , нет повторяемости экспериментов. Так, если взять из рассмотренного ранее примера прогноза погоды два взаимоисключающих события: будет дождь и не будет и присвоить им некоторые ранги, то сумма этих рангов необязательно будет равна 1, но если равенство все-таки есть, то нечеткое множество считается нормированным. Значения функции принадлежности M(x) могут быть взяты только из априорных знаний , интуиции (опыта) , опроса экспертов.
В нечеткой логике вводится понятие лингвистической переменной, значениями которой являются не числа , а слова естественного языка , называемые термами. Например, в случае управления мобильным роботом можно ввести две лингвистические переменные: ДИСТАНЦИЯ (расстояние до помехи) и НАПРАВЛЕНИЕ (угол между продольной осью робота и направлением на помеху).
Рассмотрим лингвистическую переменную ДИСТАНЦИЯ. Значениями ее можно определить термыДАЛЕКО, СРЕДНЯЯ, БЛИЗКО и ОЧЕНЬ БЛИЗКО.Для физической реализации лингвистической переменной необходимо определить точные физические значения термов этой переменной. Пусть переменная ДИСТАНЦИЯ может принимать любое значение из диапазона от нуля до бесконечности. Согласно положениям теории нечетких множеств, в таком случае каждому значению расстояния из указанного диапазона может быть поставлено в соответствие некоторое число от нуля до единицы, которое определяет степень принадлежности данного физического расстояния (допустим 40 см) к тому или иному терму лингвистической переменной ДИСТАНЦИЯ Степень принадлежности определяется так называемой функцией принадлежности М(d), где d-расстояние до помехи. В нашем случае расстоянию 40 см. можно задать степень принадлежности к терму ОЧЕНЬ БЛИЗКО равную 0,7 , а к терму БЛИЗКО– 0,3 (см. рис.2.2.). Конкретное определение степени принадлежности может проходить только при работе с экспертами.
Рис.2.2. Лингвистическая переменная и функция принадлежности.
Переменной НАПРАВЛЕНИЕ, которая может принимать значения в диапазоне от 0 до 360 градусов, зададим термы ЛЕВОЕ, ПРЯМО И ПРАВОЕ.
Теперь необходимо задать выходные переменные. В рассматриваемом примере достаточно одной, которая будет называться РУЛЕВОЙ УГОЛ. Она может содержать термы: РЕЗКО ВЛЕВО, ВЛЕВО, ПРЯМО, ВПРАВО, РЕЗКО ВПРАВО. Связь между входом и выходом запоминается в таблице нечетких правил (рис.2.3.).
Рис.2.3. Таблица нечетких правил.
Каждая запись в данной таблице соответствует своему нечеткому правилу, например:
Если ДИСТАНЦИЯ БЛИЗКО и НАПРАВЛЕНИЕ ПРАВОЕ, тогда РУЛЕВОЙ УГОЛ РЕЗКО ВЛЕВО
Таким образом, мобильный робот с нечеткой логикой будет работать по следующему принципу: данные с сенсоров о расстоянии до помехи и направлении на нее будут фаззифицированы, обработаны согласно табличным правилам, дефаззифицированы и полученные данные в виде управляющих сигналов поступят на привода робота.
Применение традиционной нечеткой логики в современных системах крайне ограниченно следующими факторами:
· как правило, сложная система управления имеет большее количество входов, чем самое заурядное нечеткое приложение;
· добавление входных переменных увеличивает сложность вычислений экспоненциально;
· как следствие предыдущего пункта, увеличивается база правил, что приводит к трудному ее восприятию (напомню, база правил набирается вручную);
· операции в рельном масштабе требуют специального железа.
Исходя из этих причин, Steven Goodridge предлагает использовать систему, обрабатывающую большие данные с помощью нескольких нечетких микроконтроллеров, объединенных вместе. Этот подход позволяет качественно управлять трудно описываемыми нечеткими процессами. Каждый элемент, получившейся нечеткой сети обозначается как нечеткий узел. Теперь, если связать выход одного узла со входом другого, все вычисления заметно упрощаются. Этот подход назван нечетким предвычислением (рис.2.4.).
Рис.2.4. Нечеткие предвычисления.
Кроме того, выходы нечетких узлов можно объединять с помощью мультиплексора - таким образом достигается более гладкий переход между множеством получающихся после обработки базы правил рекомендаций(рис.2.5.).
Рис. 2.5. Нечеткий мультиплексор
3. Общая структура устройств нечеткого логики
3.1. Микроконтроллер нечеткой логики
Общая структура микроконтроллера, использующего нечеткую логику, показана на рис.1. Она содержит в своем составе следующие составные части:
· блок фаззификации;
· базу знаний;
· блок решений;
· блок дефаззификации.
Блок фаззификации преобразует четкие (сrisp) величины, измеренные на выходе объекта управления, в нечеткие величины, описываемые лингвистическими переменными в базе знаний.
Блок решений использует нечеткие условные (if – then) правила, заложенные в базе знаний, для преобразования нечетких входных данных в требуемые управляющие воздействия, которые носят также нечеткий характер.
Блок дефаззификации преобразует нечеткие данные с выхода блока решений в четкую величину, которая используется для управления объектом.
Рис.3.1. Общая структура нечеткого микроконтроллера.
В качестве реальных микроконтроллеров, поддерживающих нечеткую логику выступают 68HC11, 68HC12 фирмы Motorola, MCS-96 фирмы Intel, а также некоторые другие.
3.2. Процессор нечеткой логики
Не так давно (в начале 90-х) компания Adaptive Logic из США (к сожалению на данный момент их сайт отсутствует в интернете) выпустила кристалл, сделанный по аналогово-цифровой технологии. Он позволит сократить сроки конструирования многих встроенных систем управления реального времени, заменив собой традиционные схемы нечетких микроконтроллеров. Аппаратный процессор нечеткой логики второго поколения принимает аналоговые сигналы, переводит их в нечеткий формат, затем, применяя соответствующие правила, преобразует результаты в формат обычной логики и далее – в аналоговый сигнал. Все это осуществляется без внешних запоминающих устройств, преобразователей и какого бы ни было программного обеспечения нечеткой логики.
Этот микропроцессор относительно прост по сравнению с громоздкими программными обеспечениями. Но так как его основу составляет комбинированный цифровой/ аналоговый кристалл, он функционирует на очень высоких скоростях ( частота отсчетов входного сигнала – 10 кГц, а скорость расчета – 500 тыс. правил/с), что во многих случаях приводит к лучшим результатам в системах управления по сравнению с более сложными, но медлительными программами.
Таким образом, этот процессор можно и нужно применять в устройствах, работающих в реальном масштабе времени, где необходима высокая производительность системы (применительно к роботам - это объезд помех типа "сарай" и "яма" и т.п.).