Scilabで二酸化炭素の状態方程式 その1

気体の温度・圧力・体積の関係を表す式といえば、理想気体の状態方程式を思い浮かべる人は多いと思います。理想気体の状態方程式は、気体分子自体の体積や気体分子間の相互作用を無視して作られた状態方程式です。しかしながら、実在気体ではこれらの効果が無視できないことがあります。

そこで今回のエントリでは、実在気体の挙動をよりよく再現できるファンデルワールスの状態方程式を計算するプログラムをScilabで作成しました。

\left(P + \frac{a^2}{V} \right) (V-b)=RT

(P: 圧力, V: モル体積, R: 気体定数, T: 絶対温度, a, b: ファンデルワールス定数)

001_20130811163806c85.jpg

Fig.1: 気体の二酸化炭素のイメージ。もっとも、ドライアイスを水に入れたときに発生している白煙は、実際には二酸化炭素ではないのですが・・・。画像は(c)Kim H Yusukeより



理想気体の状態方程式


物質化学の分野では、状態方程式というと、物質の圧力P,温度T,体積Vの間に成り立つ関係式の事を指します。
最も簡単なものとして、理想気体の状態方程式が挙げられます。

PV = RT

(P: 圧力, V: モル体積, R: 気体定数, T: 絶対温度)

この式から分かるとおり、物質はP,V,Tのうち2つを指定すると残りの1つが決まってしまいます。
このようにP,V,Tのうち2つを決めて残り1つを計算することを状態方程式を解くといいます。

ファンデルワールスの状態方程式


理想気体の状態方程式は、以下の2点を仮定しています。

  • 気体分子同士の間に力(分子間力)が働かない
  • 気体分子の大きさは無視できる

しかしながら、実際には分子と分子の間には、ファンデルワールス力による引力が働きます。また、気体分子自身の大きさは、気体全体のモル体積が大きいときは無視できますが、強く圧縮されて(または冷却されて)分子間の距離が近くなると無視できなくなります。

そこでよく用いられるのがファンデルワールスの状態方程式です。

\left(P + \frac{a^2}{V} \right) (V-b)=RT

a,bはファンデルワールス定数と呼ばれるもので、物質によって異なる定数です。

aはファンデルワールス力による分子間の引力を表すパラメータです。圧力のイメージは、ピストン内に閉じ込められた気体が容器の壁を押す力であるといったものですが、気体の分子同士が引き合うとその分、壁を押す力が減ります。

bは別名、排除体積とも呼ばれ、気体分子そのものの体積を反映しています。極めて高圧・低温になってもモル体積はbよりも小さくなりません。

二酸化炭素の状態方程式


ファン・デル・ワールスの状態方程式 (クラウジウス=クラペイロンの式、ジュール=トムソン効果)によると二酸化炭素のファンデルワールス定数は a = 3.65×10-1(Pa m6/mol2), b = 4.28×10-5(m3/mol)です。このパラメータを使ってモル体積Vと絶対温度Tから状態方程式を解いてPを求めるプログラムをScilabで書きます。

作成したプログラムはvdwEOS-CO2_sce.txtです。

002_201308111638065fd.png

Fig.2: 二酸化炭素の状態方程式の2次元プロット。250-350Kの温度範囲にわたってモル体積と温度から圧力を計算した。


同じプログラム中に、3次元プロットをする部分も含めました。
3次元プロットをするための空間グリッド作成にはndgridが便利です。

003_2013081116380518d.png

Fig.3: 二酸化炭素の状態方程式の3次元プロット。200-500Kの温度範囲にわたってモル体積と温度から圧力を計算した。軸が切れてしまっているがZ軸は圧力を表す。


clear;

// *** 入力パラメータ ***
// 物理定数
r = 8.31 // 気体定数 (J/K/mol)

// 二酸化炭素のファンデルワールス状態方程式
a = 3.65E-1; // Pa m^6 / mol^2
b = 4.28E-5; // m^3 / mol
// 理想気体の状態方程式
//a = 0; // Pa m^6 / mol^2
//b = 0; // m^3 / mol

// *** ファンデルワールスの状態方程式 **
deff("p = f(v,t)","p = r .* t ./ (v - b) - a ./ v ./ v");

// 体積・温度ベクトルと計算グリッド
v = [5E-5:1E-5:1E-3]; // 体積ベクトル (m^3 / mol)
t = [200:10:500]; // 温度ベクトル (K)
[V,T] = ndgrid(v,t); // 体積温度空間グリッド

