Вы находитесь на странице: 1из 23

Использование метода динамического синтеза

(Крейга-Бемптона) в MSC.NASTRAN.

К.А. Жидяев 1999г.


СОДЕРЖАНИЕ

Введение...................................................................................................................3

Предварительные замечания. .............................................................................3

Основные соотношения метода динамической редукции. ............................5

Проведение динамической редукции в MSC.NASTRAN. ..............................8

Получение редуцированных матриц для последующего использования.10

Использование редуцированных матриц в MSC.NASTRAN. .....................17

Литература ............................................................................................................23

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

Предварительные замечания.
Для более полного понимания физического смысла метода динамической
редукции и тех ограничений, которые накладывает его применение, необходимо
вывести некоторые соотношения.
Рассмотрим систему линейных дифференциальных уравнений второго
порядка с гармонической правой частью:
r
[M ]u&r& + [K ]ur = Fcosλt (1.1)
Где [M ] и [K ] симметричные матрицы, а λ - частота вынуждающей силы.
Размерность системы равна N. После разделения переменных получим систему
линейных уравнений:
r
[K ]ur - λ2 [M ]ur = F (1.2)
Проведем следующую замену переменных:
r r
u = [ϕ ]q (1.3)
где матрица [ϕ ] размерности N составлена из собственных векторов системы
(1.2) с нулевой правой частью, удовлетворяющих условиям ортогональности:
r r 1, k = l
ϕ k [M ]ϕ l =  (1.4)
0, k ≠ l

3
r r ω k2 , k = l
ϕ k [K ]ϕ l =  (1.5)
 0, k ≠ l
Подставляя (1.3) в (1.2), и домножая слева на [ϕ ] , получим:
T

r r r
[ϕ ]T [K ] [ϕ ]q - λ2 [ϕ ]T [M ] [ϕ ]q = [ϕ ]T F (1.6)
или с учетом условий ортогональности (1.4),(1.5):
([ ]
r
)
r
\ ω 2 \ − λ 2 [I ] q = [ϕ ] F
T
(1.7)

[ ]
где \ ω 2 \ — диагональная матрица, составленная из собственных значений, а
[I] — единичная матрица. Из (1.7) находим:
r   T r
\  [ϕ ] F
1
q = \ 2 (1.8)
 ω −λ 
2

 1  1
где \ ω 2 − λ 2 \ — диагональная матрица, составленная из .
  ω − λ2
2
k

Подставляя (1.8) в (1.3), получим классическое решение системы (1.2):


r   T r
u = [ϕ ]  \ 2 \  [ϕ ] F
1
(1.9)
 ω −λ 
2

При учёте всех собственных векторов ϕ решение (1.9) является точным.


Теперь рассмотрим решение задачи (1.2) с учетом квазистатической
составляющей. Вместо замены (1.3) проведем замену:
r r r
u = [ϕ ]q + [K ] F
−1
(1.10)
r r r
где [K ] F — решение квазистатической задачи [K ]u 0 = F . Подставляя (1.10) в
−1

(1.2), и домножая слева на [ϕ ] , с учетом условий ортогональности получим:


T

[ ]
r
( \ ω 2 \ − λ 2 [I ])qr – λ2 [ϕ ]T [M ] [K ]−1 F = 0 (1.11)
Из (1.11) находим:
r  λ2  r
q = \ 2 \  [ϕ ]T
[M ] [K ]−1
F (1.12)
 ω −λ 
2

Подставляя (1.12) в (1.10) найдем решение системы (1.2):


r  λ2  r r
u = [ϕ ]  \ 2 \  [ϕ ] [M ] [K ] F + [K ] F
T −1 −1
(1.13)
 ω −λ
2

 1 
Если учесть, что [K ] = [ϕ ]  \ 2 \  [ϕ ] , то формула (1.13) легко преобразуется
−1 T

 ω 
к виду:
4
r  λ2  r r
u = [ϕ ]  \ 2 \  [ϕ ] F + [K ] F
T −1

(
 ω −λ ω
2 2
) 
(1.14)

Сравним решения (1.9) и (1.14). Очевидно, что при учете всех


собственных векторов ϕ оба решения являются точными. Однако если
учитывается ограниченный диапазон собственных векторов (как правило, в
нижней части спектра системы), то при частоте возбуждающей силы λ<ωmax
(где ωmax — частота наивысшего учтенного тона собственных колебаний)
решение (1.14) дает значительное улучшение сходимости. Действительно, для
выражения (1.9) погрешность, вызванная учетом не всех собственных векторов,
будет равна:
r   r
u 1= [ϕ 1 ]  \ 2
1
\  [ϕ 1 ]T
F (1.15)
 ω1 − λ 
2

а для решения (1.14):

r  λ2  r
u 2= [ϕ 1 ]  \ \  [ϕ 1 ] F
( )
T
(1.16)
 ω1 − λ ω1
2 2 2

r r  λ2 
и отношение u 2/ u 1=  \ 2 \ меньше единицы (здесь неучтенные
 ω1 
собственные векторы и частоты помечены индексом 1). Таким образом можно
сделать вывод, что чем больше различие между частотой вынуждающей силы и
частотой наивысшего учтенного тона, тем точнее решение (1.14) по сравнению
с (1.9).

