Salome-Meca2016.1周波数応答解析

提供: オープンCAEWiki@関西 OpenCAE Wiki@Kansai
移動先: 案内検索

あらかじめSalome-Mecaで作っておいた固有値解析をベースにする。 (サンプルファイルはこちら→ SM2016_Modal_Sample )

メッシュは荒いが円柱のつもりで、片側の面(Group1)を完全拘束している。

Fig20180130-1.png

固有値解析結果は1、2番面のモードがXY平面に倒れこむ1次モードで約0.16Hz、3、4番目のモードがXY平面に倒れこむ2次モードで約0.9HZだった。(5番目のモードは別モード)

Fig20180130-2.png


[固有値解析]のcommファイルを書き換えて、[周波数応答解析]のインプットにする。 変更点を以下にまとめる。

①加振用の荷重を定義する(Group2にX方向のFACE_FORCEを追加) 固有値解析(元インプット)(python)

BLOCAGE=AFFE_CHAR_MECA(MODELE=MODELE,
                       DDL_IMPO=(
                           _F(GROUP_MA='Group_1',
                              DX=0.0,
                              DY=0.0,
                              DZ=0.0,),
                           ),
                       );

周波数応答解析(python)

BLOCAGE=AFFE_CHAR_MECA(MODELE=MODELE,
                       DDL_IMPO=_F(GROUP_MA='Group_1',
                                   DX=0.0,
                                   DY=0.0,
                                   DZ=0.0,),
                       FORCE_FACE=_F(GROUP_MA='Group_2',
                                     FX=1.0,),);

②[固有値解析]の設定を[周波数応答解析]の設定へ 固有値解析(元インプット)(python)

# 5つ分のモードを抽出
MODES=CALC_MODES(MATR_RIGI=RIGIDITE,
                 MATR_MASS=MASSE,
                 OPTION='PLUS_PETITE',
                 CALC_FREQ=_F(
                              NMAX_FREQ=5,)
                 );

周波数応答解析(python)

# コメントアウト
##MODES=CALC_MODES(
##OPTION='PLUS_PETITE',
##MATR_RIGI=RIGIDITE,
##MATR_MASS=MASSE,
##
##CALC_FREQ=_F(NMAX_FREQ=5,),
##);
##Fin Commentaire

# 追加した荷重を
vent=CALC_VECT_ELEM(OPTION='CHAR_MECA',
                    CHARGE=BLOCAGE,);
vectass=ASSE_VECTEUR(VECT_ELEM=vent,
                     NUME_DDL=NUMEDDL,);
# 周波数応答の範囲を指定
# 0Hzから1Hzまで0.01Hz刻みで掃引
Lfreq=DEFI_LIST_REEL(DEBUT=0.00,
                     INTERVALLE=_F(JUSQU_A=1.0,
                                   PAS=0.01,),);
# 周波数応答解析の設定
dynaharm=DYNA_LINE_HARM(MATR_MASS=MASSE,
                        MATR_RIGI=RIGIDITE,
                        LIST_FREQ=Lfreq,
                        EXCIT=_F(VECT_ASSE=vectass,
                                 COEF_MULT=1.0,),);

③計算結果の出力を定義(中身は変わっていない) 固有値解析(元インプット)(python)

MODES=CALC_CHAMP(reuse=MODES,
                 RESULTAT=MODES,
                 CONTRAINTE=('SIEF_ELGA'),);

周波数応答解析(python)

dynaharm=CALC_CHAMP(reuse =dynaharm,
                    RESULTAT=dynaharm,
                    CONTRAINTE='SIEF_ELGA',);

④計算結果の出力 ここは調査中。通常の静解析などと同じ出力だとrmedファイルが作られない。下記サイトによるとPARTIEでREELとIMAGを指定する必要があるらしい。IMAGはおそらく”Imaginary”なのでREELが実数結果を指していると考えられる。

固有値解析(元インプット)(python)

IMPR_RESU(FORMAT='MED',
          RESU=_F(RESULTAT=dynaharm,
                  NOM_CHAM='ACCE',
                  NOEUD='N196',),);
          RESU=_F(RESULTAT=MODES,),);

周波数応答解析(python)

IMPR_RESU(FORMAT='MED', 
          UNITE=80,
          RESU=_F(MAILLAGE=MAIL,
                  RESULTAT=dynaharm,
                  PARTIE='REEL',
                  NOM_CHAM='DEPL',),);
IMPR_RESU(FORMAT='MED',
          UNITE=81,
          RESU=_F(MAILLAGE=MAIL,
                  RESULTAT=dynaharm,
                  PARTIE='IMAG',
                  NOM_CHAM='DEPL',),);

ParaVisでREELの方の計算結果を読み込み、Plot Section Over Timeを使い、X方向の変位とTime(この場合は周波数に相当)でグラフを描画する。 [固有値解析]で求めたXY方向の1次モードと2次モードに対応する位置でピークが出ていることが確認できる。

Fig20180130-3.png

大体あっていそう。 もう少しきちんとしたモデルで検証していきたい。

今回作った[周波数応答解析]のインプットは以下ページからDLできる。

SM2016_Harm_Sample