Skip to content
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

Closed
y-yosuke opened this issue Sep 16, 2016 · 44 comments

Comments

@y-yosuke
Copy link
Owner

y-yosuke commented Sep 16, 2016

的なまとめを書いておくかな.

追記)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

@y-yosuke
Copy link
Owner Author

著者:野良エンジニアーず

@y-yosuke
Copy link
Owner Author

y-yosuke commented Sep 20, 2016

必要なCADデータ(or メッシュデータ)

  • 車体
    • 独立して空力係数を算出したい部位があればその部位を独立させたデータ
      • メッシュ作成時にブール演算される
  • 車体とは独立した各ホイール

  • 注意点
    • それぞれのデータは閉形状(ソリッド)となっていなければならない
    • 求めたい計算結果に影響しなそうな細かい形状は可能な限り省略
    • ハーフボディ(車体の左右どちらか一方)よりは車体全体の方が良さそう
      • 左右対称解析の場合はメッシュ作成時にハーフモデル化
        • 流体領域対称面モデルと車体・ホイールデータの対称面が一致するとメッシュ作成領域判定に失敗する場合がある
      • ヨー角をつけた場合の解析もデータを変更せずに済む

@emijah
Copy link
Collaborator

emijah commented Sep 20, 2016

面白そう。どこかのエンジニア系ウェブマガジンへの投稿記事にはならないのかな?

2016-09-20 16:31 GMT+09:00 Yosuke Yamamoto notifications@github.com:

必要ななCADデータ(orメッシュデータ)

  • 車体
  • 車体とは独立した各ホイール

それぞれのデータは閉形状(ソリッド)となっていなければならない.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
#12 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAXmlXpJnWS1qK0XUwLmPYv_K-EAtP5Qks5qr4u-gaJpZM4J_H_W
.

@y-yosuke
Copy link
Owner Author

y-yosuke commented Sep 20, 2016

CFD解析で必要な数値をCADで拾う.

  • 前面投影面積 [m^2]
  • ホイールベース [m]
  • 前後車軸の座標・方向ベクトル

本まとめで使用している座標系
epson002

@y-yosuke
Copy link
Owner Author

(各コメントを再編集しながら書くのでコメント時系列が謎になるかもしれませんがご容赦を)

@y-yosuke
Copy link
Owner Author

y-yosuke commented Sep 20, 2016

あった方が良いフリーソフトウェア

  • FreeCAD : CADデータの作成・確認
  • MeshLab : メッシュデータ(STL)の確認
  • ParaView : 解析結果の表示

@y-yosuke
Copy link
Owner Author

y-yosuke commented Sep 20, 2016

SimScale にアップロードするSTLデータの作成・アップロード方法

以下 y-yosuke/formula-ppoino#11 (comment) からコピー&編集.


0. 車両データの用意

Rhinoceros で STL 出力してから SimScale にアップロードするまでの手順
ASCIII の STL ファイルが出力できるのであれば Rhinoceros 以外でもほぼ同じ手順

0.1 STLファイルのエクスポート(ASCII)

Rhinoceros で分割して利用したいソリッド部分をそれぞれ ASCII で STL 出力 する.
例えば,body, fl-wheel, fr-wheel, rl-wheel, rr-wheel などで分ける.
(精度は 0.1mm ぐらいで出力している)

  • ASCII形式のSTLファイルが直接出力出来ない場合はバイナリ形式で出力してから下記の手順へ
    • <バイナリ形式のSTLファイルをASCII形式にする方法>

0.2 STLファイル内の solid 名の変更

STLファイル内の solid の名称が全て OBJECT になっており,そのままだと SimScale で利用する際に区別がつかなく face の選択ができない.
そこで,各 STLファイル をテキストエディタなどで編集してファイルの冒頭と末尾にある次の行を編集して,各 solid が固有の名称を持つようにする.

<変更前>

solid OBJECT
...
endsolid OBJECT

<変更後(例)>

solid OBJECT2
...
endsolid OBJECT2

0.3 STLファイルの結合

コマンドラインで次のように Mac/Linux では cat を Windows では type を実行して複数のSTLファイルを1つのSTLファイルに結合する.

cat 1.stl 2.stl 3.stl 4.stl 5.stl > fp-023b_cfd_combiled_rename-OBJECT.stl

4. ZIP圧縮(必要ならば)

結合したSTLファイルが 300MB を超えるような場合はZIP圧縮をして 300MB 以下にする.


Rhinoceros for Mac を用いた手順なので Linux や Windows 他のCADを用いた手順も併記もしくは追記したいところ.

  • cat は Windows だと type かな? Linux は同じ
  • FreeCAD から STL(ASCII)エクスポートは? → できなかった.不可能.
  • OnShape から SimScale に直接データを移行するのは私は上手くできなかったから保留かな?
    • (CAD データも Web 上で出来る OnShape が理想的ではあるけれど...)

