LAB #1. Статический расчет фермы

Лабораторная работа № 1. Плоская система сходящихся сил. Расчет ферм методом вырезания узлов

Теоретические основы, аналитическое составление расчетных уравнений и матричная СЛАУ

Уравнения к занятию 26.09. нужно составить, решать «в ручную» не обязательно.
Необходимо составить системы уравнений проекций для узлов фермы своего расчетного варианта (или общую матричную СЛАУ). Численный расчет и нахождение усилий будут выполняться программно.

Проекция силы на ось — скалярная величина, равная произведению модуля силы на косинус угла между направлением вектора силы и положительным направлением оси:

Fx = F · cos(α)
x O F1 α1 F1x > 0 (+) F2 α2 F2x < 0 (−) F3 F3x = 0
Случаи проецирования вектора силы на ось Ox: острый угол (> 0), тупой угол (< 0) и нормаль (= 0)
B C A α β c (сила F) a b
Правило выбора функции при проецировании:
▪ Если угол ПРИЛЕЖАЩИЙ к оси:
Катет = Гипотенуза · cos(α)
b = c · cos(α) ⇒ Fx = ± F · cos(α)
▪ Если угол ПРОТИВОЛЕЖАЩИЙ к оси:
Катет = Гипотенуза · sin(α)
a = c · sin(α) ⇒ Fy = ± F · sin(α)
(или через прилежащий угол β: a = c · cos(β))
Тригонометрические соотношения в прямоугольном треугольнике и практическое правило выбора cos / sin при проецировании силы
  • 1. Угол острый (α1 < 90°): направление проекции совпадает с направлением оси, F1x = +F1 · cos(α1) > 0.
  • 2. Угол тупой (α2 > 90°): вектор направлен против направления оси, F2x = F2 · cos(α2) = -F2 · cos(180° - α2) < 0.
  • 3. Угол прямой (α3 = 90°): линия действия силы перпендикулярна оси, cos(90°) = 0 ⇒ F3x = 0.

Система сил называется сходящейся, если линии действия всех сил пересекаются в одной точке (в шарнирном узле).

Необходимым и достаточным условием статического равновесия плоской системы сходящихся сил является равенство нулю векторной суммы всех сил (главного вектора): Fi = 0. В аналитической форме это выражается двумя скалярными уравнениями проекций на произвольные непараллельные координатные оси Ox и Oy:

∑ Xi = 0,   ∑ Yi = 0

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

1. Расчетная схема фермы

Конструкция закреплена на жестком основании шарнирами E, D, C и нагружена в шарнире A горизонтальной силой P = 100 кН. Заданы геометрические углы: ∠DFA = 135°, ∠ABD = 60°, ∠DCB = 60°, ∠BDC = 30°, ∠DFE = 30°.

Правило знаков: При вырезании узла все искомые усилия стержней направляются из шарнира к стержню (растяжение). Положительное значение усилия означает растяжение, отрицательное — сжатие.
Связь с расчетными CAE-комплексами и методом конечных элементов (МКЭ):
Рассматриваемый расчет представляет собой строгий аналитический базис одномерных стержневых конечных элементов (1D Truss Elements), используемых в современных промышленных пакетах инженерного анализа (ANSYS, APM FEM, Nastran).

Формируемая в данной работе СЛАУ статического равновесия A · S = B наглядно раскрывает внутреннюю механику работы решателей (solvers):
  • Условие невырожденности матрицы det(A) ≠ 0 напрямую связано с кинематической неизменяемостью рассчитываемой оснастки или станины.
  • Если в конструкторской схеме допущена ошибка закрепления опор или ферма превращена в механизм, САПР выдает критическую ошибку «Zero pivot» или «Singular stiffness matrix». В данной работе вы увидите математическую первопричину таких явлений на уровне базовых уравнений статики.
A F B E D C P = 100 кН
Рис. 5. Расчетная схема плоской шарнирно-стержневой фермы

2. Составление уравнений равновесия внутренних узлов

2.1. Узел A (Рис. 6 из методички)

