上式で求めた\(\omega\)を使って、臨界圧力比\(\eta_c\)を求めます。Integration)安全弁入口から出口まで圧力で直接積分していきます。}=-2log\left(\frac{\epsilon/D}{3.7}+\frac{2.51}{Re\sqrt{f}}\right)$$Colebrook式は収束計算が必要となりますので、計算例として、ExcelのGoalSeakを用いる方法、VBAを用いた計算方法をご紹介します。本サイトでは以下Darcy式を圧損計算の基本式として考えています。\frac{v^2}{2g}$$機械系ではFanningの式を用いる場合が多いかもしれませんが、その場合は、前述の摩擦係数は1/4になります。計算しやすいように、以下のような前提、数値で圧損計算を行います。流量W:100[t/hr]、配管径D:1.0[m]、配管長L:100[m]、配管粗さε:0.05[mm]密度ρ:1[kg/m3]、粘度μ:1[cP]、フィッティング無し。[m^2]}=127324[m/hr]$$続いてReynolds数を求めます。s]}=35368[-]$$摩擦係数fは、Colebrook式で求める場合、上述のように収束計算が必要となります。GoalSeekで求める方法です。以下のように、適当なfを初期値として与え、Colebrook式の左辺、右辺の計算を行い、左辺と右辺の差が0となるようにGoalSeekで設定します。GoalSeekだとエラー値の評価が甘いですが、Solverを使えば、Error値を小さくすることができます。VBAで求める場合は、例えば逐次代入法を用いて解くことができます。Loopで、右辺の値の2乗の逆数を更新していき、前回値との差分がtolerance以下になるまで計算を繰り返します。)以下のように関数として登録しておき、ExcelからVBA関数を呼び出すことが可能です。)ではNewton法による解法が紹介されています。具体的には、以下のように陽関数の形に変換し、微分値を求め、初期値f0から計算を行います。$$諸条件から圧損を求める簡易ツールをこちらに作成しました。簡易版ですが、確認用にご使用ください。L/D\)に以下の補正をかけます。1.0ザックリ相当長ベースで入力したい場合は、以下式にて相当長\(L_{eq}\)を入力します。K値の補正が必要な場合は、以下式を使用します。2相流配管の圧損(Beggs-Brill式)2相流配管の圧損計算式としてBeggs-Brill式を紹介します。p.55–592相流配管の圧損(Lockhart-Martineli式)考え方はBBMHよりも単純で気相、液相が単相で流れた場合の圧損比をLockhart-MartineliのパラメーターXの相関式で表現し、以下のように計算します。1.液側、ガス側のReynolds数を求める。⇒各相がTurbulentかLaminarか判断する。⇒使用する係数式が決まる2.液側の圧力損失を計算する。(液側の重量流量、密度からColebrook式等で通常通り計算する)3.1で求めた係数と2で求めた液側の圧力損失を掛け合わせて、2相流の圧力損失を求める。ため、まずは水のみ、密度一定とした場合の偏流計算を考えてみます。下図のように、圧力P1のタンクから、各ユーザー(User1、User2)に、流れる流量を考えます。上図で、送出元と各ユーザーの到達圧、密度が分かっている場合、配管径が決まれば、ヘッダー圧、各ユーザーへの流量は簡単に求めることができます。以下のような問題設定で考えてみます。赤字で示していますが、各配管での流量、圧損とヘッダー圧の計7変数が未知数の状態ですので、7つの式が必要となります。今回は密度一定、つまり非圧縮性の流体を考えていますので、物質収支、圧力バランスで蓄積項を考慮する必要は無く、以下のように考えられます。今回はNewton法で求めるため、予めf(x)=0の形に変形しておきます。これで7変数に対し、7つの式を立てることができ、自由度は満足していますので、後は解くだけです。いえ、流量-圧損の関係式が非線形となっており、式を見てパッと解ける連立方程式にはなっていないため、今回は1Pythonを使ってNewton-Raphson法で解く方法と、2Excelのsolverを使う方法をご紹介します。Pythonで求める場合まずは境界条件と適当な初期値を決めます。初期値は適当ですが、一応マスバランスは満たした形で決めておきます。f(x)=の誤差がtolerance内に収まるまで繰り返し計算を行います。ここで、逆流が発生した場合に、ルート内が負とならないように場合分けしておきます。あとはJacobianを手計算で求め、その逆行列と関数をかけ合わせれば良いのですが、ここでnumpyでは非常に便利な関数があります。linalg.solve(Jacobian、関数)で、Jacobianと関数の積を一気に求めることができます。刻み0.5、tolerance:e-5で、収束回数:14回。最終的な解は以下のように求まります。前述のように、逆流が発生する場合の式処理も行っておけば、以下のようにユーザー側の圧力が上昇した場合の逆流も計算することが可能です。フィッティング情報からconductance値を求めることも可能です。上述のPythonを使ったケース同様、逆行列計算さえできれば簡単に解くことができます。C++では、数値計算ライブラリとしてEigenが有名ですが、Csharpでも同様のものを探していたところ、Math.Net.Numericsというものがありました。詳細は、Csharpのページでゆくゆくまとめていきたいと思いますが、ひとまず暫定版として、上述のPythonと同様の簡易サンプルを以下に作成しました。簡単な使い方を以下に記載します。Excelで求める場合Excelを使う場合、いくつか方法が考えられます。関数で行うことができます。)、31と2の複合(2だけで行うと収束計算分セルを拡張する必要があるので、VBAと複合して使った方が見やすい結果になります)、4Solverを使う方法等です。1~3はPythonを使う方法と考え方は同様なので省略し、4の方法を紹介します。問題設定はPythonの場合と同様とします。充填塔の渇き圧損計算式としてSticlmair式をご紹介します。fraction、充填物の比表面積[1/m]:PackAreaを用いて下式となります。\left(1-Void\right)}{PackArea}$$充填塔の空塔速度[m/sec]:\(U_v\)は、ガスの通過流量[kg-mol/sec]:\left(F_v\rght)と、ガス密度[kg-mol/m3]:\(R_v\)、カラムの断面積[m2]:Aを用いて下式となります。A}$$抵抗係数[-]:\(f_0\)は、Stichlmair係数[-]:C1~C3とガスのレイノルズ数[-]:\(Re_{vap})を用いて下式となります。P\)は、下式となります。Fractionは各充填物タイプに応じて求められています。以下に一部抜粋して示します。詳細は出展をご参照ください。充填塔の渇き圧損計算式としてSticlmair式をご紹介します。以下の流れで収束計算を行います。a.ガス流速を仮定します。b.乾き圧損を計算します。c.濡れ圧損を計算します。d.下式の残差を求め、収束誤差を超えている場合は再度ガス流速をアップデートし、aに戻ります。当サイトに不具合、ご意見等ございましたらCEsolutionにお知らせください。