<<
>>

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

Программные модули используются в процедурах статического и динами­ческого анализа геометрически нелинейных стержневых систем. Подпрограм­мы вычисления матрицы касательной жесткости и вектора упругих узловых сил реакции СКЭ вызываются на каждой итерации метода Ньютона-Рафсона (Нью­тона-Канторовича) [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

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

  1. Геометрически нелинейный стержневой конечный элемент
  2. Модуль прямого численного интегрирования уравнений движения геометрически нелинейных стержневых систем
  3. Итерационный алгоритм статического расчета геометрически нелинейной стержневой системы
  4. Конечноэлементная модель геометрически нелинейного стержневого элемента
  5. Геометрически нелинейные математические модели стержневых систем
  6. Методы построения уравнений движения геометрически нелинейных стержневых механических систем
  7. Численное моделирование динамики нелинейных упругих стержневых систем с переменными инерционными и жесткостными параметрами
  8. 3.3. Обобщённая блок-схема алгоритма программного комплекса экспертной системы имитационного моделирования
  9. Задачи динамики и управления движением нелинейных стержневых систем и упругих манипуляторов
  10. 10.1. Геометрическая интерпретация задач нелинейного программирования