Matlab нечеткая логика: Fuzzy Logic Toolbox – это пакет расширения MATLAB, содержащий инструменты для проектирования систем нечеткой логики.

Содержание

Нечеткая логика в красивых картинках. Поверхности отклика для разных функций принадлежности / Хабр

Продолжаем изучать нечеткую логику вместе с книгой Гостева В.И. «Нечеткие регуляторы в системах автоматического управления».

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

Пытаясь разобраться с этой задачей, я решил посмотреть, как функции принадлежности и их параметры влияют на работу регуляторов. И не смог пройти мимо такого красивого объекта из мира нечетких регуляторов, как поверхность отклика, – 3D-график зависимости выхода нечеткого регулятора от двух входов в регулятор.

Как оказалось, это затягивающее занятие (построение поверхности отклика) доставляет не просто эстетическое удовольствие, а еще раз доказывает на практике известное философское утверждение «красота спасет мир».

Поэтому разбор очередной задачи из книги Гостева В. И. у меня распался на две части:


  1. Анализ влияния параметров функции принадлежности для фазификации входных переменных на работу регулятора на базе нечеткой логики.
  2. Непосредственное решение задачи.

Далее, под катом, первая часть.
Внимание! Для тех, кто впервые касается темы нечеткого регулирования, рекомендую начать вот с этой статьи:Простой регулятор на базе нечеткой логики. Создание и настройка

Нечеткие регуляторы в предыдущих примерах книги использовали фазифификацию входных переменных с помощью треугольных функций принадлежности. Треугольная функция хороша тем, что мы задаем явно точки излома в виде параметров блока фазификации, и таким образом контролируем покрытие диапазона входной переменной (см. рис. 1). К тому же, как работает линейное изменение в треугольной функции, казалось бы, достаточно легко представить (на самом деле нет!).


Рисунок 1. Внешний вид треугольных функций принадлежности.

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


Настройка фазификации функциями Гаусса

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

Поиграться с настройками можно в отдельном проекте. Для этого достаточно поставить блок фазификации, направить на вход линейный источник и с помощью фазового портрета построить функции принадлежности для каждого терма входной переменной. Например, для функций Гаусса, равномерно распределенных между 0 и 1, можно задать входное линейное воздействие от – 1 до 2, время расчёта 3 секунды. И мгновенно получить график распределения функций принадлежности в зависимости от входной переменной. См. рис 2.


Рисунок 2. Настройка фазификации функциями Гаусса

Обратите внимание, на схеме у нас кривая Гаусса только одна – центральная. Для граничных термов мы используем в качестве функции принадлежности S-кривую, состоящую из «половины» кривой Гаусса. Почему это часто более правильно объяснялось здесь: habr.com/ru/post/413539

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

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

Например, для равномерного распределения функций Гаусса между 0 и 1 можно записать такой скрипт, как на рисунке 3, где приведен вариант, когда показатель среднеквадратичного отклонения с равен расстоянию между вершинами dU. В результате работы данного скрипта на стадии инициализации расчета будут заполонены два массива an и сn, которые можно записать в свойствах блока фазификаци.


Рисунок 3. Скрипт расчета свойств блока фазификации.

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


Варианты настройки

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

, «меньше».

Функции принадлежности для входных переменных зададим в виде равномерно расположенных по диапазону 0 — 1 функций Гаусса с шагом вершин dU = 0.5

Сформируем 3 правила нечеткого вывода следующим образом:


  1. если вход 1 больше и вход 2 больше, то выход – больше
  2. если вход 1 норма и вход 2 норма, то выход – норма
  3. если вход 1 меньше и вход 2 меньше, то выход – меньше

Схема тестовой модели приведена на рисунке 5. Входным сигналом в системе будет время, а с помощью небольшого скрипта последовательно передаем сигналы на два выхода, таким образом чтобы пройти все варианты воздействий 0-1 для каждого входа и сформировать трехмерный график отклика.


Рисунок 5. Схема тестовой проверки нечеткого регулятора.