<バイナリ形式のSTLファイルをASCII形式にする方法>

  • MeshLab でバイナリ形式のSTLファイルを開く
  • Export Mesh as... でメッシュデータのエクスポート
    2016-09-23 11 53 54
  • ファイル名を指定して [ Save ]
    2016-09-23 11 54 28
  • オプションで [ ] Binary encoding のチェックを外して [ OK ]
    2016-09-23 11 54 44
  • MeshLab でASCII形式にてエクスポートされたSTLデータ → 2. STLファイル内の solid 名の変更
solid STL generated by MeshLab
  facet normal -1.000000e+00 -0.000000e+00 -0.000000e+00
    outer loop
      vertex   0.000000e+00  1.000000e+01  1.000000e+01
      vertex   0.000000e+00  1.000000e+01  0.000000e+00
      vertex   0.000000e+00  0.000000e+00  1.000000e+01
    endloop
  endfacet

...(中略)...

  facet normal  0.000000e+00  0.000000e+00  1.000000e+00
    outer loop
      vertex   1.000000e+01  1.000000e+01  1.000000e+01
      vertex   0.000000e+00  0.000000e+00  1.000000e+01
      vertex   1.000000e+01  0.000000e+00  1.000000e+01
    endloop
  endfacet
endsolid vcg

@y-yosuke
Copy link
Owner Author

y-yosuke commented Sep 20, 2016

前後したが SimScale のアカウント取得手順

以下 #8 (comment) からコピー&編集


SimScale で free のアカウントを作成

SimScale : https://www.simscale.com/

  • Free Plan の Community
    • Public Project (公開プロジェクト)のみでの使用
    • 3000 core hours / year の利用が可能
    • 500GB のストレージ利用が可能
  • Private Project(非公開プロジェクト)の利用は Professional Plan €170/month で
  • あとは Enterprise Plan €850/month

アカウントを作る際の Tips

  • アカウント作成時に E-mail アドレス入力があり,これは後から変更不可のようだ
  • アカウント作成時に電話番号入力は必須だが後から消せる
  • Activate 時(かな?)にアカウント名の入力があり,これは後から変更不可のようだ

その他

  • 3000 core hours でどれほど解析ができるか?
    • 例えば fp-023c - Front Aero Devices https://www.simscale.com/projects/yosukegb4/fp-023c_-_control/ の場合は大体 120 core hours / case ぐらいなので約25ケース程シミュレーションが可能
    • メッシュが荒ければメッシュ作成や計算に必要な core hours は少なくなるが計算精度が低下するようなのでその辺りのバランスが少し難しいところ...
      • どこまで細かいところまで解析で知りたいのか? 大雑把な傾向をつかみたいのであればメッシュや元のモデルも荒めでも構わないし...
      • なので最初の数ケースはその辺りの見極めに費やす必要があるかもしれない
  • SimScale 上でのコミュニケーションは英語
    • コミュニティでの意見交換・貢献を重視しているためのよう
      • そのため質問があればどんどん Forum に投稿すると良さそう
        • 投稿するテキストを書いている途中でも内容に関連しそうな他の投稿が提示されるので,もしかして既に質問されているのでは?など,投稿するかどうか決めかねていてもとりあえず書いてみるのもアリ

@y-yosuke
Copy link
Owner Author

y-yosuke commented Sep 20, 2016

メッシュの作成・シミュレーションの実行

A. とりあえずはじめる - 既存プロジェクトをコピーして利用
B. 新規プロジェクトを作成してシミュレーションを行う

A. とりあえずはじめる - 既存プロジェクトをコピーして利用

他の計算できている既存プロジェクトをコピーして利用することで,細かい設定の理解は後回しで手っ取り早くシミュレーションを行う.

  • プロジェクトのコピー
  • メッシュ作成
  • シミュレーション計算

1. プロジェクトのコピー

Public Projects https://www.simscale.com/projects/ からコピーしたいプロジェクトを開く.

 例) https://www.simscale.com/projects/yosukegb4/fp-023d_-_control/

右上の [ Actions ▼ ] をクリックして中の [ Make a copy ] をクリックする.

2016-09-22 15 38 17

プロジェクト名を記入して [ Copy Project ] をクリックする.→ コピー開始

2. メッシュ作成

  • 車両データのアップロード
  • サーフェス名の設定
  • メッシュの複製
  • 車両STLデータの変更
  • メッシュ作成設定の調整
  • メッシュ作成の実行

2.1 車両データのアップロード

プロジェクトをワークベンチで開く.右上の [ Open → ] をクリックする.

ワークベンチを開いたときは Mesh Creator タブになっている.
以後メッシュ作成作業をこのタブ内で行う.

 左上 [ ▼ Upload CAD/mesh ] → [ Upload geometry ] をクリック

Format に STL を指定して予めアップロード用に準備しておいたSTLファイル(ZIPファイル)をアップロードする.

アップロードしたデータの様子
2016-07-18 11 39 57

