Аннотация:
В данной работе представлен и реализован алгоритм, выполняющий топологическую оптимизацию распределения массы двумерного тела под нагрузкой. Конечной целью алгоритма является минимизация веса тела при ограничении на максимальные напряжения в его точках. За основу взята идея переменной плотности, а также алгоритм BESO, добавляющий и удаляющий элементы в зависимости от узловых напряжений.
Алгоритм использует метод конечных элементов и представляет из себя итеративный процесс, на каждом шаге которого сначала происходит вычисление напряжений в теле при помощи CAE Fidesys, а затем результаты расчёта анализируются. По результатам анализа модули Юнга в узлах конечноэлементной сетки изменяются, чтобы отражать новое распределение массы, скорректированное для лучшего соответствия нагрузкам. Особенностью используемого подхода является использование целевой функции со слагаемым, которое представляет из себя сумму квадратов разностных производных плотности по четырём направлениям. Это позволяет избежать резких изменений плотности и возникновения решётчатых структур на ранних итерациях. Для определения плотностей на каждой итерации используется модификация метода градиентного спуска Adam.
Реализованный алгоритм верифицирован на ряде тестовых примеров для плоских статических задач теории упругости. Приведены результаты расчетов, выполнено сравнение с результатами, полученными другими авторами. Для одной из задач представлены результаты расчетов на разных сетках, которые позволяют сделать вывод о сеточной сходимости алгоритма.