Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Лекция 17. Метод конечных элементов в строительстве
Основные этапы метода конечных элементов (МКЭ). · Библиотека конечных элементов, · препроцессор, · решатель, · постпроцессор. Библиотеки конечных элементов содержат их модели - матрицы жесткости. Модели конечных элементов различны для разных задач, разных форм конечных элементов, разных наборов координатных функций. Исходными данными для препроцессора являются геометрическая модель объекта, чаще всего получаемая из подсистемы конструирования. Основная функция препроцессора - представление исследуемого объекта (детали) в сеточном виде, т.е. в виде множества конечных элементов. Решатель - это программа, которая собирает модели отдельных конечных элементов в общую систему алгебраических уравнений и решает эту систему одним из методов разреженных матриц. Постпроцессор служит для визуализации результатов решения в удобной для пользователя форме. Основным методом для проведения различных видов анализа является метод конечных элементов. Первое применение этого метода относится к интервалу 1950-1960 года; в этот период он был использован для проведения анализа в строительной механике и самолетостроении. Этот метод получил популярность и в таких сферах, как решение инженерных задач из области статики, динамики, электроники, радиационного анализа. С его помощью можно решать задачи следующего характера:
Метод конечных элементов позволяет конструктору успешно решать задачи расчета сложных конструкций или деталей, путем разбиения их на более мелкие части - конечные элементы. Эти элементы часто называют дискретными, а процесс их выделения - дискретизацией формы. После разбивки дальнейшее расчет на нагрузку проводятся уже для отдельных конечных элементов, каждый из которых вносит свой вклад в характеристику прочности детали. Точки, ограничивающие элемент называются узлами и вместе с проходящими через них линиями образуют конечно-элементную сетку. Для двумерных областей наиболее часто используются элементы в форме треугольников или четырехугольников; как с прямо-, так и с криволинейными границами, чтобы в дальнейшем с достаточной степенью точности аппроксимировать границу любой формы. Для трехмерных областей наиболее употребимы элементы в форме тетраэдра и параллелипипеда, которые также могут иметь прямо- или криволинейные границы. В общем случае метод конечных элементов состоит из 4 этапов: 1. Выделение конечных элементов (разбиение области на конечные элементы); Разбиение области на элементы обычно начинают от её границы, с целью наиболее точной аппроксимации формы границы. Затем производится разбиение внутренних областей. Часто разбиение области на элементы производят в несколько этапов. Сначала разбивают на крупные части, границы между которыми проходят там, где изменяются свойства материалов, геометрия, приложенная нагрузка (другие физические величины). Затем каждая подобласть разбивается на элементы. Стараются избегать резкого изменения размеров конечных элементов на границах подобластей. После разбиения области на конечные элементы осуществляют нумерацию узлов, причем порядок нумерации имеет существенное значение, так как влияет на эффективность последующих вычислений. Это связано со следующим: матрица коэффициентов системы линейных алгебраических уравнений, к которым приводит метод конечных элементов, является сильно разреженной матрицей ленточной структуры. Ненулевые элементы такой матрицы располагаются параллельно главной диагонали. Обозначим через число, представляющее наибольшую разность между номерами ненулевых элементов в строке. Число называется шириной полосы. Чем меньше ширина полосы, тем меньший объем памяти требуется для хранения матрицы при реализации метода конечных элементов в САПР, и тем меньше затраты машинного времени на решение результирующей системы уравнений. Ширина полосы зависит от числа степеней свободы узлов и способа нумерации последних. Информация о способе разбиения на конечные элементы и нумерация узлов является исходной для всех последующих этапов алгоритма метода конечных элементов. При этом требуется указывать не только номер, но и координаты каждого узла, его принадлежность к определенным конечным элементам, информацию о соединении элементов между собой, значения физических параметров объекта в пределах каждого элемента. 2. Определение аппроксимирующей функции для каждого элемента. На этом этапе искомая непрерывная функция аппроксимируется кусочно-непрерывной, определенной на множестве конечных элементов. Эту процедуру можно выполнить один раз для типичного элемента области и затем полученную функцию использовать для остальных элементов области того же вида. В качестве аппроксимирующей функции элементов чаще всего используют полиномы, которые подбираются так, чтобы обеспечить непрерывность искомой функции в узлах и на границах элементов. 3. Объединение конечных элементов в ансамбль. На этом этапе уравнения, относящиеся к отдельным элементам, объединяются в ансамбль, то есть в систему алгебраических уравнений. Полученная система является моделью искомой непрерывной функции. Мы получаем матрицу жесткости. 4. Решение полученной системы алгебраических уравнений. Реальная конструкция аппроксимируется многими сотнями конечных элементов, возникают системы уравнений со многими сотнями и тысячами неизвестных. Решение таких систем уравнений - основная проблема реализации метода конечных элементов. Методы решения зависят от размера разрешающей системы уравнений. В связи с большой размерностью и сильной разреженностью матрицы коэффициентов системы для реализации метода конечных элементов в САПР разработаны специальные способы хранения матрицы жесткости, позволяющее уменьшить необходимый для этого объем оперативной памяти. Матрицы жесткости используются в каждом методе прочностного расчета, используя конечную элементную сетку. Название матрицы жесткости пришло из строительной механики, где МКЭ начал использоваться раньше, чем в других областях техники. Для решения систем уравнений применяются методы двух групп: прямые методы (метод Гаусса), косвенные методы, когда решение определяется на основе последовательной аппроксимации (метод Гаусса-Зейделя).
Методы разбиения области на конечные элементы https://www.keldysh.ru/papers/2006/prep09/prep2006_09.html Среди двух классов методов триангуляции - прямых и итерационных - последние обладают достаточной универсальностью и поэтому, в отличие от прямых, могут быть использованы для триангуляции областей довольно произвольного вида. За эту универсальность приходится расплачиваться существенно большим потреблением ресурсов и более трудоемкой реализацией метода в конкретном алгоритме. В настоящее время разработано большое количество программных пакетов на основе того или иного итерационного метода, реализующих построение сеток (частично или полностью) в автоматическом режиме. Сетки, построенные итерационными методами, как правило, неструктурированы и неоднородны. Неструктурированность обусловлена тем, что топология сетки формируется в процессе построения, и поэтому естественно может варьироваться даже в пределах одной подобласти. По этой же причине однородность если и может возникнуть, то только случайно. Существует алгоритм, который позволяет учитывать информацию о геометрии заданной области и таким образом строить своего рода адаптивные сетки (правда, адаптированные к геометрии, а не к конкретной задаче). Этот алгоритм был разработан группой Марка Шепарда (Mark Shephard) из университета Ренсселаера (США) в 80 годах ХХ столетия и получил название " octree" (его двумерный вариант называется " quadtree"). Идея алгоритма заключается в следующем: исходная область помещается в квадратную сетку, элементы которой последовательно дробятся на более мелкие квадраты до тех пор, пока размеры получаемых в итоге квадрвтных ячеек не достигнут желаемой величины; при этом каждый куб дробится только в том случае, если его грани пересекаются границей области (либо внутри куба целиком оказывается особенности вроде отверстия или полости). Таким образом удается добиться " естественного" увеличения плотности узлов вблизи границ области и ее " особенных" участков. Чтобы избежать значительных перепадов размеров элементов, дополнительно вводят ограничение на степень " раздробленности" соседних элементов - она не должна отличаться более чем на единицу. Рис. 1 иллюстрирует идею метода для двумерного случая. Рис. 1. Раздробление области на квадратные ячейки по алгоритму " quadtree"
Следующим этапом метода является построение треугольной (тетраэдрической) сетки на основе полученного разбиения на квадраты (кубы). Поскольку возможных вариантов размещения узлов на ребрах и гранях кубов/квадратов в такой сетке немного (для квадрата с учетом отражения и поворота - всего 6), для каждого варианта используется свой заранее заданный шаблон. На рис. 2 и рис. 3 показаны 2 набора таких шаблонов: " классический", предложенный Шепардом, и разработанный авторами вариант, основанный на вставке дополнительного узла, позволяющий получить сетки из подобных элементов (и лучшего качества). Рис. 2. " Классический" набор шаблонов для разбиения квадратов в методе " quadtree" Рис. 3. Набор шаблонов с использованием дополнительного внутреннего узла, дающий лучшее качество сетки На рис. 4 приведена сетка, получающаяся в результате применения указанных наборов шаблонов. Заметим, что описанный алгоритм без каких-либо особенностей переносится на случай 3 измерений, поэтому дополнительно рассматривать его нет смысла. Следует также обратить внимание, что полученная сетка не является структурированной, хотя в дальнейшем это не играет никакой роли (так как при граничной коррекции свойство структурированности в любом случае утрачивается).
Рис. 4. Сетка, полученная на основе алгоритма " quadtree": вверху - по классическим шаблонам, внизу - по улучшенным.
Триангуляция Делоне Треугольная сетка на плоскости удовлетворяет критерию Делоне (или является триангуляцией Делоне), если внутрь окружности, описанной вокруг любого треугольника, не попадают никакие другие узлы этой сетки. Рис. 5. Сетка, удовлетворяющая критерию Делоне (слева), и не удовлетворяющая ему (справа). В двумерном случае существует простой метод приведения произвольной триангуляции к триангуляции Делоне. Идея основана на том факте, что пару треугольников, не удовлетворяющих критерию Делоне, можно заменить на пару дуальных к ним треугольников, которые уже обязательно удовлетворяют критерию. Это достигается перестановкой внутреннего ребра четырехугольника, образованного треугольниками (см. рис. 5). Операцию (так называемый " флип", от англ. flip) продолжают итерационно для каждой пары треугольников, не удовлетворяющих критерию, до тех пор, пока такие треугольники остаются. Проверка условия Делоне Проверка условия Делоне. Одна из важнейших операций, выполняемых при построении триангуляции, является проверка условия Делоне для заданных пар треугольников. На практике обычно используют несколько способов проверки. 1. Проверка через уравнение описанной окружности. 2. Проверка с заранее вычисленной описанной окружностью. 3. Проверка суммы противолежащих углов. Проверка через уравнение описанной окружности. Уравнение окружности, проходящей через точки (х1, у1), (х2, y2), (x3, у3) можно записать в таком виде: Другая запись уравнения этой окружности имеет вид где Тогда условие Делоне для Δ ((х1, у1), (х2, y2), (x3, у3)) выполняется только тогда, когда для любой другой точки (x0, y0) триангуляции справедливо неравенство (а · (x02 + у02) –b·x0 + с·у0 – d) · sgn a ≥ 0, т.е. когда точка (x0, y0) не попадает внутрь окружности, описанной вокруг Δ ((х1, у1), (х2, y2), (x3, у3)). Непосредственная реализация такой процедуры проверки требует 29 операций умножения и возведения в квадрат, а также 24 операции сложения и вычитания. Проверка с заранее вычисленной описанной окружностью. Предыдущий вариант проверки требует значительного количества арифметических операций. Тем не менее, в большинстве алгоритмов триангуляции количество проверок условия многократно (в разных алгоритмах эта цифра колеблется от 2 до 25 и больше) превышает общее число различных треугольников, присутствовавших в триангуляции на разных шагах ее построения. Поэтому основная идея алгоритма проверки через заранее вычисленные окружности заключается в предварительном вычислении для каждого построенного треугольника центра и радиуса описанной вокруг него окружности, после чего проверка условия Делоне будет сводиться к вычислению расстояния до центра этой окружности и сравнению результата с радиусом. Центр (хс, ус) и радиус r окружности, описанной вокруг Δ ((х1, у1), (х2, y2), (x3, у3)) можно найти как хс = b/2a, ус = –с/2а, r 2 = (b2 + с2 — 4аd)/4а2, где значения a, b, с, d определены выше. Тогда условие Делоне для Δ ((х1, у1), (х2, y2), (x3, у3)) будет выполняться только тогда, когда для любой другой точки (x0, y0) триангуляции будет (x0 — хс)2 + (y0 — ус)2 ≥ r 2 Реализация такой процедуры проверки требует для каждого треугольника 36 операций умножения, возведения в квадрат и деления, а также 22 операции сложения и вычитания. На этапе непосредственного выполнения проверок требуется всего только два возведения в квадрат, два вычитания, одно сложение и одно сравнение. Если принять, что алгоритм триангуляции тратит в среднем по пять проверок на каждый треугольник, то в среднем данный способ проверки требует около девяти операций типа умножения и семь операций типа сложения. Если алгоритм тратит в среднем по 12 проверок на каждый треугольник, то количество операций уменьшается соответственно до шести и шести. Точная же оценка среднего числа операций должна выполняться для конкретного алгоритма триангуляции и типичных видов исходных данных. Проверка суммы противолежащих углов. Показано, что условие Делоне для треугольника Δ ((х1, у1), (х2, y2), (x3, у3)) будет выполняться только тогда, когда для любой другой точки (x0, y0) триангуляции будет α +β ≤ π (рис. 11). Это условие эквивалентно sin(α +β) ≥ 0, т.е. (1) Рис. 6. Проверка суммы противолежащих углов Значения синусов и косинусов углов можно вычислить через скалярные и векторные произведения векторов: Подставив эти значения в формулу (1) и сократив знаменатели дробей, получим следующую формулу проверки: Итеративные алгоритмы Все итеративные алгоритмы имеют в своей основе идею последовательного добавления точек в частично построенную триангуляцию Делоне. Формально этот процесс может быть описан так. Пусть имеется триангуляция Делоне на множестве из (n – 1) точек. Очередная п -я точка добавляется в уже построенную структуру триангуляции следующим образом. Шаг 1. Вначале производится локализация точки, т.е. находится треугольник (построенный ранее), в который попадает очередная точка. Если точка не попадает внутрь триангуляции, то находится треугольник на границе триангуляции, ближайший к очередной точке. Шаг 2. Если точка попала на ранее вставленный узел триангуляции, то у нас три варианта: · Если точка попала на некоторое ребро, то оно разбивается на два новых, а оба смежных с ребром треугольника также делятся на два меньших. · Если точка попала строго внутрь какого-нибудь треугольника, он разбивается на три новых. · Если точка попала вне триангуляции, то строится один или более треугольников. Затем проводятся локальные проверки вновь полученных треугольников на соответствие условию Делоне и выполняются необходимые перестроения. Рис. 7. Две ситуации, возникающие при триангуляции после добавления новой внутренней точки Чтобы несколько упростить алгоритм, можно вообще избавиться от третьего случая, предварительно внеся в триангуляцию несколько таких дополнительных узлов, что построенная на них триангуляция заведомо накроет все исходные точки триангуляции. Такая структура обычно называется суперструктурой. Суперструктура - произвольный выпуклый многогранник с треугольными гранями такой, что все заданные узлы лежат внутри него. Вершинами многогранника могут быть как элементы заданного множества, так и дополнительные узлы. Описанный алгоритм позволяет гарантированно строить триангуляцию Делоне для произвольного набора точек, причем граница сетки будет представлять собой (в общем случае невыпуклый) многогранник с треугольными гранями, опирающимися на наиболее удаленные от центра триангуляции узлы. К сожалению, на практике приходится иметь дело с областями, представляют собой более сложные геометрические формы.
Пример итеративного алгоритма построения треангуляции Делоне
|