元のSTLデータの単位がミリなら,メートルにスケール変換する.

Geometries → (アップロードしたデータ) → Geometry Operations → [ +New ]
 → General CAD → Scaling → Scaling factor [ 0.001 ]
  → [ ▶︎Start ]

2.2 サーフェス名の設定

メッシュ作成の設定を行うときに使用するサーフェスには全て face set としての名前を付けておく.
流体領域判定に成功しやすいようなのでホイールなど独立したものは各々の fece set とした方が良い.

  • fece set 名の例
    • body
    • fl-wheel
    • fr-wheel
    • rl-wheel
    • rr-wheel

名前を付ける手順

 Geometries → (アップロードしたデータ) → Topological Entity Sets
  (画面右側に表示されているモデルのサーフェスをクリックして選択 → 赤色に)
   → [ Create set ] → Name of new set [ body ](例)→ [ Create ]

2016-09-21 16 15 49

2.3 既存メッシュの複製

新しく利用するために既存のメッシュを複製する.

 Meshes → Available Meshes → (既存のメッシュ) → Actions → Duplicate

必要なら複製したメッシュの名称変更を行う.

 Meshes → (複製したメッシュ) → Mesh → Mesh Information
  → Name [ 新しいメッシュ名称 ] → [ Save ] ボタンをクリック

2.4 車両STLデータの変更

複製したメッシュにあるSTLデータの指定先をアップロードした車両STLデータに変更する.

  1. 複製したメッシュから既存のメッシュを消去
     Meshes → (複製したメッシュ) → Mesh Operations → Actions → Delete result
  2. 車両データの変更
     Meshes → (複製したメッシュ) → Mesh → Base Geometry → (アップロードしたSTLデータ)

@y-yosuke
Copy link
Owner Author

y-yosuke commented Sep 21, 2016

2.5 メッシュ作成設定の調整

複製したメッシュには元の車両に合わせたメッシュ作成の設定が残っている.
新しく解析する車両データに合わせてこれらの設定を調整したり追加で設定する.

  • 流体領域の大きさ・位置の調整
  • 流体領域の指定
  • メッシュの細かさを指定する領域の設定
  • メッシュの細かさレベルの設定
  • レイヤーの設定

2.5.1 流体領域の大きさ・位置の調整

流体領域の大きさと位置を調整する.大きさは下記 <流体領域 _BaseMeshBox の大きさの目安> を参考に調整し,位置については主に路面高さを計算したい車高に合わせて調整する.

路面高さの調整を例にとると

 Meshes → (複製したメッシュ) → Mesh Operations → Operation 1 (数字は場合による)
  → Geometry Primitives → _BaseMeshBox → Min. Point (z) [ -0.11 ] & Max. Point (z) [ 5.89 ]

_BaseMeshBox
2016-09-21 18 13 06


<流体領域 _BaseMeshBox の大きさの目安>

  • ブロッケージ(前面投影面積/流体領域断面積)
    • 5% ぐらい
      • 根拠をリンクとして貼りたいけど良さげなのが見つからない
      • 流域の端の方はメッシュを荒くするためメッシュ数増加は少ないので,更に大きめにしておいても良いかも
    • ウィングなど流れを上に跳ね上げる車体形状の場合は上方向も大きめに
  • 前後長

2.5.2 流体領域の指定

どの領域が流体に相当するのかを指定するのが MaterialPoint で,流路かつ車体の外側のどこかの1点を指定する.元のメッシュの設定のままで大丈夫なら変更は不要.

 Meshes → (複製したメッシュ) → Mesh Operations → Operation 1 (数字は場合による)
  → Geometry Primitives → MaterialPoint

2.5.3 メッシュの細かさを指定する領域の設定

メッシュを車体に近い部分は細かく,遠い部分は荒く切る,局所的に細かい領域を設定するなどを行うことで全体のメッシュ規模を大きくせずに計算量の増大を避けながら精度を良くしたい.
メッシュの規模は計算する車両形状や要求される精度にもよるが,ノード数(Nodes)で凡そ 10M nodes 前後(9〜11M)を目安とする.メッシュ作成ができるか?やシミュレーション計算ができるか?のみをまず見るのであれば 6M nodes ぐらいから始めても良いかもしれない.

メッシュを細かさを指定する領域形状は下記項目で設定する.

 Meshes → (複製したメッシュ) → Mesh Operations → Operation 1 (数字は場合による)
  → Geometry Primitives

全体図
2016-09-21 18 27 59

  • メッシュを細かくする領域の例
    • 車体近傍
    • リアウィングなどの後ろ上方
    • 上流よりは下流側
    • 路面と車体の間
    • 細かい車体形状をメッシュに反映したい部分
    • 流路が狭まっている部分
      • ウィングとフラップの隙間
      • ダクト
      • ルーバー など

車体各部の Geometry Primitives
2016-09-21 18 38 42

