Перейти к содержанию

Субмодель прямой стержневой цепочки

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

Типичная задача: рама рассчитана линейно, а для одного элемента нужен нелинейный расчёт без пересчёта всей схемы.

flowchart LR
    P[Родительская схема<br/>линейный расчёт] --> C[Проверка прямой цепочки]
    C --> E[Извлечение субмодели]
    E --> S[1. Граничный сценарий]
    S --> M[2. Материализация]
    M --> L[3. Линейная сверка]
    M --> N[4. Нелинейный расчёт и сверка]

Весь путь выполняется из интерфейса: извлечение — на вкладке Проверка схемы родительской схемы, остальные шаги — на вкладке Субмодель дочерней схемы.

Предварительные условия

  • У родительской схемы сохранена расчётная сетка, и схема не содержит несохранённых правок.
  • У родителя есть линейная постановка OpenSees с сохранённым успешным результатом (статус ok). Нелинейный результат родителя для построения граничных условий не используется.
  • Выделены стержневые элементы, образующие одну прямую двухконцевую цепочку: без ветвлений, циклов, разрывов и изломов. Можно выделить конструктивный элемент целиком — он разворачивается в элементы сетки.

Проверка и извлечение

  1. Откройте редактор родительской схемы и выделите стержни цепочки.
  2. На вкладке Проверка схемы нажмите Проверить прямую цепочку.
  3. Прочитайте вердикт: «Цепочка пригодна для извлечения», «Цепочка пригодна, есть предупреждения» или «Цепочка не пригодна для извлечения», а также число сегментов и длину цепочки. Диагностика выводится списком ниже, ошибки — первыми.
  4. В поле Расчёт родителя выберите линейную постановку с результатом. Если такая постановка одна, она выбирается автоматически.
  5. Нажмите Извлечь субмодель.

Если кнопка недоступна, рядом выводится причина: «Сохраните схему», «Проверьте цепочку (выделение изменилось или проверки не было)», «Цепочка не пригодна для извлечения» или «Нет линейного расчёта с результатом». Любое изменение выделения сбрасывает результат проверки — извлекается ровно та цепочка, для которой показан вердикт. При извлечении анализ цепочки выполняется повторно по тем же тегам.

После извлечения в дереве появляется новая схема с именем вида «Рама — субмодель B» (по тегам конструктивных элементов первого и последнего сегмента). Она сразу открывается на вкладке Субмодель. Имя можно изменить обычной командой переименования схемы.

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

Геометрические критерии и допуски проверки цепочки описаны в разделе МКЭ-расчёты.

Вкладка «Субмодель»

Вкладка видна только у схем, созданных извлечением. Остальные вкладки — 3D-вид, узлы, стержни, загружения — остаются доступны, в том числе для просмотра результата материализации.

Происхождение

Родительская схема, расчёт родителя с номером результата, число сегментов, длина цепочки, максимальное отклонение узла от оси (мм) и максимальный угол сегмента к оси, а также диагностика извлечения.

Шаг 1. Граничный сценарий

Кнопка Построить формирует граничный сценарий по сохранённому результату родителя. Сценарий описывает:

  • нагрузки родителя — сколько оставлено на цепочке, сколько переведено на границу и сколько отброшено (нагрузки на элементах вне цепочки учитываются через усилия в сечениях границы);
  • концы цепочки — узел субмодели и узел родителя, а также контрольную проверку: граничный вектор сравнивается с остатком по выбранной части, невязки выводятся в кН и кН·м;
  • режимы граничных DOF — по шесть степеней свободы на каждый конец.

Режим каждого DOF выбирается автоматически в следующем порядке:

Условие в родителе Режим DOF в субмодели
Узел закреплён по этому DOF Закрепление
В узле задано перемещение (кинематическая нагрузка) Перемещение — заданное значение
Силовой вклад на границе определён Сила — сила или момент из граничного вектора
Иначе, если известны перемещения родителя Перемещение — перемещение родителя
Ничего из перечисленного блокирующая диагностика