Начинаем с узла A, так как к нему подходят только два стержня AB и AF. Для упрощения уравнений ось y направляем вдоль стержня AB, а ось x — перпендикулярно ей.

A P y SAB 30° x SAF 15°
Рис. 6. Вырезание узла A и локальные координатные оси

Уравнения равновесия узла A:

∑ Xi = SAF · cos(15°) - P · sin(30°) = 0
∑ Yi = -SAF · sin(15°) + SAB + P · cos(30°) = 0

2.2. Узел F (Рис. 7 из методички)

К узлу F подходят три стержня. Усилие SAF уже известно из предыдущего узла. Проекции составляются на традиционные оси декартовой системы:

x y F SAF 45° SFD SFE 30°
Рис. 7. Вырезание узла F в декартовой системе координат

Уравнения равновесия узла F:

∑ Xi = -SFE · sin(30°) + SAF · cos(45°) = 0
∑ Yi = -SFE · cos(30°) - SFD + SAF · sin(45°) = 0

2.3. Узел B (Рис. 8 из методички)

Для узла B координатные оси направляются вдоль стержней BD (ось x) и BC (ось y). Стержень AB составляет с продолжением оси y угол 30°.

B SAB x SDB y SBC 30°
Рис. 8. Равновесие узла B в осях стержней BD и BC

Уравнения равновесия узла B:

∑ Xi = SDB + SAB · sin(30°) = 0
∑ Yi = SBC - SAB · cos(30°) = 0

3. Методы формирования расчетной модели и СЛАУ

При автоматизации статического расчета шарнирно-стержневых конструкций на языке Julia в среде Engee инженер может применить один из двух фундаментальных подходов к построению алгоритма:

Подход 1. Пошаговое (локальное) решение систем уравнений для каждого узла

Данный подход алгоритмически повторяет классический ручной метод вырезания узлов. Расчет организуется как последовательное решение отдельных систем уравнений размерности 2 × 2 по цепочке: от узла с двумя неизвестными к последующим узлам.

  • Особенности реализации: На каждом шаге в коде формируется локальная подсистема (например, A_A * S_A = B_A), из которой определяются усилия SAF и SAB. Полученные скалярные величины подставляются в правые части уравнений следующих узлов (F, затем B).
  • Структура кода: Программа состоит из последовательных локальных блоков. Метод нагляден для учебных целей, однако требует индивидуального задания топологической последовательности обхода узлов для каждой конкретной расчетной схемы.

Подход 2. Глобальный матричный метод (единая СЛАУ всей конструкции)

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

A · S = B

где:

  • S — глобальный вектор-столбец неизвестных усилий во всех 6 стержнях фермы:
    S = [SAF,   SAB,   SFE,   SFD,   SDB,   SBC]T
  • A — статическая матрица фермы (матрица направляющих косинусов) размерности 6 × 6, строки которой соответствуют уравнениям проекций (2 уравнения на каждый из 3 внутренних узлов):
    A =
    cos(15°) 0 0 0 0 0
    -sin(15°) 1 0 0 0 0
    cos(45°) 0 -sin(30°) 0 0 0
    sin(45°) 0 -cos(30°) -1 0 0
    0 sin(30°) 0 0 1 0
    0 -cos(30°) 0 0 0 1
  • B — вектор свободных членов (узловая внешняя нагрузка):
    B = [P · sin(30°),   -P · cos(30°),   0,   0,   0,   0]T

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

# Глобальный расчет в среде Engee (Julia): using LinearAlgebra # Решение полной СЛАУ выполняется за одну машинную операцию: S = A \ B

4. Сводные результаты расчета

Стержень Усилие S, кН Характер работы
AF+51.76Растяжение
AB-73.21Сжатие
FE+73.21Растяжение
FD-26.79Сжатие
DB+36.60Растяжение
BC-63.40Сжатие

5. Проверка общего статического равновесия (Рис. 9 из методички)

Для проверки правильности найденных усилий мысленно отделяем конструкцию от основания горизонтальным сечением. Действие рассеченных стержней FE, FD, DB и BC заменяем соответствующими силами, направленными по внешним нормалям к сечениям стержней (вниз к неподвижным опорам).

x y A F B P E D C SFE 60° SFD SDB 30° SBC 60°
Рис. 9. Статическая проверка: отсечение фермы от основания и приведение реакций к опорным узлам

Для проверки правильности решения составляются уравнения проекций всех сил, приложенных к отсеченной конструкции, на глобальные оси Ox и Oy:

∑ Fx = -SFE · cos(60°) - SDB · cos(30°) + SBC · cos(60°) + P = 0
∑ Fy = -SFE · sin(60°) - SFD - SDB · sin(30°) - SBC · sin(60°) = 0

Подставляем найденные численные значения усилий:

∑ Fx = -(73.21)·0.5 - (36.60)·0.866 + (-63.40)·0.5 + 100 = -36.60 - 31.70 - 31.70 + 100 = 0.00 кН
∑ Fy = -(73.21)·0.866 - (-26.79) - (36.60)·0.5 - (-63.40)·0.866 = -63.40 + 26.79 - 18.30 + 54.91 = 0.00 кН

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

6. Методические рекомендации к расчету индивидуального варианта

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

Методика геометрического построения расчетной схемы:

  1. Выбор базового линейного размера: Примите длину любого опорного отрезка или начального стержня произвольной, но удобной для построения (например, расстояние между опорами LDE = 100 мм или длину стержня l0 = 100 мм).
  2. Параметрическое построение в КОМПАС-3D:
    • В режиме двумерного эскиза (или фрагмента) постройте отрезки, соединяющие узлы фермы, согласно топологической схеме вашего варианта.
    • Наложите геометрические ограничения и параметрические угловые размеры в соответствии с заданием варианта (по теореме о сумме углов треугольника каждая замкнутая ячейка фермы однозначно определяется по двум углам).
    • Для фиксации положения конструкции совместите одну из опор с началом координат и зафиксируйте горизонтальность линии основания.
  3. Снятие углов для аналитических уравнений: Инструментом «Угловой размер» (в режиме информационного/справочного размера) измерьте углы наклона каждого стержня к горизонтали и вертикали, а также углы между стержнями в каждом вырезаемом узле. Полученные значения используйте в тригонометрических коэффициентах СЛАУ.
  4. Графический способ (на миллиметровой бумаге): Построение выполняется с помощью транспортира и линейки по аналогичному алгоритму — от базового отрезка 100 мм с последовательным откладыванием углов треугольников и засечкой точек пересечения прямых.

Перед переходом к программному расчету на Julia в среде Engee необходимо выполнить фундаментальную проверку системы уравнений на корректность и статическую разрешимость.

1. Критерий статической определимости фермы:
Для системы из K рассчитываемых подвижных шарниров число независимых скалярных уравнений статики равно 2 × K. Чтобы система имела единственное решение, число неизвестных усилий N (число стержней) должно строго равняться числу уравнений:

N = 2 · K

В рассматриваемом классе задач: 3 внутренних узла (A, F, B) × 2 уравнения = 6 уравнений, что в точности соответствует 6 неизвестным усилиям стержней.

2. Теорема Кронекера — Капелли:
Система линейных уравнений A · S = B совместна (имеет хотя бы одно решение) тогда и только тогда, когда ранг основной матрицы A равен рангу расширенной матрицы [A | B]:

rank(A) = rank([A | B])

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

rank(A) = N   (⇔   det(A) ≠ 0)
Инженерный вывод: Если при составлении уравнений для своего варианта вы допустите ошибку (например, выберете зависимые оси или неверно учтете топологию), определитель матрицы обратится в ноль (det(A) = 0), а ранг окажется меньше числа стержней. В среде Julia оператор A \ B в этом случае выдаст предупреждение о вырожденности матрицы (SingularMatrixException). Всегда проверяйте равенство количества уравнений числу неизвестных и полноту ранга матрицы.