Основные соотношения метода динамической редукции.


Перейдем теперь к рассмотрению собственно метода динамической
редукции при закрепленных границах.
Запишем систему (1.2) в виде:
r r r
 K oo K ob  u o 2  M oo M ob  u o Fo
K T K  r - λ M T M  r = r (2.1)
 ob bb  u b  ob bb  u b Fb

где индексом о обозначены степени свободы, которые должны быть


редуцированы, а индексом b — граничные степени свободы, к которым
производится редукция. Для уменьшения числа степеней свободы системы надо

5
r r
выразить перемещения u o через граничные перемещения u b и обобщенные
r
координаты q . Перепишем верхнюю часть системы (2.1) в виде:
r r r r r
[K oo ]u o - λ2 [M oo ]u o = - [K ob ]u b + λ2 [M ob ]u b + Fo (2.2)

Используя формулу (1.14) и принимая правую часть (2.2) за вынуждающее


r
воздействие, получим решение для u o :

r  λ2  r r r
u o =( [ϕ o ]  \ [ϕ ] [ ]−1
)( [ ] λ [ ] b + Fo )
( )
T 2
\  o + K oo - K ob u b + M ob u (2.3)
 ω o − λ ω o 
2 2 2

где φо и ωо собственные векторы и частоты системы (2.2) с нулевой правой


частью. В предыдущей главе было показано, что при учете достаточного числа
собственных векторов решение (2.3) имеет хорошую точность.
Для проведения динамической редукции не нужно вычислять (2.3), надо
лишь провести замену в соответствии с (1.10):
r r r r r
u o = [ϕ o ] q + [K oo ] (- [K ob ]u b + λ2 [M ob ]u b + Fo )
−1
(2.3)

В MSC.NASTRAN замена имеет вид:


r r r r
u o = [ϕ o ] q + [K oo ] (- [K ob ]u b + Fo )
−1
(2.4)
r
Член λ2 [K oo ] [M ob ]u b
−1
опущен для удобства операций с матрицами, что

приводит к незначительному понижению точности, а при диагональной матрице


r
масс и вовсе не влияет на точность. Член [K oo ] Fo не учитывается в NASTRAN
−1

(что приводит к росту погрешности см.(1.15)) и далее, не будет рассматриваться


при редукции матриц масс и жесткости. Поэтому рекомендуется прикладывать
внешние воздействия только к граничным степеням свободы. Учитывая
вышесказанное, перепишем (2.4) в виде:
r r r
u o = [ϕ o ] q - [K oo ] [K ob ]u b
−1
(2.5)
или для всех степеней свободы:
r r
u o ϕ o G ob  q
r = r
u b  0 I  u b
(2.6)

где G ob = − [K oo ] [K ob ] .
−1
(2.7)
Формулы (2.5-2.7) являются основополагающими для редукции методом
Крейга-Бемптона.

6
r
Проведя замену переменных (2.6) в (2.1) при нулевой Fo получим:
r r
2
K qq 0 q M qq M qt  q 0
r
 0  r - λ M T M  r = F (2.8)
 K tt  u b  qt tt  u b b

ϕ G ob 
Замена заключается в умножении системы (2.1) на матрицу  o справа и
0 I 

ϕ G ob  T
на  o слева. При этом
0 I 

[K ] = [ϕ ] [K ] [ϕ ] = [\ ω \ ]
qq o
T
oo o o
2
(2.9)

[K tt ] = [K bb ] + [K ob ] T [G ob ] (2.10)

[M ]= [ϕ ] [M ] [ϕ ] = [I ]
qq o
T
oo o o (2.11)

[M ]= [ϕ ] [M ]+ [ϕ ] [M ] [G ]
qt o
T
ob o
T
oo ob (2.12)

[M tt ] = [M bb ] + [M ob ]T [G ob ]+ [G ob ] [M ob ]+ [G ob ]T [M oo ] [G ob ] (2.13)
Таким образом, мы провели динамическую редукцию системы (2.1) к
системе (2.8). Размерность системы (2.8) определяется количеством граничных
степеней свободы (индекс b или t ) и количеством обобщенных координат q в
замене (2.6). Замечу, что число обобщенных координат равно числу
учитываемых собственных векторов системы с закрепленными границами [ϕ o ] .
Если учитываются все собственные вектора, то системы (2.1) и (2.8) имеют
одинаковую размерность и дают в точности одинаковый результат. Если же
учитывается ограниченный диапазон тонов, то разница между решениями (2.1)
и (2.8) определяется выражением (1.16). На практике применяется следующее
правило: для получения хорошего соответствия между решениями полной и
редуцированной системы в определенном диапазоне частот, при редукции
необходимо учесть все собственные векторы системы с закрепленными
границами в диапазоне частот в 1.25-1.5 раза выше, чем исходный диапазон.
Например, если в системе (2.1) λ<10 Гц то при редукции надо учитывать
собственные векторы [ϕ o ] , в диапазоне до 12.5-15 Гц. Если все частоты
системы с закрепленными границами в 1.5 раза выше частоты вынуждающей
силы, то при редукции можно не использовать обобщенные координаты. В этом

