周波数応答解析の逆FFTにより時刻歴波形を算出するスクリプト
Overview
本記事では、Altair OptiStructの周波数応答解析結果をAltair Composeによる逆FFT処理により時刻歴波形に変換するスクリプトを紹介します。
また、求めた時刻歴波形がAltair MotionSolveによる過渡応答解析結果と一致することを確認します。
本手法の応用例としては、OptiStructのDesign Sensitivity Analysis機能を用いて、時刻歴波形を応答とした大量の設計変数の最適化などが考えられます。
Pre-Requisite
Altair MotionSolveとAltair OptiStructそれぞれの3自由度のばねマスモデルのサンプルを用意しました。
Altair Composeの変換スクリプトを含めたファイル一式はこちらよりダウンロードお願いいたします。
Altair Composeのスクリプトは汎用性を持たせているため、本記事の3自由度モデル以外にも適用可能です。
Usage/Installation Instructions
MotionSolveモデルの説明
ファイル:ms_3dof.mdl
剛体ボディをブッシュで接続した3自由度モデルです。
底面にインパルスの強制変位を与えると、各ボディが振動します。
この現象をAltair OptiStructの周波数応答解析+逆FFTで再現したいと思います。
時刻歴入力->周波数入力変換スクリプト
まずは、Altair OptiStruct周波数応答解析用の入力を作成します。
時刻歴波形をFFT処理することで作成できます。
まずは、事前に時刻歴波形をFFT処理しておきます。詳細は下記ご参照ください。
MotionSolveの時刻歴結果すべてをFFT処理するスクリプト
stc_abf2h3d_fft_rev3.0.omlを用いて、ms_3dof.abfをms_3dof_fft.h3dに変換します。
本記事では変換したh3dファイルをOptiStructのbulkフォーマットに変換するスクリプトを用意しています。これにより、周波数変換した波形をOptiStructの入力として使用できます。
Altair Composeでstc_h3d2bulk_rev1.0.omlを開きます。
7行目でMotionSolveの結果をfft処理したh3dファイルを指定します。
10~12行目で強制変位か荷重入力かを指定します。
強制変位の場合はSPCD、荷重入力の場合はDAREAを有効にします。
また、h3dファイルから抽出するtypeを指定します。
14~16行目で強制変位or荷重を適用する節点IDを指定します。ベクトル定義で複数指定することも可能です。H3dファイルのデータの順番と対応づける必要があります。
開始をクリックすると、変換されたOptiStruct入力ファイルがファイル名+_freqload.femで出力されます。
_freqload.fem には、SPCD、TABLED1、RLOAD1およびDLOADカードが含まれます。
OptiStructモデルの説明
ファイル:os_3dof_frf.fem
MotionSolveと等価なモデルです。CONM2、CBUSH、RBE2などで構成しています。
先の_freqload.femをインポートした状態で、入力も定義済みです。
底面に強制変位を与えると、各ボディが振動します。
逆FFTによる時刻歴波形算出
OptiStructの周波数応答解析結果を逆FFTにより時刻歴波形に変換します。
Altair Composeでstc_os2h3d_ifft_rev2.0.omlを開きます。
11行目でOptiStruct周波数応答解析結果のh3dファイルを指定します。
13行目で周波数応答解析結果のサブケースを指定します。今回1は固有値計算で、2が周波数応答解析ですので、2となります。
開始をクリックすると、逆FFT処理した時刻歴データがファイル名+_his.h3dで出力されます。
また、本スクリプトでは入力ファイルの周波数データは0Hzを含まず、周波数の数は偶数NTを仮定しています。
折り返し処理を行いますと、時系列データは2*NT+1で奇数となります。
出力された_his.h3dをHyperGraphで開くことで、OptiStructの周波数応答を逆FFT処理した時刻歴波形を確認できます。
MotionSolve結果と比較することで、両者が一致することを確認できます。
Post-Requisite
使用製品:Altair Compose、Altair MotionSolve/MotionView、Altair OptiStruct
よくあるエンジニアからの質問はこちら