Разработка новых конструкторских решений с использованием оптимизации формы

Walter Frei 29/12/2015
Share this on Facebook Share this on Twitter Share this on Google+ Share this on LinkedIn

Вы никогда не были уверены в том, как достичь наилучшей формы конструкции при разработке? Если это так, то вы можете ознакомиться с функционалом под названием Оптимизация формы и добавить его в набор ваших навыков моделирования в COMSOL Multiphysics. Сегодня мы рассмотрим основные принципы оптимизации формы и продемонстрируем её применение на классической задаче.

Краткая информация об оптимизации формы

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

Оптимизация геометрических размеров — один из наиболее распространенных методов оптимизации. Этот подход включает в себя изменение проектных CAD-размеров непосредственно для минимизации массы, как показано в нашей учебной модели Многоуровневая оптимизация кронштейна. В этом примере мы используем так называемые безградиентные методы для оптимизации размеров и расчета зависимостей между размерами, максимальным напряжением и минимальной частотой собственных колебаний. Эти методы очень универсальны в отношении различных целевых функций и накладываемых ограничений. Тем не менее, одним из недостатков этих методов является необходимость многократного перестроения сетки для численной аппроксимации чувствительности целевой функции и накладываемых ограничений с учетом конструктивных параметров модели.

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

Оптимизация формы — это расширение ранее разработанных концепций и оно учитывает не просто линейные изменения размеров, но и произвольные изменения формы. Геометрия модели задается при помощи конструктивных параметров, использующих набор базисных функций, которые могут описывать совершенно произвольные формы. Давайте рассмотрим пример!

Задача оптимизации формы: Толщина балки

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

Cantilevered beam with nonuniform load Разработка новых конструкторских решений с использованием оптимизации формы
Консольная балка с неравномерно распределенной нагрузкой. Точка А не должна отклоняться более чем на заданную величину. На рисунке также показана конечно-элементная сетка.

Для начала, давайте выберем конструктивные параметры. Длина балки и толщина заркепленного конца фиксированы. Мы можем изменять толщину балки по длине. Несколько проще задать изменение толщины от начальной конфигурации. Но вместо этого введем функцию DT(X), которая изначально равна нулю по всей длине балки.

Optimization problem for beam thickness Разработка новых конструкторских решений с использованием оптимизации формы
В задаче оптимизации рассматривается изменение толщины балки.

Затем, давайте представим изменение толщины через множество полиномов Бернштейна четвертого порядка:

DT(\bar X)=T_0\left[C_0 (1-\bar X)^4 + C_1 \bar X (1-\bar X)^3 + C_2 \bar X^2 (1-\bar X)^2 +C_3 \bar X^3 (1-\bar X)^1 +C_4 \bar X^4\right]

выраженных через приведенные параметры: \bar X = X/L_0. Важно отметить, что функция масштабируется так, что полиномиальные коэффициенты имеют значение порядка единицы. Опять же, мы делаем это для масштабирования.

Так как толщина балки при X=0 точно определена, DT(\bar X)=0, зафиксируем C_0=0 так, чтобы этим членом можно было пренебречь. Для свободного конца мы добавим ограничение, чтобы балка не была слишком тонкой: C_4<0.9.

В области между концами балки мы также добавим некоторые условия, чтобы ограничить дальнейший объем расчета. Можно добавить следующее ограничение: 0 < DT(\bar X) < 0.9T0. Однако, это ограничение имеет недостаток: Оно позволило бы толщине балке колебаться, но, исходя из начальных условий, мы знаем, что это не допустимо. Нет никакой пользы в том, что толщина балки будет увеличиваться по всей длине. Вместо этого мы можем добавить ограничение на производную: DT^\prime(\bar X) > 0. Это ограничение заставит толщину балки монотонно меняться по длине и его дополнительное преимущество в том, что оно обязательно удовлетворяет условию: 0 < DT(\bar X) < 0.9T0.

Существует еще одно ограничение, которое необходимо рассмотреть — это амплитуда перемещения точки на правом краю балки. Необходимо, чтобы амплитуда колебаний точки A была меньше, чем заданная величина u_{max}. Зная все эти условия и ограничения, мы можем записать задачу оптимизации, как:

\begin{aligned}& \underset{C_1 \cdots C_4}{\text{minimize:}}& Mass/M_0 \\& \text{subject to:}& C_4 < 0.9 \\& & |\mathbf{u}_A/u_{max}| < 1\end{aligned}

