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

Граничные условия и нагрузки

Опора задаёт, какие узловые движения запрещены, а нагрузка — какие обобщённые силы приложены к соответствующим компонентам. В МКЭ‑Ф эти данные не изменяют исходные матрицы: для каждого расчёта заново строятся индексы СС и вектор нагрузки.

Свободные и закреплённые СС

Функция partitionDOFs преобразует записи опор в два непересекающихся списка:

  • fixedDOFs — СС с заданным нулевым перемещением;
  • freeDOFs — все СС, не закреплённые SPC; при наличии только SPC это неизвестные редуцированной системы.

fixedDOFs ∪ freeDOFs = {1, …, n},   fixedDOFs ∩ freeDOFs = ∅

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

Типы опор

Запись имеет вид type,node,0,0,0. Ненулевые заданные перемещения пока не поддерживаются.

Для рамы 113 действуют все семь комбинаций:

ТипЗакрепленоСвободноФизический смысл
1ux, uy, thetaZ—Полная заделка
2uy, thetaZuxСвободно только ux; поворот запрещён
3ux, thetaZuyСвободно только uy; поворот запрещён
4ux, uythetaZНеподвижный шарнир
5uxuy, thetaZКаток: запрещён ux, поворот свободен
6uyux, thetaZКаток: запрещён uy, поворот свободен
7thetaZux, uyТолько запрет поворота

У фермы 112 нет поворота: типы 1 и 4 закрепляют ux, uy; типы 3 и 5 — только ux; типы 2 и 6 — только uy. Тип 7 запрещён. Редактор показывает три уникальные комбинации, а экспорт использует типы 1, 3 и 2 соответственно.

Внутреннее представление — маски fixUx/fixUy/fixThetaZ. При смене семейства маски сохраняются; перед переходом к ферме нужно убрать thetaZ. Повторное закрепление одной СС — ошибка с указанием узла и компоненты. Пример шарнира и катка: CaseRollerFrame.txt.

Сопряжённые перемещения и силы

Каждой узловой СС соответствует обобщённая сила, совершающая на ней работу:

МодельСтепени свободыКомпоненты нагрузки
ферма 112[ux, uy][Fx, Fy]
рама 113[ux, uy, θz][Fx, Fy, Mz]

Mz — момент вокруг оси Z, сопряжённый повороту θz. Это не сила Fz: пространственного перемещения uz в плоской модели нет. Поэтому ненулевой Mz у ферменного узла отклоняется, а не игнорируется.

Четыре истории нагрузки

Узловые компоненты задаются в глобальных осях: type,node,Fx,Fy,Mz; у гармоники добавляется положительная частота f в Гц. В модальном анализе нагрузки не допускаются. Нагрузка на закреплённую СС сохраняется в полном векторе и учитывается в реакции.

Столбцы временной истории соответствуют t = 0, Δt, …, NΔt. Если несколько записей действуют на одну СС, их значения суммируются.

Секция / типЗначениеДопустимый расчёт
bcforce_stat / 10постоянный вектор в статике; в динамике — совместимый одношаговый импульс при t = Δtстатический и переходный
bcforce_harm / 11F(t) = F0 sin(2πft)переходный
bcforce_pulse / 12F0 только при t = Δtпереходный
bcforce_step / 13F0 во всех столбцах, включая t = 0переходный

Для одношагового прямоугольного импульса дискретный импульс равен F0Δt. Поэтому изменение шага времени при неизменной амплитуде меняет переданный импульс.

% Пять столбцов: t = [0, dt, 2dt, 3dt, 4dt]
pulse = [0, F0, 0,  0, 0];
step  = [F0, F0, F0, F0, F0];

Распределённая нагрузка на элемент

eload_uniform поддерживается только в статике для рамы 113. Строка 20,elementId,coordinateSystem,qx,qy задаёт силу на единицу фактической длины конечного элемента. Код системы 1 означает локальные оси (x — от первого узла ко второму, y — поворот x на +90°), 2 — глобальные X, Y. Повторные записи складываются; обе компоненты одновременно нулевыми быть не могут.

После перевода q в локальные оси согласованный вектор равен:

fe = [qₓL/2, qᵧL/2, qᵧL²/12, qₓL/2, qᵧL/2, −qᵧL²/12]ᵀ

При ulocal = R uglobal глобальный вклад равен Rᵀfe. Он добавляется к узловым нагрузкам. Не вводите его вручную второй раз. В редакторе изменение элемента или координат его концов удаляет связанные распределённые нагрузки; Undo восстанавливает их. Переключение Local/Global сохраняет физическое направление нагрузки.

Формат и пример: eload_uniform. В переходном и модальном анализе распределённые нагрузки отклоняются.

