時間刻み — CAE用語解説
理論と物理
時間刻みの物理的意味
「時間刻み」って、単に計算を細かく区切るだけの設定ですか?物理的にどういう意味があるんですか?
いいえ、単なる計算上の区切りではありません。物理現象が「伝播する速さ」を正しく捉えるための、最も重要な離散化パラメータです。例えば衝撃波が伝わる問題では、時間刻み
CFL条件って具体的にどう決めるんですか?要素サイズがバラバラのメッシュだと、どこを基準にすればいいですか?
最も厳しい(最小の)条件を持つ要素が全体の時間刻みを決定します。式で書くと、
そんなに小さい時間刻みだと、1秒の現象をシミュレーションするのに何十万ステップも必要で、計算が終わりません。実務ではどうやって折り合いをつけてるんですか?
まさにそれが実務の肝です。対策は主に二つ。第一に、物理的に不要な「微小な要素」を作らないメッシュ分割。リベットの丸みなど局所的な形状は、現象に影響がなければ簡略化します。第二に、ソルバーの「マススケーリング」機能の利用。Ansys LS-DYNAなどでは、最小要素の剛性を人為的に上げて許容時間刻みを大きくし、計算時間を短縮します。ただし、追加された人工質量が結果に与える影響は必ず評価が必要です。
数値解法と実装
陽解法と陰解法での扱いの違い
時間積分の「陽解法」と「陰解法」で、時間刻みの設定の重要性が全然違うと聞きました。具体的に何が違うんですか?
根本的に異なります。陽解法(例:中心差分法)は「条件付き安定」で、先ほど話したCFL条件のような時間刻みの上限が厳格に存在します。一方、陰解法(例:ニューマーク法、後退オイラー法)は「無条件安定」を謳うことが多く、理論上はどんなに大きな時間刻みでも発散しません。しかし、陰解法で大きすぎる時間刻みを使うと、数値減衰が過大になり、物理的な振動現象を「潰して」しまうという別の問題が生じます。
陰解法で時間刻みを大きくしすぎると振動が潰れる、というのはどういうメカニズムですか?数式で説明できますか?
後退オイラー法を例にとると、1次元の振動方程式を離散化した時の「振幅減衰率」は時間刻みに依存します。単振動の角周波数を
では、陰解法を使う場合の適切な時間刻みの決め方は?「発散しないから適当でいい」はダメなんですね。
その通りです。陰解法では、注目する現象の「最も高い周波数成分」を捉えられるように設定します。経験則として、振動現象を解くなら、1周期を少なくとも20〜30ステップで分割します。つまり、
実践ガイド
適切な時間刻みの決め方ワークフロー
実際の解析で、最初に時間刻みをどう決めて、どう修正していくのか、具体的な手順を知りたいです。
実務的なワークフローはこうです。1) メッシュを切った後、プリプロセッサで最小要素サイズを確認する(例:LS-PrePostやHyperMesh)。2) 材料の音速を計算する。鋼材なら縦波速度は約5900 m/s。3) CFL条件の目安として
「自動時間刻み制御」という機能をよく見ます。これは信用していいんですか?どんな原理で動いているんですか?
信用できますが、原理を理解した上で使う必要があります。Ansys Mechanicalの「自動時間ステップ」は、前のステップの収束の速さ(反復回数)を監視し、収束が早ければ次のステップの刻みを大きくし、遅ければ小さくします。COMSOLの「可変ステップ」は、ユーザーが許容する「局所打ち切り誤差」を設定し、ソルバーがその誤差内に収まるように刻み幅を動的に調整します。ただし、急激な変化が起きる初期接触や破壊の瞬間では、自動制御が追従できずに発散することがあるので、その付近は手動で刻みを細かく固定するのがベストプラクティスです。
接触問題で時間刻みを特に細かくする必要があると聞きました。なぜ接触の瞬間が特別なんですか?
接触が発生する瞬間、境界条件が不連続に変化し、応力波が発生します。この波は非常に高周波成分を含むため、粗い時間刻みでは捉えきれません。また、陽解法では接触アルゴリズム(ペナルティ法など)自体が数値的な「バネ」を導入するため、そのバネの固有振動数に基づいた、さらに短い時間刻みが必要になる場合があります。自動車のドアラッチの噛み合い解析などでは、接触発生前後の1ミリ秒を、通常の10分の1以下の時間刻みで計算することが珍しくありません。
ソフトウェア比較
主要ソルバーにおける時間刻み設定の違い
Ansys LS-DYNAとAbaqus/Explicitはどちらも陽解法の代表格ですが、時間刻みの設定方法やデフォルトの挙動に違いはありますか?
大きな違いがあります。LS-DYNAはデフォルトで「マススケーリング」をある程度行い、ユーザーが指定した「目的の時間刻み」を達成しようとします。キーワード`*CONTROL_TIMESTEP`で`DT2MS`を正の値に設定すると、その刻み幅になるように最小要素の質量を増加させます。一方、Abaqus/Explicitはデフォルトではマススケーリングを行わず、安定限界の時間刻みを計算し、それに安全係数0.9をかけた値を実際の刻み幅とします。ユーザーが刻み幅を固定したい場合は、`*FIXED TIME INCREMENTATION`を指定する必要があります。この哲学の違いは、LS-DYNAが「計算時間を一定にしたい」、Abaqusが「物理的精度を優先したい」という傾向に現れています。
陰解法ソルバーではどうですか?Abaqus/StandardとAnsys Mechanicalの時間刻み制御を比べると?
Abaqus/Standardの自動時間増分制御は非常に洗練されています。`*STEP`で`INC`(最大増分数)と`INITIAL`(初期増分サイズ)を設定しますが、収束が悪いと自動的に増分サイズを`MIN`(最小増分サイズ)まで小さくし、逆に順調なら`MAX`(最大増分サイズ)まで大きくします。Ansys Mechanicalも同様の機能を持ちますが、設定パラメータが「弱い非線形」「強い非線形」などのプリセットで提供されることが多く、Abaqusのように数値を直接細かく設定するよりもブラックボックス寄りです。複雑な接触を含む非線形解析では、Abaqusの制御の方がロバスト(強靭)だと評価するエンジニアもいます。
無償のオープンソースソルバー、例えばCalculiXやCode_Asterでは、時間刻み設定は商用ソフトと比べてどうですか?
基本的な概念は同じですが、自動化の度合いとユーザーインターフェースが大きく異なります。CalculiX(CCX)の動的陽解法では、キーワード`*DYNAMIC`で`ALPHA`と`BETA`(減衰パラメータ)と直接`DELTMX`(最大時間増分)を設定します。自動刻み制御はほぼありません。Code_Asterはより高度で、`PAS_APRIORI`(事前刻み)と`PAS_MINI`(最小刻み)を定義し、`ADAPTATION`(適応制御)を`'OUI'`にすることで誤差に基づく自動調整が可能です。商用ソフトのようなグラフィカルなガイドはないため、理論を理解し、マニュアルを読み込んでパラメータを決める必要があり、習熟に時間がかかります。
トラブルシューティング
時間刻みに起因する典型的なエラーと対策
陽解法で解析を走らせたら、「Negative Volume」や「Hourglass」のエラーで止まってしまいます。これは時間刻みが大きすぎるのが原因ですか?
「Negative Volume」は、時間刻みが大きすぎて1ステップで要素が激しく変形し、ひしゃげて裏返ってしまう(ヤコビアンが負になる)ことで発生する典型的なエラーです。まずは時間刻みを半分にしてみてください。「Hourglass」は異なる原因で、特に減積分要素で発生します。要素の変形モードの中に、ひずみエネルギーを生まない「ゼロエネルギー・モード」があり、これが暴走する現象です。時間刻みが大きいとこのモードの成長を抑えきれず、エラーにつながることがあります。対策は時間刻みの短縮に加え、Hourglass制御の剛性(例えばLS-DYNAの`IHQ`パラメータ)を強くすることです。
陰解法の非線形静解析で、「収束しません」というエラーが出ます。時間刻み(荷重増分)を小さくすれば必ず収束するんですか?
多くの場合、有効ですが、万能ではありません。荷重増分を小さくすると、解の変化がより線形に近づき、ニュートン・ラフソン法が収束しやすくなります。しかし、接触や材料の不連続性が極めて強い問題では、いくら刻みを小さくしても収束しない「極限」があります。その場合の対策は、1) 接触剛性を適切に調整する、2) 減衰(ダンピング)を導入した動的陰解法(Abaqus/Standardの`*DYNAMIC`)に切り替える、3) 「リラクセーション」や「線探索」などの高度な収束補助オプションを有効にする、などが挙げられます。Ansysでは`SOLCONTROL`を`ON`にすると、これらの設定が自動化され、収束性が向上します。
計算は最後まで走るのですが、結果の応力や変形が明らかに物理的に不自然な「ノイズ」だらけです。これも時間刻みが原因になり得ますか?
はい、特に動的解析で高周波の数値ノイズが発生している可能性が高いです。陽解法では、時間刻みが粗すぎると高周波の物理モードを正しく伝播させられず、それがノイズとして現れます。陰解法では、先述した数値減衰が低周波成分まで過剰に減衰させ、結果が「鈍った」感じになることがあります。対策は、まず時間刻みを細かくして再計算し、ノイズが減るか確認します。それでもダメな場合は、結果の後処理でローパスフィルタをかける方法もあります。例えば、自動車衝突の評価規格SAE J211/ISO 6487では、チャンネルフィルタクラス(CFC)を指定してデータ処理することが義務付けられており、これは数値ノイズを除去する目的も含まれています。
関連トピック
なった
詳しく
報告