@y-yosuke
Copy link
Owner Author

(簡潔な文章作成能力が低下しているのかもしれないけど,改めて手順を書いていると長く感じるなぁ...)

@y-yosuke
Copy link
Owner Author

y-yosuke commented Sep 22, 2016

2.5.4 メッシュの細かさレベルの設定

領域 Gemetry Primitives に対してメッシュをどのような細かさにするかは下記項目で設定する.

 Meshes → (複製したメッシュ) → Mesh Operations → Operation 1 (数字は場合による)
  → Mesh Refinements

下図では Geometry Primitives にある領域 Regeon-Car に対して Mesh Refinements 内の
Region - Car Box という項目でメッシュの Level が 3 になるよう指定している.

メッシュの Level などの変更を行ったら [ Save ] ボタンをクリックして保存する.

2016-09-22 14 07 40


メッシュのレベルとは?

メッシュのレベルは最も荒いメッシュを Level 0 としてその辺の大きさが半分になる(=メッシュ数では8倍)のを Level +1 の違いとしている.

最も荒いメッシュの大きさの指定は流体領域 _BaseMeshBox を各軸方向に何等分するかを指定して決めている.

 Meshes → (複製したメッシュ) → Mesh Operations → Operation 1 (数字は場合による)
  → Mesh Refinements → Mesh Operation → ▼Properties → Bounding Box Discretization
   → ▼Properties → Bounding Box geometry primitive _BaseMeshBox
    → Number of cells in x direction [ 100 ]
      Number of cells in y direction [ 10 ]
      Number of cells in z direction [ 20 ]

例えば _BaseMeshBox の大きさが [ x , y , z ] = [ 30 , 3 , 6 ] の場合に上記の分割数とすると Level 0 のメッシュの大きさは [ x , y , z ] = [ 0.3 , 0.3 , 0.3 ] となる.

2016-09-22 14 20 30


車両STLデータを変更すると車両各サーフェス(face sets)に指定したメッシュの細かさの設定は解除される.「2.2 サーフェスに名前を付ける」で設定した face set の名前が以前の車両データと同じでも設定は解除されるので再設定が必要となる.

下図では face set の body に対してメッシュの Level を 5〜6 になるよう指定している.

指定するサーフェスや Level などの変更を行ったら [ Save ] ボタンをクリックして保存する.

2016-09-22 13 44 22

下図では face set の fl-wheel, fr-wheel, rl-wheel, rr-wheel に対してメッシュの Level を 5〜6 になるよう指定している.

2016-09-22 13 55 03

@y-yosuke
Copy link
Owner Author

y-yosuke commented Sep 22, 2016

2.5.5 レイヤーの設定

CFDでは物体表面近くの流れ(境界層)を再現しやすいようにサーフェス近くのメッシュに薄い「レイヤー」を加える手法が採られる.

Layers(メッシュ作成結果)
2016-07-21 17 46 18

ここでは次の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層挿入するよう指定している.

2016-09-22 14 51 25

b. 路面のレイヤー設定

大概は再設定不要(複製した後でも設定は解除されない)

下図では Mesh Refinements の Layer - floor という項目で _BaseMeshBox の Z が最小値になる面
( ▼ Details → Bounding box face [ ZMin ] にて指定)に対してレイヤーを3層挿入するよう指定している.

2016-09-22 15 01 51

@y-yosuke
Copy link
Owner Author

(「実際に行うこと」と「その行うことの理由・説明」をレイアウト的に分けたいけど... 後まわし)

@y-yosuke
Copy link
Owner Author

y-yosuke commented Sep 22, 2016

2.6 メッシュ作成の実行

各設定が終わったらメッシュの作成を実行する.

 Meshes → (複製したメッシュ) → Mesh Operations → Operation 1 (数字は場合による)
  Mesh Operation → [ ▶︎ Start ] ボタンをクリック

 Please confirm(ポップアップ)→ Really start this operation? → [ Yes ] ボタンをクリック

  • 備考
    • メッシュ作成に要する時間は 30分 〜 1時間 ぐらい(32 cores 使用)

2016-09-22 15 22 23

@y-yosuke
Copy link
Owner Author

y-yosuke commented Sep 22, 2016

3. シミュレーション計算

  • シミュレーションの複製
  • メッシュの変更
  • メッシュサーフェス名の設定
  • 流体領域の設定
  • 境界条件の設定
  • 計算条件の設定
  • シミュレーション計算の実行

3.1 シミュレーションの複製

タブを Simulation Designer に移動してシミュレーションの複製を行う.

 Simulations → (既存のシミュレーション) → Actions → Duplicate

必要なら複製したシミュレーションの名称変更を行う.

 Simulations → (複製したシミュレーション)
  → Information → Name [ 新しいシミュレーション名称 ] → [ Save ] ボタンをクリック

3.2 メッシュの変更