Наиболее распространенная алгоритмическая ошибка при первом написании расчетных программ — передача градусов в функции, ожидающие радианы.

В языке Julia (как и в большинстве вычислительных сред) базовые тригонометрические функции cos(x) и sin(x) принимают аргумент исключительно в радианах. Так, выражение cos(30) вернет 0.15425... вместо ожидаемого 0.86602..., что приведет к полностью неверному расчету усилий.

Решение в Julia:
Используйте встроенные специализированные функции со суффиксом d (от англ. degree):
  • cosd(30) → возвращает 0.866025...
  • sind(30) → возвращает 0.5
Либо используйте явное преобразование: cos(deg2rad(30)). Применение функций cosd() и sind() исключает промежуточное накопление погрешностей округления числа π.

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

  1. Фиксация порядка столбцов (вектор усилий S): С самого начала явно выпишите порядок неизвестных, например: S = [S_AB, S_AC, S_AD, S_BD, S_BC, S_CD]. Номер столбца матрицы A навсегда закрепляется за соответствующим стержнем.
  2. Фиксация порядка строк (уравнения узлов): Каждая строка матрицы — это уравнение проекций: строка 1 — узел 1 (Ox), строка 2 — узел 1 (Oy), строка 3 — узел 2 (Ox) и т.д.
  3. Правило нулей (отсутствие связи): Если стержень физически не присоединен к рассматриваемому шарниру, на соответствующей позиции в строке гарантированно ставится ноль. В строке уравнения плоского узла ненулевыми могут быть только коэффициенты при стержнях, сходящихся в этом узле.
  4. Правило знаков коэффициентов: Если стержень направлен в сторону возрастания оси проекции, направляющий косинус входит со знаком «плюс», если против — со знаком «минус».
  5. Перенос нагрузок в вектор B: Все проекции известных внешних сил переносятся в правую часть уравнения с противоположным знаком (∑ S_i · cos(α_i) = -P_x).

После составления расчетных уравнений сверьте правильность вашей аналитической модели с контрольными эталонными ответами заданий (все усилия приведены в кН; знак «+» — растяжение, знак «−» — сжатие):

№ вар. P, кН SAB SAC (или SAD) SBD SBC SCD SCE
11-1.115-0.816-0.558+0.966-0.472-0.106
22+1.414-1.414+1.000-1.000+0.732-1.932
33+2.196-1.553-3.804+2.196+5.660-3.928
44+2.828-2.828-2.000+2.000-3.464+2.000
55+8.660-10.000-17.321+15.000+7.500+12.990
66-5.379-4.392-7.608+10.392-7.856+5.321
77+5.715-2.092-4.950+2.858-2.475+1.429
88+5.657-5.657-4.000+4.000-3.586+2.928
99+9.000-12.728+9.0000.000-8.069+6.588
1010+17.321-20.000+20.000-10.000-34.641+40.000

Примечание: Небольшие расхождения в третьем знаке после запятой (±0.002 кН) допустимы и обусловлены промежуточными округлениями тригонометрических функций при ручном счете.

7. Подготовка к компьютерному практикуму в среде Engee

Регистрация в расчетной среде Engee
Для доступа к облачной платформе и академической лицензии ОмГТУ перейдите на официальный портал.
Зарегистрироваться в Engee (ОмГТУ) →

Порядок запуска и начальной настройки:

  1. Авторизация и запуск рабочего окружения: Войдите в личный кабинет на платформе Engee под учетной записью с привязкой к ОмГТУ.
  2. Запуск скрипта «Старт»: В панели файлов откройте интерактивный скрипт 00 - Начало работы (Engee Старт) и выполните ячейку инициализации окружения (для проверки подключения библиотек и ядра Julia).
  3. Подготовка собственного расчетного сценария: Нажмите кнопку «+» в Редакторе скриптов, создайте новый файл Lab1_Truss_Фамилия.ipynb, в котором на занятии будет реализован программный расчет фермы.

Минимальный перечень блоков встроенных курсов для подготовки:

