Closed y-yosuke closed 7 years ago
W(Half) : 3.0 [m] x H : 6.0 [m] x L : 30.0 [m](Blockage : 3.6 [%]) だとこんな感じ.
SimScale にCADデータを上げた.これからメッシュ切りの手順を勉強する. https://www.simscale.com/projects/yosukegb4/fp-023b/
あー External Flow にしたら Box は SimScale 側で設定できるのか. とりあえずこのデータで Internal Flow として今メッシュ切り中.
データは STP で出力したけど Internal Flow としてメッシュ切るのなら STL の方が良いとかあるのかな?それも後々試そう.
automatic で fitness fineness を最も細かそうな very fine にしても粗い.フラップの隙間が潰れてる.
車体周辺だけ細かくしてほしいのだけど automatic では限界かもしれない. もしくは internal flow はそういう切り方をするのかもしれない.
今後試すのは下記あたりか.
うーん。NSXのCピラーの隙間はあいていたけれども特別ファインなモデルなのだろうか
2016-07-13 8:01 GMT+09:00 Yosuke Yamamoto notifications@github.com:
automatic で fitness を very fine にしても粗い.フラップの隙間が潰れてる. [image: 2016-07-13 7 59 22] https://cloud.githubusercontent.com/assets/3119480/16786467/dea22202-48cf-11e6-99b6-9c86de3e9cc9.png
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/y-yosuke/formula-ppoino/issues/11#issuecomment-232207608, or mute the thread https://github.com/notifications/unsubscribe/AAXmlSg6qeCy-1lgX6ee8msKrVDJUoCTks5qVBy-gaJpZM4JJstr .
おそらく internal flow が原因だと今のところ考えていて external flow にしたらモデル周辺は細かく切って遠いところは粗く切るのではないかと想像しています. 今日それを試してみます.
あ,YASA 750 のバルジのモデルを入れてない.(ま,メッシュの練習だし... あと,地面のメッシュは細かく切りたいな.
メッシュの切り方,丁寧に書いてあるわ https://www.simscale.com/docs/content/tutorials/tutorial_frontwing.html
ところで SimScale の Core hours 3000 hours って月あたりの時間ということなのか?否か? 4 cores でフルで回したら 4 [core] x 24 [h] x 30 [day] = 2880 [h] で大体それぐらいの時間になるのだけど.
メッシュ粗さの件は internal / external ではなくて automatic / parametric の違いみたいだ. parametric にして領域・面などによってメッシュの疎密を設定する.
良い感じになりもうした. もう少し下流の粗いところを密にした方が良いような気もするが,まずこれでCFDにかけてみよう.
で,ノード数が 26109120 になったのだけどシミュレーション計算にかけたら 8 cores ではメモリが足りませんでした.となったので 32 cores で設定し直して再計算中. それでも駄目だったらメッシュの削減をしなくてはならない.
32 cores にしてもメモリが足りないとのことでメッシュを粗く切っているところ.
【メモ】CADデータの受け渡し
;_;)
2016年7月14日 16:57 Yosuke Yamamoto notifications@github.com:
【メモ】CADデータの受け渡し
- STEP
- タイヤのような1つの面で大きく曲がっているものの形状の再現性が怪しい.
- 単位もデータ内に持っているようで [mm] で出力しても [m] に自動的に換算されている.
- インポートされた面はそれぞれ持って行かれるのでそのまま face set などにできる.
- STL
- [mm] で出力したらそのままなので Geometry Operation で 0.001 乗算変換
- インポートされた面は全体で1つの閉曲面として認識されるので Geometry Operation で切り分け角度指定での面分割が必要
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/y-yosuke/formula-ppoino/issues/11#issuecomment-232590591, or mute the thread https://github.com/notifications/unsubscribe/AAXmlb7Ahm-TLo6NBQS6wmX8tjhBGm_2ks5qVevngaJpZM4JJstr .
【メモ】
SimScale 上での STL の Surface splitting は Error が出て失敗したので STL は不採用. よって,STEP の変になる面,具体的にはタイアの Surface を Knot に沿って分割して SimScale に読み込んだときの質を確保.
IGES も試したがタイヤのサーフェスがおかしくなるのは STEP と同じで, 更には単位が着いてこないので 0.001 倍しないとならなく, STEP に比べて良いところがないので不採用.
【作業メモ】 Fr Flap も SimScale 上の STEP での形状再現性が低かったので Rhinoceros にて Shrink Trimmed Surface を行って STEP エクスポートのし直し.
1つずつメッシュが正常に切れない問題をつぶしているところ.
面の接続先が誤って認識されているようで,面が折り返ってしまい流体の領域も変になった例 → 接続が駄目だった面の間に CAD 側でフィレットをかけて対処
もう12年ぐらい前の話だけど当時 SCRYU/Tetra でメッシュ切るのそんなに苦労した記憶がないのに何で?とぐぐったら SCRYU/Tetra の売りはメッシュ切りと当該ページには書いてある.そういうことなの??? http://www.cradle.co.jp/products/scryutetra.html
テトラメッシュでも切ってみるか... (メッシュ切りのテストだけで 3000 core hours を使ってしまうのでは!? という恐怖... orz Left: 74%)
OpenFOAM の方から調べると blockMesh は薄い部分の表現が苦手なようだ.
external flow で Bounding Box と元の CAD Data の組み合わせで流体領域を形成するのだけれども, どこかのメッシュ(フラップとフェンダーの交差部?かタイヤと地面の交差部?)が裏返ってしまって 領域が車体の内外両方になってしまう.
このため internal flow の CAD Data を再び使い,今回は "Hex-dominant automatic for internal flow (only CFD)" ではなく "Hex-dominant parametric (only CFD)" で良い感じにメッシュが切れないか試行中.
"Tetrahedral with layer refinements" でメッシュ切りを試したがエラーが出て切れなかった. 理由はわからないが,今回はこの方向の試行は中止かな.snappyHexMesh の方向でがんばる.
流体領域を CAD Data で形成しておいた方がおかしなことになりにくいようだ.
SimScale 上でライドハイト設定を変えてメッシュが生成されるのがベストだろうが,まともなメッシュが切れないようでは元も子もないので,手間は増えるが予め CAD で流域を形成したデータを複数使うのがセカンドベストかもしれない.
手間と言っても車体モデルを Transfer して流域の Box と Boolean をとるだけだけど. 更には厳密に言うとライドハイトによってサスペンションアームの形が変わるのでそう言った意味ではこれがベストなのかもしれない.
SimScale の CAD データは "Import from Onshape" の機能があるのでライドハイト変化などのパラメトリック要素は Onshape 上で処理をして流体領域を形成して一連のパターンを SimScale にてバッチ解析する作業の流れもありかも.
メッシュ良さげか!? これで解析に流せるかな. https://www.simscale.com/workbench/?pid=4105619712994739995#tab_0-0 Meshes -> Mesh 1 2 2
Nodes (Points) 6,245,308 で大体目標値.
メッシュ全体(手前の面は Hide してる) 流域 Box の周辺が細かいのは勿体ないが CAD のエッジをメッシュに反映する設定 "Feature refinement" が CAD の Surface 全部にかける方法しかないため仕方ないか,というところ. 改めて見ると,車体後流部はもう少し長く,細かくしたいところだが...
メッシュ拡大 Flap と Wing の隙間の端が怪しいことになってる.改善したいところだが...
レイヤーの様子(3層)
領域はちゃんとしているようだ.
I think snappyHexMesh is not beautiful.
まだメモリーエラーが出るなぁ... (T_T)
やはりメッシュがおかしいような気がする.
SimScale の STEP/IGES → サーフェスメッシュの変換がおかしいのでいろいろな人の Project をみていたら,これ ↓ なんか STL で読み込んでいるのに複数ソリッドが存在している. https://www.simscale.com/projects/pfernandez/perrinn_f1_v5/ ソリッド化した STL だとそれぞれの閉領域が1つのまとまりとして SimScale で認識されるらしい.
STL でもソリッド化というプロセスがあるらしく,それは FreeCAD で出来るらしい. http://monoist.atmarkit.co.jp/mn/articles/1602/12/news011.html
ということで FreeCAD 氏に働いてもらっているところだが... 帰ってこない... orz
複数要素の STL データを SimScale にインポートするために試したことで駄目だったことリスト
うーん、互換性にまだ問題があるんですね
タイヤ&ホイールを回さなければ STL でそのまま出来るようなのですが... このモデルの場合それはちょっと意味ないかなと思うわけです.
3000 core hours は1年あたりとのこと.すぐ使い切りそうだな. "3000 core hours of computing power per year" https://www.simscale.com/forum/t/simscale-plans-pricing/27827
STL で複数の領域があるデータを SimScale にアップロードする方法が分った.
SimScale のフォーラムに書いてあったのだが,それだけでは足りない部分が私の環境ではあったので Rhinoceros で STL 出力してから SimScale にアップロードするまでの手順を書いておく.
How to import more than one geometry (STL), to be meshed in the same project? https://www.simscale.com/forum/t/how-to-import-more-than-one-geometry-stl-to-be-meshed-in-the-same-project/26790
Rhinoceros で分割して利用したいソリッド部分をそれぞれ ASCII で STL 出力 する. 例えば,body, fl-wheel, fr-wheel, rl-wheel, rr-wheel などで分ける. (精度は 0.1mm ぐらいで出力している)
STLファイル内の solid の名称が全て OBJECT になっており,そのままだと SimScale で利用する際に区別がつかなく face の選択ができない. そこで,各 STLファイル をテキストエディタなどで編集してファイルの冒頭と末尾にある次の行を編集して,各 solid が固有の名称を持つようにする.
<変更前>
solid OBJECT
...
endsolid OBJECT
<変更後(例)>
solid OBJECT2
...
endsolid OBJECT2
コマンドラインで次のように cat を実行して複数のSTLファイルを1つのSTLファイルに結合する.
cat 1.stl 2.stl 3.stl 4.stl 5.stl > fp-023b_cfd_combined_rename-OBJECT.stl
結合したSTLファイルが 300MB を超えるような場合はZIP圧縮をして 300MB 以下にする.
SimScale の "Upload CAD/mesh" の "Upload geometry" から STL を指定して結合したSTLファイルをアップロードする. アップロードしたデータはSTLファイル上では solid と記述されているものは face として SimScale 側に認識されるようでそれを使って各領域のメッシュ条件や,解析の境界条件として利用する.
アップロードしたデータの様子
"Geometry Operation" → "General CAD" → "Scaling" → "Scaling factor" [ 0.001 ] で [ Start ]
この作業は SimScale にアップロードする前に MeshLab などを使って行っても良い.むしろその方が速いし core hours を消費しないので良い.
追記)MeshLab で複数領域の STL を出力できないかもしれない.
さて,やっとここからメッシュ切りのやり直し.
なんや... やれば出来る子やないか...
(でも,細かくしすぎたので再メッシュ)
メモリーエラーはメモリーエラーにあらず,の場合もあるとのこと. https://www.simscale.com/forum/t/memory-error-whilst-trying-to-simulation/28038/6
今度は粗くしすぎたかなーという感はあるが,とりあえず解析が出来るようにするのが第1目標.
とりあえず解析で解は収束方向に行った.
6,049,050 nodes で 2000回 の計算を 32 cores で 178min(約3時間 = core hours 3.2% 使用?)
デバッグのためタイヤ&ホイールを回していなかったので回して再度解析する.
タイヤ&ホイールを回していないケースだが解の収束の様子はこんな感じ.
core hours の 3000 h/year を使い切りそうだったら複数人で free アカウント持ちよりで手分けして解析かな.SimScale 上でブランチ出来るみたいだし.協力者いるカッシーラ?
寝る前に仕込んだのが計算は出来ているのに何故かエラーで結果がダウンロード出来ない状態だった. この原因かは分らないが Simulation Run の名前が原因で起こる場合があるとのこと. 名前は結果が出てから rename するのが吉らしい.
For some reason the / character in the naming of the Simulation Run 1 m/s was the source of the error. As you can see when the run was renamed Run 2 it worked (so your setup was perfectly fine!)
タイヤ&ホイールを回転させた結果がダウンロード出来なくても Solver Log に Forces and moments の結果は残っているのでコピペ.
計算合っているのだろうか? Cm から考えるに Cl(f) と Cl(r) が逆なような気もしないでもない Cm が逆なのか? 何か設定が間違っているような気もしないでもない.
forces forces00 output:
sum of forces:
pressure : (196.251288684 -198.050836462 -65.3098265119)
viscous : (16.7956659701 -1.11352759496 0.679483712905)
porous : (0 0 0)
sum of moments:
pressure : (75.8217441964 133.719615886 73.5065703079)
viscous : (-0.0170156293263 9.10674333444 10.8821343082)
porous : (0 0 0)
forceCoeffs forceCoeffs01 output:
Cm = 0.0956212772405
Cd = 0.567681285646
Cl = 0.172212910301
Cl(f) = 0.181727732391
Cl(r) = -0.00951482208985
Lift direction を (0,0,-1) では逆か.Downforce direction じゃないしな. Lift direction (0,0,1) でないと座標系がおかしくなりそうだ. Center of rotation もこれで合っているのか???
計算時間の感覚は今のメッシュ 6M nodes ぐらいで 32 cores 使うと次ぐらい?
仮に既出の coefficient の計算は合っているとすると前後の空力バランスがアンバランス過ぎるので何か設計上の対策をしなくてはならない.
検討する点を忘れないうちに書いておく.
Clf と Clr が逆だったとするとリアが 100% 以上なのでこれを重心に合わせる感じで 60〜70% まで落としたい.
Clf と Clr が合っている場合はフロント 100% 以上なのであまりあり得ないような気もするがその場合は...
でも,やっぱ計算の設定が間違っているような気がしてならない.
協力しまーす
ありがとうございまーす. core hours あと 1500h ぐらい残っているのでもう少し先だと思いますが, 使い切る前にメッシュ切り・解析の道筋を確定させます.
Cl が小さいので発生モーメントのほとんどはドラッグが原因説 (Clが小さいのは一応意図どおり?)
これはほとんどがフロントのダウンフォースかもしれない. リアボディーの圧力の感じからすると地面から遠いし,ウィングは低いし角度ないしオーバーハングないしで本当にリアダウンフォースがないかもしれない.
Lift direction を (0,0,1) に直してもう一度解析してまた考えるか,空力デバイスをいじって反応をみるか.
収束の感じからすると1500回の計算で良いように思う.
SimScale のアカウント(free)を取得したので CFD 用のモデルを作成中 https://github.com/y-yosuke/ppoino-cars/issues/8#issuecomment-230393780
【メモ】