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

  • Tutorial

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



Для настройки регуляторов существует большое количество средств, методик и обеспечивающих оптимизацию законов регулирования. Если мы используем средства моделирования (типа Matlab Simulink), то можно сразу посмотреть на процесс оптимального управления непосредственно «вживую», на графиках. Возникает вопрос, если у нас есть метод для оптимизации параметров системы управления, можно ли оптимизировать не коэффициенты ПИД регулятора, а сам объект управления? Другими словами, не подбирать регуляторы для явно неудачной системы, а подобрать параметры самой системы. Ведь для компьютерной модели что коэффициенты ПИД, что размеры конструкции – это просто переменные, которые можно менять.


Немного теории «на пальцах»


Классическая задача оптимизации управления представлена на рисунке 1.
У нас есть модель объекта и модель регулятора. Мы задаем воздействие (необязательно ступенчатое). Создаем некоторую оценку переходного процесса и с помощью блока оптимизации настраиваем один или несколько параметров регулятора для получения наилучшей оценки. (см. рис. 1).



Рисунок 1. Классическая схема оптимизации регулятора.

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



Рисунок 2. Оптимизация параметров объекта.

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


Постановка задачи


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



Рисунок 3. Модель топливной системы вертолета.

Диаметры трубопроводов могут быть от 10 до 70 мм. Задача: подобрать диаметр трубопроводов 1, 2, 3, 4, 5, 6, таким образом, чтобы обеспечить равномерную заправку баков из одного источника. Поскольку в результате компоновки вертолета баки оказались разными и тракты трубопроводов несимметричные, а так же существует система инертного газа, мы получаем задачу подбора диаметров по заданному расходу в каждый бак.
Рассмотрим несколько способов решения задачи:


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


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



Рисунок 4. Подбор диметров с помощью интегрального регулятора.

Работает данная модель так:

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

Коэффициент интегратора определяет скорость изменения диаметра в процессе расчета.

Интегратор ограничен верхним и нижним значением диаметра трубопровода.

Начальное положение интегратора и, следовательно, начальный диаметр трубопровода приняты равным 10 мм. (0.01)

Параметры векторного интегратора приведены на рисунке 5.



Рисунок 5. Настройки интегратора для подбора диаметров.

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



Рисунок 6. Отклонения расходов.


Рисунок 7. Подбор диаметров.

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



Рисунок 8. Отклонения расходов от заданных при Ki = -0.5.

Преимущества оптимизации регулятором:


  • Простота и наглядность.
  • Скорость проведения оптимизации определяется скоростью динамического расчета модели.

Недостатки оптимизации регулятором:


  • Можно использовать только, если есть однозначная и очевидная связь между измеряемым и изменяемым параметрами. Как в нашем примере больше диаметр – больше расход.
  • Дополнительные регуляторы могут вызвать колебания в системе. Например, в нашем случае если коэффициент интегратора принять равным – 2, то система переходит в режим колебаний (см. рис 9).


Рисунок 9. Отклонения расходов от заданных при Ki = — 2.

Подбор параметром блоком оптимизации.


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



Рисунок 10. Схема подбора диаметров с помощью блока оптимизации.

Работает данная модель так:


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


Оптимизация может работать в двух режимах:


  1. оптимизация по полному переходному процессу. Когда для расчёта критерия оптимизации нужно выполнить полное моделирование всего процесса.
  2. оптимизация «на ходу». Когда критерий оптимизации рассчитывается через определенный временной шаг.

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



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

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



Рисунок 12. Отклонения расходов оптимизация с периодом 1 сек.

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



Рисунок 13. Отклонения расходов оптимизация с периодом 1 сек.

Уменьшим периодичность анализа с 1 до 0.5 секунду. Таким образом, за то же время количество расчётов увеличится в 2 раза. В результате удается произвести оптимизацию диаметров трубопроводов за 70 секунд динамического процесса. На графике 14 видно, что метод оптимизации работает. И отклонения расходов стремтся к нулю.



Рисунок 14. Отклонения расходов оптимизация с периодом 0.5 сек.


Рисунок 15. Побор диаметров оптимизацией.

Вывод


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