7
случае динамическая редукция вырождается в статическую , а формула для
замены координат (2.6) принимает вид:
r
u o G ob  r
r =
u b  I 
ub (2.14)

Замена (2.14) удобна при построении математических моделей на основе


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

Проведение динамической редукции в MSC.NASTRAN.


Проведение динамической редукции в MSC.NASTRAN будет
проиллюстрировано на примере однородной балки, конечно-элементная схема
которой изображена на рис.1.

1 2 3 11 12 13 14 15 16
Y Superelement 10
X

Рис.1
Конечно-элементная модель балки задана файлом bar1.dat.

bar1.dat

$
CORD2R 10 0 0. 0. 0. 0. 0. 1.
1. 0. 0.
$
PBEAM 1 1 0.01 8.E-6 1.2E-5 1.E-5 0.
$
MAT1 11.96E+127.44E+11 0.32 7862.7 0. 0.
$
GRID 1 10 0. 0. 0. 10
GRID 2 10 1. 0. 0. 10
GRID 3 10 2. 0. 0. 10
GRID 11 10 3. 0. 0. 10
GRID 12 10 4. 0. 0. 10
GRID 13 10 5. 0. 0. 10
GRID 14 10 6. 0. 0. 10
GRID 15 10 7. 0. 0. 10
GRID 16 10 8. 0. 0. 10
$
CBEAM 1 1 1 2 0. 1. 0.
CBEAM 2 1 2 3 0. 1. 0.
CBEAM 3 1 3 11 0. 1. 0.
CBEAM 4 1 11 12 0. 1. 0.
CBEAM 5 1 12 13 0. 1. 0.
CBEAM 6 1 13 14 0. 1. 0.

8
CBEAM 7 1 14 15 0. 1. 0.
CBEAM 8 1 15 16 0. 1. 0.

Проведем расчет первых 15 тонов собственных колебаний свободной балки с


помощью файла barnm.dat

barnm.dat

SOL 103
TIME 5
CEND
DISPL=ALL
METHOD=1
BEGIN BULK
PARAM,COUPMASS=1
PARAM,AUTOSPC,NO
EIGRL,1,,,15
INCLUDE ‘bar1.dat’
ENDDATA

Мы получили 15 собственных тонов, из которых 6 нулевых соответствуют


перемещениям системы как твердого тела.
Проведем теперь расчет тех же 15 тонов колебаний балки, но
средуцировав узлы 11-16 к узлу 3. При этом будем учитывать первые 10 тонов
колебаний системы с закрепленными границами.

barnmsu.dat

SOL 103
TIME 5
CEND
DISPL=ALL
SUBCASE 1
SUPER=10
METHOD=10
SUBCASE 2
METHOD=1
BEGIN BULK
PARAM,COUPMASS=1
PARAM,AUTOSPC,NO
SESET,10,11,THRU,16
SPOINT, 101,THRU,110
SEQSET1,10,0,101,THRU,110
EIGRL,1,,,15
EIGRL,10,,,10
INCLUDE ‘bar1.dat’
ENDDATA

Здесь METHOD=10 – выбор метода для решения задачи о формах и частотах для
задачи с закрепленными границами, SESET,10,11,THRU,16 – определение узлов
системы, которые должны быть редуцированы, SPOINT, 101,THRU,110 и

9
SEQSET1,10,0,101,THRU,110 – задание обобщенных координат. Замечу, что число
обобщенных координат не может быть меньше количества тонов задачи с
закрепленными границами.
При расчете файла barnmsu.dat сначала производится расчет первых 10
тонов колебаний системы, состоящей из узлов 3, 11-16 и элементов 3-8 (причем
все степени свободы узла 3 закреплены). Затем производится динамическая
редукция этой системы по формулам (2.5-2.13), с учетом найденных
собственных векторов, к системе, состоящей из узла 3 и скалярных точек 101-
110, при этом скалярные точки соответствуют обобщенным координатам. Затем
производится слияние матриц, относящихся к нередуцированной части системы
(узлы 1-3 и элементы 1,2), и редуцированной (узел 3 и скалярные точки 101-110)
по граничным степеням свободы (узел 3). И, наконец, производится расчет 15
собственных тонов системы, состоящей из узлов 1-3, элементов 1, 2 и
скалярных точек 101-110. На последнем этапе производится обратный переход
от обобщенных координат (101-110) к физическим (11-16) для перемещений и
их вывод на печать.
В MSC.NASTRAN, с помощью рестартов, возможно использовать
редуцированные матрицы в последующих расчетах, но в данной работе я не
буду останавливаться на этой проблеме.

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


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

10
редуцировать узлы 11-16 к узлу 3. Модифицируем файл bar1.dat, убрав узлы 1, 2
и элементы 1, 2.
bar2.dat