Параметры фазификации на три терма одинаковы для каждого входа и задаются в скрипте главной схемы (см. рис. 3). Посмотрим, какой будет вид поверхности характеристик регулятора, когда среднеквадратичное отклонение равно:


  1. Расстоянию между вершинами с = dU
  2. Половине расстояния между вершинам c = dU/2
  3. Четверти расстояния между вершинами c =
    dU
    /4

Вариант 1. Среднеквадратичное отклонение равно расстоянию между вершинами функций фазификации

В этом случае функции Гаусса размазаны по всему диапазону входных переменных, а поверхность отклика регулятора представляет собой слегка изогнутую плоскость. (см. рис. 6).

Видно, что диапазон регулирования не полностью покрывается, хотя в свойствах задано 0 – 1. Это происходит потому, что даже когда входное значение равно 0, все функции Гаусса после фазификации имеют отличное от 0 значения. Это видно при включенной анимации схемы на блоках в виде синих столбиков, отражающих выходные значения функций фазификации. На динамическом изображении блока нечеткого вывода наличие двух столбиков диаграмм не дает сдвинуть центр масс к правой границе — нулю (см. рис. 7).


Рисунок 7. Схема в начальный момент времени расчёта, для с = dU


Вариант 2. Среднеквадратичное отклонение равно половине дистанции между вершинам фазификации функциями Гаусса

Для этого варианта функции принадлежности в крайних положениях работают уже не все функции Гаусса, и поверхность отклика регулятора изгибается. Выходные параметры регулятора также не покрывают весь диапазон, но уже гораздо ближе к полному покрытию. Выход регулятора меняется 0.02 до 0.98.


Вариант 3. Среднеквадратичное отклонение равно четверти дистанции между вершинам фазификации функциями Гаусса

В этом случае функции принадлежности получаются изолированными, и наш регулятор нечеткого вывода работает практически как трехпозиционное реле. При этом, его выход в большей части рабочего диапазона входных переменных равен 0.5, и только в моменты, когда оба входа близки к 0 или 1, регулятор выдает соответственно 0 и 1.

Это приводит к тому, что регулятор большую часть времени не работает, а находится в среднем положении.



Поверхность отклика для фазификации треугольными функциями

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

При фазификации треугольными функциями с общим основанием результат, в общем, предсказуемый: поверхность изгибается между крайними положениями 0 и 1. См. рис. 10. А вот для функций принадлежности, основание которых равномерно распределено по диапазону регулирования, результат, мягко говоря, удивил. Получается интересная фигура, представленная на рис. 11.


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


Нечеткий регулятор по отклонению и скорости.

Приведенные правила нечеткого вывода достаточно прямолинейны. Мы просто складываем (объединяем) все термы логическим и. А как выглядит поверхность, если перейти от абстрактных переменных к чуть менее абстрактным?

Рассмотрим в качестве переменных входа отклонение от заданной нормы и скорость изменения этого отклонения. Среднеквадратичное отклонение возьмем равным половине расстояния между вершинами.

Для наглядности изменим диапазон регулирования и вместо (0…1) зададим (– 1..1)

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

Законы регулирования будут такими:


  1. если отклонение больше или (отклонение норма и скорость растет ), то воздействие – больше
  2. если отклоенение норма, то воздейстиве – норма (0)
  3. если отклонение меньше или (отклонение норма и скорость падает), то воздействие – меньше

Схема такой логики представлена на рисунке 12. А поверхность регулирования – на рисунке 13.


Рисунок 12. Нечеткий регулятор по скорости и положению. Вариант 1.



Рисунок 13. Поверхность отклика регулятора по скорости и положению

Анализируя поверхность, можно заметить, что когда скорость изменения около нуля, то зависимость воздействия от отклонения практически линейна, а когда скорость нарастания отклонения и само отклонения совпадают, то воздействие усиливается (излом на поверхности), и поверхность далее более крутая.

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

Тогда законы регулирование будут такими:


  1. если отклонение
    больше или (отклонение норма и скорость растет ), то воздействие – больше
  2. если отклоенение норма, или
    если (отклонение больше и скорость падает), или
    если (отклонение меньше и скорость растет ) то воздейстиве – норма (0)
  3. если отклонение меньше или (отклонение норма и скорость падает), то воздействие – меньше

