負の固有値(座屈兆候)

カテゴリ: エラー対策 | 2026-02-01
CAE visualization for negative eigenvalue - technical simulation diagram

負の固有値とは

🧑‍🎓

先生、「negative eigenvalue」のWarningが出ました。これはどういう意味ですか?


理論と物理

負の固有値の物理的意味

🧑‍🎓

解析結果で「負の固有値」という警告が出ました。固有値は通常、振動の周波数の二乗のような正の値だと思っていました。負の固有値とは物理的に何を意味しているんですか?

🎓

良い着眼点だ。ここでの「固有値」は、座屈解析における荷重乗数(load multiplier)を指す。支配方程式は

$$ ( [K] + \lambda [K_G] ) \{\phi\} = \{0\} $$
だ。ここで[K]は線形剛性マトリクス、[K_G]は幾何剛性(応力剛性)マトリクス。λが固有値で、臨界荷重は「適用荷重 × λ」で求まる。

🧑‍🎓

なるほど。では、λが負になるということは、幾何剛性マトリクス[K_G]の効果が、線形剛性[K]を打ち消すどころか逆方向に働いて、系全体の見かけの剛性が負になってしまう状態ということですか?

🎓

その解釈でほぼ正しい。より具体的には、引張荷重下で圧縮座屈が起きる、あるいは逆の現象が生じている兆候だ。例えば、薄肉円筒シェルに内圧をかけると、軸方向には引張応力が発生するが、この状態で横方向からのわずかな圧縮外力をかけると、予想外に早く座屈(いわゆる”逆座屈”)が発生することがある。この時の荷重乗数λは負になる。

🧑‍🎓

「逆座屈」という現象があるんですね。設計上、引張応力状態は安全と思いがちですが、そうとは限らないと。この負の固有値の絶対値には意味がありますか?例えば、λ = -2.5 と λ = -0.1 では、どちらがより危険な状態と言えるのでしょうか?

🎓

絶対値が小さい方が、現在の荷重状態から臨界状態までの「余裕」が小さい、つまりより危険な状態に近いことを示す。λ = -0.1 は、現在の荷重の向きを逆にした場合(例えば引張→圧縮)、現在の荷重のたった0.1倍の圧縮荷重で座屈する可能性がある。λ = -2.5 なら、2.5倍の逆荷重が必要なので、相対的に余裕は大きい。ただし、荷重の向きが逆転するシナリオ自体が現実的かどうかの検討が必須だ。

数値解法と実装

ソルバーが負の固有値を検出する仕組み

🧑‍🎓

数値的に、ソルバーはどのようにして負の固有値を見つけ出しているのでしょうか?全部の固有値を計算しているのですか?

🎓

大規模問題で全固有値計算は非現実的だ。一般的にはランチョス法やサブスペース反復法を用いて、指定した数(例えば10個)の固有値を、絶対値が最小のものから順に求める。ソルバーは

$$ \det( [K] + \lambda [K_G] ) = 0 $$
を満たすλを探す。シフト・インバート法を使う場合、目標値(シフト点)近傍の固有値を効率的に計算できる。ユーザーが「最も低い固有値」を求めるように設定すると、ソルバーはλ=0に近い値から探索を始め、正負両方の可能性を考慮する。

🧑‍🎓

シフト点を設定できる場合、例えば引張荷重が主で圧縮座屈を心配する場合、シフト点を負の側(例えば-1.0)に設定して探索した方が、目的の負の固有値を確実に見つけられますか?

🎓

その通りだ。Ansys MechanicalのEigenvalue Buckling解析では、`BUCOPT`コマンドで`SIGMA`(シフト点)を指定できる。予め負の固有値が存在しそうな場合は、`SIGMA`を-0.5などに設定すると、その近傍の固有値から計算が始まり、見逃しを防げる。Abaqusでは、*BUCKLEステップで`BLOCK Lanczos`ソルバーを使用する際、`EIGENSOLVER=SUBSPACE`とし、`MINIMUM ABSOLUTE`オプションを選ぶことで、絶対値最小の固有値(正負問わず)を求めるのが確実な方法だ。

🧑‍🎓

計算された負の固有値のモード形状は、通常の座屈モードと解釈が違うのでしょうか?アニメーションで変位を表示する場合、何に注意すべきですか?

🎓

