1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

除湿機のタンクは何L必要? 住宅省エネ基準の気象データと湿度の式をTypeScriptで計算する

1
Posted at

はじめに

暮らしのお金を試算するサイト「いくらかかるの研究所」に、除湿機で1日にたまる水の量を計算するツールを作りました。

きっかけは、Yahoo!知恵袋の「5畳の高気密の部屋を湿度50%に保ちたい。タンクは何L、除湿能力は何Lがいい?」という質問でした。
カタログには「木造〇畳」という目安はありますが、自分の部屋で1日に何リットル取れるかはわかりません。そこで、住宅省エネ基準の公的な計算方法(建築研究所)の気象データと湿度の式を使って計算しました。

モデル:1日に取る水の量

部屋の湿度を目標に保つとき、除湿機が1日に取る水の量は次のとおりです。

取る水の量 [kg/日] = 空気の密度 × 換気量 × 24時間 ×(外気の日平均の絶対湿度 − 目標の絶対湿度)+ 人・部屋干しなどの湿気
項目 値 出典
空気の密度 1.2 kg/m³ 算定方法 第四章第二節(pyhees get_rho_air)
換気量 畳数 × 1.62m² × 天井 2.4m × 換気回数 天井高さは第五章の参照天井高さ、換気回数の初期値 0.5回/時は建築基準法のシックハウス対策
外気の絶対湿度 地域区分ごとの気象データ(1時間ごと・1年分)の日平均 第十一章第一節
人の湿気 1人 40W(潜熱) 第四章第二節(pyhees get_q_p_CL)
  • 40Wを水の蒸発潜熱(2500.8 − 2.3668 × 27 kJ/kg、pyhees get_L_wtr)で割ると、1人1時間あたり約59gです
  • 外の空気のほうが乾いている日はマイナスになります。その場合は、換気で湿気が出ていくので0にしています

「除湿しないと部屋が何%になるか」も同じ式から出せます。入ってくる外気の湿気と人の湿気が、換気で出ていく量とつり合うところです。

const xNone = clim.x[d] + gen / airKgPerDay;       // 除湿しないときの絶対湿度
const rhNone = Math.min(100, rhFromX(xNone, tempC)); // 室温での相対湿度

湿度の式を TypeScript に移植する

気象データは相対湿度で持っているので、絶対湿度に直す式が必要です。算定方法 第十一章第五節(pyhees section11_5)の式をそのまま移しました。飽和水蒸気圧は、0℃より高いときは水、0℃以下は氷に対する式を使い分けます。

const F = 101325; // 大気圧 [Pa]

/** 飽和水蒸気圧 [Pa] */
export function pvs(theta: number): number {
  const T = theta + 273.16;
  const k =
    theta > 0
      ? -6096.9385 / T + 21.2409642 - 0.02711193 * T + 0.00001673952 * T * T + 2.433502 * Math.log(T)
      : -6024.5282 / T + 29.32707 + 0.010613863 * T - 0.000013198825 * T * T - 0.49382577 * Math.log(T);
  return Math.exp(k);
}

/** 温度 [℃] と相対湿度 [%] から絶対湿度 [kg/kg(DA)] */
export function xFromRh(theta: number, rh: number): number {
  const pv = (pvs(theta) * rh) / 100;
  return (0.622 * pv) / (F - pv);
}

/** 絶対湿度 [kg/kg(DA)] と温度 [℃] から相対湿度 [%] */
export function rhFromX(x: number, theta: number): number {
  const pv = (F * x) / (0.622 + x);
  return (pv / pvs(theta)) * 100;
}

検証:pyhees と2段階で突き合わせる

1. 式そのものの一致

pyhees で計算した値を fixture に書き出し、Vitest で比べています。0℃ちょうど(氷の式)と0.1℃(水の式)の境目も入れました。

for theta, h in [(-5.0, 80.0), (0.0, 50.0), (0.1, 50.0), (20.0, 50.0), (25.0, 80.0), (27.0, 50.0), (27.0, 60.0), (32.0, 70.0)]:
    pvs = float(calc_P_vs(np.full(8760, theta))[0])
    pv = pvs * h / 100
    cases.append({"theta": theta, "h": h, "pvs": pvs, "x": 0.622 * pv / (F - pv)})
for (const c of golden.cases) {
  it(`${c.theta}℃ ${c.h}% が pyhees と一致`, () => {
    expect(Math.abs(pvs(c.theta) / c.pvs - 1)).toBeLessThan(1e-12);
    expect(Math.abs(xFromRh(c.theta, c.h) / c.x - 1)).toBeLessThan(1e-12);
  });
}

2. 丸めた気象データからの計算が、元の絶対湿度に戻るか

サイトの気象データ(JSON)は、エアコンの計算のために外気温を0.1℃、相対湿度を0.001%に丸めて持っています。一方、pyhees の気象データの元は絶対湿度です。
「丸めた温度・相対湿度 → 絶対湿度」と計算し直した値が、元の絶対湿度とどれくらい違うかを、8地域×365日の日平均で確かめました。

for (let d = 0; d < 365; d++) {
  let s = 0;
  for (let h = 0; h < 24; h++) s += xFromRh(f.thetaEx[d * 24 + h], f.hEx[d * 24 + h]);
  worst = Math.max(worst, Math.abs(s / 24 - ref[d]));
}

最大の差は 4.5×10⁻⁸ kg/kg でした。6畳・換気0.5回/時なら、1日の空気は約336kgなので、水の量にすると0.00002L未満です。相対湿度を0.001%まで持っていたので、丸めの影響はほとんど残りませんでした。

結果

東京(6地域)・室温27℃・湿度50%・24時間換気0.5回/時・1人が1日8時間いる場合です。

部屋 8月の平均 多い日 1日1回の水捨てで足りるタンク
4.5畳 2.0L/日 2.8L/日 2.8L以上
5畳 2.2L/日 3.0L/日 3.1L以上
6畳 2.5L/日 3.6L/日 3.6L以上
8畳 3.2L/日 4.6L/日 4.6L以上

5畳で、タンク2.5Lなら1日に2回捨てる日が年20日、3Lなら年2日という計算です。
除湿しないと、8月のこの部屋は平均84%になります。質問者の「常に80%くらい」とも合います。

地域による違い(6畳、いちばん湿気の多い月)です。

地域区分 多い日 除湿しないと
2地域(札幌など) 2.1L/日 約65%
6地域(東京など) 3.6L/日 約83%
8地域(沖縄) 4.2L/日 約95%

除湿能力(L/日)について

カタログの除湿能力は「室温27℃・湿度60%を保った部屋で24時間運転した値」で、温度・湿度が下がると除湿できる量は少なくなります(メーカーの取扱説明書)。
ただ、「湿度50%のときに定格の何割になるか」を出典つきで示す数値は見つからなかったので、ツールでは必要な量が定格の何割かだけを出しています。推測の係数は入れていません。

まとめ

  • 除湿機が1日に取る水の量は「空気の密度 × 換気量 × 絶対湿度の差 + 人の湿気」で出せる
  • 湿度の式は算定方法 第十一章第五節をそのまま移植し、pyhees と 1e-12 で一致
  • 丸めた気象データから計算し直しても、元の絶対湿度との差は 4.5×10⁻⁸ kg/kg

部屋の広さ・都道府県・保ちたい湿度を変えて計算できます。

出典

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?