Ansys 2022 R2

Градиентная оптимизация Adjoint Solver в Ansys Fluent

Аватар пользователя katcheg
0 756

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

Программный комплекс ANSYS предлагает целый набор инструментов оптимизации. С некоторыми из них мы уже хорошо знакомы (например, DesignXplorer, при помощи которого мы можем выполнять параметрические исследования), а о некоторых из них мы уже слышали, но познакомиться поближе по определённым причинам ещё не успели.

Данная статья посвящена решателю Adjoint, инструменту непараметрической оптимизации, встроенному в ANSYS Fluent, который не только в значительной мере может помочь нам сэкономить время и ресурсы, но и расширить возможности анализа потока в целом.

 

Что такое решатель Adjoint?

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

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

 

Рабочий процесс Adjoint Solver

Рисунок 1. Рабочий процесс решателя Adjoint

Рабочий процесс решателя Adjoint состоит из четырёх шагов. В первую очередь должен быть выполнен расчёт потока (1) и далее мы рассчитываем производные заданного нами целевого параметра (2). Результатом данного вычисления является чувствительность, оценка которой (3) может быть использована для того, чтобы обновить сетку и улучшить конструкцию.
Последний шаг является необязательным, так как информацию, полученную при анализе чувствительности, мы можем использовать для доработки конструкции вручную (особенно полезно при необходимости внесения больших изменений) или для оценки сеточной независимости решения. Но, если же мы выбираем деформировать текущую сетку (4), после этого необходимо выполнить CFD расчёт, чтобы подтвердить результаты оптимизации и оценить изменение целевого параметра.

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

 

Целевые параметры

Для работы с Adjoint решателем доступны две категории целевых параметров:

  • Первичные параметры (Observable types) – это значения параметров, например, поверхностные интегральные величины
  • Вторичные или составные параметры (Operation types) – это операции над первичными целевыми параметрами, например, произведение или среднее арифметическое

Рисунок 2. Первичные и вторичные целевые параметры

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

Список переменных поля, которые мы можем использовать в целевых параметрах, достаточно обширен и удовлетворяет большинство нужд инженеров (рисунок 3). Но что же делать тем, чьей желаемой переменной нет в списке доступных? Им необходимо подумать при использовании какой переменной оптимизация будет выполнена в том же самом направлении.

Рисунок 3. Переменные поля на примере целевых параметров типа поверхностный и объёмный интеграл

 

Расчётные методы решателя Adjoint

После выбора целевого параметра нам необходимо выбрать и настроить расчётные методы, используемые при Adjoint решении. От выбранных нами расчётных методов и подключенных уравнений зависит точность прогноза изменения целевого параметра и изменения конструкции. В идеале, схемы дискретизации и используемые модели для Adjoint и CFD расчётов должны совпадать, но рекомендуется использовать схемы более низкого порядка (для импульса и энергии) в начале оптимизации для стабилизации и ускорения расчёта. Сжимаемость, энергию и турбулентность необходимо подключать только в том случае, если они непосредственно влияют на целевой параметр. Расчёт турбулентности для Adjoint доступен только для модели GEKO и подключать её к расчётному проекту рекомендуется при небольшой величине изменения целевого параметра, при анализе чувствительности к турбулентности и лишь на единичных итерациях изменения конструкции, когда форма конструкции близка к оптимальной.

Рисунок 4. Расчётные методы решателя Adjoint

Для удобства настройки моделей окно задания расчётных методов Adjoint поделено на две части. Слева для справки находятся расчётные методы CFD решателя, а справа мы выбираем настройки для Adjoint решения. Также, с недавнего времени, внизу окна появилась опция настройки степени сопряжённости решателя: частично или полностью сопряжённый, и кнопки для автоматического подбора параметров для полного совпадения настроек, баланса между точностью и стабильностью решения или сброса на параметры по умолчанию.

 

Методы стабилизации расчёта

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

Рисунок 5. Методы стабилизации Adjoint расчёта

Команда разработчиков ANSYS постоянно работает над улучшением существующих инструментов моделирования и в версии 2019R3 появился новая схема стабилизации решения под названием Residual Minimization Scheme (RMS). Она гарантированно уменьшает уровень невязок при помощи использования дополнительных циклов итераций для обработки нестабильности решения. Схема Dissipation определяет области нестабильности и корректирует решение с минимальным вмешательством в него для подавления роста неустойчивостей, которые приводят к расхождению решения. Также данная схема позволяет отобразить в графическом окне области нестабильности (конкретные ячейки) при обработке результатов Adjoint расчёта.

 

Обработка результатов Adjoint решения

После завершения расчёта мы переходим к обработке его результатов. В первую очередь мы можем оценить влияние граничных условий на целевой параметр. Для этого необходимо воспользоваться инструментом Reporting, выбрать границу и нажать кнопку Report. По результатам выполнения операции в консоли Fluent будет выведена информация о том, насколько изменится величина целевого параметра и что необходимо сделать со значением на границе, чтобы улучшить целевой параметр. Особенно полезна данная возможность может быть для сложных вторичных параметров.

Рисунок 6. Влияние граничных условий на целевой параметр

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

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

  • Sensitivity to Mass Sources

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

  • Sensitivity to Energy Sources

Демонстрирует в каких участках нагрев улучшит или ухудшит значение целевого параметра

  • Sensitivity to Viscosity

При отключенной турбулентности в Adjoint расчёте предоставляет косвенную информацию о влиянии повышения вязкости на соответствующие области

  • Sensitivity to Flow Blockage

Показывает, где блокировка потока улучшит или ухудшит значение целевого параметра

Так же есть переменные чувствительности, значения которых меняются от 0 до положительного значения, например:

  • Sensitivity to body forces

Показывает в каком направлении должна действовать сила, чтобы улучшить целевой параметр

  • Shape sensitivity magnitude

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

 

Заключение

Adjoint Solver в ANSYS Fluent – это инструмент для оптимизации геометрии, расширяющий возможности CFD моделирования. При помощи него мы даже на ранних этапах жизненного цикла изделия выявить не только наиболее важные параметры течения и конструкции, влияющие на эффективность изделия.

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

 

Добавить комментарий

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