Матрица масс и матрица жесткости

Рассматривается способ вывода на экран матрицы масс и матрицы жесткости. Работаем в МКЭ-Ф и Matlab, поэтому, остановив решение отладчиком в нужном месте уже можно посмотреть, как выглядит матрица масс и матрица жесткости конечного элемента.

Матрица масс и матрица жесткости конечного элемента

В программе МКЭ-Ф (v0.6.0) есть два типа конечных элементов. Стержневой (Тип 112) и балочный (Тип 113). Они отличаются по количеству и типу степеней свободы в узлах.

Матрица масс может быть двух типов: консистентной (consistent mass matrix или CMM) либо разнесенной (lumped mass matrix). Различаются они тем, что разнесенная матрица масс имеет диагональный вид, но не точно отражает массовые характеристики. Исторически разнесенная матрица масс появилась раньше. Вероятно из-за интуитивного подхода, предполагающего разделение общей массы элемента на узловые степени свободы поровну. Зенкевич, Тейлор и Жу пишут в относительно новой книге «The Finite Element Method: Its Basis and Fundamentals Sixth edition» (2005 год) о том, что к 1963-му году стала понятна нелогичность разнесения массовых характеристик элемента. Тогда была предложена консистентная матрица масс, являющаяся полноценным логическим расширением апроксиммации свойств элемента при помощи функций формы. См. стр. 566. указанной книги. Кроме того о формировании матрицы масс можно посмотреть в материалах по динамике от университета Колорадо «Matrix Finite Element Methods in Dynamics». Конкретнее — тут (англ). Программа МКЭ-Ф работает с консистентной матрицей масс. Матрица масс в статическом расчете не участвует, зато участвует во всех остальных.

Матрица жесткости используется во всех расчетах: и в статическом и во всех динамических, включая определение частот собственных колебаний. Очень интересно почитать о матрицах жесткости можно в книге Cook, Malkus, Plesha «Concepts and Applications of Finite Element Analysis» (3-rd ed.) стр.113. Там приводится краткая справка о том, как выглядит матрица жесткости того или иного элемента. Так же матрицы жесткости для стержневого и балочного элементов приводятся в книге Kwon, Bang «The Finite Element Method Using Matlab» стр.201(стержневой), стр.261(балочный). На русском, есть книга Каплун, Морозов, Олферьева “Ansys в руках инженера”, там тоже приводятся матрицы жесткости.

Файл класса конечного элемента

Из всех текстов программы, нам нужно будет почитать только два: Truss2DElement  и  Beam2DElement.

Программа МКЭ-Ф написана с применением объектно ориентированного подхода. Класс FiniteElementStructural является абстрактным классом. Его наследники — это более конкретные классы конечных элементов, например Beam2DElement (балочный) или Truss2DElement (стержневой). Базовый абстрактный класс устанавливает перечень свойств и методов, которые должны быть у любого класса конечного элемента. В классах наследниках прописывается конкретная реализация методов абстрактного класса. В частности именно так обстоят дела с методом Assembler(). Метод служит для получения матриц масс и жесткости (вызовом другого метода), и для ансамблирования полученной элементной матрицы жесткости в глобальную матрицу всей системы элементов на основе матрицы инциденции. Этот метод наследуется от базового класса FiniteElementStructural, и в классах наследниках его реализация своя для каждого класса, что логично, т.к. у элементов разные способы вычисления матриц жесткости и массы.

Место для установки breakpoint

Пусть мы хотим взглянуть на матрицу масс и жесткости балочного элемента. Тогда, нужно в файле Beam2DElement, в методе Assembler() найти такие строки:

% Вычисление элементных МЖ и ММ.
K = StiffnessElementMatrix(this);
M = MassElementMatrix(this);

Точку останова ставим так, чтобы сработали методы вычисления матриц, и выполнение приостановилось:

Матрица масс и матрица жесткости конечного элемента - Установка точки останова (breakpoint)
Матрица масс и матрица жесткости конечного элемента — Установка точки останова (breakpoint) производится кликом мыши слева от строки.

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

Чтобы посмотреть на не преобразованную матрицу, следует установить точку останова в функции расчета элементной матрицы. Так:

Матрица масс и матрица жесткости конечного элемента - Установка точки останова (breakpoint) для непреобразованной матрицы
Матрица масс и матрица жесткости конечного элемента — Установка точки останова (breakpoint) для просмотра не преобразованной матрицы KInit.

Для матрицы масс аналогично (её метод в этом же файле). Таким образом, три точки останова может получить файл Beam2DElement.

Результаты

Входной файл Case1ElementBeam.txt (есть на Github):

nodes
2
0,0,0
0.5,0,0
elems_113
1
113,1,2,0.0001,2e11,7800,0.33e-8
bcfix
1
1,1,0,0,0
bcforce_stat
1
10,2,0,100,0

Запуск МКЭ-Ф состоит из двух команд: обработка входного файла и запуск процесса решения. Обратите внимание на то когда точки останова сработают. Это будет после вызова StructFEProblem. Глобальные матрицы, а значит и элементные в программе МКЭ-Ф считаются в момент обработки входного файла, до запуска решения. Решение запускается второй командой, наподобие RunStatic() тли RunTransient(). Итак, запуск обработки входного файла:

P1 = StructFEProblem('Case1ElementBeam.txt');

Во время останова, в окне команд (после >>) можно набирать имя локальной переменной функции и Matlab выведет матрицу на экран.

Для продолжения работы программы используются кнопки (Continue — до следующей брейкпоинт, Step — одна строка или вход в функцию):

Кнопки управления продолжением счета
Кнопки управления продолжением счета

Вот что можно получить. Элемент здесь всего один и он горизонтален. Матрица жесткости:

Матрица жесткости до преобразования
Матрица жесткости до преобразования. Обратите внимание на разницу коэффициентов матрицы. Матрица получена суперпозицией стержня и балки. Первая степень свободы имеет очень большие коэффициенты 1,1; 1,4; 4,1 и 4,4.
Матрица жесткости после преобразования
Матрица жесткости после преобразования (такая же).
Матрица направляющих косинусов
Матрица направляющих косинусов

Матрица масс:

Матрица масс до преобразования
Матрица масс до преобразования. Аналогично матрице масс, из-за того, что элемент горизонтален, его матрица масс не изменится при умножении на матрицу направляющих косинусов.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.