Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

1.1. Приложение нагрузок и связей

Beam.apply_load()

Метод apply_load(value, start, order, end=None) добавляет нагрузки на балку.

Параметры:

value: символическое значение

Значение приложенной нагрузки должно иметь единицы измерения [Сила/(Расстояние**(n+1))], где n — порядок приложенной нагрузки. Единицы измерения приложенной нагрузки:

  • Для моментов единица измерения = кН·м

  • Для точечных нагрузок единица измерения = кН

  • При постоянной распределенной нагрузке единица измерения = кН/м

  • Для нагрузок, изменяющихся по наклонной плоскости, единица измерения = кН/м/м

  • Для параболических нагрузок единица измерения = кН/м/м/м

start: символическое значение

Начальная точка приложенной нагрузки. Для точечных моментов и точечных сил это место приложения нагрузки.

order: порядок, целое число

Порядок приложенной нагрузки.

  • Для моментов порядок = -2

  • Для точечных нагрузок порядок = -1

  • При постоянной распределенной нагрузке порядок равен 0

  • Для наклонных нагрузок порядок = 1

  • Для параболических нагрузок порядок равен = 2

end: символическое значение, необязательно. Необязательный аргумент, который можно использовать, если конечная точка нагрузки находится в пределах длины балки.

Пример

Есть балка длиной 4 метра. В начале балки приложен момент величиной 3 Н·м по часовой стрелке. В верхней части балки на расстоянии 2 метра от начала приложена точечная нагрузка величиной 4 Н, а также параболическая треугольная нагрузка величиной 2 Н/м, действующая от 2 до 3 метров снизу балки.

from sympy.physics.continuum_mechanics.beam import Beam
from sympy import symbols
E, I = symbols('E, I')
b = Beam(4, E, I)
b.apply_load(-3, 0, -2)
b.apply_load(4, 2, -1)
b.apply_load(-2, 2, 2, end=3)
p = b.draw()
p.show()
b.load
<Figure size 640x480 with 1 Axes>
Loading...

Beam.apply_support()

apply_support(loc, type='fixed') Этот метод применяет опору к заданному объекту балки и возвращает обозначение неизвестной реакции (реакций).

Параметры:

loc : Sympifyable

Координата точки, в которой прикладывается опора.

type : строка

Определяет тип прикладываемой опоры балки. Для приложения опорной связи с: - нулевой степенью свободы, type = “fixed” (заделка) - одной степенью свободы, type = “pin” (шарнирно-неподвижная опора) - двумя степенями свободы, type = “roller” (шарнирно-подвижная опора)

Возвращает:

Обозначение (Symbol) или кортеж обозначений (Symbol)

Неизвестная опорная реакция в виде обозначения. - Symbol(реакция_сила), если type = “pin” или “roller” - Symbol(реакция_сила), Symbol(реакция_момент), если type = “fixed”

Пример

Есть балка длиной 20 метров. В конце балки приложен момент величиной 100 Н·м по часовой стрелке. В верхней части балки на расстоянии 10 метров от начала приложена точечная нагрузка величиной 8 Н. В начале балки заделка, а в конце — шарнирно-подвижная опора.

Принимается правило знаков: направленные вверх силы и момент по часовой стрелке считаются положительными.

from sympy.physics.continuum_mechanics.beam import Beam
from sympy import symbols
E, I = symbols('E, I')
b = Beam(20, E, I)
p0, m0 = b.apply_support(0, 'fixed')
p1 = b.apply_support(20, 'roller')
b.apply_load(-8, 10, -1)
b.apply_load(100, 20, -2)
b.solve_for_reaction_loads(p0, m0, p1)
p = b.draw()
p.show()
<Figure size 640x480 with 1 Axes>
b.reaction_loads
{R_0: -2, M_0: 20, R_20: 10}
b.reaction_loads[p0]
Loading...
b.load
Loading...

Beam.apply_rotation_hinge()

apply_rotation_hinge(loc) Этот метод моделирует цилиндрический шарнир в отдельно взятой точке балки.

Параметры:

loc : Sympifyable. Место расположения шарнира.

Возвращает cкачок угла поворота, умноженный на модуль упругости и момент инерции, в символьном виде.

Пример

