-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
「Webではじめる自動車空力開発 - SimScale Aerodynamic Simulation -」 #12
Comments
著者:野良エンジニアーず |
必要なCADデータ(or メッシュデータ)
|
面白そう。どこかのエンジニア系ウェブマガジンへの投稿記事にはならないのかな? 2016-09-20 16:31 GMT+09:00 Yosuke Yamamoto notifications@github.com:
|
(各コメントを再編集しながら書くのでコメント時系列が謎になるかもしれませんがご容赦を) |
あった方が良いフリーソフトウェア
|
SimScale にアップロードするSTLデータの作成・アップロード方法 以下 y-yosuke/formula-ppoino#11 (comment) からコピー&編集. 0. 車両データの用意Rhinoceros で STL 出力してから SimScale にアップロードするまでの手順 0.1 STLファイルのエクスポート(ASCII)Rhinoceros で分割して利用したいソリッド部分をそれぞれ ASCII で STL 出力 する.
0.2 STLファイル内の solid 名の変更STLファイル内の solid の名称が全て OBJECT になっており,そのままだと SimScale で利用する際に区別がつかなく face の選択ができない. <変更前>
<変更後(例)>
0.3 STLファイルの結合コマンドラインで次のように Mac/Linux では cat を Windows では type を実行して複数のSTLファイルを1つのSTLファイルに結合する.
4. ZIP圧縮(必要ならば)結合したSTLファイルが 300MB を超えるような場合はZIP圧縮をして 300MB 以下にする. Rhinoceros for Mac を用いた手順なので Linux や Windows 他のCADを用いた手順も併記もしくは追記したいところ.
<バイナリ形式のSTLファイルをASCII形式にする方法>
|
前後したが SimScale のアカウント取得手順 以下 #8 (comment) からコピー&編集 SimScale で free のアカウントを作成SimScale : https://www.simscale.com/
アカウントを作る際の Tips
その他
|
メッシュの作成・シミュレーションの実行 A. とりあえずはじめる - 既存プロジェクトをコピーして利用 A. とりあえずはじめる - 既存プロジェクトをコピーして利用他の計算できている既存プロジェクトをコピーして利用することで,細かい設定の理解は後回しで手っ取り早くシミュレーションを行う.
1. プロジェクトのコピーPublic Projects https://www.simscale.com/projects/ からコピーしたいプロジェクトを開く. 例) https://www.simscale.com/projects/yosukegb4/fp-023d_-_control/ 右上の [ Actions ▼ ] をクリックして中の [ Make a copy ] をクリックする. プロジェクト名を記入して [ Copy Project ] をクリックする.→ コピー開始 2. メッシュ作成
2.1 車両データのアップロードプロジェクトをワークベンチで開く.右上の [ Open → ] をクリックする. ワークベンチを開いたときは Mesh Creator タブになっている. 左上 [ ▼ Upload CAD/mesh ] → [ Upload geometry ] をクリック Format に STL を指定して予めアップロード用に準備しておいたSTLファイル(ZIPファイル)をアップロードする. 元のSTLデータの単位がミリなら,メートルにスケール変換する. Geometries → (アップロードしたデータ) → Geometry Operations → [ +New ] 2.2 サーフェス名の設定メッシュ作成の設定を行うときに使用するサーフェスには全て face set としての名前を付けておく.
名前を付ける手順 Geometries → (アップロードしたデータ) → Topological Entity Sets 2.3 既存メッシュの複製新しく利用するために既存のメッシュを複製する. Meshes → Available Meshes → (既存のメッシュ) → Actions → Duplicate 必要なら複製したメッシュの名称変更を行う. Meshes → (複製したメッシュ) → Mesh → Mesh Information 2.4 車両STLデータの変更複製したメッシュにあるSTLデータの指定先をアップロードした車両STLデータに変更する.
|
2.5 メッシュ作成設定の調整複製したメッシュには元の車両に合わせたメッシュ作成の設定が残っている.
2.5.1 流体領域の大きさ・位置の調整流体領域の大きさと位置を調整する.大きさは下記 <流体領域 _BaseMeshBox の大きさの目安> を参考に調整し,位置については主に路面高さを計算したい車高に合わせて調整する. 路面高さの調整を例にとると Meshes → (複製したメッシュ) → Mesh Operations → Operation 1 (数字は場合による) <流体領域 _BaseMeshBox の大きさの目安>
2.5.2 流体領域の指定どの領域が流体に相当するのかを指定するのが MaterialPoint で,流路かつ車体の外側のどこかの1点を指定する.元のメッシュの設定のままで大丈夫なら変更は不要. Meshes → (複製したメッシュ) → Mesh Operations → Operation 1 (数字は場合による) 2.5.3 メッシュの細かさを指定する領域の設定メッシュを車体に近い部分は細かく,遠い部分は荒く切る,局所的に細かい領域を設定するなどを行うことで全体のメッシュ規模を大きくせずに計算量の増大を避けながら精度を良くしたい. メッシュを細かさを指定する領域形状は下記項目で設定する. Meshes → (複製したメッシュ) → Mesh Operations → Operation 1 (数字は場合による)
|
(簡潔な文章作成能力が低下しているのかもしれないけど,改めて手順を書いていると長く感じるなぁ...) |
2.5.4 メッシュの細かさレベルの設定領域 Gemetry Primitives に対してメッシュをどのような細かさにするかは下記項目で設定する. Meshes → (複製したメッシュ) → Mesh Operations → Operation 1 (数字は場合による) 下図では Geometry Primitives にある領域 Regeon-Car に対して Mesh Refinements 内の メッシュの Level などの変更を行ったら [ Save ] ボタンをクリックして保存する. メッシュのレベルとは?メッシュのレベルは最も荒いメッシュを Level 0 としてその辺の大きさが半分になる(=メッシュ数では8倍)のを Level +1 の違いとしている. 最も荒いメッシュの大きさの指定は流体領域 _BaseMeshBox を各軸方向に何等分するかを指定して決めている. Meshes → (複製したメッシュ) → Mesh Operations → Operation 1 (数字は場合による) 例えば _BaseMeshBox の大きさが [ x , y , z ] = [ 30 , 3 , 6 ] の場合に上記の分割数とすると Level 0 のメッシュの大きさは [ x , y , z ] = [ 0.3 , 0.3 , 0.3 ] となる. 車両STLデータを変更すると車両各サーフェス(face sets)に指定したメッシュの細かさの設定は解除される.「2.2 サーフェスに名前を付ける」で設定した face set の名前が以前の車両データと同じでも設定は解除されるので再設定が必要となる. 下図では face set の body に対してメッシュの Level を 5〜6 になるよう指定している. 指定するサーフェスや Level などの変更を行ったら [ Save ] ボタンをクリックして保存する. 下図では face set の fl-wheel, fr-wheel, rl-wheel, rr-wheel に対してメッシュの Level を 5〜6 になるよう指定している. |
2.5.5 レイヤーの設定CFDでは物体表面近くの流れ(境界層)を再現しやすいようにサーフェス近くのメッシュに薄い「レイヤー」を加える手法が採られる. ここでは次の2項目に対してレイヤーを挿入する設定を行っている.
a. 車両サーフェスのレイヤー設定「2.5.4 メッシュ細かさレベルの設定」の中で行った「車両各サーフェス(face sets)に指定したメッシュの細かさの設定」と同じように face set の名前が以前のものと同じでも車両STLデータを変更するとレイヤーの設定も解除されてしまうので再設定が必須である. 下図では Mesh Refinements の Layer - car という項目で face set の body, fl-wheel, fr-wheel, rl-wheel, rr-wheel に対してレイヤーを3層挿入するよう指定している. b. 路面のレイヤー設定大概は再設定不要(複製した後でも設定は解除されない) 下図では Mesh Refinements の Layer - floor という項目で _BaseMeshBox の Z が最小値になる面 |
(「実際に行うこと」と「その行うことの理由・説明」をレイアウト的に分けたいけど... 後まわし) |
3. シミュレーション計算
3.1 シミュレーションの複製タブを Simulation Designer に移動してシミュレーションの複製を行う. Simulations → (既存のシミュレーション) → Actions → Duplicate 必要なら複製したシミュレーションの名称変更を行う. Simulations → (複製したシミュレーション) 3.2 メッシュの変更2. メッシュ作成 で作成した新しいメッシュに変更する. Simulations → (複製したシミュレーション) → Domain 3.3 メッシュサーフェス名の設定境界条件を設定するメッシュサーフェスに名前を付ける.境界条件ごとに face set にする.
名前を付ける手順 Simulations → (複製したシミュレーション) → Domain → Topological Entity Sets |
3.4 流体領域の設定メッシュを変更しているので流体部分の Volume がどこになるかを再設定する. Simulations → (複製したシミュレーション) → Model → Materials → Air 3.5 境界条件の設定3.5.1 境界サーフェスの指定複製したシミュレーションには境界条件の設定は残っているがメッシュを変更したので各境界条件で境界サーフェスに face sets を再設定する必要がある. Simulations → (複製したシミュレーション) → Model → Boundary Conditions → (各項目) 3.5.2 車速の設定下記の境界条件の例では車速が 30m/s (=108km/h) に相当するように設定しているが,速度を変更したい場合には次の項目を変更する必要がある.
3.5.3 ホイールの回転設定車体やホイールの大きさによって前後輪の回転軸の位置や方向,角速度が変わるので各関連項目を変更する必要がある.
|
3.7 シミュレーション計算の実行
3.7.1 Simulation Run の作成各設定が終わったらシミュレーション計算を実行する.まずは Simulation Run を作成する. Simulations → (複製したシミュレーション) → Simulation Runs → [ + New ] ボタンをクリック
3.7.1 Simulation Run の実行Simulation Run を作成したら,その実行を行う. Simulations → (複製したシミュレーション) → Simulation Runs
|
(ザザッとシミュレーション計算まで書いた.結構長いよ...) |
(英語で書いた方が貢献できるような気もするけど... まぁ英語なら SimScale の Help に書いてあるし... でも Forum から拾ってきたネタもあるし... やっぱ英語でも書いた方が... の循環なう) |
4. シミュレーション結果を見る
4.1 Solver Log力や空力係数の計算結果は Solver Log にまとまって記されてる. Simulations → (計算したシミュレーション) → Simulation Runs → Run 1 → Solver Log
|
(章番号の構成が崩壊ぎみ... まとめる機会があれば整える) |
4.2 解の収束のグラフ解の収束の様子を示したグラフは2ヶ所で見ることができる.1つは Simulation Designer タブ上で Simulations → (計算したシミュレーション) → Simulation Runs → Run 1 → Convergence plots もう1ヶ所は Post-Processor タブ内の Simulations → (計算したシミュレーション) → Run 1 → Convergence plot また力や空力係数の計算値の推移もプロットされる.Post-Processor タブ内の Simulations → (計算したシミュレーション) → Run 1 |
4.3 グラフィカルに表示
4.3.1 Post-Processor (BETA)Post-Processor タブ内でグラフィカルに表示することもできるがBETA版ということで ParaView の使用を勧められる. Simulations → (計算したシミュレーション) → Run 1 → Solution fields レンダリングの設定をローカルにすると動作が少し軽くなるかも?ならないかも?重くなるかも? (右上)Configuration → Rendering Mode → Local にスイッチ 4.3.2 ParaViewPCにインストールした ParaVIew でシミュレーション結果を見るために計算結果のダウンロードを行う.SImulation Designer タブ内で Simulations → (計算したシミュレーション) → Simulation Runs → Run 1 ダウンロードしたデータはZIP形式なので展開する. ParaView を起動する. ParaView はデータに対して Filter を縦列・並列に加えて結果を見やすくするので Filter をいろいろ適用してみる.
|
GitHub の Issue のコメントの画像リンクをそのまま SimScale の Forum に貼ると |
Geometry operation がこけるな. |
こけてるのでなく集中的な使用の制限なのかな??? |
おー? Geometry Operation が転ける?帰ってこない?原因が2つに絞られたような気がする.
本件,別 Issue にすれば良かった. |
Geometry Operation 転ける原因の件,確定ではないが安全側なので 2点 Wiki を修正しておいた. |
ファイルサイズ 300MB とか [ Save ] ボタンを押すとかしても帰ってこないな.別の何かか... |
手元の Mac の MeshLab でスケール変換フィルタ処理を行っても ならば,手元でスケール変換が成功したものを Upload して SimScale 側で Geometry Operation をする必要をなくした方が確実かな.それを試す. |
MeshLab が落ちるのはバージョンを 2016.12 から 1.3.3 に戻したら落ちなくなった. |
MeshLab の Scale の挙動もいまいち理解してないんだよね. |
200 core hours / 6 hours の制限が有料の Professional Plan にはあるとのことで ちなみに,いまのシミュレーションの大体の core hours は
で,STL Upload, Set-up, CFD Result Download の時間がかかるから, |
SimScale に Rhinoceros のデータ *.3dm を直接 Upload できるようになっている. |
翻訳するのであれば、手伝えるところは手伝いますよ。 |
ありがとうございます. @emijah Rhino ファイルのアップロードは新しい機能ですが 結局 STL でモデルのアップロードをするので, また何か書く必要があるときに翻訳などお願いするかもしれません. |
的なまとめを書いておくかな.
追記)Wiki にまとめた
https://github.com/y-yosuke/ppoino-cars/wiki/Web%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E8%87%AA%E5%8B%95%E8%BB%8A%E7%A9%BA%E5%8A%9B%E9%96%8B%E7%99%BA-%E3%83%BC-SimScale-Aerodynamic-Simulation-%E3%83%BC-Wiki
The text was updated successfully, but these errors were encountered: