Нечеткая логика и конечные автоматы против ПИД-регулятора. Избиение младенцев продолжается

  • Tutorial

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


Этот текст является продолжением предыдущих публикаций:


  1. Простой регулятор на базе нечеткой логики. Создание и настройка.
  2. Нечеткая логика в красивых картинках. Поверхности отклика для разных функций принадлежности.
  3. Создание регулятора на базе нечеткой логики с многоканальной настройкой.
  4. Простая нечеткая логика слеплена «из того что было» для газотурбинного двигателя.
  5. Нечеткая логика против ПИД. Скрещиваем ежа и ужа. Авиадвигатель и алгоритмы управления АЭС.


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


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


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


Далее под катом – ПИД-регулятор, нечёткая логика и конечные автоматы для управления газотурбинным двухроторным двигателем (ГТД). Тем, кто впервые планирует познакомиться с работой нечеткой логики, рекомендую начать со статьи «Простой регулятор на базе нечеткой логики. Создание и настройка»


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



Рисунок 1. Модель ГТД в режиме малого газа.


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


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


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


Общая схема объекта вместе с системой управления будет выглядеть так, как показано на рисунке 2. Усилитель со значением – 20, модель исполнительного механизма (опять-таки взятая «as is» из книги В.И. Гостева).



Рисунок 2. Двигатель с системой управления.


На этом рисунке в качестве регулятора мы используем дискретный ПИД-регулятор с периодом дискредитации 0.001 сек и постоянной времени дифференцирования 0.001.


Запустим систему со значениями настроек ПИД-регулятора 1,1,1 для всех коэффициентов. Результат представлен на рисунке 3.


Из рисунка видно, что дискретный ПИД с единичными коэффициентами, при скачке на 1 выдал в качестве управляющего воздействия величину 1000, что соответствует постоянной времени дифференцирования 0,001. Дискретный ПИД рассчитывает скорость как разность входа между двумя отсчетами, деленную на постоянное время дифференцирования. Если отмасштабировать график, по оси У от -1 до 1 видно, что ПИД по умолчанию сработал и привел систему к 0 за 7 секунд.

Рисунок 3. Управляющее воздействие и отклик системы.
Что можно сказать, глядя на это график? Да ничего. А все из-за того, что наша модель уже представлена в виде передаточной функции в отклонениях, и мы не можем сказать, быстро это или нет. Мы вообще ничего не можем сказать о двигателе. Как я уже показывал в статье «Технология получения уравнений динамики ТАУ. И почему System Identification is sucks, а рулит «честная физика»: преобразование параметрической физической системы к виду передаточной функции губит всю инженерную «понятность» модели.
Например, воздействие на модель с величиной 1000, полученное после ПИД, возможно в жизни? Неизвестно. Если это подача топлива, то, очевидно, что система подачи не сможет запихнут в 1000 раз больше топлива чем, в режиме малого газа.

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



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


Ограничивая воздействие, изменяем переходной процесс, увеличивая перерегулирование и время переходного процесса (рисунок 5). Поскольку вместо 1000, выдаваемой ПИД на первом шаге скачка возмущения, в исполнительный механизм передается только 10.



Рисунок 5. Переходной процесс с ограничителем управляющего воздействия.


Настройка ПИД регулятора с помощью оптимизации


Давайте теперь настроим регулятор с использованием блока оптимизации.
Cубмодель оптимизации подключаются ко входу в контроллер управления. И получается значение отклонение от 0



Рисунок 6. Подключение блока оптимизации.


Схема субмодели оптимизации ПИД представлена на рисунке 7.



Рисунок 7. Блок оптимизации..

Рассмотрим работу блока оптимизации. В качестве параметров оптимизации используются:
— время переходного процесса – время, в течение которого в переходном процессе отклонение больше 0.009.
— среднеквадратичное отклонение на всем протяжении процесса.


Модуль отклонения направляется на управляющий контакт переключателя блока «Ключ-3» Переключатель работает в зависимости от величины модуля отклонения. Если модуль больше заданного порога, то переключатель подключен ко второму входу, куда подается текущее время, на входе — текущее время модели.


Далее находится блок «Запаздывание на период квантования» получающий сигнал с предыдущего шага и отправляющий его обратно на первый вход переключателя.


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


Таким образом, в результате работы этой конструкции у нас в блоке «Запаздывание на период квантования» хранится последнее время, когда отклонение было больше заданного, т.е. время переходного процесса.


