<<
>>

Алгоритмы и программные модули моделирования геометрически нелинейного стержневого конечного элемента

Программные модули используются в процедурах статического и динами­ческого анализа геометрически нелинейных стержневых систем. Подпрограм­мы вычисления матрицы касательной жесткости и вектора упругих узловых сил реакции СКЭ вызываются на каждой итерации метода Ньютона-Рафсона (Нью­тона-Канторовича) [63] в задачах статического расчета, или же вызываются в необходимой последовательности на итерациях полного или модифицирован­ного методов Ньютона-Рафсона при численном интегрировании уравнений движения методом Ньюмарка.

Матрица касательной жесткости СКЭ вычисляется подпрограммой MatrKTan.

Формат обращения к этой подпрограмме имеет вид:

CALL MatrKTan( Schema, AL, DispL, EA, Elz, Ely, E, Ip,

Git, Indx, Indy, Indz, bAxForce, Tmp, MLen, N, KTM)

Описание параметров данной подпрограммы дано в табл.2.3

Таблица 2.3. Параметры подпрограммы MatrKTan

Параметр (размерность) Описание параметра (тип переменной)
Schema Тип расчетной схемы (=1, 2, 3 - плоская расчетная схема, =4, 5 - пространственная расчетная схема). Этот параметр также опре­деляет число локальных степеней свободы в стержневом эле­менте. (INTEGER*4)
AL Первоначальная длина стержневого элемента. (REAL* 8)
DispL (N) Вектор перемещений узлов элемента в его локальной системе координат. (REAL* 8)
EA, Elz, Ely, E, Ip, Git Жесткостные параметры поперечного сечения стержневого эле­мента: жесткость при растяжении, жесткости при изгибе в плос­костях XOY и XOZ, модуль упругости, полярный момент инер­ции, жесткость при кручении. (REAL* 8)
Indx, Indy, Indz Параметры закрепления концов стержневого элемента - наличие шарниров в узлах в начале и конце при повороте вокруг осей х, у, z, соответственно.
Каждый параметр может принимать значе­ния от О до 3: О - шарнир-шарнир, 1 - шарнир-заделка, 2 - за­делка-шарнир, 4 - заделка-заделка. (INTEGER*4)
bAxForce Параметр определяющий способ вычисления осевой силы эле­мента (в матрице геометрической жесткости). Если параметр ра­вен 1, то осевая сила вычисляется по нелинейной формуле (2.51). Если параметр равен 0, то осевая сила вычисляется по линеари­зованной формуле (3.6) (LOGICAL*1)
Tmp (MLen) Рабочий массив. (REAL* 8)
MLen Количество элементов в верхнем треугольнике матрицы каса­тельной жесткости стержневого элемента. (INTEGER*4)
N Количество локальных узловых степеней свободы в стержневом элементе. Зависит от типа расчетной схемы. (INTEGER*4)
KTM (MLen) Выходной параметр: вычисленная матрица касательной жестко­сти стержневого элемента. Вычисляется верхний треугольник, элементы матрицы хранятся в одномерном массиве по столбцам. (REAL*8)

В подпрограмме MatrKTan вычисляется матрица геометрической жестко­

сти и матрица жесткости, учитывающая большие перемещения узлов элемента 129

по формулам (2.50) и (2.48). Осевая сила, входящая в (2.50), вычисляется по уточненной нелинейной формуле (2.51), причем имеется возможность вычис­лять ее по общепринятой линеаризованной формуле, которая имеет вид

где- производные функций формы осевых перемещений узлов в на­

чале и конце стержневого элемента по осевой координате х, uiи и j- осевые перемещения узлов в начале и конце стержня в его локальной системе коорди­нат.

Такая линеаризованная формула совпадает с формулами вычисления осе­вой силы, опубликованными в [65]. Недостатком линейной формулы (2.92) яв­ляется то, что с ее помощью невозможно учесть непостоянство осевой силы по длине элемента при его изгибе.

Интегрирование по дайне элемента в формулах (2.48) и (2.50) выполнялось чис­ленно с использованием квадратурных формул Гаусса-Лежандра в нормализованных оптимальных координатах. Порядок подынтегральных полиномов в указанных фор­мулах для каждого элемента матриц зависит от вида расчетной схемы (плоская или пространственная, число локальных узловых степеней свободы в элементе), способа закрепления концов стержневого элемента (выбора соответствующих функций фор­мы) и способа вычисления осевой силы. Максимальный порядок полиномов - 8, одна­ко, большое количество элементов матриц имеют порядок полиномов 6 или 4, кото­рый может еще далее снижаться при разных условиях.

