PR

OpenVSPでFEAモデルを作成する

OpenVSPで翼の変形を解析するためのFEAモデルを作成する

スポンサーリンク

はじめに

OpenVSPでスキンの変形を解析するためのFEAモデルを作成する

最終的にはこんな感じのものができる

ここで作成した.inpファイルに、別途作成するpythonプログラムで分布荷重を書き加えて、CalculiXでFEMの解析を行う

mtkbirdman.com/OpenVSP/FEA at master · mtkbirdman/mtkbirdman.com
mtk_birdman's blog @mtk_birdman. Contribute to mtkbirdman/mtkbirdman.com development by creating an account on GitHub.

↓公式ドキュメント

OpenVSP
OpenVSP Ground School – Tutorials, training, and best practices for designing and analyzing with Open Vehicle Sketch Pad

↓インストール

↓参考リンク

feamesh [OpenVSP]

https://openvsp.org/wiki/lib/exe/fetch.php?media=workshop20:openvsp_structures_modeling.pdf

↓参考文献

それではいってみよう

OpenVSPは完全手動保存なので、とにかくこまめにCtrl+Sを推奨

翼のモデルを作る

OpenVSPの数値はすべて無次元になっているので、モデル作成者自身が好きな単位系を決めて、それに統一すればいい

今回は以下の単位を採用する

  • 重さ:kg
  • 長さ:m
  • 時間:s
  • 力:N

OpenVSPを開く

Geom BrowserWingを選択し、Addをクリックする

デフォルトの翼のモデル(WingGeom)が追加される

今回は半裁モデルを作成するので、XFormのタブに移動して、Symmetry>Planar>XZのチェックを外す

Planのタブに移動して、Spanを2.6、Chordを1.0に設定する

Sectのタブに移動してRoot Cを1.0、Tip Cを1.0、Sweepを0.0に設定する

Airfoilのタブに移動して、T/Cを0.12、Camberを0.04、CamberLocを0.4に設定する(ようするにNACA4412)

Airfoil Sectionの数字を切り替えて、RootとTip両方に設定する

(翼の端部が開いたモデルが欲しい場合は、Planのタブに移動して、Root Cap TypeTip Cap Typeを両方ともNoneにする)

ここまででWingGeomの作成は完了である

OpenVSPは完全手動保存なので、とにかくこまめにCtrl+Sを推奨

FEAのモードに切り替える

メニューからAnalysis>Structure>FEA Structureをクリックする

FEA Structureのウィンドウが開く

Structureのタブに移動して、Geomで先程作ったWingGeomが選択されていることを確認し、Add Structureをクリックする

FEA Output Unit SystemSI (kg, m)を選択する

WingGeomの寸法は無次元なので、ここで単位を指定してあげる必要がある

Partのタブに移動すると、Skinというパーツが追加されている

これはWingGeomからFEMモデルを作成するとデフォルトで追加されるパーツで、これをベースに、いろいろなパーツを足してモデルを作成していく

Skinを選択してEDITをクリックすると、パーツの編集ウィンドウが開く

OpenVSPは完全手動保存なので、とにかくこまめにCtrl+Sを推奨

Materialを追加する

Materialのタブに移動して、Add Materialをクリックし、新しい材料を追加する

Nameをわかりやすいものに変更し、Inputに密度、ヤング率を入力する

今回はリブとプランクに30倍発泡スチロールを設定するので、EPS30という名前でMaterialを追加した

CFRPもデフォルトでいくつか用意されているが、新たに追加した

バルサについてはデフォルトのMaterialを使用することにする

OpenVSPは完全手動保存なので、とにかくこまめにCtrl+Sを推奨

ShellのPropertyを追加する

Propertyのタブに移動して、Shell要素やBeam要素の設定を行う

今回はBeam要素は使わない(使い方がわからない)ので、すでに登録されているDefaultBeamというプロパティはDelete Propertyで削除する

DefaultShellを選択し、Property NameMaterialLength UnitThicknessを設定する

プロパティを追加したい場合はAdd Propertyで行う

今回は以下のプロパティを設定した

NameTypeMaterialThickness [m]備考
EPS_RibShellEPS300.008リブ
EPS_SkinShellEPS300.002プランク
CFRP_SparShellCFRP0.00141主桁、(90,0,±45)sの疑似等方性積層
TE_CAPShellBalsa LTR0.001後縁材

OpenVSPは完全手動保存なので、とにかくこまめにCtrl+Sを推奨

リブを追加する

Partタブに移動して、TypeRibArrayを選び、Addをクリックする