$
CORD2R 10 0 0. 0. 0. 0. 0. 1.
1. 0. 0.
$
PBEAM 1 1 0.01 8.E-6 1.2E-5 1.E-5 0.
$
MAT1 11.96E+127.44E+11 0.32 7862.7 0. 0.
$
GRID 3 10 2. 0. 0. 10
GRID 11 10 3. 0. 0. 10
GRID 12 10 4. 0. 0. 10
GRID 13 10 5. 0. 0. 10
GRID 14 10 6. 0. 0. 10
GRID 15 10 7. 0. 0. 10
GRID 16 10 8. 0. 0. 10
$
CBEAM 3 1 3 11 0. 1. 0.
CBEAM 4 1 11 12 0. 1. 0.
CBEAM 5 1 12 13 0. 1. 0.
CBEAM 6 1 13 14 0. 1. 0.
CBEAM 7 1 14 15 0. 1. 0.
CBEAM 8 1 15 16 0. 1. 0.

Запустим предварительное решение 103 с диагностикой (DIAG 8).

bar2diag.dat

SOL 103
TIME 5
DIAG 8
CEND
DISPL=ALL
SUPER=ALL
METHOD=10
BEGIN BULK
PARAM,AUTOSPC,NO
PARAM,COUPMASS=1
SESET,10,11,THRU,16
SPOINT, 101,THRU,110
SEQSET1,10,0,101,THRU,110
EIGRL,10,,,10
INCLUDE ‘bar2.dat’
ENDDATA

DIAG 8 дает возможность увидеть в файле с расширением .f04, свойства всех


матриц, генерируемых программой в процессе решения, а также номер строки
на которой они появляются.
Рассмотрим файл bar2diag.f04. В нем можно найти 2 места в котором
появляется модуль READ, отвечающий за расчет собственных форм и частот. В
первый раз этот модуль появляется в subdmap CMPMODE и отвечает за расчет
форм и частот системы с закрепленными границами.
11
11:49:18 0:04 34.3 .0 3.3 .0 SEMR3 18 CMPMODE BEGN
11:49:18 0:04 34.4 .0 3.3 .0 CMPMODE 54 MATMOD BEGN
11:49:18 0:04 34.4 .1 3.3 .0 CMPMODE 80 READ BEGN

Во второй раз он появляется в subdmap MODERS и отвечает за расчет форм и


частот уже редуцированной системы.
11:49:21 0:07 38.8 .0 6.5 .0 MODERS 52 MATMOD BEGN
11:49:21 0:07 38.8 .0 6.6 .0 MODERS 88 MSGHAN BEGN
11:49:21 0:07 38.8 .0 6.6 .0 MODERS 89 READ BEGN

Замечу, что в нашем случае редуцированная система состоит из узла 3 (6


степеней свободы) и десяти скалярных точек 101-110 (по одной степени
свободы на каждую точку) и является именно той системой которую нам
хотелось бы получить. Если бы вместо bar2.dat был включен bar1.dat то
редуцированная система состояла бы из узлов 1, 2, 3, и скалярных точек 101-
110.
Таким образом, для того, чтобы получить искомые матрицы, нам нужно
извлечь из решения матрицы, используемые модулем READ в subdmap
MODERS . Распечатаем subdmap MODERS с помощью файла list.dat.

list.dat
COMPILE MODERS LIST NODECK
CEND
ENDDATA

В файле list.f06 найдем обращение к модулю READ.


88 $
88 MSGHAN //21080/0 $
89 READ KXX,MXX,MR,DXR,EED,USET,CASES,VAXF,SILS,,,LLL,EQEXINS/
LAMA,PHIX,MIX,OEIGS,EIGVMAT,/
READAPP/S,N,NEIGV/NSKIP/SECND $
90 MSGHAN //21090/0 $
91 $

От сюда видно, что искомые матрицы – это KXX и MXX.


Выведем эти матрицы с помощью DMAP в формате OUTPUT4 в файл
mat.out и в формате DMIG в файл bar2out.pch. Для этого запустим файл
bar2out.dat

12
bar2out.dat

ASSIGN OUTPUT4='mat.out',NEW,UNIT=25,FORMATTED
SOL 103
TIME 5
DIAG 8
COMPILE MODERS LIST $
ALTER 88 $
OUTPUT4 KXX,MXX,,,//0/25/-1//16 $
MATMOD kxx,EQEXINS,,,,/MASS,/16/1//
2////////'pp' $
MATMOD mxx,EQEXINS,,,,/STIF,/16/1//
2////////'tt' $
ENDALTER
CEND
DISPL=ALL
SUPER=ALL
METHOD=10
BEGIN BULK
PARAM,OLDSEQ,-1
PARAM,COUPMASS,1
PARAM,AUTOSPC,NO
SESET,10,11,THRU,16
SPOINT, 101,THRU,110
SEQSET1,10,0,101,THRU,110
EIGRL,10,,,10
INCLUDE 'bar2.dat'
ENDDATA

Параметр OLDSEQ,-1 запрещает внутреннюю перенумерацию матриц и нужен


для того, чтобы точно знать соответствие между столбцами в матрицах и
степенями свободы узлов и скалярных точек (при этом в верхней части матрицы
находятся степени свободы узлов с меньшими номерами).
Команда ASSIGN OUTPUT4='mat.out',NEW,UNIT=25,FORMATTED создает файл mat.out.
Команда
COMPILE MODERS LIST $
ALTER 88 $

дает возможность вставить собственные команды в subdmap MODERS после