2. メッシュ作成 で作成した新しいメッシュに変更する.

 Simulations → (複製したシミュレーション) → Domain
  → Available Meshes → [ 新しく作成したメッシュ ] をクリック

3.3 メッシュサーフェス名の設定

境界条件を設定するメッシュサーフェスに名前を付ける.境界条件ごとに face set にする.

  • walls : _BaseMeshBox の側面および上面
  • symmetry : _BaseMeshBox の対称面(車体中央に位置)
  • floor : 路面
  • inlet : 流入面
  • outlet : 流出面
  • body : 車両ボディサーフェス
  • fr-wheel : 前輪サーフェス
  • rr-wheel : 後輪サーフェス

名前を付ける手順

 Simulations → (複製したシミュレーション) → Domain → Topological Entity Sets
  (画面右側に表示されているモデルのサーフェスをクリックして選択 → 赤色に)
   → [ Create set ] → Name of new set [ walls ](例)→ [ Create ]

設定した symmetry 面を選択した様子
2016-09-22 19 09 27

@y-yosuke
Copy link
Owner Author

y-yosuke commented Sep 22, 2016

3.4 流体領域の設定

メッシュを変更しているので流体部分の Volume がどこになるかを再設定する.

 Simulations → (複製したシミュレーション) → Model → Materials → Air
  → Material → Topological Mapping → Filter for entity types [ volumes ]
   → [レ] region0 をチェック → [ Save ] ボタンをクリック

3.5 境界条件の設定

3.5.1 境界サーフェスの指定

複製したシミュレーションには境界条件の設定は残っているがメッシュを変更したので各境界条件で境界サーフェスに face sets を再設定する必要がある.

 Simulations → (複製したシミュレーション) → Model → Boundary Conditions → (各項目) 

3.5.2 車速の設定

下記の境界条件の例では車速が 30m/s (=108km/h) に相当するように設定しているが,速度を変更したい場合には次の項目を変更する必要がある.

  • 流入速度
  • 路面速度
  • 各ホイールの角速度

3.5.3 ホイールの回転設定

車体やホイールの大きさによって前後輪の回転軸の位置や方向,角速度が変わるので各関連項目を変更する必要がある.

fr-wheel の境界条件の設定の様子
2016-09-22 22 43 04


  • Boundary Conditions
    • inlet
      • face sets : inlet
      • Type : Velocity inlet
        • x value [m/s] : 30 (流入速度)
    • outlet
      • face sets : outlet
      • Type : Pressure outlet
    • symmetry
      • face sets : symmetry
      • Type : Symmetry
    • side-walls
      • face sets : walls
      • Type : Wall - Slip
    • floor : 路面
      • face sets : floor
      • Type : Wall - Moving wal velocity
        • x value [m/s] : 30 (路面速度)
    • fr-wheel
      • face sets : fr-wheel
      • Type : Wall - Rotating wall velocity
        • Origin (車軸の原点)
          • x value [m] : 0
          • y value [m] : 0
          • z value [m] : 0.172
        • Axis of rotation (車軸の向き/ベクトル)
          • x value [m] : 0
          • y value [m] : -1
          • z value [m] : 0
        • Angular velocity [rad/s] : 106.38 (車軸の角速度)
    • rr-wheel
      • face sets : rr-wheel
      • Type : Wall - Rotating wall velocity
        • Origin
          • x value [m] : 2.65
          • y value [m] : 0
          • z value [m] : 0.18
        • Axis of rotation
          • x value [m] : 0
          • y value [m] : -1
          • z value [m] : 0
        • Angular velocity [rad/s] : 103.45
    • body
      • face sets : body
      • Type : Wall - No-slip

@y-yosuke
Copy link
Owner Author

y-yosuke commented Sep 22, 2016

3.6 計算条件の設定

  • 計算回数などの設定
  • 力・空力係数の計算設定

3.6.1 計算回数などの設定

CFD では繰り返し計算を行い解を収束させていくのでその回数を何回まで行うのかを End time value で設定する.

最初のシミュレーション計算では長めに1500〜2000回ぐらいを設定して,解や次項で説明する力・空力係数が収束する回数を見極め,その次のシミュレーション計算で回数を少なくすると限られた core hours を有効に使える.

 Simulations → (複製したシミュレーション) → Simulation Control

  • 設定変更を行う可能性のある項目
    • End time value [s] : 1500 (単位は [s] となっているが繰り返し計算の回数の設定)
    • ▼ Details → Write interval (simulation time steps) : 750
      • (計算結果の保存を行う繰り返し計算回)
        • = 全体で1500回 保存回750回毎 なら 0, 750, 1500 の計算終了時に結果が保存される

2016-09-22 22 51 04

3.6.2 力・空力係数の計算設定