Значения в таблице DOF показываются в кН и кН·м для сил и моментов, в мм для перемещений и в радианах для поворотов. Строка статуса показывает состояние сценария: «полный», «неполный» (нагрузки родителя неизвестны, например после импорта) или «заблокирован».

Переопределение режима. В столбце Задать режим можно выбрать «Закрепление», «Сила» или «Перемещение» вместо «Авто». При следующем нажатии Построить все строки с выбором, отличным от «Авто», передаются в сценарий как ручные переопределения. В сохранённом сценарии такие DOF помечены источником «задано вручную», поэтому выбор восстанавливается при повторном открытии схемы. Недопустимое переопределение блокирует сценарий: например, силовой режим без определённого силового вклада или кинематический режим без перемещений родителя.

Если родитель пересчитан после извлечения, сценарий не строится: выводится сообщение, что субмодель устарела и её нужно извлечь заново.

Шаг 2. Материализация

Кнопка Материализовать доступна, если сценарий построен и не заблокирован. Материализация полностью заменяет конструктивный слой дочерней схемы: узлы, стержни, закрепления, загружение «Граничный сценарий λ = 1» с узловыми, стержневыми и кинематическими нагрузками, а также линейную постановку «Сверка с родителем λ = 1». Если в редакторе схемы есть несохранённые правки, запрашивается подтверждение. После материализации страница схемы открывается заново.

Фиксация жёстких мод. Если закреплений и заданных перемещений на концах недостаточно, чтобы исключить шесть перемещений цепочки как жёсткого тела, OpenCS добавляет закрепления в силовые DOF концов (gauge-DOF). Значение такого закрепления равно перемещению родителя, а граничная сила в этом DOF сохраняется. В равновесной постановке реакция в gauge-DOF должна быть равна нулю с точностью до невязки. В деталях шага выводятся ранг закреплений до дополнения (из 6), список gauge-DOF (конец, DOF, узел) и число созданных узлов, стержней и нагрузок.

Перестроение сценария удаляет прежнюю материализацию: шаг 2 снова показывает «Текущий сценарий не материализован», и шаги 3–4 блокируются до повторной материализации. Ручное редактирование схемы после материализации не запрещено, но сверка тогда перестаёт иметь смысл. Пересоздание сетки дочерней схемы обнаруживается сервисом и блокирует материализацию и сверку.

Шаг 3. Линейная сверка

Кнопка Рассчитать и сверить запускает постановку «Сверка с родителем λ = 1» через OpenSees, сохраняет результат (прежний заменяется) и сравнивает субмодель с родителем в узлах и элементах цепочки. Теги узлов и элементов субмодели совпадают с родительскими, поэтому сопоставление прямое.

Сравниваются шесть видов величин; для каждого выводится максимальное расхождение:

Вид Единицы на экране Что сравнивается
Перемещения мм Ux, Uy, Uz узлов цепочки
Повороты рад Rx, Ry, Rz узлов цепочки
Концевые силы кН силы на концах элементов цепочки
Концевые моменты кН·м моменты на концах элементов цепочки
Реакции — силы кН реакции в закреплённых DOF концов: ожидается \(R = p_{control} - p_{applied}\)
Реакции — моменты кН·м то же для моментов

Для каждого вида приведены масштаб (наибольшая по модулю величина родителя этого вида), относительное расхождение и место (узел или КЭ, DOF). Вид считается совпавшим, если максимальное расхождение не превышает

\[ \Delta_{\max} \le \max\left(10^{-6}\cdot S,\; \Delta_{abs}\right), \]

где \(S\) — масштаб вида, \(\Delta_{abs}\) — абсолютный порог: \(10^{-9}\) м или рад для перемещений и поворотов, \(10^{-6}\) Н или Н·м для сил и моментов. Итог — «Сверка пройдена» или «Сверка не пройдена». При корректной постановке расхождения имеют порядок погрешности округления.

Если данных по виду нет (например, в субмодели нет закреплённых DOF), в строке выводится «нет данных».

Шаг 4. Нелинейный расчёт и сверка

