Главная > Динамика систем твердых тел
<< Предыдущий параграф Следующий параграф >>
Пред.
След.
Макеты страниц

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

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

5.2.7. Инструкции для программирования

В процессе численного интегрирования уравнения (5.97) матрицы должны вычисляться многократно. Поэтому необходимо выполнять эти вычисления таким способом, который требует как можно меньшего количества времени. Инструкции, которые даются в этом разделе, помогут читателю написать программу для ЭВМ, удовлетворяющую указанному требованию и позволяющую в то же время сэкономить объем памяти машины. Для определенности рассмотрим системы многих тел, соединенных с внешним телом, движение которого задано как функция времени. Матрицы даются тогда формулами (5.32) и (5.31) соответственно.

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

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

(1) Постоянные параметры, описывающие систему. Это величины, перечисленные под номерами (1)-(5) в разд. 5.1.

(2) Постоянные параметры, которые вычисляются по только что указанным величинам.

(3) Значения для и времени

(4) Координаты векторов в базисе

(5) Внешние силы и моменты внешних сил

как функции и т. е. функции для координат этих сил и моментов в определенных системах координат.

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

а) Число тел; имя в программе

б) Матрица Т; имя в программе

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

г) Массы тел; имя в программе

д) Компоненты центральных тензоров инерции тел в фиксированных относительно тел системах координат; имя в программе (индекс тела) и .

е) Координаты всех векторов Каждая карта данных содержит целые числа и а и три координаты вектора в базисе . См. пункт ниже.

ж) Общее число цилиндрических, универсальных и шаровых шарниров; имена в программе и соответственно.

з) Индексы дуг. представляющие

(1) цилиндрические шарниры; имя в программе

(2) универсальные шарниры; имя в программе

(3) шаровые шарниры; имя в программе

и) Единичные векторы для цилиндрических шарниров, единичные векторы для универсальных шарниров и единичные векторы для шаровых шарниров представляют собой фиксированные в телах векторы. Их постоянные координаты являются вводными данными (в цилиндрических шарнирах раскладывается в системе координат, фиксированной в теле Каждая карта данных содержит номер строки матрицы и координаты вектора в этой строке. Имя в программе равно номеру строки матрицы .

к) Матрица преобразования координат определенная соотношением (5.85), имеет общий вид

где — постоянные матрицы, в то время как зависит от угловых переменных в шарнире а (см. задачу 5.13). Матрицы и являются вводными данными; имена в программе (индекс дуги) и .

По этим вводным данным программа параметров определяет следующие величины:

A) Полное число обобщенных координат; имя в программе NE. Имеем .

Б) На основании соотношения (5.1) субматрицу матрицы инцидентности; имя в программе

На основании соотношения (5.11) скалярную -матрицу, связанную с С (см. задачу 5.6); имя в программе . Эта часть программы имеет следующий вид. Она считывает данные с карт данных, описанных в пункте

Г) Полную массу системы М; имя в программе Матрицу координат, связанную с матрицей элементы которой, согласно (5.33), суть векторы — Имя в программе

Е) Постоянные координаты фиксированных в телах векторов имя в программе (индекс тела) и . Подробности см. в задаче 5.7.

Рис. 5.33. Ориентированный граф системы.

Ж) Вспомогательные целочисленные массивы . Они вычисляются по массиву и определяются следующим образом. Для величина представляет собой число ненулевых элементов в строке матрицы Т. Для величина есть индекс столбца ненулевого элемента в ряду матрицы Т. Например, для ориентированного графа системы, изображенного на рис. 5.33, массивы имеют вид

Назначение этих массивов — уменьшить время счета.

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

массива таковы:

Массивы построены из

И) Вспомогательные целочисленные массивы целое число и массив для . Они позволяют уменьшить время счета и объем памяти для хранения векторов Эти векторы вычисляются по формулам (5.21) с помощью массивов введенных выше в (Д) и (Е). Векторы равны нулю для многих комбинаций индексов и Среди ненулевых векторов много совпадающих. Рассмотрим, например, систему, представленную на рис. 5.33. Ее матрица имеет вид

Она содержит только различных векторов. Это число обозначим через Координаты различных векторов располагаются в новом массиве . Его первый индекс к является функцией двух индексов вектора Эта целочисленная функция обозначается через Необходимо идентифицировать индекс тела, относительно которого фиксирован вектор, хранящийся как . Этот индекс представляет собой функцию первого индекса к массива . Функция обозначается через Для графа на рис. 5.33 массивы могли бы быть, например, такими:

Целое число и массивы можно построить из массивов

используя следующий цикл ФОРТРАНа:

(см. скан)

К) По формуле (5.24) компоненты тензоров инерции дополненных тел в системах координат, неизменно связанных с телами. Они хранятся в том же массиве , который первоначально содержал компоненты тензоров инерции исходных тел. Этот раздел программы показан подробно для того, чтобы продемонстрировать, как используются массивы :

(см. скан)