車両に加わる力の合計および Cd や Cl, Clf, Clr などの空力係数の算出を行うために Result Control の設定を行う.

 Simulations → (複製したシミュレーション) → Result Control → Force and moments → (各項目)

  • 算出項目
    • body-wheels_force (ボディ・ホイールに加わる力の合計を算出)
    • body-wheels_coefficient (ボディ・ホイールに加わる力から算出される空力係数)
    • body_coefficient (ボディに加わる力から算出される空力係数)
  • 備考
    • SimScaleでは(OpenFOAMでは?)力の合計は圧力と粘性抵抗が別に計算されるのであまり実用的ではなく空力係数を性能判断に用いるが,空力係数の計算が合っているかを手計算で確認出来るので算出
    • ホイールベースや車速に変更が無ければ再設定を行う必要があるのは各 fece sets のみ

body-wheels_force(ボディ・ホイールに加わる力の合計を算出)
2016-09-22 23 29 44

  • body-wheels_force
    • Faces for force calculation
      • body
      • fr-wheel
      • rr-wheel
    • Center of rotation (路面上のホイールベース中心に設定)
      • x value [m] : 1.325 (ホイールベースの中心)
      • y value [m] : 0
      • z value [m] : -0.11 (路面高さ)
    • Write control → ▼ Details
      • Write interval (simulation time steps) : 50(例/計算実行毎回数)

body-wheels_coefficient (ボディ・ホイールに加わる力から算出される空力係数)
2016-09-22 23 37 01
2016-09-22 23 38 54

  • body-wheels_coefficient
    • Faces for force calculation
      • body
      • fr-wheel
      • rr-wheel
    • Center of rotation (路面上のホイールベース中心に設定)
      • x value [m] : 1.325
      • y value [m] : 0
      • z value [m] : -0.11
    • Freestream velocity magnitude → ▼ Properties
      • Freestream velocity magnitude value [m/s] : 30 (車速=代表流速)
    • Reference length → ▼ Properties
      • Reference length value [m] : 2.65 (ホイールベース=代表長さ)
    • Reference area → ▼ Properties
      • Reference area value [m^2] : 0.645 (前面投影面積)
    • Write control → ▼ Details
      • Write interval (simulation time steps) : 50(例/計算実行毎回数)

body_coefficient (ボディに加わる力から算出される空力係数)
2016-09-22 23 53 44
2016-09-22 23 54 05

  • body_coefficient
    • Faces for force calculation
      • body
    • Center of rotation (路面上のホイールベース中心に設定)
      • x value [m] : 1.325
      • y value [m] : 0
      • z value [m] : -0.11
    • Freestream velocity magnitude → ▼ Properties
      • Freestream velocity magnitude value [m/s] : 30 (車速=代表流速)
    • Reference length → ▼ Properties
      • Reference length value [m] : 2.65 (ホイールベース=代表長さ)
    • Reference area → ▼ Properties
      • Reference area value [m^2] : 0.645 (前面投影面積)
    • Write control → ▼ Details
      • Write interval (simulation time steps) : 50(例/計算実行毎回数)

各設定値参考図
coefficient-calc-setting

@y-yosuke
Copy link
Owner Author

y-yosuke commented Sep 22, 2016

3.7 シミュレーション計算の実行

  • Simulation Run の作成
  • Simulation Run の実行

3.7.1 Simulation Run の作成

各設定が終わったらシミュレーション計算を実行する.まずは Simulation Run を作成する.

 Simulations → (複製したシミュレーション) → Simulation Runs → [ + New ] ボタンをクリック
  → Create new run (ポップアップ) → [ Create ] ボタンをクリック

    • Create new run のポップアップで Name of new run は編集できるようになっているが編集してしまうと計算結果が保存出来なくなることがあるのでこの時点では絶対に編集をしない.名前の変更を行いたいときは計算が終了して結果が保存された後に名前の編集を行う.
    • Simulation Run には設定が Settings 以下に静的に格納されるのでその内容も時間があれば確認

2016-09-23 0 11 50

3.7.1 Simulation Run の実行

Simulation Run を作成したら,その実行を行う.

 Simulations → (複製したシミュレーション) → Simulation Runs
  → Run 1 → Simulation Run → [ ▶︎ Start ] ボタンをクリック
   → Please confirm (ポップアップ) Really start this simulation run? → [ Yes ] ボタンをクリック

  • 備考
    • 10M nodes のメッシュ・繰り返し800回のシミュレーション計算時間は 3時間 ぐらい(32 cores 使用)

2016-09-23 0 21 02

@y-yosuke
Copy link
Owner Author

(ザザッとシミュレーション計算まで書いた.結構長いよ...)

@y-yosuke y-yosuke changed the title 「Webではじめる自動車空力開発 - SimScale CFD Simulation -」 「Webではじめる自動車空力開発 - SimScale Aerodynamic Simulation -」 Sep 22, 2016
@y-yosuke
Copy link
Owner Author

(英語で書いた方が貢献できるような気もするけど... まぁ英語なら SimScale の Help に書いてあるし... でも Forum から拾ってきたネタもあるし... やっぱ英語でも書いた方が... の循環なう)

