Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка МКЭ.docx
Скачиваний:
100
Добавлен:
02.06.2015
Размер:
2.55 Mб
Скачать

Топологическая матрица

№ Элемента

Локальный

номер 1

Локальный

номер 2

EF

m

1

1

3

1000

10

2

1

2

1000

10

3

2

3

1000

10

4

2

4

1000

10

5

4

5

1000

10

6

3

5

1000

10

7

3

6

1000

10

8

5

6

1000

10

По координатной и топологической матрицам формируется матрица индексов – это таблица 2.3, строки которой соответствуют номерам элементов, а столбцы локальным номерам обобщенных перемещений. Внутренние ячейки содержат глобальные номера обобщенных перемещений:

Таблица 2.3

Матрица индексов

№ элемента

Номера перемещений

начальный узел конечный узел

1

2

3

4

1

1

2

5

6

2

1

2

3

4

3

3

4

5

6

4

3

4

7

8

5

7

8

9

10

6

5

6

9

10

7

5

6

11

12

8

9

10

11

12

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

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

{

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

A[i, 0] = i + 1;

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

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

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

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

}

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

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

{

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

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

{

int ig = A[ii, i];

for (int j = 1; j <= 4; 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];

}

}

}

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

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

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

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

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

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

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

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

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

Учет граничных условий

Граничные условия делятся на естественные и главные. В качестве естественных граничных условий выступают внешние силы, которые входят в правую часть уравнений равновесия. Для формирования вектора нагрузки организуем цикл с обходом узлов фермы в координатной матрице и добавим в его ячейки силы из четвертого и пятого столбцов таблицы в соответствии с номерами обобщенных перемещений. Для конструкции на рисунке 2.2:

Главные граничные условия – это условия закрепления конструкции. При наложении условий закрепления, то есть уменьшении количества степе­ней свободы системы, уравнения не вычеркивают, а заменяют фиктивными для сохранения нумерации в матрицах. Один из способов состоит в обнулении всех элементов строки, кроме диагонального для данного элемента и обнуление соответствующего элемента столбца нагрузки. Так для рассматриваемой системы в уравнении равновесия матрица жесткости изменится как представлено в таблице 2.4.

Таблица 2.4