Соответствующая им расчетная схема представлена на рисунке 14, поверхность регулирования – на рисунке 15.


Рисунок 14. Фазификациия треугольными функциями c общим базисом и соответствующая поверхность отклика регулятора.

По поверхности отклика видно, что после изменения правил у нас произошло уменьшение воздействия в тех углах поля воздействия, когда направление скорости противоположно отклонению. Cм. Рис 15.


Рисунок 15. Фазификациия треугольными функциями c общим базисом и соответствующая поверхность отклика регулятора.


Ошибка в регуляторе или как красота спасает мир

Созерцание красивых графиков, оказывается, не только приятно эстетически, но и полезно практически, потому что помогает увидеть ошибки. Ранее я описывал нечеткий регулятор в статье «Простая нечеткая логика слеплена «из того что было» для газотурбинного двигателя» Его внешний вид приведен на рисунке 16.


Рисунок 16. Нечеткий регулятор из стандартных блоков.

Обратите внимание на зеленую зону, где происходит аккумуляции и дефазификация. Для защиты от деления на 0, я произвольно добавил, как мне показалось, маленькое число 1е-9, которое не должно было повлиять на результат. Но если в качестве функции использовать функции гаусса при с = du/6, то на поверхности отклика регулятора мы ошибку увидим сразу, см. рис. 17


Рисунок 17. Поверхность отклика для регулятора с ошибкой.

И на самом деле поведение регулятора противоречит заданным правилам. При фиксированном нулевом параметре по оси Х, увеличение параметра по оси У сначала не происходит, потом параметр растет до значения 0.5, а потом начинает убывать, что полностью противоречит этим правилам: входная величина растет, а величина отклика падает до 0.

Оказывается, малая величина, добавленная для исключения деления на ноль, оказалась совсем не малой и в случае, когда сами результаты активации правил становятся малыми величинам, полностью искажает общий результат, меняя его на противоположный. Это видно в режиме пошаговой отладки (см. рис. 18), когда величина Вход 1. находится в среднем положении и продолжает смещаться вправо, уменьшая значения функции принадлежности, а Вход 2 должен быть умножен на 0 и не учитывается, правильный вывод дает нам среднее положение регулятора (тонкая красная линия на блоке), в ошибочном — величина выхода начинает уменьшатся, хотя вход в регулятор растет.


Рисунок 18. Нечеткие регуляторы «с ошибкой» и «правильный» в режиме пошаговой отладки

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

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

Таким образом правильный регулятор, в случае когда на входе получает 0, по всем сигналам, на входе сохраняет, то значение которое у него было в предыдущем рабочем состоянии, до возникновения этой ошибки. См. рис. 19.


Рисунок 19. Нечеткий вывод с защитой от ошибки при нулевых входах.

Те, кому захотелось самостоятельно поиграться с моделями, могут взяв архив проектов здесь …

В следующей части разберем двигатель

Применение нечеткой логики и методов визуализации графических решений при анализе показателей финансового рынка

Библиографическое описание:

Федоров, А. В. Применение нечеткой логики и методов визуализации графических решений при анализе показателей финансового рынка / А. В. Федоров, О. А. Бачманова, А. Э. Ни. — Текст : непосредственный // Молодой ученый. — 2021. — № 48 (390). — С. 1-6. — URL: https://moluch.ru/archive/390/85953/ (дата обращения: 15.01.2023).



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

Ключевые слова: нечеткая логика, система вывода, финансовый рынок, визуализация, мультипликаторы, MATLAB, Python.

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

Одними из мультипликаторов, позволяющих оценить эффективность компаний, являются ROE и ROS .

Мультипликатор ROE (Return on Equity) — рентабельность собственного капитала, позволяет оценить эффективность используемого собственного капитала компании. Данный показатель прямо пропорционален чистой прибыли ( NetIncom ) и обратно пропорционален собственному капиталу ( Equity ):

(1)

где NetIncome — совокупная чистая прибыль за год, а Equity — разница между активами компании и ее долгами.

