デバッグガイド

OptiStructの実行時によく発生するエラーを特定し、解決するためのガイド。

基本的なチェック

生じている問題の解決に役立つOptiStructの問題の予備的レベルのデバッグ。

最新バージョンのOptiStructを使用することが常に推奨されます。

以下に、デバッグプロセスで役立ついくつかの基本的なチェックを示します。
チェック 対処法
チェックランを使用して構文上の問題がないか確認します。 OptiStructの実行時に、実行オプション-checkを使用します。
HyperMeshモデルチェックツールで問題がないか確認します。 HyperMeshの、Tools > Model Checker
剛体モードの数が自由な成分の数と一致しているかどうかを確認します。 フリー-フリーの(SPCなし)ノーマルモード解析を実行します。
モデル内で単位が整合していることを確認します。 これは、質量(.outファイル)または他の結果ファイルから確認できます。
チェックを実行して、想定外の拘束を検出します。 GROUNDCHECKエントリを追加して、テストに合格しない要素がないか確認します。
チェックを実行して、無質量メカニズムを明らかにします。 MECHCHECKエントリを追加します。
モデル内の力バランスの有無を確認します。 .outファイルでSPCFからの出力を確認します。

非線形静解析

さまざまなタイプの収束問題のデバッグ方法。

一般的な収束

チェック 対処法
未収束の結果をチェックして、何が問題なのかを確認します。 NLOUTエントリをSVNONCNV=YESと組み合わせて使用します。
増分結果を確認します。 NLMONエントリを追加します。

os_out_file_parser.tclを使用して、HyperViewで問題のあるサブケースをデバッグします。

塑性と摩擦を含む微小変位モデルに対してラインサーチ法を使用します。 これらのパラメータはNLPARMエントリで指定できます。
異なるソルバーを使用します。 これは、SOLVTYPエントリを使用して制御できます。
接触、塑性、プリテンションの組み合わせに関する問題の場合。 PARAM, KTPLASTを使用します。
スナップスルー / バック問題の場合は、変位 / 荷重制御法または弧長増分法を使用します。 弧長増分法は、NLPCIエントリを使用して定義できます。
収束が発生しているかどうかを確認します。 荷重を減らします。
MUMPSの因子分解エラーの場合は、異なる因子分解を試してください。これは、.statファイル内のFCTRIZモジュールで確認できます。 因子分解は、SOLVTYPエントリのORDMを使用して制御できます。

接触あり

チェック 対処法
接触を1つずつFREEZEに切り替えて、どのタイミングで収束が発生するのかを確認します。
メイン(旧称“マスター”)とセカンダリ(旧称“スレーブ”)の選択を確認します。
  • メッシュがより細かい方のサーフェスをセカンダリとして選択し、他方をメインとして選択します。
  • より小さい方のサーフェスをセカンダリとして選択し、他方をメインとして選択します。
  • より柔らかい方のサーフェスをセカンダリとして選択し、他方をメインとして選択します。
接触作成に関わる節点と要素を確認します。
  • S2Sの場合: CONTPRM, CONTGRID, YES
  • N2Sの場合:CONTPRM, CONTGAP, YESおよびGAPPRM, HMGAPST, YES
接触の安定化が適用されているかどうかを確認します。

安定化の量が正しいことを確認します。

  • PARAM, EXPERTNL, CNTSTBまたはCNTSTB(バルクデータおよびサブケース情報エントリ)
  • それぞれは特定の状況のみで効果を発揮するため、CNTSTBリファレンスガイドを参照して、どちらを現在のモデルで使用すべきなのかを確認してください。
  • CNTSTB上の減衰が小さすぎる場合は、大きな効果はありません。
  • 減衰が大きすぎる場合は、スライディングが防止されるため、サブケースのほぼ最後まで”完全な”接触と扱われる可能性があります。その後、人工接触減衰が終わりに向かって低下するために、収束に失敗します。
  • AdjustまたはClearanceを試してください。
  • N2Sが使用されていた場合は、S2Sを試してください(その逆パターンも同様)。

材料の非線形性あり

チェック 対処法
線形材料モデルで問題が解決されたかどうかを確認します。 解決された場合は、その問題の原因は非線形材料の定義に関係する可能性があります。
解析が“テーブルの範囲を越えた”場合は、材料データテーブル定義を確認します。
  • デフォルトでは、OptiStructはテーブル範囲を越えて外挿します。
  • TABLE定義でFLATオプションを試し、範囲を越えた曲線を平坦化してください。
超弾性材料モデルの場合は、1つの要素を使用してテストを実行し、実験データを直接使用する代わりに、実験データに一致するように材料パラメータを調整します。

大変位非線形静解析

チェック 対処法
微小変位解析で問題が解決されたかどうかを確認します。 解決された場合は、その問題の原因は大変位解析の設定である可能性があります。
現在より小さい時間増分で、荷重をゆっくり適用してみてください。 NLADAPTエントリでDTMAXを使用します。
ニュートン-ラプソン法での線形外挿をアクティブにします。