Для выполнения лабораторной работы нет необходимости проходить все интерактивные курсы целиком. Достаточно изучить 4 ключевых блока (ориентировочное время прохождения — 1–1.5 часа суммарно):

1. Курс «Добро пожаловать в Engee» (Базовые технические вычисления)
  • Тема 01. Окно команд: Знакомство с интерфейсом, правила объявления переменных в Julia, регистрозависимость, выполнение базовых арифметических операций, вызов встроенных математических функций (sin, cos, sqrt) и работа с числовой константой pi.
  • Тема 02. Редактор скриптов: Ключевой блок для выполнения лабораторной работы. Изучение структуры интерактивных сценариев (Notebook), добавление ячеек кода, запуск вычислений по блокам и просмотр численного вывода.
Примечание: Темы 03–09 (матричные операции, срезы, таблицы DataFrames и логические маски) для данной работы являются факультативными и могут быть пропущены.
2. Курс «Символьные вычисления в Engee» (Пакет Symbolics.jl)
  • Тема 01. Символьные переменные и символьные выражения: Объявление неизвестных величин (усилий в стержнях) с помощью макроса @variables S_AF S_AB ... без предварительного присвоения им чисел, формирование аналитических зависимостей.
  • Тема 02. Символьные уравнения: Базовый раздел для построения расчетной модели. Задание уравнений проекций через оператор символьного равенства ~ (тильда, например: eq1 = ... ~ 0) и нахождение корней СЛАУ штатной функцией Symbolics.solve_for([уравнения], [переменные]).
Примечание: Темы 03–06 (упрощение сложных полиномов, графики линий уровня и дифференциальные уравнения) для статического расчета фермы не требуются.

Лабораторный практикум: Программный расчет плоской фермы в среде Engee (Julia)

Реализация статического анализа: аналитический (символьный) метод и матричный метод СЛАУ

Сценарий расчета реализуется в интерактивном скрипте Engee (Notebook). Программа вводится последовательно секторами. После записи каждого сектора выполняется его компиляция (сочетание клавиш Shift + Enter) с проверкой отсутствия ошибок в окне вывода.

Метод 1. Символьный аналитический расчет
Сектор 1: Подключение библиотек

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

using Symbolics
⚠ Контроль ошибок сектора:
  • Если выводится UndefVarError: Symbolics not defined, дождитесь завершения начальной инициализации ядра Julia (индикатор выполнения ячейки должен смениться с [*] на порядковый номер).
Сектор 2: Исходные данные

Ввод числовых значений внешних нагрузок согласно индивидуальному расчетному варианту.

# ИСХОДНЫЕ ДАННЫЕ
P = 100.0 # Модуль сосредоточенной силы, кН
⚠ Контроль ошибок сектора:
  • Десятичные дроби в языке Julia отделяются строго точкой: 100.0 (запятая интерпретирует выражение как кортеж).
Сектор 3: Объявление переменных

Определение буквенных неизвестных для усилий в стержнях фермы с помощью макроса @variables.

# Объявление символьных неизвестных усилий @variables S_AF S_AB S_FE S_FD S_DB S_BC
⚠ Контроль ошибок сектора:
  • Имена переменных в макросе @variables разделяются исключительно пробелами (без запятых).
  • Проверьте регистр символов: S_AB и s_ab являются программно разными идентификаторами.
Сектор 4: Составление и решение уравнений

Запись шести скалярных уравнений статического равновесия внутренних шарниров с использованием оператора символьного равенства ~ и тригонометрических функций для углов в градусах cosd(), sind().

