OpenVSPで翼の変形を解析するためのFEAモデルを作成する
はじめに
OpenVSPでスキンの変形を解析するためのFEAモデルを作成する
最終的にはこんな感じのものができる

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

↓公式ドキュメント
↓インストール
↓参考リンク
https://openvsp.org/wiki/lib/exe/fetch.php?media=workshop20:openvsp_structures_modeling.pdf
↓参考文献
それではいってみよう
翼のモデルを作る
OpenVSPを開く

Geom BrowserでWingを選択し、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 TypeとTip Cap Typeを両方ともNoneにする)
ここまででWingGeomの作成は完了である

FEAのモードに切り替える
メニューからAnalysis>Structure>FEA Structureをクリックする

FEA Structureのウィンドウが開く
Structureのタブに移動して、Geomで先程作ったWingGeomが選択されていることを確認し、Add Structureをクリックする
FEA Output Unit SystemでSI (kg, m)を選択する

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

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

Materialを追加する
Materialのタブに移動して、Add Materialをクリックし、新しい材料を追加する
Nameをわかりやすいものに変更し、Inputに密度、ヤング率を入力する
今回はリブとプランクに30倍発泡スチロールを設定するので、EPS30という名前でMaterialを追加した
CFRPもデフォルトでいくつか用意されているが、新たに追加した


バルサについてはデフォルトのMaterialを使用することにする
ShellのPropertyを追加する
Propertyのタブに移動して、Shell要素やBeam要素の設定を行う
今回はBeam要素は使わない(使い方がわからない)ので、すでに登録されているDefaultBeamというプロパティはDelete Propertyで削除する
DefaultShellを選択し、Property Name、Material、Length Unit、Thicknessを設定する
プロパティを追加したい場合はAdd Propertyで行う
今回は以下のプロパティを設定した
| Name | Type | Material | Thickness [m] | 備考 |
| EPS_Rib | Shell | EPS30 | 0.008 | リブ |
| EPS_Skin | Shell | EPS30 | 0.002 | プランク |
| CFRP_Spar | Shell | CFRP | 0.00141 | 主桁、(90,0,±45)sの疑似等方性積層 |
| TE_CAP | Shell | Balsa LTR | 0.001 | 後縁材 |




リブを追加する
Partタブに移動して、TypeでRibArrayを選び、Addをクリックする
Edit PartをクリックするとFEA Part Editのウィンドウが開くので、以下のように設定する(スパン方向位置 0.1 [m] から 2.6 [m] まで 0.2 [m] 間隔でリブを設定)

GeneralのShow/Hideで表示を切り替えることができる
追加後はこんな感じ

スキンの端にリブを配置するとメッシュ作成がバグる
対処方法は以下の通り
- スキンの端から少し離れた場所にリブを置いて、リブからスキン端までのメッシュを消去する(この記事のやり方)
- スキンの端にSubsurfaceのLineを追加して、翼端のCAPをリブとして代用する(リブのPropertyはSkinと同じになる)
https://openvsp.org/wiki/doku.php?id=feamesh
スパーを追加する
Partタブに移動して、TypeでSparを選び、Addをクリックする
Edit PartをクリックするとFEA Part Editのウィンドウが開くので、以下のように設定する
なお、今回は鳥コン滑空機のCFRPパイプを2本の桁とスキンからなるボックス桁で置き換え、断面二次モーメントおよびねじれ定数が同じになるように寸法を決定した
追加後はこんな感じ

Subsurfaceを追加する
デフォルトのSkinをプランク、ボックス桁上下面、フィルム、後縁材に分割し、端のリブより外側のSkinのメッシュを削除するためにSubsurfaceを追加していく
後縁材のSubsurfaceを追加する
Partタブに移動して、TypeでRectangleを選び、Addをクリックする
Edit PartをクリックするとFEA Part Editのウィンドウが開くので、以下のように設定する
追加後はこんな感じ

フィルムのSubsurfaceを追加する
Partタブに移動して、TypeでRectangleを選び、Addをクリックする
Edit PartをクリックするとFEA Part Editのウィンドウが開くので、以下のように設定する
ElementsでDelete Shellを選択することで、Subsurface内のメッシュを削除している
上側のスキンのW Lengthは数値をベタ打ちしたが、下面側のスキンのW Lengthは始点がSpar_Rearと一致するようにスライダーを用いて数値を微調整した
(Sparの位置設定に用いたLocationはコードラインに沿った距離だが、W Lengthは翼表面の曲線に沿った距離なので、きれいな数値で一致しない)

追加後はこんな感じ

