スポーツカーの紹介記事で流体シミュレーションの画像を見かけたことがあります。誰かカブでもやってみてくれないかなぁとか思っていたのですが、ネットでフリーの流体解析ソフト"Flowsquare"を見つけました。素晴らしいことに複雑な数式を見るとフリーズする脳みそな私でも使える(自分の意図したものかどうかは別にして結果は出る)という便利なものです。
早速、我が家のカブをシミュレーションにかけてみました。
環境
FlowsquareはWindows版のみ提供されています。Windows10は動作対象にありませんでしたが、動作するようです。機能的な制約無しにフリーで使用出来ますが、寄付することでシミュレーション速度がアップするようです。
- OS:Windows10 64bit
- 流体シミュレーションソフトウェア:Flowsquare ver 4.0
- 解析対象:プレスカブ(風防+リアボックス付き)
シミュレーションの前準備
まず、Flowsquareをダウンロードして適当なフォルダに配置します。展開して出てくる"flowsquare.exe"が本体です。同じ階層にある"bc.bmp"と"grid.txt"がシミュレーションの設定ファイルになります。"bc.bmp"に解析対象の形状等を、"grid.txt"に解析パラメータを記載します。
パラメータの細かいところは私の学力不足ゆえに理解不能なため、Flowsquareのサイトにある車の解析サンプルをベースとして必要な箇所をカブ向けに書き換えました。
- Flowsquare - 車周りの流れ
http://flowsquare.com/jp/2013/12/18/flow-around-a-car/
bc.bmp
カブの車体を写真に撮り、そこからカブ形状を切り出しました。ドライバーはネットからドライバーさんの写真をお借りして加工させて頂きました。また、本来のシミュレーションでは車体の前方に車体の10倍、上方10倍、後方20倍くらいの空間を確保する必要があるそうなのですが、シミュレーション時間的にまず無理なので前方3倍、上方5倍、後方6倍としました(画像としてはPC画面に表示可能なFullHDサイズ)。
grid.txt
bc.bmpを弄ったのでそれにあわせてシミュレーション空間のサイズ等のパラメータを変更しました。また、サンプルのままだと数値振動(?)が起きるのかシミュレーション画面が真っ青になって途中で止まってしまいます。そこでフィルタのwfil値を"0.3"にセットしてみました。これだと少なくとも20000stepまでは動作しました。
下記にファイル内容を記載します。
---------- Control File for Flowsquare ver 4.0 (Use SI Unit) ---------- ------------------------- General Control Data ------------------------ 01:cmode 0 // Simulation mode, 0:non-reac, 1:premixed, 2:non-premixed, 3:Euler, 4:analysis 02:nx 1920 // No. grid points 03:ny 1080 // No. grid points 04:lx 19.7 // Domain x-size 05:ly 11.1 // Domain y-size 06:sts 10200 // Start time step (new simulation starts from sts=0) 07:latts 20000 // End time step 08:cflfac 8 // Delta t factor (more is better, but typically 10-1000) ---------------- Numerical Scheme, Smoothing & Accuracy --------------- 09:iorder 3 // 0: low order, 1: high order, 2:2nd+LW, 3:4th+LW 10:nfil 1 // Interval time steps for filtering 11:wfil 0.3 // 0.1 // Relaxation parameter for filtering 12:omega 1.8 // Relaxation parameter for Poisson Eq (for cmode=0-2) 13:peps 1.0E-1 // Convergence limit for Poisson Eq (for cmode=0-2) 14:loopmax 100 // Maximum no. of iteration for Poisson Eq (for cmode=0-2) 15:wdrho 1.0 // Factor for d(rho)/dt (0<=wdrho<=1.0, 1 is ideal for cmode=1&2) ------------------ General BC and Global IC (White) ------------------- 16:perikey 0 // 0: no peri, 1: x-peri, 2: y-peri, 3: all peri 17:pres0 1.0E+05 // Pressure in Pa (atmospheric: 1.0E+05 Pa) 18:uin0 20.0 // Initial u 19:vin0 0 // Initial v 20:rho0 1.2 // Initial density (for cmode=0,3) 21:temp0 0 // Initial temperature (for cmode=1,2) 22:scalar0 0 // Initial Mixture fraction (for cmode=2) ------------------ BLUE Local BC and/or IC (optional) ----------------- 23:uin1 20.0 // U 24:vin1 0 // V 25:rho1 1.2 // Density (for cmode0,3) 26:temp1 0 // Temperature (for cmode1,2) 27:scalar1 0 // Mixture fraction (for cmode2) ------------------ RED Local BC and/or IC (optional) ------------------ 28:uin2 0 // U 29:vin2 0 // V 30:rho2 0 // Density (for cmode0,3) 31:temp2 0 // Temperature (for cmode1,2) 32:scalar2 0 // Mixture fraction (for cmode2) ---------- PINK Local BC and/or IC (pure air flow, optional) ---------- 33:uin3 0 // U 34:vin3 0 // V 35:temp3 0 // Temperature --------------- BLACK Wall Boundary Condition (optional) -------------- 36:tempw 0 // Temperature (0: free, for cmode1,2) -------------- GREEN Moving Boundary Condition (optional) ------------- 37:imb 1 // 0:one-time, 1:periodic 38:umb 20.0 // U of moving boundary 39:vmb 0 // V of moving boundary 40:tempmb 0 // Temperature (0: free, for cmode1,2) ------------- YELLOW Scalar Boundary Condition (optional) ------------- 41:scalarT 0 // Local scalar value which might be used as tracer ---------- Transport Properties & Thermochemical Conditions ----------- 42:mu 2E-5 // Dynamic viscosity of mixture 43:R 0 // Specific gas constant J/kg K (for cmode=1,2) 44:diff 0 // Diffusivity of mixture (for cmode=1,2,yellow BC) 45:Tu 0 // Unburnt temperature (for cmode=1) 46:Tb 0 // Burnt (flame) temperature (for cmode=1,2) ------------------- Chemical Reaction (for cmode=1) ------------------- 47:krate 0 // Rate onstant 48:Trate 0 // Activation temperature 49:nrate 0 // Rate ~ rho*k*exp(-Ta/T)*T^n 50:cF 0 // Progress variable at which flame locates (optional for vis) --------------- Non-Premixed Reacting Flow (for cmode=2) -------------- 51:Xst 0 // Stoichiometric mixture fraction at which flame locates 52:sigma 0 // Relaxation parameter for density change (0<=sigma<=1, 1 is ideal) -------------------------- Display & Output --------------------------- 53:box 1 // Pixel size of one grid point 54:nfig 50 // Interval time steps for figure output (0:off) 55:nfile 100 // Interval time steps for dump file output (0:off) 56:bcdisp 1 // Display wall boundary (0:off, 1:on) 57:idisp 4 // 0:off,1:rho,2:u,3:v,4:spd,5:vrt,6:T,7:rate,8:c/xi,9:P 58:cmax 0 // Scale (max). 0:auto scale 59:cmin 0 // Scale (min). 0:auto scale 60:icolor 0 // 0:Jet,1:Rainbow,2:Nishiki,3:Gray,4:Gray(inv),5:Hot,6:Sea,7:Leaf 61:icont 0 // (Reaction front) contour line (0:off,1:blck,2:red,3:grn,4:bl,5:wht) 62:linewidth 0 // Line width of contour line (1, 3, 5 or 7) 63:ivec 1 // Velocity vector (0:off,1:blck,2:red,3:grn,4:bl,5:wht) 64:ndiv 10 // Interval grid points between displayed vectors (0:auto) 65:vecsize 2 // Pixel size of vector arrow (0:auto) ------------------ Lagrangian Trajectory (optional) ------------------- 66:lagkey 0 // 0:off,1:x, 2:y,3:x-x,4:y-y 67:lagcolor 0 // 0:black, 1:white 68:lagsize 0 // Pixel size of particles 69:nlagra 0 // Interval time steps of restart (>=100) 70:npart 0 // No. particle (>=1000) ------------------------ Body Force (optional) ------------------------ 71:gfx 0 // X-body force 72:gfy 0 // Y-body force 73:dref 0 // Reference density. 1:max, 2:middle, 3:min density as reference ------------------- Initial Perturbation (optional) ------------------- 74:pmode 0 // Mode of perturbation 0:off, 1:single mode, 2:multi, 3:multi (random amp.) 75:umag 0 // Velocity amplitude (m/s) 76:nwave 0 // Number of waves in x-direction -------------------------------- Others ------------------------------- 77:nwait 0 // Wait time ----------------------------------------------------------------------- #End of file
シミュレーション
パターン
我が家のスーパーカブには風防とでっかいホムセン箱が付いています。今は50ccなんで30km/hのとろとろ走行です。多分、多少ヘンテコな形状になっていても影響は少ないでしょう。しかしそのうちボアアップして60km/h出すぜ、という野望があるので風防とホムセン箱の影響を調べてみることにしました。
モデルとして以下のものをシミュレーションを走らせて、結果を見比べてみたいと思います。
- 現状のカブ
我が家の現状そのままです。風防とリアボックスとしてホムセン箱がついた状態です。 - ホムセン箱なし
リアボックスを取り払った状態です。風防はついています。 - 風防なし
風防を取り払った状態です。リアボックスはついています。 - 風防角度を45度に変更
風防の角度をさらに鋭角に倒して45度にしてみました。リアボックスはそのままです。 - ドライバー無し(!)
無人で走るカブ、ナイト2000状態です(笑)。人間の体がどれくらい影響しているのか見ることにしました。
シミュレーション結果
現状のカブ
風防がいい仕事をしているのが分かります。ちょうどメットの真上を風が吹き抜けている感じで、実走行でも同じように感じました。
ホムセン箱の影響が思ったほどなさそうなのがちょっと意外です。前方にそれより表面積のあるドライバーがいるので影響少ないのかな。
車体周辺の流速
車体周辺の圧力
ホムセン箱なし
リアボックスのでかい箱を取り去ってみました。この箱はカブが我が家にきてすぐに取り付けたもので(メットの格納スペースが無かったゆえ)、素の状態というのをほとんど体験していません。
車体周辺の流速
車体周辺の圧力
風防なし
今度はリアボックスと風防を取り去ってみました。カブとして素の状態ですね。前方から風がドライバーの顔面を直撃しているのが分かります。
車体周辺の流速
車体周辺の圧力
風防角度を45度に変更
私のカブはステーを曲げてオリジナルより若干手前に角度をつけてあります。それをさらに倒して45度にしてみました。
すると、風はメットに当たるようになったものの車体前後の圧力が改善しているように見受けられます。圧力差が減ったということは抵抗も減少しているはずです。燃費的にはこれくらい倒したほうがいいのかもしれません。
車体周辺の流速
車体周辺の圧力
ドライバー無し
最後はドライバー無しです。これと風防/リアボックスありの結果を見比べると、うーん、ドライバー周辺はあまり差が無いように見えます。風防とリアボックスに守られているのかな。
車体周辺の流速
車体周辺の圧力
所感
モデル形状を変えるとどう影響するのかが視覚的に見えるのが面白いですね。エアロパーツの自作なんかにも便利ではないでしょうか。
大抵はモデルを変更して実行してやれば最後までシミュレーションが行われますが、何度かやっていて上手くいかずある程度時間が経過すると画面が真っ青になることがありました。これはガイドにある計算が発散している状態なのでしょうか。wfil(フィルター操作に関する緩和係数)というパラメータを1に設定するとシミュレーションが進むようになりました(きっと数式が分かれば理解が進むのでしょう。腰を据えて勉強してみようかな)。
また、モデルである"bc.bmp"のサイズが大きければ大きいほどシミュレーションに要する時間が増加しました。本家サイトにも以下のように記載されています。
Flowsquareでは差分法を使って計算するので格子点数は一般的に多ければ多いほど良いです。しかし、格子点数の増加は2乗で計算時間の増加に寄与します。
今回は1920x1080という馬鹿でかいサイズ(本来のシミュレーションは更に大きいそうなのですが。。。)で実行したため、20000stepのシミュレーションを終えるのに3日(!)を要してしまいました。バイクや車のパーツを自作するのにシミュレーションを走らせる場合には、もっとサイズを小さくして限定的に見た方がよさそうです。
参考
この記事は以下のサイトを参考に記載させて頂きました。
- Flowsquare
http://flowsquare.com/jp/ - みんカラ - フリーの空力解析ソフトで遊んでみる
http://minkara.carview.co.jp/userid/687338/blog/35879728/ - MONOist - 無償ソフトで流体解析(5):流体解析の安定性とクーラン条件 (2/2)
http://monoist.atmarkit.co.jp/mn/articles/1603/07/news022_2.html - 得手に帆あげて tw-idea - 空力特集 「空気抵抗の色々」
http://www.geocities.jp/f1tw_idea/aerodynamics/drag/report.html - 得手に帆あげて tw-idea - 「4代目プリウスの写真と空力学考察」
http://www.geocities.jp/f1tw_idea/box/photo/prius4/aero.html - 自転車探検! - 空気抵抗
http://www.geocities.jp/jitensha_tanken/air.html - 高橋エコラン実験室 - 流体力学
http://www8.wind.ne.jp/takumi/s06.html - mr.Bike - スーパーカブのすべて スーパーカブ50インプレッション
http://www.m-bike.sakura.ne.jp/feature/cub/cub_inp50-01.html - モータースポーツ塾 - 第3回 ひと筋縄ではいかない! ツーリングカーの空力
https://www.mooncraft.jp/yuratakuya/juku/kuuriki/3.html