Daijiro Taira

熱・反応工学ブラウザで動く

反応管 ヘキサン平衡圧ビューア

密閉した反応管に純ヘキサンを入れて加熱すると、中の圧力はどこまで上がるのか——を、温度・ヘキサンの量・容器の大きさから見積もるツールです。

反応管 ヘキサン平衡圧ビューア の操作の様子
温度を上げると、平衡圧・相状態バッジ・グラフ上の現在点がリアルタイムに変化します。臨界点234.67℃を境に超臨界へ移り、続いて充填量を増やすと液体ヘキサンへ(実画面を自動操作して録画)。

水版・メタノール版の“ヘキサン版”で、ヘキサンは臨界温度が約235℃と低く、水やメタノールより低い温度で超臨界に入るのが特徴。非極性溶媒を使う反応の前に、圧力と相のあたりを付けられます。

使い方

  1. 画面の見方

    画面の見方

    水版・メタノール版と同じ並び(左で条件入力 → 中央に答え → 右に計算式 → 下に2つのグラフ)。黄/ゴールドがヘキサン版の目印です。右上の「水版へ →」「メタノール版へ →」「水–メタ混合版へ →」で条件を引き継いだまま切り替え、「仕様書」で詳細仕様を開けます。

  2. 条件を入れる

    条件を入れる

    温度 T(25〜400℃)・ヘキサンの量 V_fill(室温の液量)・容器体積を入れます。室温ヘキサン密度は 25℃(655) / 20℃(659) から選択可。下に密度 ρ と充填率が自動で出ます。

  3. 圧力と相を読む

    圧力と相を読む

    中央の大きな数字が反応管内のヘキサンの平衡圧(MPa、下に bar / atm も)。バッジが相状態です。例:180℃・ヘキサン2 mL・容器5 mL → 1.301 MPa・気液二相(V+L)。

  4. グラフで全体像をつかむ

    グラフで全体像をつかむ

    左=いまの密度のまま温度を上げたときの圧力カーブと飽和蒸気圧曲線・臨界点(234.67℃)。点線はEOS妥当上限327℃で、それより右は温度外挿です。右=温度×充填量でどの相になるかのマップ。白丸が今の条件です。

  5. やってみよう:温度を下げると

    やってみよう:温度を下げると

    60℃(ヘキサンの沸点68.7℃以下)まで下げると 0.076 MPa(約0.8気圧)・気液二相。沸点より低い温度では圧力はごくわずかです。

  6. やってみよう:温度を上げると

    やってみよう:温度を上げると

    280℃に上げると 5.528 MPa・超臨界(SC) に。ヘキサンは234.67℃で臨界点を超えるので、水やメタノールよりずっと低い温度で超臨界になります(臨界圧3.04 MPaも低い)。

  7. やってみよう:ヘキサンを増やすと

    やってみよう:ヘキサンを増やすと

    同じ180℃でもヘキサンを4 mLに増やすと 11.10 MPa・液体ヘキサン(L) へ。気液二相のうちは圧力は飽和圧のままですが、液が容器を満たして単相液になると圧力が急上昇します。

仕組みと使った技術

全体の流れ

  1. ユーザーが温度 T(25–400℃)・ヘキサン充填量 V_fill(室温の液量)・容器体積 V_vessel(既定5 mL)をスライダまたは数値入力で指定する。室温ヘキサン密度は25℃(655)と20℃(659)の2択(CoolProp計算値)をセレクトボックスで切り替えられる。
  2. 密閉管は等容系であるため、状態は (T, 全体密度 ρ = ヘキサン質量 / V_vessel) の2変数で決まる(ρは選択した室温密度で充填量を質量に換算して算出)。
  3. ビルド前に precompute.py が CoolProp(HEOS, n-Hexane の Thol et al. 2019 EOS)を呼び出し、(T, ρ) の単相2Dグリッド(温度409点 × 密度401点 = 約16.4万点、密度軸0.5–700 kg/m³)と、T軸に沿った飽和蒸気圧・飽和液密度・飽和蒸気密度の1D飽和テーブルを data_grid.json へ書き出す。EOS妥当上限は600 K(326.85℃)で、これを超える温度は外挿として扱う。
  4. core.js が相判定を行う。T ≥ Tc(234.67℃) は単相で、P ≥ Pc(3.04 MPa) なら超臨界(SC)、P < Pc なら気体様。T < Tc では飽和蒸気密度 ≤ ρ ≤ 飽和液密度なら気液二相(V+L)で P = Psat(T)、ρ が飽和液密度より大きければ液体ヘキサン(L)、飽和蒸気密度より小さければ蒸気(V) として単相EOSグリッドを補間する。
  5. 単相の圧力補間は、動く相境界(飽和密度)をアンカーに「Δρ = ρ − ρsat(T)」で温度方向を補間する境界相対密度補間を採用し、二相/単相境界のキンクを跨がないようにしている。
  6. 温度が327℃を超える場合は温度外挿、圧力が約92 MPa(状態方程式の妥当上限 pmax)を超える場合は圧力外挿として、それぞれ別建てで赤フラグと計算注記を出す。ヘキサンは臨界圧が低いため、満充填の圧縮液域(高温・高充填)では圧力外挿が出やすく、温度外挿とは独立に明示する設計になっている。
  7. app.js の UI 層が、左ペインに圧力値と相バッジ、右ペインに『式と計算』透明化パネル(ρ算出→相判定→圧力補間→気液分配のてこ比を数式付きで表示)、下部に P–T 等容線グラフ(等容線・飽和蒸気圧曲線・臨界点・現在点・EOS上限線)と相状態マップ(温度–充填量で相域を色分け)を描画する。
  8. URLパラメータ(?T=&fill=&vessel=)で初期条件を指定でき、水版・メタノール版・水–メタ混合版と条件を引き継いで相互リンクする。計算サーバー不要でブラウザ内だけで完結する単一HTMLとして Cloudflare Workers で公開し(仕様書 spec.html 同梱・noindexで検索除外)、配布・共有できる。