Наличие карт от до сказывается таким образом, что в соотношении (5.24) не рассматриваются все слагаемые суммы с равными нулю векторами

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

В конце программы параметров на магнитном диске запоминаются следующие данные:

Теперь наметим в общих чертах основную программу, в которой вычисляются матрицы А и В, входящие в уравнение (5.97). В начале этой программы считываются с магнитного диска все перечисленные выше данные. Угловые координаты и их первые производные запоминаются в одномерном массиве в таком порядке

Программа начинается с раздела для кинематических величин и преобразований. Этот раздел имеет следующие подразделы:

(1) Координаты единичных векторов для всех шаровых шарниров в соответствующих базисах Для определенности предполагается, что используются углы Брайнта и что они определены так же, как для шарнира 1 в иллюстративном примере 5.2. Операторы ФОРТРАНа имеют вид

(2) Координаты векторов заданных равенством (5.83) для всех универсальных и шаровых шарниров в соответствующих базисах имя в программе (индекс шарнира), . Если геометрия для универсальных шарниров совпадает с геометрией шарнира 3 в иллюстративном примере 5.2, то раздел программы, относящийся к этим шарнирам, имеет

простой вид:

(см. скан)

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

(3) Матрицы преобразований для шарниров. Сначала вычисляется матрица, обозначенная в выражении (5.102) через (ср. иллюстративный пример 5.2). Затем выполняется умножение на матрицы . В результате получается трехмерный массив (индекс шарнира) и .

(4) Матрицы преобразования определенные соотношением (5.94). Они вычисляются по рекуррентной формуле, которая выводится из соотношений (5.95):

Результат запоминается в массиве (индекс тела) и .

(5) Преобразование всех векторов а также всех тензоров инерции дополненных тел из фиксированных в телах систем] координат в общую систему координат Подробности вычислений показаны только для векторов Координатам до преобразования соответствуют координаты после преобразования.

(см. скан)

(см. скан)

Аналогичным образом вычисляются в базисе координаты векторов (из массивов соответственно) и тензоров инерции дополненных тел (из Массивы обозначаются соответственно через и . С этого момента все действия с векторами и тензорами будут выполняться с помощью координат в общей системе координат Первым примером является вычисление

(6) угловых скоростей имя в программе . Например, для шаровых шарниров операторы ФОРТРАНа имеют вид (ср. с (5.82))

(см. скан)

(7) абсолютных угловых скоростей имя в программе . Программа базируется на рекуррентной формуле, которая выводится из формулы (5.87):

(см. скан)

REFBASE (TIME, AAVNUL) — подпрограмма для координат вектора (имя в программе ) как функций На этом заканчивается раздел кинематических величин и преобразований.

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

(см. скан)

(см. скан)

В следующем разделе программы определяется матрица В (5.99). На первом шаге вычисляются в базисе координаты векторов из формулы (5.93). Они образуют массив . Выражение — имеет такой же вид, как и правая часть уравнения (5.87) для . Поэтому можно использовать операторы ФОРТРАНа, аналогичные тем, которые приведены в . В то же время результаты храняться не в двумерном массиве (подобном а в одномерном массиве . На следующем шаге находят скалярную форму выражения как произведение с массивом . К получающемуся в результате одномерному массиву, обозначаемому через добавляются два других одномерных массива, которые являются скалярными матрицами координат, связанными с матрицами соответственно. Согласно формуле (5.31), каждый из векторов в матрице М представляет собой сумму пяти членов. Обсудим здесь подробнее только более сложные члены

Вектор, обозначенный через зависит от одного индекса 7. Поскольку налагается условие необходимы только векторы Сначала вычисляются координаты этих векторов в базисе Затем находят суммы членов Рассмотрим теперь вторую сумму. Поскольку число различных векторов меньше числа комбинаций индексов , то же самое верно также для векторов, обозначенных через Сначала вычисляются все различные векторы имя в программе . Это осуществляется в цикле ФОРТРАНа

(см. скан)

(см. скан)

В вектор вносят вклад только такие значения которые удовлетворяют условиям . Это обстоятельство поясняет цикл ФОРТРАНа

(см. скан)

Окончательным результатом этих вычислений является одномерный массив который представляет собой скалярную матрицу координат, связанную с выражением, стоящим в квадратных скобках в формуле (5.99). Используя этот массив, находим скалярную матрицу координат, связанную , которую обозначим через ; она вычисляется следующим образом:

(см. скан)

Последним шагом в вычислении первого члена выражения Для В является скалярное умножение слева на Оно осуществляется

таким образом:

(см. скан)

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

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

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

вершиной которых является и для которых, кроме того, Множество либо пусто, либо имеет один элемент для которого выполняется неравенство . Формула позволяет проводить рекуррентное вычисление в порядке, указанном операторами ФОРТРАНа:

(см. скан)

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

(см. скан)

(см. скан)

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

(см. скан)

(см. скан)

Этим заканчиваются инструкции для программирования матриц А и В, входящих в уравнение (5.97).

Categories

1
Оглавление
email@scask.ru