Меню

Что такое fuzzy logic регулятор

Что такое нечеткая логика (fuzzy logic) и как это можно использовать в трейдинге

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

Простое объяснение, что такое fuzzy logic
Нечеткая логика – это уход от категоричности, присущей обычной логической системе, которая использует полярные состояния или степени реальности; это попытка описать не поляризованный черно-белый мир, а более реальный мир со всеми его «50-ю оттенками серого». Это не обычная «истинная или ложная» (1 или 0), булева (двоичная) логика, на которой основаны современные компьютеры. Она в основном обеспечивает основы для приблизительного рассуждения с использованием неточных решений и позволяет использовать лингвистические переменные (записи такого рода, с лингвистическими переменными, используются у нас в моделях авторегрессии и моделях на основе японских подсвечников).

Схематично разницу между нечеткой и булевой логикой можно представить так:

Нечеткая логика была разработана в 1965 году профессором Лотфи Заде в Калифорнийском университете в Беркли. Кстати, Lotfi Askar Zadeh выходец из Азербайджана, и можно сказать, в какой-то мере, наш соотечественник. Первым приложением было выполнение обработки компьютерных данных на основе естественных значений.

Если говорить прямо, состояниями нечеткой логики могут быть не только 1 или 0, но и значения между ними, то есть 0.15, 0.8 и т.д. Например, в двоичной логике, мы можем сказать, что мы имеем стакан горячей воды (то есть 1 или высокий логический уровень) или стакан холодной воды, то есть (0 или низкий логический уровень), но в нечеткой логике, мы можем сказать, что мы имеем стакан теплой воды (ни горячий, ни холодный, то есть где-то между этими двумя крайними состояниями). Четкая логика: да или нет (1, 0). Нечеткая логика: конечно, да; возможно, нет; не могу сказать; возможно да и т.д. В общем вы поняли, это гораздо ближе к реалиям финансового рынка 🙂

Практический пример системы «из жизни» точнее, из быта, на основе нечеткой логики
Давайте разработаем простую систему нечеткого управления для управления работой стиральной машины, так чтобы нечеткая система контролировала процесс стирки, водозабор, время стирки и скорость отжима. Входными параметрами здесь являются объем одежды, степень загрязнения и тип грязи. В то время как объем одежды определял бы водозабор, степень загрязнения в свою очередь определялась бы прозрачностью воды, а тип грязи определялся временем, когда цвет воды остается неизменным.

Читайте также:  Регулятор постоянного расхода воздуха airfix

Первым шагом будет определение лингвистических переменных и терминов. Для входных данных лингвистические переменные приведены ниже:

Тип грязи: (жирное, среднее, не жирное)
Качество грязи: (высокое, среднее, незначительное)

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

Время стирки: (короткий, очень короткий, длинный, средний, очень длинный).

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

Функции принадлежности для типа грязи:

Третий шаг включает разработку набора правил для базы знаний. Ниже приведен набор правил с использованием логики IF-THEN (если-тогда):

IF качество грязи Small И Тип грязи Greasy, THEN Время стирки Long.
IF качество грязи Medium И Тип грязи Greasy, THEN Время стирки Long.
IF качество грязи Large и тип грязи Greasy, THEN Время стирки Very Long.
IF качество грязи Small И Тип грязи Medium, THEN Время стирки Medium.
IF качество грязи Medium И Тип грязи Medium, THEN Время стирки Medium.
IF качество грязи Large и тип грязи Medium, THEN Время стирки Medium.
IF качество грязи Small и тип грязи Non-Greasy, THEN Время стирки Very Short.
IF качество грязи Medium И Тип грязи Non-Greasy, THEN Время стирки Medium.
IF качество грязи Large и тип грязи Greasy, THEN Время стирки Very Short.

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

Fuzzy Logic + Neural Net
Иногда, для сложных систем, определить нечеткие правила бывает непросто. Было бы хорошо найти способ автоматизировать процесс поиска наиболее подходящих нечетких правил. Эта задача решается особым видом нейронной сети, которая называется «нечеткой нейронной сетью». Нейронная сеть ищет соответствие между входами и выходами. Изучая финансовые данные (котировки), которые предварительно были подвергнуты процедуре фаззификации, мы, возможно, сможем научить нейронную сеть выявлять определенные паттерны, существующие в финансовых данных, и тем самым, попытаться прогнозировать рынки.

Читайте также:  Регулятор освещения лампы своими руками