使った技術

CoolProp (HEOS, n-Hexane / Thol et al. 2019 EOS)
Python側でビルド前に純ヘキサンの (T, ρ) 2Dグリッドおよび飽和テーブルを事前計算するための物性ライブラリ。ヘキサンは純物質としてCoolProp が直接対応するため、混合版で使う thermopack は不要。
Python / precompute.py
非一様ρグリッド(0.5–700)と飽和テーブルを生成し data_grid.json に書き出すビルドスクリプト。臨界定数(Tc=234.67℃, Pc=3.04 MPa)・室温密度(25℃/20℃)・EOS妥当上限(600K)・圧力妥当上限(pmax)もここで定義する。
JavaScript / core.js
DOM・Plotly非依存の物性補間・相分岐ロジック。流体非依存のprofile方式で、水版・メタノール版から無改変で流用している。Python参照実装と突合検証済み。
JavaScript / app.js
UI層(スライダ・数値入力・室温密度セレクト→core.js呼び出し→Plotly描画・計算透明化パネル更新・温度/圧力の外挿フラグ表示・4ツール相互リンクURL生成)。
Plotly.js (cartesianバンドル)
P–T等容線グラフと相状態マップの描画。vendorとして単一HTMLに埋め込み、外部通信なしの動作を実現。
Python / build.py
template.html・vendor Plotly・data・core・appを結合して単一HTMLを生成し、docs/仕様書.html → spec.html の自動コピーまで行うビルドスクリプト。
QA(qa_compare.py / verify_core.js)
qa_compare.pyがPython補間参照とCoolProp直計算を突合、verify_core.jsがNodeでJS core.jsを実行して参照と一致を定量検証する。
Cloudflare Workers
reactor-hexane-pressureフォルダのindex.htmlと仕様書spec.htmlを静的ホスティングで公開(noindexで検索除外)。

実装の工夫

  • メタノール版(037)を雛形に、CoolPropの流体を n-Hexane(Thol et al. 2019 EOS)へ差し替えて構築。core.jsが流体非依存のprofile方式だったため、変更は precompute のパラメータ(臨界定数・室温密度・妥当上限)と表示文言・配色のみで、相判定・補間ロジックは無改変で流用できた。
  • 外挿を温度と圧力で別建てにした。温度はEOS妥当上限600K(326.85℃)、圧力は妥当上限 pmax(約92 MPa) を超えると、それぞれ独立した赤フラグと計算注記を出す。ヘキサンは臨界圧が3.04 MPaと低く、満充填の圧縮液域(T≧150℃級)で圧力が92 MPaを超えうるため、温度外挿だけでは取りこぼす領域を圧力外挿でカバーしている。
  • 相判定では『臨界温度を超えたら一律に超臨界』とせず、T≧Tc かつ P≧Pc を超臨界(SC)、T≧Tc かつ P<Pc を気体様として区別した。near(臨界近傍)警告は Tc±3℃ で対称に出す。
  • ρグリッドは非一様設計(密度軸0.5–700 kg/m³、温度409点×密度401点=約16.4万点)。希薄蒸気側は粗く、圧縮液の急峻域は細かく刻んで、精度とファイルサイズを両立している。
  • 黄/ゴールドのパレットを採用し、水版(薄青系)・メタノール版(薄緑系)・水–メタ混合版(薄紫系)と色でツールを識別できるようにした。
  • 水版・メタノール版・水–メタ混合版の4ツールを URLパラメータ(T/fill/vessel)で双方向に相互リンクし、条件を保ったまま行き来できるようにした。core.jsの補間結果は qa_compare.py・verify_core.js でPython参照と突合し、既定表示 P(300℃)=6.669 MPa が CoolProp直計算 6.6685 と一致することもスポット確認している。

用語

平衡圧
密閉容器の中で、液体とその蒸気がつり合った(平衡になった)ときに示す圧力。
等容系(定容)
容器の体積が変わらない系。密閉した反応管はこれにあたり、状態は温度と全体密度だけで決まる。
全体密度 ρ
入れたヘキサンの質量 ÷ 容器体積。等容系では圧力と相を決める鍵になる量。
充填率
容器体積に対する、室温で測ったヘキサンの体積の割合(例: 5 mL の容器に 2 mL なら 40%)。
飽和蒸気圧
ある温度で液体と蒸気が共存できる圧力。気液二相のときの圧力はこれで決まる。
気液二相(V+L)
液体と蒸気が同時に存在している状態。容器内に液面がある状態。
臨界点
これより高温・高圧では気体と液体の区別が無くなる点。ヘキサンは約234.67℃・3.04 MPa(水の約374℃・メタノールの約240℃より低温)。
超臨界(SC)
臨界点を超えた状態。ここでは温度が臨界温度以上かつ圧力が臨界圧以上のとき。気体と液体の中間のような性質をもつ。
気体様(高温低圧)
温度は臨界温度を超えているが、圧力が臨界圧より低い領域。希薄な気体に近いふるまい。
液体ヘキサン(L)
臨界点に達しない範囲の、高温・高密度の液体のヘキサン(水版の「加圧熱水」・メタ版の「亜臨界メタノール」に相当)。
温度外挿 / 圧力外挿
状態方程式が確かな範囲(温度≦326.85℃、圧力≦約92 MPa)を超えた表示。超えた分は外挿(参考値)で、温度・圧力それぞれ別に注記される。