Рассматривается балка длиной 15 метров. Шарнирно-неподвижные опоры расположены на расстояниях 0 и 10 метров. На конце балки находится жесткая заделка. В конструкции имеются два шарнира, допускающих поворот: один на отметке 5 метров, другой — на отметке 10 метров. К шарниру на отметке 5 метров приложена сосредоточенная сила величиной 10 кН. На участке от 10 метров до конца балки действует распределенная нагрузка интенсивностью 5 кН/м.

Принято правило знаков: направленные вверх силы и момент, действующий по часовой стрелке, считаются положительными.

from sympy.physics.continuum_mechanics.beam import Beam
from sympy import symbols
E, I = symbols('E, I')
b = Beam(15, E, I)
r0 = b.apply_support(0, type='pin')
r10 = b.apply_support(10, type='pin')
r15, m15 = b.apply_support(15, type='fixed')
p5 = b.apply_rotation_hinge(5)
p12 = b.apply_rotation_hinge(12)
b.apply_load(-10, 5, -1)
b.apply_load(-5, 10, 0, 15)
b.solve_for_reaction_loads(r0, r10, r15, m15)
p = b.draw()
p.show()
<Figure size 640x480 with 1 Axes>
b.reaction_loads
{R_0: 0, R_10: 40, R_15: -5, M_15: -75/2}
b.rotation_jumps
{P_5: 9625/(24*E*I), P_12: -1875/(16*E*I)}
b.bending_moment()
Loading...

Beam.apply_sliding_hinge()

apply_sliding_hinge(loc) Данный метод моделирует установку скользящего шарнира (ползуна) в заданной точке балки.

Параметры:

loc : Sympifyable

Положение точки, в которой прикладывается шарнир (здесь: скользящая заделка).

Возвращает:

Symbol

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

Пример

Имеется балка длиной 13 метров. В начале расположена жесткая заделка. На конце находится шарнирно-неподвижная опора. Скользящая заделка (ползун) расположена на расстоянии 8 метров. Сосредоточенная сила величиной 10 кН приложена к шарниру на отметке 5 метров.

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

from sympy.physics.continuum_mechanics.beam import Beam
from sympy import symbols
from sympy.physics.continuum_mechanics.beam import Beam
b = Beam(13, 20, 20)
r0, m0 = b.apply_support(0, type="fixed")
s8 = b.apply_sliding_hinge(8)
r13 = b.apply_support(13, type="pin")
b.apply_load(-10, 5, -1)
b.solve_for_reaction_loads(r0, m0, r13)
p = b.draw()
p.show()
<Figure size 640x480 with 1 Axes>
b.reaction_loads
{R_0: 10, M_0: -50, R_13: 0}
b.deflection_jumps
{W_8: 85/24}
b.deflection_jumps[s8]
Loading...
b.bending_moment()
Loading...
b.deflection()
Loading...

Beam.remove_load()

remove_load(value, start, order, end=None)

Данный метод удаляет конкретную нагрузку на балке. Возвращает ValueError, если нагрузка, переданная в качестве аргумента, отсутствует на балке.

Параметры

value: Sympifyable

Величина приложенной нагрузки.

ptart: Sympifyable

Начальная точка приложения нагрузки. Для сосредоточенных моментов и сил это место приложения.

order: Integer

Порядок приложенной нагрузки.

  • Для моментов: order= -2,

  • Для сосредоточенных сил: order=-1,

  • Для постоянной распределённой нагрузки: order=0,

  • Для линейно возрастающей нагрузки: order=1,

  • Для параболически возрастающей нагрузки: order=2,

  • … и так далее.

end: Sympifyable, необязательный

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

Пример

Имеется балка длиной 4 метра. Момент величиной 3 Н·м приложен по часовой стрелке в начале балки. Сосредоточенная сила величиной 4 Н приложена сверху балки на расстоянии 2 метра от начала, и параболически возрастающая нагрузка величиной 2 Н/м приложена снизу балки на участке от 2 до 3 метров от начала.

from sympy.physics.continuum_mechanics.beam import Beam
from sympy import symbols
E, I = symbols('E, I')
b = Beam(4, E, I)
b.apply_load(-3, 0, -2)
b.apply_load(4, 2, -1)
b.apply_load(-2, 2, 2, end=3)
b.load
Loading...
b.remove_load(-2, 2, 2, end = 3)
b.load
Loading...