Главная страница сайта  Российские промышленные издания (узловые агрегаты) 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 [ 79 ] 80 81 82 83 84 85 86 87 88

уравнения следует упорядочить так, чтобы в матрице в каждый момент содержалось минимальное число элементов. Определение оптимального порядка является сложной задачей динамического программирования, и для ее решения могут использоваться другие приближенные методы [5]. С помощью аналогичного упорядочения уравнений можно минимизировать число операций в ленточных методах. Однако при этом ширина ленты может сильно увеличиться, что сведет на нет все преимущества метода.

В приложении 20Б приведены подпрограмма FORMK составления матрицы жесткости (верхней треугольной части в форме прямоугольника) вместе с соответствующей матрицей-указателем и подпрограмма SOLVE решения систем уравнений методом редкозаполненных матриц.

Более существенными отличиями обладает фронтальный метод решения. Как и в методе редкозаполненных матриц, матрица жесткости записывается в компактной форме вместе с матрицей-указателем. Однако здесь исключение производится по элементам независимо от нумерации узлов. Своим названием метод обязан тому, что в процессе решения создается некоторый фронт, проходящий через систему узлов. Метод применяется главным образом при наличии дополнительных узлов на сторонах элементов, так как он может привести к значительной экономии памяти по сравнению с ленточным методом.-

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

Фронтальный метод решения наиболее эффективен при решении больших задач с применением трехмерных элементов.

20.5.5. Некоторые специальные приемы

Для улучшения более крупных программ могут использоваться некоторые специальные приемы:

а) Выделение подконструкций. Вместо того чтобы решать полную систему уравнений, иногда бывает удобно строить -новую матрицу меньшей размерности. Этот прием позволяет построить матрицу жесткости для совокупности элементов, в которой все точки, кроме внешних, исключены.

б) Включение дополнительной жесткости. В дополнение к выделению подконструкций используется введение в полную матрицу жесткости специальных дополнительных жесткостей. Это позволяет непосредственно учитывать, например, граничные условия, описывающие упругое опирание.

Эти два приема особенно полезны при решении нелинейных задач, в которых большая часть конструкции остается линейно-упругой. В таких случаях линейно-упругая часть конструкции заменяется некоторой подконструкцией в виде линии или поверхности, примыкающей к исследуемой области нелинейности, а затем решается нелинейная задача при упругом, граничном условии. Получающаяся нелинейная задача значительно меньше по объему.

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

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

При заданных перемещениях (например, осадка фундамента и др.) матрица жесткости и вектор нагрузки должны быть модифицированы. В общем случае для упрощения- индексации размерность матрицы не должна изменяться, т. е. никакие строки или столбцы не должны исключаться. Существуют два способа, с помощью которых, не нарушая указанных требований, можно удовлетворить граничным условиям, не учтенным при формировании элемента. Положим, что имеется некоторая система N уравнений

12 22

п2 пл • • • nN

(20.П)

и, скажем, щ = а.

В соответствии с первым способом столбец нагрузки видоизменяется так, что F{ = Fi - kna {i = 2, N) и = a. Тогда соответствующая строка и столбец становятся нулевыми, а диагональный член - единичным. В частном, но часто встречающемся случае, когда а = О (т.е. опора неподвижна), необходимо изме-



НИТЬ матрицу описанным выше способом, оставляя матрицу нагрузки неизменной, кроме члена Fi= 0.

Второй способ состоит в умножении соответствующего диагонального элемента матрицы на некоторое большое число, скажем 10*, перед модификацией соответствующего коэффициента нагрузки. В рассматриваемом случае мы бы получили

fe„ = fell-108, f = fe„-108-a,

kij - kij (за исключением случая, когда г = 1, / = 1),

В полученном решении «i будет почти равно а. Этот способ пригоден для любых методов решения.

Во многих случаях возникает необходимость определять силы реакции в граничных точках, например реакции мостовых опор или контрфорсов плотин.

Если требуется определить реакции, то при обратном ходе необходимо преобразовать соответствующие уравнения так, чтобы вместо определения в точке опоры неизвестного перемещения по известной нагрузке отыскивалась неизвестная нагрузка по известному перемещению. В соответствии с первым из уравнений (20.11) получаем следующее выражение для силы реакции:

20.5.7. Пример подпрограммы

Ниже приведены блок-схемы и тексты двух подпрограмм. Подпрограмма FORMK используется для построения ленточной прямоугольной матрицы жесткости и учета граничных условий первым способом, описанным в предыдущем разделе (при а=0). Подпрограмма SOLVE применяется для решения систем алгебраических уравнений методом ленточных матриц )• Блок-схемы приведены на стр. 488 и 489.