Показатель ROE равный 30 % является оптимальным значением в условиях отечественной экономики. При высоком показателе существует вероятность того, что у компании много долгов, что создает определенной риск, а при низком показателе рентабельности собственного капитала компания считается неэффективной [1].

Рентабельность выручки — ROS (Return on Sales), позволяет инвесторам оценить долю чистой прибыли в объеме продаж компании. Данный мультипликатор можно выразить с помощью следующей формулы (2):

(2)

где Sales — совокупная выручка компании за год.

Показатель ROS ниже 5 % является низким, с 5 % до 20 % — рентабельность средняя, а от 30 % — рентабельность высокая [2].

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

Таблица 1

Введение нечеткости (фазификация)

Наименование

Лингвистическое обозначение

ROE, %

Плохой

Оптимальный

Ненадежный

ROS, %

Низкий

Средний

Высокий

POI, %

Низкий

Средний

Высокий

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

Таблица 2

Нечеткие правила для системы вывода

Номер правила

Нечеткие правила вывода

1

Если ROE плохой и ROS низкий, то POI низкий

2

Если ROE оптимальный и ROS низкий, то POI средний

3

Если ROE ненадежный и ROS низкий, то POI низкий

4

Если ROE плохой и ROS средний, то POI средний

5

Если ROE оптимальный и ROS средний, то POI высокий

6

Если ROE ненадежный и ROS средний, то POI средний

7

Если ROE плохой и ROS высокий, то POI средний

8

Если ROE оптимальный и ROS высокий, то POI высокий

9

Если ROE ненадежный и ROS высокий, то POI средний

На основании имеющихся нечетких правил, можно произвести визуализацию нечеткого логического вывода. Для реализации процесса визуализации нечеткого моделирования будет использована среда MATLAB с пакетом расширений Fuzzy Logic Toolbox и язык программирования Python с библиотеками Skfuzzy, NumPy и Matplotlib .

При построении графиков функций принадлежности в среде MATLAB , были инициализированы системы нечеткого вывода, а также заданы параметры функций принадлежности входа ROE , ROS и выхода POI [3]. Из таблицы 2 были взяты импликации для инициализации базы нечетких правил. Функции принадлежности ROE и ROS являются трапециевидными, а функция принадлежности POI имеет треугольную форму. В результате чего были получены три графика функций принадлежности (рис. 1).

Рис. 1. Результат построения графиков функций принадлежности

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

Рис. 2. Результат построения поверхности нечеткого вывода

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

Scikit-fuzzy ( Skfuzzy ) — пакет для работы с нечеткой логикой в Python , который работает с массивами NumPy [4];

NumPy — пакет для научных вычислений на языке Python , отличающийся возможностью работы с многомерными массивами [5];

Matplotlib — комплексная библиотека для создания статических, анимированных и интерактивных визуализаций в Python [6].

Для построения графиков функции принадлежности, внешний вид которых является идентичным графикам, представленным на рис. 1, использовался пакет Skfuzzy, который имеет схожий с пакетом расширений MATLAB Fuzzy Logic Toolbox синтаксис, пример чего представлен на рис. 3.

Рис. 3. Сравнение способа ввода исходных данных

С помощью возможностей Python и правил представленных в таблице 2, определим степень принадлежности и вероятность инвестирования ( POI ) для значений ROE и ROS равных 36 и 8 соответственно. Результаты расчета представлены на рисунках 4 и 5.

При реализации правил нечеткой логики вместо логических операций дизъюнкции и конъюнкции использовались функции numpy.fmax и numpy.fmin , как более пригодные для работы с массивами. Следует также отметить, что вывод графиков производился при помощи модуля matplotlib.pyplot , который был создан для возможности использования данной библиотеки как MATLAB .

Рис. 4. Степень принадлежности при ROE = 36, ROS = 8

После опредления активности каждой выходной функции (рис. 4), все выходные функции принадлежности должны быть объединены. Обычно это делается при помощи функции максимума. Этот шаг так же называют агрегированием. Для получения реального ответа необходимо перейти к использованию четкой логики. В данном примере использовался метод центроида (рис. 5) [7].

Рис. 5. Вероятность инвестирования при ROE = 36, ROS = 8

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