строки 88. Операторы OUTPUT4 и MATMOD отвечают за вывод матриц в
форматах OUTPUT4 и DMIG соответственно.
Посмотрим на распечатку subdmap MODERS.
88 88 MSGHAN //21080/0 $
88 89 $ ALTER 88 $
*I* 89 OUTPUT4 KXX,MXX,,,//0/25/-1//16 $
*I* 90 MATMOD KXX,EQEXINS,,,,/MASS,/16/1//
2////////'PP' $
*I* 91 MATMOD MXX,EQEXINS,,,,/STIF,/16/1//
2////////'TT' $
89 92 READ KXX,MXX,MR,DXR,EED,USET,CASES,VAXF,SILS,,,LLL,EQEXINS/
LAMA,PHIX,MIX,OEIGS,EIGVMAT,/
READAPP/S,N,NEIGV/NSKIP/SECND $
90 93 MSGHAN //21090/0 $
Из нее видно, что наш ALTER был успешно вставлен в решение после строки
88.
13
Таким образом, мы получили матрицы жесткости и масс, в двух разных
форматах. В этих матрицах первые 6 столбцов соответствуют физическим
перемещениям Т1, Т2, Т3, R1, R2, R3 соответственно, а остальные 10 –
обобщенным координатам (скалярные точки 101-110). Степени свободы для
физических координат в матрицах заданы в системе координат которая указана
в 7 поле карты GRID.
Итак, первый способ получения редуцированных матриц заключается в
том, что:
1. модель, которую следует редуцировать, помещается в отдельный файл;
2. все узлы модели, кроме граничных, присваиваются одному
суперэлементу;
3. для этого суперэлемента проводится динамическая редукция с учетом
нужного числа тонов;
4. с помощью DMAP производится вывод матриц в нужном формате.

Второй способ получения редуцированных матриц заключается в


использовании «фирменных» альтеров, которые поставляются вместе с
программой NASTRAN. Для этой цели служит альтер alter1ga.v705. Рассмотрим
его применение на примере системы, заданной файлом bar1.dat. Для этого
создадим файл bar1alt.dat.

bar1alt.dat

SOL 103
TIME 10
DIAG 8
INCLUDE 'alter1ga.v705' $ ALTER ДЛЯ СОЗДАНИЯ ГРАНИЧНЫХ МАТРИЦ
CEND
$ создание матриц для суперэлемента 10
SEALL = 10
$
$ loadset включен для создания остаточного вектора
$
LOADSET = 99
SUPER =ALL
$
$ поместим output запрос для создания матрицы OTM (матрицы перехода)
$ перед первым subcase
$
DISP = ALL
FORCE = ALL
stress = all
SUBCASE 1
LABEL = CMS OF SUPERELEMENT 10
METHOD=101
$ введение модального демпфирования для суперэлемента 10

14
SDAMP = 10
BEGIN BULK
$
$ следующее необходимо при использовании остаточного вектора
$
dti,resmeth,1,cr,1,dw,5,5,1,+resmeth
+resmeth,2000
eigr,2000,agiv,,,,2000
param,drmh,1
PARAM,GRDPNT,0
$
$ УСТАНОВКА FIXEDB -1
$ НЕОБХОДИМО ДЛЯ СОЗДАНИЯ OTM
$
PARAM,FIXEDB,-1
$
$ УСТАНОВКА MAKEMAT РАВНЫМ НОМЕРУ СУПЕРЭЛЕМЕНТА
$ ДЛЯ ГЕНЕРАЦИИ МАТРИЦ
$
PARAM,MAKEMAT,10
$
EIGR,101,MGIV,0.,100.,,4
$
$ EIGR ДЛЯ ОРТОГОНАЛИЗАЦИИ ОСТАТОЧНОГО ВЕКТОРА
$ ЗАПРАШИВАЕТ ВСЕ ТОНА ДЛЯ РЕДУЦИРОВАННОЙ СИСТЕМЫ
$ ЭТО ДАСТ ТЕ ЖЕ ТОНА КАК И В ОБЫЧНОМ МЕТОДЕ РЕДУКЦИИ
$ ПЛЮС ПО ОДНОМУ ВЫСОКОЧАСТОТНОМУ ТОНУ ДЛЯ КАЖДОГО
$ СТАТИЧЕСКОГО ВЕКТОРА НАГРУЗОК
$
EIGR,2,MGIV,,,,100
$
$ LSEQ и нагрузки для создания остаточного вектора
$ (нагрузка должна быть статическим распределением сил
$ и моментов, приложенных динамически - это не обязательно,
$ но помогает для улучшения точности)
$
PARAM,RESvec,yes
LSEQ,99,5,10
LSEQ,99,6,20
FORCE,10,14,,1.,1.,0.,0.
FORCE,20,12,,1.,0.,1.,1.
$
$ ВВЕДЕНИЕ МОДАЛЬНОГО ДЕМПФИРОВАНИЯ
$
PARAM,HFREQ,99999.
TABDMP1,10,
,0.,.01,100.,.01,endt
$
$ ВВЕДЕНИЕ МОДАЛЬНЫХ КООРДИНАТ
$ (предпочтительно использовать GRID или кратное
$ 6 количество SPOINTS для последующей многоуровневой
$ редукции)
SPOINT,101,THRU,112
SEQSET1,10,0,101,THRU,112
$
$ ОПРЕДЕЛЕНИЕ SEUSET U2 ДЛЯ ВНУТРЕННИХ ТОЧЕК С ПОТЕНЦИАЛЬНОЙ
$ НАГРУЗКОЙ ИЛИ ДЛЯ ВИЗУАЛИЗАЦИИ
$
DEFUSET,U2,U2
SEUSET,10,U2,13,123456
SEUSET,10,U2,16,123456
$
$
$ ОПРЕДЕЛЕНИЕ СУПЕРЭЛЕМЕНТА 10
$
SESET,10,11,THRU,16
$
PARAM,COUPMASS,1
PARAM,AUTOSPC,YES
INCLUDE 'bar1.dat'
ENDDATA

