Python で三角形状分布荷重を受ける単純支持はりのたわみを計算

三角形状分布荷重を受ける単純支持はりのせん断力,曲げモーメントおよびたわみを Python で計算し,プロットする。

検討モデル

三角形状に分布する荷重(以下,三角形状分布荷重。線形分布荷重ともいう。)を受ける単純支持はり(simply supported beam)のせん断力(shearing force),曲げモーメント(bending moment)およびたわみ(deflection)を検討するモデルを下図に示す。

図 三角形状分布荷重を受ける単純支持はり

単純支持はりの支点 A(単純支持はりの左端)は回転はできるが移動できない回転支点(hinged support),支点 B(単純支持はりの右端)は回転と共に一方に移動できる移動支点(movable support)とした。

単純支持はりの支点 A を xy 座標の原点とし,原点より支点 B 方向を x の正,原点より鉛直下向きを y の正とする。また,はりの長さ(支点 A と支点 B との間の距離)は l とする。想定する荷重 w(x) は,三角形状に分布する荷重とし,w(0)=0,w(l)=w0 とする。

Python コード

三角形状分布荷重を受ける単純支持はりのせん断力,曲げモーメントおよびたわみを計算し,プロットまで行う Python コードを示す。

ライブラリ読み込み

今回の計算およびプロットでは,numpy,matplotlib を用いる。

import numpy as np
import matplotlib.pyplot as plt

定数の定義

計算で用いる定数の定義を行う。

beam_length = 1000      # [mm] 単純支持はりの長さ
dx = beam_length / 1000 # [mm] 単純支持はりの x 軸の粒度
w0 = 1                  # [N/mm] 三角形状分布荷重
youngs_modulus = 200000 # [N/mm] 縦弾性係数
Iz = 3000               # [mm^4] 断面二次モーメント

せん断力,曲げモーメント,たわみを計算する関数

せん断力,曲げモーメントおよびたわみを計算する関数を定義する。

def calculate_values(xx, beam_length, w0, youngs_modulus, Iz):
    Qx = w0 * beam_length / 6 - w0 * xx**2 / 2 / beam_length
    Mx = w0 * beam_length / 6 * xx - w0 / 6 / beam_length * xx**3
    yy = w0 / 360 / youngs_modulus / Iz / beam_length * (3 * xx**5 - 10 * beam_length**2 * xx**3 + 7 * beam_length**4 * xx)
    return Qx, Mx, yy

プロット関数

せん断力図 (SFD),曲げモーメント図 (BMD) およびたわみ曲線をプロットする関数を定義する。

def plot_graph(x, y, xlabel, ylabel, title, filename):
    plt.figure()
    plt.plot(x, y, label=title)
    plt.grid(True)
    plt.xlabel(xlabel)
    plt.ylabel(ylabel)
    plt.xlim([min(x), max(x)])
    plt.legend()
    plt.savefig(filename, dpi=300)
    plt.show()

x 軸の定義~描画まで

x 軸の定義,せん断力,曲げモーメントおよびたわみの計算,せん断力図 (SFD),曲げモーメント図 (BMD) およびたわみ曲線をプロットする。

# x軸の定義
xx = np.arange(0, beam_length + dx, dx)
# せん断力、曲げモーメント、たわみの計算
Qx, Mx, yy = calculate_values(xx, beam_length, w0, youngs_modulus, Iz)
# プロット範囲の定義
xmin, xmax = min(xx), max(xx)
# せん断力図 (SFD) の描画
plot_graph(xx, Qx, 'x [mm]', 'Shearing Force [N]', 'Shearing Force', "SFD.png")
# 曲げモーメント図 (BMD) の描画
plot_graph(xx, Mx, 'x [mm]', 'Bending Moment [Nmm]', 'Bending Moment', "BMD.png")
# たわみ図の描画
plot_graph(xx, yy, 'x [mm]', 'Deflection [mm]', 'Deflection', "deflection_curve.png")

プロット結果

プロットしたせん断力図 (SFD),曲げモーメント図 (BMD) およびたわみ曲線を示す。

せん断力図 (SFD)

三角形状分布荷重を受ける単純支持はりのせん断力は,単純減少する二次関数で表される。

図 三角形状分布荷重を受ける単純支持はりのせん断力図 (SFD)

曲げモーメント図 (BMD)

三角形状分布荷重を受ける単純支持はりの曲げモーメントは,上に凸の三次関数で表される。

図 三角形状分布荷重を受ける単純支持はりの曲げモーメント図 (BMD)

たわみ曲線

三角形状分布荷重を受ける単純支持はりのたわみ曲線は,上に凸の五次関数で表される。与えられた条件では,x が 518 [mm] において,たわみは最も大きくなり,その大きさは 10.87 [mm] である。

図 三角形状分布荷重を受ける単純支持はりのたわみ

参考文献

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です