@y-yosuke
Copy link
Owner Author

y-yosuke commented Sep 23, 2016

4. シミュレーション結果を見る

  • Solver Log
  • 解の収束のグラフ
  • グラフィカルに表示
    • Post-Processor (BETA)
    • ParaView

4.1 Solver Log

力や空力係数の計算結果は Solver Log にまとまって記されてる.

 Simulations → (計算したシミュレーション) → Simulation Runs → Run 1 → Solver Log

  • 備考
    • Cl, Cl(f), Cl(r) は設定で Lift 方向を上 ( 0, 0, 1 ) にしているので,ダウンフォースはマイナスの値
    • 表示されるのは直近の500行のみ

2016-09-23 15 20 28

Time = 800
smoothSolver: Solving for Ux, Initial residual = 1.98094240616e-05, Final residual = 9.66601990653e-06, No Iterations 1
smoothSolver: Solving for Uy, Initial residual = 7.31260818588e-05, Final residual = 6.1870830769e-06, No Iterations 4
smoothSolver: Solving for Uz, Initial residual = 6.2604945439e-05, Final residual = 9.19228291559e-06, No Iterations 3
GAMG: Solving for p, Initial residual = 0.000718999071727, Final residual = 9.70743626569e-07, No Iterations 13
GAMG: Solving for p, Initial residual = 5.62974494733e-05, Final residual = 8.96078107978e-07, No Iterations 5
GAMG: Solving for p, Initial residual = 5.12143699452e-06, Final residual = 7.34864647736e-07, No Iterations 2
time step continuity errors : sum local = 1.57985722188e-07, global = 9.94975392262e-12, cumulative = -6.19812465077e-06
smoothSolver: Solving for omega, Initial residual = 8.70734785119e-06, Final residual = 8.70734785119e-06, No Iterations 0
smoothSolver: Solving for k, Initial residual = 7.93543914947e-05, Final residual = 6.03825035892e-06, No Iterations 4
ExecutionTime = 9447.2 s ClockTime = 9489 s
forces forces00 output:
sum of forces:
pressure : (193.594173988 -212.110703092 -75.7760171924)
viscous : (17.3917652795 -1.08442962181 1.11069449078)
porous : (0 0 0)
sum of moments:
pressure : (89.2308128353 39.431771951 87.3466997841)
viscous : (-0.291788799091 9.8484672478 11.4303927196)
porous : (0 0 0)
forceCoeffs forceCoeffs02 output:
Cm = 0.0299764568244
Cd = 0.440050754546
Cl = -0.251531019826
Cl(f) = -0.0957890530888
Cl(r) = -0.155741966738
forceCoeffs forceCoeffs01 output:
Cm = 0.0495514285929
Cd = 0.562189539161
Cl = -0.198951946782
Cl(f) = -0.049924544798
Cl(r) = -0.149027401984
End
Finalising parallel run

@y-yosuke
Copy link
Owner Author

y-yosuke commented Sep 23, 2016

(章番号の構成が崩壊ぎみ... まとめる機会があれば整える)

@y-yosuke
Copy link
Owner Author

y-yosuke commented Sep 23, 2016

4.2 解の収束のグラフ

解の収束の様子を示したグラフは2ヶ所で見ることができる.1つは Simulation Designer タブ上で

 Simulations → (計算したシミュレーション) → Simulation Runs → Run 1 → Convergence plots

2016-09-23 16 14 43

もう1ヶ所は Post-Processor タブ内の

 Simulations → (計算したシミュレーション) → Run 1 → Convergence plot

2016-09-23 16 28 14

また力や空力係数の計算値の推移もプロットされる.Post-Processor タブ内の

 Simulations → (計算したシミュレーション) → Run 1
  → Force plot → body-wheels_force
  → Force coefficients plot → body_coefficietnt
               → body-wheels_coefficietnt

2016-09-23 17 07 05

@y-yosuke
Copy link
Owner Author

y-yosuke commented Sep 23, 2016

4.3 グラフィカルに表示

  • Post-Processor (BETA)
  • ParaView

4.3.1 Post-Processor (BETA)

Post-Processor タブ内でグラフィカルに表示することもできるがBETA版ということで ParaView の使用を勧められる.

 Simulations → (計算したシミュレーション) → Run 1 → Solution fields

2016-09-23 19 17 26

レンダリングの設定をローカルにすると動作が少し軽くなるかも?ならないかも?重くなるかも?

 (右上)Configuration → Rendering Mode → Local にスイッチ

4.3.2 ParaView

PCにインストールした ParaVIew でシミュレーション結果を見るために計算結果のダウンロードを行う.SImulation Designer タブ内で

 Simulations → (計算したシミュレーション) → Simulation Runs → Run 1
  → Solution Run → [ Results ▼ ] → Download results

2016-09-23 19 43 59

ダウンロードしたデータはZIP形式なので展開する.