Здесь целевая функция приведена к начальной массе балки, M_0, и это сделано для масштабирования целевой функции таким образом, чтобы она была порядка единицы. Аналогично, амплитуда перемещения конца балки, |\mathbf{u}_A|, приведена к максимально допустимому смещению, u_{max}. Приведенное перемещение должно быть меньше единицы. Давайте теперь посмотрим, как подобная задача решается в COMSOL Multiphysics с использованием модуля Оптимизация.

Реализация поставленной задачи в COMSOL Multiphysics

Мы можем начать с нашей изначальной конструкции, простой балки с фиксированной длиной и равномерной толщиной. Балка неподвижно закреплена с левого конца, на нее действует неравномерная нагрузка по верхней поверхности, которая изменяется как \bar X^4(1-\bar X ). Для начала зададим функцию изменения толщины. Полиномиальная функция, описанная ранее, задается переменной DT, как показано на скриншоте ниже. Выражение Xg относится к исходной, недеформированной геометрии в направлении оси x. Переменная dDTdX является производной этой функции, приведенной к направлению по оси x. Два глобальных параметра, L0 and T0, определяют длину и максимальную толщину.

Change in thickness function and derivative  Разработка новых конструкторских решений с использованием оптимизации формы
Скриншот, показывающий задание функции толщины и ее производную.

Изменение толщины используется в интерфейсе Deformed Geometry (Деформированная геометрия) для того, чтобы определить, как изменяется весь объем балки с изменением толщины. Поскольку изменяется только толщина, можно использовать линейное преобразование, как показано ниже.

Prescribed displacement in beam Разработка новых конструкторских решений с использованием оптимизации формы
Изменение формы балки полностью описаны.

Теперь мы можем настроить физический интерфейс Optimization. Он позволяет легко настраивать и более сложные задачи оптимизации с рядом ограничений. Соответствующие настройки показаны на скриншотах ниже, начиная с задания целевой функции. Узел Интегральная целевая функция (Integral Objective) интегрирует плотность материала по всей области и нормирует данную величину на начальную массу.

Optimization objective to minimize mass Разработка новых конструкторских решений с использованием оптимизации формы
Задачей оптимизации является минимизация массы.

Ниже приведены настройки узла Глобальные управляющие переменные (Global Control Variables). Четырем переменным, а именно: C1, C2, C3, и C4, задается нулевое начальное значение, что эквивалентно начальным размерам балки. Переменной C4 задается верхний предел значения, а масштабирование остальных переменных остается равным единице.

Defined control variables boundaries and scaling Разработка новых конструкторских решений с использованием оптимизации формы
Задание контрольных переменных, ограничений на их изменения и масштабирования.

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

Constraint on derivative  Разработка новых конструкторских решений с использованием оптимизации формы
Ограничение производной по длине балки задается в узле Pointwise Inequality Constraint.

Наконец, максимальное смещение точки А на конце балки ограничено заданной величиной. Это значение задается в узле Point Sum Inequality Constraint (Ограничение в виде неравенства в точке).

Implementing constraint on normalized peak displacement Разработка новых конструкторских решений с использованием оптимизации формы
Задание ограничения на приведенное максимальное отклонение точки.

Наша задача оптимизации почти настроена. Единственный оставшийся шаг — добавить исследование Optimization (Оптимизация) во вкладку Study и выбрать решатель SNOPT, основанный на градиентном методе, который позволит максимально быстро решить данную задачу. Все остальные настройки можно оставить по умолчанию. Целевая функция и граничные условия автоматически подгружаются из интерфейса Оптимизация.

Optimization solver settings Разработка новых конструкторских решений с использованием оптимизации формы
Соответствующие настройки решателя.

Результаты показаны на картинке ниже. Определена оптимальная форма для данной геометрии. Толщина с левого края максимальна и она монотонно изменяется по всей длине балки. Т.к. именно такая деформация и ожидалась, была использована структурная сетка типа Mapped.

Optimized shape of a beam Разработка новых конструкторских решений с использованием оптимизации формы
Оптимизированная форма балки, которая позволяет минимизировать массу при неоднородно распределенной нагрузке и ограничениях. На рисунке изображен градиент распределения расчетных деформаций с приложенной нагрузкой и визуализацией сеткой.

Краткое резюме по использованию оптимизации формы для разработки новых конструкций

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

Мы можем избежать таких проблем, путем разделения исходного интервала на несколько подинтервалов, применив различные функции низшего порядка к каждому интервалу (кусочно-полиномиальному). Могут применяться и другие базисные функции, выходящие за рамки уравнения Бернштейна, такие как полиномы Чебышева и ряды Фурье. Учебная модель Оптимизация геометрии акустического излучателя, доступная в нашей галерее приложений, демонстрирует пример вышесказанного.

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

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


Загрузка комментариев...

Темы публикаций


Теги