15
При расчете этого файла производится редукция суперэлемента 10 к узлу 3 с
использованием четырех собственных векторов системы с закрепленными
границами и двух добавочных (остаточных) векторов, которые получаются при
статическом решении задачи с закрепленными границами с нагрузкой ,
приложенной к 14 (первый остаточный вектор) и 12 (второй вектор) узлам. Эти
вектора удобно использовать для учета в редуцированной модели локальных
свойств системы в местах приложения нагрузок. Для того, чтобы проводить
обычную редукцию, надо убрать из файла все команды, относящиеся к
созданию остаточных векторов. Также производится вывод в панч файл в
формате DMIG редуцированных матриц жесткости – KAAEXT, масс –
MAAEXT и демпфирования – BAAEXT для суперэлемента 10 (причем матрица
демпфирования строится с учетом карты TABDMP, если матрица
демпфирования не требуется, то все команды, связанные с учетом модального
демпфирования надо убрать). А также в формате DMIG матриц перехода для
последующего приложения внешних воздействий к редуцированной модели
(PHIXQ – матрица перехода от внешнего воздействия к узлам 13 и 16 к
внешнему воздействию на обобщенные координаты, PHIXT - матрица перехода
от внешнего воздействия к узлам 13 и 16 к внешнему воздействию на
граничный узел 3). Если это не нужно, то все команды SEUSET,10,U2 следует
убрать. И, наконец, производится вывод в формате DMI матриц перехода от
обобщенных координат к физическим для перемещений (DIS), напряжений
(STRESS) и сил (FORC).
Таким образом, для получения соответствующих матриц:
1. модель, которую следует редуцировать, помещается в отдельный
суперэлемент;
2. в секции CASE CONTROL запрашиваются внешние нагрузки для
получения остаточных векторов (если нужно), вывод перемещений,
сил, напряжений и т.д. для формирования соответствующих матриц
перехода (если нужно) и модальное демпфирование для
соответствующего суперэлемента (если нужно);
3. в секции BULK DATA определяются нагрузки для остаточных
векторов (если нужно), модальное демпфирование (если нужно) и узлы
возможного приложения внешних нагрузок (если нужно).

16
С помощью параметра MATFILE =1 можно заказать вывод матриц в формате
OUTPUT2.
Недостаток второго пути получения редуцированных матриц заключается
в том, что для вывода в формате OUTPUT4 необходима дополнительная
модификация альтера alter1ga.v705.

Использование редуцированных матриц в MSC.NASTRAN.


Рассмотрим теперь примеры присоединения редуцированных матриц к
остальной модели. Для иллюстрации воспользуемся той же однородной балкой
(рис.1). Предположим, что нам нужно присоединить к модели, состоящей из
узлов 1-3 и элементов 1, 2 редуцированные матрицы остальной части модели,
полученные нами в предыдущих расчетах.
Проще всего включать в полную модель матрицы, заданные в формате
DMIG. Для этого создадим файл bardmig.dat для расчета собственных форм
системы.

bardmig.dat

SOL 103
TIME 5
CEND
K2GG=KXX
M2GG=MXX
DISPL=ALL
METHOD=10
BEGIN BULK
PARAM,COUPMASS,1
PARAM,AUTOSPC,NO
SPOINT, 101,THRU,110
EIGRL,10,,,10
INCLUDE 'bar2out.pch'
$
CORD2R 10 0 0. 0. 0. 0. 0. 1.
1. 0. 0.
$
PBEAM 1 1 0.01 8.E-6 1.2E-5 1.E-5 0.
$
MAT1 11.96E+127.44E+11 0.32 7862.7 0. 0.
$
GRID 1 10 0. 0. 0. 10
GRID 2 10 1. 0. 0. 10
GRID 3 10 2. 0. 0. 10
$
CBEAM 1 1 1 2 0. 1. 0.
CBEAM 2 1 2 3 0. 1. 0.
ENDDATA

17
В файл включены редуцированные матрицы KXX и MXX (INCLUDE 'bar2out.pch'),

полученные в предыдущих расчетах, а команды K2GG=KXX и M2GG=MXX


дают NASTRAN инструкцию включать их в полную модель как матрицы
жесткости и масс соответственно. Если нужно, можно включить
редуцированную матрицу демпфирования командой BGG=’имя матрицы‘.
Скалярные точки 101-110 нужны для размещения обобщенных степеней
свободы. Необходимо отметить, что номера граничных узлов и скалярных точек
должны соответствовать указанным в матрицах.
Теперь рассмотрим на этом же примере включение редуцированных
матриц в формате OUTPUT4. Для этого создадим файл barop4.dat.

