Для нас это тоже неожиданность, но мы выпускаем еще одну, на этот раз точно заключительную, серию про трубопровод.
Она будет посвящена радикальной доработке регулятора давления в трубопроводе. Нас не устраивало его качество, и мы решили применить методы нечеткой логики.
Этап 3. Усовершенствование регулятора давления с помощью методов нечеткой логики. Новый улучшенный проект целиком можно найти ТУТ.
Этот проект – замечательный пример синергии гибкого языка Julia и среды моделирования, ведь регулятор мы проектируем в нашей удобной расчетной среде, а потом интегрируем при помощи блока Engee Function в модель.
Библиотека FuzzyLogic крайне полезна и функциональна, она позволяет строить системы нечеткого вывода Мамдани, Сугено, а также системы с интервальными функциями принадлежности.
В нашем проекте строим систему нечеткого вывода Мамдани (Mamdani fuzzy inference system) с помощью макроса @mamfis.
Далее мы применяем функцию compilefis() для того, чтобы сгенерировать код Julia на базовом синтаксисе и интегрировать его в блок Engee Function. Кстати, в будущем вы можете сохранить этот блок в Пользовательскую Библиотеку и переиспользовать в других проектах.
Как можете видеть, у нечеткого регулятора значительно меньшее перерегулирование, а также меньшая длительность переходного процесса. Но у нечеткого регулятора есть и минус: его сигнал зачастую может быть смещен от сигнала задатчика на некоторую величину. Это можно исправить более точной настройкой функций принадлежности и решающих правил. Но теперь мы точно довольны нашей САУ.
Вот такой любопытный «сериал» у нас получился. Надеемся, что вам было интересно! Мы обязательно продолжим делиться с вами подобными разносторонними проектами!