Поделиться публикацией

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

    +1

    Интересный кейс, в книжках по ТАУ про такое не пишут.

      +1

      Почему не пишут? Первый вариант с интегратором, на сколько я его понял из текста, это базовый extremum seeking. Второй вариант это (опять же, как я его понял из текста) просто численная оптимизация, которая к ТАУ имеет косвенное отношение.

        0
        Тут дело в том, что если объект представить в виде передаточной функции для того что бы анализировать в Matlab или Simulink, то как правило пропадают те реальные физические параметры объекта, которы можно менять методами оптимизации. Например для двигателя, ранее был пример передаточной функции, где ее (передаточной функции) параметры вычисляются как:
        image
        Если мы будем оптимизировть К гтд Т гтд в матлабе, то это нам не даст конкретных значений физических параметров объекта, типа диаметров.
        Поэтому в учебниках приводят модель объекта в виде передаточных функций (как некую физическую и не изменяемую сущность) и начинают оптимизировать регулятор.
          +1
          Кейс интересный, но вы не особенно представляете возможности Simulink. В нем всегда можно было оптимизировать как контроллер, так и объект, как линейный, так и нелинейный.
            0
            Это не связано с возможностями Simulink, просто как только вы представили объект в виду передаточной функции согласно методам ТАУ, у вас конструкторские параметры которые можно оптимизировать, перестали быть явными переменными в формулах. (см. комментарии выше) Например для двигателя, в статье про регулирование газотурбинного двигателя Simulink может подобрать оптимальную величину Кгтд, но каким для этого Кгтд будут величины Мт, Мк, Gto и No Simulinк и любой другой софт использующий методы ТАУ определить не сможет. Поскольку они явно не прописаны в передаточной функции. И этому же одному оптимального значению передаточной функции Кгтд может соответствовать разный набором параметров Мт, Мк, Gto и No.
      +1
      Приятно видеть, что то чему учился (8 факультет МАИ) применяется для решения практических задач.
      Только я не понял — предлагается динамически менять диаметр трубопровода? Задвижками?
        0
        Нет задвижками не прокатит. Задвижками можно побирать шайбы. Ставим в модель задвижку моделируем. получаем по степени открытия задвижки диаметр шайбы, для местного сопротивления. Здесь же в модели, диаметр учитывается в месте с длинной трубопоровода для расчета гидравлического сопротивления всего трубопровода. Просто в компьютерной модели есть возможность задать диаметр друбопровода не постоянным, а переменным и менять его прямо в процессе моделирования переходного процесса. Что и было продемонстрировано.
        0
        Честно говоря, с практической точки зрения задачка бессмысленна. Вязкость керосина меняется в типичном температурном диапазоне в несколько раз, плотность тоже меняется. Рассчитывать на то, что у трубопроводов будет именно такое сопротивление как в модели — очень наивно, а наличие малейших перегрузок просто ставят крест на всех этих расчётах.
        Ещё забавно, что расчёт диаметров ведётся до долей миллиметра, а потом всё равно его нужно будет округлить до стандартного условного прохода (10, 12, 15, 20). Сопротивление трубопровода зависит от диаметра в пятой степени (для турбулентного режима). Так что все доли миллиметра, за которыми вы охотитесь, сжираются стандартами.
        По-хорошему, если важен расход между баками, в системе должно быть регулирующее устройство, а трубы должны быть рассчитаны таким образом, чтобы просто не мешали работе регулятора. Делается это либо на бумажке, исходя из типичных для таких систем допустимых скоростей течения жидкости, либо обычным статическим расчётом гидравлического сопротивления по справочнику. Собственно, по результатам видно, что единственный динамический компонент в этой системе — регулятор настройки диаметров. Задачка выглядит надуманной.
          0
          Конечно сам задача, не реальна, просто численный эксперимент. Но модель использованая для эксперемента воплне реальная. В реальной задачи было изменение высоты полета, а так же учет всех температур, давления за бортом и т.д. и т.п. Но если посмотреть на результат, то видно что даже в такой постановке получились два характерных диаметра 10 и 15.
          В реальной задаче подбирались расходы воздуха для охлаждения отсеков с аппаратурой управления при разных режимах работы, там как раз воздуховоды могут быть разными. Но там модель секретная. Поэтому эксперемент с более солжной моделью.
            0
            А в SimulationХ можно диаметры или там массу на ходу менять?
              0
              Конечно можно. При том, если менять диаметр, жидкость будет «выдавливаться» или «засасываться» из/в трубопровод, а в случае изменения массы будет учитываться придаваемое массе ускорение.
                0
                Вот про это и эксперимент, можно ли фактически менять конструкцию «на ходу» и сработают ли методы оптимизации из ТАУ на более менее реальной модели.
                  0
                  В целом, это ущербный метод оптимизации, т.к. в любой ситуации он моментально скатывается в локальный минимум и там остаётся. Для этой задачи он сгодился, потому что это на самом деле не оптимизация, а поиск единственного решения простенького уравнения. Можно было протестировать его на параболе, этого было бы более чем достаточно для проверки.
                    0
                    Почему единственного? Если начальные условия 70 мм и идти к уменьшению то найдется другое сочетаине диаметров которое обеспечит зданное сочетание расходов. Тут даже два метода дают разные наборы значений. В локальном минимуме теоретически может остатся интегратор, но поскольу их здесь шесть и они друг друга качают из-за связей между баками на графиках 6 и 7 это видно.
                      0

                      Тогда с чего было решено, что именно это сочетание оптимальное?

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

                          Эдак любой статический проектировочный расчёт можно назвать «оптимизацией».
                            0
                            Так расчет здесь не статический, а динамически и методы регулирования и оптимизации из ТАУ, в результате получены необходимые конструктивные размеры. Задача была проверить саму возможность. Можно сделать все трубы одинаковые, тогда заполнение баков будет не равномерное — конструкция рабочая, но не оптимальная. Поэтому как пример пойдет.
                              0

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

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

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

                                  Диаметры там считаются по сути для заданных значений уровня жидкости в баках, а это типичная задачка из сборника Куколевского. Расходы там заданы, так даже метод последовательных приближений не понадобится: всё считается на листке бумаги.
                                    0
                                    Ну получилось как получилось, это же реальная система. Там 6 связанных трубопроводов при общем заданном расходе задача имеет явно не одно решение.

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

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