モード形状{φ}自体は、その固有値λに対応する不安定な変形モードを示す。ただし、λが負の場合、そのモード形状は「現在の荷重の向きを逆にした仮想的な荷重」のもとで発生する座屈モードだ。アニメーション表示では、ソフトウェアによっては変位のスケーリングにλが使われるため、負のスケールで表示され、変位の向きが反転して見えることがある。物理的に解釈する時は、「現在の荷重状態でこの形状に変形する」のではなく、「荷重が逆転した場合にこの形状で座屈する」と考える。

実践ガイド

負の固有値が出た時のワークフロー

🧑‍🎓

実際の設計業務で線形座屈解析を実行し、負の固有値(例えばλ=-0.3)が最小固有値として出てきた場合、最初に何を確認すべきですか?

🎓

まずは「荷重の設定が意図通りか」の再確認だ。特に、圧縮部材に引張荷重が誤って掛かっていないか、またはその逆。次に、拘束条件を見直す。過剰な拘束(例えば、熱膨張を妨げる固定)によって、想定外の圧縮残留応力が生じ、それが[K_G]に影響を与えていないか。具体的には、Ansysでは`/POST1`で`PRESOL`コマンドを用いて、座屈解析の前段階である静的解析(预应力状態)の応力分布を確認し、圧縮領域が設計意図と合致しているかをチェックする。

🧑‍🎓

荷重と拘束が設計意図通りであることを確認した後、負の固有値が「許容できる現象」なのか「無視できない危険信号」なのかを判断する基準はありますか?

🎓

判断基準は「荷重逆転の可能性」と「規格・基準の要求」の2点だ。第一に、その構造物の使用中に荷重の向きが物理的に逆転するシナリオがあるか。例えば、船舶のバラストタンクは満水時と空時で荷重方向が逆転する。逆転可能性がゼロなら、負の固有値は当面の設計上の問題ではない。第二に、適用する規格を確認する。例えば、EN 1993-1-6(シェル構造の設計)では、正負両方の荷重ケースを考慮することが要求されている場合がある。規格に従って評価が必要か否かを判断する。

🧑‍🎓

負の固有値が無視できないと判断した場合、設計を改善するための具体的なアプローチはどういうものがありますか?

🎓

アプローチは2つある。1つは「負の固有値の絶対値を大きくする(安全側に遠ざける)」方向の設計変更だ。具体的には、引張応力状態で圧縮座屈しやすい部位(例えば、薄板の面外方向)にリブを追加して面外剛性を上げる。もう1つは、「荷重逆転シナリオそのものを排除する」設計だ。例えば、プレストレスを導入して部材を常に圧縮状態に保ち、引張荷重がかかる可能性をなくす。航空機の翼付け根部分などで見られる設計思想だ。

ソフトウェア比較

主要ソフトウェアでの取り扱いの違い

🧑‍🎓

Ansys、Abaqus、COMSOLで線形座屈解析を実行した時、負の固有値の表示やレポートのされ方に違いはありますか?

🎓

大きな違いがある。Ansys Mechanical (APDL) は、デフォルトで絶対値最小の固有値を計算し、負の値もそのまま出力する。結果ファイル(.rst)には負の値が格納され、`*GET`コマンドで取得できる。Abaqus/Standardは、デフォルト設定では正の固有値のみを計算する。負の固有値を探すには、先述の`MINIMUM ABSOLUTE`オプションを明示的に指定する必要がある。COMSOL Multiphysicsの「線形座屈」研究ステップでは、デフォルトで「最小固有値」を計算するが、これは代数的に最小(つまり最も負に大きい値)を意味する場合があり、シフト点の設定が重要になる。

🧑‍🎓

Abaqusでデフォルトが正のみなのは、なぜですか?負の値はレアケースだから?

🎓

主に歴史的経緯と、多くの実務的な座屈問題(柱の圧縮座屈、シェルの外圧座屈など)が正の荷重乗数に関連するからだ。Abaqusのマニュアルにも、「負の固有値は、荷重の方向が反転した場合の座屈を表す」と注記されている。ユーザーが意図せず負の固有値を得て混乱するのを防ぐ側面もある。しかし、複雑な预应力状態や熱応力が関わる現代の設計では、負の固有値は「レア」ではなくなっている。そのため、オプションとして検出機能は用意されている。

🧑‍🎓