# Узел A
eq1 = S_AF * cosd(15) - P * sind(30) ~ 0
eq2 = -S_AF * sind(15) + S_AB + P * cosd(30) ~ 0 # Узел F
eq3 = -S_FE * sind(30) + S_AF * cosd(45) ~ 0
eq4 = -S_FE * cosd(30) - S_FD + S_AF * sind(45) ~ 0 # Узел B
eq5 = S_DB + S_AB * sind(30) ~ 0
eq6 = S_BC - S_AB * cosd(30) ~ 0 # Решение системы уравнений
eqs = [eq1, eq2, eq3, eq4, eq5, eq6]
vars = [S_AF, S_AB, S_FE, S_FD, S_DB, S_BC]
sol = Symbolics.solve_for(eqs, vars)
⚠ Контроль ошибок сектора:
  • В уравнениях должен использоваться знак тильды ~ 0. Использование одиночного знака = вызовет ошибку синтаксиса.
  • Оператор умножения * обязателен между скаляром и функцией: пишите P * sind(30), а не Psind(30).
  • Убедитесь в наличии суффикса d у функций cosd, sind (расчет в градусах).
Сектор 5: Численные значения реакций и проверка

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

# Преобразование корней в формат Float64
S_AF_val = Float64(sol[1])
S_AB_val = Float64(sol[2])
S_FE_val = Float64(sol[3])
S_FD_val = Float64(sol[4])
S_DB_val = Float64(sol[5])
S_BC_val = Float64(sol[6])

# Вывод найденных усилий println("S_AF = ", round(S_AF_val, digits=3), " кН")
println("S_AB = ", round(S_AB_val, digits=3), " кН")
println("S_FE = ", round(S_FE_val, digits=3), " кН")
println("S_FD = ", round(S_FD_val, digits=3), " кН")
println("S_DB = ", round(S_DB_val, digits=3), " кН")
println("S_BC = ", round(S_BC_val, digits=3), " кН")

# Уравнения статической проверки конструкции в целом
Fx = -S_FE_val * cosd(60) - S_DB_val * cosd(30) + S_BC_val * cosd(60) + P
Fy = -S_FE_val * sind(60) - S_FD_val - S_DB_val * sind(30) - S_BC_val * sind(60)

println("Fx = ", round(Fx, digits=4))
println("Fy = ", round(Fy, digits=4))
⚠ Контроль ошибок сектора:
  • Значения Fx и Fy должны быть равны 0.0. Наличие невязки свидетельствует об ошибке в знаках проекций при составлении уравнений проверки.
Метод 2. Матричный расчет (СЛАУ A · S = B)
Сектор 1: Подключение библиотек

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

using LinearAlgebra
Сектор 2: Задаем Данные

Ввод внешней нагрузки и формирование матрицы направляющих косинусов A [6×6] и вектора внешних сил B [6×1]. Порядок столбцов матрицы строго соответствует вектору усилий: [S_AF, S_AB, S_FE, S_FD, S_DB, S_BC].

# ИСХОДНЫЕ ДАННЫЕ
P = 100.0 # Матрица коэффициентов A [6x6]
A = [
     cosd(15)     0.0 0.0 0.0 0.0 0.0 ;
    -sind(15)     1.0 0.0 0.0 0.0 0.0 ;
     cosd(45)     0.0         -sind(30)      0.0 0.0 0.0 ;
     sind(45)     0.0         -cosd(30)     -1.0 0.0 0.0 ;
          0.0 sind(30)         0.0 0.0 1.0 0.0 ;
          0.0 -cosd(30)         0.0 0.0 0.0 1.0
]

# Вектор узловых нагрузок B
B = [
   P * sind(30) ;
  -P * cosd(30) ;
   0.0 ;
   0.0 ;
   0.0 ;
   0.0
]
⚠ Контроль ошибок сектора:
  • Каждая строка матрицы отделяется точкой с запятой ;. Количество элементов в каждой строке должно быть строго равно 6.
  • Если стержень не присоединен к узлу, коэффициент при нем задается строго равным 0.0.
  • Проекции внешней силы при переносе в вектор B меняют математический знак на противоположный.
Сектор 3: Анализ корректности СЛАУ

Вычисление определителя и ранга матрицы коэффициентов по теореме Кронекера — Капелли для подтверждения статической определимости системы.

d = det(A)
r = rank(A)

println("det(A) = ", round(d, digits=4))
println("rank(A) = ", r)

if r != 6 || isapprox(d, 0.0, atol=1e-6)
    error("Матрица вырождена: система геометрически изменяема.")