Edit PartをクリックするとFEA Part Editのウィンドウが開くので、以下のように設定する(スパン方向位置 0.1 [m] から 2.6 [m] まで 0.2 [m] 間隔でリブを設定)

GeneralShow/Hideで表示を切り替えることができる

追加後はこんな感じ

スキンの端にリブを配置するとメッシュ作成がバグる

対処方法は以下の通り

  • スキンの端から少し離れた場所にリブを置いて、リブからスキン端までのメッシュを消去する(この記事のやり方)
  • スキンの端にSubsurfaceのLineを追加して、翼端のCAPをリブとして代用する(リブのPropertyはSkinと同じになる)
https://openvsp.org/wiki/doku.php?id=feamesh

OpenVSPは完全手動保存なので、とにかくこまめにCtrl+Sを推奨

スパーを追加する

Partタブに移動して、TypeSparを選び、Addをクリックする

Edit PartをクリックするとFEA Part Editのウィンドウが開くので、以下のように設定する

なお、今回は鳥コン滑空機のCFRPパイプを2本の桁とスキンからなるボックス桁で置き換え、断面二次モーメントおよびねじれ定数が同じになるように寸法を決定した

追加後はこんな感じ

Subsurfaceを追加する

デフォルトのSkinをプランク、ボックス桁上下面、フィルム、後縁材に分割し、端のリブより外側のSkinのメッシュを削除するためにSubsurfaceを追加していく

後縁材のSubsurfaceを追加する

Partタブに移動して、TypeRectangleを選び、Addをクリックする

Edit PartをクリックするとFEA Part Editのウィンドウが開くので、以下のように設定する

追加後はこんな感じ

フィルムのSubsurfaceを追加する

Partタブに移動して、TypeRectangleを選び、Addをクリックする

Edit PartをクリックするとFEA Part Editのウィンドウが開くので、以下のように設定する

ElementsDelete Shellを選択することで、Subsurface内のメッシュを削除している

上側のスキンのW Lengthは数値をベタ打ちしたが、下面側のスキンのW Lengthは始点がSpar_Rearと一致するようにスライダーを用いて数値を微調整した

Sparの位置設定に用いたLocationはコードラインに沿った距離だが、W Lengthは翼表面の曲線に沿った距離なので、きれいな数値で一致しない)

綺麗なメッシュを作成するために、W Lengthの位置調整はかなり慎重にやる必要がある

F5をおして真上からの視点にし、調整するにつれて拡大率を上げていき、限界まで拡大した状態で線がぴったり一致して見えるくらいに調整する

ちょっと拡大
限界まで拡大

スライダーは、両側の>をクリックするとレンジを細かくしたり粗くしたりすることが可能になる(2~3回ずつクリックするといい)

追加後はこんな感じ

桁の上下面のSubsurfaceを追加する

やり方はフィルムのときとほぼ同じ

Partタブに移動して、TypeRectangleを選び、Addをクリックする

Edit PartをクリックするとFEA Part Editのウィンドウが開くので、以下のように設定する

追加後はこんな感じ

端のリブから外側のスキンを削除する

やり方はフィルムのときとほぼ同じ

Partタブに移動して、TypeRectangleを選び、Addをクリックする

Edit PartをクリックするとFEA Part Editのウィンドウが開くので、以下のように設定する

ElementsDelete Shellを選択することで、Subsurface内のメッシュを削除している

U LengthについてはフィルムのSubsurfaceと同様、スライダーと限界ズームを使って微調整している


追加後はこんな感じ

Subsurfaceの順番を並び替える

Partタブに移動する

SubsurfaceはFEA Part Selectionの下から順に上書き適用されていくので、翼根と翼端のメッシュの削除を行うSubsurfaceはフィルムと後縁材のSubsurfaceよりも上にする必要がある

FEA Part SelectionRoot_TrimTip_Trimを選択し、左側の▲▼で順序を変えることができる

OpenVSPは完全手動保存なので、とにかくこまめにCtrl+Sを推奨

境界条件指定用の参照点を追加する

今回は翼根の3点を用いて境界条件を設定するので、そのための参照点を追加する

Partタブに移動して、TypeFiexed Pointを選び、Addをクリックする

Edit PartをクリックするとFEA Part Editのウィンドウが開くので、以下のように設定する

Abs XAbs Yは数値のベタ打ちだが、Abs Zは例のごとくスライダーと限界ズームを使って微調整している

Type>On PartU LocationW Locationを使うと、OpenVSP上ではいい感じに見えるが書き出したメッシュがバグる)

追加後はこんな感じ

OpenVSPは完全手動保存なので、とにかくこまめにCtrl+Sを推奨

境界条件を追加する

追加したFixed Pointに対して境界条件を設定する

BCsタブに移動して、TypePartを選び、追加したFixed Pointを選択してAdd BCをクリックする

Degrees Of Freedomの中から、固定したい自由度にチェックを入れる

今回は以下のように設定した

OpenVSPは完全手動保存なので、とにかくこまめにCtrl+Sを推奨

メッシュを作成して出力する

Meshのタブに移動し、メッシュを作成して出力する

cfdmesh [OpenVSP]

ウィンドウの1番下のIntersect and Meshをクリックするとその時点の設定でのメッシュが作成される

メッシュを細かくしすぎるとバグるのでほどほどに

ステップ1: 最大エッジ長の設定

  1. Mesh Controlで、Max Edge Lenを最初に調整する
  2. Min Edge LenMax Gapを非常に大きな値に設定し、Num Circle Segmentsを非常に低い値に設定する(これですべてのセルの大きさがMax Edge Lenの値で決定される)
  3. メッシュの最小解像度が良い感じになるまで、Max Edge Lenを調整する(1番粗くていい場所のメッシュの大きさを決める)

今回はリブ区間0.2mが10分割されるよう、Max Edge LenAbsで0.02に設定した

メッシュが多いとシンプルに計算に時間がかかるので、最初はこれくらいの粗さで試計算するのがいいかもしれない

ステップ3: 最小エッジ長の設定

  1. Min Edge Lenを設定する(一般的にはMax Edge Lenの10〜20倍小さい値に設定する)
  2. Min Edge Lenを調整して、メッシュの細部が必要な解像度を持つようにする(今度は逆にメッシュが1番細かくなってほしいところの細かさを設定する)

今回はBest Practiceに従ってMax Edge Lenの20倍小さい値にするため、Min Edge LenRelで0.05に設定した(まだMax GapNum Circle Segmentsをいじっていないのでメッシュの見た目は変わらない)

ステップ4: 許容最大ギャップと円周セグメント数の設定

  1. Max GapまたはNum Circle Segmentsのどちらか一方を設定する。どちらも「滑らかに定義されたモデルと角ばったメッシュとの間の誤差の許容値」を設定するパラメータであり、お互いに同じことを設定できるので、個人の好みに応じてどちらかを選ぶ
  2. Max Gapはモデルとメッシュ間の最大許容誤差の絶対値を設定する(直観的なパラメータだが、絶対的な値なのでモデルのスケールに応じて都度設定しなおす必要がある)
  3. Num Circle Segmentsは曲率のある面を何分割のメッシュとしてモデル化するかを設定する(相対的な値なのでモデルのスケールによらないが、直観的には分かりにくい)
  4. 両者のパラメータは互いに干渉してしまうので、選ばなかったオプションの値を、非常に大きな値(Max Gapの場合)または非常に小さな値(Num Circle Segmentsの場合)に設定して、効果を無効にする

今回はNum Circle Segmentsを16に設定してみた

Before&After

Num Circle Segment = 0
Num Circle Segment = 32

ステップ5: 成長率制限の設定

  1. Growth Ratioを調整して、メッシュの三角形がどれだけ速く成長できるかを設定する
  2. このパラメーターは、他のパラメーターによって制限されない場合に適用され、複雑な部分から離れる際のメッシュの滑らかな成長を制御する

よくわからないので今回はデフォルトの1.3のままにしておく

ステップ6: メッシュの生成とエクスポート

  1. すべての設定が完了したら、Intersect and Meshをクリックしてメッシュを生成する
  2. 出力ウィンドウでメッシュ生成の進行状況を確認し、エラーや警告メッセージがないかチェックする
  3. FEMタブに移動し、FEM Exportで出力したいファイルの形式を選択して、Meshタブに戻りExport FEMをクリックすれば、今回作成したモデルが.vsp3ファイルがあるのと同じディレクトリに出力される

Subsurfaceの設定をするときのスライダーの微調整が甘いと、メッシュを生成したときに下の画像の右側に示すような細長いメッシュが生成されてしまう

CalculixでFEM解析をする際にエラーとしてはじかれてしまうので注意

良いメッシュ
悪いメッシュ

OpenVSPは完全手動保存なので、とにかくこまめにCtrl+Sを推奨

以上

おわりに

OpenVSPで翼の変形を解析するためのFEAモデルを作成した

ここで作成したモデルを使って、CalculixでFEMの解析を行う

↓関連記事

CalcliXOpenVSP
質問・感想・意見などあれば気軽にTwitterのDMかコメントお願いします!
スポンサーリンク

コメント