Кто-то может задать вопрос: «Почему мы должны использовать замысловатые правила вместо анализа самой цены в качестве входных данных для нейронной сети, без использования какой-либо размытости?». Ответ прост: «Мы пытаемся уловить нелинейный процесс изменения фондового рынка».

На самом деле, нечеткие правила относительно финансовых рынком могут быть установлены таким образом, для примера:

Правило 1: Если цена поднялась вверх очень сильно 2 дня назад, а затем немного снизилась 1 день назад, то высока вероятность того, что сегодняшняя цена пойдет вниз.

Правило 2: Если цена поднялась вверх сильно 2 дня назад, а затем немного снизилась 1 день назад, существует высокая вероятность того, что сегодняшняя цена снова пойдет вверх.

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

Как происходить весьма важная процедура фаззификации, одно из базовых условий нечеткой логики? Визуально оценить это можно в статистическом модуле, выглядит это вот так:

Здесь произведена фаззификация со степенью градуировки в 5 значений. Далее, эти фазы будут использоваться для автоматического формирования лингвистических правил в нейромоделях с условиями «если — тогда». Модуль статистики находится здесь:

Записи в модели будут выглядеть так (в примере — модель авторегрессии, фаззификация в четыре значения градуировки; использован параметр Close):

Подробнее об этой модели смотрите в руководстве по модулю Neural Net; кроме того, мы поговорим о ней отдельной статье.

Источник



Нечеткое ПИД управление (Fuzzy PID Control)

Нечеткие контроллеры (Fuzzy controllers) позволяют реализовывать стратегии управления близкие человеку и представляют собой эффективную альтернативу (или дополнение) классическим системам управления.

Примечание. Будем использовать два термина для перевода «Fuzzy controllers»: нечеткие контроллеры либо нечеткие регуляторы (если речь идет о нечетком ПИД- регуляторе).

Читайте также:  Регулятор вентилятор danfoss rge

Структура нечеткого ПИД — регулятора (Fuzzy PID Controller) показана на рис. 2.18.

Рис. 2.18. Структура нечеткого ПИД – регулятора

Примечание. На рис. 2.18 используются следующие обозначения:

— вектор состояния объекта управления (ОУ) (a plant), — желаемое состояние ОУ (цель управления), называемое также как «задающий сигнал» (a reference signal); — ошибка управления ( control error), вычисляемая как , где — скорость ошибки управления, — интегральная ошибка, — сила управления, где , где — универсумы для ошибки управления, ее производной и интегральной части, а также силы управления, соответственно.

Отношение «вход/выход» для ПИД-регулятора выражается следующим образом:

где называются коэффициентами усиления ПИД-регулятора и (пропорциональный, интегральный и производный коэффициенты). Выбирая различные значения , очевидно, получаем различное поведение ОУ.

Таким образом, функционирования ОУ существенным образом зависит от выбранных параметров ПИД-регулятора. Поэтому, для разработчиков системы управления становится весьма актуальной проблема эффективного способа выбора этих параметров для того, чтобы обеспечить лучшее качество управления.

Как определить эффективный способ выбора параметров управления?

В случае классического метода управления, коэффициенты усиления ПИД-регулятора являются константами, т.е. постоянными величинами.

Чтобы усилить возможности традиционных (классических) ПИД-регуляторов, прежде всего, введем переменные коэффициенты усиления ПИД-регулятора:

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

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

,

где “ ” – композиционный оператор (смотри формулу 2.2), — нечеткие множества, заданные на соответствующих универсумах, и есть совокупность нечетких отношений (нечетких правил), содержащихся в базе знаний нечеткого ПИД-регулятора.

Примечание. В дальнейшем будем использовать сокращенное название нечеткого ПИД-регулятора как НР.

Установив один раз нечеткие правила, с помощью нечеткого вывода мы можем реализовывать стратегии управления. Ядром нечеткого ПИД-регулятора является система нечеткого вывода Сугено.

Входные переменные для нечеткого вывода: ошибка управления, ее производная и интеграл.

Выходные переменные нечеткого вывода: параметры.

БЗ НР состоит из следующих нечетких правил.

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

Полная база выглядит следующим образом:

ЕСЛИ И И есть , ТО

ЕСЛИ И И есть , ТО

ЕСЛИ И И есть , ТО

ЕСЛИ И И есть , ТО

ЕСЛИ И И есть ТО ,

где , и – функции принадлежности для описания значений , , и , соответственно. , и — реальные числа, удовлетворяющие условию:

Источник

Adblock
detector