Нечеткая логика против ПИД. Скрещиваем ежа и ужа. Авиадвигатель и алгоритмы управления АЭС

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

В этой статье мы будем экспериментировать с «настоящей» моделью авиационного двигателя. Обвесив ее «реальными» моделями аппаратуры и алгоритмов управления от атомной станции.

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


Как только модель превратилась из листинга Fortran в структурную схему, с ней стало просто и удобно работать, проводя любые, самые «изощренные» эксперименты. Совершенно не случайно у меня оказались реальные алгоритмы управления АЭС. Что позволило быстро собрать модель для экспериментов, не используя при этом никаких формул, да да, только картинки.
ol9hdrxtg1rx9hxu5zaxdlmm0sm.png

Модель двигателя

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

et2zrussjun1ufqpzednk_hnjq4.png
Рисунок 1. Схема струкутрной модели турбореактивного двигателя.

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

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

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

vnqhwyltgpsusxr8hbsrprdxlpe.png
Рисунок 2. Свойства камеры сгорания.

eazcish9dxpikokqr8mab5wteic.png
Рисунок 3. Параметры камеры сгорания.

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


Модель подачи топлива

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

В качестве модели мы зададим трубу диаметром 10 мм, на которую поставим электрический клапан. Давление на одной стороне трубы задаём постоянным, считая что там работает топливный насос. Давление на другой стороне будем брать из модели двигателя. В конце трубы добавим сужение в 2 раза, что бы сымитировать форсунки. (Рис. 4)

ii8tefhajbhqwhypxqeni1nelno.png
Рисунок 4. Модель подачи топлива в двигатель.

В модель закладывается зависимость изменения гидравлического сопротивления клапана от положения клапана.

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

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


Модель управления

Чтобы смоделировать реальную систему управления, мы возьмем модель регулятора подачи пара в турбину из проекта управления АЭС. Не просто ПИД, который выдает нам положение клапана, а честную модель, в которой есть:


  1. Моделирование работы двигателя привода с учетом зоны не чувствительности, задержек, скоростью открытия и закрытия.
  2. РПИ (реле преобразования импульсов) — нелинейный блок, обеспечивающий преобразования управляющего воздействия в команды «открыть» и «закрыть».
  3. ПИД регулятор.
  4. Инерционность датчика оборотов.

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


Модель клапана

Представляет собой модель двигателя и локальной системы управления.

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

0otkl36teliq3o6u4ojln8tkciy.png
Рисунок 5. Модель электродвигателя

Для управления электродвигателем клапана используется блок управления клапаном (БУК), который обеспечивает логическую обработку входящих команд и возможных заданных отказов, а также вырабатывает все необходимые сигналы для индикации и систем управления. (см. рис. 6)

k5d8qbddsbwmpvhjnsqe4ra5bye.png
Рисунок 6. Модель блока управления клапаном (БУК)

Схемы на рисунках 5–6 — это типовые библиотечные схемы для моделирования АЭС. Эти блоки не меняются пользователем, а берутся готовыми и используются для создания алгоритмов управления. Алгоритмы управления создаются в виде листов. В нашем случае лист алгоритма управления клапаном представлен на рисунке 7.

Непосредственное формирование команды «открыть» или «закрыть» (Больше, Меньше) осуществляется в блоке релейного преобразования импульсов (РПИ). Данный блок может быть выполнен как на «железной логике» (транзисторы, реле, усилители), так и в виде программы.
На вход блока РПИ подается рассогласование, рассчитанное блоком ПИД в виде процентов отклонения. Сам блок на основании этих данных формирует импульсы «открыть» или «закрыть» (Больше, Меньше) для блока управления клапаном. Схема блока РПИ приведена на рисунке 8.

Алгоритм регулирования оборотов представлен на рисунке 9.

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

Сам алгоритм ПИД представлен на рисунке 10.

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

mwsz1tuuanh8olz6zrbjrbnsze0.png
Рисунок 7. Алгоритм управления клапаном