Обозначения переменных в подпрограмме FORMK

NBAND Максимально возможная в про-

грамме ширина ленты

NROWB, NCOLB, NCOL Переменные, определяющие поло-

жение элемента матрицы жесткости

) В приложении 20В приведены другие подпрограммы, несовместные с си-, стемой FFSS.

NR, NX

ESTIFM* (12,12)

Переменные, используемые для

записи граничного условия Матрица жесткости элемента

Обозначения переменных в подпрограмме SOLVE NBAND Максимально возможная в про

R1 * (200)

грамме ширина ленты Счетчик числа уравнений для исключения и обратного хода Рабочая переменная для процесса

исключения Вектор правых частей; в конце работы программы на его место помещается решение

Программа 20-5 SUBROUTINE FORMK

С формирование верхнего треугольника матрицы жесткости

C0MM0N/C0NTR/TITLE(12),NP,NE,NB,NDF,NCN,NLD,NMAT, NSZF,LI,NT4

COMMON CORD(100,2),NOP(200,4),IMAT(200),ORT(25,2),NBC(25),

NFIX(25) 1,R1(200),SK(200,40) 2,ESTIFM(12,12)

С Ввод максимальной ширины ленты и информации о количестве

С решаемых уравнений

NBAND = 40

С Задание нулевой матрицы жесткости С

DO 300 N = l.NSZF DO 300 М = 1,NBAND 300 SK(N,M) = 0.

С Цикл по элементам С

DO 400 N = 1,NE CALL STIFT2(N)

С Возврат к ESTIFM, как к матрице жесткости С



с с с с

с с с

Блок-схема подпрограммы FORMK

Начало

Задание нулевой

Начало цикла по алементам

Составление оюсткости

матрицы злемента

Запоминание матрицы , жвсткост алемента в прямоугольной матрице

Конец цикла по злементам

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

возврат в основную гроврамму

Засылка ESTIFM в массив SK

Обход по строкам

DO 350 JJ= l.NCN

NROWB = (NOPfN.JJ) - I ).NDF

DO 350 J= !,NDF

NROWB = NROWB + 1

I = (JJ- l).NDF +J

Затем no столбцам

DO 330 KK = I.NCN

NCOLB = (NOP(N,KK)- n.NDF

DO 320 К = I.KDF

L = (KK- I).NDF+K

NCOL = NCOLB + К + I - NROWB

Блок-схема подпрограммы SOLVE

Начало

Начало цикла по уравнениям (Ы)

Модиринация членов, находящихся внутри ленты уравнений (20

Модификация вектора наврузки

Конец цикла ло уравнениям

Начало цикла обралтоао хода по уравнениям

Решение уравнения (20.2) при обратном ходе

Конец цикла по уравнениям

I

Возврат в основную программу

Если элемент ниже ленты, то пропуск засылки

IF(NCOL) 320,320,310 310 SK(NROWB,NCOL) = SK(NROWB,NCOLJ + ESTiFM(I,L) 320 CONTINUE 330 CONTINUE З.ЧО CONTINUE 400 CONTINUE



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 [ 79 ] 80 81 82 83 84 85 86 87 88