Численное построение эпюр Q и M

Эпюры Q и M можно построить численно — пройтись по балке маленькими шагами и накопить силу и момент.

Численная эпюра — таблица значений $Q(x)$ и $M(x)$ в множестве близких сечений по длине балки.

Идея численного метода

Аналитические формулы хороши для простых случаев, но при сложной нагрузке удобнее считать по точкам. Разобьём балку на $n$ мелких отрезков. В каждом сечении $x$: поперечная сила = реакция левой опоры минус сумма всех приложенных слева сил (включая распределённую $q\cdot x$); момент = сумма моментов всех левых сил относительно сечения. Связь $dM/dx = Q$ позволяет получать $M$ накоплением $Q$.

Балка с равномерной нагрузкой

Балка длиной $l = 6$ м на двух опорах под равномерной нагрузкой $q = 5$ кН/м. Полная нагрузка $ql$, реакции из симметрии $R_A = R_B = ql/2$. Теоретически $M_{max} = ql^2/8$ в середине, $Q$ меняется линейно от $+ql/2$ до $-ql/2$.

q = 5000.0    # распределённая нагрузка, Н/м
l = 6.0       # пролёт, м
R_A = R_B = q * l / 2

n = 600
dx = l / n
x = 0.0
M = 0.0
M_max = 0.0
x_at_max = 0.0
Q_prev = None
results = []
for i in range(n + 1):
    Q = R_A - q * x          # поперечная сила в сечении x
    if i > 0:
        M += (Q_prev + Q) / 2 * dx   # интегрируем Q -> M (метод трапеций)
    if M > M_max:
        M_max = M
        x_at_max = x
    if i % 150 == 0:
        results.append((x, Q, M))
    Q_prev = Q
    x += dx

for xi, Qi, Mi in results:
    print(f"x={xi:.1f} м:  Q={Qi/1000:6.2f} кН,  M={Mi/1000:6.2f} кН·м")
print("Численный M_max =", round(M_max/1000, 3), "кН·м при x =", round(x_at_max, 2), "м")
print("Теория ql^2/8  =", round(q*l**2/8/1000, 3), "кН·м")

Вывод:

x=0.0 м:  Q= 15.00 кН,  M=  0.00 кН·м
x=1.5 м:  Q=  7.50 кН,  M= 16.88 кН·м
x=3.0 м:  Q=  0.00 кН,  M= 22.50 кН·м
x=4.5 м:  Q= -7.50 кН,  M= 16.88 кН·м
x=6.0 м:  Q=-15.00 кН,  M=  0.00 кН·м
Численный M_max = 22.5 кН·м при x = 3.0 м
Теория ql^2/8  = 22.5 кН·м

Численный максимум совпал с теоретическим $ql^2/8$ — метод подтверждает формулу. Заметьте: $M_{max}$ ровно там, где $Q = 0$ (в середине).

Консольная балка

Для консоли (защемлена слева, свободна справа) с силой $F$ на конце эпюра $Q$ постоянна и равна $F$, а $M$ линейно растёт от нуля на конце до $Fl$ в заделке — там опасное сечение.

F = 8000.0   # сила на конце, Н
l = 2.0      # длина консоли, м
n = 4
for i in range(n + 1):
    x = i * l / n            # от заделки
    Q = F                    # постоянна по длине
    M = F * (l - x)          # максимум в заделке (x=0)
    print(f"x={x:.1f} м от заделки:  Q={Q/1000:.1f} кН,  M={M/1000:.1f} кН·м")

Вывод:

x=0.0 м от заделки:  Q=8.0 кН,  M=16.0 кН·м
x=0.5 м от заделки:  Q=8.0 кН,  M=12.0 кН·м
x=1.0 м от заделки:  Q=8.0 кН,  M=8.0 кН·м
x=1.5 м от заделки:  Q=8.0 кН,  M=4.0 кН·м
x=2.0 м от заделки:  Q=8.0 кН,  M=0.0 кН·м

Как работает под капотом

Накопление $M \mathrel{+}= \frac{Q_{i-1}+Q_i}{2}\, dx$ — это численное интегрирование зависимости $dM/dx = Q$ методом трапеций. С уменьшением шага $dx$ результат сходится к точному. Для кусочно-линейной $Q$ (как здесь) даже грубая сетка даёт верный максимум, потому что площадь под прямой считается точно при достаточном числе шагов.

Частые ошибки

  • Не учитывают накопленную распределённую нагрузку $q\cdot x$ при вычислении $Q$.
  • Берут слишком грубый шаг и промахиваются мимо точки $Q=0$.
  • Путают, откуда отсчитывается $x$ (от опоры или от заделки).

Итоги

  • Эпюры строят численно, проходя балку шагами и считая $Q$ и $M$.
  • $M$ получают интегрированием $Q$ (метод трапеций) по длине.
  • Под равномерной нагрузкой $M_{max} = ql^2/8$ в середине, где $Q=0$.
  • У консоли с силой на конце $M_{max} = Fl$ в заделке.
Проверьте себя
1. Чему равен максимальный момент балки на двух опорах под равномерной нагрузкой q?
Aql²/4
Bql²/8
Cql/2
Dql²/2
2. Как численно получают эпюру M из эпюры Q?
AДифференцируют Q
BИнтегрируют Q: M += Q·dx
CДелят Q на длину
DУмножают Q на площадь сечения