Поэтому для повышения эффективности вычислений был использован оп­тимальный алгоритм численного интегрирования матриц по длине СКЭ. Вы­брано два множества весовых коэффициентов и нормализованных координат Гаусса-Лежандра с 3-мя и 6-ю оптимальными точками позволяющими точно интегрировать полиномы 6 и 12 порядка. Исходя из условий закрепления кон­цов и способа вычисления осевой силы, в подпрограмме определяется макси­мальный порядок полинома элементов матрицы геометрической жесткости, что позволяет выбрать схему интегрирования с 3-мя или 6-ю точками.

Интегрирование осуществляется только по ненулевым элементам матрицы геометрической жесткости, которые определяются по виду расчетной схемы. Интегрирование матрицы [к] (2.48) в подпрограмме осуществляется поэле­ментно. Исходя из вышеназванных условий, для каждого элемента матрицы [к] определяется максимальный порядок полинома, что позволяет выбрать схему интегрирования с наименьшими вычислительными затратами. В некото­

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

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

Вектор упругих узловых сил реакции СКЭ вычисляется подпрограммой VectFN. Формат обращения к этой подпрограмме имеет вид:

CALL VectFN( Schema, AL, DispL, EA, Elz, Ely, E, Ip,

Git, Indx, Indy, Indz, N, FN )

где FN (N) - выходной параметр: вектор упругих узловых сил реакции стерж­невого конечного элемента. (REAL* 8). Описание других параметров подпро­граммы дано в табл.2.3.

В подпрограмме VectFN вектор узловых сил реакции вычисляется по фор­муле (2.45). Численное интегрирование по длине элемента выполняется с по­мощью квадратурных формул Гаусса-Лежандра по 6-ти оптимальным точкам. Максимальный порядок подынтегрального полинома в формуле (2.45) равен 8.

Входным параметром подпрограмм MatrKTan и VectFN является вектор текущих перемещений узлов элемента в его текущей локальной CK - DispL. Для вычисления этого вектора используется методика учета больших поворо­тов и перемещений узлов в глобальной СК, разработанная в главе 2.

Необходимо отметить, что положение и ориентация локальной CK стерж­невого элемента изменяются каждый раз, когда изменяются координаты его уз­лов при деформировании стержня, а также при перемещении его как абсолютно твердого тела. Для вычисления вектора перемещений и поворотов узлов стерж­ня в его локальной системе координат служит подпрограмма FNDDISP. Фор­мат обращения к этой подпрограмме следующий:

CALL FNDDISP( Schema, NCoord, NLSIter, BarVZ, Coordl, Coord2, NodeCosl, NodeCos2, BarCos, Tl, T2, ТЗ, T4, DispL, N, NBvz, IErr ) Описание параметров дано в табл.2.4 (см. также табл.2.3)

Таблица 2.4. Параметры подпрограммы FNDDISP

Параметр (размерность) Описание параметра (тип переменной)
NCoord Размерность пространства расчетной схемы (=2 - плоская схе­ма; =3 - пространственная).
(INTEGER*4)

NLSIter Номер итерации нелинейного анализа (=0 - начальная итера­ция, конструкция находится в недеформированном состоянии;

> 1 - последующие итерации). (INTEGER*4)

BarVZ (3) Вектор, который совместно с осью недеформированного стержня задает плоскость XOZ, в которой лежит ось OZ попе­речного сечения стержня. Используется только для простран­ственных расчетных схем и на начальной итерации. (REAL*8)
Coordl (NCoord),

Coord2 (NCoord)

Массивы с координатами узлов в начале и конце стержневого элемента на текущей итерации нелинейного анализа. (REAL*8)
NodeCosl (NCoord*2),

NodeCos2 (NCoord*2)

Массивы с направляющими косинусами, которые задают ори­ентацию узлов в начале и конце стержневого элемента относи­тельно глобальной системы координат на текущей итерации нелинейного анализа. (REAL* 8)
BarCos (NCoord*2+l) Первый элемент массива содержит первоначальную длину стержневого элемента. Остальные элементы массива содержат направляющие косинусы, задающие локальную систему коор­динат стержневого элемента в его недеформированном состоя­нии на начальной итерации. (REAL* 8)
Tl (9), T2 (9), ТЗ (9), Т4 (9) Рабочие массивы. (REAL* 8)
NBvz (3) Выходной параметр: Вектор задающий плоскость XOZ локаль­ной системы координат стержня на текущей итерации нели­нейного анализа. (REAL* 8)
IErr Выходной параметр: ненулевое значение этого параметра сиг­нализирует о произошедшей внутри подпрограммы ошибочной ситуации. (INTEGER*4)