Литература:

  1. ROE // Портал о финансовых рынках [Электронный ресурс] URL: https://equity.today/koefficient-roe.html (дата обращения 15.10.2021).
  2. ROS // RDV [Электронный ресурс] URL: https://rdv-it.ru/company/press-center/blog/rentabelnost-prodazh-ros/ (дата обращения 15.10.2021).
  3. Пакет Fuzzy Logic Toolbox for Matlab: учеб. пособие / В. С. Тарасян.— Екатеринбург: Изд-во УрГУПС, 2015.— 112 с.
  4. Scikit-fuzzy // API Reference [Электронный ресурс] URL: https://pythonhosted.org/scikit-fuzzy/api/api.html (дата обращения 20.10.2021).
  5. NumPy // API Reference [Электронный ресурс] URL: https://numpy.org/doc/stable/reference/index.html (дата обращения 15.11.2021).
  6. Matplotlib // Matplotlib 3.5.0 documentation [Электронный ресурс] URL: https://matplotlib.org/stable/index.html (дата обращения 12.11.2021).
  7. GitHub // FuzzyLogicExample [Электронный ресурс] URL: https://github.com/HoneyChuck/FuzzyLogicExample/blob/main/Probability %20of %20Investment (дата обращения 12.11.2021).
  8. Борисов В. В., Круглов В. В., Федулов А. С. Нечеткие модели и сети. — М.: Горячая линия — Телеком, 2007. — 284 с.
  9. Демидова Г. Л., Лукичев Д. В. Регуляторы на основе нечеткой логики в системах управления техническими объектами — СПб: Университет ИТМО, 2017. — 81 с.

Основные термины (генерируются автоматически): ROE, ROS, POI, MATLAB, нечеткая логика, вероятность инвестирования, нечеткий вывод, нечеткий логический вывод, собственный капитал, финансовый рынок.

Fuzzy Logic Toolbox — MATLAB

 

Проектирование и моделирование систем нечеткой логики

Получить бесплатную пробную версию

Посмотреть цены

Fuzzy Logic Toolbox™ предоставляет функции MATLAB ® , приложения и блок Simulink ® для анализа, проектирования и моделирования систем нечеткой логики. Продукт позволяет задавать и настраивать входы, выходы, функции принадлежности и правила систем нечеткого вывода типа 1 и типа 2.

Набор инструментов позволяет автоматически настраивать функции принадлежности и правила системы нечеткого вывода на основе данных. Вы можете оценить разработанные системы нечеткой логики в MATLAB и Simulink. Кроме того, вы можете использовать систему нечеткого вывода в качестве системы поддержки для объяснения моделей черного ящика на основе искусственного интеллекта (ИИ). Вы можете создавать автономные исполняемые файлы или код C/C++ и структурированный текст IEC 61131-3 для оценки и реализации систем нечеткой логики.

Проектируйте системы нечеткого вывода с помощью приложения Fuzzy Logic Designer.

6:01 Продолжительность видео 6:01.

Fuzzy Logic Designer

Используйте приложение Fuzzy Logic Designer или функции командной строки для интерактивного проектирования и моделирования систем нечеткого вывода. Определите входные и выходные переменные и функции принадлежности. Задайте нечеткие правила если-то. Оцените свою систему нечеткого вывода по нескольким входным комбинациям.

Документация | Примеры

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

4:07 Продолжительность видео 4:07.

Системы нечеткого вывода (FIS)

Внедрение систем нечеткого вывода Мамдани и Сугено. Преобразуйте систему Mamdani в систему Sugeno или наоборот, чтобы создать и сравнить несколько дизайнов. Кроме того, реализуйте сложные системы нечеткого вывода в виде набора более мелких взаимосвязанных нечетких систем с использованием нечетких деревьев.

Документация | Примеры

Нечеткая логика типа 2

Создание и оценка интервальных систем нечеткого вывода типа 2 с дополнительной неопределенностью функции принадлежности. Создавайте системы нечеткого вывода Мамдани и Сугено типа 2 с помощью приложения Fuzzy Logic Designer или с помощью функций набора инструментов.

Документация | Примеры

Настройка системы нечеткого вывода