pl_t6muutjl2c-t_usvksrhcudm.png
Рисунок 8. Схема блока РПИ

bykjnsim1vsdeaktqhbcx2py688.png
Рисунок 9. Алгоритм регулятора управления

feuauvxu49ovju5yj_vhnm1nozc.png
Рисунок 10. Регулятор ПИД

65b0ttzkwnt5-wji_dhi3i0cl5s.png
Рисунок 11. Модель датчика

Как мы видим, модель достаточно подробная (более тысячи блоков) и совсем не линейная.

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


  • В системе управления используются следующие настройки:
  • время полного открытия и закрытия клапана — 10 секунд
  • диапазон регулирования оборотов двигателя — 1500 — 4000 об/мин
  • зона нечувствительности для регулятора — 1%


Настройка модели и численный эксперимент

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

  1. вывести модель двигателя на номинальные обороты;
  2. переключить подачу топлива на созданную систему управления;
  3. произвести регулирования оборотов.

На рисунке 12 приведена схема управления для проведения численного эксперимента.

hurp8btnudwderknot5nyuresuc.png
Рисунок 12. Модель управления численным экспериментом

Модель может работать в режиме оптимизации или в режиме управления.

При включенном режиме оптимизации работает блок оптимизация, в выключенном режиме он не участвует в расчете.

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

Для имитации неточности измерения оборотов к рассчитанному значению оборотов вала добавляется белый шум.

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

Система управления выполнена в виде конечного автомата с тремя состояниями (см. рис. 13):


  1. Разгон двигателя. В этом состоянии модель двигателя работает независимо от топливной системы, и расход топлива задается в виде кусочно-линейной функции. Регулятор выключен, а рассчитанные обороты вала низкого давления передаются в заданные обороты В зависимости от сигнала верхнего уровня переход может происходить либо в состояние оптимизация, либо в состояние управление.
  2. Оптимизация. В этом состоянии расход топлива берется из гидравлической модели и передается в модель двигателя. ПИД регулятор включен и регулирует положение клапана. Коэффициенты ПИД регулятора берутся из блока оптимизации и применяются к регулятору в режиме оптимизации. В качестве тестового воздействия задается изменение оборотов двигателя.
  3. Управление. Точно такой же как оптимизация, за исключением передачи коэффициентов в ПИД регулятор.

c2ixc9zws6blohxzllh-qzvanri.png
Рисунок 13. Конечные автоматы системы управления двигателем

th1zno6r_a7zpx73yn5ykttosg0.png
Рисунок 14. Состояния «Разгон двигателя» и «Оптимизация»

Настройку регулятора проводят методом оптимизации. Схема блока оптимизации приведена на рисунке 15. В зависимости от того, какой блок управления используется в системе для управления, блок оптимизации подбирает значения либо для блока ПИД, либо для блока нечеткого регулирования.

При настройке белый шум не учитывается (в блоке задан как 0).

_1delvpwdstdqnqpps_x7syui8m.png
Рисунок 15. Блок оптимизации регуляторов


Результаты моделирования

Для подбора коэффициентов ПИД регулятора используется следующий процесс:
В течении 10 секунд разгон совершается с использованием заранее рассчитанной кривой расхода топлива. Частота вращения вала низкого давления в конце разгона составляет 3564 об/мин.
На 10 секунде расчета происходит переключение автомата состояния. С этого момента расход топлива берется из гидравлической модели, а заданная частота для регулятора составляет 3600 об/мин.

На 20 секунде расчета изменяется заданная частота — 3900 об/мин.

Таким образом, регулятор должен отработать ступеньку в 36 об/мин на 10 секунде расчета и ступеньку 300 об/мин на 30 секунде расчета.

Настроенный ПИД регулятор успешно справляется с данной задачей с учетом того, что на 10 секунде, кроме скачка оборотов, происходит и скачок расхода топлива в момент переключения на гидравлическую модель (см. рис. 16)