桁の上下面のSubsurfaceを追加する
やり方はフィルムのときとほぼ同じ
Partタブに移動して、TypeでRectangleを選び、Addをクリックする
Edit PartをクリックするとFEA Part Editのウィンドウが開くので、以下のように設定する


追加後はこんな感じ

端のリブから外側のスキンを削除する
やり方はフィルムのときとほぼ同じ
Partタブに移動して、TypeでRectangleを選び、Addをクリックする
Edit PartをクリックするとFEA Part Editのウィンドウが開くので、以下のように設定する
ElementsでDelete Shellを選択することで、Subsurface内のメッシュを削除している
U LengthについてはフィルムのSubsurfaceと同様、スライダーと限界ズームを使って微調整している
追加後はこんな感じ

Subsurfaceの順番を並び替える
Partタブに移動する
SubsurfaceはFEA Part Selectionの下から順に上書き適用されていくので、翼根と翼端のメッシュの削除を行うSubsurfaceはフィルムと後縁材のSubsurfaceよりも上にする必要がある
FEA Part SelectionでRoot_TrimとTip_Trimを選択し、左側の▲▼で順序を変えることができる

境界条件指定用の参照点を追加する
今回は翼根の3点を用いて境界条件を設定するので、そのための参照点を追加する
Partタブに移動して、TypeでFiexed Pointを選び、Addをクリックする
Edit PartをクリックするとFEA Part Editのウィンドウが開くので、以下のように設定する
Abs XとAbs Yは数値のベタ打ちだが、Abs Zは例のごとくスライダーと限界ズームを使って微調整している
(Type>On PartのU LocationとW Locationを使うと、OpenVSP上ではいい感じに見えるが書き出したメッシュがバグる)
追加後はこんな感じ

境界条件を追加する
追加したFixed Pointに対して境界条件を設定する
BCsタブに移動して、TypeでPartを選び、追加したFixed Pointを選択してAdd BCをクリックする
Degrees Of Freedomの中から、固定したい自由度にチェックを入れる
今回は以下のように設定した
メッシュを作成して出力する
Meshのタブに移動し、メッシュを作成して出力する
ウィンドウの1番下のIntersect and Meshをクリックするとその時点の設定でのメッシュが作成される
メッシュを細かくしすぎるとバグるのでほどほどに
ステップ1: 最大エッジ長の設定
Mesh Controlで、Max Edge Lenを最初に調整するMin Edge LenとMax Gapを非常に大きな値に設定し、Num Circle Segmentsを非常に低い値に設定する(これですべてのセルの大きさがMax Edge Lenの値で決定される)- メッシュの最小解像度が良い感じになるまで、
Max Edge Lenを調整する(1番粗くていい場所のメッシュの大きさを決める)
今回はリブ区間0.2mが10分割されるよう、Max Edge LenはAbsで0.02に設定した


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


ステップ3: 最小エッジ長の設定
Min Edge Lenを設定する(一般的にはMax Edge Lenの10〜20倍小さい値に設定する)Min Edge Lenを調整して、メッシュの細部が必要な解像度を持つようにする(今度は逆にメッシュが1番細かくなってほしいところの細かさを設定する)
今回はBest Practiceに従ってMax Edge Lenの20倍小さい値にするため、Min Edge LenをRelで0.05に設定した(まだMax GapやNum Circle Segmentsをいじっていないのでメッシュの見た目は変わらない)


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


Before&After


ステップ5: 成長率制限の設定
Growth Ratioを調整して、メッシュの三角形がどれだけ速く成長できるかを設定する- このパラメーターは、他のパラメーターによって制限されない場合に適用され、複雑な部分から離れる際のメッシュの滑らかな成長を制御する
よくわからないので今回はデフォルトの1.3のままにしておく
ステップ6: メッシュの生成とエクスポート
- すべての設定が完了したら、
Intersect and Meshをクリックしてメッシュを生成する - 出力ウィンドウでメッシュ生成の進行状況を確認し、エラーや警告メッセージがないかチェックする
FEMタブに移動し、FEM Exportで出力したいファイルの形式を選択して、Meshタブに戻りExport FEMをクリックすれば、今回作成したモデルが.vsp3ファイルがあるのと同じディレクトリに出力される


Subsurfaceの設定をするときのスライダーの微調整が甘いと、メッシュを生成したときに下の画像の右側に示すような細長いメッシュが生成されてしまう
CalculixでFEM解析をする際にエラーとしてはじかれてしまうので注意


以上
おわりに
OpenVSPで翼の変形を解析するためのFEAモデルを作成した
ここで作成したモデルを使って、CalculixでFEMの解析を行う
↓関連記事


























コメント