Матрица индексов перемещений узлов рамы

№ элемента Номера перемещений Начальный узел Конечный узел
1 (u1) 2 (v1) 3 (φ1) 4 (u2) 5 (v2) 6 (φ2)
             
             
             
             
             

По топологической и координатной матрицам вычисляются также направляющие косинусы и длины элементов (формулы (3),(4),(5)) и матрицы жесткости каждого элемента в отдельности (1). В строках матрицы указаны глобальные номера узловых перемещений конечных элементов в порядке следования соответствующих им локальных номеров. Число строк в матрице равно числу конечных элементов f1.m:

for (int i = 0; i < f1.m; i++)

{

// Формирование матрицы индексов

A[i, 0] = i + 1;

A[i, 1] = Convert.ToInt32(f1.MatrTop[i, 1]) * 3 - 2;

A[i, 2] = Convert.ToInt32(f1.MatrTop[i, 1]) * 3-1;

A[i, 3] = Convert.ToInt32(f1.MatrTop[i, 1]) * 3;

A[i, 4] = Convert.ToInt32(f1.MatrTop[i, 2]) * 3-2;

A[i, 5] = Convert.ToInt32(f1.MatrTop[i, 2]) * 3-1;

A[i, 6] = Convert.ToInt32(f1.MatrTop[i, 2]) * 3;

}

Затем с помощью матрицы индексов суммируем элементы отдельных матриц элементов в общую матрицу жесткости системы. Ниже приведен фрагмент программы на языке С# реализующий процесс сборки:

for (int ii = 0; ii < f1.m; ii++)

{

...//Формирование матрц элемента

for (int i = 1; i <= 6; i++)

{

int ig = A[ii, i];

for (int j = 1; j <= 6; j++)

{

int jg = A[ii, j];

K[ig - 1, jg - 1] = K[ig - 1, jg - 1] + Ke1[i - 1, j - 1];

M[ig - 1, jg - 1] = M[ig - 1, jg - 1] + Me1[i - 1, j - 1];

}

}

}

Обозначения в программе:

· ii – номер текущего конечного элемента;

· f1.m – число конечных элементов;

· A – матрица индексов перемещений;

· i, j – локальные индексы узловых перемещений конечного элемента;

· ig, jg – соответствующие им глобальные индексы, выбираемые из матрицы A;

· K –матрица жесткости конструкции;

· Ke1 – матрица жесткости текущего конечного элемента с номером ii, вычисленная в глобальной системе координат.

Аналогично формируется матрица масс M конструкции при решении динамической задачи.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: