柱を上から押したときに耐えられる荷重を、FEM の線形座屈解析で求めることがあります。出てきた荷重は、オイラーの式とよく合います。ただし、柱が短いと、その荷重は材料が降伏する荷重を大きく超えます。
10 mm 角の鋼の棒を長さ 50〜400 mm で NovaSolver Studio の線形座屈解析にかけ、オイラーの式、せん断変形を入れた式、降伏を考えたジョンソンの式と並べました。
問題
- 鋼(ヤング率 205 GPa、降伏応力 235 MPa)、断面 10 × 10 mm
- 下端を固定し、上端は自由。上端の面を 1 kN で押す
- 長さ L = 50 / 100 / 200 / 400 mm
一端固定・他端自由の柱は、有効長さが 2L になります。
手計算
import math
E, sy, a = 205e9, 235e6, 0.010 # Pa, Pa, m
A, I = a * a, a**4 / 12
r = math.sqrt(I / A) # 断面二次半径 2.89 mm
Cc = math.sqrt(2 * math.pi**2 * E / sy) # ジョンソンの式を使う細長比の上限 131
kGA = 5 / 6 * E / (2 * 1.3) * A # せん断の剛性
for L in (0.05, 0.10, 0.20, 0.40):
lam = 2 * L / r # 細長比
pe = math.pi**2 * E * I / (4 * L**2) # オイラー
ps = pe / (1 + pe / kGA) # せん断変形を入れる
pj = A * sy * (1 - sy * lam**2 / (4 * math.pi**2 * E)) if lam < Cc else pe # ジョンソン
print(f"{L*1000:4.0f} mm λ={lam:5.1f} Euler {pe/1e3:6.1f} shear {ps/1e3:6.1f} Johnson {pj/1e3:5.1f} kN")
# 50 mm λ= 34.6 Euler 168.6 shear 164.4 Johnson 22.7 kN
# 100 mm λ= 69.3 Euler 42.2 shear 41.9 Johnson 20.2 kN
# 200 mm λ=138.6 Euler 10.5 shear 10.5 Johnson 10.5 kN
# 400 mm λ=277.1 Euler 2.6 shear 2.6 Johnson 2.6 kN
断面全体が降伏する荷重は 235 MPa × 100 mm² = 23.5 kN です。オイラーの式の荷重がこれを超えるのは、細長比が π√(E/σy) ≈ 93 より小さい(この柱では L が約 134 mm より短い)ときです。ジョンソンの式は、細長比が 131(L が約 189 mm)より小さい範囲でオイラーの式の代わりに使います。
Studio で解く
Studio は MCP に対応していて、AI から条件の設定と計算を呼び出せます。柱の座屈のテンプレートを使い、長さだけを変えました。50 mm のやりとりの抜粋です(→ の後ろが Studio の返答)。
create_case column-buckling
update_case geometry.params.length = 50 mm
validate_case
→ GREEN
x1 (右端面 (x=L)): 1,000 N、向き -x。面の外向きは +X なので、荷重は面を押します。面積 100 mm² で平均 10 MPa。
支持: x0 (左端面 (x=0)) = 固定。
材料: 鋼、E 205 GPa、降伏応力 235 MPa。
check_convergence (粗い・標準・細かいの3つのメッシュで解き直す)
→ 座屈荷重: coarse 1.6505e+05, normal 1.6487e+05, fine 1.648e+05 N -> extrapolated 1.6474e+05, GCI 0.04% (order 2.62) -> PASS. ran=yes / converged=yes / does not match reference
get_results
→ 座屈荷重: 164800.0 N
Buckling mode 1: load factor 164.796, critical load 164796 N
Buckling mode 2: load factor 164.813, critical load 164813 N
WARNING: 線形座屈は形状の初期不整を考えないため、薄肉の殻などでは実際に耐えられる荷重を高めに見積もります。
verify_case
→ オイラー座屈荷重(一端固定・他端自由)と比較します。: computed 1.648e+05 N, reference 1.6861e+05 N, error -2.26% (tolerance 2.0%) -> FAIL
1 kN を加えて解くと、その何倍で座屈するか(座屈荷重倍率)が返ります。正方形の断面は縦と横で同じ曲がりやすさなので、モード1と2がほぼ同じ値で対になります。
細かいメッシュの離散化誤差の見積もり(GCI)は、座屈荷重について約 0.04% でした。最後の行は、このテンプレートに組み込まれたオイラーの式との照合で、許容差 2% に対して −2.26% だったので不合格になっています。理由は後で説明します。
比べる
| 長さ | Studio | オイラー | 差 | せん断変形を入れた式 | 差 | 降伏荷重の何倍か |
|---|---|---|---|---|---|---|
| 50 mm | 164.8 kN | 168.6 kN | −2.3% | 164.4 kN | +0.2% | 7.0 倍 |
| 100 mm | 42.02 kN | 42.15 kN | −0.3% | 41.88 kN | +0.3% | 1.8 倍 |
| 200 mm | 10.55 kN | 10.54 kN | +0.1% | 10.52 kN | +0.2% | 0.45 倍 |
| 400 mm | 2.638 kN | 2.634 kN | +0.1% | 2.633 kN | +0.2% | 0.11 倍 |
100 mm 以上では、Studio とオイラーの式の差は最大で約 0.32% です。メッシュ収束の確認は4本とも通りました。
50 mm だけ −2.3% 離れたのは、主にせん断変形の影響と考えられます。オイラーの式は曲げによる変形だけを考えていますが、長さが断面の5倍しかない柱では、せん断による変形も効いて座屈荷重が下がります。FEM の立体の要素はこの変形も含んでおり、せん断変形を入れた式との差は約 +0.25% に縮みました。
降伏が先に来る
表の右端を見てください。50 mm の柱の座屈荷重 164.8 kN は、断面に 1,648 MPa の応力をかける荷重です。降伏応力 235 MPa の鋼は、その前に降伏します。100 mm でも降伏荷重の 1.8 倍です。
線形座屈解析は、材料がどこまでもまっすぐ弾性のままだと仮定して、つり合いが不安定になる荷重を求めます。材料の降伏は計算に入っていないので、出てきた荷重が降伏荷重を超えていないかは、自分で確かめる必要があります。
この柱では、L が約 134 mm より短いと、オイラー荷重が公称の全断面降伏荷重を上回り、弾性の仮定を満たしません。降伏と座屈が重なる範囲の荷重の目安には、ジョンソンの式(50 mm で 22.7 kN、100 mm で 20.2 kN)を使います。
まとめ
- 10 mm 角の鋼の柱で、線形座屈の荷重とオイラーの式の差は、100〜400 mm で最大約 0.32% だった
- 50 mm では 2.3% 低く、主にせん断変形の影響と考えられる。せん断変形を入れた式との差は約 0.25%
- 50 mm と 100 mm の座屈荷重は、降伏荷重の 7.0 倍と 1.8 倍。線形座屈の荷重を使う前に、P/A と降伏応力を比べる
NovaSolver Studio は無料のオープンソース(GPL-3.0)です。Claude Desktop など MCP に対応した AI アプリとつなげて使えます。
- 紹介・ダウンロード:https://novasolver.jp/studio/
- ソースコード(GitHub):https://github.com/novasolver/novasolver-studio