Сигнал, полученный из модели, направляется на блок расчёта среднеквадратичного отклонения. Чем меньше среднее отклонение в переходном процессе, тем оптимальнее регулятор.
Минимизируя среднеквадратичное отклонение по всему процессу, мы настраиваем точность регулирования. Без данного критерия возможно решение, когда система, попадая в заданную трубку, продолжает колебаться уже в переделах этого лимита.


Настройки блока оптимизации представлены на рисунке 8.



Рисунок 8. Настройки блока оптимизатора.


Оптимизацию осуществляем по полному переходному процессу. Это означает, что последовательно запускается несколько десятков или сотен расчётов, в каждом из которых подбирается вектор из трех параметров и подается на выход. На выходе из блока оптимизации эти параметры записываются в сигналы проекта Кp, Ki, Kd (см. рис. 7 и рис. 8). А сигналы проекта используются в настройках блока дискретного ПИД-регулятора. (рис. 10.)



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



Рисунок 10. Настройка параметров ПИД-регулятора.


В результате выполнения процесса оптимизации получаются следующие значения оптимальных параметров:
Kp = 13.142
Ki = 0.313
Kd = 1.779
Время переходного процесса составляет 0.72 сек. Процесс регулирования оптимального регулирования предоставлен на рисунке 11.



Рисунок 11. Переходной процесс с оптимизированным ПИД-регулятора.


Получив эталонную систему для сравнения, переходим к настройке нечетких регуляторов.


Настройка первого нечеткого регулятора


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


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


Отклонениебольше, норма, меньше.
Скорость изменениярастет, не изменяется, падает.

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


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

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



Рисунок 12. Модель первого регулятора на базе Fuzzy Logic.


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


  • uMax_1 – максимальное значение выхода регулятора;
  • deltaMax_1 – максимальное отклонение;
  • divMax_1 – максимальная произведенная.

Данные переменные помещаются в сигналы проекта – см. рисунок 13.



Рисунок 13. Настройка блока фазификации для скорости изменения.


Для формирования параметров фазификации мы делим диапазон (–uMax_1… uMax_1) на три части и получаем вектор вершин [–uMax_1 ,0, uMax_1], а в качестве среднеквадратичного отклонения выбираем расстояние между вершинами, деленное на 2. (см. предыдущий текст, где мы экспериментировали с параметрами функции фазификации).


В итоге, свойства блока фазификации скорости выглядят так:



Рисунок 14. Настройка блока фазификации для скорости изменения.

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


, где:
Yt — текущее значение;
Yt-1 — значение на предыдущем шаге;
Δt = 0.001 – шаг по времени такой же, как при дискретизации дискретного ПИД-регулятора.

Схема показана на рисунке 15. Деление на Δt учитывается в блоке сравнения, где можно задать коэффициенты для каждого входа.



Рисунок 16. Схема вычисления скорости изменения.


Поскольку вся схема у нас уже готова, остаётся заменить ПИД-регулятор на FL -регулятор (см. рисунок 17) и посмотреть, что получается.



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


И опять, к моему немалому удивлению, нечеткий регулятор справился лучше, чем ПИД, при начальных единичных настройках. Какая-то сплошная реклама нечеткой логики получается.


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


ПИД регулятор

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


Рисунок 19. ПД-регулятор с единичными настройками.


В качестве оценки времени переходного процесса возьмем время, когда управляемая величина отклоняется от заданной менее чем на 0.009. В этом случае получаются следующие результаты:
ПИД – 11.25 сек.
ПД — 5.25 сек.
FL – 4.74 сек.


Настройка регулятора FL с помощью блока оптимизации


Для настройки используем ту же самую схему, что и для настройки ПИД-регулятора (см. рис 6). Только рассчитывать и записывать в сигналы проекта мы будем параметры фазификации:
uMax_1 – максимальное значение выхода регулятора;
deltaMax_1 – максимальное отклонение;
divMax_1 – максимальная производная.


На старте у нас все эти параметры равны 1. После запуска процесса автоматизации в них будут рассчитаны оптимизированные значения.


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



Рисунок 20. Сообщения о результатах работы блока оптимизации.


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


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



Рисунок 21. Параметры блока оптимизации.

С первого прогона получилось оптимизировать время переходного процесса до 0.24
[Информация]: «Оптимизированные параметры = [31.10359, 1.0219553, 2.165446], критерии оптимизации = [1.24, 0.09879439]» в объекте Macro4.OptimizeBlock6


