以下、添付図面を参照して本発明の実施形態を詳細に説明する。
〔第1実施形態〕
図1は、本発明の一実施形態にかかる流体解析による処理を実行するためのコンピュータ装置の構成の一例を示すブロック図である。本実施形態の流体解析による処理は、予め用意されたシミュレーションプログラム112をコンピュータ装置100で実行することによって実現できる。
コンピュータ装置100は、各種演算処理を実行する中央演算処理装置CPU(Central Processing Unit) (以下、「CPU」と記す。)101と、主にグラフィック処理に関する演算を行うための画像演算処理装置 (Graphical Processing Unit) (以下、「GPU」と記す。)115と、データ入力を受け付ける入力装置102と、表示装置103とを有する。また、コンピュータ装置100は、記憶媒体からプログラム等を読み取る媒体読取装置104と、各種装置と接続するためのインタフェース装置105と、他の情報処理装置等と有線または無線により接続するための通信装置106とを有する。また、コンピュータ装置100は、各種情報を一時記憶するRAM107と、ハードディスクドライブなどの記憶装置108とを有する。また、各装置101~108は、データが双方向に送信されるバス109に接続される。
記憶装置108には、後述する図2に示す各種解析処理を実行するシミュレーションプログラム112が記憶されている。また、記憶装置108には、シミュレーションプログラム112を実現するための各種パラメータデータ(流体の物性データ、流体が作用する物体の構造データ)が記憶される。入力装置102は、シミュレーションのための各種入力データの入力を受け付ける。表示装置103は、例えば液晶ディスプレイなどであって、シミュレーションの操作画面、結果画面等の各種画面を表示する。インタフェース装置105には、例えば印刷装置等が接続される。通信装置106は、例えば、他の情報処理装置と接続され、ユーザが遠隔地からリモート接続でコンピュータ装置100を操作する情報等の各種情報をやりとりする。
なお、上記のシミュレーションプログラム112は、必ずしもコンピュータ装置100内の記憶装置108に記憶されている必要はない。例えば、コンピュータ装置100が読み取り可能な記憶媒体に記憶されたプログラムをコンピュータ装置100が読み出して実行するようにしてもよい。ここでいうコンピュータ装置100が読み取り可能な記憶媒体は、例えば、CD-ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、外付けハードディスクドライブ等が対応する。
また、LAN(Local Area Network)等の小規模(屋内)の通信ネットワーク113を介して接続されたデータベース110や、インターネットなどの大規模(屋外)の通信ネットワークWを介して接続されたデータベース111にシミュレーションプログラムを記憶させておき、コンピュータ装置100が通信装置106によるこれらデータベース110,111との通信によってシミュレーションプログラムを読み出して実行するようにしてもよい。
CPU101及びGPU115は、ハードディスク装置108などに記憶されたシミュレーションプログラム112を読み出して、RAM107に展開して実行することで各種の処理を行う。シミュレーションプログラム112は、コンピュータ装置100を図2及び図4に示す本実施形態の流体の流れ解析に関する各種処理を実行する装置(ハードウェア)として機能させることができる。
すなわち、CPU101又はGPU115は、シミュレーション対象(設計対象物)の形状データ、流体のデータ等を用いて、粒子法のアルゴリズムとして、例えばMPS (Moving particle semi-implicit) 法に基づいて、流体のシミュレーション計算を行う。MPS法自体は公知であるためここではその詳細の説明は省略するが、MPS法は、連続体の離散的な計算を、粒子間相互作用モデルを用いて行う。また、MPS法では、粒子に対して所定の基準半径以内にある近接の粒子が、その粒子に対して相互作用を与えると仮定する。
図2は、本発明の一実施形態にかかる流体の流れ状態解析(Simulation method)の全体の構成を示すブロック図である。なお、ここでの解析対象は、車両(解析対象物)が一定速度で走行中にボディ正面のフロントグリル部(エアダクト)を通ってエンジンルーム内に流入する空気(粒子)の流れ状態(粒子の位置・速度・圧力)としている。
同図に示すように、本流れ解析は、後述する解析対象物の解析用形状モデル(以下、「STLモデル(STL model)」という。)の準備ならびに粒子及び車両に関する各種パラメータの入力(設定)を行うデータ入力プロセスST1-1と、入力された各種パラメータに基づいてGPU115上でシミュレーションプログラム(solver)112を実行する演算プロセスST1-2と、シミュレーションプログラム112の実行結果(演算結果)を所定のコード及び所定のファイル形式で記憶装置108等の周辺装置に出力するデータ出力プロセスST1-3と、シミュレーションプログラム112の演算結果を基に流体(粒子)の流れ状態を可視化(着色化)する可視化プロセスST1-4と、を主に構成される。以下、各プロセスについて説明する。
データ入力プロセスST1-1は、STLモデル作成プロセス(CAD model to STL)121と、流体(粒子)の初期状態量及び各種物性値を入力する粒子パラメータ設定プロセス(Initial fluid(particle)property and parameter setting)122と、解析対象物(車両)に関する各種特性パラメータを設定する解析対象物の特性パラメータ設定プロセス(Configuration setting for models)123と、から構成される。
図3は、図2のSTLモデル作成プロセス(CAD model to STL)121を示す説明図である。図3(a)は、CAD等の描画作成ソフトによって作成された車両に関する三次元CAD形状モデル(3D CAD model)である。図3(b)はSTL(STereoLithography)モデル(以下、「STLモデル(STL model)」という。)である。このSTLモデル(STL model)は、三次元CAD形状モデル(3D CAD model)の表面(Surface)の一部又は全部を、図3(c)に示される三角形平面(以下、「STL三角平面(STL triangle)という。」)で分割することによって作成される。
従って、解析対象物である車両のSTLモデル(STL model)は、STL三角平面(STL triangle)を基に構成されている。そのため、詳細については後述するが、STLモデルの表面に接する接平面の方程式を容易に決定することができ、その接平面によって粒子の追跡、可視化(着色化)が極めて容易となる。なお、1又は複数のSTL三角平面(STL triangle)を含むSTLモデル(STL model)表面の一部分(A部等)を、特にSTL部分平面(STL plate)と呼び、STL部分平面(STL plate)を含む接平面のことをSTL包絡平面(STL plane)と呼ぶことにする。
図4は、図2の粒子パラメータ設定プロセス(Initial fluid(particle) property and parameter setting)122と、車両の特性パラメータ設定プロセス(Configuration setting for models)123とを示す説明図である。なお、ここでの粒子源(ソース)は、車両のボディ正面のフロントグリルを通ってエンジンルーム内に流入する粒子源(ソース1,2,3)としている。先ず粒子に関する初期値入力(Initial particle(fluid) setting)として、粒子間距離(Particle Distance)、半径影響係数(Radius Influence Coefficient)、各粒子の初期位置(Initial Particle Position)、初期速度(Initial Velocity)、初期圧力(Initial Pressure)、初期温度(Initial Temperature)及び初期粘度(Initial Viscosity)を入力する。なお、上記値は風洞試験結果(wind tunnel experiment)に基づいて決定される。これにより、各ソース1,2,3の初期条件が決定される。従って、後述する粒子の追跡演算(Source tracking)とは、これら各ソース1,2,3から流出する各粒子の流れ状態をシミュレーションプログラム112によって所定時間幅毎に推定・模擬することを意味している。
さらに、粒子に関するパラメータ(Parameter setting)として、流体の熱特性パラメータ(fluid Thermal Properties)、流体の移動パラメータ(Fluid Marching)、圧力計算パラメータ(Pressure Calculation)、熱特性パラメータに対する乗算係数(Fluid Thermal Properties LW)、空力特性パラメータ(Extra Aerodynamics)等を入力する。
さらに、車両の特性パラメータ設定プロセス(Configuration setting for models)123として、粒子源データ(Bucket_dat)、エンジンルーム内部を構成する各部品の形状パラメータ、例えばラジエータ形状パラメータ(Radiator.stl)、ファン形状パラメータ(Mainfan.stl)、エンジン形状パラメータ(Engine.stl)、触媒形状パラメータ(CAT.stl)、ボディフレーム形状パラメータ(Framework_stl)、フロントグリル形状パラメータ(FR_Grille.stl)、等を設定する。
次に、粒子の初期値及びパラメータ、車両の特性パラメータを基に、粒子の流れ状態を追跡する図2の演算プロセスST1-2について説明する。
図5は、図2の演算プロセスST1-2においてシミュレーションプログラム112によって解かれるナビエ・スト-クス方程式(Navier stokes equation)を示す説明図である。図6はナビエ・ストークスの方程式(Navier stokes equation)を解くための演算プロセス(algorithm)を示すフロー図である。以下、各図について更に説明する。
図5(a)は、流体(粒子)の速度(u)、密度(ρ)、圧力(P)及び粘度(ν)並びに重力(g)の影響を考慮したナビエ・ストークスの方程式(以下、「一般式」という。)である。なお、この一般式の解である流体(粒子)の速度(u)及び圧力(P)はベクトル量である。また、粒子の位置(r)についてもベクトル量であり、粒子の速度(u)を基に別途算出される。
図5(b)は、一般式の右辺の第2項及び第3項を省略した、即ち流体(粒子)の圧力(P)のみを考慮したときのナビエ・ストークス方程式(以下、「第1特殊式」という。)である。また、図5(c)は、一般式の右辺の第1項を省略した、即ち流体(粒子)の粘度(ν)及び重力(g)の影響のみを考慮したときのナビエ・ストークス方程式(以下、「第2特殊式」という。)である。
本実施形態の演算プロセス(図6)では、一般式の解は、第1特殊式の解(u’)と第2特殊式の解(u_*)とのベクトル和(=u_*+u’)として求めている。以下、具体的な演算プロセスについて説明する。
図6に示されるように、シミュレーションプログラム112は、所定時間幅毎に、第k回目の粒子の演算結果(r_k、u_k、P_k)を基にして、最初に第2特殊式を解き、次に第1特殊式を解くことによって、第k+1回目の粒子の速度(u_k+1)、圧力(P_k+1)及び位置(r_k+1)を算出している。
従って、この演算プロセスは結果的に、所定時間幅毎に各粒子の流れ状態を追跡していることになる。従って、図6に示される演算プロセスは、粒子に関する「追跡演算プロセス(Source tracking Process)」である。以下、各ステップについて説明する。
ステップS1では、データ入力プロセスST1-1において入力された粒子のパラメータ及び解析モデルの形状パラメータを取り込む(Input Parameters)。
ステップS2では、粒子の初期位置(r_0)、初期速度(u_0)および初期圧力(P0)を取り込む(Input Initial r_0,u_0,P_0)。
ステップS3では、最新の粒子の位置(r_k)、速度(u_k)及び圧力(P_k)を取り込む(r_k,u_k,P_k)。
ステップS4では、粒子の粘度(ν)と重力(g)の影響を考慮した第2特殊式を解くことによって、粒子の速度(u_*)を算出する(Gravity and Viscosity factor calculation u_*)。
ステップS5では、ステップS4によって算出された速度(u_*)を基に、粒子の位置(r_*=r_k+Δt・u_*)を算出する(Particle Movement r_*=r_k+Δt・u_*)。
ステップS6では、粒子の圧力(P)のみの影響を考慮した第1特殊式を解くことによって、粒子の圧力(P_k+1)を算出する(Explicit Pressure Calculation)。
ステップS7では、ステップS6で第1特殊式の解として算出された粒子の圧力(P_k+1)を基に、粒子の速度(u’)を算出する(Pressure gradient calculation)。
そして、ステップS4で第2特殊式の解として得られた粒子の速度(u_*)と、ステップS7で第1特殊式の解として得られた粒子の速度(u’)との加算値(=u_*+u’)を、第k+1番目の演算における粒子の速度(u_k+1)とする(Velocity correction)。
同様に、ステップS5で第2特殊式の解(u_*)から算出された粒子の位置(r_*)と、ステップS6で第1特殊式の解(u’)から算出された粒子の変位量(Δt・u’)との加算値(=r_*+Δt・u’)を、第k+1番目の演算における粒子の位置(r_k+1)とする(Position correction)。
ステップS8では、データ出力の要求があるか否かを判定する(Is output ?)。データ出力の要求がある場合(YES)はステップS9に進み演算結果を出力する。データ出力の要求がない場合(NO)はステップS10へ進む。
ステップS10では、演算停止要求があるか否かを判定する(Is End ?)。演算停止要求がある場合(YES)は処理を終了する。演算停止要求がない場合(NO)はステップS11へ進み、インデックスk+1をkに置換して次の時刻における粒子の位置、速度および圧力についての演算を実行する。
以上の通り、粒子追跡演算プロセス(Source tracking Process)では、所定時間幅毎に各粒子の位置、速度および圧力を算出し、その追跡演算結果を所定のコード及び所定のファイル形式で記憶装置108に保存している。
以降では、粒子追跡演算プロセス(Source tracking Process)で得られた各粒子の追跡演算結果(解析結果)を基に、流体(粒子)の流れを可視化(着色化)する粒子可視化演算プロセス(Source tracking Process with color)について説明する。
図7は、流体(粒子)の粒子可視化演算プロセス(Source tracking Process with color)を示すフロー図である。なお、説明を容易にするため、流体を構成する粒子の数は1個とする。また、各粒子の追跡演算結果は既に得られているものとする。
ステップS1では、粒子に関する追跡演算結果と、粒子に関連するSTL三角平面(STL triangles)を読み込む(Read the particles and STL(triangles))。
ステップS2では、STL三角平面(STL triangles)を包絡するSTL包絡平面の方程式(ax+by+cz+d=0)を算出する(Find Equation of plane containing Plate:ax+bx+cz+d=0)。
図8は、STL包絡平面の方程式(ax+by+cz+d=0)を決定する算出方法を示す説明図である。平面の方程式は、(1)平面に垂直な法線ベクトルH(=(a,b,c))と、(2)平面上の任意の1点(x1、y1、z1)を決定することにより、一意的に決定される。
図8(a)に示されるように、法線ベクトルHは、STL三角平面(STL triangle)の頂点A,B,Cの各座標を使用して求めることができる。すなわち、法線ベクトルHは、ベクトルABとベクトルACの外積として求められる。
従って、図8(b)に示されるように、ベクトルHのx成分(=a)は、ベクトルAB=頂点A,B,Cの各座標を(Ax、Ay、Az),(Bx、By、Bz),(Cx、Cy、Cz)とするとき、
a=(By-Ay)*(Cz-Az)-(Cy-Ay)*(Bz-Az)、として求められる。
同様に、y成分(=b)およびz成分(=c)は、
b=(Bz-Az)*(Cx-Ax)-(Cz-Az)*(Bx-Ax)、
c=(Bx-Ax)*(Cy-Ay)-(Cx-Ax)*(By-Ay)、
としてそれぞれ求められる。
また、平面の方程式の定数項(=d)は、頂点Aの座標(Ax、Ay、Az)を使用して、
d=-(a*Ax+b*Ay+c*Az)、として求められる。
再び図7に戻って、ステップS3では、粒子が、関連するSTL包絡平面に関し上流側(手前側)か、下流側(向こう側)のどちらの側に位置するかを決定する(Determine Position of particle wrt Plane)。
図9は、粒子が,関連するSTL包絡平面に関し上流側(手前側)か、下流側(向こう側)のどちらの側に位置するかを決定する算出方法を示す説明図である。
図9(a)は、点(x0、y0、z0)と平面(ax+by+cz+d=0)との距離を求める公式(|a*x0+b*y0+c*z0+d|/√(a_2+b_2+c_2)から絶対値を外した式(以下、「相対位置判別式D」という。)に相当する。
相対位置判別式Dは、例えば、粒子(点)が平面の法線ベクトルHに対向する側にある場合は、D<0となり、その逆に粒子(点)が平面の法線ベクトルHに対向しない側にある場合は、D>0となる。
従って、図9(b)に示されるように、相対位置判別式Dの符号を調べることにより、粒子が関連するSTL包絡平面に関し上流側(手前側)か、下流側(向こう側)のどちらの側に位置するかを判定することができる。同時に、粒子がSTL包絡平面を通過したか否かを判定することができる。
再び図7に戻って、ステップS4では、粒子がSTL包絡平面を通過したか否かを判定する(Particle Crossed the plane(position changes)?)。相対位置判別式Dの符号が負から正に変化するときに、粒子がSTL包絡平面を通過したと判定し、ステップS5を実行する。他方、相対位置判別式Dの符号が負のままで変化しない場合は、ステップS9へ進み、粒子は着色されない。そしてステップS10(次の時刻のデータを読み込む)を経てステップS3を再度実行する。
ステップS5では、STL包絡平面上の粒子の通過点Pfootを求める(Find the projection(Pfoot)of Particle in Plane)。
図10は、STL包絡平面上の粒子の通過点Pfootを求める算出方法を示す説明図である。
図10(a)に示されるように、粒子の通過点Pfootは、直線(粒子の進行方向)と平面(STL包絡平面)との交点として求められる。今、粒子進行方向における粒子の座標をP=(Px、Py、Pz)と、粒子の通過点Pfootの座標を(Pfoot.x、Pfoot.y、Pfoot.z)と、粒子の方向ベクトルをD=(Dx、Dy、Dz)とする。
図10(a)に示されるように、粒子進行方向における粒子の座標Pは、媒介変数tを用いて、(1)P=Pfoot-t*D(t:媒介変数)、と表すことができる。従って、Pfoot=P+t*D=(Px、Py、Pz)+(t*Dx、t*Dy、t*Dz)=(Px+t*Dx、Py+t*Dy、Pz+t*Dz)=(Pfoot.x、Pfoot.y、Pfoot.z)、となる。
一方、PfootはSTL包絡平面上に位置するため、(2)a*Pfoot.x+b*Pfoot.y+c*Pfoot.z+d=0、を満足する。
従って、(1)を(2)に代入して整理すると、図10(b)1.に示されるように、Pfootに対する媒介変数tが求まる。そのtを(1)に代入することにより、通過点Pfootのx座標Pfoot.x、y座標Pfoot.y、z座標Pfoot.zがそれぞれ求まる。
再び図7に戻って、ステップS6では、ステップS5で得られた粒子のSTL包絡平面上の通過点Pfootが、STL部分平面上の何れかのSTL三角平面上に位置するか否かを判定する。図11(a)は、粒子の通過点PfootがSTL部分平面(STL plate)外に位置している場合を示している。図11(b)は、粒子の通過点PfootがSTL部分平面(STL plate)上の何れかのSTL三角平面上に位置している場合を示している。
図12は、粒子の通過点Pfoot(点P)がSTL三角平面上に位置しているか否かを判定する方法を示す説明図である。図12(a)は判定フローを示し、(b)は(a)の各ステップの幾何学的意味を示す説明図であり、(c)は(a)の各ステップで使用される演算要素の定義式である。
ステップS1では、ベクトルVWとベクトルVUの内積の符号(正、負)を判定する。(c)に示されるように、ベクトルVWは、ベクトルV(ベクトルAC)とベクトルW(ベクトルAP)との外積を意味する。従って、ベクトルVWは、その大きさが三角形APCの面積の2倍(2△APC)であり、その向きがベクトルVからベクトルWへ右ねじを回したときの進む方向である。ベクトルVU、ベクトルUW、ベクトルUVについても同様である。
ベクトルVUは定ベクトルで、その向きは紙面に垂直且つ紙面の反対側を指向する向きである。従って、ベクトルVWとベクトルVUの内積が負となるとは、ベクトルVWの方向が紙面に垂直且つ紙面の手前側を指向する向きであることと等価である。よって、ベクトルVWとベクトルVUの内積が負となるときの点Pの存在領域は、(b)においてベクトルVより上半分側の領域R1(縦線部分)となる。
ベクトルVWとベクトルVUの内積が負となる場合(YES)、点PはSTL三角平面(△ABC)外に位置すると判定される。一方、ベクトルVWとベクトルVUの内積が負でない場合(NO)、ステップS2を実行する。
ステップS2では、ベクトルUWとベクトルUVの内積の符号(正、負)を判定する。ステップS1と同様に、ベクトルUVは定ベクトルで、その向きは紙面に垂直且つ紙面の手前側を指向する向きである。従って、ベクトルUWとベクトルUVの内積が負となるとは、ベクトルUWの方向が紙面に垂直且つ紙面の反対側を指向する向きであることと等価である。よって、ベクトルUWとベクトルUVの内積が負となるときの点Pの存在領域は、(b)においてベクトルUより左半分側の領域R2(横線部分)となる。
ベクトルUWとベクトルUVの内積が負となる場合(YES)、点PはSTL三角平面(△ABC)外に位置すると判定される。一方、ベクトルUWとベクトルUVの内積が負でない場合(NO)、ステップS3を実行する。
ステップS3では、(c)に示されるパラメータRとパラメータTとの加算値(=R+T)と、1との大小を判定する。
(c)に示されるように、パラメータRは、ベクトルUVの大きさ(=2△ABC)とベクトルVWの大きさ(=2△APC)との比(=△APC/△ABC)である。同様に、パラメータTは、ベクトルUVの大きさ(=2△ABC)とベクトルUWの大きさ(=2△APB)との比(=△APB/△ABC)である。
従って、パラメータRとパラメータTとの加算値(=R+T)は、四角形ABPCの面積(=△APC+△APB)と三角形ABCの面積(=△ABC)との比を意味している。従って、パラメータRとパラメータTとの加算値(=R+T)が1より大きいときの点Pの存在領域は、(b)においてベクトルV及びベクトルUによって挟まれた領域であって、線分BCより右半分側の領域R3(斜線部分)となる。
従って、パラメータRとパラメータTとの加算値(=R+T)が1以下の場合(YES)、点PはSTL三角平面(△ABC)内に位置すると判定される。他方、パラメータRとパラメータTとの加算値(=R+T)が1より大きい場合(NO)、点PはSTL三角平面(△ABC)外に位置すると判定される。
再び、図7に戻って、ステップS6において、STL部分平面(STL plate)に含まれる全てのSTL三角平面(STL triangles)について、点PfootがSTL三角平面(STL triangles)内に位置するか否かを判定し、点Pfootが何れかのSTL三角形平面(STL triangles)内に位置する場合(YES)、ステップS7に進み、粒子は着色される。
一方、点Pfootが何れのSTL三角形平面(STL triangles)内にも位置しない場合(NO)、ステップS8に進み、粒子は着色されない。
なお、上記可視化演算結果は所定のコード及び所定のファイル形式で記憶装置108に保存される。
以上、図7~図12を参照しながら説明した通り、粒子可視化演算プロセス(Source tracking Process with color)は、大きく4つの手順から構成される。一つめは、STL三角平面(STL triangles)を含むSTL包絡平面(STL plane)の方程式を決定する手順である。これは図7のステップS1~S2に相当する。
二つめは、粒子がSTL包絡平面を通過したか否かを判定する手順である。これは図7のステップS3~S4に相当する。
三つめは、粒子がSTL包絡平面を通過した場合、粒子のSTL包絡平面上の通過点Pfootを求める手順である。これは図7のステップS5に相当する。
四つめは、粒子の通過点PfootがSTL部分平面(STL plate)内に位置するか否かを判定し、粒子の通過点PfootがSTL部分平面(STL plate)内に位置する場合は粒子を着色し、それ以外の場合は着色しない手順である。これはステップS6~S8に相当する。
ところで、粒子追跡演算プロセス(Source tracking Process)では、流体(粒子)のソース(図4)を決定した後、すなわちソースを構成する各粒子の識別番号(以下、「粒子ID」という。)を決定した後に、粒子IDに関する粒子の位置、速度および圧力を追跡して解析対象領域(Target region)における粒子の流れ状態を解析している。
以降では、粒子追跡演算プロセスとは逆に、既に取得された各粒子の流れ状態のデータ(位置、速度、圧力)から解析対象領域(Target region)を通過した粒子の粒子IDを特定し、これら特定された粒子IDに関する流れ状態のデータを出力データファイル(追跡演算結果)から抽出し、抽出した粒子IDに関する流れ状態のデータを基に、解析対象領域(Target region)を通過した流体(粒子)のみによる流れ状態を新たに構築する演算プロセス(以下、「逆追跡演算プロセス(Reverse flow Process)」という。)について説明する。
この逆追跡演算プロセス(Reverse flow Process)は、解析対象領域(Target region)を通過した粒子のIDを特定する粒子ID特定プロセス(Particle ID scanning Process)と、各出力データファイルから特定された粒子IDに関する流れ状態のデータを抽出して新たな出力データファイルを作成する逆追跡プロセス(Back tracking Process)と、から構成される。なお、逆追跡演算プロセス(Reverse flow Process)は、通常、粒子可視化演算プロセス(Source tracking Process with color)と一緒に実行される。粒子可視化演算プロセスが組み合わされた逆追跡演算プロセスのことを、特に「可視化逆追跡演算プロセス(Reverse flow Process with color coding)」と呼ぶことにする。
図13は、逆追跡演算プロセスの粒子ID特定プロセス(Particle ID scanning Process)を示す説明図である。図13(a)は粒子ID特定プロセスのフローを示し、(b)は解析対象領域(Target region)の対角座標(diagonal coordinate)を示している。
ステップS1では、解析対象領域の対角座標を読み込む(Read diagonal coordinate of target region)と同時に、解析対象フレームを読み込む(Read Target Frame)。なお、ここで言う「対角座標(diagonal coordinate)」とは、解析対象領域(Target region)を包絡する直方体フレームの2つの対角点(x1、y1、z1)、(x2、y2、z2)を意味し、「解析対象フレーム(Target Frame)」とは、2つの対角点(x1、y1、z1)、(x2、y2、z2)によって形成された、直方体フレームを意味している。
ステップS2では、要求されたデータフレームから出力データファイル(追跡演算結果)を選定する(Load dat file of required frame)。ここでいう「データフレーム」とは、例えば粒子のソース(図4)に関する入力データファイル及び出力データファイルのリストを意味する。
ステップS3では、ステップS2で選定した出力データファイルから粒子の位置情報を抽出する(Get particle coordinate from file)。
ステップS4では、ステップS3で抽出した粒子が解析対象領域内部に位置しているか否かを判定する(If particle is inside target frame ?)。粒子が解析対象領域内部に位置している場合(YES)、ステップS5に進み、粒子のID(識別番号)をテキスト形式で保存する。
一方、粒子が解析対象領域(Target region)内部に位置していない場合(NO)、ステップS3を再度実行する。そして上記ステップS3からS5を全ての出力データファイルに対して実行する。
以上の通り、粒子ID特定プロセスでは、出力データファイル中の粒子の位置情報をスキャンすることにより、解析対象領域(Target region)を通過した粒子のID(識別番号)を特定する。以降では、特定された粒子IDに関連する全ての出力データファイルをチェックして、粒子IDに関する流れ状態のデータを抽出する逆追跡プロセス(Back tracking Process)について説明する。
図14は、逆追跡演算プロセスの逆追跡プロセス(Back tracking Process)を示す説明図である。ステップS1では、csvファイルをロードする(Load csv file)。なお、ここで言う「csvファイル」とは、例えば粒子のソースに関する出力データファイルのリストを意味している。
ステップS2では、csvファイルから1つの出力データファイルを読み込む(Read dat file from csv)。
ステップS3では、テキストファイルから粒子IDを読み込む(Read particle id from txt file)。なお、ここで言う「テキストファイル」とは、上記粒子ID特定プロセスによって作成された、解析対象領域(Target region)を通過した粒子IDのテキストリストである。
ステップS4では、ステップS3で読み込んだ粒子IDが、ステップS2で読み込んだ出力データファイル内で有効であるか否かを判定する(If id is available in dat file ?)。なお、ここで言う「有効」とは、粒子IDに関するデータがその出力データファイル内に存在することを意味している。粒子IDがその出力データファイル内で有効である場合(YES)、ステップS5を実行する。一方、粒子IDがデータファイル内で有効でない場合(NO)、ステップS3へ戻り、別の粒子IDを読み込む。
ステップS5では、粒子IDの情報を新たな出力データファイルに書き込む(Write particle info to the output dat file)。
ステップS6では、チェックすべき粒子IDが残っているか否かを判定する(Any particle (id) remaining to check ?)。チェックすべき粒子IDが残っている場合(YES)、ステップS3へ戻り、別の粒子IDを読み込む。一方、チェックすべき粒子IDが残っていない場合(NO)、ステップS7へ進み次の出力データファイルを読み込む(Read next dat file)。
ステップS8では、出力データファイルが目標フレーム(target frame)に達したか否かを判定する(If dat file reached to target frame ?)。出力データファイルが目標フレームに達した場合(YES)、処理を終了する。一方、データファイルが目標フレームに達していない場合(NO)、ステップS2に進み次の出力データファイルを読み込む。
以上の通り、逆追跡プロセスでは、各出力データファイルから、特定された粒子IDに関する流れ状態のデータを抽出し、抽出した粒子IDに関する流れ状態のデータを新たな出力データファイルに書き込んで、解析対象領域(Target region)を通過した粒子のみに関する流れ状態のデータを新たに構築している。
以上、本実施形態にかかる流体の流れ状態解析(Simulation method)によれば、解析対象物に関する解析用形状モデル(STLモデル)が、STL三角平面(STL triangles)を基に構成されている。そのため、STL三角平面(STL triangles)を含む接平面であるSTL包絡平面(STL plane)の方程式が容易に決定される。STL包絡平面(STL plane)の方程式が容易に決定されることにより、粒子の追跡を各STL包絡平面(STL plane)を基準にして行うことができるようになる。その結果、粒子が各STL包絡平面(STL plane)に関し上流側または下流側のどちら側に位置しているのか、粒子がSTL包絡平面(STL plane)を通過したか否か、粒子がSTL包絡平面(STL plane)を通過したときの粒子の通過点Pfoot、並びに粒子がSTL三角平面(STL triangles)を通過したか否か、等が容易に判定することができるようになる。特に、粒子がSTL三角平面(STL triangles)を通過したか否かを容易に判定することができるため、粒子の可視化(着色化)が容易となる。
また、既に取得された解析対象領域(Target region)における粒子の流れ状態(位置、速度、圧力)から解析対象領域(Target region)を通過した粒子の粒子IDを特定し、これら特定された粒子IDに関する流れ状態のデータを出力データファイル(追跡演算結果)から抽出し、抽出した粒子IDに関するデータを基に、解析対象領域(Target region)を通過した流体(粒子)のみによる流れ状態を新たに構築することができるようになる。従って、この新たに作成された出力データを用いることにより、例えば解析対象領域(Target region)を冷却するための熱設計等にフィードバックすることが可能となる。
すなわち、本実施形態にかかる流体の流れ状態解析(Simulation method)によれば、解析対象物の流れ状態を精度良く推定・模擬することができるようになる。
図15は、上記の粒子の流れ解析(バックトラッキング)を用いた自動車のエンジンルーム内の最適設計の例を説明するための図である。同図(a)に示すように、エンジンルーム内の気体(空気)の解析計算を行う。この際、同図(b)に示すように、各粒子の経路における温度・速度の変化を算出する。ここでは、ある粒子の経路における温度と速度の変化を解析したものを例示している。これにより、同図(c)に示すように、流入源( Source1, Source2 )から流入してインテーク(ターゲット領域)に達した空気の経路の解析(経路の自動算出)が可能となる。
また、図15(b)の各粒子の速度・温度の経路の算出を用いて、図15(d)に示すように、部品形状の寄与度を算出することができる。ここでは、流入源 (Source1) から流入した(フロントグリルを出た)空気の流量の80%がクーリングダクトに達し、クーリングダクトに達した空気はそこでX1[W]の熱交換が行われる。その後、クーリングダクトから出た空気の流量の60%がインテーク(ターゲット領域)に達する。また、流入源 (Source2) から流入した(バンパーから出た)空気の流量の90%がコンデンサに達する。コンデンサに達した空気はそこでY1[W]の熱交換が行われる。その後、コンデンサから出た空気の流量の95%がラジエータに達する。ラジエータに達した空気はそこでY2[W]の熱交換が行われる。その後、ラジエータから出た空気の流量の60%がトランスミッション(T/M)に達する。トランスミッションに達した空気はそこでY3[W]の熱交換が行われる。その後、トランスミッションから出た空気の流量の40%がインテーク(ターゲット領域)に達する。このようなシミュレーション結果を得ることができる。したがって、このシミュレーション結果を用いてエンジンルーム10内の部品の配置や形状の決定、あるいは温度耐性を考慮した材質選択などを行うことが可能となる。
このように、各粒子における部品との熱交換・速度変化を逐次記録することで、エンジンルーム10内の対象箇所に対する部品形状の温度・速度変化の寄与度を算出ことに利用することができる。これにより、流れ・温度に対する部品形状及びレイアウトの寄与度を数値として算出することで、最適な設計案の選択を容易に行うことが可能となる。
図16は、本実施形態のシミュレーションプログラムとその演算処理を実行する画像演算処理装置を示す説明図である。同図に示すように、シミュレーションプログラム(Solver)112の各演算ステップ(1)~(12)は、CPU101上で機能する専属のカーネル(Kernel)を個別に持っている。各カーネル(Kernel)は、GPU115上の1つのグリッド(Grid)の演算処理を専門に管理するように構成されている。そして、各グリッドは、演算処理を行うスレッド(Thread)が15個搭載されたブロック(Block)を6個搭載している。すなわち、シミュレーションプログラム112の各演算ステップ(1)~(12)に対し、複数の演算処理を同時に行う専属のグリッド及びこのグリッドの演算処理を専門に管理するカーネルが個別に割り当てられている。そのため、複数の粒子についてシミュレーションプログラム112の複数の演算ステップを同時に実行することが可能となる。このように、シミュレーションプログラム112は、CPU101と比較して圧倒的に多数の並列演算ユニットを有するGPU115を主に用いて、後述する粒子のトラッキングのための演算などを行うものである。このようなGPU115の並列演算ユニットでの並列計算によってパーソナルコンピュータなど汎用のコンピュータ装置で流体の粒子のトラッキングを短時間で精度良く行うことを可能としている。
すなわち、上記の粒子の流れ解析の処理(シミュレーション)は、GPU115をCAE計算に応用することで行われている。GPU115は、CPU101と比較して圧倒的に多数の並列演算ユニットを備えている。これにより、GPU115を搭載した汎用のパーソナルコンピュータ装置(PC)一台で上記のシミュレーションを実行可能となる。
したがって、上記のシミュレーションを行うためのハードウェアの構成の簡素化及び低価格化を実現することができる。すなわち、画像処理用演算プロセッサ(GPU)を搭載可能なパーソナルコンピュータ(PC)で簡単にシミュレーションを実施することが可能となる。これにより、スーパーコンピュータなど大型のコンピュータが必要であった従来のシミュレーションと比較して、比較的に安価なパーソナルコンピュータ(PC)を複数台用いて並列計算を行うことが可能であるため、複数の形状に対するシミュレーションを同時並行で行うことができ、製品仕様の決定に要する時間を大幅に短縮することが可能となる。
以上、本発明の第1実施形態を説明したが、本発明は、上記実施形態に限定されるものではなく、特許請求の範囲、及び明細書と図面に記載された技術的思想の範囲内において種々の変形が可能である。例えば、上記実施形態では、本発明の流体解析方法を用いて自動車のエンジンルーム内の気体の流れを解析する例を示したが、本発明にかかる流体解析方法では、他にも様々な状況での流体の解析を行うことが可能である。例えば、パーソナルコンピュータの筐体内の気流の流れ、オフィス(室内)の空調設備による気流の流れの影響、自動車のトランスミッションケース内のオイルの流れ、自動車のボディの空気抵抗、などを解析することができる。さらには、空気などの流体だけでなく、部品など固体を粒子化し、その粒子の温度変化を解析することで、部品の温度変化などの解析を行うことも可能である。
〔第2実施形態〕
次に、本発明の第2実施形態について説明する。なお、第2実施形態の説明及び対応する図面においては、第1実施形態と同一又は相当する構成部分には同一の符号を付し、以下ではその部分の詳細な説明は省略する。また、以下で説明する事項以外の事項、及び図示する以外の事項については、第1実施形態と同じである。この点は、下記の他の実施形態についても同様である。
図17は、図2の粒子パラメータ設定プロセス(Initial fluid(particle)property and parameter setting)122と、車両の特性パラメータ設定プロセス(Configuration setting for models)123とを示す説明図である。なお、ここでの粒子源(ソース)は、車両のデフロスタ吹出口を通ってフロントガラス内壁に吹き付けられる空気(温風)としている。先ず粒子に関する初期値入力(Initial particle(fluid) setting)として、粒子間距離(Particle Distance)、半径影響係数(Radius Influence Coefficient)、各粒子の初期位置(Initial Particle Position)、初期速度(Initial Velocity)、初期圧力(Initial Pressure)、初期温度(Initial Temperature)及び初期粘度(Initial Viscosity)を入力する。なお、上記値は風洞試験結果(wind tunnel experiment)に基づいて決定される。これにより、デフロスタ吹出口から流出する粒子(ソース)の初期条件が決定される。従って、後述する粒子の追跡演算(Source tracking)とは、デフロスタ吹出口から流出する各粒子の流れ状態をシミュレーションプログラム112によって所定時間幅毎に推定・模擬することを意味している。
さらに、粒子に関するパラメータ(Parameter setting)として、流体の熱特性パラメータ(fluid Thermal Properties)、流体の移動パラメータ(Fluid Marching)、圧力計算パラメータ(Pressure Calculation)、熱特性パラメータに対する乗算係数(Fluid Thermal Properties LW)、空力特性パラメータ(Extra Aerodynamics)等を入力する。なお、静止粒子についてのパラメータ入力は、図19を参照しながら後述する。
さらに、車両の特性パラメータ設定プロセス(Configuration setting for models)123として、例えば粒子源データ(Bucket_dat)、エンジンルーム内部を構成する各部品の形状パラメータ、例えばラジエータ形状パラメータ(Radiator.stl)、ファン形状パラメータ(Mainfan.stl)、エンジン形状パラメータ(Engine.stl)、触媒形状パラメータ(CAT.stl)、ボディフレーム形状パラメータ(Framework_stl)、フロントグリル形状パラメータ(FR_Grille.stl)、等を設定する。
次に、入力された粒子の初期値及びパラメータ並びに車両の特性パラメータを基に粒子の流れ状態を追跡する図2の演算プロセスST1-2について説明する。
以降では、粒子追跡演算プロセス(Source tracking process)によって得られた流体(粒子)の位置(rk+1)に基づき、流体(粒子)から車両の固体部位へ伝達される熱量の総和(伝熱量)を算出し、算出した伝熱量に基づいて、流体(粒子)が作用した車両の固体部位の時系列の温度分布を推定する静止粒子温度解析法について説明する。
図18は、本発明の静止状態解析方法(Static Particle analysis)の一実施形態にかかる静止粒子温度解析法の概要を示す説明図である。図18(a)に示されるように、ここでの温度解析対象は、車両のフロントガラス(Windshield)130の温度分布としている。そして、フロントガラス130に作用する粒子源は、デフロスタ吹出口からフロントガラス130へ吹き出される流体粒子132としている。
図18(b)に示されるように、温度解析対象物であるフロントガラス130のSTLモデルを有限個の静止粒子(Static particles)131によって構成する。静止粒子(Static particles)131は、フロントガラス130のSTL三角平面(STL triangle)又はSTL部分平面(STL plate)を球体(Sphere)の粒子に変換したものである。なお、このSTLモデルから静止粒子131への変換は、図2のSTLモデル作成プロセス(CAD model to STL)121において行われる。
図18(c)に示されるように、各静止粒子131の温度Ti、及び各流体粒子Tjは、有効半径(Effective radius)Re内に存在する流体粒子132から各静止粒子131へ伝達される伝熱量Hiを算出し、算出した伝熱量Hiを基に各静止粒子131及び各流体粒子132についての各熱方程式を解くことにより算出される。なお、伝熱量Hiを算出する際に必要となる流体粒子132の位置(rj)は、図6の粒子追跡演算プロセス(Source tracking process)から得られ、静止粒子131の位置(ri)は三次元CAD形状モデル又はSTLモデルから得られる。また、この熱方程式の演算は、図2の演算プロセスST1-2において行われる。
また、熱方程式を解く際に必要となる有効半径(Effective radius)Re等の各種パラメータの入力は、図2の粒子パラメータ設定プロセス(Initial fluid(particle)property and parameter setting)122において行われる。各種パラメータについては、図19を参照しながら後述する。また、添字iは静止粒子131の帰属を意味し、添字jは流体粒子132の帰属を意味している。以降において同じ。
図18(d)に示されるように、静止粒子131についての熱方程式を解くことによって得られた各静止粒子131の温度{Ti}に基づいて、フロントガラス130の温度分布を着色化する。この着色化は図2の可視化プロセスST1-4において行われる。
図19は、本実施形態にかかる静止粒子温度解析法の演算手順を示すフロー図である。なお、この静止粒子温度解析法では、有効半径Re内に存在する流体粒子132から各静止粒子131へ伝達される伝熱量Hiを用いて各静止粒子131の温度Ti,及び各流体粒子132の温度Tjを算出している。伝熱量Hiは粒子間距離rijによって重み付けされて算出されるため、予め図6の粒子追跡演算プロセス(Source tracking process)を実行し、各流体粒子132の時系列位置(rj)を取得しておく必要がある。以下、各ステップについて説明する。
ステップS1では、静止粒子131及び流体粒子132についての熱パラメータを入力する(Input Thermal Parameters)。
熱パラメータとしては、流体粒子132(空気)の熱伝導率(fluid(air) thermal conductivity)λf、静止粒子131(フロントガラス130)の熱伝導率(static wall thermal conductivity)λs、静止粒子131(フロントガラス130)の熱抵抗(Static wall particle heat resistance)R、静止粒子131の粒子数密度(particle number density)ni、空間次元数(number of space dimension)d、時間幅(time step)Δt、有効半径(Effective radius)Re、粒子間距離の重み関数(Weighting function)ω(rij)、等を入力する。なお、この粒子間距離の重み関数ω(rij)は、粒子間距離rijに応じた重み係数を出力する関数であり、粒子間距離rijが大きくなればなるほど重み係数はより小さくなり、粒子間距離rijが有効半径Re以上となるときに重み係数はゼロとなる。
ステップS2では、各静止粒子131の初期温度T0
i、ならびに各流体粒子132の初期温度T0
jをそれぞれ入力する(Assign Initial temperature)。
ステップS3では、ステップS1で入力された各熱パラメータ及びステップS2で入力された初期温度T0
i,T0
jを読み込んで、各静止粒子131及び各流体粒子132についての各熱方程式を解く(Calculate Heat equation)。熱方程式を解くことによって、第k+1時刻における各静止粒子温度Tk+1
i、及び各流体粒子温度Tk+1
jが算出される。熱方程式は公知であるため、ここではその説明は省略する。
熱方程式を解く際に必要となる、第k+1時刻までに有効半径Re内に存在する流体粒子132から各静止粒子131(添字iの静止粒子131)へ伝達された熱量の総和(伝熱量)H
k+1
static-fluidは、下記式1で与えられる。
式1の右辺第1項は、第k時刻までに有効半径Re内に存在する流体粒子132から各静止粒子131(添字iの静止粒子131)へ伝達された熱量の総和(伝熱量)Hk
iを示し、同第2項は、時間幅Δt内(第k時刻から第k+1時刻の間)に有効半径Re内に存在する流体粒子132から各静止粒子131へ伝達された熱量の総和(伝熱量)を示している。
式1の右辺第2項は、粒子間距離の重み関数ω(rij)、第k時刻における流体粒子温度Tk
jと静止粒子温度Tk
iとの温度差に比例する一方、粒子間距離rijの2乗に反比例すると共に、静止粒子131の粒子数密度(particle number density)niに反比例することが分かる。なお、1/λsf+R/rijは、いわゆる合成熱抵抗であり、値が大きいほど流体粒子132から静止粒子131へ伝達される熱量は小さくなる。
このように、第k+1時刻までに有効半径Re内に存在する流体粒子132から各静止粒子131へ伝達された伝熱量Hk+1
static-fluidは、粒子間距離rijに基づいて緻密に重み付けされて算出されることが分かる。
従って、ステップS3では、所定時間幅Δt毎に、第k時刻における演算結果(Hk
i、Tk
i、Tk
j)に基づいて、第k+1時刻までに有効半径Re内に存在する流体粒子132から添字iの静止粒子131へ伝達された熱量の総和(伝熱量)Hk+1
i、第k+1時刻における各静止粒子温度Tk+1
i、及び各流体粒子温度Tk+1
jをそれぞれ算出している。
ステップS4では、ステップS3で算出された各静止粒子温度Tk+1
i、及び各流体粒子温度Tk+1
jを更新する(Update static particle temperature)。
以上の通り、本実施形態にかかる静止粒子温度解析法によれば、各静止粒子温度Tk+1
i、及び各流体粒子温度Tk+1
jを算出する際に必要となる有効半径Re内に存在する流体粒子132から各静止粒子131へ伝達された伝熱量が、粒子間距離rijに基づいて緻密に重み付けされて算出されるため、各静止粒子温度Tk+1
i、及び各流体粒子温度Tk+1
jを精度良く推定することが可能となる。
このように、本実施形態にかかる静止粒子温度解析法によれば、流体の温度を精度良く推定・模擬することができると共に、流体が作用する物体の温度分布を精度良く推定・模擬することができる。
なお、上記実施例は、流体(流体粒子132)とフロントガラス130(静止粒子131)との間の気相/固相間伝熱におけるフロントガラス130の温度分布を本静止粒子温度解析法によって推定するものであった。以降では、固相/固相間伝熱における解析対象物の温度分布を本静止粒子温度解析法によって推定する実施例について説明する。
図20は、本実施形態にかかる静止粒子温度解析法によるエンジンマウント部ブラケットの温度解析を示す説明図である。ここでの温度解析対象は、エンジン150と左右エンジンマウント部152R、152Lとをそれぞれ連結する左右ブラケット153R、153Lの各温度分布としている。
図20(a)に示されるように、エンジン150はエンジン本体150aと変速機150bとから構成される。エンジン150は、ボディ151に対し左右ブラケット153R、153Lを介して左右エンジンマウント部152L、152Rによって2点で支持されている。従って、エンジン150は、熱を供給する高温固体となり、左右エンジンマウント部152L、152R及びボディ151は熱を受ける低温固体となる。また以降において、左右エンジンマウント部152L、152R及び左右ブラケット153L、153Rは、特に区別する必要がある場合を除き左右の区別はしないこととする。
図20(b)に示されるように、ブラケット153を有限個の静止粒子154によって構成し、静止粒子ブラケット153’を形成する。エンジン150からの熱流は、有限個の静止粒子154を介してエンジンマウント部152及びボディ151へ伝導する。従って、エンジン150から静止粒子154に伝導される伝熱量Hを算出し、算出した伝熱量Hを公知の熱方程式に代入して解くことによって、静止粒子ブラケット153’(静止粒子154)の温度分布を推定することができる。
図20(c)は温度解析結果を示し、エンジン本体150a近傍に位置する左ブラケット153Lは高温となり、エンジン本体150aから離れた右ブラケット153Rは低温となることを示している。この結果から、解析された温度分布と実際の温度分布とが近似していることが分かる。このように、本実施形態にかかる静止粒子温度解析法によれば、固相/固相間伝熱における解析対象物の温度を精度良く推定・模擬することができる。
続いて、太陽からの輻射熱(Sun radiation)を考慮した気相/固相間伝熱における本静止粒子温度解析法による解析対象物の温度解析について説明する。
図21は、太陽からの輻射熱(Sun radiation)を考慮した気相/固相間伝熱における本静止粒子温度解析法による解析対象物の温度解析を示す説明図である。図21(a)に示されるように、固相は車室(Cabin)のドアガラス(Door glass)160であり、気相(流体粒子162)は車室(Cabin)の空調機(A/C)163から吹き出される気流(Cabin air flow)である。従って、解析対象は、その気流(Cabin air flow)の温度としている。
図21(b)に示されるように、解析対象物であるドアガラス(Door glass)160を有限個の静止粒子(static particle)161によって構成する。
そして、静止粒子(static particle)161と流体粒子(fluid particle)162との間の伝熱量を算出し、算出した伝熱量を公知の熱方程式に代入して解くことによって各流体粒子(fluid particle)162の温度Tjを推定することができる。
なお、図18に示されるフロントガラス130(静止粒子131)は、有効半径Re内に存在する流体粒子132から静止粒子131へ伝達される伝熱量Hk+1
static-fluidを主に受熱することとしていた。対する本実施例のドアガラス160(静止粒子161)は、有効半径内に存在する流体粒子162から静止粒子161に伝達される伝熱量以外に、太陽からの輻射熱(Sun radiation)を受熱することとし、気流(流体粒子162)も太陽光からの輻射熱(Sun radiation)を受熱することしている。
すなわち、太陽からの輻射熱(Sun radiation)の一部はドアガラス160(静止粒子161)によって吸収され、その残りはドアガラス160を透過して流体粒子162によって吸収される。従って、空調機(A/C)163から吹き出される気流(流体粒子162)は、空調機(A/C)163から受熱すると共に太陽からの輻射熱(Sun radiation)を受熱して熱エネルギーを増大させる。静止粒子161も太陽からの輻射熱(Sun radiation)を受熱して熱エネルギーを増大させる。従って、静止粒子161の温度Tiが、流体粒子162の温度Tjよりも高い場合はドアガラス160(静止粒子161)から気流(流体粒子162)へ熱エネルギーが伝達される。その逆に、ドアガラス160(静止粒子161)の温度Tiが、気流(流体粒子162)の温度Tjよりも低い場合は気流(流体粒子162)からドアガラス160(静止粒子161)へ熱エネルギーが伝達される。このように、本実施形態にかかる静止粒子温度解析法によれば、太陽からの輻射熱(Sun radiation)を考慮した気相/固相間伝熱において解析対象の温度を精度良く推定・模擬することができる。
以上の通り、本発明の状態解析方法によれば、解析対象物を構成する粒子は位置が変動する流体粒子132,162と、位置が変動しない静止粒子131,154,161とによって構成されることによって、対流を伴う伝熱現象、例えば気相(流体粒子)から固相(静止粒子)への伝熱現象を模擬することが可能となる。この場合、上記データ入力ステップST1-1及び上記演算プロセスST1-2を備えることにより、各流体粒子132,162の時間幅Δt毎の位置rjを精度良く推定することが可能となる。各流体粒子132,162の位置rjを精度良く推定することが可能となることにより、各流体粒子132,162と各静止粒子131,161との間の粒子間距離rijを精度良く推定することが可能となる。粒子間距離rijを精度良く推定することが可能となることにより、所定時間幅Δt内に有効半径Re内に存在する流体粒子132,162から静止粒子131,161へ伝達される伝熱量を粒子間距離rijに応じて精度良く重み付けすることが可能となる。これにより、気相(流体粒子)から固相(静止粒子)への熱量の総和(伝熱量)Hk+1
static-fluidを精度良く推定することが可能となる。その結果、様々な伝熱形態において解析対象物の温度を精度良く推定することができる。
また、上記状態解析方法では、解析対象物が固体である場合、その固体を有限個の静止粒子131,154,161によって構成することとしている。この場合、気相/固相間の伝熱形態と同様に固相/固相間の伝熱形態を精度良く模擬することが可能となる。これにより固相/固相間の伝熱形態において解析対象物の温度を精度良く推定することが可能となる。
また、上記状態解析方法では、流体粒子132,162は、静止粒子131,161との間で粒子間距離rijに応じた相互作用を可能にする有効半径Reを有していると良い。この場合有効半径Reによって多数の流体粒子の中から静止粒子に作用することが出来る流体粒子を限定することが可能となる。静止粒子に作用する流体粒子が限定されることにより、流体粒子から静止粒子へ伝達される伝熱量を算出する際の演算負荷を軽減することが可能となる。
更に、本発明にかかるシミュレーションプログラム(状態解析プログラム)112では、各繰り返し演算プロセス(例えば、図6のステップS4、ステップS5、ステップS6及びステップS7)は、CPU101上で機能する専用のカーネル(図16)を個別に有すると共に、そのカーネルにリンクされた一の繰り返し演算プロセスを専門に実行する専用の演算処理部(グリッド)(図16)をGPU115上に個別に有する。これにより、コンピュータ装置100(ホストコンピュータ)のCPU101の演算負荷を好適に軽減するのと同時に、汎用のコンピュータ上で複数の粒子についての複数の繰り返し演算プロセスを同時に実行することが可能となる。これにより、流体の解析に要する時間を大幅に短縮することが可能となり、最適な製品仕様を迅速に決定することができるようになる。
〔第3実施形態〕
次に、本発明の第3実施形態について説明する。
図22は、図2の粒子パラメータ設定プロセス(Initial fluid(particle)property and parameter setting)122と、車両の特性パラメータ設定プロセス(Configuration setting for models)123とを示す説明図である。ここでは、先ず粒子に関する初期値入力(Initial particle(fluid)setting)として、粒子間距離(Particle Distance)、半径影響係数(Radius Influence Coefficient)、各粒子の初期位置(Initial Particle Position)、初期速度(Initial Velocity)、初期圧力(Initial Pressure)、初期温度(Initial Temperature)及び初期粘度(Initial Viscosity)等を入力する。なお、上記値は風洞試験結果(Wind tunnel experiment)に基づいて決定される。これにより、流体(粒子)の源となるソースが決定される。従って、後述する粒子の追跡演算(Source tracking)とは、このソースから流出する各粒子の流れ状態(位置、速度、圧力又は温度)をシミュレーションプログラム112によって所定時間幅毎に推定・模擬することを意味している。
さらに、粒子に関するパラメータ(Parameter setting)として、流体の熱特性パラメータ(fluid Thermal Properties)、流体の移動パラメータ(Fluid Marching)、圧力計算パラメータ(Pressure Calculation)、熱特性パラメータに対する乗算係数(Fluid Thermal Properties LW)、空力特性パラメータ(Extra Aerodynamics)等を入力する。
さらに、車両の特性パラメータ設定プロセス(Configuration setting for models)123として、使用される粒子源データ(bucket_dat)、バンパーパラメータ(Bumper_stl)、可動平面パラメータ(moving_plate_stl)、空気抵抗パラメータ(drag1_stl)、蒸発に関するパラメータ(evaporator_stl)、凝縮に関するパラメータ(condenser_stl)等を設定する。
次に、入力された粒子の初期値及びパラメータ並びに車両の特性パラメータを基に粒子の流れ状態を追跡する図2の演算プロセスST1-2の内容について説明する。
以降では、粒子追跡演算プロセス(Source tracking process)によって得られた流体(粒子)の速度(uk+1)及び圧力(Pk+1)に基づき、流体粒子(Fluid particles)中に置かれた物体(解析対象物)についての粒子抗力係数PD(Coefficient of drag force in Particle method)および粒子揚力係数PL(Coefficient of lift force in Particle method)を算出する粒子抵抗解析法について説明する。そして、本粒子抵抗解析法によって算出された流体粒子中における解析対象物の粒子抗力係数PD/粒子揚力係数PLと、風洞試験によって得られた流体中における解析対象物の抗力係数CD/揚力係数CLとの比較検証結果について説明する。
図23は、本発明の粒子解析方法(Particle analysis)における粒子影響解析の概要を示す説明図である。この粒子影響解析は、流体中に置かれた解析対象物の空力特性(従来の抗力係数CD及び揚力係数CLに相当する値)をシミュレーションプログラム112上で推定・模擬するためのプロセスである。本解析によって算出される「粒子抗力係数PD」は、流体中に置かれた解析対象物の抗力係数CDに相当するものであり、詳細については図24を参照しながら後述する。同様に、本解析によって算出される「粒子揚力係数PL」は、流体中に置かれた解析対象物の揚力係数CLに相当するものであり、詳細については図25を参照しながら後述する。
図23(a)に示されるように、本解析は、全流体粒子(All particles)のうちで解析対象物の近傍に位置し、力学的作用を及ぼすことができる影響粒子(Influence particles)を選定する粒子選定プロセス(Particle Filtering Process)P1と、解析対象物が影響粒子(Influence particles)から受ける全抗力(Total drag force)を算出する抗力測定プロセス(Force Measurement Process)P2と、算出した全抗力(Total drag force)に基づいて粒子抗力係数PD及び粒子揚力係数PLを算出するPD/PL計算プロセス(PD/PL Calculation Process)P3とから主として構成される。なお、PD/PL計算プロセス(PD/PL Calculation Process)P3を実行する際に必要となる定数の入力は、図2のデータ入力プロセスST1-1において行われる。
図23(b)に示されるように、データ入力プロセスST1-1では定数(Constant factors)として、流体粒子の初期速度(Initial Velocity)、流体の密度(Density)、投影面積(Projection area)をユーザが入力する。「投影面積(Projection area)」とは、解析対象物の前面投影面積のことである。
図23(c)に示されるように、シミュレーションプログラム112を実行することによって算出された解析対象物の粒子抗力係数PD又は粒子揚力係数PLについては、所定のコード及び所定のファイル形式で記憶装置108(図1)に保存されると共に、必要に応じて表示装置103(図1)において時系列毎に表示される。
図24は、本解析において算出される粒子抗力係数PDを示す説明図である。図24(a)は、粒子抗力係数PDにかかる各抗力及び上記影響粒子(Influence particles)132並びに影響粒子(Influence particles)132が作用する解析対象物130の作用面(STL三角平面)dSをそれぞれ示している。また、図24(b)は、粒子抗力係数PDを算出する手順の概要を示している。
図24(a)に示されるように、ここでの解析対象物130は立方体(Cube)形状のSTLモデル(STL model)としている。解析対象物130の各表面は、有限個のSTL三角平面(STL Triangles)dSによって構成されている。このSTL三角平面(STL Triangle)dSは、影響粒子(Influence particles)132が解析対象物130に作用する際の作用面となる。影響粒子(Influence particles)132は、解析対象物130の各面から所定距離(例えば、係数K*初期粒子間距離(initial particle distance)d0)内に存在する流体粒子であり、解析対象物130に対する抗力源となる流体粒子である。
解析対象物130が影響粒子(Influence particles)132から受ける抗力(Drag)としては、影響粒子(Influence particles)132の圧力Pに起因する圧力抗力(Presure drag)FPと、影響粒子(Influence particles)132と解析対象物130との間のせん断力τw(shear stress)に起因する粘性抗力(Viscous drag)FVとが挙げられる。
従って、粒子抗力係数PDは、解析対象物130が影響粒子(Influence particles)132の流れ場から受ける圧力抗力(Presure drag)FPと粘性抗力(Viscous drag)FVとの総和である全抗力(Total Drag force)FDの大きさを表す指標となる。なお、圧力抗力(Presure drag)FP及び粘性抗力(Viscous drag)FVを算出する際の単位法線ベクトルnの符号は、全抗力(Total Drag force)FDと同方向がプラスとなり、逆方向がマイナスとなる。
図24(b)に示されるように、圧力抗力FPは、圧力PがSTL三角平面(STL Triangle)dSに作用する際の向きと大きさを示す微小面圧ベクトル(=P・単位法線ベクトルn・dS)を全表面(Total surface area)、すなわち解析対象物130の全STL三角平面について積分することにより得られる。
粘性抗力FVについても同様に、せん断力τwがSTL三角平面dSに作用する際の向きと大きさを示す微小せん断ベクトル(=τw・単位法線ベクトルn・dS)を全表面(Total surface area)、すなわち解析対象物130の全STL三角平面について積分することにより得られる。
算出した圧力抗力FPと粘性抗力FVとを合算して、全抗力(Total Drag force)FDを算出し、算出した全抗力(Total Drag force)FDを下記式2に代入して粒子抗力係数PDを求める。なお、下記Aは解析対象物130の前面投影面積(Projected frontal area)であり、下記ρは流体の密度(density of fluid)であり、下記Vは影響粒子(Influence particles)132の平均速度である。
式2:PD=2*|FD|/(A*ρ*V2)
図25は、本解析において算出される粒子揚力係数PLを示す説明図である。図25(a)は、粒子揚力係数PLにかかる揚力(Lift force)及び上記影響粒子(Influence particles)132並びに影響粒子(Influence particles)132が作用する解析対象物130の作用面(STL三角平面)dSをそれぞれ示している。また、図25(b)は、粒子揚力係数PLを算出する手順の概要を示している。また、説明の都合上、影響粒子(Influence particles)132の流れ方向(Flow direction)をX方向とし、それに直交する方向をY方向としている。
図25(a)に示されるように、影響粒子(Influence particles)132の流れ場に置かれた解析対象物130は、流れ方向(Flow direction)に対し交差方向(transverse direction)に作用する揚力(Lift force)Fyを受けることになる。この揚力(Lift force)Fyは、圧力抗力FPのY方向成分FPyと、粘性抗力FVのY方向成分FVyとの総和に等しくなる。従って、粒子揚力係数PLは、影響粒子(Influence particles)132の流れ方向(Flow direction)と交差方向(transverse direction)に作用する力Fyの大きさを表す指標となる。なお、この揚力(Lift force)Fyを算出する際の単位法線ベクトルnの符号は、Y方向の正負方向と同じある。
図25(b)に示されるように、上記圧力抗力FPのY方向成分FPyを算出する。同様に、上記粘性抗力FVのY方向成分FVyを算出する。そして、圧力抗力のY方向成分FPyと、粘性抗力のY方向成分FVyとを合算した揚力Fyを算出する。そして、その揚力Fyを下記式3に代入して粒子揚力係数PLを求める。なお、下記Aは解析対象物130のY軸方向の投影面積(Projected frontal area)であり、下記ρは流体の密度(density of fluid)であり、下記Vは影響粒子(Influence particles)132の平均速度である。
式3:PL=2*|Fy|/(A*ρ*V2)
図26は、影響粒子(Influence particles)132が解析対象物130に作用する際の作用面を示す説明図である。上記図24及び図25に示される粒子抗力係数PD及び粒子揚力係数PLの算出(積分の計算)において、微小面圧ベクトル(=P・単位法線ベクトルn・dS)又は微小せん断ベクトル(=τw・単位法線ベクトルn・dS)を全STL三角平面(=dS1+dS2+・・・+dSn)について積分している。つまり、図26(a)に示されるように、積分計算における作用面(Surface area)として、全STL三角平面(=dS1+dS2+・・・+dSn)を用いている。
上記の手法以外にも、図26(b)に示されるように、積分計算における作用面(Surface area)として、影響粒子(Influence particles)132の解析対象物130への投影面積(Projected particle area)dp×dp(=dp2)を用いることも可能である。この場合、影響粒子(Influence particles)132が解析対象物130に及ぼす全抗力FD及び揚力Fyをより精度良く算出することができるようになる。これにより、本粒子抵抗解析法によって算出される粒子抗力係数PD及び粒子揚力係数PLを、従来の抗力係数CD又は揚力係数CLと比較して、流体中における解析対象物130に作用する流体の影響をより正確に模擬(シミュレーション)した値に近付けることが可能となる。なお、「dp」は影響粒子(Influence particles)132の粒子径(Particle distance)に相当する。
図27は、上記の粒子影響解析によって算出された粒子抗力係数PDの検証結果を示すグラフである。粒子抗力係数PDの検証は、風洞試験によって得られた解析対象物の実抗力係数CDと、本粒子抵抗解析法によって得られた粒子抗力係数PDとの間の誤差率(%ERROR)を評価することによって行われた。グラフの縦軸は各抗力係数(Drag Coefficient)を表し、横軸はレイノルズ数(Reynolds number)NRを表している。また、曲線は風洞試験結果(実抗力係数CD)を表し、四角印(■)は本粒子抵抗解析法による粒子抗力係数PDを表している。
また、解析対象物は直径10mmの球体(Sphere)とした。流体は、レイノルズ数(Reynolds number)NRが105未満では空気(Air)とし、レイノルズ数(Reynolds number)NRが105以上では水(Water)とした。
同図のグラフから明らかな通り、実抗力係数CDと粒子抗力係数PDとの間の誤差率は、小さいことが分かる。これは、本粒子抵抗解析法により得られた粒子抗力係数PDは、流体にかかる実抗力係数CDに近似することを示している。すなわち、流体の流れ場に置かれた解析対象物の抗力係数CDは、本粒子影響解析によって算出される粒子抗力係数PDによって評価可能であることを示している。
図28は、上記の粒子影響解析によって算出された粒子揚力係数PLの検証結果を示すグラフである。この粒子揚力係数PLの検証は、風洞試験によって得られた解析対象物の実揚力係数CLと、本粒子影響解析によって得られた粒子揚力係数PLとの間の誤差率(%ERROR)を評価することによって行われた。グラフの縦軸は各揚力係数(Lift Coefficient)を表し、横軸は迎え角(Angle of attack)を表している。
図28(a)に示されるように、解析対象物は、全米航空諮問委員会(=National Advisory Committee for Aeronautics)によって開発された翼型(Airfoil)のうちで、「NACA0012」と通称されている翼型(以下、「本試験翼」という。)とした。本試験翼の寸法(dimension)は翼弦長が122mmであり、最大翼厚が14.5mmである。
図28(b)に示されるように、本試験翼は翼幅を10mmとし、横寸法370mm×縦寸法380mmの平板間に、翼前縁から平板間入口までの距離が90mm、且つ翼後縁から平板底辺までの距離が190mmとなるように設置されている。本試験翼の迎え角(Angle of attack)は、0°、2°、4°、6°、8°、及び10°に変化させた。また、レイノルズ数(Reynolds number)NRは100000と、流体粒子の初期速度(Initial velocity)は12.804mm/secと、流体粒子の動粘度(Kinematic Viscosity)は15.62mm2/secと、なるようにそれぞれ設定されている。
図28(c)は、揚力係数CLと粒子揚力係数PLとの比較結果を示す。菱形印(◆)が揚力係数CLを表し、四角印(■)が粒子揚力係数PLを表している。同図に示されるように、揚力係数CLと粒子揚力係数PLとの間の誤差率は、小さいことが分かる。これは、本粒子影響解析により得られた粒子揚力係数PLは、揚力係数CLに近似することを示している。すなわち、流体の流れ場に置かれた解析対象物の流れからの影響は、本粒子影響解析によって算出される粒子揚力係数PLで評価が可能であることを示している。
図29は、上記の粒子影響解析による車両の旋回時における空力特性(空気抵抗力)の解析を示す説明図である。なお、車両の速度は一定の144km/h(=40m/s)とし、旋回方向は左方向とし、旋回角度θは0°、5°、10°、15°及び20°(degree)とした。また、車両の先端部の斜線部分は影響粒子132の集まりを表している。
図29(a)に示されるように、車両の直進時(旋回角度θ=0°)では、空気抵抗力(影響粒子132)は車両先端部において車幅方向に均等に作用している。つまり、車両先端部における空気抵抗力の作用領域は車幅方向に均等に分布している。
図29(b)から(e)に示されるように、旋回角度θが大きくなるにつれて、車両先端部おける空気抵抗力の作用領域は左旋回の場合、車幅方向右側部分に集約されるようになる。つまり、車両が左旋回する場合、空気抵抗力は車両先端部において車幅方向右側部分に局所的に作用するようになる。これは、車両が左旋回する場合、旋回角度θが大きくなるにつれて空気抵抗力に起因した、車両を左方向に回転させようとする回転モーメントを車両が受けることを示している。
従来の抗力係数CD、揚力係数CLを用いた解析では、流体の流れに対する対象物の投影面の形状及び投影面積が変化する場合に対しては正確な解析を行うことができなかった。これに対して、上記の粒子抗力係数PD及び粒子揚力係数PLを用いた本実施形態の流体影響解析は、静止している対象物や進行方向(ベクトル)が変化しない移動をする対象物など、流体に対する投影面の形状及び投影面積が変化しない対象物の周辺の流れに対する解析だけでなく、車両が旋回しながら走行する場合など流体に対する投影面の形状及び投影面積が刻々と変化する対象物の周辺の流れに対する解析を行うことができる。したがって、動的な対象物の周辺の流れ状態(Aerodynamics)についても好適に模擬(解析)することが可能である。
以上の通り、本発明の粒子解析方法(Particle analysis)における粒子影響解析は、データ入力プロセスST1-1及び演算プロセスST1-2を備えるため、各流体粒子の時間幅Δt毎の位置、速度及び圧力を精度良く算出することができる。さらに、この粒子影響解析は、全流体粒子の内で解析対象物130に作用することができる影響粒子(Influence particles)132を選定する粒子選定プロセス(Particle Filtering Process)P1、影響粒子(Influence particles)132が解析対象物130に及ぼす全抗力FD及び揚力Fyを算出する抗力測定プロセス(Force Measurement Process)P2、並びに全抗力FD及び揚力Fyの各大きさに関する指標を算出するPD/PL計算プロセス(PD/PL Calculation Process)P3を有する。これにより、流体中において解析対象物130が流体から受ける力の大きさの指標となる抗力係数CD及び揚力係数CLを、本粒子影響解析により算出される粒子抗力係数PD及び粒子揚力係数PLによって評価することが可能となる。これにより、解析対象物130の空力特性に関する製品仕様を迅速に決定することができるようになる。
また、本粒子解析方法の粒子選定プロセス(Particle Filtering Process)P1では、解析対象物130の各表面から所定距離の範囲内に位置する流体粒子を影響粒子(Influence particles)132として選定することが可能である。この場合、所定距離を変えることにより、算出される全抗力FD及び揚力Fy並びに上記粒子抗力係数PD及び粒子揚力係数PLについての精度を向上させることが可能となる。
また、本粒子影響解析では、解析対象物130の形状データは、解析対象物130の表面を三角形で分割したSTLモデル(STL model)とすることが可能である。この場合、解析対象物130の表面に接する接平面を容易に決定することができるため、解析対象物130の表面と各流体粒子との距離を容易に算出することができる。これにより、解析対象物に作用する影響粒子(Influence particles)132を容易に選定することが可能となる。
さらに、影響粒子(Influence particles)132が解析対象物130に作用する際の解析対象物の作用面dSの法線ベクトルnを容易に算出することができるため、解析対象物130が影響粒子(Influence particles)132から受ける全抗力FD及び揚力Fy、並びに上記粒子抗力係数PD及び粒子揚力係数PLを容易に算出することが可能となる。
また、本粒子影響解析では、影響粒子(Influence particles)132が解析対象物130に作用する作用面dSは、影響粒子(Influence particles)132の解析対象物130(STL三角平面)への投影面(dp×dp)とすることが可能である。影響粒子(Influence particles)132が解析対象物130に作用する作用面dSが影響粒子(Influence particles)132の解析対象物130への投影面(dp×dp)である場合、影響粒子(Influence particles)132が解析対象物130に及ぼす全抗力FD及び揚力Fyをより精度良く算出することができるようになる。これにより、本粒子影響解析によって算出される上記粒子抗力係数PD及び粒子揚力係数PLを、流体における解析対象物130の抗力係数CD又は揚力係数CLにより近似させることが可能となる。
更に、本発明にかかるシミュレーションプログラム(粒子解析プログラム)112では、各繰り返し演算ステップ(例えば、図6のステップS4、ステップS5、ステップS6及びステップS7)は、CPU101上で機能する専用のカーネル(図16)を個別に有すると共に、そのカーネルにリンクされた一の繰り返し演算ステップを専門に実行する専用の演算処理部(グリッド)(図16)をGPU115上に個別に有する。これにより、コンピュータ装置100(ホストコンピュータ)のCPU101の演算負荷を好適に軽減するのと同時に、汎用のコンピュータ上で複数の粒子についての複数の繰り返し演算ステップを同時に実行することが可能となる。これにより、流体の解析に要する時間を大幅に短縮することが可能となり、最適な製品仕様を迅速に決定することができるようになる。
〔第4実施形態〕
次に、本発明の第4実施形態について説明する。
図30は、本発明の粒子解析方法(Particle Analysis)の全体の処理の流れを示すフローチャートである。また、図31は、図30の各処理で作成されるデータのファイルを模式的に示す図である。なお、本実施形態では、解析対象物である車両の走行中に該車両の外周面に沿って流れる空気(粒子)の流れから受ける力(揚力)の解析を行う場合について説明する。
図30に示すように、本解析は、解析対象物である車両の解析用形状モデル(以下、「STLモデル(STL model)」という。)の準備ならびに粒子及び車両に関する各種パラメータの入力(設定)を行うデータ入力プロセス(ST1)と、入力された各種パラメータに基づいてGPU115上でシミュレーションプログラム(solver)112を実行する演算プロセス(ST2)と、シミュレーションプログラム112の実行結果(演算結果)を所定のコード及び所定のファイル形式で記憶装置108等の周辺装置に出力するデータ出力プロセス(ST3)と、シミュレーションプログラム112の演算結果を基に流体(粒子)の流れが解析対象物に及ぼす力の状態を可視化する可視化プロセス(ST4)と、を有して構成される。以下、各プロセスについて説明する。
データ入力プロセス(ST1)は、STLモデル作成プロセス(CAD model to STL)121と、流体(粒子)の初期状態量及び各種物性値を入力する粒子パラメータ設定プロセス(Initial fluid(particle)property and parameter setting)122と、解析対象物(車両)に関する各種特性パラメータを設定する解析対象物の特性パラメータ設定プロセス(Configuration setting for models)123と、から構成される。
図32は、図30のSTLモデル作成プロセス(CAD model to STL)121を示す説明図である。図32(a)は、CAD等の描画作成ソフトによって作成された車両に関する三次元CAD形状モデル(3D CAD model)である。図32(b)はSTL(STereoLithography)モデル(以下、「STLモデル(STL model)」という。)である。このSTLモデル(STL model)は、三次元CAD形状モデル(3D CAD model)の表面(Surface)の一部又は全部を、図32(c)に示される三角形平面(以下、「STL三角平面(STL triangle)」という。)で分割することによって作成される。
従って、解析対象物である車両のSTLモデル(STL model)は、STL三角平面(STL triangle)を基に構成されている。そのため、STLモデルの表面に接する接平面の方程式を容易に決定することができ、その接平面によって粒子の追跡、可視化(着色化)が極めて容易となる。なお、1又は複数のSTL三角平面(STL triangle)を含むSTLモデル(STL model)表面の一部分(A部等)を、特にSTL部分平面(STL plate)と呼び、STL部分平面(STL plate)を含む接平面のことをSTL包絡平面(STL plane)と呼ぶことにする。上記で作成されたSTLモデル(STL model)のデータは、図31に示すSTLファイル15(Stl File)に格納されている。
図33は、図30の粒子パラメータ設定プロセス(Initial fluid(particle)property and parameter setting)122と、車両の特性パラメータ設定プロセス(Configuration setting for models)123とを示す説明図である。ここでは、先ず粒子に関する初期値入力(Initial particle(fluid)setting)として、粒子間距離(Particle Distance)、半径影響係数(Radius Influence Coefficient)、各粒子の初期位置(Initial Particle Position)、初期速度(Initial Velocity)、初期圧力(Initial Pressure)、初期温度(Initial Temperature)及び初期粘度(Initial Viscosity)等を入力する。なお、上記値は風洞試験結果(wind tunnel experiment)に基づいて決定される。これにより、流体(粒子)の源となるソースが決定される。また、粒子に関するパラメータ(Parameter setting)として、初期粒子間距離(Initial Particle Distance)、自由表面の判定(Free Surface Threshold)、勾配モデル影響半径係数(Gradient model influence radius coefficient)、ラプラシアンモデル影響半径係数(Laplacian model influence radius coefficient)、温度計算用影響半径係数(Temperature calculation influence radius coefficient)、粒子壁面間距離オフセット(Wall Particle Distance Offset)などを含めてもよい。上記のデータは、図31に示す粒子ファイル11(Lift.csv file)及びパラメータファイル13(Parameter file)に格納されている。
さらに、車両の特性パラメータ設定プロセス(Configuration setting for models)123で設定される車両の特性パラメータとして、車両の各車輪の接地点(接触点)の位置(座標)データ(.FRxyz, .FLxyz, .RRxyz, .RLxyz)や、車両の中心(重心)の位置(座標)データなどを設定する。上記の車両の特性パラメータは、図31に示す構成ファイル12(Config file or Configuration file)に格納されている。
次に、上記のデータ入力プロセスST1で入力された粒子の初期値及びパラメータ並びに車両の特性パラメータを用いて車両にかかる力を算出する図30の演算プロセス(ST2)の内容について説明する。
図34は、車両にかかる力の算出(CoFSolver)を行う演算プロセス(ST2)での処理の流れを示すフローチャートである。この演算プロセス(ST2)での処理には、粒子ファイル11に格納されたデータ及びSTLファイル15に格納されたデータの読込(Read particle and stl)処理(ST2-1)、粒子選別(Filter particles)処理(ST2-2)、力の算出(Force calculation)処理(ST2-3)、力の中心算出(Center of Force calculation)処理(ST2-4)、各車輪にかかる力の算出(Force on each wheels)処理(ST2-5)の各処理が含まれている。以下、各処理について詳細に説明する。
粒子ファイル11に格納されたデータ及びSTLファイル15に格納されたデータの読込(Read particle and stl)処理(ST2-1)では、構成ファイル12(config.txt)に格納されているすべてのSTLデータを読み込む(Read all .stl from config.txt)(ST2-1a)。また、粒子ファイル11にリストされている各データから粒子の情報を読み込む(Read particles from each output.dat listed in .csv)(ST2-1b)。また、この際、パラメータファイル13、計算ゾーンファイル14(Compute Zone File)及びSTLファイル15に格納されているデータも読み込む。
次に、粒子選別(Filter particles)処理(ST2-2)では、まず、STLファイル15に格納されている解析対象物である車両の各三角形の重心の面からの距離に基づいて粒子を選択する(Select particle based on distance from the face of centroid of each triangle)(ST2-2a)。そして、選択した粒子以外の他の粒子を除外する(Neglect other particles)(ST2-2b)。また、車両の各三角形の平均圧力を格納する(Store an average pressure for each triangle)(ST2-2c)。こうして、全流体粒子(All particles)のうち解析対象物である車両の近傍に位置し、力学的作用を及ぼすことができる影響粒子(Influence particles)を選定する。
力算出処理(Force calculation)(ST2-3)では、まず、解析対象物である車両が有する各三角形の領域(面積)を計算する(Calculate area of triangles)(ST2-3a)。また、各三角形にかかる(作用する)力を計算する(ST2-3b)。そして、算出したこれらデータを別の粒子タイプまたは色として同じ出力データファイル(第一出力データファイル16)に格納する(ST2-3c)。
図35は、力算出処理(ST2-3)を説明するための図である。力算出処理(ST2-3)では、図35(b)に示すように、各三角形について、粒子の選択(Particle selection)を行う。この粒子の選択では、(各三角形の)中心を算出(Centroid calculation)し、重心と各頂点との距離L1、L2、L3(Distances between centroid and each vertex)を算出し、これら距離L1、L2、L3の中で最大値を確認(Check for Maximum value among L1,L2,L3)し、影響半径は最大長+ 2.1(Influence radius is maximum length+2.1)とし、通常ベクトル(0<cosθ<1)方向の粒子のみを選択(Selecting particle only at direction of normal vector)する。また、図35(c)に示すように、力の計算(Force Calculation)として、平均圧力Average Pressure(P)、X方向分力Force(Fx, i)、Y方向分力Force(Fy, i)、Z方向分力Force(Fz, i)を算出する。こうして、最終的に図35(d)に示す合力(Resultant Force)Fx,Fy,Fz,Fが算出される。
図34に戻り、力の中心算出処理(Center of Force calculation)(ST2-4)では、すべての(三角形の)重心の位置ベクトルを読み込む(Read the position vector of all centroids)(ST2-4a)。また、力ベクトルと位置ベクトルのクロス積を足し合わせる(Add the cross product of force and position vectors)(ST2-4b)。そして、各力の大きさを加える(Add the magnitude of each force)(ST2-4c)。さらに、クロス積を和で除して重心位置を求める(Divide the cross product by sum to find the centroids position)(ST2-4d)。上記のデータを出力データファイルに別々の粒子タイプとして保存する(Store this data as separate particle type in output.dat)(ST2-4e)。
図36は、力の中心算出処理(Center of Force calculation)(ST2-4)で算出した力の中心の値を示す図である。同図に示すように、力の中心算出処理(Center of Force calculation)(ST2-4)では、i番目の三角形のX軸、Y軸、Z軸それぞれのモーメントであるMx, i, My, i, Mz, iと、X軸、Y軸、Z軸それぞれにおける力の中心であるCOFx, COFy, COFzとが算出される。ここで、Rx, i = i番目の三角形に対する重心ベクトルのX成分であり、Fx = x軸の合力の単位ベクトルであり、F =総合力の大きさである。
図37は、車両にかかる力の釣り合い(Force Balance)を示す図である。各車輪にかかる力の算出処理(Force on each wheels)(ST2-5)では、構成ファイル12から車輪の位置情報を読み込む(Read the wheel points from config)(ST2-5a)。また、力平衡法を用いて各車輪にかかる力を計算する(Calculate forces on each wheels using force balance method)(ST2-5b)。図37では、FRは右前輪接地点、FLは左前輪接地点、RRは右後輪接地点、RLは左後輪接地点である。また、COFは力の中心である。そして、dx=RR.x-COF.x、dy=FR.y-COF.y、dz=FR.z-COF.z、X=RR.x-FR.x、Y=FR.y-FL.yである。
図38は、各車輪にかかる力の算出(Force on each wheels)処理(ST2-5)を説明するための図で、同図(a)は、処理の手順を示すフローチャートであり、同図(b)は、力の算出手順を説明するための図である。図38(a)に示すように、各車輪にかかる力の算出(Force on each wheels)処理(ST2-5)では、まず、リフト成分のみによって中間平面(x-z平面に平行な平面)に分配された力を計算する(Step1)。ここで、図38(b)に示すように、(右)前輪にかかる力FR lift (L1)及び(右)後輪にかかる力RR lift (L2)と、車両の中心にかかる力(Center of Force)CoF Lift=Total lift force(L_tot)との関係は、前輪と後輪との間の距離Length=lとし、CoFと後輪との間の距離をXとすると、
L1=L_tot*(x/l)
L2=L_tot*(l-x)/l
すなわち、
L_tot=L1+L2
となる。
次に、各車輪にかかる力を算出するために前平面(y-z平面に平行な平面)に分配された力を計算する(Step2)。こうして、車両の各車輪にかかる力が算出される。
図31のデータ出力プロセス(ST3)では、上記の演算プロセス(ST2)で算出した車両の全体にかかる力及び各車輪にかかる力のデータを第一出力データファイル16(Output data File from COF solver)及び第二出力データファイル17(Output files)として出力する。
ここで、第一出力データファイル16には、例えば、複数(ここでは4つ)の異なるタイプ(タイプ0~3)の粒子データが格納されている。タイプ0の粒子は、各三角形の重心位置(力位置)で生成される通常の粒子である。タイプ1の粒子は、車体(全体)の空力の中心に位置する粒子である。タイプ2の粒子は、三角形の中心に位置する粒子であり、この粒子は力の大きさがゼロの粒子である。タイプ3の粒子は、地面に接触する車輪上の点に位置する粒子である。これら4つの異なるタイプの粒子データは、例えば色分けなどされて区別されている。これら各タイプの粒子のデータのうち、タイプ1の粒子のデータによって、車両の全体にかかる力が算出される。また、タイプ3のデータによって、各車輪(の接地点)にかかる力が算出される。
このように、第一出力データファイル16に格納されたデータによって、粒子から車両の各部に及ぼされる力の分布が定まる。このデータを元に車両の全体にかかる力及び各車輪にかかる力が算出される。算出されたデータは、第二出力データファイル17に格納されている。
図39は、車両に作用する力の算出結果を示す図で、(a)は、車両の各車輪にかかる力(Lift forces on each wheel)を示す図、(b)は、車体全体に作用する力(Resultant Force acting on car body)を示す図である。同図は、演算プロセス(ST2)における算出結果を図30の可視化プロセス(ST4)で可視化した結果を示している。このように、本実施形態のシミュレーションプログラム112によれば、車両の各車輪にかかる力(揚力)と車体の全体に作用する力(揚力)を算出して視覚化することができる。
図40は、車両の各車輪に作用する力(揚力)の比較(Comparison of lift forces acting on wheel)を示すグラフで、横軸はタイムステップ(Time step)、縦軸は車両にかかる力(Force)の大きさである。同図のグラフには、車両の左前輪FL、右前輪FR、左後輪RL、右後輪RRそれぞれにかかる揚力の経時変化、すなわち車両の四輪それぞれにかかる揚力の分布状態の経過時間に応じた変化が示されている。
以上説明したように、本発明にかかる粒子解析方法によれば、解析対象物である車両に作用する流体(車両の周囲を流れる気体)を有限個の粒子で模擬し、該粒子の流れ又は状態を解析することで、流体の流れが解析対象物に対して及ぼす作用の影響を解析することで、解析対象物に作用する流体を模擬した有限個の粒子それぞれの流れ状態(例えば、所定時間幅毎の位置、速度及び圧力など)を精度良く算出することができる。そのうえで、解析対象物が影響粒子から受ける力である粒子力を算出する粒子力算出処理である力の算出(Force calculation)処理(ST2-3)と、粒子力によって解析対象物の全体に作用する力を算出する全体力算出処理である力の中心算出(Center of Force calculation)処理(ST2-4)と、解析対象物の各部に作用する力を算出する各部力算出処理である各車輪にかかる力の算出(Force on each wheels)処理(ST2-5)と、を有することで、流体中における解析対象物の流体特性(例えば、空力特性)を粒子法による流体粒子の解析結果を用いて精度良く推定することが可能となる。これにより、設計対象物の流体特性(空力特性)に関する製品仕様などをより迅速かつ的確に決定することができるようになる。
また、格子を用いる従来の解析手法では、流体の流れ中に有る解析対象物の全体に作用する力及び各部に作用する力の正確な解析を行うことができなかったところ、本発明の上記粒子解析方法によれば、影響粒子から解析対象物に作用する力を正確に算出できるので、解析対象物の全体及び各部に作用する力の解析を精度良く行うことができるようになる。したがって、流体の流れ中に有る解析対象物に作用する力をより正確に模擬(解析)することが可能である。
また、本粒子解析方法の影響粒子選定処理である粒子選別(Filter particles)処理(ST2-2)では、解析対象物である車両の各表面から所定距離の範囲内に位置する空気の粒子を影響粒子として選定することが可能である。この場合、所定距離を変えることにより、例えば、流体中における解析対象物の流体特性(例えば、空力特性、以下同じ。)に関する指標である上記流体が解析対象物に対して及ぼす作用による影響を反映した指標についての精度を向上させることが可能となる。
また、本粒子解析方法では、解析対象物である車両の形状データは、当該車両の表面を三角形で分割した形状モデルとしている。この場合、解析対象物の表面に接する接平面を容易に決定することができるため、解析対象物の表面と各粒子との距離を容易に算出することができる。これにより、解析対象物に作用を及ぼすことができる影響粒子を容易に選定することが可能となる。
さらに、影響粒子が解析対象物に作用する際の解析対象物の作用面積及び作用面の法線ベクトルを容易に算出することができるため、解析対象物が影響粒子から受ける粒子力、並びに上記の指標を容易に算出することが可能となる。
更に、本実施形態のシミュレーションプログラム(粒子解析プログラム)112では、各繰り返し演算ステップ(例えば、図30のステップST2)は、CPU101上で機能する専用のカーネル(図16)を個別に有すると共に、そのカーネルにリンクされた一の繰り返し演算ステップを専門に実行する専用の演算処理部(グリッド)(図16)をGPU115上に個別に有する。これにより、コンピュータ装置100(ホストコンピュータ)のCPU101の演算負荷を好適に軽減するのと同時に、汎用のコンピュータ上で複数の粒子についての複数の繰り返し演算ステップを同時に実行することが可能となる。これにより、流体の解析に要する時間を大幅に短縮することが可能となり、最適な製品仕様を迅速に決定することができるようになる。
以上、本発明の第4実施形態を説明したが、本発明は、上記実施形態に限定されるものではなく、特許請求の範囲、及び明細書と図面に記載された技術的思想の範囲内において種々の変形が可能である。例えば、上記実施形態では、本発明の解析対象物が車両(自動車)であり、当該車両の走行中に該車両の外周面に沿って流れる空気(粒子)の流れから受ける力(揚力)の解析を行う場合について説明したが、本発明の解析対象物は車両(自動車)には限られず、それ以外にも、例えば、飛行機や船舶など他の乗物類や、ソーラパネルや家屋などの建築物などを解析対象物とすることができ、それらの周囲を流れる空気や水などの流体の流れからの影響による力の計算(解析)が必要な設計全般に応用することが可能である。