Расчеты конструкций с помощью математических моделей и численных методов (Метод Конечных Объемов, Метод Конечных Элементов):
Метод конечных элементов (МКЭ) — это численный метод решения дифференциальных уравнений с частными производными, а также интегральных уравнений, возникающих при решении задач прикладной физики. Метод широко используется для решения задач механики деформируемого твёрдого тела, теплообмена, гидродинамики и электродинамики.
Идея метода
Суть метода следует из его названия. Область, в которой ищется решение дифференциальных уравнений, разбивается на конечное количество подобластей (элементов). В каждом из элементов произвольно выбирается вид аппроксимирующей функции. В простейшем случае это полином первой степени. Вне своего элемента аппроксимирующая функция равна нулю. Значения функций на границах элементов (в узлах) являются решением задачи и заранее неизвестны. Коэффициенты аппроксимирующих функций обычно ищутся из условия равенства значения соседних функций на границах между элементами (в узлах). Затем эти коэффициенты выражаются через значения функций в узлах элементов. Составляется система линейных алгебраических уравнений. Количество уравнений равно количеству неизвестных значений в узлах, на которых ищется решение исходной системы, прямо пропорционально количеству элементов и ограничивается только возможностями ЭВМ. Так как каждый из элементов связан с ограниченным количеством соседних, система линейных алгебраических уравнений имеет разрежённый вид, что существенно упрощает её решение.
Если говорить в матричных терминах, то собираются так называемые матрицы жёсткости (или матрица Дирихле) и масс. Далее на эти матрицы накладываются граничные условия (например, при условиях Неймана в матрицах не меняется ничего, а при условиях Дирихле из матриц вычёркиваются строки и столбцы, соответствующие граничным узлам, так как в силу краевых условий значение соответствующих компонент решения известно). Затем собирается система линейных уравнений и решается одним из известных методов.
С точки зрения вычислительной математики, идея метода конечных элементов заключается в том, что минимизация функционала вариационной задачи осуществляется на совокупности функций, каждая из которых определена на своей подобласти, для численного анализа системы позволяет рассматривать его как одну из конкретных ветвей диакоптики — общего метода исследования систем путём их расчленения.
Иллюстрация метода на одномерном примере
Функция на
H 0 1 , {\displaystyle H_{0}^{1},} с нулевыми значениями на концах (голубая), и аппроксимация этой функции отрезками (красная).
Базисные функции vk (голубые) и линейная комбинация из них, которая аппроксимирует искомую функцию (красная).
Визуализация деформации машины при асимметричном ударе, используя метод конечных элементов.
Пусть в одномерном пространстве Р1 необходимо решить следующее одномерное дифференциальное уравнение для нахождения функции u {\displaystyle u} на промежутке от 0 до 1. На границах области значение функции u {\displaystyle u} равно 0:
- P1 : { u ″ ( x ) = f ( x ) in ( 0 , 1 ) , u ( 0 ) = u ( 1 ) = 0 , {\displaystyle {\mbox{ P1 }}:{\begin{cases}u''(x)=f(x){\mbox{ in }}(0,1),\\u(0)=u(1)=0,\end{cases}}}
где f {\displaystyle f} известная функция, u {\displaystyle u} неизвестная функция от x {\displaystyle x} . u ″ {\displaystyle u''} вторая производная от u {\displaystyle u} по x {\displaystyle x} . Решение поставленной задачи методом конечных элементов разобьём на 2 этапа:
- Переформулируем граничную задачу в так называемую слабую (вариационную) форму. На этом этапе вычислений почти не требуется.
- На втором этапе разобьём слабую форму на конечные отрезки-элементы.
После этого возникает проблема нахождения системы линейных алгебраических уравнений, решение которой аппроксимирует искомую функцию.
Если u {\displaystyle u} есть решение, то для любой гладкой функции v {\displaystyle v} , которая удовлетворяет граничным условиям v = 0 {\displaystyle v=0} в точках x = 0 {\displaystyle x=0} и x = 1 {\displaystyle x=1} , можно записать следующее выражение:
(1) ∫ 0 1 f ( x ) v ( x ) d x = ∫ 0 1 u ″ ( x ) v ( x ) d x . {\displaystyle \int _{0}^{1}f(x)v(x)\,dx=\int _{0}^{1}u''(x)v(x)\,dx.}
С помощью интегрирования по частям преобразуем выражение (1) к следующей форме:
(2) ∫ 0 1 f ( x ) v ( x ) d x = ∫ 0 1 u ″ ( x ) v ( x ) d x = u ′ ( x ) v ( x ) | 0 1 − ∫ 0 1 u ′ ( x ) v ′ ( x ) d x = − ∫ 0 1 u ′ ( x ) v ′ ( x ) d x = − ϕ ( u , v ) . {\displaystyle {\begin{aligned}\int _{0}^{1}f(x)v(x)\,dx=\int _{0}^{1}u''(x)v(x)\,dx\\=u'(x)v(x){\bigg |}_{0}^{1}-\int _{0}^{1}u'(x)v'(x)\,dx\\=-\int _{0}^{1}u'(x)v'(x)\,dx=-\phi (u,v).\end{aligned}}}
Оно получено с учётом того, что v ( 0 ) = v ( 1 ) = 0 {\displaystyle v(0)=v(1)=0} .
Разобьём область, в которой ищется решение
- u ∈ H 0 1 {\displaystyle u\in H_{0}^{1}} такое, что
- ∀ v ∈ H 0 1 , − ϕ ( u , v ) = ∫ 0 1 f ( x ) v ( x ) d x {\displaystyle \forall v\in H_{0}^{1},\;-\phi (u,v)=\int _{0}^{1}f(x)v(x)dx}
на конечные промежутки, и получим новое пространство V {\displaystyle V} :
- (3) u ∈ V {\displaystyle u\in V} такое, что
- ∀ v ∈ V , − ϕ ( u , v ) = ∫ 0 1 f ( x ) v ( x ) d x {\displaystyle \forall v\in V,\;-\phi (u,v)=\int _{0}^{1}f(x)v(x)dx}
где V {\displaystyle V} кусочная область пространства H 0 1 {\displaystyle H_{0}^{1}} . Есть много способов для выбора базиса V {\displaystyle V} . Выберем в качестве базисных функций такие v k {\displaystyle v_{k}} , чтобы они представлялись прямыми линиями (полиномами первой степени):
- v k ( x ) = { x − x k − 1 x k − x k − 1 , x ∈ [ x k − 1 , x k ] , x k + 1 − x x k + 1 − x k , x ∈ [ x k , x k + 1 ] , 0 , x ∉ [ x k − 1 , x k + 1 ] {\displaystyle v_{k}(x)={\begin{cases}{x-x_{k-1} \over x_{k}\,-x_{k-1}}&{\mbox{, }}x\in [x_{k-1},x_{k}],\\{x_{k+1}\,-x \over x_{k+1}\,-x_{k}}&{\mbox{, }}x\in [x_{k},x_{k+1}],\\0&{\mbox{, }}x\not \in [x_{k-1},x_{k+1}]\end{cases}}}
для k = 1 , … , n − 1 {\displaystyle k=1,\ldots ,n-1} (в данном примере n = 5 {\displaystyle n=5} )
Если теперь искомое приближённое решение представить виде u ( x ) = ∑ k = 1 n − 1 u k v k ( x ) {\displaystyle u(x)=\sum _{k=1}^{n-1}u_{k}v_{k}(x)} , а функцию f ( x ) {\displaystyle f(x)} аппроксимировать как f ( x ) = ∑ k = 0 n f k v k ( x ) {\displaystyle f(x)=\sum _{k=0}^{n}f_{k}v_{k}(x)} , то с помощью (3) можно получить следующую систему уравнений относительно искомых u k {\displaystyle u_{k}} :
- − ∑ k = 1 n − 1 u k ϕ ( v k , v j ) = ∑ k = 0 n f k ∫ v k v j d x {\displaystyle -\sum _{k=1}^{n-1}u_{k}\phi (v_{k},v_{j})=\sum _{k=0}^{n}f_{k}\int v_{k}v_{j}dx} ,
где j = 1 , … , n − 1 {\displaystyle j=1,\ldots ,n-1} .
Преимущества и недостатки
Метод конечных элементов сложнее метода конечных разностей в реализации. У МКЭ, однако, есть ряд преимуществ, проявляющихся на реальных задачах: произвольная форма обрабатываемой области; сетку можно сделать более редкой в тех местах, где особая точность не нужна.
Долгое время широкому распространению МКЭ мешало отсутствие алгоритмов автоматического разбиения области на «почти равносторонние» треугольники (погрешность, в зависимости от вариации метода, обратно пропорциональна синусу или самого острого, или самого тупого угла в разбиении). Впрочем, эту задачу удалось успешно решить (алгоритмы основаны на триангуляции Делоне), что дало возможность создавать полностью автоматические конечноэлементные САПР.