- ベストアンサー
濃度分布計算について
エクセルで一方方向の濃度分布計算を行っています。 上端(x=100cm)は壁になっている状態でガスは外へ逃げれない系です。 初めは濃度勾配を持った状態(x=0付近の濃度が濃く、x=100cmの濃度が薄い(濃度≒0))ですが、 時間を∞にすると、どの位置も濃度が同じ(均一)状態であるグラフ(濃度-位置)をエクセルで作成 したいのですがどうすればよいのでしょうか。 t=0での下端の飽和濃度は60%、均一になったときの濃度は5%になるように考えています。 よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No.2のリンクにある式をNo.1の補足欄風に書き換えると c(n+1,i)=D*(c(n,i-1)-2*c(n,i)+c(n, i+1))/dx/dx*dt+c(n,i) こんな感じかなあ。 端は、 c(n+1,i)=D*(-c(n,i)+c(n, i+1))/dx/dx*dt+c(n,i) の感じになります。
その他の回答 (3)
- ki073
- ベストアンサー率77% (491/634)
系全体の物質量が変わらないようにしないといけません。 x1がずっと60になっていますが、 t0、t1、t2、t3t、・・・ x1,60、58.8、57.6・・・ x2, 0、 1.2、2.38・・・ x3, 0、 0、0.02・・・ ・ のような感じです。t0→t1でx1→x2に1.2移動、 Δtをかなり小さくとらないと近似にならないように思います。 上の例はかなり粗いです。
- ki073
- ベストアンサー率77% (491/634)
No.1に示したリンクのaluminum.sceや http://life.ess.sci.osaka-u.ac.jp/katsura/scilab/scilab.pdf 「1次元の例」 を見ればわかるのですが、Δtを小さくとって、隣の微小空間から濃度に応じた物質の移動があるようにします。 全体の物質量が一定ですので、流出と流入が等しくなるようにしてやると、期待した結果になるはずです。 結果が大きく震動してしまわないように注意。
補足
度々の回答ありがとうございます。 VBAやプログラミング言語は習い始めのため、エクセルの表計算で計算していたのですが・・・ 初期条件(t=0)をx=0でC=60、x>0でC=0と設定し、エクセルで t0、t1、t2、t3t、・・・ x1,60、60、60・・・ x2, 0、30、35・・・ x3, 0、25、28・・・ ・ ・ ・ ⊿t=1sec、⊿x=0.5cm のように差分方程式をセルに組んでみたのですが、時間が大きくなるにつれx>x1の範囲の濃度が飽和濃度(C0=60)より大きくなったり、マイナスになりました。 上記の計算方法に間違えがあると思うのですが、教えて頂いたフリーソフトでも試してみようと思います。
- ki073
- ベストアンサー率77% (491/634)
どこまでできていて、どこが分からないのか理解できないのですが、 失礼ながら何もできていないような気もします。 X軸を微小部分に分割して、それぞれに初期値を与えて、拡散方程式を適用していけばよいわけです。 まずはこの辺りを参考にしてください。 http://life.ess.sci.osaka-u.ac.jp/katsura/scilab/index_2007.html scilabという無料で利用できるソフトを使ったものです。シミュレーションにはEXCELよりずっと適しています。 またRubyやPythonなどを使うのもよいのではなかと思います。
補足
回答ありがとうございます。 拡散計算についてですが、拡散方程式を差分化した c(n+1,i) = c(n,i)+2D(c(n,i+1)-c(n,i))/dx/dx*dt+2A/dx*dt を用いて計算を試みましたが、うまく出来ませんでした。
お礼
色々なアドバイスありがとうございます。 教えて頂いた計算で、Δtを10^-10にすると系全体の物質量を一定にすることが出来ました。