end
⚠ Контроль ошибок сектора:
  • Значение ранга rank(A) должно строго равняться 6. Меньшее значение означает линейную зависимость составленных уравнений.
Сектор 4: Решение СЛАУ

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

# Нахождение вектора усилий S
S = A \ B

# Извлечение усилий стержней
S_AF = S[1]
S_AB = S[2]
S_FE = S[3]
S_FD = S[4]
S_DB = S[5]
S_BC = S[6]

println("S_AF = ", round(S_AF, digits=3), " кН")
println("S_AB = ", round(S_AB, digits=3), " кН")
println("S_FE = ", round(S_FE, digits=3), " кН")
println("S_FD = ", round(S_FD, digits=3), " кН")
println("S_DB = ", round(S_DB, digits=3), " кН")
println("S_BC = ", round(S_BC, digits=3), " кН")
⚠ Контроль ошибок сектора:
  • Используйте обратную косую черту \ (левое деление $A^{-1}B$). Прямой слэш / означает правое деление ($BA^{-1}$) и вызовет несовпадение размерностей.
Сектор 5: Статическая проверка

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

# Уравнения статической проверки
Fx = -S_FE * cosd(60) - S_DB * cosd(30) + S_BC * cosd(60) + P
Fy = -S_FE * sind(60) - S_FD - S_DB * sind(30) - S_BC * sind(60)

println("Fx = ", round(Fx, digits=4))
println("Fy = ", round(Fy, digits=4))
⚠ Контроль ошибок сектора:
  • При корректном составлении расчетной схемы значения невязок Fx и Fy строго равны 0.0.
Статический расчет фермы в SolidWorks Simulation

Статический расчет фермы в SolidWorks Simulation

Статический расчет фермы в SolidWorks Simulation, общий алгоритм:

1. Подготовка модели

  1. Создание геометрии: В SolidWorks создайте 3D-модель фермы. Убедитесь, что все стержни и соединения (шарниры) точно соответствуют вашей конструкции.
  2. Назначение материалов: Выберите материал для фермы (ближайщий аналог из стандратной библиотеки материалов) и назначьте его всем элементам модели. Убедитесь, что свойства материала (модуль упругости, предел текучести и т.д.) соответствуют реальным характеристикам.

2. Определение граничных условий

  1. Закрепление: Задайте неподвижные опоры в точках, где ферма закреплена. Это можно сделать, ограничив перемещения в этих точках.
  2. Нагрузки: Примените внешние силы, действующие на ферму. Убедитесь, что направление и величина сил соответствуют заданию.

3. Выбор начальных сечений

  1. Назначение сечений: В SolidWorks Simulation назначьте выбранные сечения каждому стержню. Это можно сделать через свойства элемента.

4. Создание исследования

  1. Создание статического исследования: В SolidWorks Simulation создайте статическое исследование.
  2. Настройка параметров: Убедитесь, что все параметры исследования (например, тип анализа, единицы измерения) соответствуют вашим требованиям.

5. Запуск анализа

  1. Запуск анализа: Запустите статический анализ. Программа рассчитает напряжения, деформации и перемещения в каждом элементе конструкции.

6. Анализ результатов

  1. Проверка напряжений: Проверьте максимальные напряжения в каждом стержне. Убедитесь, что они не превышают допускаемые напряжения для выбранного материала.
  2. Проверка запаса прочности (SOF): Убедитесь, что для всех стрежней он выше 1.

7. Оптимизация

  1. Итерации: Если напряжения или запас прочности превышают допустимые значения, измените сечения стержней.
  2. Повторный анализ: Повторите статический анализ с новыми сечениями. Продолжайте итерации до тех пор, пока все параметры не будут соответствовать требованиям.

8. Валидация

  1. Проверка результатов: Проверьте результаты на соответствие реальным условиям эксплуатации. Убедитесь, что конструкция устойчива и безопасна.
  2. Отчет: Подготовьте отчет с результатами анализа, включая графики напряжений, деформаций и перемещений.

Видеоуроки:

Made on
Tilda