こんにちは、Tech Samuraiです!
梅雨の時期や夏場、部屋のジメジメとした湿気は悩みの種ですよね。「この部屋を除湿するには、どれくらいの能力が必要なんだろう?」「凍らせたペットボトルって、本当に除湿効果があるの?」
今回は、そんな日常の素朴な疑問に、**物理シミュレーション**で挑みます。PythonとGUIライブラリPySide6を使い、**温度・湿度から空気中の水分量を精密に計算し、様々な除湿方法の効果を予測する「湿度計算ツール」**を開発しました。
この記事では、そのツールに込められた計算ロジックと、開発中に工夫したGUIの改善点について、その裏側を詳しく解説していきます!
1. 計算の根幹:「絶対湿度」と「必要除湿量」
このツールの計算の心臓部となるのが**絶対湿度**です。これは、私たちが普段目にする「相対湿度(%)」とは違い、空気1立方メートルあたりに実際に含まれる水蒸気の量をグラム(g)で表した、より物理的な指標です。
- 絶対湿度の計算: スクリプトでは、ソンク・マグヌスの式を用いて、特定の温度での飽和水蒸気圧(空気が含むことのできる水蒸気量の上限)を求めます。これに現在の相対湿度を掛けることで、実際の水分量である絶対湿度 (g/m³) を算出します。
- 必要除湿量の算出: 「現在の部屋の絶対湿度」と「目標とする湿度のときの絶対湿度」の差を計算し、それに部屋の体積 (m³) を掛けることで、目標を達成するために取り除くべき水分の総量 (g) を導き出します。
2. ペットボトルでの除湿原理とシミュレーション
凍らせたペットボトルによる除湿は、冬の窓ガラスと同じ「結露」の原理を利用しています。冷たいボトルの表面に触れた空気が急激に冷やされ、抱えきれなくなった水分が水滴となって現れるのです。
この現象を、スクリプトでは以下のようにシミュレーションしています。
- 部屋の空気の絶対湿度を計算します。
- ボトル表面の空気の状態を「0℃・湿度100%」と仮定し、その絶対湿度を計算します。
- 2つの絶対湿度の差が、空気1m³あたりから結露させられる水分量となります。
- これに、1時間あたりにボトルに接触するであろう空気の量(扇風機の風量などから仮定)を掛けて、1時間あたルの推定除湿量を算出しています。
もちろん、これは単純なモデルですが、部屋の温湿度が高いほど、そして空気の循環が良いほど除湿量が増える、という物理的な傾向を捉えることができます。
3. エアコン除湿能力の、より現実的な計算
エアコンの除湿能力は、カタログスペック通りに発揮されるわけではなく、部屋の環境に大きく左右されます。この現実を反映した、よりリアルな計算ロジックを実装しました。
基本的な考え方: エアコンが「吸い込んだ空気」と「吐き出した冷たい空気」の水分量の差が、そのまま除湿量になります。
スクリプトでの計算:
- 現在の部屋の温湿度から「吸い込む空気の絶対湿度」を計算します。
- エアコンから出る空気の状態を「12℃・湿度95%」と仮定し、「吐き出す空気の絶対湿度」を計算します。
- 上記2つの差分が、空気1m³あたりの除湿量(g)となります。
- エアコンの冷房能力(kW)に比例して、1時間あたりに処理できる空気の量(m³/h)を推定します。
- 最終的に、「空気1m³あたりの除湿量」×「1時間の処理風量」を掛けることで、現在の温湿度を考慮した、より現実的な推定除湿量を算出します。
4. GUIの改善:入力欄の同期と無限ループの防止
このツールには複数のタブがありますが、「現在の気温」や「現在の湿度」は全ての計算で共通して使います。そこで、片方のタブで値を変更したら、もう片方のタブの入力欄にも自動で反映されるように改良しました。
これは、PySide6の**「シグナルとスロット」**という仕組みを利用しています。
- 入力欄のテキストが変更されると`textChanged`という合図(シグナル)が発信されます。
- その合図を受け取り、他の入力欄のテキストを更新するメソッド(スロット)を事前に接続しておきます。
【開発の罠】
しかし、これだけだと「Aを変更→Bが更新→Bの変更を検知→Aを更新…」という無限ループに陥ってしまいます。これを防ぐため、値をプログラムで更新する際には、一時的にシグナルの発信をblockSignals(True)`
で停止させる、という工夫を入れています。

まとめと次回予告
今回は、身近な「湿度」というテーマを、物理モデルとPythonを使ってシミュレーションするツールを開発しました。絶対湿度という概念を軸に、様々な除湿方法の効果を定量的に比較する面白さを体験していただけたかと思います。
さて、部屋の水分量を計算できるようになったら、次に知りたくなるのは何でしょうか? そう、「この環境で、洗濯物はあとどれくらいで乾くのか?」です。
次回は、今回作成した絶対湿度の計算ロジックを応用し、洗濯物が乾くまでの時間を予測するシミュレーターの開発に挑戦します!お楽しみに!
コメント