Второй прогон процесса оптимизации сократил время переходного процесса до 0.23 сек.
[Информация]: «Оптимизированные параметры = [34.954824, 1.0114662, 0.058949452], критерии оптимизации = [1.23, 0.098544697]» в объекте Macro4.OptimizeBlock6


Переходной процесс для ПИД и FL представлен на рисунке 22. Видно, что нечеткий регулятор справляется быстрее ПИД.



ПИД регулятор

FL регулятор
Рисунок 22. Переходной процесс при ПД и FL регуляторов.

Конечные автоматы для переключения между регуляторами


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


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


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


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


Заменяем блок нечеткой логики на карту состояний. Внутри карты состояния добавляем вход и выход и два состояния. Одно – для работы на больших скачках быстрого регулятора FL1, второе — для точной настройки FL2. Выглядеть схема будет примерно так, как показано на рисунке 23:



Рисунок 23. Сообщения о результатах работы блока оптимизации.


Потенциальные ошибки при использовании конечных автоматов


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


Обратите внимание, что блок расчета скорости изменений и второй производной скорости изменений вынесен из блоков состояний.


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


Чтобы оценить, какая при этом будет ошибка, я собрал простую схему конечных автоматов, работающих по таймеру с переключением «1 секунда», в один из которых поместил субмодель расчёта скорости и ускорения разностными методами, период дискретизации 0.001 сек (постоянный шаг интегрирования). Такой же блок оставил вне конечных автоматов. Входное воздействие — линейное нарастание сигнала.


Сигнал, приходя через блок состояния, в период когда само состояние выключено, не меняется (морозится), и появляются ступеньки. А вот значение скорости, рассчитываемое в блоке состояния в момент переключения, увеличивается в 1000 раз, а ускорение вообще в 1 000 000 раз. см. рис. 24.



Рисунок 24. Ошибки вычисления скорости и ускорения разностными методами.


Начинка блоков состояния конечного автомата


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


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



Рисунок 25. Модель состояния 1.


Для состояния два – все то же самое, только переход в состояние 1 осуществляется, если модуль отклонения больше 0.009.



Рисунок 26. Модель состояния 2.

В качестве точного регулятора используем регулятор по отклонению первой и второй производной отклонения (именно такие регуляторы использует в своей книге В.И. Гостев и их мы использовали в предыдущих задачах). Схема регулятора представлена на рисунке 24.


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


Нечеткий регулятор точной настройки


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


Отклонениебольше, норма, меньше.
Скорость изменениярастет, не изменяется, падает.
Ускорение измененияускоряется, не изменяется, замедляется.


Логические правила так же просты и незатейливы, как в предыдущих примерах:


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


Рисунок 27. Нечеткий регулятор точной настройки FL2.


Nже как для первого регулятора, чтобы сократить количество настраиваемых переменных, принимаем диапазон изменения входных переменных и выхода регулятора симметричный относительно 0, тогда достаточно одного числа для задания диапазона фазификации.
Для настройки такого регулятора нам необходимо определить уже четыре числа:
uMax_2 – максимальное значение выхода регулятора;
deltaMax_2 – максимальное отклонение;
divMax_2 – максимальная скорость;
div2Max_2 – максимальное ускорение.


Добавляем их в список сигналов проекта и задаем значения по умолчанию 1 (см. рис. 28)
Запуск данной системы с 1 настройками показал, что все-таки чудес не бывает, и то, что наш нечеткий регулятор 1 с единичными настройками смог стабилизировать систему (см. рис. 18 — 19) – это скорее исключение, чем правило. Потому что результат работы регулятора представляет собой сплошную пилу включения и выключения. (см. рис. 28)



Рисунок 28. Результаты работы нечёткого регулятора с начальными настройками.


Настройка второго нечеткого регулятора


Первый вариант оптимизации: поскольку у нас переходный процесс уже завершился, в качестве критерия оптимизации используем среднеквадратичное отклонение. Схема оптимизации представлена на рисунке 29, результат – на рисунке 30.



Рисунок 29. Схема оптимизации по отклонению.



Рисунок 30. Результат работы оптимизированного по отклонению регулятора.


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


Изменяем схему, добавив в критерии автоматизации счетчик количества переключений. Для этого добавляем в качестве входа регулирующее воздействие.
Счетчик работает следующим образом:
Регулирующее воздействие подается в блок sign, который выдает -1,0,1 при смене знака воздействия, а после ставится блок «импульс по фронту», который выдает импульс длительностью в 1 шаг интегрирования. В момент когда происходит смена знака, после него стоит интегратор, который накапливает эти импульсы.
Накопленное количество переключений предаем в блок оптимизации, который пытается его минимизировать вместе с отклонениями.