// *** 圧力の計算と2次元グラフのプロット ***
scf(0);
plot(v,f(v,250),'-r');
plot(v,f(v,275),'-g');
plot(v,f(v,300),'-b');
plot(v,f(v,325),'-m');
plot(v,f(v,350),'-c');
// グラフの装飾
xlabel("Molar volume (m^3/mol)");
ylabel("Pressure (Pa)");
plot([b,b],[-1E8,2E7],'--k'); //
plot([0,0.001],[0,0],'--k');
zoom_rect([0,-2E6,1E-3,2E7]);
legend(["T = 250 (K)","T = 275 (K)","T = 300 (K)","T = 325 (K)","T = 350 (K)"],1);

// *** 圧力の計算と3次元グラフのプロット ***
scf(1);
P = f(V,T);
mesh(V,T,P);
// グラフの装飾
a = gca();
a.data_bounds = [0,200,0;1E-3,500,2E7];
xlabel("Volume (m^3/mol)");
ylabel("Temperature (K)");
zlabel("Pressure (Pa)");


関連エントリ




参考URL




付録


このエントリで使用したScilabのシミュレーション用ファイルを添付します。ファイル名末尾の".txt"を削除して、"_"を"."に変更すれば使えるはずです。(参考:ねがてぃぶろぐの付録)


参考文献/使用機器




フィードバック



にほんブログ村 その他趣味ブログ 電子工作へ

 ↑ 電子工作ブログランキング参加中です。1クリックお願いします。


コメント・トラックバックも歓迎です。 ↓      


 ↓ この記事が面白かった方は「拍手」をお願いします。


tag: Scilab 状態方程式 熱力学 

comment

Secret

FC2カウンター
カテゴリ
ユーザータグ

LTspiceAkaiKKRmachikaneyamaScilabKKRPSoC強磁性OPアンプPICCPAecaljモンテカルロ解析常微分方程式odeトランジスタ状態密度DOSインターフェース定電流PDS5022スイッチング回路半導体シェルスクリプト乱数レベルシフト分散関係HP6632AI2C可変抵抗トランジスタ技術ブレッドボード温度解析R6452A反強磁性確率論バンドギャップセミナー数値積分熱設計非線形方程式ソルババンド構造絶縁偏微分方程式ISO-I2CLM358マフィンティン半径フォトカプラシュミットトリガカオスLED三端子レギュレータGW近似A/Dコンバータ発振回路PC817C直流動作点解析USBTL431数値微分アナログスイッチカレントミラー74HC4053サーボ量子力学単振り子チョッパアンプ補間2ちゃんねる開発環境bzqltyFFT電子負荷LDAイジング模型BSch基本並進ベクトルブラべ格子パラメトリック解析標準ロジックアセンブラ繰り返し六方最密充填構造SMPコバルトewidthFET仮想結晶近似QSGW不規則合金VCAMaximaGGA熱伝導cygwinスレーターポーリング曲線キュリー温度スイッチト・キャパシタ失敗談ランダムウォークgfortran抵抗相対論位相図スピン軌道相互作用VESTA状態方程式TLP621ラプラス方程式TLP552条件分岐NE555LM555TLP521マントル詰め回路MCUテスタFXA-7020ZR三角波過渡解析ガイガー管自動計測QNAPUPSWriter509ダイヤモンドデータロガー格子比熱熱力学起電力awkブラウン運動スーパーセルUbuntu差し込みグラフ第一原理計算フェルミ面fsolveCIFxcrysden最大値最小値ubuntu最適化平均場近似OpenMP井戸型ポテンシャル固有値問題シュレディンガー方程式TeX2SC1815結晶磁気異方性OPA2277フラクタルFSM固定スピンモーメントc/a非線型方程式ソルバgnuplot全エネルギーfcc初期値マンデルブロ集合縮退正規分布interp1ウィグナーザイツ胞L10構造multiplotフィルタ面心立方構造PGAハーフメタル二相共存ZnOウルツ鉱構造BaOSIC重積分磁気モーメント電荷密度化学反応クーロン散乱岩塩構造CapSenseノコギリ波デバイ模型キーボード半金属フォノンquantumESPRESSOルチル構造スワップ領域リジッドバンド模型edelt合金Realforce軸ラベルグラフの分割凡例線種シンボルMAS830LCK1026LMC662PIC16F785トランス関数フィッティングトラックボールPC等価回路モデルヒストグラムパラメータ・モデル不規則局所モーメント最小二乗法TS-112TS-110直流解析ExcelGimp円周率片対数グラフ両対数グラフspecx.f疎行列三次元ifort文字列不純物問題P-10等高線ジバニャン方程式ヒストグラム確率論マテリアルデザイン入出力境界条件陰解法AACircuit熱拡散方程式HiLAPWMBEEAGLE連立一次方程式ナイキスト線図負帰還安定性Crank-Nicolson法日本語

最新コメント
リンク

にほんブログ村 その他趣味ブログ 電子工作へ