方眼紙の階段が、11段なのか12段なのか合わない
McCabe-Thiele 法の課題を方眼紙で解いたことがある人なら、たぶん一度は同じところで止まっている。平衡曲線を描いて、45°線を引いて、操作線を2本引いて、右上から階段を刻んでいく。缶出液の組成に届いたところで数を数える。11段。ところが解答は「約12段」と書いてある。どこで1段ずれたのか、答え合わせのしようがない。
原因は3つのどれかしかない。平衡曲線の描き方が甘かったか、操作線の交点を読み違えたか、それともリボイラーを1段に数えたかどうかという数え方の問題か。3つ目が原因のときが一番厄介で、作図そのものは完璧に合っているのに答えだけが1段違う。しかも解答は「約12段」としか書いていないので、どの流儀で数えた12段なのかが分からない。
そしてこの1段の差は、演習の中だけの話では終わらない。段数はそのまま塔の高さになり、塔1本ぶんの設備費に直結する。
このツールは、α = 2.5・原料50%・留出95%・缶出5%・還流比2・沸点液供給という、演習で最もよく見る条件を初期値に置いてある。この条件で理論段数は11段、塔内の棚段数は10段、最適供給段は上から5段目になる。同じ入力に対して階段を SVG で描き直すので、自分が引いた階段とどこから形が違うのかを重ねて確かめられる。
なぜ作ったのか — 数字1つではなく、階段の形ごと出す
きっかけは、日本語で「McCabe-Thiele 作図」を検索したときの手応えのなさだった。上位に並ぶのは Wikipedia の解説、大学の講義資料の PDF、学会の論文、それに手順を文章で説明した記事ばかりで、数値を入れたら階段が描かれる場所が事実上ひとつも無い。作図法なのに、作図してくれるものが無い。自分のサイトに404本あるツールを見直しても、化学工学の単位操作は1本も作っていなかった。
実装するにあたって最初に決めたのは、理論段数という数字を1つ返すだけのツールにはしないということだった。この手法は作図そのものが理解の中心にある。「なぜ供給段が上から5段目なのか」「なぜ還流比を少し下げただけで段数が2倍近くまで増えるのか」は、階段の形を見ないと腑に落ちない。還流比を下げると濃縮部操作線が平衡曲線に近づき、階段の踏み面が痩せて、同じ距離を進むのに何段も要るようになる——この様子は数字の羅列では絶対に伝わらない。だから気液平衡曲線・45°線・濃縮部操作線・回収部操作線・q線・階段・ピンチ点を全部1枚に重ねた線図を出すことにした。
もう1つの設計判断が、段数の数え方を両方出すことだった。部分リボイラーは1つの平衡段として数えるのが標準的な慣行で、この流儀だと初期条件の答えは11段になる。一方で「塔の中に何段の棚を入れるのか」という設計者の問いに答えるのは、リボイラーを除いた10段のほうだ。教科書によってどちらを「理論段数」と呼ぶかが揺れているので、片方だけ出すと必ず「解答と1段合わない」が起きる。だから理論段数(リボイラー込み)と棚段数(塔内)を並べて表示している。答えが合わないときに、まずここを見比べれば済むようにしたかった。
理論段数とは何か — なぜ蒸留は「段」で数えられるのか
理論段数 とは — 1回の「沸かして凝縮させる」が1段
沸点の違う2成分が混ざった液を沸かすと、出てくる蒸気には低沸点側(軽質成分)が液よりも濃く含まれる。その蒸気を集めて冷やして液に戻し、また沸かす。今度はさらに濃くなる。これを繰り返せばいくらでも濃縮できる——蒸留の原理はこれだけだ。そしてこの「沸かして凝縮させる」の1回ぶんが1段にあたる。
たとえるなら、目の粗いふるいを何回もかける作業に近い。1回では大きい粒と小さい粒が中途半端にしか分かれないが、同じふるいを繰り返しかけると、そのたびに少しずつ揃っていく。ふるいの目の細かさが比揮発度、かけた回数が段数にあたる。目が細かい(比揮発度が大きい)なら数回で済むし、目が粗い(比揮発度が1に近い)なら何十回もかける必要がある。
実際の蒸留塔では、この繰り返しを縦に積んだ塔の中で同時にやっている。各段では、下から上がってきた蒸気と上から落ちてきた液が接触する。ここでその段の気液が平衡に達すると仮定した段を理論段(平衡段)と呼ぶ。実在の段は完全には平衡に達しないので、実段数は理論段数より多くなる(Theoretical plate — Wikipedia)。理論段数は「理想的にやったら最低何回の平衡接触が要るか」を表す指標だと考えるといい。
比揮発度 とは — α が分離のしやすさを決める
比揮発度 α は、軽質成分の揮発しやすさが重質成分の何倍かを表す。定比揮発度(塔内のどこでも α が一定)を仮定すると、液組成 x と平衡にある蒸気組成 y は次の式で結ばれる。
y = α·x / (1 + (α − 1)·x)
x = y / (α − (α − 1)·y) // 逆関数(階段の水平移動で使う)
α = 2.5 のとき、液が50%なら蒸気は 2.5×0.5 / (1 + 1.5×0.5) = 71.4% になる。液の半分が軽質成分でも、その上にある蒸気は7割が軽質成分だということだ。この21.4ポイントの差が1段ぶんの濃縮量で、これを何回積み上げれば95%に届くかが段数になる。
α が1に近づくと差が縮む。α = 1.3 なら液50%に対して蒸気は56.5%しかない。わずか6.5ポイントの積み上げで50%から95%まで持っていくことになるので、段数は跳ね上がる(実際にこの条件では41段になる)。逆に α = 1 だと y = x になり、何回繰り返しても組成が変わらない。α > 1 でなければ蒸留では分離できないというのはそういう意味だ(Relative volatility — Wikipedia)。
McCabe-Thiele 法 わかりやすく — 操作線がなぜ直線になるのか
平衡曲線だけでは段数は数えられない。ある段を出た液が次の段でどんな蒸気と出会うのかは、塔の中の物質収支で決まるからだ。ここで等モル流れ——各段で蒸発する量と凝縮する量が等しく、塔内の液流量 L と蒸気流量 V が各セクションで一定——を仮定すると、この収支が直線で書ける。
塔頂側(濃縮部)で考える。全縮器から出た液のうち塔へ戻す量が L、製品として抜く量が D で、還流比は R = L/D と定義される。濃縮部の任意の断面で軽質成分の収支を取ると、V·y = L·x + D·xD になる。V = L + D で割って R で整理すると次の式になる。
濃縮部操作線: y = R/(R+1)·x + xD/(R+1)
傾きが R/(R+1)、切片が xD/(R+1) の直線だ。R = 2、xD = 0.95 なら傾き0.6667、切片0.3167。還流比を上げると傾きが1に近づき、操作線が45°線側へ寄って平衡曲線から離れる——これが「還流を増やすと段数が減る」の正体で、あとで階段を描いたときに目で見える。
回収部(塔底側)にも同じ理屈で操作線が引ける。こちらは点 (xW, xW) を通り、傾きは必ず1より大きくなる。切片は負の値になるのが正常で、これは式の形からくる当然の帰結なので慌てなくていい。
q線 傾き — 供給液の状態が塔内の流量を変える
濃縮部と回収部の操作線をつなぐのが q線だ。q は供給1 mol を飽和蒸気にするのに必要な熱量をモル蒸発潜熱で割った値と定義される。言い換えると、供給した1 mol のうち何 mol ぶんが回収部の液流量を増やすかを表す。
- 沸点にある液(飽和液)で入れる → 全量が液のまま下へ落ちるので q = 1
- 飽和蒸気で入れる → 液は増えないので q = 0
- 過冷却液(沸点より冷たい液)→ 塔内の蒸気を凝縮させるぶん液が増えるので q > 1
- 過熱蒸気 → 塔内の液を蒸発させるので q < 0
q線の式は y = q/(q−1)·x − zF/(q−1) で、傾きは q/(q−1) になる。q = 0 なら傾き0の水平線 y = zF。q = 1 のときだけ分母が0になり、傾きが無限大の垂直線 x = zF になるので、実装では専用の分岐が要る(この処理は §8 で扱う)。
q線が向きを変えると、2本の操作線の交点が動き、最小還流比も供給段の位置も変わる。同じ系・同じ純度目標でも、沸点液で入れるか飽和蒸気で入れるかで必要な還流比がほぼ2倍違う——という具体例は §7 で数字を見てもらうのがはやい。McCabe と Thiele が1925年に発表したこの図解法の全体像は McCabe–Thiele method — Wikipedia にもまとまっている。
1段の違いが塔の高さと運転コストを分ける
段数を1段間違えると何が起きるか。棚段塔の段間隔は一般に0.4〜0.6 m なので、10段違えば塔の高さが5 m 変わる。塔本体の鋼材費だけでなく、基礎、架構、保温、はしごとプラットフォーム、そして据付時のクレーン計画まで連鎖する。概略設計の段階で段数を10段見誤ると、見積もりの桁が変わるわけではないにせよ、後戻りのコストは確実に効いてくる。
では段数を減らせばいいのかというと、そう単純にはいかない。段数を減らす手段は還流比を上げることで、還流比を上げるとリボイラーの熱量とコンデンサの冷却水量がほぼ比例して増える。設備費は一度きりだが、運転コストは塔が動いている限りずっと効き続ける。年8000時間運転する塔で還流比を1.5倍にすれば、蒸気代も冷却水代も1.5倍に近づく。この「一度きりの設備費 vs 永続する運転コスト」の綱引きが、還流比を最小還流比 Rmin の何倍に取るかという設計判断そのものだ。実務では1.2〜1.5倍あたりを目安に置くことが多いが、これは規格値ではなく設計慣行で、文献によって1.05〜1.3や1.1〜1.5と幅がある。エネルギー価格が高い時期には下限側へ、設備費を抑えたい案件では上限側へ寄る。
モル分率と質量分率の取り違えが数%効く
実務で最も多い入力ミスが単位の取り違えだ。この手法はすべてモル分率で扱う。ところが現場の分析値や製品規格は質量%で書かれていることが多い。質量分率 w からモル分率 x への換算は x = (w/M1) / (w/M1 + (1−w)/M2)(M は分子量)で、ベンゼン(78.11)-トルエン(92.14)なら**質量50%はモル54.1%**になる。4ポイント強のずれだ。純度目標の xD 側で同じずれが乗れば、必要な段数が1〜2段動く。分子量が近い系なら誤差は小さいが、水(18.02)とメタノール(32.04)のように分子量が倍近く違う系では、質量分率とモル分率が大きく食い違う。
共沸系にこの手法を当ててはいけない
もう1つ、モデルが黙って嘘をつくケースがある。定比揮発度モデルは共沸を知らない。エタノール-水は常圧で約89 mol%(質量で約95.6 wt%)に共沸点があり、そこで α = 1 になって蒸気と液の組成が一致する。つまり通常の蒸留ではこの組成を超えられない。ところが α を一定として与えると、モデルは95%でも99%でも「到達できる、段数はこれだけ」と平然と答えを返す。エラーも警告も出ない。
これは入力ミスと違って、計算結果を見ても間違いに気づけない種類の誤りだ。だから系の性質を先に確認する習慣が要る。理想系に近いか(ベンゼン-トルエンのように Raoult の法則がよく成り立つか)、正または負の偏倚があるか、共沸点を持つか。共沸系なら、そもそも通常蒸留の段数計算では答えが出ない問題として、共沸蒸留・抽出蒸留・膜分離といった別の手段を検討する段階に移る必要がある(Azeotrope — Wikipedia)。理論段数の計算は、系の選定が終わったあとの話だということだ。
なお、理論段数が出たあとにもう一段階ある。実段数は 理論段数 / 全塔効率 で、全塔効率は塔の型式と系によって0.4〜0.8程度になる。理論段数10段の塔は、実際には13〜25段の棚を持つことになる。
実際にこのツールを開く4つの局面
技術士第一次試験(化学部門)の演習で答え合わせをする。 蒸留の理論段数は専門科目の頻出テーマで、過去問の解答は「約○段」としか書いていないことが多い。方眼紙で数えた段数と照合し、合わないときは供給段の位置とリボイラーの数え方から潰していく。線図が出るので、自分の階段のどこから形がずれたのかを追える。
大学・高専の化学工学実験のレポートを書く。 実測の段効率を求めるには、まず同じ運転条件での理論段数が要る。実段数と理論段数の比が全塔効率になるので、レポートの考察に使う値をここで押さえる。作図課題の検算にも同じように使える。
既設塔の運転条件を変える前に確認する。 蒸気コストを下げたいので還流比を絞りたい、という話は現場で頻繁に出る。今の段数のまま還流比をどこまで下げると目標純度を割るのか、還流比−段数のトレードオフ曲線で当たりを付けてから実機で試す。現状の R/Rmin が何倍かが分かれば、絞れる余地があるのかどうかも見当がつく。
概略設計の初期段階で塔の規模感を掴む。 比揮発度と組成目標しか決まっていない段階で、10段の塔になるのか40段の塔になるのかで、その後の検討の粒度が変わる。詳細はプロセスシミュレーターに任せるとしても、桁を外していないかの確認は早いほうがいい。
使い方は3ステップ
① 系と組成を入れる。 比揮発度 α、原料のモル分率 zF、留出液のモル分率 xD、缶出液のモル分率 xW を入力する。いずれもモル分率で、質量%で管理している場合は分子量で換算してから入れる。xD は zF より大きく、xW は zF より小さい必要がある。典型ケースのプリセットが4件あるので、ベンゼン-トルエンやメタノール-水から始めて数字を触るのでもいい。
② 運転条件を入れる。 還流比 R と、供給液の状態を選ぶ。供給液の状態は「沸点液(q=1)」「飽和蒸気(q=0)」「q を指定」の3択で、「q を指定」を選んだときだけ q の数値入力欄が現れる。過冷却液なら1より大きい値、過熱蒸気なら負の値を入れる。原料供給量 F は任意入力で、入れると留出量 D と缶出量 W が算出される。空欄のままでも理論段数の計算はできる。
③ 結果を読む。 理論段数(リボイラー込み)と塔内の棚段数、上から数えた最適供給段、最小還流比 Rmin、全還流時の最小理論段数 Nmin、還流比の余裕 R/Rmin が表示される。あわせて気液平衡曲線・45°線・2本の操作線・q線・階段作図を重ねた線図と、還流比を Rmin の1.05倍から3倍まで振ったときの理論段数の変化を示すトレードオフ曲線が描かれる。段数が出せない条件(還流比が最小還流比以下など)では、段数の代わりに理由が示される。
使用例9ケース — 入力値・結果・解釈
以下の9ケースはすべて実装した計算エンジンの出力そのもので、Fenske 式と Underwood の閉形式による独立検証を通したものだ。
使用例1: 演習の標準ケース(基準になる形)
入力: α = 2.5、zF = 0.5、xD = 0.95、xW = 0.05、R = 2、沸点液供給。 結果: 理論段数11段(小数段数10.39)、塔内の棚段数10段、最適供給段は上から5段目。Rmin = 1.100、R/Rmin = 1.82倍、Nmin = 6.43段。判定は「還流過大」。
解釈: 教科書と演習問題で最もよく見る組み合わせで、以降のケースの基準になる。R/Rmin が1.82倍あり、実務目安の1.2〜1.5倍を上回っているので還流をかなり多めに取っている条件だ。逆に言えば、還流比を下げる余地がある。この条件の操作線の式と階段の刻み方は §8 で1段ずつ追いかけている。
使用例2: ベンゼン-トルエンを98/2まで分離する
入力: α = 2.45、zF = 0.4、xD = 0.98、xW = 0.02、R = 2.5、沸点液供給、F = 100 kmol/h。 結果: 理論段数16段(15.17)、棚段数15段、供給段は上から8段目。Rmin = 1.633、R/Rmin = 1.53倍、Nmin = 8.69段。D = 39.58 kmol/h、W = 60.42 kmol/h。
解釈: 使用例1と比べて α はほぼ同じ(2.5 → 2.45)なのに、段数が11段から16段へ5段増えた。効いているのは純度目標だ。95/5 から98/2 へ上げただけで、Fenske の最小段数も6.43段から8.69段へ増えている。純度の最後の数ポイントが段数を最も食うという、蒸留の一般的な性質がそのまま出ている。R/Rmin = 1.53倍は実務目安の上限あたり。
使用例3: メタノール-水(α が大きい系)
入力: α = 3.6、zF = 0.3、xD = 0.95、xW = 0.01、R = 1.5、沸点液供給、F = 50 kmol/h。 結果: 理論段数13段(12.27)、棚段数12段、供給段は上から5段目。Rmin = 1.119、R/Rmin = 1.34倍、Nmin = 5.89段。D = 15.43 kmol/h、W = 34.57 kmol/h。判定は「標準」。
解釈: 缶出を1%まで落とす厳しい条件なのに13段で済んでいる。α = 3.6 という大きい比揮発度が効いている——1段あたりの濃縮量が大きいので、少ない回数で目標に届く。R/Rmin = 1.34倍は実務目安のど真ん中で、この条件は還流比の取り方としてバランスが良い。ただしメタノール-水は理想系ではない。実際の α は組成によって2台から7以上まで動くので、3.6 という定数を当てるのは粗い近似である点は忘れないほうがいい。共沸はしないので、分離自体はどこまでも進められる。
使用例4: ベンゼン-トルエン系を沸点液で供給する
入力: α = 2.45、zF = 0.45、xD = 0.95、xW = 0.05、R = 3.3、沸点液供給、F = 100 kmol/h。 結果: 理論段数10段(9.15)、棚段数9段、供給段は上から5段目。Rmin = 1.302、R/Rmin = 2.53倍、Nmin = 6.57段。D = 44.44 kmol/h、W = 55.56 kmol/h。判定は「還流過大」。
解釈: R = 3.3 は Rmin の2.5倍以上あり、還流を大きく取ったぶん10段まで縮んでいる。次の使用例5と入力の違いは供給液の状態だけなので、並べて読んでほしい。
使用例5: まったく同じ系を飽和蒸気で供給する
入力: 使用例4と同一で、供給液の状態だけ「飽和蒸気(q=0)」に変更。 結果: 理論段数12段(11.17)、棚段数11段、供給段は上から7段目。Rmin = 2.504、R/Rmin = 1.32倍、Nmin = 6.57段。判定は「標準」。
解釈: 供給を沸点液から飽和蒸気に変えただけで、最小還流比が1.302から2.504へほぼ2倍に跳ね上がった。同じ還流比3.3で運転しているのに、余裕は2.53倍から1.32倍まで落ちている。段数も10段から12段へ増えた。原因は q線の向きだ。q = 0 では q線が水平線 y = 0.45 になり、ピンチ点が (0.250, 0.450) と平衡曲線の左下側へ移る。ここから塔頂組成までの距離が伸びるぶん、最小還流比が大きくなる。供給を予熱するかしないかは熱の入れ場所を変えるだけに見えるが、必要な還流比という設計値をここまで動かす。供給段が5段目から7段目へ下がるのも同じ理由だ。
使用例6: 還流比を最小還流比の1.05倍まで絞る
入力: α = 2.5、zF = 0.5、xD = 0.95、xW = 0.05、R = 1.155、沸点液供給(使用例1と同条件で還流比だけ変更)。 結果: 理論段数20段(19.78)、棚段数19段、供給段は上から10段目。Rmin = 1.100、R/Rmin = 1.05倍。判定は「最小還流比に近い」。
解釈: 使用例1の R = 2 では11段だったものが、還流比を1.155まで絞ると20段になる。還流比を42%下げただけで段数が約2倍だ。しかもこの増え方は線形ではない。同じ条件でトレードオフ曲線を追うと、1.05倍で20段、1.2倍で15段、1.5倍で12段、2.0倍で10段、3.0倍で9段——最小還流比のすぐ上では傾きが極端に立ち、1.5倍を超えると寝てくる。実務目安が1.2〜1.5倍に置かれている理由がこの曲線の形にある。段の途中の液組成を見ると事情がよく分かる。x8 = 0.5222、x9 = 0.5079、x10 = 0.4985 と、交点の0.500付近で1段あたりの進みが0.01程度まで落ちている。操作線が平衡曲線にほぼ張り付いて、段を刻んでもほとんど濃縮が進まない領域ができている。これがピンチと呼ばれる状態だ。
使用例7: 還流比が最小還流比を下回る
入力: α = 2.5、zF = 0.5、xD = 0.95、xW = 0.05、R = 0.9、沸点液供給。 結果: 理論段数は算出できない。Rmin = 1.100、R/Rmin = 0.82倍、Nmin = 6.43段。判定は「分離不可」。
解釈: R = 0.9 は Rmin = 1.1 を下回っている。このとき濃縮部操作線が平衡曲線と交わってしまい、階段が交点の手前で止まって缶出液組成に永久に届かない。数学的には理論段数が無限大に発散する。段数を「999段」のような大きい数で返すこともできるが、それでは「たくさん段を積めば届く」という誤解を招く。届かないものは届かないので、段数は出さずに理由を示す形にした。ここで見るべきは Rmin = 1.1 という値のほうで、まず還流比をこれより大きくすることが先決になる。
使用例8: α = 5 の易しい系を99/1まで分離する
入力: α = 5、zF = 0.5、xD = 0.99、xW = 0.01、R = 1、沸点液供給。 結果: 理論段数9段(8.91)、棚段数8段、供給段は上から5段目。Rmin = 0.470、R/Rmin = 2.13倍、Nmin = 5.71段。判定は「還流過大」。
解釈: 99/1という、使用例2よりさらに厳しい純度目標なのに9段で終わる。しかも還流比は1しか要らない。α = 5 の威力だ。液が50%なら蒸気は83.3%になるので、1段で一気に進む。段ごとの液組成も x1 = 0.9519、x2 = 0.8699、x3 = 0.7264、x4 = 0.5476 と、1段で0.1〜0.2ずつ落ちていく。使用例6のピンチ状態(1段0.01)と見比べると、比揮発度が分離の難易度をどれだけ支配しているかが分かる。
使用例9: 原料がすでに目標に近いとき
入力: α = 5、zF = 0.8、xD = 0.9、xW = 0.05、R = 1、沸点液供給。 結果: 理論段数4段(3.53)、棚段数3段、供給段は上から1段目。Rmin = 0、R/Rmin は定義できない、Nmin = 3.19段。判定は「分離が容易」。
解釈: 原料が80%、目標が90%と近く、しかも α = 5 なので、原料をそのまま1段沸かすだけで平衡蒸気が95.2%に達してしまう。目標の90%を最初から超えているので、幾何的に求めた最小還流比が負になる——つまり還流をかけなくても濃縮部の目標には届く条件だ。ツールは Rmin を0にクランプし、R/Rmin は割り算の分母が0になるので表示しない。供給段が1段目になっているのもこの状況を反映していて、塔の濃縮部が実質的に要らないことを意味する。極端な条件だが、既設塔に濃い原料を入れる検討などで実際に出会う。
仕組み — なぜ作図法を選び、どう検算したか
候補は3つあった
理論段数を求める方法は大きく3つある。
(a) McCabe-Thiele の作図法——x-y 線図の上で階段を刻んで数える。1925年に発表された古典的な手法。 (b) Fenske-Underwood-Gilliland(FUG)ショートカット法——Fenske 式で全還流の最小段数、Underwood 式で最小還流比を求め、実際の還流比での段数を Gilliland の経験相関で内挿する。 (c) Smoker の解析解——段から段への写像が1次分数変換(メビウス変換)になることを利用して、段数を閉形式で解く。
本ツールが (a) を採ったのは、この手法だけが「なぜその段数になるのか」を図で説明できるからだ。FUG は速いが、Gilliland の相関が経験式なので中間の値の根拠が見えない。「段数は16段」と出ても、どの段で何が起きているかは分からない。Smoker は正確で速いが、結果が数式1本で出てしまい、供給段の位置やピンチの様子が視覚化されない。使用例6で見たような「x8 から x10 まで0.01ずつしか進まない」といった観察は、階段を実際に刻む方法でしか得られない。
ただし (c) は捨てたわけではなく、実装の検算に使った。後述する。
実装フロー
計算の骨格は次のようになる。
// 1) 気液平衡(定比揮発度)とその逆関数
const yEq = (x: number) => (alpha * x) / (1 + (alpha - 1) * x);
const xEq = (y: number) => y / (alpha - (alpha - 1) * y);
// 2) 濃縮部操作線
const rectifyingSlope = R / (R + 1);
const rectifyingIntercept = xD / (R + 1);
// 3) q線 — q=1 は垂直線なので専用分岐が要る
const qLineVertical = Math.abs(qRaw - 1) < Q_VERTICAL_EPS; // この比較はここ1箇所だけ
const qUsed = qLineVertical ? 1 : qRaw;
// 4) 2本の操作線の交点 (xi, yi) を求め、(xW, xW) と結んで回収部操作線にする
const strippingSlope = (yIntersect - xW) / (xIntersect - xW);
const strippingIntercept = xW - strippingSlope * xW; // 負になるのが正常
// 5) 階段作図: (xD, xD) から出発し「平衡曲線へ水平 → 操作線へ垂直」を交互に繰り返す
let y = xD, n = 0;
while (n < STAGE_LIMIT) {
n += 1;
const x = xEq(y); // 水平移動
if (x <= xW + COMP_EPS) break; // 缶出液組成に到達したら終了
y = x > xIntersect
? rectifyingSlope * x + rectifyingIntercept // 濃縮部
: strippingSlope * x + strippingIntercept; // 回収部
}
このループで数えた n が理論段数で、部分リボイラーを1段として数える慣行に従っている。全縮器は組成を変えないので段には数えない。したがって trayCount = theoreticalStages − 1 が塔内に必要な棚段数になる。最適供給段は、液組成 x が初めて交点 xi を下回った段だ。
q = 1 のゼロ除算をどう処理したか
実装で一番注意を要したのが q線の扱いだった。q線の傾きは q/(q−1) なので、q = 1 で分母が0になる。ここで厄介なのは、ユーザーが正確に1.0を打つとは限らないことだ。沸点液での供給は最も普通の条件なので、演習の問題文を写して1.0005 のような値が入る可能性が現実にある。このとき傾きは2001になり、q = 0.9997 なら −3332 になる。この巨大な傾きで交点を解くと、丸め誤差で交点 xi が zF から目に見えてずれ、SVG の線も画面外へ飛ぶ。
対策は、Math.abs(q − 1) < 0.001 なら q = 1 とみなすスナップ処理を入れ、その判定結果を qLineVertical という boolean 1つに集約したことだ。q線の描画、交点計算、ピンチ点計算、注記の表示——すべてこのフラグと確定した qUsed を参照する。各所で q === 1 を書き直すと、スナップした場所としていない場所で挙動が食い違う。0.001 という幅は、q がこれだけずれたときの Rmin の変化が表示の有効数字に現れないことから決めた。
もう1つ、q線と濃縮部操作線が平行になって交点が存在しない特異点もある。q線の傾き q/(q−1) と濃縮部操作線の傾き R/(R+1) が等しくなるのは q = −R のときで、これは過熱蒸気を還流比1以下で運転する条件として実際に到達できる。ガードが無いと0除算で交点が Infinity になり、JavaScript では例外にならず黙って NaN が伝播する。ここも許容誤差付きで判定してフラグを立て、回収部操作線が引けないことを理由として示す形にした。
計算例: 使用例1を手で追いかける
α = 2.5、zF = 0.5、xD = 0.95、xW = 0.05、R = 2、沸点液供給で、階段を3段ぶん刻んでみる。
ステップ1: 操作線とピンチ点を出す。
濃縮部操作線の傾き = R/(R+1) = 2/3 = 0.6667
濃縮部操作線の切片 = xD/(R+1) = 0.95/3 = 0.3167
→ y = 0.6667x + 0.3167
q = 1 なので q線は垂直線 x = 0.5
ピンチ点 yq = 2.5×0.5 / (1 + 1.5×0.5) = 1.25/1.75 = 0.7143
→ (xq, yq) = (0.500, 0.714)
Rmin = (xD − yq)/(yq − xq) = (0.95 − 0.7143)/(0.7143 − 0.5) = 1.100
R/Rmin = 2/1.1 = 1.82 倍
ステップ2: 操作線の交点と回収部操作線を出す。
交点 xi = zF = 0.5(q線が垂直なので)
交点 yi = 0.6667×0.5 + 0.3167 = 0.650
回収部の傾き = (yi − xW)/(xi − xW) = (0.650 − 0.05)/(0.5 − 0.05) = 1.3333
回収部の切片 = xW − 1.3333×xW = −0.01667
→ y = 1.3333x − 0.01667
ステップ3: 階段を刻む。 全縮器なので塔頂の蒸気組成は留出液組成に等しく、y = 0.95 から出発する。
段1: y = 0.9500 → x1 = 0.95/(2.5 − 1.5×0.95) = 0.8837 (水平移動)
x1 = 0.8837 > xi = 0.5 なので濃縮部操作線で垂直移動
y2 = 0.6667×0.8837 + 0.3167 = 0.9058
段2: y = 0.9058 → x2 = 0.9058/(2.5 − 1.5×0.9058) = 0.7937
y3 = 0.6667×0.7937 + 0.3167 = 0.8458
段3: y = 0.8458 → x3 = 0.8458/(2.5 − 1.5×0.8458) = 0.6869
以下同様に x4 = 0.5789、x5 = 0.4858 と続く。x5 で初めて交点の0.500を下回るので、上から5段目が最適供給段になる。ここから先は回収部操作線に切り替わり、x6 = 0.4063、x7 = 0.3066、x8 = 0.2051、x9 = 0.1215、x10 = 0.0637 と落ちて、x11 = 0.0285 で缶出液組成 xW = 0.05 を下回って終了する。よって理論段数は11段、塔内の棚段数は10段。
小数段数10.39 は、最後の1段を x 軸方向に線形按分した値で、(n−1) + (x_{n−1} − xW)/(x_{n−1} − x_n) として求めている。方眼紙の作図から目で読み取る値にあたるのはこちらだ。なお Fenske の Nmin = 6.43 とは小数部が一致しない。両者は按分の定義が違うためで、一致するのは全還流に近づけたときの整数部だけになる。
3つの独立な解析解で検算した
作図の反復計算はバグが結果に紛れ込みやすい。1段ずれても数字としては自然に見えてしまうからだ。そこで実装後に、公表された3つの解析解と突き合わせた。
(1) 全還流で Fenske 式と一致するか。 還流比を無限大に近づけると、操作線は45°線に一致する。この条件での段数は Fenske 式 Nmin = ln[(xD/(1−xD))·((1−xW)/xW)] / ln α で閉形式に書ける。階段作図の整数部がこれと一致することを、α = 1.5 / 2.0 / 2.45 / 3.5 / 5.0 × 純度4条件の20組で確認した(小数部は按分の定義が違うので0.02〜0.14段ずれるが、これは仕様どおり)。
(2) 幾何的な Rmin が Underwood の閉形式と一致するか。 q = 1 の2成分系では、最小還流比が Rmin = (1/(α−1))·[xD/zF − α(1−xD)/(1−zF)] と書ける。q線と平衡曲線の交点から幾何的に求めた値がこれと機械精度(差 1e−15 以下)で一致することを、α 6条件 × 組成4条件の24組で確認した。
(3) 段から段への写像の閉形式と一致するか。 平衡式と操作線を合成すると、段から段への写像は1次分数変換(メビウス変換)になる。この性質を使うと n 段後の組成が閉形式で書ける——Smoker が1938年に導いた解析解と等価な計算だ。これと反復で回した階段作図の結果が、α 3条件 × R 3条件で10桁一致した。
この3点で、平衡式・操作線・階段作図・Rmin・Nmin のすべてが独立な解析解で裏を取れていることになる。プリセットの比揮発度も孫引きの一覧表からではなく、NIST Chemistry WebBook の Antoine 定数から一次導出した(ベンゼン-トルエンは80°Cで2.60、110°Cで2.34、その幾何平均2.465からプリセット値2.45)。
蒸留の段数計算ツールとして、ここが引き受けている範囲
前半で触れたとおり、この計算をブラウザで完結させてくれる場所はほとんど無い。残る選択肢は有償のプロセスシミュレーターだが、熱収支も物性推算も込みで解けるかわりに導入と習熟のコストが重く、演習の答え合わせや概略設計の当たり付けには大げさすぎる。このツールが埋めているのは、その間に空いた「入力を打ち込んで、階段の形ごと確かめたい」という帯だ。
違いは3つある。
1. 階段作図そのものを線図で描く。 McCabe-Thiele 法は数値を出す手続きではなく、図の上で段を数える手法だ。気液平衡曲線・45°線・濃縮部操作線・回収部操作線・q線・階段・ピンチ点を1枚の SVG に重ねて描くので、「なぜ供給段がこの位置になるのか」が図の交点として目で追える。理論段数という数字だけ受け取っても、方眼紙の階段と突き合わせる作業はできない。
2. リボイラー込みの理論段数と、塔内の棚段数を並べて出す。 「解答と1段合わない」の原因の大半はこの数え方の違いにある。どちらか一方しか出さないツールだと、合わない理由が数え方なのか作図なのか切り分けられない。両方並べれば、そもそも比べる相手を間違えていたのかどうかが即座に分かる。
3. 還流比を振ったトレードオフ曲線を同時に出す。 理論段数は還流比という設計変数を1つ固定したときの答えでしかない。R/Rmin を1.05倍から3.0倍まで振ったときに段数がどう動くかの曲線と、いま入力している条件の位置を重ねて示すので、「あと1段減らすのに還流比をどれだけ上げる必要があるか」が1画面で読める。
関連ツールとの守備範囲も分けてある。撹拌機の動力計算は同じプラント機器でも槽内の混合の話で、蒸留塔の段数とは接点がない。熱交換器のサイジングは、このツールが出した還流比を受け取る側——リボイラーとコンデンサの伝熱面積を決める計算にあたる。タンク容量は原料と製品の貯蔵側、熱サイクルの効率は塔に供給する熱をどこから持ってくるかの話。段数の計算は、そのどれよりも上流の「塔そのものの規模を決める」ところに位置している。
蒸留にまつわる、少し脇道の話
蒸留を何回繰り返しても、酒の度数は96%で止まる
「蒸留を繰り返せば度数はいくらでも上がる」と思われがちだが、エタノール-水では常圧で約89.4 mol%(質量で約95.6 wt%)に共沸点がある。この組成では気相と液相の組成が一致してしまう——つまり比揮発度が1になる。沸かしても蒸気が濃くならないのだから、段をいくつ積んでも先へ進まない。スピリッツの度数がおおむね96度で頭打ちになるのは、蒸留器の性能ではなく物性の壁だ。
無水エタノールを作るには、蒸留とは別の原理を持ち込むしかない。ベンゼンやシクロヘキサンのような第三成分を入れて共沸の組成をずらす共沸蒸留、ゼオライトの細孔径で水分子だけを吸わせるモレキュラーシーブ、膜で水を透過させる浸透気化——燃料用エタノールの脱水にはこれらが使われている。このツールのプリセットにエタノール-水を入れなかったのは、この系が「一番よく知られているのに、この手法を当ててはいけない代表例」だからだ。
1925年、計算機が無かった時代に生まれた手法
McCabe と Thiele がこの方法を発表したのは1925年。当時、段ごとの組成を追う計算は割り算の連続で、10段分を手で回すだけでも半日仕事だった。方眼紙に曲線を1本引いて三角定規を往復させれば同じ答えが出る——この置き換えが革命的だったから、作図法は一気に標準になった。
面白いのは、電卓もコンピュータもある現在でもこの手法が教科書から消えないことだ。理由は精度ではない。還流比を下げると階段が平衡曲線に張り付いて刻みが細かくなる、供給段を間違えると階段が余分に増える——といった因果が、図の形として一目で分かるからだ。数値だけ出す解析解では、この「なぜ」が抜け落ちる。
充填塔には段が無いのに、段数で設計する
蒸留塔には棚段塔(トレイ塔)と充填塔がある。充填塔はラシヒリングや構造化充填物を詰めただけの筒で、物理的な段はどこにもない。それでも設計は段数で行う。HETP(理論段相当高さ)という指標を使い、「この充填物なら理論段1段ぶんの分離が何メートルで得られるか」を実測しておいて、理論段数 × HETP を必要な充填高さとするからだ。構造化充填物なら HETP はおおむね0.3〜0.5 m が目安で、充填物の種類と運転条件で動く。段が無い塔にまで「段」という概念が輸出されている——理論段が、装置の形ではなく分離の到達度を測る物差しだったことがよく分かる。
使いこなすためのコツ
モル分率で入れる。 この手法の式はすべてモル基準で立っている。純度を質量%で管理している現場は多いが、そのまま打ち込むと組成が数%ずれた別の問題を解くことになる。分子量が近い系ほどズレは小さいが、水のように分子量が飛び離れた相手が絡むと差が大きく開く。換算してから入れる。
まず R = 1.3×Rmin で当たりを付ける。 還流比をいくつにするか迷ったら、最初は実務の目安の真ん中あたりに置いて段数を見る。そのうえでトレードオフ曲線を眺め、段数を1段減らすのに還流比がどれだけ要るかを確かめると、上げるべきか下げるべきかの判断が早い。
供給状態を変えたら還流比を見直す。 q が変わると q線の向きが変わり、ピンチ点が動いて最小還流比そのものが変わる。同じ組成・同じ目標純度でも、沸点液で入れるか飽和蒸気で入れるかで必要な還流比が大きく違う(どのくらい違うかは使用例の飽和蒸気のケースを見てほしい)。還流比を据え置いたまま供給状態だけ切り替えると、R/Rmin が知らないうちに危険域へ入ることがある。
段数が出ないほど増えたら比揮発度を疑う。 100段を超えると計算を打ち切る仕様にしてある。この状態になる原因はほぼ2つで、還流比が最小還流比に近すぎるか、比揮発度が1に近すぎるかのどちらかだ。比揮発度が1.3を下回る系は作図法の実用域を外れていて、階段が細かくなりすぎて図としても読めなくなる。この領域は解析解やショートカット法の出番になる。
よくある質問
理論段数が教科書の解答と1段だけ違うのはなぜ?
数え方の違いである可能性が高い。部分リボイラーは塔の外にある機器だが、そこでも気液平衡が成立するので1つの平衡段として数えるのが標準的な慣行だ。一方で全縮器は蒸気を全量凝縮させるだけで組成が変わらないため、段には数えない。つまり同じ作図から「理論段数N段」と「塔内の棚段N−1段」という2通りの答えが出る。このツールは両方を並べて出しているので、解答がどちらを指しているかを見比べてほしい。それでも合わない場合は、階段の最後の1段——缶出液組成をまたいだ段を数えたかどうか——を確認するとよい。
小数で出る段数は何を意味している?
最後の1段を横軸方向に按分した値で、方眼紙の作図から目分量で読み取る値にあたる(按分の式と、Fenske の最小段数とは小数部が一致しない理由は前半の仕組みの解説で扱っている)。使い分けとしては、設備としての段は整数でしか作れないので、発注や塔高さの見積もりには切り上げた整数側を使う。小数段数のほうは作図の答え合わせと、実段数から全塔効率を出すときに効いてくる。
エタノール-水の条件を入れたら99%まで濃縮できると出た。本当?
ツールの答えは「入力された比揮発度が塔内のどこでも一定なら、その段数で到達できる」という条件付きの答えだ。共沸がこの前提の何を壊すのかは前半で扱っているので、ここではツール側の事情を書く。入力は比揮発度という数字1つで、そこから実在の系が共沸するかどうかを判定する材料は無い。だから入力を弾く仕組みも警告も持てない。系の性質を先に調べてから使うのが自衛策になる。
還流比を最小還流比ちょうどにしたら段数が出ないのはなぜ?
R = Rmin は理論段数が無限大に発散する特異点だからだ。この還流比では操作線がピンチ点で平衡曲線に接し、階段の刻みが接点の手前で無限に細かくなって先へ進まなくなる。数学的な極限であって、実際に作れる塔ではない。ツールは還流比が最小還流比をわずかにでも上回らない限り段数を出さず、理由を注記する。還流比が最小還流比を下回る場合も同じだ。使用例1と使用例6を見比べると、倍率を下げただけで段数がどう跳ね上がるかが分かる。無限大はその延長線上にある。
過熱蒸気で供給したら「交点が求まらない」と出た。入力ミス?
入力ミスではなく、幾何的に交点が存在しない条件に当たっている。q線の傾きは q/(q−1)、濃縮部操作線の傾きは R/(R+1) で、この2つは q = −R のときぴったり一致する。平行な2直線には交点が無く、回収部操作線はその交点から引くので引けない。還流比0.5・q = −0.5 の組合せがちょうどこれにあたる。還流比か q のどちらかを少し動かせば解ける。なお平行の近くでは交点が組成の範囲を大きく外れた場所に飛ぶので、その周辺でも段数は出ない。過熱蒸気で供給しつつ還流比を絞る、という運転条件そのものが無理をしているサインだと考えてよい。
入力した組成や生産量はどこかに送信される?
送信していない。計算はすべてブラウザの中の JavaScript で完結していて、比揮発度も組成も原料供給量もサーバーへ送っていないし、保存もしていない。製品純度や原料の処理量は事業上の機微な情報になりうるが、ページを閉じればデータは残らない。結果を手元に残したいときはコピー機能でテキストとして書き出し、自分の管理下のファイルへ貼ってほしい。逆に言えば、ページを再読み込みすると入力は初期値へ戻るので、検討中の条件はその都度控えておくとよい。
まとめ
理論段数は1つに決まる答えではない。還流比をどこに置くかで段数は動き、還流比を下げれば段数が増え、上げれば運転コストが増える。このツールが理論段数と一緒に最小還流比・トレードオフ曲線・階段の線図を出しているのは、その1点だけを見て設計判断をしないでほしいからだ。まずは手元の条件を入れて、階段の形と供給段の位置を確かめてみてほしい。
塔まわりの計算を続けるなら、熱交換器のサイジングでリボイラーとコンデンサの伝熱面積を、タンク容量で原料と製品の貯蔵量を、熱サイクルの効率で供給する熱の使い方を押さえられる。同じプラント機器の系列では撹拌機の必要動力も用意している。
計算の前提や結果の解釈で気になる点があれば、お問い合わせページから知らせてほしい。実務で使っている条件のフィードバックは、次の改良の判断材料にしている。
Mahiro
Mahiro Appの開発者。方眼紙に階段を刻んでいた学生の頃、リボイラーを1段に数えるかどうかで解答と食い違って半日つぶしたことがある。あの1段で迷わないよう、理論段数と塔内の棚段数を必ず並べて出す形にした。
運営者情報を見る