Кроме этого, среднеквадратичное отклонение в процессе оптимизации начинаем считать, не сначала процесса с 1.2 секунды, для этого на вход установлен временной ключ.



Рисунок 31. Схема оптимизации с учетом пeрeключений.


Такая оптимизация приводит к следующему результату:


[Информация]: «Оптимизированные параметры = [16.564415, 0.0027674129, 0.19085771, 50], критерии оптимизации = [0.0047956855, 11]» в объекте Macro5.OptimizeBlock6


Это значит, что:
uMax_2 – максимальное значение выхода регулятора = 16.564;
deltaMax_2 – максимальное отклонение = 0.00277;
divMax_2 – максимальная скорость = 0.191;
div2Max_2 – максимальное ускорение = 50.
Переходной процесс при настроенном регуляторе приведен на рисунке 32.


Рисунок 32. Переходной процесс при ПД и FL регуляторов.

Двойной ПИД регулятор


Ну, и чтобы сравнение было полным, создадим систему управления с конечными автоматами, в которых переключение осуществляется между двумя регуляторами ПИД. ПИД1, для быстрого регулирования при больши отклонениях и ПИД2 для тонкого регулирования, при малых отклонениях.


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


Рисунок 33. Блок конечных автоматов с переключениями ПИД1 и ПИД2.


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



Рисунок 34. Состояние конечного автомата с вычислением ПИД-регулятора.

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



Рисунок 35. Переходной процесс с ПИД-регуляторами.


Сравнение результатов оптимизированного расчёта с переключением ПИД и Нечеткой логики приведено в таблице:


Регуляторы Время переходного процесса Конечное отклонение
FL 1.26 сек -6.35938146587023E-9
ПИД 1.71 сек. -2.40475404943874Е-4