Линейная нагрузка: трапеция и треугольник

Секция eload_linear задаёт 21,elementId,coordinateSystem,qx1,qy1,qx2,qy2. Значения относятся к первому и второму узлам элемента: q(ξ) = (1 − ξ)q₁ + ξq₂. Нагрузка действует на всю длину. Нулевой конец даёт треугольник; равные концы — равномерную нагрузку. Разные знаки разрешены; полностью нулевая запись запрещена.

Для локальных концевых векторов a и b точное интегрирование функций формы даёт:

fₑ = [L(2aₓ+bₓ)/6, L(7aᵧ+3bᵧ)/20, L²(3aᵧ+2bᵧ)/60, L(aₓ+2bₓ)/6, L(3aᵧ+7bᵧ)/20, −L²(2aᵧ+3bᵧ)/60]ᵀ

Эпюры N и V квадратичны, M — кубическая; внутренние экстремумы учитываются при отображении. Нагрузки обоих типов суммируются и совместимы с MPC и освобождениями Mz. В редакторе выберите Linear и задайте компоненты на концах; Local/Global преобразует оба вектора. Переход к Uniform берёт средние компоненты, сохраняя силу, но в общем случае меняя её момент.

Треугольная нагрузка · Трапециевидная нагрузка · JSON v5

Лабораторная 04. Узловые нагрузки: сумма сил и история во времени

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

Нагрузка на узел 2: 10 Н вправо, 20 Н вниз и момент 3 Н·м против часовой стрелки.
На схеме показаны амплитуды временных нагрузок. Здесь формируются векторы нагрузок; перемещения не вычисляются, опоры не заданы.

Исходные данные и обозначения

Порядок СС: [u₁x; u₁y; θ₁; u₂x; u₂y; θ₂]. Временные амплитуды узла 2: [10; −20; 3] (Н, Н, Н·м); частота гармоники 1 Гц. Сетка: t = [0; 0,25; 0,5; 0,75; 1] с. В отдельном статическом случае складываются нагрузки [10; −20; 3] и [5; 2; −1].

До запуска: расчёт на бумаге

  1. Найдите три компоненты суммарной статической нагрузки узла 2.
  2. Составьте таблицу Fₓ(t) для трёх случаев: импульс действует только при t = Δt, ступень — с t = 0, гармоника задаётся как 10·sin(2πt).
  3. Найдите дискретный импульс каждой компоненты F₀Δt; единица для момента — Н·м·с.

Запуск в Octave

Выполните из корня проекта. Готовая функция печатает результаты; для этой работы изменять её код не требуется.

addpath(pwd);
setup;
addpath(fullfile(pwd, "reference", "examples"));
r = example_04_load_histories();

Работа с результатами

  1. Сверьте статическую сумму с последними тремя строками Summed static load vector. Первые три строки относятся к ненагруженному узлу 1.
  2. Подпишите пять столбцов трёх напечатанных временных таблиц значениями из Time grid [s]. В этих таблицах показаны только СС 4–6: первая строка — Fₓ, вторая — Fᵧ, третья — M_z.
  3. Сверьте первую строку каждой таблицы со своим прогнозом. Восстановите две остальные строки умножением той же временной функции на −20 и 3. Малые числа около нуля у гармоники объясняются округлением.
  4. Сверьте Discrete pulse impulse components F0*dt со своим расчётом. Предскажите импульс при уменьшении Δt вдвое с той же амплитудой; определите, как изменить амплитуду, чтобы сохранить импульс.
Контрольные значения

Статическая сумма: [15; −18; 2]. Для Fₓ строки равны [0 10 0 0 0], [10 10 10 10 10] и [0 10 0 −10 0]. Импульс: [2,5; −5; 0,75] (Н·с, Н·с, Н·м·с). При половинном шаге с той же амплитудой он уменьшается вдвое; для сохранения нужна двойная амплитуда.

Что включить в отчёт

Сумму статических нагрузок, таблицу или эскиз трёх историй Fₓ(t), единицы импульса и объяснение влияния шага времени.

Исходный код главы

Связи между перемещениями нескольких узлов описаны отдельно в главе 4a: MPC. Там рассматриваются зависимые СС, помощник оси и силы связей.

Концевые освобождения Mz

Подробное описание: глава 4b

Освобождение Mz разрывает передачу момента конкретным концом и не закрепляет перемещения узла. SPC отсутствующего thetaZ пропускается с предупреждением. Ненулевой узловой момент, MPC и монитор на отсутствующий поворот запрещены. Эквивалентные распределённые нагрузки действуют и на внутренние вращательные СС.

JSON v4 · CaseReleaseStatic · CaseReleaseModal · CaseReleaseTransient