これにより、以前の荷重増分からの変位値が現在の荷重増分の初期推定として使用されます。

NLADAPTエントリでEXTRA, LINEARを使用します。
非線形過渡解析で、問題が適切な時間で実行されるかどうかを確認します。

動解析

ノーマルモード解析

チェック 対処法
  • 固有値ソルバーをAMSES(EIGRA)からLANCZOS(EIGRL)に(およびその逆に)切り替えてみてください(この結果としてモデル化の問題が明らかになる場合があります)。
  • AMSES/AMLSは、無質量メカニズムを自動的に検出するのに役立ちます。これらによって、それらの自由度も出力および拘束されます。
PARAM, AMLSエントリを使用します。
LANCZOSを使用して拘束を強制的に削減します。 EIGRLを使用します。
EIGRL/EIGRAカード上の上限が適切かどうかを確認します。  
モード数(ND)は少ないがV2が大きいモデルは、モードが多すぎるために引き続きエラーになる可能性があります。 現在より小さい上限を試してください(V2、例:10Hz)。

周波数応答解析(FRA)

チェック 対処法
ノーマルモード解析を実行し、剛体モードの有無を確認します。 PARAM, AMLSエントリを使用します。
直接法およびモーダルFRAを実行します。

モデルが大きすぎて直接法で実行できない場合は、数個の加振周波数のみについて実行し、確認を行ってください。

モデルが適切な場合は、これらの結果は一致するはずです。
適用された減衰がモデル内で十分かどうかを確認します。  
RESVECが正しく生成されているかどうかを確認し、モデル化に関する問題を検出します。 たとえば、モデル内で使用されているDAREAと同じ数のRESVECが存在している必要があります。
モード空間で加振周波数がカバーされているかどうかを確認します。 最大加振周波数×1.5以上という空間を使用することが推奨されます。
疑わしいERP結果については、まず速度が正しく示されていることを確認します。  
大量のメモリが必要な場合や実行時間が長い場合は、要求されている出力が多すぎないか確認します。 PEAKOUTを適宜使用します。

伝導解析

チェック 対処法
ノーマルモード解析を実行し、剛体モードの有無を確認します。 PARAM, AMLSエントリを使用します。
直接法およびモーダルFRAを実行します。

モデルが大きすぎて直接法で実行できない場合は、数個の加振周波数のみについて実行し、確認を行ってください。

モデルが適切な場合は、これらの結果は一致するはずです。
適用された減衰がモデル内で十分かどうかを確認します。  
RESVECが正しく生成されているかどうかを確認し、モデル化に関する問題を検出します。 たとえば、モデル内で使用されているDAREAと同じ数のRESVECが存在している必要があります。
PARAM, ENFMOTNによって想定された結果が得られるかどうかを確認します。  
大量のメモリが必要な場合や実行時間が長い場合は、要求されている出力が多すぎないか確認します。 PEAKOUTを適宜使用します。

使用されている時間ステップが適切かどうかを確認します。

最適化問題

ここでは、最適化タイプの問題のデバッグ方法を説明します。

一般的な最適化

チェック 対処法
現在より小さいムーブリミットを試し、最適解を通り過ぎたり、非現実的な設計に移行することを避けてください。 DOPTPRM, DELSHPまたはDELSIZDELTOPエントリを使用します。
異なる最適化エンジンを試します。 DOPTPRM, OPTMETHを使用します。
応答の保持数を制御して、メモリとCPUの要件が高まることを回避します。 DSCREENエントリを使用します。
時期尚早な収束の場合。
  • 最適化が反復計算の最大数に達したかどうかを確認します。
  • 目的関数のトレランスを小さくします。
  • DOPTPRM, DESMAXを現在より大きい値に設定します。
  • DOPTPRM, OBJTOLエントリを使用します。
座屈モードおよびノーマルモードの最適化で、収束が不安定で低速な場合。 制約条件を追加して、より多くのモードが含まれるようにします。これにより、モードの切り替えが回避されます。

トポロジー最適化

チェック 対処法
過度の制約条件違反が生じていないか確認します。 モデル内の制限寸法を制御するには、DTPLエントリでMINDIM/MAXDIM/MINGAPを使用します。
最適化が完全に収束するかどうか、すなわち、.outファイル内に3つの“2nd satisfied convergence”が含まれているかを確認します。 -
材料の割合の初期値を変更してみます。 DOPTPRM, MATINITを使用します。
製造性制約条件が存在する場合。 製造性制約条件は制約が過度になる可能性があるため、これらを除去してみてください。
分離可能な凸近似に基づいた2重最適化エンジンを使用したモデルで、解析の安定性を向上させてみます。 DOPTPRM, OPTMETH, DUAL, 2を使用します。
最適化問題の場合、OptiStructから“error 703 - OS failed to find a solution at current iteration”というエラーが発行されます。 制約条件の数を減らしてみます。たとえば、変位制約条件の代わりに、volFrac制約条件でのコンプライアンスの最小化を使用します。
離散トポロジー最適化の定式化を使用してみます。 DOPTPRM, TOPDISC, YESを使用します。

