はじめに
暮らしのお金を試算するサイト「いくらかかるの研究所」に、窓の結露をチェックするツールを追加しました。
部屋の温度・湿度と窓の種類から、次の3つを出します。
- 窓が結露し始める外の気温(しきい値)
- 冬(11〜3月)に結露する日数(住宅省エネ基準の公的な計算方法の気象データ、1時間ごと・1年分)
- 1月の朝の冷え込みで、結露しない湿度の上限
使っている式は2本だけです。どちらも、住宅の省エネ基準の資料にある値と式から組み立てました。
モデル:窓の室内側の表面温度
窓を1枚の板とみなし、熱が外へ一定の速さで流れている(定常・一次元)と考えると、室内側の表面温度は次の式になります。
θs = θi − U × Rsi × (θi − θo)
| 記号 | 意味 | 値 |
|---|---|---|
| θi | 室温 [℃] | 入力 |
| θo | 外気温 [℃] | 気象データ(8,760時間) |
| U | 窓の熱貫流率 [W/(m²K)] | 窓の種類ごとの値(下の表) |
| Rsi | 室内側の表面熱伝達抵抗 [m²K/W] | 0.17 − 0.04 = 0.13 |
Rsi は、算定方法の第三章第三節にある「外気側と室内側の表面熱伝達抵抗の和 0.17」から、外気側(外壁・外気に接する場合)の 0.04 を引いて出しました。
この表面温度が、部屋の空気の露点温度以下になると結露します。
しきい値は式を解くだけ
θs = 露点 となる外気温を θo について解くと、しきい値になります。
θo = θi − (θi − 露点) / (U × Rsi)
export const surfaceTemp = (tIn: number, tOut: number, u: number, rsi: number) => tIn - u * rsi * (tIn - tOut);
/** この外気温 [℃] 以下で窓の室内側が結露する */
export function thresholdOut(tIn: number, rh: number, u: number, rsi: number): number {
if (!(u > 0) || !(rsi > 0)) throw new Error('熱貫流率と表面熱伝達抵抗は0より大きい値にしてください');
return tIn - (tIn - dewPoint(tIn, rh)) / (u * rsi);
}
露点は二分法で出す
飽和水蒸気圧の式(pyhees と同じ式を TypeScript に移植したもの)は、温度 → 水蒸気圧の向きにしか書かれていません。逆向き(水蒸気圧 → 温度)は、単調増加なので二分法で解きました。
/** 水蒸気圧 [Pa] が飽和水蒸気圧と等しくなる温度(露点)[℃] */
export function dewPointFromPv(pv: number): number {
if (!(pv > 0)) throw new Error('水蒸気圧は0より大きい値にしてください');
let lo = -60;
let hi = 60;
for (let i = 0; i < 80; i++) {
const mid = (lo + hi) / 2;
if (pvs(mid) < pv) lo = mid;
else hi = mid;
}
return (lo + hi) / 2;
}
export const dewPoint = (theta: number, rh: number): number => dewPointFromPv((pvs(theta) * rh) / 100);
範囲は −60〜60℃ で、80回の半分割で幅は 120 / 2^80 ℃ になり、倍精度の限界より十分小さくなります。室温20℃・湿度50%の露点は 9.27℃、湿度60%なら 12.01℃ でした。
湿度の上限は逆向きに
「この外気温なら、湿度何%まで結露しないか」は、表面温度の飽和水蒸気圧と室温の飽和水蒸気圧の比で出せます。
export function rhLimit(tIn: number, tOut: number, u: number, rsi: number): number {
const ts = surfaceTemp(tIn, tOut, u, rsi);
return Math.min(100, (pvs(ts) / pvs(tIn)) * 100);
}
結果:室温20℃・湿度50%の場合
| 窓 | U | しきい値 | 冬の結露日数(東京など 6地域) | 冬の結露日数(盛岡など 3地域) |
|---|---|---|---|---|
| アルミ × 単板ガラス | 6.51 | 7.3℃ | 125日 | 151日 |
| アルミ × 複層ガラス | 4.07 | −0.3℃ | 31日 | 116日 |
| アルミ樹脂複合 × Low-E複層 | 2.91 | −8.4℃ | 0日 | 8日 |
| 樹脂 × Low-E複層(ガス入り) | 2.15 | −18.4℃ | 0日 | 0日 |
| 樹脂 × トリプル | 1.60 | −31.6℃ | 0日 | 0日 |
熱貫流率は、日本サッシ協会の資料「建具とガラスの組み合わせによる開口部の熱貫流率」の値(付属部材なし)です。「1時間でも結露した日」を1日と数えています。
単板ガラスは、外が7.3℃を下回るだけで結露する計算です。6地域(東京・大阪など)の気象データでも、冬の5か月(151日)のうち125日が当てはまりました。
1月の日最低気温の平均(東京など 1.3℃)のとき、結露しない湿度の上限は、単板ガラスで35%、複層ガラスで53%、樹脂 × Low-E で72%でした。
実装のメモ
- 結露日数は「8,760時間 × しきい値との比較」なので、1回の計算は一瞬です。窓の種類5つを毎回すべて計算し、選んだ窓と並べて表示しています
- 部屋の温度・湿度は1日中一定としています。夜に暖房を止めて室温が下がる場合は、表面温度も下がるので、実際はもっと結露しやすくなります(このモデルでは扱っていません)
- 窓の下のほうは空気が冷えやすいなど、窓の中での温度のむらも扱っていません
まとめ
- 窓の結露は「表面温度 ≦ 露点」の判定で、表面温度は1本の式で出せる
- 露点は飽和水蒸気圧の式を二分法で逆に解く
- 気象データの8,760時間と比べるだけで、地域ごとの結露日数まで出せる
ツールでは、市区町村・室温・湿度・窓の種類を選んで計算できます(入力した内容は保存しません)。