barop4.dat

ASSIGN INPUTT4='mat.out',FORMATTED,UNIT=12
SOL 103
TIME 5
DIAG 8
compile phase1a nolist noref
ALTER 'AFTER.*MJJ' $ После формирования MJJ на этапе PHASE1A
$
type parm,,i,y,seplus=0 $
MESSAGE //'SEID='/SEID/ $
MESSAGE //'SEPLUS='/SEPLUS/ $
IF (SEPLUS=SEID) THEN $
$----------------------------------------------------------------
$...ВВОД МАТРИЦ ЖЕСТКОСТИ И МАСС.
$----------------------------------------------------------------
$
INPUTT4 /STIFF,MASS,,,/2/12/-1/0 $
$
$----------------------------------------------------------------
$ Расширение редуцированной матрицы масс до размерности полной
$ модели и ее слияние с матрицей масс
$----------------------------------------------------------------
$
$
UMERGE1 USET0,MASS,,,/MASSG1/'G'/'U1'/'Q'/0 $
ADD MJJ,MASSG1/MGGX1 $
MODTRL MGGX1////6 $
EQUIVX MGGX1/MJJ/ALWAYS $
$
ALTER 'IF.*SELG'(1,-1)
$
$----------------------------------------------------------------
$ Расширение редуцированной матрицы жесткости до размерности
$ полной модели и ее слияние с матрицей жесткости
$----------------------------------------------------------------
$
UMERGE1 USET0,STIFF,,,/STIFFG1/'G'/'U1'/'Q'/0 $
ADD KGG,STIFFG1/KGGX1 $
MODTRL KGGX1////6 $
EQUIVX KGGX1/KGG/ALWAYS $
ENDIF $
ENDALTER
CEND
DISPL=ALL
METHOD=10
BEGIN BULK
PARAM,COUPMASS,1

18
PARAM,AUTOSPC,NO
SPOINT, 101,THRU,110
$
$ помещение граничных узлов и обобщенных координат
$ в отдельный сет U1 (используется в альтере)
$
uset1,u1,123456,3
uset1,u1,0,101,thru,110
EIGRL,10,,,10
$
CORD2R 10 0 0. 0. 0. 0. 0. 1.
1. 0. 0.
$
PBEAM 1 1 0.01 8.E-6 1.2E-5 1.E-5 0.
$
MAT1 11.96E+127.44E+11 0.32 7862.7 0. 0.
$
GRID 1 10 0. 0. 0. 10
GRID 2 10 1. 0. 0. 10
GRID 3 10 2. 0. 0. 10
$
CBEAM 1 1 1 2 0. 1. 0.
CBEAM 2 1 2 3 0. 1. 0.
ENDDATA

В этом расчете мы используем файл mat.out, в котором находятся


редуцированные матрицы в формате OUTPUT4, созданные ранее. Граничный
узел 3 и скалярные точки 101-110 помещены в набор U1 для того, чтобы
правильно слить редуцированные матрицы с матрицами остальной
конструкции. Необходимо заметить, что число степеней свободы, помещенных
в набор U1 должно быть строго равно размерности матриц. Столбцы матриц,
соответствующие граничным степеням свободы редуцированной модели,
должны строго соответствовать тем же степеням свободы в полной модели. Для
этого можно использовать нумерацию узлов (например, в нашем случае
граничный узел имеет меньший номер чем скалярные точки , что соответствует
тому, что матрица граничного узла в редуцированной матрице находится в
левом верхнем углу), или команду SEQGP, которая позволяет задать
последовательность столбцов в полной матрице конструкции.
Необходимо отдельно остановиться на системах координат. Было
отмечено, что редуцированные матрицы создаются в соответствии с системой
координат, которая задана в седьмом поле граничных узлов. Поэтому в полной
модели, эти системы координат должны соответствовать тем, которые
использовались при редукции. Несоблюдение этого приведет к ошибке (рис.2).

19
16

15

14

13

12

11

1 2 3
X
Z

Рис.2

Теперь рассмотрим возможности по включению внешних матриц, которые


предоставляют фирменные альтеры.
На первом этапе происходит считывание и запоминание матриц в базе
данных файл bardb.dat с использованием альтера alter2ga.v705.

bardb.dat

assign master ='bardb.MASTER', delete


