オイラー座屈 — トラブルシューティングガイド
より充実した内容を euler-column.html でご覧いただけます。
座屈解析のトラブルシューティング
先生、座屈解析を回したらおかしな結果が出て困ってるんです…。
座屈解析は他の解析以上にトラブルが多い分野だ。よくある問題を症状別に整理しよう。
負の固有値が出る
線形座屈解析で固有値がマイナスになりました。これは何ですか?
負の固有値は参照荷重の反対方向で座屈が起きることを意味する。つまり圧縮荷重として与えたのに引張方向の座屈が出ている状態だ。
原因と対策:
| 原因 | 状況 | 対策 |
|---|---|---|
| 荷重方向の符号ミス | 引張荷重を圧縮として入力 | 荷重方向を確認・修正 |
| 反力方向の座屈 | 反力が圧縮になる部材がある | 正の固有値のみ評価する |
| モード数不足 | 負の固有値に埋もれて正の最低モードが出ない | 求めるモード数を増やす |
なるほど。負の固有値自体はバグじゃなくて、物理的には引張座屈の意味なんですね。
そう。ただし実務では正の最小固有値が重要だ。10モード求めて全部負だったら、荷重方向を完全に間違えている可能性が高い。
座屈荷重が手計算と大きく違う
オイラーの式で $P_{cr} = 293$ kN と計算したのに、FEMでは450 kNと出ました。5割も違います…。
FEMが手計算より高い場合、まず以下を確認しよう:
1. 座屈方向は合っているか?
オイラーの式では断面の最小慣性モーメント $I_{min}$ を使う。H形鋼なら弱軸(y軸)回り。FEMで強軸(x軸)回りの座屈が出ていないか、モード形状を必ず確認。
あ…強軸回りの座屈が先に出てた可能性がありますか?
十分あり得る。境界条件によっては弱軸方向の変位を拘束してしまっていて、強軸座屈しか出ないことがある。例えば壁に面した柱を壁方向(弱軸方向)で拘束すると、弱軸座屈は抑制される。意図してそうしたなら正しいが、モデル化ミスなら深刻だ。
2. 境界条件の固定度は正しいか?
$K = 1.0$(両端ピン)のつもりなのに、回転が拘束されていて $K = 0.5$(両端固定)相当になっていると、座屈荷重は4倍に跳ね上がる。
3. 要素タイプは適切か?
梁要素でワーピングを考慮しないと、開断面(H形鋼、溝形鋼)の座屈荷重が過大になる。NastranのCBEAMでワーピング自由度を含めているか確認。
逆にFEMのほうが手計算より低い場合は?
その場合は局所座屈が先行している可能性が高い。オイラー式は全体座屈しか評価しないが、シェルやソリッドでモデル化するとフランジの局所座屈が出ることがある。モード形状が全体の横たわみではなく、局部的な波打ちになっていないか確認してくれ。
非線形座屈解析が収束しない
Riks法で非線形座屈をやろうとしたら、座屈点の手前で収束しなくなります。
これは非線形座屈で最もよくあるトラブルだ。原因は大きく3つ。
原因1: 初期不整が入っていない
完璧に対称な構造に対称荷重をかけると、数値的に「分岐点」を通過できない。小さな摂動がないと、ソルバーは真っ直ぐな平衡経路に留まろうとして、分岐点で経路が分からなくなる。
対策: 線形座屈の1次モード形状を初期不整として導入する。振幅は部材長の1/1000〜1/500程度が一般的。Abaqusなら *IMPERFECTION で簡単にできる。
原因2: 増分幅が大きすぎる
座屈点付近は荷重-変位曲線の勾配が急激に変化する。増分幅が大きいと、この急変に追従できない。
対策: 初期増分を小さくする。Riks法なら初期弧長を荷重の1%程度に設定。Abaqusの *STATIC, RIKS で 0.01, 1.0, 1e-8, 0.1 のように初期増分を小さく、最小増分をさらに小さく。
原因3: 接触や境界の非線形性
支持部にバネ要素を入れているんですが、これが関係しますか?
座屈で大変形が起きると、接触条件やバネの状態が急変して収束を乱すことがある。座屈解析のデバッグではまず境界条件を極力単純化(理想ピン・固定で)して収束を確認してから、段階的に複雑にするのが鉄則だ。
座屈モードがメッシュに依存する
メッシュを変えると座屈荷重やモード形状が変わってしまいます。どこまで細かくすれば安定しますか?
メッシュ収束性の確認が必須だ。手順はこう:
1. 粗いメッシュで解析 → 座屈荷重と上位5モードを記録
2. メッシュを2倍に細分化 → 同じ確認
3. さらに2倍に細分化 → 同じ確認
4. 座屈荷重の変化が2〜3%以内に収まればOK
局所座屈の場合は特に敏感ですよね?
その通り。全体座屈は比較的メッシュに鈍感だけど、局所座屈(板の波状座屈など)は座屈半波長に対して要素が4つ以上ないと正しく表現できない。粗いメッシュでは局所座屈モードが「見えない」状態になる。
特に注意すべきは板の自由辺付近だ。自由辺の座屈はメッシュ密度に非常に敏感で、辺に沿って十分な要素数が必要。
ソルバー別のよくあるエラー
Nastran SOL 105
| エラー | 意味 | 対策 |
|---|---|---|
| FATAL 2012: Singular KAA | 剛性マトリクスが特異 | 拘束不足。剛体モードが残っている。SPCを追加 |
| 固有値が全てゼロ付近 | 幾何剛性マトリクスがほぼゼロ | 前段の静解析で応力が発生していない。荷重設定を確認 |
| 上位モードが振動的 | 求めたモード数が多すぎる | 実用上意味のあるモード数(5〜20程度)に絞る |
Abaqus *BUCKLE
| エラー | 意味 | 対策 |
|---|---|---|
| Zero pivot in row N | N番目のDOFが拘束不足 | 該当ノードの拘束を確認 |
| No converged eigenvalues | Lanczos法が収束しない | SUBSPACE法に切り替え、またはシフト値を指定 |
| Negative eigenvalues only | 荷重方向が逆 | 荷重の符号を確認 |
Ansys Eigenvalue Buckling
| エラー | 意味 | 対策 |
|---|---|---|
| Insufficient constraints | 剛体モードあり | 拘束DOFの追加 |
| 座屈荷重が著しく高い | 前段の静解析が線形のまま | PSTRESをONにして応力剛性を有効化 |
デバッグの鉄則
座屈解析でトラブったとき、最も効率的なデバッグ手順は何ですか?
経験則から言うと、この順番で調べるのが最速だ:
Step 1: モード形状を目で見る
数値を見る前にモード形状を可視化。物理的にあり得ない変形なら、入力が間違っている。これで問題の8割は切り分けられる。
Step 2: 最も単純なモデルで検証する
問題を再現する最小モデルを作る。1本の柱(梁要素5〜10個)でオイラーの理論解と合わせる。これが合わなければソルバーの設定が根本的に間違っている。
Step 3: 段階的に複雑化する
単純モデルが合ったら、少しずつ実モデルに近づける。メッシュの細分化、境界条件の詳細化、材料モデルの追加…。どの段階で結果がおかしくなるかで原因を特定する。
「最小モデルで理論解と合わせる」がスタートなんですね。いきなり実モデルで悩むより効率的だ。
座屈解析は「ソルバーが何かおかしい」のか「自分の理解が足りないのか」の切り分けが難しい分野だ。最小モデルでオイラーの理論解を再現できれば、少なくともソルバーの使い方は合っていると確信できる。そこから一歩ずつ積み上げるのが、遠回りに見えて最速の道だよ。
線形座屈解析の固有値が実験と合わない場合
Euler座屈の線形FEM解析値が実験の60〜80%程度にしかならないことがある。原因は初期不整(幾何誤差・残留応力)で、完全な円形断面・真直ぐな軸を仮定する線形解析では過大評価になる。実際の製造誤差(曲がり量L/1000程度)と残留応力(降伏の30〜50%)を考慮した非線形座屈解析(NLBA)を実施することで実験と±10%以内の一致が得られる。
トラブル解決の考え方
「解析が合わない」と思ったら
- まず深呼吸——焦って設定をランダムに変えると、問題がさらに複雑になる
- 最小再現ケースを作る——オイラー座屈の問題を最も単純な形で再現する。「引き算のデバッグ」が最も効率的
- 1つだけ変えて再実行——複数の変更を同時に行うと、何が効いたか分からなくなる。科学実験と同じ「対照実験」の原則
- 物理に立ち返る——計算結果が「重力に逆らって物が浮く」ような非物理的な結果なら、入力データの根本的な間違いを疑う
関連トピック
なった
詳しく
報告