シミュレータと最小モデル — 条件を動かして適材適所を読む
水素量・上流炭素強度・貯蔵方式・利用方式・取扱損失・安全設計レベルを教材モデルへ落とし込み、各操作変数が有効エネルギー・気候スコア・収納しやすさ・運用リスクへどう効くかを切り分ける。
まずは 6 つの操作変数(パラメータ)を 1 つずつ動かす
この章のシミュレータは、水素量・上流炭素強度・貯蔵方式・利用方式・取扱損失・安全設計レベル を教材用モデルへ落としたものです。目的は、厳密設計ではなく、どの操作変数が 有効エネルギー・気候スコア・収納しやすさ・運用リスク に効くかを切り分けることです。
- 水素量: 取り出せる化学エネルギーの出発点。
- 上流炭素強度: 製造経路と電力由来の影響を代表。
- 貯蔵方式: 収納しやすさと取り扱い難度に効く。
- 利用方式: 燃料電池か燃焼かで変換効率が変わる。
- 取扱損失: 漏えい・ボイルオフ・追加変換の損失を代表。
- 安全設計レベル: 換気・検知・訓練の成熟度を代表。
4 つのプリセットがどの章の話に対応するか
シミュレータ上部の 4 つのプリセットは、これまでの章で扱ってきた代表ケースを 1 クリックで再現するためのものです。
- FCEV 乗用車: 第 1 章「電化と並ぶ選択肢」 + 第 4 章「700 bar 圧縮」 + 第 5 章「PEM 燃料電池」の組み合わせ。短時間補給と体積制約が論点になる典型例。
- 定置バックアップ: 第 1 章「長時間稼働 / 高稼働」 + 第 4 章「350 bar」 + 第 5 章「PEM 燃料電池」。停電時にすぐ立ち上がる点と、低稼働時の貯蔵負担を見るための設定。
- 輸入キャリア発電: 第 3 章「上流の炭素強度」 + 第 4 章「アンモニア / MCH キャリア」 + 第 5 章「ガスタービン」。長距離 + 大規模で、追加工程の損失が大きく見える設定。
- 水素エンジン商用車: 第 4 章「液体水素 / 高圧」 + 第 5 章「水素エンジン(燃焼利用)」 + NOx 対策の論点。燃料電池より変換効率が落ちる代わりに、既存燃焼系との連続性を見るための設定。
HF101 シミュレータ
実プラント計算ではなく、どの操作変数が有効エネルギー・気候スコア・収納しやすさ・運用リスクへ効くかをつかむための教材用モデルです。
化学エネルギー
0.0 kWh
有効エネルギー
0.0 kWh
気候スコア
0 / 100
収納しやすさ
0 / 100
運用リスク
0 / 100
読み取り
—
教材モデルの JavaScript
教材側のコードも、仮定を隠さず短く書いています。入力範囲を外れた値は、黙って丸めるのではなく RangeError を投げて止めます。
function assertFiniteInRange(name, value, min, max) {
if (!Number.isFinite(value) || value < min || value > max) {
throw new RangeError(`${name} must be a finite number in [${min}, ${max}]`);
}
}
function clamp01(value) {
if (!Number.isFinite(value)) {
throw new RangeError('value must be finite');
}
return Math.min(1, Math.max(0, value));
}
function fuelEnergyLhvKWh(h2Kg) {
assertFiniteInRange('h2Kg', h2Kg, 1, 12);
return 33.3 * h2Kg;
}
function storageProfile(mode) {
const table = {
'350bar': { packing: 0.45, embeddedLoss: 0.02, complexity: 0.34 },
'700bar': { packing: 0.62, embeddedLoss: 0.04, complexity: 0.46 },
'liquid': { packing: 0.82, embeddedLoss: 0.12, complexity: 0.72 },
'carrier': { packing: 0.70, embeddedLoss: 0.18, complexity: 0.78 },
};
const profile = table[mode];
if (!profile) {
throw new RangeError(`unknown storage mode: ${mode}`);
}
return profile;
}
function endUseProfile(mode) {
const table = {
fuelCell: { efficiency: 0.55, endUsePenalty: 0.00 },
engine: { efficiency: 0.32, endUsePenalty: 0.08 },
turbine: { efficiency: 0.42, endUsePenalty: 0.04 },
};
const profile = table[mode];
if (!profile) {
throw new RangeError(`unknown end-use mode: ${mode}`);
}
return profile;
}
storageProfile が収納しやすさと埋め込み損失、endUseProfile が変換効率側を表します。実設計値ではなく、どの章の話がどの数字へ効くかを追いやすくするための分解です。
係数の根拠(教材上の相対的な並び)
storageProfile の packing(収納しやすさ、0〜1 の正規化値)は、第 4 章で扱った体積効率の 相対的な並び を反映させています。350 bar < 700 bar < キャリア(常温液体)< 液体水素、という順で体積効率が良くなる方向です。embeddedLoss(圧縮・液化・キャリア化に伴う埋め込み損失)と complexity(追加設備の運用複雑さ)も同様に、相対的な大小関係をつかむための設定値です。
'350bar': 圧縮仕事は中程度、設備もっとも単純 → packing 0.45 / embeddedLoss 0.02 / complexity 0.34。'700bar': 圧縮仕事が増え、容器強度の要求も上がる → 0.62 / 0.04 / 0.46。'liquid': 体積効率は最良、ただし液化動力(おおむね水素 LHV の 25〜30 % 程度を要するという文献値が知られる)とボイルオフが大きい → 0.82 / 0.12 / 0.72。'carrier': 常温液体で運べるが、合成 + 脱水素の往復で損失が大きい → 0.70 / 0.18 / 0.78。
endUseProfile の efficiency は LHV ベースの代表値です。fuelCell: 0.55 は PEM 燃料電池の市販車・定置システムでよく目にする総合効率レンジ(おおむね 0.50〜0.60)の中央値、turbine: 0.42 は中・大型ガスタービン単体の正味効率レンジ(複合サイクルではなく単純サイクル)から取った代表値です。engine: 0.32 は水素レシプロエンジンの正味熱効率の 上限値に近い 設定で、教材としてやや楽観的である点に注意してください(量産車両ベースでは 0.25〜0.30 が現実的という見方もあります)。シミュレータで engine を選んだ際の差はやや控えめに見える可能性があるため、感度を確かめたい場合は手元で 0.28 程度まで下げて挙動を比較するのも有用です。
コードと UI の対応関係
各関数・係数がシミュレータ UI のどの表示項目と紐付くかは、次のとおりです。
fuelEnergyLhvKWh(h2Kg)→ 「化学エネルギー」表示(kWh)。スライダー「水素量」が直接の入力。storageProfile(mode).packing→ 「収納しやすさ」表示(0〜100)。セレクト「貯蔵方式」が入力。storageProfile(mode).embeddedLoss+ 取扱損失スライダー → 「有効エネルギー」表示の損失側に効く。storageProfile(mode).complexity+ 安全設計レベルスライダー → 「運用リスク」表示。endUseProfile(mode).efficiency→ 「有効エネルギー」表示の変換効率側に効く。セレクト「利用方式」が入力。- 「上流炭素強度」スライダー → 水素量と掛け合わせて「気候スコア」表示。利用方式や貯蔵方式の
embeddedLossもここへ間接的に効く(同じ有効エネルギーを得るのに必要な上流の H₂ 量が増えるため)。
理解チェック — シミュレータと最小モデル
シミュレータの読み方と、最小モデルのコード方針を確認します。
Q1. シミュレータで上流炭素強度だけを上げると、最も直接に下がりやすいものはどれですか。
サプライチェーン上流の負荷を代表している操作変数でした。
上流炭素強度は気候スコアへ最も直接に効きます。収納しやすさや運用リスクには直接の一次入力ではありません。
Q2. 水素量と貯蔵方式を固定したまま、利用方式を燃料電池から水素エンジンへ変えると最も直接に変わりやすいものはどれですか。
利用方式が変えるのは主に変換効率側でした。
利用方式は end-use efficiency に効くので、同じ H₂ 量でも最終的な有効エネルギーが変わります。
Q3. シミュレータでキャリア方式を選ぶと、一般に何と何を引き換えにしやすいと読めますか。
キャリアは「運びやすさ」と「工程追加」の引き換えでした。
キャリアは物流面の利点があり得る一方、追加変換や回収工程に伴う損失と複雑さを抱えやすくなります。
Q4. この教材の JavaScript 実装では、前提を満たさない入力が来たとき何を投げる方針にしていますか。
不正入力は勝手に補正しない、という方針でした。
教材用コードでも、入力範囲を満たさない値は RangeError で明示的に止める方が、モデルの前提が追いやすくなります。
第 6 章のまとめ
- 上流炭素強度は気候スコア、利用方式は有効エネルギー、貯蔵方式は収納しやすさへ主に効くという切り分けがシミュレータ上でそのまま見える。
- キャリア方式は運びやすさと引き換えに追加損失と運用複雑さを抱えやすい。
- 最小モデルは数式と仮定を隠さず書き、範囲外入力には
RangeErrorを投げて静かに丸めない。