Настройте параметры и правила функции принадлежности отдельной системы нечеткого вывода или нечеткого дерева с использованием генетических алгоритмов, оптимизации роя частиц и других методов настройки Global Optimization Toolbox. Обучайте системы нечеткого вывода Sugeno, используя методы нейроадаптивного обучения, аналогичные тем, которые используются для обучения нейронных сетей.

Документация | Примеры

Нечеткая кластеризация

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

Документация | Примеры

Нечеткая логика в Simulink

Оцените и протестируйте производительность вашей системы нечеткого вывода в Simulink с помощью блока Fuzzy Logic Controller. Реализуйте свою систему нечеткого вывода как часть более крупной системной модели в Simulink для моделирования на уровне системы и генерации кода.

Документация | Примеры

Развертывание нечеткой логики

Реализуйте свою систему нечеткого логического вывода в Simulink и сгенерируйте код C/C++ или структурированный текст IEC61131-3 с помощью Simulink Coder™ или Simulink PLC Coder™ соответственно. Используйте MATLAB Coder™ для генерации кода C/C++ из систем нечеткого вывода, реализованных в MATLAB. В качестве альтернативы, скомпилируйте свою систему нечеткого вывода как отдельное приложение, используя MATLAB Compiler™.

Документация | Примеры

Нечеткая логика для объяснимого ИИ

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

Документация | Примеры

Ресурсы продукта:

Документация Примеры Ролики Требования Примечания к выпуску Функции Технические статьи Пользовательские истории

Получите бесплатную пробную версию

30 дней исследования в ваших руках.

Начать сейчас


Готов купить?

Получите информацию о ценах и изучите сопутствующие товары.

Посмотреть цены Связаться с отделом продаж

Вы студент?

Ваше учебное заведение уже может предоставлять доступ к MATLAB, Simulink и дополнительным продуктам через лицензию для всего кампуса.

Что дальше?

Серия видео

Нечеткая логика

Особенности выпуска

Что нового в последней версии MATLAB и Simulink

Выберите сеть Сайт

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

Вы также можете выбрать веб-сайт из следующего списка:

Европа

Обратитесь в местный офис

Что такое нечеткая логика? – MATLAB & Simulink

Что такое нечеткая логика?

Описание нечеткой логики

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

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

Нечеткая логика имеет два разных значения. В узком смысле нечеткая логика — это логическая система, являющаяся расширением многозначной логики. Однако в более широком смысловая нечеткая логика (FL) почти синонимична теории нечетких множеств, теории который относится к классам объектов без четких, четко определенных границ. В в таких случаях принадлежность к множеству зависит от степени. С этой точки зрения нечеткое логика в узком смысле есть ветвь ИЯ. Даже в более узком определении нечеткая логика отличается как по концепции, так и по существу от традиционной многозначной логические системы.

В программном обеспечении Fuzzy Logic Toolbox™ нечеткая логика должна интерпретироваться как FL, то есть нечеткая логика в широком смысле. Основные идеи, лежащие в основе FL, объясняются в «Основах нечеткой логики». Можно добавить, что основная Концепция, лежащая в основе FL, — это концепция лингвистической переменной, то есть переменной, чья значения – это слова, а не числа. По сути, большую часть FL можно рассматривать как метод вычисления со словами, а не числами. Хотя слова по своей сути менее точны, чем числа, их использование ближе к человеческой интуиции. Кроме того, вычисления со словами используют терпимость к неточности и, таким образом, снижает стоимость решения.

Еще одна базовая концепция FL, которая играет центральную роль в большинстве его приложений, является нечетким правилом «если-то» или просто нечетким правилом. Хотя основанные на правилах системы имеют долгую историю использования в искусственном интеллекте (ИИ), что в таких системах отсутствует механизм работы с нечеткими следствиями и нечеткие предшественники. В нечеткой логике этот механизм обеспечивается исчислением нечеткие правила. Исчисление нечетких правил служит основой для того, что можно было бы назвать язык нечетких зависимостей и команд (FDCL). Хотя FDCL не используется явно в наборе инструментов, он фактически является одним из его основных компонентов. В В большинстве приложений нечеткой логики решение нечеткой логики на самом деле является перевод человеческого решения в FDCL.