ソフトウェア間で、負の固有値の計算精度や安定性に差はありますか?例えば、非常に0に近い負の固有値(λ=-1.0e-5など)を検出できるかどうか。

🎓

検出能力そのものは大差ないが、成否を分けるのは「シフト点の設定」と「ソルバーの収束判定閾値」だ。Ansysの`BUCOPT`では`SIGMA`と`THRESH`(収束閾値)を設定できる。λ=-1.0e-5のような0に極めて近い値を探すには、`SIGMA`を0に非常に近い負の値(-1.0e-6など)に設定し、`THRESH`をより厳しい値(1.0e-12など)にすると見つけやすい。Abaqusでも同様に、シフト点(`SHIFT`)を指定できる`LANCZOS`ソルバーを使用するのが有効だ。いずれにせよ、数値的に0に近い固有値は、モデルの剛性マトリクスの条件数が悪化し、計算が不安定になるリスクがある。

トラブルシューティング

負の固有値に関連する解析エラーと対策

🧑‍🎓

座屈解析を実行したら、「負の対角項」や「ピボットエラー」で途中で停止してしまいました。これは負の固有値と関係ありますか?

🎓

直接的に関係している。線形座屈解析の固有値問題を解く過程で、マトリクス

$$ [K] + \lambda [K_G] $$
の分解(LU分解など)が行われる。λが負で、かつその絶対値がある閾値を超えると、[K_G]の負の寄与が大きすぎて、全体のマトリクスが正定値でなくなり、対角項が負またはゼロになる。これが「負の対角項」エラーの正体だ。ソルバーはこれ以上計算を続けられないと判断して停止する。

🧑‍🎓

そのエラーを回避して、とにかく負の固有値を計算し終えるにはどうすればいいですか?

🎓

対策は主に2段階ある。第一に、静的解析(预应力計算)段階で不安定な変位が生じていないか確認する。特にシェル要素などで「スナップスルー」のような大変形が生じていると、[K_G]が物理的に意味をなさなくなり、エラーの原因になる。第二に、ソルバー設定を変更する。Ansys APDLでは、`BUCOPT`コマンドに`NMODE`(求めるモード数)を増やし、`RANGE`で探索する固有値の下限を明示的に指定する(例: `RANGE, -10, 100`)。これにより、ソルバーが異常に負に大きい固有値の探索に時間を取られるのを防ぎ、現実的な範囲に集中させられる。

🧑‍🎓

複数の固有値(例えば正と負が混在)が得られた場合、荷重倍率とモード形状の対応を整理する良い方法はありますか?結果の見落としを防ぎたいです。

🎓

確実な方法は、固有値を数直線上にプロットし、設計荷重ケース(λ=1の点)からの距離を測ることだ。表計算ソフトを使い、得られた固有値λ_iを小さい順に並べる。設計荷重はλ=1なので、λ=1に最も近い固有値(正側では最小の正のλ、負側では最大の負のλ)が、その荷重状態で最も発生しやすい座屈モードの候補となる。Ansys Workbenchでは、「Eigenvalue Buckling」結果の「Tabular Data」を右クリックでExcelに出力できる。そこでλ=1からの距離

$$ |1 - \lambda_i| $$
を計算し、ソートするのが実務的なワークフローだ。

🧑‍🎓

線形座屈解析で負の固有値が出た場合、非線形座屈解析(弧長法)は必須の検証手段と言えますか?

🎓

ほぼ必須と言って良い。線形座屈解析はあくまで「兆候」を示すに過ぎず、実際の座屈荷重や後座屈挙動は非線形解析でなければわからない。特に負の固有値は、荷重方向が逆転した仮想ケースでの線形近似結果だ。実際の構造物がその逆荷重シナリオでどのように振る舞うか、初期不整の影響はどうか、を評価するには、Abaqusの*STATIC, RIKS法やAnsysの`ARCLEN`命令を用いた非線形静解析が不可欠だ。例えば、λ=-0.3という結果を得たら、次は荷重を反転させたケース(圧縮荷重)で、初期変形を導入した非線形解析を実行し、実際の安全率を評価する。

この記事の評価
ご回答ありがとうございます!
参考に
なった
もっと
詳しく
誤りを
報告
参考になった
0
もっと詳しく
0
誤りを報告
0
Written by NovaSolver Contributors
Anonymous Engineers & AI — サイトマップ
プロフィールを見る