assign dball='bardb.DBALL', delete
$
$ СОЗДАНИЕ БАЗЫ ДАННЫХ ДЛЯ ВНЕШНЕГО СУПЕРЭЛЕМЕНТА
$
SOL 103
TIME 10
diag 8
INCLUDE 'alter2ga.v705' $ DMAP АЛТЕР
CEND
TITLE = READ AND STORE MATRICES IN DATA BASE
$
SEALL = 10 $ ПРОВОДИТЬ РАСЧЕТ ТОЛЬКО ДЛЯ С.Э. 10
$
SUBCASE = 1
SUPER = 10
$
20
$ ИСПОЛЬЗОВАТЬ МАТРИЦЫ ИЗ ПРЕДЫДУЩЕГО РАСЧЕТА
$
$
K2GG = KAAEXT
M2GG = MAAEXT
B2GG = BAAEXT $ ДЕМПФИРОВАНИЕ ЕСЛИ НУЖНО
$
METHOD = 1
$
BEGIN BULK
param,grdpnt,0
$
EIGR,1,aGIV,0.,100.,,10
$
$ ИСПОЛЬЗОВАНИЕ SESET И SEQSET ДЛЯ ОПРЕДЕЛЕНИЯ С.E. 10
$
$ SESET - ДЛЯ УЗЛОВ В СЕТЕ U2
$
$ SEQSET - ДЛЯ ОБОБЩЕННЫХ КООРДИНАТ
$
SPOINT,101,THRU,112
$
SESET,10,13,16
$
SEQSET1,10,0,101,THRU,112
$
$ ВВОДЯТСЯ УЗЛЫ ИЗ СЕТА U2 ДЛЯ ПРИЛОЖЕНИЯ НАГРУЗОК
$
GRID 13 10 5. 0. 0. 10
GRID 16 10 8. 0. 0. 10
$
$ ПЛОТ-ЭЛЕМЕНТЫ ДЛЯ ВИЗУАЛИЗАЦИИ
$
PLOTEL,100,3,13
PLOTEL,101,13,16
$
$ УЗЛЫ И ЭЛЕМЕНТЫ ДЛЯ НЕРЕДУЦИРОВАННОЙ МОДЕЛИ
$
CORD2R 10 0 0. 0. 0. 0. 0. 1.
1. 0. 0.
$
PBEAM 1 1 0.01 8.E-6 1.2E-5 1.E-5 0.
$
MAT1 11.96E+127.44E+11 0.32 7862.7 0. 0.
$
GRID 1 10 0. 0. 0. 10
GRID 2 10 1. 0. 0. 10
GRID 3 10 2. 0. 0. 10
$
CBEAM 1 1 1 2 0. 1. 0.
CBEAM 2 1 2 3 0. 1. 0.
$
$ МАТРИЦЫ ИЗПРЕДЫДУЩЕГО РАСЧЕТА
$
INCLUDE 'bar1alt.pch'
ENDDATA

На втором этапе с помощью рестарта производится присоединение матриц


к остальной конструкции – файл barrest1.dat.

barrest1.dat

ASSIGN MASTER='bardb.MASTER'
RESTART VERSION=1 KEEP
dbdict $
$
$ присоединение внешних матриц с.э. 10, проверка свойств твердого тела
$ расчет и сохранение собственных форм
$

21
$$ENDFMS
SOL 103
DIAG 8,56
TIME 15
CEND
TITLE = CHECK EXTERNAL S.E. 10 MATRICES
param,serst,semi
SET 99 = 0
SEALL = 99
SUBCASE 1
SUPER = 10
DISP = ALL
K2GG=KAAEXT
M2GG=MAAEXT
B2GG = BAAEXT
METHOD = 1
SUBCASE 5
SPC = 1
METHOD = 1
DISP = ALL
BEGIN BULK
ENDDATA

И на третьем этапе производится расчет системы, нагруженной внешней


силой – barrest2.dat. Причем вывод пермещений производится по всем узлам
конструкции соответственно матрице перехода DIS.

barrest2.dat

ASSIGN MASTER='bardb.MASTER'
RESTART version=2,keep $
$ MODAL TRANSIENT используя внешние матрицы
SOL 112
TIME 10
DIAG 8,56
$
$ присоединение матриц с.э. 10, расчет форм
$ и решение MODAL TRANSIENT
$
INCLUDE 'alter9ga.v705'
CEND
TITLE = MODAL TRANSIENT FOR SUPERELEMENT MODEL
LOADSET = 10
disp = all
SUBCASE = 1
SUPER = 10
METHOD = 1
$
SET 999 = 3
OLOAD = 999
PARAM,SEBFORC,1
$
K2GG=KAAEXT
M2GG=MAAEXT
B2GG = BAAEXT
SUBCASE 5
LABEL = RES STR - SOLVE PROBLEM FOR transient solution
SDAMP = 100
TSTEP = 5
DLOAD = 10
METHOD = 1
DISP = ALL
BEGIN BULK
$ SID DAREA DELAY TYPE T1 T2 F PHASE
TLOAD2 10 10 0. 5. 1. +T12
$ C B
+T12 -1.
$ SID N(1) DT(1) NO(1)
22
TSTEP 5 600 .001 5
$
DAREA,10,1,3,1.
$
TABDMP1 100 CRIT +TDAMP
+TDAMP 0. .01 200. .01 ENDT
$
$ FORCE И LSEQ ЗАПРАШИВАЕТ NASTRAN ГЕНЕРИРОВАТЬ НАГРУЗКУ
$ НА ВНЕШНИЙ С.Э. 10
$
FORCE,12,16,,2.,0.,0.,10000.
$
LSEQ,10,10,12
$
ENDDATA

Таким образом, мы рассмотрели различные возможности включения


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

Литература
1. MSC.NASTRAN Superelement Analysis SEMINAR NOTES
2. MSC.NASTRAN DMAP Module Dictionary
3. MSC.NASTRAN Quick Reference Guide

23