ParaView を起動する.
ダウンロードしたZIPファイルを展開して出来たフォルダ内にある case.foam というファイルを開く.

ParaView はデータに対して Filter を縦列・並列に加えて結果を見やすくするので Filter をいろいろ適用してみる.

2016-09-23 20 12 13

@y-yosuke
Copy link
Owner Author

結果プロットページから CSV, XLS がダウンロード出来るようになっていた.
2017-07-18 14 00 00

@y-yosuke
Copy link
Owner Author

GitHub の Issue のコメントの画像リンクをそのまま SimScale の Forum に貼ると
SimScale の System が勝手に SimScale 側に画像をダウンロードしてリンクを差し替えるようだ.

@y-yosuke
Copy link
Owner Author

Geometry operation がこけるな.

@y-yosuke
Copy link
Owner Author

こけてるのでなく集中的な使用の制限なのかな???

@y-yosuke
Copy link
Owner Author

y-yosuke commented Jul 22, 2017

おー? Geometry Operation が転ける?帰ってこない?原因が2つに絞られたような気がする.

  • STLファイル容量をZIP圧縮前でも 300MB すると転けない? それを超えると転ける?
    • 単にアップロードするときのファイル制限が 300MB かと思っていたので 300MB を超えるSTLファイルも単にZIP圧縮してアップロードしていたがそうではない?
    • 確かに Geometry Operation が 2 cores での計算なのでメモリーもそれなりに割当てが小さい
    • STLエクスポートをするときに精度を 0.1mm から 0.12mm にするなどしてサイズを小さく
  • Geopetry Operation の [ Start ] ボタンを押す前に [ Save ] ボタンを押すと転けないかも...(弱い)

本件,別 Issue にすれば良かった.

@y-yosuke
Copy link
Owner Author

Geometry Operation 転ける原因の件,確定ではないが安全側なので 2点 Wiki を修正しておいた.

@y-yosuke
Copy link
Owner Author

ファイルサイズ 300MB とか [ Save ] ボタンを押すとかしても帰ってこないな.別の何かか...

@y-yosuke
Copy link
Owner Author

手元の Mac の MeshLab でスケール変換フィルタ処理を行っても
同じデータで成功するときもあれば失敗して MeshLab が落ちるときもあるので
現状,そういうものなのかもしれない.

ならば,手元でスケール変換が成功したものを Upload して SimScale 側で Geometry Operation をする必要をなくした方が確実かな.それを試す.

@y-yosuke
Copy link
Owner Author

MeshLab が落ちるのはバージョンを 2016.12 から 1.3.3 に戻したら落ちなくなった.
もしかして SimScale の中身も同じような感じ???

@y-yosuke
Copy link
Owner Author

MeshLab の Scale の挙動もいまいち理解してないんだよね.
Scale したはずなのにエクスポートしたら元通りだったり.
手順的な理由はあるんだろうけど何かやってちゃんと出来てたらそれでいいやって感じになってしまう.

@y-yosuke
Copy link
Owner Author

MeshLab でスケールしてからアップロードしたSTLからメッシュ切れた.これだな.
2017-07-23 13 39 52

@y-yosuke
Copy link
Owner Author

y-yosuke commented Jul 23, 2017

200 core hours / 6 hours の制限が有料の Professional Plan にはあるとのことで
無料の Community Plan にも何らかの集中的な利用に対する制限があるのかも?

ちなみに,いまのシミュレーションの大体の core hours は

  • Meshing : 35 core hours @ 1.1 hour 32 cores
  • Simulation : 120 core hours @ 3.8 hours 32 cores
  • Total : 155 core hours @ 4.9 hour 32 cores

で,STL Upload, Set-up, CFD Result Download の時間がかかるから,
まぁ 200 core hours / 6 hours にはかからないかな.変な Job が残っていたらかかるかも?

@y-yosuke
Copy link
Owner Author

y-yosuke commented Jul 25, 2017

Wiki 用画像の貼付

2017-07-25 18 42 56
2017-07-25 18 43 26
2017-07-25 18 41 09
2017-07-25 18 41 51
2017-07-25 18 42 23

@y-yosuke
Copy link
Owner Author

SimScale に Rhinoceros のデータ *.3dm を直接 Upload できるようになっている.
ちゃんとメッシュを切れるか試してみるか.

@y-yosuke
Copy link
Owner Author

ダメだ.サーフェスに欠損がある.
2018-02-14 12 01 30

@emijah
Copy link
Collaborator

emijah commented Feb 14, 2018

翻訳するのであれば、手伝えるところは手伝いますよ。

@y-yosuke
Copy link
Owner Author

ありがとうございます. @emijah

Rhino ファイルのアップロードは新しい機能ですが
複雑なモデルでは STEP と同じように向いていないようです.

結局 STL でモデルのアップロードをするので,
今のところ既に GitHub 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

また何か書く必要があるときに翻訳などお願いするかもしれません.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants