Нечеткая система управления — это система управления , основанная на нечеткой логике — математической системе, которая анализирует аналоговые входные значения с точки зрения логических переменных, принимающих непрерывные значения от 0 до 1, в отличие от классической или цифровой логики, которая работает с дискретными значениями 1 или 0 (истина или ложь соответственно). [1] [2]
Нечеткая логика широко используется в управлении машинами. Термин «нечеткий» относится к тому факту, что задействованная логика может иметь дело с концепциями, которые не могут быть выражены как «истина» или «ложь», а скорее как «частично истина». Хотя альтернативные подходы, такие как генетические алгоритмы и нейронные сети, могут во многих случаях работать так же хорошо, как нечеткая логика, нечеткая логика имеет то преимущество, что решение проблемы может быть выражено в терминах, которые могут понять операторы-люди, так что их опыт может быть использован при проектировании контроллера. Это упрощает механизацию задач, которые уже успешно выполняются людьми. [1]
Нечеткая логика была предложена Лотфи А. Заде из Калифорнийского университета в Беркли в статье 1965 года. [3] Он развил свои идеи в статье 1973 года, в которой было введено понятие «лингвистических переменных», которое в этой статье приравнивается к переменной, определяемой как нечеткое множество. Затем последовали другие исследования, с первым промышленным применением, цементной печью, построенной в Дании, вступившей в строй в 1976 году. [4]
Нечеткие системы изначально были реализованы в Японии .
Работа над нечеткими системами ведется также в Северной Америке и Европе, хотя и в меньших масштабах, чем в Японии.
Исследования и разработки также продолжаются в области нечетких приложений в программном обеспечении, в отличие от прошивки , проектирования, включая нечеткие экспертные системы и интеграцию нечеткой логики с нейронными сетями и так называемыми адаптивными « генетическими » программными системами, с конечной целью создания «самообучающихся» систем нечеткого управления. [7] Эти системы могут использоваться для управления сложными, нелинейными динамическими объектами, например, человеческим телом. [5] [7] [8]
Входные переменные в системе нечеткого управления в общем случае отображаются наборами функций принадлежности, подобными этому, известными как «нечеткие множества». Процесс преобразования четкого входного значения в нечеткое значение называется «фаззификацией». Подход на основе нечеткой логики рассматривался путем проектирования двух нечетких систем, одной для угла направления ошибки, а другой для управления скоростью. [9]
Система управления может также иметь различные типы переключающих или «ВКЛ-ВЫКЛ» входов наряду с аналоговыми входами, и такие переключающие входы, конечно, всегда будут иметь истинностное значение, равное либо 1, либо 0, но схема может иметь с ними дело как с упрощенными нечеткими функциями, которые принимают либо одно, либо другое значение.
При наличии « сопоставлений » входных переменных с функциями принадлежности и значениями истинности микроконтроллер принимает решения о том, какое действие следует предпринять, на основе набора «правил», каждое из которых имеет вид :
ЕСЛИ температура тормозов высокая И скорость не очень высокая ЗАТЕМ давление тормозов немного уменьшается.
В этом примере две входные переменные — «температура тормоза» и «скорость», значения которых определены как нечеткие множества. Выходная переменная «давление тормоза» также определяется нечетким множеством, которое может иметь такие значения, как «статичный» или «слегка увеличенный» или «слегка уменьшенный» и т. д.
Нечеткие контроллеры концептуально очень просты. Они состоят из входного этапа, этапа обработки и выходного этапа. Входной этап сопоставляет датчик или другие входы, такие как переключатели, дисковые переключатели и т. д., с соответствующими функциями принадлежности и значениями истинности. Этап обработки вызывает каждое соответствующее правило и генерирует результат для каждого, затем объединяет результаты правил. Наконец, выходной этап преобразует объединенный результат обратно в определенное выходное значение управления.
Наиболее распространенная форма функций принадлежности — треугольная, хотя трапециевидные и колоколообразные кривые также используются, но форма, как правило, менее важна, чем количество кривых и их расположение. От трех до семи кривых обычно достаточно, чтобы охватить требуемый диапазон входного значения или «вселенную дискурса » на нечетком жаргоне.
Как обсуждалось ранее, этап обработки основан на наборе логических правил в форме операторов ЕСЛИ-ТО, где часть ЕСЛИ называется «антецедент», а часть ТО называется «консеквент». Типичные системы нечеткого управления имеют десятки правил.
Рассмотрим правило для термостата:
ЕСЛИ (температура «низкая») ТО включите (нагреватель «высокий»)
Это правило использует истинное значение входа "температура", которое является некоторым истинным значением "холодно", для генерации результата в нечетком множестве для выхода "нагреватель", который является некоторым значением "высоко". Этот результат используется с результатами других правил для окончательной генерации четкого составного выхода. Очевидно, что чем больше истинное значение "холодно", тем выше истинное значение "высоко", хотя это не обязательно означает, что сам выход будет установлен на "высоко", поскольку это только одно правило из многих. В некоторых случаях функции принадлежности могут быть изменены "хеджами", которые эквивалентны наречиям. Обычные хеджы включают "около", "рядом", "близко к", "приблизительно", "очень", "немного", "слишком", "чрезвычайно" и "немного". Эти операции могут иметь точные определения, хотя определения могут значительно различаться между различными реализациями. "Очень", например, возводит в квадрат функции принадлежности; поскольку значения принадлежности всегда меньше 1, это сужает функцию принадлежности. «Чрезвычайно» возводит значения в куб, чтобы добиться большего сужения, в то время как «несколько» расширяет функцию, извлекая квадратный корень.
На практике нечеткие наборы правил обычно имеют несколько антецедентов, которые объединяются с помощью нечетких операторов, таких как AND, OR и NOT, хотя определения, как правило, различаются: AND, в одном популярном определении, просто использует минимальный вес всех антецедентов, в то время как OR использует максимальное значение. Существует также оператор NOT, который вычитает функцию принадлежности из 1, чтобы получить «дополнительную» функцию.
Существует несколько способов определения результата правила, но одним из наиболее распространенных и простых является метод вывода «максимум-минимум» , в котором выходной функции принадлежности присваивается значение истинности, сгенерированное предпосылкой.
Правила могут быть решены параллельно в оборудовании или последовательно в программном обеспечении. Результаты всех сработавших правил «дефаззифицируются» до четкого значения одним из нескольких методов. Теоретически их десятки, каждый из которых имеет различные преимущества или недостатки.
Метод «центроида» очень популярен, в котором «центр масс» результата обеспечивает четкое значение. Другой подход — метод «высоты», который берет значение наибольшего вкладчика. Метод центроида отдает предпочтение правилу с выходом наибольшей площади, в то время как метод высоты, очевидно, отдает предпочтение правилу с наибольшим выходным значением.
Диаграмма ниже демонстрирует вывод max-min и дефаззификации центроида для системы с входными переменными "x", "y" и "z" и выходной переменной "n". Обратите внимание, что "mu" является стандартной номенклатурой нечеткой логики для "значения истинности":
Обратите внимание, как каждое правило предоставляет результат в виде истинного значения конкретной функции принадлежности для выходной переменной. В центроидной дефаззификации значения объединяются с помощью ИЛИ, то есть используется максимальное значение, а значения не суммируются, а затем результаты объединяются с использованием вычисления центроида.
Проектирование нечеткой системы управления основано на эмпирических методах, в основном методическом подходе к пробам и ошибкам . Общий процесс выглядит следующим образом:
В качестве общего примера рассмотрим проект нечеткого контроллера для паровой турбины. Блок-схема этой системы управления выглядит следующим образом:
Входные и выходные переменные отображаются в следующий нечеткий набор:
-где:
N3: Большой минус. N2: Умеренно отрицательный. N1: Небольшой минус. З: Ноль. P1: Небольшой положительный результат. P2: Умеренно положительный. P3: Большой положительный результат.
В набор правил входят такие правила, как:
правило 1: ЕСЛИ температура низкая И давление слабое, ТОГДА дроссельная заслонка - P3.
правило 2: ЕСЛИ температура низкая И давление низкое, ТОГДА дроссельная заслонка — P2.
правило 3: ЕСЛИ температура низкая И давление в порядке, ТОГДА дроссельная заслонка — Z.
правило 4: ЕСЛИ температура низкая И давление сильное, ЗАТЕМ дроссельная заслонка N2.
На практике контроллер принимает входные данные и сопоставляет их с их функциями принадлежности и значениями истинности. Затем эти сопоставления вводятся в правила. Если правило определяет отношение И между сопоставлениями двух входных переменных, как в примерах выше, то минимальное из двух используется в качестве объединенного значения истинности; если указано ИЛИ, то используется максимальное. Выбирается соответствующее выходное состояние и ему назначается значение принадлежности на уровне истинности предпосылки. Затем значения истинности дефаззифицируются. Например, предположим, что температура находится в состоянии «холодно», а давление находится в состояниях «низко» и «нормально». Значения давления гарантируют, что срабатывают только правила 2 и 3:
Затем два выходных сигнала дефаззифицируются с помощью центроидной дефаззификации:
__________________________________________________________________ | Z P2 1 -+ * * | * * * * | * * * * | * * * * | * 222222222 | * 22222222222 | 333333332222222222222 +---33333333222222222222222--> ^ +150 __________________________________________________________________
Выходное значение отрегулирует дроссельную заслонку, а затем цикл управления начнется снова для генерации следующего значения.
Рассмотрим реализацию простого контроллера обратной связи с помощью микроконтроллера:
Нечеткое множество определяется для входной переменной ошибки «e» и производного изменения ошибки «delta», а также «выходного» значения следующим образом:
LP: большой положительный SP: небольшой положительный ЗЭ: ноль SN: небольшой отрицательный LN: большой отрицательный
Если погрешность находится в диапазоне от -1 до +1, а используемый аналого-цифровой преобразователь имеет разрешение 0,25, то нечеткое множество входной переменной (которое в данном случае также применяется к выходной переменной) можно очень просто описать в виде таблицы, в которой значения ошибки/дельты/выхода находятся в верхней строке, а значения истинности для каждой функции принадлежности — в строках ниже:
_______________________________________________________________________ -1 -0,75 -0,5 -0,25 0 0,25 0,5 0,75 1 _______________________________________________________________________ мю(ЛП) 0 0 0 0 0 0 0,3 0,7 1 мю(СП) 0 0 0 0 0,3 0,7 1 0,7 0,3 мю(ЗЕ) 0 0 0,3 0,7 1 0,7 0,3 0 0 мю(СН) 0,3 0,7 1 0,7 0,3 0 0 0 0 мю(ЛН) 1 0,7 0,3 0 0 0 0 0 0 _______________________________________________________________________ —или в графической форме (где каждый «X» имеет значение 0,1):
ЛН СН ЗЕ СП ЛП +-------------------------------------------------- ------------------+ | |-1.0 | XXXXXXXXXX XXX : : : |-0,75 | XXXXXXX XXXXXXX : : : |-0.5 | XXX XXXXXXXXXX XXX : : |-0.25 | : XXXXXXX XXXXXXX : : | 0.0 | : XXX XXXXXXXXXX XXX : | 0.25 | : : XXXXXXX XXXXXXX : | 0.5 | : : XXX XXXXXXXXXX XXX | 0.75 | : : : XXXXXXX XXXXXXX | 1.0 | : : : XXX XXXXXXXXXX | | | +-------------------------------------------------- ------------------+
Предположим, что эта нечеткая система имеет следующую базу правил:
Правило 1: ЕСЛИ e = ZE И дельта = ZE, ТОГДА выход = ZE правило 2: ЕСЛИ e = ZE И delta = SP, ТО выход = SN правило 3: ЕСЛИ e = SN И delta = SN ТО выход = LP правило 4: ЕСЛИ e = LP ИЛИ delta = LP, ТО выход = LN
Эти правила типичны для приложений управления, в которых антецеденты состоят из логической комбинации сигналов ошибки и ошибки-дельта, а консеквент — это выход команды управления. Выходы правил могут быть дефаззифицированы с использованием дискретного вычисления центроида:
СУММА( I = 1 ДО 4 ОТ ( mu(I) * выход(I) ) ) / СУММА( I = 1 ДО 4 ОТ mu(I) )
Теперь предположим, что в определенный момент времени:
е = 0,25 дельта = 0,5
Тогда это дает:
________________________ е дельта ________________________ мю(ЛП) 0 0,3 мю(СП) 0,7 1 мю(ЗЭ) 0,7 0,3 мю(СН) 0 0 мю(ЛН) 0 0 ________________________
Подставляя это в правило 1, получаем:
Правило 1: ЕСЛИ e = ZE И дельта = ZE, ТОГДА выход = ZE мю(1) = МИН( 0,7, 0,3 ) = 0,3 выход(1) = 0
-- где:
Другие правила гласят:
правило 2: ЕСЛИ e = ZE И delta = SP, ТО выход = SN мю(2) = МИН( 0,7, 1 ) = 0,7 выход(2) = -0,5
правило 3: ЕСЛИ e = SN И delta = SN ТО выход = LP мю(3) = МИН( 0,0, 0,0 ) = 0 выход(3) = 1
правило 4: ЕСЛИ e = LP ИЛИ delta = LP, ТО выход = LN мю(4) = МАКС( 0,0, 0,3 ) = 0,3 выход(4) = -1
Вычисление центроида дает:
— для конечного контрольного вывода. Просто. Конечно, самое сложное — выяснить, какие правила на самом деле работают правильно на практике.
Если у вас возникли проблемы с вычислением уравнения центроида, помните, что центроид определяется путем суммирования всех моментов (местоположение, умноженное на массу) вокруг центра тяжести и приравнивания суммы к нулю. Так что если — центр тяжести, — местоположение каждой массы, — каждая масса, то это дает:
В нашем примере значения mu соответствуют массам, а значения X — местоположению масс (однако mu «соответствует массам» только в том случае, если начальные «массы» выходных функций одинаковы/эквивалентны. Если они не одинаковы, т. е. некоторые из них представляют собой узкие треугольники, а другие — широкие трапеции или треугольники с выступами, то масса или площадь выходной функции должны быть известны или рассчитаны. Именно эта масса затем масштабируется по mu и умножается на ее местоположение X_i).
Эту систему можно реализовать на стандартном микропроцессоре, но сейчас доступны специализированные нечеткие чипы. Например, Adaptive Logic INC из Сан-Хосе, Калифорния, продает «нечеткий чип» AL220, который может принимать четыре аналоговых входа и генерировать четыре аналоговых выхода. Блок-схема чипа показана ниже:
+---------+ +-------+ аналог --4-->| аналог | | мультиплекс / +--4--> аналог в | мультиплекс | | SH | выход +----+----+ +-------+ | ^ В | +------------+ +--+--+ | АЦП / защелка | | ЦАП | +------+------+ +-----+ | ^ | | 8 +-----------------------------+ | | | | В | | +-----------+ +-------------+ | +-->| нечеткий фильтр | | дефаззификатор +--+ +-----+-----+ +-------------+ | ^ | +------------+ | | | правило | | +->| процессор +--+ | (50 правил) | +------+------+ | +------+------+ | параметр | | память | | 256 х 8 | +-------------+ АЦП: аналого-цифровой преобразователь ЦАП: цифро-аналоговый преобразователь SH: выборка/удержание
В качестве примера рассмотрим антиблокировочную тормозную систему , управляемую микроконтроллером. Микроконтроллер должен принимать решения на основе температуры тормозов , скорости и других переменных в системе.
Переменная «температура» в этой системе может быть подразделена на ряд «состояний»: «холодно», «прохладно», «умеренно», «тепло», «горячо», «очень горячо». Переход из одного состояния в другое трудноопределим.
Можно задать произвольный статический порог, чтобы отделить «теплый» от «горячего». Например, ровно при 90 градусах тепло заканчивается, а горячее начинается. Но это приведет к прерывистому изменению, когда входное значение превысит этот порог. Переход не будет плавным, как это требуется в ситуациях торможения.
Обойти это можно, сделав состояния нечеткими . То есть, позволить им постепенно переходить из одного состояния в другое. Чтобы сделать это, должна быть установлена динамическая связь между различными факторами.
Начнем с определения состояний входной температуры с использованием «функций принадлежности»:
При такой схеме состояние входной переменной больше не прыгает резко из одного состояния в другое. Вместо этого, при изменении температуры, она теряет значение в одной функции принадлежности, приобретая значение в следующей. Другими словами, ее рейтинг в категории холода уменьшается, поскольку она становится более высоко ранжированной в более теплой категории.
В любой выборке временного интервала «истинное значение» температуры тормоза почти всегда будет в некоторой степени частью двух функций принадлежности: например: «0,6 номинальная и 0,4 теплая» или «0,7 номинальная и 0,3 холодная» и т. д.
Приведенный выше пример демонстрирует простое приложение, использующее абстракцию значений из нескольких значений. Это представляет только один вид данных, однако, в данном случае, температуру.
Добавление дополнительной сложности к этой тормозной системе может быть осуществлено за счет дополнительных факторов, таких как тяга , скорость, инерция , установленных в динамических функциях, в соответствии с разработанной нечеткой системой. [10]
Несмотря на внешний вид, есть несколько трудностей, чтобы дать строгую логическую интерпретацию правил IF-THEN . В качестве примера, интерпретируйте правило как IF (температура «холодная») THEN (нагреватель «высокий») по формуле первого порядка Cold(x)→High(y) и предположим, что r — это вход, такой что Cold(r) ложно. Тогда формула Cold(r)→High(t) истинна для любого t и, следовательно, любое t дает правильное управление при заданном r . Строгое логическое обоснование нечеткого управления дано в книге Гаека (см. Главу 7), где нечеткое управление представлено как теория базовой логики Гаека. [2]
В Gerla 2005 [11] предложен другой логический подход к нечеткому управлению, основанный на нечетком логическом программировании: обозначим через f нечеткую функцию, возникающую из системы правил IF-THEN. Тогда эта система может быть переведена в нечеткую программу P, содержащую ряд правил, заголовок которых - "Good(x,y)". Интерпретация этого предиката в наименее нечеткой модели Эрбрана P совпадает с f. Это дает дополнительные полезные инструменты для нечеткого управления.
Прежде чем система искусственного интеллекта сможет спланировать последовательность действий, необходима некая модель . Для видеоигр модель эквивалентна правилам игры. С точки зрения программирования правила игры реализованы как физический движок , который принимает действие от игрока и вычисляет, является ли действие допустимым. После выполнения действия игра находится в состоянии продолжения. Если цель состоит не только в том, чтобы играть в математические игры, но и в том, чтобы определять действия для приложений реального мира, наиболее очевидным узким местом является отсутствие доступных правил игры. Первым шагом является моделирование домена. Идентификация системы может быть реализована с помощью точных математических уравнений или с помощью нечетких правил . [12]
Использование нечеткой логики и систем ANFIS (адаптивная сетевая система нечеткого вывода) для создания прямой модели для домена имеет много недостатков. [13] Качественное моделирование не способно определить правильное последующее состояние, но система будет только предполагать, что произойдет, если действие будет выполнено. Нечеткое качественное моделирование не может предсказать точные числовые значения, но оно использует неточный естественный язык для предположений о будущем. Оно берет текущую ситуацию плюс действия из прошлого и генерирует ожидаемое последующее состояние игры.
Выходные данные системы ANFIS не предоставляют корректную информацию, а только нечеткую нотацию множества, например [0,0.2,0.4,0]. После преобразования нотации множества обратно в числовые значения точность ухудшается. Это делает нечеткую качественную симуляцию плохим выбором для практических приложений. [14]
Системы нечеткого управления подходят, когда сложность процесса высока, включая неопределенность и нелинейное поведение, и нет точных математических моделей. Успешные применения систем нечеткого управления были зарегистрированы во всем мире, в основном в Японии с пионерскими решениями с 80-х годов.
Некоторые применения, описанные в литературе: