Содержание ↓
Глава 11

Два элемента, обе матрицы, три формы

Illustrative Example 11.1 из книги Mario Paz и William Leigh особенно полезен тем, что в одной небольшой модели проверяет поворот рамного элемента, согласованную матрицу масс, прямую сборку и обобщённую собственную задачу. Ни одна стадия не скрыта за большой сеткой.

1. Расчётная схема

Два призматических рамных элемента соединяются в узле 2. Узлы 1 и 3 полностью закреплены, поэтому из девяти глобальных степеней свободы остаются только три компоненты среднего узла: ux2, uy2 и θ2.

Двухэлементная плоская рама Mario Paz Наклонный под 45 градусов элемент длиной 100 дюймов соединяет закреплённый узел 1 с узлом 2. Горизонтальный элемент длиной 100 дюймов соединяет узел 2 с закреплённым узлом 3. F(t) 1 2 3 элемент 1 · L = 100 in элемент 2 · L = 100 in 45° полное закрепление полное закрепление
Собственная задача не использует показанную силу F(t): частоты определяются только матрицами K, M и закреплениями.
ПараметрЗначениеРоль в матрицах
A6 in²Осевое EA/L и масса ρAL
I100 in⁴Изгибные коэффициенты EI/L³, EI/L², EI/L
E107 lb/in²Жёсткость
ρ0.7 lb·s²/in⁴В файле хранится объёмная массовая плотность; ρA=4.20
L100 inОба элемента

Точные координаты наклонного элемента равны (100/√2, 100/√2). Поэтому входной файл использует 70.7106781186548, а не сокращённое 70.7: последнее изменило бы длину первого элемента на 0.0151%.

2. Исполняемая модель

Вся схема помещается в короткий входной файл. Нагрузка оставлена как часть исходного примера, но метод RunModal её не использует.

nodes
3
0,0,0
70.7106781186548,70.7106781186548,0
170.710678118655,70.7106781186548,0
elems_113
2
113,1,2,6,10000000,0.7,100
113,2,3,6,10000000,0.7,100
bcfix
2
1,1,0,0,0
1,3,0,0,0
bcforce_stat
1
10,2,0,-10,0

Для рамного узла карта СС имеет вид [ux, uy, thetaZ]. Поэтому свободные СС узла 2 получают глобальные номера [4 5 6], а закреплённые СС — [1 2 3 7 8 9].

3. Локальные матрицы элемента

Оба элемента имеют одинаковые свойства и длину, поэтому их локальные матрицы совпадают. Численные коэффициенты жёсткости:

Осевое растяжение

EA/L = 600 000

Поперечная жёсткость

12EI/L³ = 12 000

Связь с поворотом

6EI/L² = 600 000

Поворотные коэффициенты

4EI/L = 40 000 000
2EI/L = 20 000 000

Локальная матрица жёсткости, записанная в порядке [u1 v1 θ1 u2 v2 θ2]:

k(local) = 10^6 ×
[ 0.600   0       0      -0.600   0       0
  0       0.012   0.600   0      -0.012   0.600
  0       0.600  40.000   0      -0.600  20.000
 -0.600   0       0       0.600   0       0
  0      -0.012  -0.600   0       0.012  -0.600
  0       0.600  20.000   0      -0.600  40.000 ]

Для согласованной массы множитель перед безразмерным шаблоном особенно удобен:

ρAL/420 = 0.7·6·100/420 = 1

m(local) =
[ 140      0       0      70      0       0
    0    156    2200       0     54   -1300
    0   2200   40000       0   1300  -30000
   70      0       0     140      0       0
    0     54    1300       0    156   -2200
    0  -1300  -30000       0  -2200   40000 ]
Почему нужна именно M

Статическая задача использовала бы только K. Здесь собственные значения определяются отношением жёсткости к инерции, поэтому ошибка знака или коэффициента в согласованной матрице масс непосредственно сдвигает частоты и формы.

4. Поворот в глобальные оси

Для первого элемента c=s=1/√2. Книга выносит общий множитель 1/√2; реализация записывает те же направляющие косинусы непосредственно:

T1 = 1/sqrt(2) ×
[ 1   1   0   0   0   0
 -1   1   0   0   0   0
  0   0  sqrt(2)  0   0   0
  0   0   0   1   1   0
  0   0   0  -1   1   0
  0   0   0   0   0  sqrt(2) ]

T2 = I

Преобразование применяется одинаково к жёсткости и массе:

k(global) = TT k(local) T
m(global) = TT m(local) T

Именно здесь наклонный элемент создаёт связи между глобальными компонентами x, y и поворотом. Горизонтальный элемент преобразования не требует.

5. Сборка в трёх свободных координатах

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

Вклады элемента 1, наклон 45°

K1(ff) =
[ 306000   294000    424264.0687
  294000   306000   -424264.0687
  424264.0687 -424264.0687 40000000 ]

M1(ff) =
[ 148    -8     1555.6349
   -8   148    -1555.6349
 1555.6349 -1555.6349 40000 ]

Вклады элемента 2, горизонталь

K2(ff) =
[ 600000       0         0
       0   12000    600000
       0  600000  40000000 ]

M2(ff) =
[ 140    0      0
    0  156   2200
    0 2200  40000 ]

Редуцированные матрицы системы

Kff = K1(ff) + K2(ff)
    = 10^6 ×
[ 0.906000  0.294000  0.424264
  0.294000  0.318000  0.175736
  0.424264  0.175736 80.000000 ]

Mff = M1(ff) + M2(ff)
    =
[ 288        -8      1555.635
   -8       304       644.365
 1555.635   644.365 80000 ]

После округления 0.424264 → 0.424, 0.175736 → 0.176, 1555.635 → 1556 и 644.365 → 644 получаются ровно матрицы, напечатанные в книге.

6. Собственные значения и частоты

Ненулевое решение существует, когда:

det(Kff − ω²Mff) = 0

В численном виде решается обобщённая задача eig(Kff, Mff). Её собственные значения равны λ=ω², после чего вычисляются ω=√λ и f=ω/(2π).

Формаλ = ω², точное вычислениеλ в книгеω, рад/сf, Гц
1638.5045874482638.525.268648314.021630284
2976.5825465395976.631.250320744.973643019
34211.59710880254211.664.8968189410.328649526
Округление в печатном источнике

В книге приведены 25.26 и 31.24 рад/с, хотя обычное округление квадратных корней напечатанных λ даёт 25.27 и 31.25. Частоты в герцах и полные вычисления согласуются; это небольшая особенность округления исходного текста, а не расхождение решателя.

7. Массово-нормированные формы

Для каждой формы выбирается масштаб, при котором φiTMφi=1. Столбцы модальной матрицы:

Phi =
[  0.02182975   0.00497889   0.05830737
  -0.05270167   0.00206232   0.02415170
   0            0.00340929  -0.00162915 ]

Напечатанные в книге значения [0.0218, -0.0527, 0], [0.00498, 0.00206, 0.00341] и [0.0583, 0.0241, -0.0016] являются округлением этих столбцов.

Две обязательные численные проверки:

ΦTMffΦ = I

ri = Kffφi − λiMffφi ≈ 0

Знак собственного вектора произволен: φ и −φ описывают одну форму. Поэтому тест сначала нормирует каждый столбец по массе, затем согласует его знак с эталоном и лишь после этого сравнивает компоненты.

8. Воспроизведение в GNU Octave

addpath(pwd);
setup;

problem = StructFEProblem( ...
    fullfile('examples', 'cases', ...
        'CaseFig11.7p363 MarioPaz.txt'), ...
    struct('verbose', false, 'plotting', false));

model = problem.GetAnalysisModel();
result = problem.RunModal();

Kff = full(model.stiffness(result.freeDOFs, result.freeDOFs))
Mff = full(model.mass(result.freeDOFs, result.freeDOFs))
lambda = result.eigenvalues
omega = result.angularFrequenciesRadPerSec
frequencyHz = result.frequenciesHz
Phi = result.modeShapes(result.freeDOFs, :)

Автоматическая проверка находится в tests/test_mario_paz_modal.m и запускается вместе со всем набором:

addpath(pwd); setup; run_octave_tests;
Как тест учитывает числа с плавающей точкой

Точные восстановленные значения сравниваются комбинацией относительного и абсолютного допусков. Округлённые книжные числа получают допуск, соответствующий числу напечатанных знаков. Формы отдельно нормируются и согласуются по знаку; дополнительно проверяются ортогональность и невязка собственной пары.

9. Практические эксперименты

Удвойте E

Матрица K удвоится, M не изменится, поэтому все частоты должны умножиться на √2.

Удвойте ρ

Матрица M удвоится, K не изменится, поэтому все частоты должны разделиться на √2.

Верните координату 70.7

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

Уберите массу поворота

Не изменяя основной файл, исследуйте копию матрицы. Определите, почему произвольное зануление строк и столбцов нарушает положительную определённость и физический смысл задачи.

Код и источник

  • CaseFig11.7p363 MarioPaz.txt — точная геометрия, свойства и закрепления;
  • createStructuralElement.m — локальные матрицы и преобразование;
  • assembleGlobalMatrices.m — прямая разреженная сборка;
  • solveModal.m — редукция и обобщённая собственная задача;
  • tests/test_mario_paz_modal.m — численный эталон и устойчивые сравнения;
  • Mario Paz, William Leigh, Structural Dynamics: Theory and Computation, 5-е изд., Illustrative Example 11.1, рис. 11.7, с. 363–366.