Растущая тенденция связана с использованием нечеткой логики в в сочетании с нейрокомпьютерными и генетическими алгоритмами. В общем, нечеткая логика, нейрокомпьютинг и генетические алгоритмы можно рассматривать как основные составляющие того, что можно было бы назвать программными вычислениями. В отличие от традиционных жестких вычислений, программные вычисления приспосабливаются к неточности реального Мир. Руководящий принцип мягких вычислений: используйте терпимость к неточности, неопределенности и частичной правды для достижения управляемости, надежности и низкая стоимость решения. В будущем мягкие вычисления могут играть все более важную роль. важную роль в концепции и разработке систем, чей MIQ (Machine IQ) намного выше, чем у систем, разработанных традиционными методами.

Среди различных комбинаций методологий мягких вычислений та, которая наибольшая видимость на данном этапе – это нечеткая логика и нейровычисления, ведущие к нейро-нечетким системам. В рамках нечеткой логики такие системы играют особую роль. важную роль в выведении правил из наблюдений. Эффективный метод разработанная доктором Роджером Джангом для этой цели, называется ANFIS (Adaptive Neuro-Fuzzy Система вывода). Этот метод является важным компонентом набора инструментов.

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

Нечеткая логика — это удобный способ сопоставления входного пространства с выходным пространством. Учитывать следующие примеры.

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

  • С вашим указанием того, насколько горячей вы хотите воду, нечеткая логика система может отрегулировать клапан крана на правильную настройку.

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

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

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

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

Из десятков способов заставить работать черный ящик часто оказывается нечетким самый лучший способ. Почему это должно быть? Как Лотфи Заде, который считается отец нечеткой логики, однажды заметил: «Почти в каждом случае можно построить один и тот же продукт без нечеткой логики, но нечеткая логика быстрее и дешевле».

Зачем использовать нечеткую логику?

Вот список общих замечаний о нечеткой логике:

  • Нечеткая логика концептуально проста для понимания.

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

  • Нечеткая логика является гибкой.

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

  • Нечеткая логика терпима к неточным данным.

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

  • Нечеткая логика может моделировать нелинейные функции произвольной сложности.

    Вы можете создать нечеткую систему для соответствия любому набору входных-выходных данных. Этот этот процесс особенно упрощается благодаря адаптивным методам, таким как Adaptive Системы нейро-нечеткого вывода (ANFIS), которые доступны в программном обеспечении Fuzzy Logic Toolbox.

  • Нечеткая логика может быть построена на основе опыта экспертов.

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

  • Нечеткая логика может сочетаться с традиционными методами управления.

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

  • Нечеткая логика основана на естественном языке.

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

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

Когда не использовать нечеткую логику

Нечеткая логика не панацея. Когда не следует использовать нечеткую логику? Самый безопасный утверждение — первое, сделанное в этом введении: нечеткая логика — это удобный способ сопоставления входного пространства с выходным пространством. Если вам это покажется неудобным, попробуйте что-то другое. Если более простое решение уже существует, используйте его. Нечеткая логика – это кодификация здравого смысла — используйте здравый смысл, когда будете применять его, и вы наверное примете правильное решение. Например, многие контроллеры отлично справляются со своей задачей. без использования нечеткой логики. Однако, если вы потратите время на знакомство с нечеткой логики, вы увидите, что она может быть очень мощным инструментом для быстрого и эффективно с неточностью и нелинейностью.

Что может делать программное обеспечение Fuzzy Logic Toolbox?

Используя программное обеспечение Fuzzy Logic Toolbox, вы можете:

  • Создавать и редактировать системы нечеткого вывода, используя функции командной строки или приложение Fuzzy Logic Designer .

  • Автоматически генерировать нечеткие системы с помощью кластеризации или адаптивного нейро-нечеткие техники.

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

  • Смоделируйте свою нечеткую систему в модели Simulink ® , используя блок Fuzzy Logic Controller.

  • Автоматически генерировать код для оценки систем нечеткого вывода. За дополнительные сведения см.

Оставить комментарий