寸法最適化

チェック 対処法
実現不可能な設計の場合。 異なる開始点を試します。
グローバルサーチオプションを使用します。 DGLOBALエントリを使用します。
1D最適化の場合、内部制約条件を制御することで、問題のサイズを小さくしてみます。 DOPTPRM, BARCONを使用します。
離散設計変数の場合は、制御オプションを使用します。 DOPTPRM, DDVOPT, 2または3を使用します。
大規模最適化アルゴリズムが機能するかどうかを確認します。 DOPTPRM, OPTMETH, BIGOPTを使用します。

形状最適化

チェック 対処法
実現不可能な設計の場合 異なる開始点を試します。
グローバルサーチオプションを使用します。 DGLOBALエントリを使用します。
代替の形状最適化アルゴリズムを試します。 DOPTPRM, SHAPEOPT, 2を使用します。
最適化で要素品質エラーが発生する場合は、リメッシングプロセスを制御します。 DOPTPRM, REMESHを使用します。

フリー形状最適化

チェック 対処法
設計節点の分割を制御します。 DSHAPEエントリでSPLITオプションを使用します。
追加のDSHAPEエントリを手動で作成し、対象節点を減らしてみます。  

トポグラフィー最適化

チェック 対処法
節点の移動を制御する変数の初期値として、ゼロ以外の値を試します。 DTPGエントリのBOUNDS継続行上のINITフィールドを使用します。
数個の節点の座標を面外方向に位置調整することで、これらの節点に摂動を与えてみます。  
パターンの繰り返しやグループ化を伴わない最適化を試します。  

ラティス構造最適化

チェック 対処法
異なる空隙率を試し、作成されるバーの数を制御します。 DOPTPRM, POROSITYを使用します。
2つ目のフェーズで応力の制約条件が満たされない場合。 応力の制約条件を1つ目のフェーズに含めてみます。
ビーム生成の下限を確認します。 DOPTPRM, LATLBを使用します。
中間密度要素に適用されるペナルティが欠落しているか低いことが原因。 ステージ1で最適化設定を変更します(このことはPorosityがHighおよびMedの場合に想定されている可能性があるため)。
リメッシングに関する問題の場合。 スムージングを試します。

マルチモデル最適化(MMO)

チェック 対処法
モデル間のマッピングが機能していない場合。 設計変数IDがモデル全体にわたって一貫しているかどうかを確認します
トポロジー最適化でのマッピング問題については、マッピング設定を確認します。 DTPLエントリのCOORDSCALEの値を確認します。

コメント

  1. MMO実行と単一実行では結果が異なる場合があります。MMOでのトポロジー最適化では、製造性制約条件が有効になり、マッピングが可能になります。個々のモデルに製造性制約条件が設定されていない場合、これによって違いが生じる可能性があります。

MPI、DDM、およびMMOの問題

チェック 対処法
MPIテスターを実行して問題を特定します。 実行オプション-testmpiを使用します。
MPI設定を確認します。 詳細については、ユーザーズガイドOptiStruct SPMDをご参照ください。
DDMで問題が発生した場合は、LDM解析が正常に実行されるかどうかを確認してください。  

コメント

  1. シリアルをDDM実行と比較する際は、シリアルにはBCSソルバーが使用される場合があるのに対して、DDMにはデフォルトでMUMPSが使用されることに留意してください。

複合材問題

ここでは、複合材の解析および最適化の問題に対するデバッグ方法を説明します。

チェック 対処法
HyperMeshで材料の向きとシェルの法線を確認します。 最適化の設定については、OS-T:航空機底部複合材フェアリングの最適化主導設計をご参照ください。
HyperMeshでシェルをソリッドとして可視化します。 -
DDMで問題が発生した場合は、LDM解析が正常に実行されるかどうかを確認してください。 -
MUMPSの因子分解エラーの場合は、異なる因子分解を試してください。これは、.statファイル内のFCTRIZモジュールで確認できます。 因子分解は、SOLVTYPエントリのORDMを使用して制御できます。
製造性制約条件を使用した最適化の場合。 現在より少ない製造性制約条件を使用して実行し、設定が過度に制約されていないか確認します。
最適化の場合は、作成されたプライをクリーンアップして分割してみてください。 OSSMOOTHを使用します。

座屈問題

チェック 対処法
シェル要素の場合は、プレートの幾何剛性においてタイプと次数または近似手法を定義してみてください。 PARAM, SHPBCKOR, 2を使用します。