Кнопка Параметры… открывает диалог постановки в режиме субмодели. В нём доступны только нелинейная панель (тип диаграмм CalcType, формулировка элемента, учёт физической нелинейности и растяжения бетона, источник и модели материалов) и поле Шаг λ в интервале \((0;\,1]\). Тег, вид расчёта, источник нагрузки и стадии скрыты: единственную стадию строит OpenCS. Если параметры не заданы, диалог открывается при первом запуске. Начальные значения берутся из существующей постановки «Нелинейный расчёт λ = 1».

Кнопка Рассчитать и сверить запускает нелинейный расчёт по пропорциональному пути: все граничные силы и перемещения, а также нагрузки на цепочке растут вместе с коэффициентом \(\lambda\) от 0 до 1 (LoadControl, заданный шаг). Расчёт идёт под индикатором занятости и может быть отменён.

Результат сверки:

  • достигнутое λ; если \(\lambda = 1\) не достигнуто, сравнение выполняется в последней сошедшейся точке с родителем, умноженным на достигнутое \(\lambda\);
  • таблица расхождений тех же шести видов — без вердикта. Отличие нелинейного отклика от линейного родителя — результат расчёта, а не ошибка: концевые усилия при силовых граничных условиях обычно близки к родителю, перемещения — больше;
  • максимальная невязка фиксации жёстких мод по силе и по моменту с λ, при котором она достигнута. При geomTransf Linear она близка к нулю; при PDelta и Corotational отличие от нуля отражает геометрическую нелинейность;
  • при geomTransf Corotational стержневые нагрузки в пролёте переводятся в эквивалентные узловые. Это отмечается пояснением: концевые усилия и отклик в пролёте в этом случае приближённые.

Предварительная линейная проверка. Если в настройках, на вкладке OpenSees в группе «Нелинейный расчёт схемы», включён флажок Линейная сверка субмодели перед нелинейным расчётом (по умолчанию включён), перед нелинейным расчётом выполняется шаг 3. Провал проверки выводится предупреждением, нелинейный расчёт всё равно выполняется. Итог проверки показывается одной строкой под результатом нелинейного расчёта только для запуска в текущем сеансе; результат линейной сверки при этом обновляется и в шаге 3.

Состояние при повторном открытии

При открытии схемы вкладка восстанавливает сценарий, материализацию и отчёты обеих сверок по сохранённым результатам, без повторного запуска OpenSees. Отдельно отчёты не хранятся — они пересчитываются из результатов постановок.

Устаревание

Что изменилось Что показывает вкладка
Родитель пересчитан (другой результат постановки) Сценарий не строится; субмодель нужно извлечь заново
Результат родителя удалён Сценарий заблокирован: результат родителя не найден
Пересоздана сетка дочерней схемы Материализация и сверка заблокированы
Сценарий перестроен Материализация удалена, шаги 3–4 недоступны до повторной материализации

Ограничения

  • Извлекается одна прямая цепочка; ломаные, разветвлённые и замкнутые цепочки не поддерживаются.
  • Повторное извлечение «поверх» существующей субмодели не выполняется — создаётся новая схема.
  • Граничные условия строятся только по линейному результату родителя.
  • Подсветки цепочки в 3D-виде родителя и эпюр сравнения «родитель — субмодель» нет. Результаты субмодели смотрятся штатным просмотром постановки из дерева.
  • Отчёты сверки не хранятся отдельно и не экспортируются.

Проверка в тестах

Расчётная часть проверена на портальной раме (две колонны и ригель) с эталонным результатом OpenSees:

  • CScore.Tests: анализ цепочки, построение граничного сценария и его воспроизведение эталонного решения, выбор режимов DOF, фиксация жёстких мод, линейная и нелинейная сверка;
  • OpenCS.OpenSees.Tests: сервисы извлечения, сценария, материализации и сверки на SQLite; интеграционные тесты с OpenSees (StraightBeamSubmodelMaterializationIntegrationTests, StraightBeamSubmodelNonlinearIntegrationTests), в которых материализованный ригель воспроизводит родителя, а нелинейный расчёт при geomTransf Linear даёт концевые усилия родителя; SubmodelPanelVMTests — логика вкладки «Субмодель»;
  • OpenCS.Tests: правила доступности извлечения и построение строк таблиц отчётов.