Теоретические основы статики произвольной плоской системы сил, определение опорных реакций и расчет усилий в панелях
Моментом силы относительно центра (точки) на плоскости называется алгебраическая величина, равная взятому со знаком плюс или минус произведению модуля силы на длину ее плеча: MA(F) = ± F · h.
Теорема Вариньона о моменте равнодействующей: Момент равнодействующей силы относительно любого центра равен алгебраической сумме моментов составляющих сил относительно того же центра: MA(R) = ∑ MA(Fi).
Необходимым и достаточным условием статического равновесия произвольной плоской системы сил является одновременное равенство нулю главного вектора R* и главного момента системы M0 относительно центра приведения:
Аналитически это выражается тремя уравнениями. Применяются три формы условий равновесия, имеющие строгие ограничения:
Метод сквозных сечений основан на мысленном разделении фермы на две части сечением, пересекающим не более трех стержней с неизвестными усилиями.
Рассматривается плоская ферма пролетом 10 м, шарнирно закрепленная на жестком основании: в точке A установлена шарнирно-неподвижная опора, в точке B — шарнирно-подвижная опора на катках. К узлам конструкции приложены сосредоточенные силы P, Q, F.
Конструкция освобождается от связей. Действие шарнирно-неподвижной опоры A заменяется составляющими реакциями XA и YA, шарнирно-подвижной опоры B — вертикальной реакцией YB.
Наклонные силы раскладываются на декартовы составляющие по теореме Вариньона:
Составляются уравнения статического равновесия фермы в целом:
Тождественное равенство нулю подтверждает правильность определения опорных реакций.
Ферма рассекается сквозным вертикальным сечением I–I через панели 1, 2, 3. Рассматривается равновесие левой отсеченной части. Внутренние усилия S1, S2, S3 направляются от сечения.
| Параметр | Аналитическое значение, кН | Эталон Кирсанова (сборник задач), кН | Характер работы элемента |
|---|---|---|---|
| XA | -60.433 | 60.433 | Горизонтальная реакция (влево) |
| YA | +81.827 | 81.827 | Вертикальная реакция (вверх) |
| YB (RB) | +118.948 | 118.948 | Вертикальная реакция (вверх) |
| S1 | -83.854 | 83.854 | Сжатие |
| S2 | -40.584 | -40.584 | Сжатие |
| S3 | -130.040 | -130.040 | Сжатие |
| S4 | +31.128 | 31.128 | Растяжение |
| S5 | +19.825 | 19.825 | Растяжение |
Лабораторная работа № 2. Аналитический расчет опорных реакций и усилий в стержнях 1–5
Float64, и только затем подставляются в уравнения стержней как известные константы.
Сценарий расчета оформляется в интерактивном скрипте Engee (Notebook). Программа вводится последовательно по секторам. После написания каждого сектора выполняется его компиляция сочетанием клавиш Shift + Enter.
Подключение модуля аналитических вычислений Symbolics, задание внешних сосредоточенных нагрузок и геометрических углов согласно варианту.
using Symbolics # ИСХОДНЫЕ ДАННЫЕ ВАРИАНТА P = 90.0 # Нагрузка в узлах, кН Q = 40.0 # Наклонная нагрузка на верхнем поясе, кН F = 38.0 # Наклонная нагрузка на нижнем поясе, кН alpha = 55.0 # Угол наклона силы F, град beta = 15.0 # Угол наклона силы Q, град
UndefVarError: Symbolics not defined, дождитесь завершения инициализации ядра Julia (символ [*] должен смениться числовым номером).90.0, а не 90,0.Объявление неизвестных реакций опор XA, YA, YB, составление системы трех уравнений равновесия фермы в целом и ее решение независимой подсистемой.
# Объявление переменных опорных реакций @variables Xa Ya Yb # Уравнение проекций всех сил на ось Ox eq_X = Xa + F * cosd(alpha) + Q * cosd(beta) ~ 0 # Уравнение моментов относительно опоры A eq_Ma = -2 * P + 2 * (Q * sind(beta)) - 4 * (Q * cosd(beta)) - 5 * (F * sind(alpha)) - 8 * P + 10 * Yb ~ 0 # Уравнение моментов относительно опоры B eq_Mb = -10 * Ya + 8 * P - 8 * (Q * sind(beta)) - 4 * (Q * cosd(beta)) + 5 * (F * sind(alpha)) + 2 * P ~ 0 # Решение системы уравнений внешнего равновесия (Система 1) sol_reac = Symbolics.solve_for([eq_X, eq_Ma, eq_Mb], [Xa, Ya, Yb]) # Преобразование реакций в числовой формат Float64 Xa_val = Float64(sol_reac[1]) Ya_val = Float64(sol_reac[2]) Yb_val = Float64(sol_reac[3]) println("--- Реакции опор ---") println("Xa = ", round(Xa_val, digits=3), " кН") println("Ya = ", round(Ya_val, digits=3), " кН") println("Yb = ", round(Yb_val, digits=3), " кН")
~ 0. Знак = вызовет ошибку синтаксиса языка.cosd() и sind() обязательно (вычисление тригонометрии от градусов).Контрольная проверка найденных опорных реакций по неиспользованному ранее уравнению суммы проекций всех сил на вертикальную ось Oy.
# Проверка статического равновесия по оси Oy Fy_check = Ya_val - P + Q * sind(beta) - F * sind(alpha) - P + Yb_val println("Невязка по оси Oy: Fy = ", round(Fy_check, digits=4), " кН")
Fy_check должно строго равняться 0.0. При наличии невязки переходить к расчету стержней нельзя — необходимо проверить уравнения моментов в Секторе 2.Формирование уравнений равновесия левой отсеченной части относительно моментных точек Риттера R1, R2, R3. Значения реакций Xa_val и Ya_val входят как константы.
# Объявление переменных усилий первой панели @variables S1 S2 S3 # Геометрический угол наклона верхнего пояса: tg(gamma) = 1/3 # cos(gamma) = 3 / sqrt(10), sin(gamma) = 1 / sqrt(10) cos_gamma = 3.0 / sqrt(10.0) # Уравнение моментов относительно точки R1 (узел x=2, y=0) eq_MR1 = -4 * S1 * cos_gamma - 4 * Q * cosd(beta) - 2 * Ya_val ~ 0 # Уравнение моментов относительно точки R2 (вынесенная точка, плечо 12 м) eq_MR2 = -12 * S2 * cosd(45) - 4 * Q * cosd(beta) - 12 * Q * sind(beta) + 12 * P - 14 * Ya_val ~ 0 # Уравнение моментов относительно точки R3 (узел x=5, y=3) eq_MR3 = 3 * S3 - 1 * Q * cosd(beta) - 3 * Q * sind(beta) + 3 * P - 5 * Ya_val + 3 * Xa_val ~ 0 # Решение системы уравнений Риттера (Система 2) sol_ritter = Symbolics.solve_for([eq_MR1, eq_MR2, eq_MR3], [S1, S2, S3]) S1_val = Float64(sol_ritter[1]) S2_val = Float64(sol_ritter[2]) S3_val = Float64(sol_ritter[3]) println("--- Усилия в стержнях 1, 2, 3 ---") println("S1 = ", round(S1_val, digits=3), " кН") println("S2 = ", round(S2_val, digits=3), " кН") println("S3 = ", round(S3_val, digits=3), " кН")
Ya_val и Xa_val, а не символьные переменные Ya и Xa.Определение усилия стойки 4 вырезанием нижнего узла C и стойки 5 через вспомогательное Сечение II–II и равновесие верхнего узла D.
@variables S4 S5 S7 S10 # Узел C: проекция на вертикальную ось Oy для стойки 4 eq_S4 = S4 - F * sind(alpha) ~ 0 # Сечение II-II: момент относительно R7 для определения усилия S7 eq_S7 = S7 * 4 - Yb_val * 2 ~ 0 # Узел D: проекции на оси Ox и Oy для стойки 5 eq_Dx = S7 - S10 * cos_gamma ~ 0 eq_Dy = -S5 - S10 * (1.0 / sqrt(10.0)) ~ 0 # Решение уравнений стоек 4 и 5 (Система 3) sol_posts = Symbolics.solve_for([eq_S4, eq_S7, eq_Dx, eq_Dy], [S4, S5, S7, S10]) S4_val = Float64(sol_posts[1]) S5_val = Float64(sol_posts[2]) println("--- Усилия в стойках 4 и 5 ---") println("S4 = ", round(S4_val, digits=3), " кН") println("S5 = ", round(S5_val, digits=3), " кН")
eq_S4.