oyw9rbp4abm7i2iri6xtrfthdyi.png
Рисунок 16. Обороты и процес управления для ПИД регулятора

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

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

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

hvw6y0bmmj3uzq8nuuwv_bdcqzc.png
Рисунок 17. Превращение ПИД в Fuzzy Logic

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

  • Если меньше и уменьшается и замедляется => уменьшать.
  • Если норма и постоянна и не изменяется => не изменять.
  • Если больше и увеличивается и ускоряемся => увеличивать.

hg6xogvanfe1n7ur5ijag8et0hw.png
Рисунок 18. Схема нечеткого регулятора.

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

После оптимизации запускаем такой же переходный процесс.

9eakarxp5hkyq_nvcyhf3kh-rfs.png
Рисунок 19. Обороты и управления для нечеткой логики

Судя по графику 19, нечеткая логика гораздо лучше справилась с увеличением оборотов авиационного двигателя!

Теперь изменим условия задачи, настроенные на положительную ступеньку 300 об/мин, и испытаем отрицательной ступенькой -1500 об/мин. (Если взять больше, то клапан может закрыться, а как поведет себя модель при нулевом расходе топлива, я не знаю, хотя реальный двигатель допускает кратковременное прекращение подачи топлива.)
На 20 секунде расчета частоту зададим равную 2100 об/мин. И посмотрим, как отработают наши регуляторы. Первый на ринге — Fuzzy Logic.

inomqi8zrf2kjvbwllqgu8tmttu.png
Рисунок 20. Отработка снижения оборотов. Нечеткая логика

Второй эксперимент — с ПИД регулятором. И что мы видим? Это полный провал, регулятор ПИД, настроенный на повышение частоты оборотов, не справился с понижением частоты. (см. 21) Что-то мне тревожно стало сейчас за наши АЭС.

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

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

w6sy1syrfj-d60jxekrhtj6n8mq.png
Рисунок 21. Отработка снижения оборотов. ПИД регулятор.

Напрашивается проверка с ПДД регулятором, в котором используется вторая производная. Поскольку такая модель уже сделана к предыдущей статье (см. рис. 22), то превратить нечеткую логику в ПДД — это дело двух секунд. (см. рис. 23).

0jmyq6kc7n8vqc83otuo_lisdzi.png
Рисунок 22. Структурная схема ПДД регулятора.

b8sjkh-etoar-2imrziwudfju9a.png
Рисунок 23. Замена ПИД на ПДД в алгоритме управления

Проводим настройку регулятора методом оптимизации и повторяем снижение оборотов.

s22ccy81eb3vv5wrcrs19dnkcbe.png
Рисунок 24 Отработка снижения оборотов ПДД регулятор

ПДД отработал с перерегулированием, но явно лучше чем ПИД, и практически так же хорошо, как и нечеткая логика. Но есть перерегулирование!


Усложним задачу — добавим шума в датчик

Попробуем теперь добавить белый шум к датчику измерения сигналов и посмотреть, как ведут себя регуляторы с реальным датчиком. Зона нечувствительности у нас 1% от максимальных оборотов — это 40 об/мин. Зададим белый шум равным 50 об/мин.

Поскольку ПИД не работает на снижении оборотов, тестировать будем на повышении.

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

rfsx0dpc-xeeikuw44-5hpxkmcq.png
Рисунок 25 Повышение оборотов с шумами в датчике. ПДД регулятор

-prxugu34_c48ksj4xie-o4-fj8.png
Рисунок 26 Повышение оборотов с шумами в датчике. ПИД регулятор

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

Тревога за АЭС отступила.

enwdnsjaf65_hqawqxgl4a51gqi.png
Рисунок 27. Нечеткий регулятор с шумами в датчике.

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

Выводы

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

Управлять ПИД регулятором на низких оборотах оказалось невозможно.

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

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

Архив с моделями для самостоятельного изучения можно взять здесь

Habrahabr.ru прочитано 9563 раза