Main menu

Анализ чувствительности в численных моделях: сопряженные системы (Adjoint method)

Оптимизация формы в условиях миллионов параметров

В современной промышленности численные методы не просто проверяют, выдержит ли деталь нагрузку; они используются для активной оптимизации дизайна. Классический пример — проектирование профиля крыла пассажирского авиалайнера. Цель инженера — найти такую форму крыла (распределение кривизны и толщины), которая минимизирует аэродинамическое сопротивление при сохранении заданной подъемной силы (чтобы сэкономить топливо). Форма крыла в CAD-системе может задаваться десятками тысяч контрольных точек. Таким образом, перед нами стоит задача многомерной оптимизации: у нас есть один целевой функционал (сопротивление) и 10 000 переменных (координаты точек).

Чтобы применить эффективный метод градиентного спуска (или алгоритмы типа BFGS), оптимизатору нужен градиент: массив производных целевого функционала по каждому из 10 000 параметров. Стандартный подход «черного ящика» (численное дифференцирование конечными разностями) требует немного изменить один параметр, перестроить сетку, запустить тяжелейший решатель уравнений Навье-Стокса (что может занять сутки на кластере), записать изменение сопротивления и повторить это 10 000 раз. Проектирование одного крыла заняло бы десятки лет. Математическое решение, которое спасло аэрокосмическую отрасль, называется методом сопряженных уравнений (Adjoint method).

Отклонения и операторы: математическая алхимия

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

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

Градиент за цену одного решения

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

Результатом этого быстрого интегрирования является полный, 100% точный вектор градиента сразу по всем 10 000 геометрическим параметрам формы крыла! Вычислительная стоимость получения этого гигантского градиента абсолютно не зависит от количества параметров проектирования. Она всегда равна стоимости решения примерно одной прямой и одной сопряженной задачи. То есть вместо 10 000 запусков симулятора нам требуется всего 2. Внедрение метода Adjoint в пакеты типа ANSYS Fluent и OpenFOAM позволило конструкторам Формулы 1 и авиационным бюро (Boeing, Airbus) использовать топологическую оптимизацию для потоков жидкостей и газов, создавая сверхэффективные бионические каналы охлаждения и профили с минимальным волновым сопротивлением.

Оценить
(0 votes)
Вверх

Соц. сети