Выводы


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


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

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 82

    +5
    Довольно интересный и неожиданный результат. А то все эти конечные автоматы сейчас могут показаться устаревшим наследием советской школы, когда компьютеров то особо ещё не было, а ракеты запускать уже надо было. Тем не менее, оказывается, в некоторых классах задач они себя показывают очень даже хорошо.
    К сожалению, довольно поверхностно знаком с ТАУ, но стараюсь изучать, так как тема полезная. У меня такой вопрос, а какие ещё существуют(и более-менее нередко используются в промышленности) виды регуляторов, которые могут работать оптимальнее пресловутого ПИД? Я изучал основы ТАУ применительно к импульсным преобразователям, и там в передаточной функции некоторых топологий есть ноль в правой полуплоскости. И вроде бы именно цифровые методы управления в этом случае решают проблему. Но, к сожалению, мне не попалось описания реализации этих цифровых регуляторов.
      +1

      Линейно-квадратичные (LQR) и Линейно-квадратично-гауссовы (LQG) регуляторы довольно широко используется.

      +1

      Какие то маленькие коэффицинты ПИД регулятора. Если задать Kp=300, Kd=80, Ki=0 (интеграл тут нафиг не нужен, т.к. сам обьект — интегратор), то вполне себе получаю то же время переходного поцесса около 1.2с.

        0
        Действительно! Я же пределы при отимизации для ПИД ограничил значением -50 +50! Копировал блок и не обратил внимание. Сейчас пресчитаем!
          +1

          Ki еще обнулите, здесь интеграл только мешает.

            +1

            поставил Kp=219, Kd=56, Ki=0.
            До уровня 0.991добегает за 1.1с.


              0
              А у при этих коэффициентов, только за 1.2 сек, тоже лучше. А дискретизациям расчтеа такаяже 0.001?
                0
                Шаг решения точно не помню, то ли 0.01 то ли 0.001.
                Да, в коэффициентах опечатался 219 = 210.
                0
                Первая оптимизаця еще лучше нашла ответ. 0.31 сек! Правда сработал как переключатель релейный, пока оставил интегриальную составляющую -0.001..+0.001. сейчас вообще без интегратора посчитаю.
                  0
                  Первая оптимизаця еще лучше нашла ответ. 0.31 сек!

                  Да ну? У Вас где то ошибка — скорее всего в ограничении уровня на выходе регулятора. При постоянном входном сигнале = 10 выход объекта до уровня 1.0 минимум за ~0.83с добегает.
                    0
                    Может модели чуть отличаются? если на 1 секунде на нее отправить ступеньку в 1 то модель до -1 за 0.18 сек убегает.
                      0
                      эм, а это как так?
                      Первые два звена — на их выходе будем иметь линейно нарастающий сигнал идущий в положительную область. Далее идет растроение сигнала, причем нижняя ветвь — имеет коэффициент передачи примерно в 20 раз больше чем верхние две, т.е. сигнал на выходе сумматора обязан быть положительным.

                      P.S. Если верхнюю мешанину свернуть получаем вот такую схему:
                        0
                        Я в Simulink модель собрал тоже самое 0.18 секунды до -1, при константе 10 на входе.

                          0

                          а на собранную в симулинке схему можно глянуть?

                            0

                            На выходе интегратора (0.01/p) при наличии на входе объекта единичной функции будет положительный линейно нарастающий сигнал.
                            Далее идут две параллельные ветви:
                            1) Два верхних звена с перекрестными связями дадут следующую пф:


                            W(p) = [ -0.01*0.26*w1-0.04*0.16*w2-(0.16*0.01*2.27+0.26*0.005*0.04)*w1*w2 ] / [1-0.005*2.27*w1*w2],
                            где:
                            w1=1/(1.21+p)
                            w2=1/(0.59+p)

                            Коэффициент передачи чт ото около -0.018.
                            2) Самая нижняя ветвь с коэффициентом передачи 0.37.


                            Итого — реакция на единичную функцию на входе объекта может быть только положительной.

                              0
                              Сама модель на рисунке выше, я повторял задачку из книги гостева, просто пресобирая модель Simulink. Но перед моделью еще стоит усилитель на — 20 (почему то он вынесен из модели наружу) В общей модели с ограничителем максимальное воздействие 10. После усилителя становится — 200, и предается на вход модели, которая на рисунке, при таком входе как раз и добегает до -1, за 0.18 сек
                                0

                                Ну вот теперь все сходится. Если входное воздействие -200 а не +10, то выход объекта побежит в отрицательную сторону в 20 раз быстрее.
                                Теперь вопрос, чем Вы все таки пытаетесь управлять? П.Ф. объекта регулирования W(p)? или -20*W(p)? и где этот коэффициент -20 в статье?

                                  0

                                  Там такой текст есть:
                                  " Общая схема объекта вместе с системой управления будет выглядеть так, как показано на рисунке 2. Усилитель со значением – 20, модель исполнительного механизма (опять-таки взятая «as is» из книги В.И. Гостева)."
                                  Если бы я делал модель, я тоже этот усилитель внутри модели поставил бы, но взял как в оригинале, вдруг в этом половой смысл был.

                                    +1

                                    Нда, в самом начале мелким шрифтом :))


                                    вдруг в этом половой смысл был.

                                    … мягко говоря нет слов. Смысл вижу только один — внести путаницу.


                                    P.S. для ограничения ±200 и Kp=210, Kd=56 на уровень 0.991 выходит примерно за 0.5с. Теоретический максимум ~ 0.1с. Ну и те результаты что приведены выше получается что рассчитаны для ограничения выхода ПИД регулятора в 20 раз меньше чем для FL регулятора.
                                    Итого: ПИД с ограничениями управляющего сигнала ±10 вывел объект на режим быстрее чем FL с ограничением ±200. Иронично :)))

              +1
              В качестве хаба указан Матлаб, а в качестве тегов Матлаб и Симулинк, но ни того ни другого здесь нет.

              Вы бы сделали свое моделирование в Симулинке, тогда можно было бы поиграться…
              +1

              Сколько лет вы уже эту книгу мучаете? :)


              Ограничивая воздействие, изменяем переходной процесс, увеличивая перерегулирование

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

                +5
                Все это бесконечно далеко от реальных задач управления, к сожалению. Когда ты попытаешься применить все это на практике в реальной системе управления, ты поймешь. Я свою научную и рабочую карьеру начинал примерно 20 лет назад с нейросетевых и fuzzy систем управления, и применял их как раз к газотурбинному двигателю. В результате нескольких лет работы получился ПИД-регулятор )) С переменными коэффициентами, но все-таки ПИД-регулятор. Никакие нейро- и fuzzy-регуляторы в реальной системе неприменимы. Сейчас под управлением моих систем с моими алгоритмами работает порядка 6 тысяч газотурбинных двигателей по всему миру )
                  0
                  В питере, там где по лицензии турбины сименс собирают, мне говорили, что нечеткую логику используют. Но может это потому, что они еще в начале пути. Усоврешенствуют процесс и придут к ПИД.
                    +2
                    Никакой нечеткой логики в Сименсе нет. Разве что под «нечеткой логикой» понимать их убогий нечитаемый код, представляющий из себя ядреную смесь творчества турков и индусов, подпёртую кривыми и косыми украинскими костылями ))))

                    Пишу, потому что мы год потратили на разбор и переделку софта для 25-тимегаваттной Сименсовской турбины, блин ))

                    А так втутри там ПИД-регулятор, причем крайне тупой — наш (мой) намного умнее )
                      –1
                      Даже не удивлен, европа она такая сверху обертка и ценник ломовой, внизу дешевый труд иженегров из бандустанов.
                        0
                        Я просто с Сименсом почти 20 лет работаю и хорошо знаю их внутреннюю кухню и команды разработчиков — постоянно общаемся ) Русские там тоже есть, но их там воспринимают как Богов с Олимпа на фоне индусов и турков )) Украинцы там тоже на высоком уровне, но их мало, и они занимаются больше системными вещами — основная масса кодеров те самые индусы и турки. Пишут — закачаешься! Потом на их «код» вынуждены вешать кучу костылей и подпорок, когда уже наладка и внедрение идут в аврале, и нормально исправлять времени просто нет.
                    +3
                    А вы бы не хотели бы статейку на данную тему написать тут? Было бы интересно почитать про ваш опыт.
                      +2
                      Нет, не хочу — там куча ноу-хау, которые не в моих интересах раскрывать )) В этой области никто ни с кем ничем не делится — это большие деньги, стоимость входа на рынок очень высокая, конкуренты друг от друга свои решения скрывают и прячут, нигде никаких реальных решений в открытом доступе нет, и даже в патентах написано совсем не то, что используется на самом деле ) У меня по этой теме 6 патентов если что, так что знаю о чем пишу.
                      0
                      Самое смешное, что тут в коментариях задали вопрос, почему у меня коэффиценты ПИД маленькие, и я нашел ошибку — искусственно сузид диапазоно поиска оптимальных коэффициентов ПИД регулятора, по ходу сейчас весе перпроверю и тоже получу ПИД как лучший регулятор. :)))) А все потому, что SimInTech не нужно 10 лет работать она сам посчитает! :)))))
                        0
                        и тоже получу ПИД как лучший регулятор.

                        Это потому что у Вас объект управления «классический». Т.е. по сути интегратор + звено третьего порядка (если учесть что коэффициенты передачи при верхней части схемы мизерные, то вобще можно сказать что первого порядка). Зачем для управления таким объектом нечеткая логика? Если есть классические методы ТАУ (уже давно разработанные и обкатанные), которые дают результат выше которого не прыгнуть?
                          0
                          Именно это я и пытаюсь исследовать, можно ли что то еще выжать, профессор же не зря эту модель в книге привел, как пример.
                            +1
                            К сожалению, наши профессора пишут книги, в жизни не видя предмет своей писанины…
                            0
                            Объект не совсем классический, просто модель сильно упрощенная. На самом деле газотурбинный двигатель как объект управления сильно нелинейный, чего я в этой модели вообще не увидел. И ПИД-регулятор для него тоже должен быть нелинейным. Плюс в реальности есть масса ограничений на управляющее воздействие (расход топлива), помимо основного есть несколько дополнительных контуров регулирования, есть ограничение на скорость увеличения и уменьшения управляющего воздействия, связанное как с помпажом компрессора, так и с возможностью получить разрушения лопаточного аппарата при некорректном управлении, причем эти ограничения сильно зависят от режима работы двигателя, и т.д. и т.п.
                              +1
                              Объект не совсем классический, просто модель сильно упрощенная.

                              Тот объект который мучает в симуляторе автор — классический линейный объект управления, ибо ни одного нелинейного звена я там не вижу :) а в реальности, да, все нелинейно, ну или почти линейно в определенных диапазонах/при определенных условиях.
                                0
                                В симуляторе — да, сильно упрощенная линейная модель. В реальности ГТД сильно нелинейный объект. Почти линейный он только в малой окрестности рабочей точки, поэтому и можно применять ПИД-регулятор с изменяющимися коэффициентами.
                                  0
                                  Не линейную модель я тоже исследовал у меня была модель от ЦИАМ им. Баранова, по их словам она (модель) всережимная, я к ней прикрутил не линейную модель трубопровода с нелинейной моделью блоков управления задвижек от АЭС, с импулсным управлением положением. Правда там не турбина, а авиационный двухвальный двигатель. и переходной режим я брал с потолка. Но нечеткий регулятор там тоже сработал лучше чем ПИД. Можно посмотреть здесь...
                                    +1
                                    На практике используются ПИД-регуляторы с адаптивными коэффициентами (они зависят от частоты вращения и температуры воздуха на входе в двигатель), иногда добавляем еще коррекцию по рассогласованию задания и текущей частоты вращения. Коэффициенты ПИД-регуляторов отличаются в зависимости от режима в десятки раз.

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

                                    Сейчас глянул файлы с настройками для самой свежей турбины мощностью 32 МВт — они занимают 107 килобайт (порядка 1500 настроек).
                                      0
                                      Это именно настройки (переменные которые можно менять в управляющем ПО)? Или просто характеристики систему управления типа задержки датчиков, люфты и т.п.
                                        +1
                                        Это именно настройки, которые нужно менять для конкретного типа двигателя — они относятся к двигателю, а не к системе управления.
                                          0
                                          В модели авиадвигателя двигателя там тоже настроек наверное не меньше в виде всяких итреполяционных таблиц.
                                          А вот в систему управления чистых параметров переменных настраиваемых для регулятора блока регулятора ПИД 51 шт. а там еще и блоки KDRK и SWF всего порядка 100 переменных. Но при этом оптимизация работала, и если заменить ПИД на FL, получалось лучше Картинки реальной системы с АЭС которую использовал, для иллюстрации, что там тоже все нелинейно и совсем не упрощенно было.


                                            0
                                            А что газотурбинный двигатель делал на АЭС, если не секрет?
                                              0
                                              ничего, просто гонять большу модель АЭС трудно, а полная модель авиадвигателя упрастемы управления не имела. Поэтом от АЭС взял настоящую завдижку и ПИД и прикрутил ее к модели аиацонного дивагателя. Реальное ПО управления, со всеми невинностями + близкая к реальности модель двигателя от ЦИАМ.
                                                0
                                                Уверен, что настоящий регулятор газовой турбины будет работать лучше любого лабораторного fuzzy ) Там просто есть сотни нюансов, которые учтены реальным опытом пусков тысяч турбин…
                                                  +1

                                                  Есть не единичные примеры, когда все эти накопленные поколениями инженеров костыли в виде деястка ПИДов с переключениями и эвристиками проигрывают вдумчиво сделанному хорошим экспертом алгоритму управления. Но инеженры редко знают что-то за пределами ПИД, ЛКР и Калмана с наблюдателем возмущения, да и то знают не всегда правильно. Отсюда и растут все эти франкенштейны настоящих регуляторов.
                                                  Но это не всегда и не везде, сугубо моё личное мнение, а я в газотурбинах не разбираюсь.

                                                    0
                                                    Есть примеры таких алгоритмов от вдумчивых экспертов в реальных системах управления?
                                                      0

                                                      Конечно. Я же сказал: "есть не единичные примеры". :)
                                                      Но если вы хотите конкретный пример было-стало, то я его описывать не буду, можете не верить. Или вы хотите узнать, какие вообще есть методы используются в индустрии, кроме ПИД?

                                                        0
                                                        Мне просто интересно узнать, в каких областях применяются кабинетные идеальные регуляторы. Например, fuzzy, подобный описанному в этой статье. Вопрос не в ПИД или не ПИД. Понятно, что есть задачи, с которыми ПИД не справится.
                                                          0
                                                          Насколько мне известно, нечеткая логика себя на удивление не плохо показала, в летаюших и убивающих объектах.
                                                            +1
                                                            Еще в стиральных машинах вроде как применяют )
                                                              0

                                                              эт каких?

                                                              0
                                                              в каких областях применяются кабинетные идеальные регуляторы

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

                                                                0
                                                                А мне кажется, Вы просто не можете привести такой пример.
                                                                  0
                                                                  Вот пример когда симуляция помогла настроийть систему управления электродвигателем habr.com/ru/post/460151
                                                          0
                                                          Я занимался алгоритмами для систем управления инверторами и скажу, что «хорошим экспертом» по конкретному алгоритму управления можно стать, только хорошо зная объект управления и железо.

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

                                                          Так и у вас — симуляция-симуляцией, но на практике далеко не все идеи работоспособны.
                                                            0
                                                            Я уже привел пример последствий применения таких регуляторов, которые в этой статье описаны — помпаж и разрушение лопаточного аппарата турбины ) Порчу инвертора еще можно пережить, а турбина стоит миллионы долларов если что.
                                                              0
                                                              Мои инверторы не меньше стоят.
                                                                0
                                                                Интересные инверторы — что за звери такие? Прямо 2,5 млн долларов за инвертор?
                                                                  0
                                                                  Может быть больше, может быть меньше. STATCOM, HVDC VSC
                                                              0
                                                              Так и у вас — симуляция-симуляцией, но на практике далеко не все идеи работоспособны.

                                                              Простите, я не понял, это вы мне ответили? О каких моих симуляциях идёт речь?

                                                                0

                                                                У меня есть мнение, что специалисту по управлению проще разобраться в предметной области, чем инженеру-предметнику в теории управления. Тут как с програмистами. :) Но это только мое мнение, а мир удивителен и разнообразен.

                                                                  0
                                                                  Смотря какая предметная область. Я по образованию инженер по ядреным реактором. Но для меня сюрпризом оказалось, что электромотор с приводом это какая то сложна научная система и при испытаниях, рвут тяги и сжигают электронику. В детстве прилаживая моторчик с пропеллером для пластмассовй лодки, мен казалось что проще ничего не бывает. Поэтому тут все зависит от базового образования и самого человека. У меня был пример когда нам в замечаниях от конструктора завода написали погрешность модели 40% когда расчет температы на выходе показал 3 градуса, а термопара 5 градусов, при полном перепаде с 2 теплообменниками и турбохолодильной машиной в 300 градусов. Причем по паспорту точность термопары +- 2.5 градуса
                                                                    0
                                                                    а термопара 5 градусов
                                                                    по паспорту точность термопары +- 2.5 градуса

                                                                    Это же ±50%! :)

                                                                      0

                                                                      Так модель считала перепад 300 градусов в системе кодиционирования, с турбохолодильником двумя теплообмениками и 3 регуляторами. Он разницу между расчетным и ищмеренным значением, подешил на измеренное. Погрешность модели менее 1% в этом режиме. Я его спорсил а если бы в режиме на выходе 0 градусов? Какая погрешность быда бы.

                                                                  0

                                                                  Возможно, ваш "эксперт" был не тем экспертом? Кто работают с high-gain регулятороми, обычно в курсе их поведения при шумах, области применения, эквивлентном управлении и прочих нюансах. Если что, то релейные алгоритмы очень распространены во многих задачах. Например, отопление.

                                                                    0

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

                                    0
                                    Задам вопрос всем, а в особенности vasipup и petuhoff.
                                    А с регуляторами ADRC кто-нибудь работал? Есть хоть какой-нибудь пример, чтобы почитать, как там рассчитывается (моделируется, выпекается, не знаю что ещё) супервайзер?
                                    У меня даже есть код под STM с ADRC регулятором для стабилизации коптера. Только там понятно ноль целых ноль десятых. Куча магических циферок.
                                    Хотя на видео ADRC выглядит ну оооочень внушительно:
                                    Видео

                                    Смотришь, и думаешь «Ну блин, ну как?»

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

                                        Судя по обрывкам статей и вики ADRC это наблюдатель + ПИД.

                                        0

                                        Смотря что включается в ADRC. Это может быть Active Disturbance Rejection, тогда, как написал FGV, это (часто) номинальный контролер как для системы без возмущений + наблюдатель возмущения. А может быть Adaptive Disturbance Rejection, тогда там вариантов больше.

                                          +1
                                          Про наблюдатели для электропиривода, есть статья от разработчкиа библиотеки «Электропривод» в SimInTech Калачева Юрия Николаевича. У него есть аккаутн на хабре. И я его статью про модельно ориентированное размещал ранеее. elprivod.nmu.org.ua/files/automaticED/kalachev_yu_n_nablyudateli_sostoyaniya_v_vektornom_elektropr.pdf
                                            0
                                            Спасибо, ознакомлюсь со статьёй.
                                            0
                                            У меня есть сейчас на руках модель с автоуспокоителем колебания груза на подвеске октакоптера. там дополнительно меряют отклоенени груза и добавляют поправку в ПИД регулытор
                                            0

                                            мимо

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

                                            Самое читаемое