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

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

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

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

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

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

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

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

Общая схема модели приведена на рисунке 1.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рисунок 11. Модель датчика

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для подбора коэффициентов ПИД регулятора используется следующий процесс:

Частота вращения вала низкого давления в конце разгона составляет 3564 об/мин. В течении 10 секунд разгон совершается с использованием заранее рассчитанной кривой расхода топлива.

С этого момента расход топлива берется из гидравлической модели, а заданная частота для регулятора составляет 3600 об/мин. На 10 секунде расчета происходит переключение автомата состояния.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

И посмотрим, как отработают наши регуляторы. На 20 секунде расчета частоту зададим равную 2100 об/мин. Первый на ринге – Fuzzy Logic.

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

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

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

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

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

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

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

Рисунок 23. Замена ПИД на ПДД в алгоритме управления

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

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

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

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

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

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

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

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

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

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

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

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

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

Выводы

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

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

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

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

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


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

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

[Из песочницы] Контроллер, полегче! Выносим код в UIView

У вас большой UIViewController? У многих да. С одной стороны, в нём работа с данными, с другой — с интерфейсом. Они решают проблему потока данных, но не отвечают на вопрос как работать с интерфейсом: в одном месте остается создание элементов, лейаут, ...

Нужно больше разных Blur-ов

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