Расчет чувствительности модели в COMSOL Multiphysics

Расчет чувствительности модели в COMSOL Multiphysics

Одна из полезных, но, исходя из опыта технической поддержки, редко используемых возможностей, доступных в COMSOL Multiphysics, — это функционал по расчету чувствительности модели (Design Sensitivities). Полагая, что у вас существует некоторая целевая функция, которая рассчитывается на основе вашей конечно-элементной модели, вы можете легко вычислить насколько чувствительна эта целевая функция к любому входному параметру модели, используя при этом только базовый пакет COMSOL Multiphysics. В этой статье мы рассмотрим, как использовать данную возможность.

Вводный пример: Параллельный плоский конденсатор

Давайте начнем с очень простой задачи — расчета ёмкости двух параллельных плоских квадратных металлических пластин с длиной стороны L=1\:m , разделенных на расстояние D=0.1\:m диэлектриком с относительной проницаемостью \epsilon_r = 2 между пластинами. Допуская, что краевые эффекты незначительны (довольно строгое допущение, но мы используем его для простоты), можно записать аналитическое выражение для расчета ёмкости:

где \epsilon_0 — диэлектрическая постоянная.

Мы можем легко продифференцировать это выражение по трем входным параметрам, чтобы найти чувствительность модели:

Теперь давайте посмотрим на вычисление этих же чувствительностей с использованием функциональных возможностей COMSOL Multiphysics.

Схема модели параллельного плоского конденсатора без учета краевых эффектов.

Мы можем начать создание модели, используя физический интерфейс Electrostatics (Электростатика). Наша расчетная область будет блоком длиной L , высотой D с относительной диэлектрической проницаемостью \epsilon_r . Граничное условие на нижней поверхности — узел Ground (заземление, нулевой потенциал), на верхней границе – узел Electric Potential (электрический потенциал), задающий напряжение V_0=1\:V на поверхности. На боковых сторонах блока по умолчанию задается граничное условие узлом Zero Charge (Нулевой заряд), которое равнозначно допущению о незначительности краевых эффектов. Мы можем рассчитать эту модель и найти распределение электрического поля между двумя пластинами. На основе этого решения мы также можем вычислить ёмкость системы, рассчитыв интеграл от плотности электрической энергии W_e по всему объёму модели:

Это уравнение предполагает, что одна пластина (контакт) находится под напряжением V_0 , а все остальные — заземлены. Интеграл от плотности электрической энергии по всему объему автоматически вычисляется через встроенную переменную comp1.es.intWe и мы можем его использовать, подставляя в выражение для нахождения емкости. Конечно, мы хотим сравнить это значение и наши расчетные чувствительности с аналитическими значениями, таким образом, мы сможем определить отдельные переменные для этих величин. Мы можем использовать встроенный оператор дифференцирования, d(f(x),x), для расчета чувствительности, как показано на скриншоте ниже.

Вкладка Variables (переменные) используется для вычисления ёмкости модели через плотность электрической энергии, а также для вычисления точной ёмкости и её чувствительности. Встроенный оператор дифференцирования, например d(C_exact,L), может использоваться для расчета чувствительности.

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

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

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

Мы введём два новых глобальных параметра Global Parameters, dL и dD , которые соответствуют изменению длины L и высоты D модели. Они будут использоваться в интерфейсе Deformed Geometry (Деформированная геометрия), который содержит четыре узла. Во-первых, узел Free Deformation (Свободная деформация) применяется к домену и означает, что данный расчетный домен может деформироваться на основе примененных к нему граничных условий. Во-вторых, узлы Prescribed Mesh Displacement (Заданная деформация сетки) применяются к шести сторонам домена. На скриншоте ниже деформация (dL) задана по нормали к граням, как показано на рисунке выше.

Узел Prescribed Mesh Displacement используется для задания перемещения по нормали к границам домена.

Наконец, чтобы рассчитать чувствительность, мы должны добавить во вкладке Study шаг исследования Sensitivity (Анализ чувствительности). Оно доступно, если автивировать расширенные настройки, как показано на скриншоте ниже. Необходимо ввести выражение для целевой функции, в данном случае C_computed , а также все конструктивные параметры, анализ которых необходим. Также выберете значения конструктивных параметров, к которым вы хотите найти чувствительность модели. Так как dL и dD выражают приращение размеров, мы можем их обнулить, чтобы вычислить чувствительность для исходной модели при L=1\:m и D=0.1\:m . Параметр, задающий диэлектрическую проницаемость материала, не требует специальной обработки, его нужно лишь выбрать в качестве одного из параметров в исследовании Sensitivity (Анализ чувствительности).

Можно выбрать два варианта градиентного метода, как показано на скриншоте ниже:

  • Adjoint method (метод сопряженных уравнений) является очень быстрым и время решения не будет зависеть от количества анализируемых параметров. Фактически, этот метод добавляет только эквивалент одной итерации Ньютона к общим вычислительным затратам.
  • Forward method (метод решения прямой задачи) – увеличивает время решения с увеличением количества параметров, но дополнительно учитывает чувствительность решения к изменениям параметров, что может быть полезно в некоторых случаях.

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

После решения вы можете перейти во вкладку Results (Результаты) > Derived Values (Расчётные величины) > Global Evaluation (Глобальные вычисления) и ввести выражения fsens(dL) , fsens(dD) и fsens(epsilon_r) , чтобы рассчитать чувствительность ёмкости к конструктивным параметрам. Конечно, вы также можете сравнить их с ранее вычисленными аналитически чувствительностями и увидеть полное соответствие.

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

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

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

Расчет чувствительности в настоящее время недоступен при расчете на собственные значения (eigenvalue), трассировке лучей (ray tracing) и трассировке частиц (particle tracing).

Сами конструктивные параметры обычно являются глобальными переменными (Global Parameters), но вы также можете использовать исследование Sensitivity (Анализ чувствительности) для добавления Control Variable Field (контрольные переменные), определеленные на уровне домена, границы, ребрв или точки по желанию.

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

Заключительные замечания

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

Знания, полученные в этой статье, необходимы, когда мы начинаем использовать эти чувствительности для улучшения нашей целевой функции, т.е. при оптимизации модели. Это может быть сделано с помощью модуля Оптимизация (Optimization Module), который мы рассмотрим в следующей статье блога.

📎📎📎📎📎📎📎📎📎📎