Подпрограмма FNDDISP вычисляет текущую ориентацию локальной CK СКЭ с помощью матриц ориентации узлов в начале и конце элемента и матри­цы ориентации локальной CK стержня в его недеформированном состоянии.

Матрицы ориентации узлов изменяются от итерации к итерации при изменении координат узлов и их поворотов, матрица ориентации локальной CK стержня в его недеформированном состоянии остается постоянной. Вычисление новых матриц ориентации узлов на очередной итерации осуществляется по получен­ным на предыдущей итерации значениям приращений перемещений и поворо­тов узлов в подпрограмме NLNodesRecalc. В этой подпрограмме также пере­считываются текущие координаты узлов путем прибавления приращений пере­мещений узлов к координатам узлов на предыдущей итерации. Формат обра­щения к подпрограмме NLNodesRecalc имеет вид:

CALL NLNodesRecalc( Schema, NPoint, NCoord, NLSIter, NDFStr,

CoordIt, NodeCos, Fix, Degree, DisVecIt, IErr)

Описание параметров подпрограммы дано в табл.2.5 (и табл.2.3, 2.4)

Таблица 2.5. Параметры подпрограммы NLNodesRecalc

Параметр (размерность) Описание параметра (тип переменной)
NPoint Число узлов в расчетной схеме. (INTEGER*4)
NDFStr Число степеней свободы в расчетной схеме. (INTEGER*4)
CoordIt (NCoord, NPoint) Массив с координатами узлов на предыдущей итерации. На выходе из подпрограммы в массив помещаются пересчитанные координаты узлов на текущей итерации. (REAL*8)
NodeCos (NCoord*2, NPoint) Массив с направляющими косинусами, которые задают ориен­тацию узлов на предыдущей итерации. На выходе из подпро­граммы в массив помещаются пересчитанные направляющие косинусы узлов на текущей итерации. (REAL* 8)
Fix (NPoint) Байтовый массив фиксации степеней свободы в узлах расчет­ной схемы. Первые 6 значащих битов элемента массива опре­деляют наличие перемещений в соответствующих 3 линейных и 3 угловых степенях свободы соответствующего узла. (BYTE)
Degree (NPoint) Массив нумерации степеней свободы. Автоматически генери­руется модулем пакета «COMPASS» для получения минималь­ной ширины ленты матрицы жесткости. (INTEGER*4)
DisVecIt (NDFStr) Массив, содержащий приращения перемещений и поворотов узлов системы в глобальной системе координат, полученные из решения системы уравнений на предыдущей итерации. Значе­ния этого массива используются при пересчете координат и матриц направляющих косинусов узлов.

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

При выполнении статических расчетов внешнюю узловую нагрузку на сис­тему необходимо постепенно увеличивать от нуля до заданного значения в те­чение нескольких итераций. Это позволяет удовлетворить условие малости приращений перемещений и поворотов на одной итерации решения системы нелинейных уравнений (2.38), а также позволяет достичь лучшей сходимости итераций и получить более точное решение. Для вычисления вектора невязки внутренних и внешних узловых сил в пакет «COMPASS» был включен про­граммный модуль AsmbNRF. Модуль формирует глобальный вектор внутрен­них сил системы и определяет невязку внутренних и внешних узловых СИЛ C учетом пошагового увеличения значений внешних сил. При этом формула 133

где і - номер текущей итерации; Nli- параметр, равный числу шагов пропор­ционального приращения внешней нагрузки от нуля до заданного уровня; Ncs- параметр, равный числу итераций между приращениями внешней нагрузки. Иными словами, внешняя нагрузка постепенно увеличивается за Nuшагов на величинуна каждом шаге, и после каждого приращения нагрузки вы­

полняется Ncsитераций для получения промежуточного решения.

2.8.

<< | >>
Источник: ЛУКЬЯНОВ АНДРЕЙ АНАТОЛЬЕВИЧ. МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ В ПРОБЛЕМЕ ОБЕСПЕЧЕНИЯ ТОЧНОСТИ ДВИЖЕНИЯ И ПОЗИЦИОНИРОВАНИЯ МОБИЛЬНЫХ МАНИПУЛЯЦИОННЫХ РОБОТОВ. ДИССЕРТАЦИЯ на соискание ученой степени доктора технических наук. Иркутск - 2005. 2005

Еще по теме Алгоритмы и программные модули моделирования геометрически нелинейного стержневого конечного элемента: