hirax.net::Keywords::「ソースコード」のブログ



2000-08-16[n年前へ]

エアコンの風は心地よく吹くか? 

真夏の夜の夢 流体力学入門編

 私は長野県の野辺山という高原で幼い時期を過ごしたせいか、暑さにとても弱い体である。なので、真夏の夜はエアコンが欠かせない体と根性になってしまった。エアコン無しではろくな夢が見られ無いどころか、眠れなかったりするのである。気持ちの良い「真夏の夜の夢」を見るためには、エアコンがとっても重要なのである。

 つい先日、そんなエアコンの話題が「今日の必ずトクする一言」に載っていた。それが、

である。エアコンの冷気に流体素子によってエアコンの送風の具合に1/f揺らぎを導入し、なおかつメーカー製のエアコンの送風では実現されていない急激な送風の変化も加えて、「快適な部屋の空調」を実現しようとするものである。面白い話である。しかも、「エアコンの送風の具合に揺らぎがあると循環の効率が高くなるかもしれず、(その様子を)数式とグラフィックで示すと良いかもしれない」と言った上で、
(おそらくhiraxさんあたりがやってくれるのではなかろうか)
と話題のパスまでされている。いきなり、ボーとしているところを授業で当てられた気分である。

 とはいえ、「エアコンの流体力学」というのもちょっと興味のある話題でもあるし、パスされたからにはやってみなければなるまい。そういうわけで、真夏の眠れない夜のパズル代わりに挑戦してみることにした。
 

 さて、部屋の中の「エアコンから送られる風の様子」を計算するということは、流体力学の計算をするということになる。流体力学の運動方程式(ナビエ・ストークス式)に代表されるような方程式群を解かなければならないのである。そこで、以前

の時にいじりかけたMichael Griebel氏らによる非圧縮性流体のNast2Dのコードをもう一度引っ張り出して使ってみることにした。このNast2Dは非圧縮性二次元流れを計算する教育用のソースコードである。詳しくはあるいは
  • Numerical Simulation in Fluid Dynamics   A Practical IntroductionISBN 0-89871-398-6
を参考にしてもらいたい。
 

 計算するモデルは次の図に示すような部屋である。四畳半一間であるかもしれないし、100畳以上の大きな広間かもしれないが、とにかく正方形の部屋だ。向かって左の青い丸部分にはエアコンがあり、そこから冷たい空気が送られてくるのである。そして、この部屋には何故かタンスがおいてある。「やっぱり、この部屋は四畳半一間じゃないの」というツッコミは言ってはいけない約束である。とりあえず、このタンスが向かって下側にある紫の部分である。このタンスが、エアコンから送られてくる冷た〜い空気流の障害物となるのである。
 

部屋の配置
青い丸部分にエアコンがあり、
紫の部分が空気流への障害物としてのタンスである。

 暑い真夏の夜に、こんな部屋をエアコンで涼しくする時のことを考えてみよう。気持ちよく眠るために、何はともあれエアコンのスイッチを入れるわけだ。そうしないと、暑くて眠れないから当然である。

 そして、そのエアコンには送風モードが何故か三つあるのだ。次のような三種類の送風、

  1. 真っ直ぐ送風するモード
  2. 単純な首振り送風をするモード
  3. 山本式エアコン用流体素子を用いた送風をするモード
を切り替えることができるのである。試しに、そんな三つの送風モードでエアコンを動かした時の「ある瞬間」における
空気流の速度分布の計算結果を次に示してみよう。
 
三種類の送風をした場合における「ある瞬間」の空気流の速度分布の計算結果
真っ直ぐ送風している場合

単純な首振り送風の場合

山本式エアコン用流体素子
を用いた送風の場合

 また、これらの場合の計算結果を動画で示したものをMPEG4形式のAVIファイルとReal形式のファイルにしたものを以下に置いておく。エアコンから空気が送られる様子を知るには、何はともあれこの動画を見て頂きたい。なお、手元のRealProducerの制限のために、このReal形式のファイルは古いバージョンのRealPlayerだとアップデートが必要になってしまった。また、MPEG4のCodecが導入されていない場合には、DivXなどをインストールする必要がある。

 とりあえず

  1. 真っ直ぐ送風している場合 MPEG4 AVI ( 289KB ) Real形式( 73KB )
  2. 単純な首振り送風の場合 MPEG4 AVI ( 577KB ) Real形式( 89KB )
  3. 山本式エアコン用流体素子を用いた送風の場合 MPEG4 AVI( 693KB ) Real形式 ( 92KB )
この動画を見れば、それぞれの場合において部屋の中を流れる空気の速度分布がどのようになっているかがよく判ると思う。エアコンから空気が吹き出している様子とか、「単純な首振り送風の場合」の送風方向がゆっくり動いていく様子とか、山本式エアコン用流体素子を用いた場合のカオス的な送風方向の振る舞いがよくわかると思う(ちなみに、今回は山本式エアコン用流体素子は送風方向をFM変調をかけた値を用いることにより、「らしい」動きを再現してみた)。また、部屋の中にタンスがあるせいで、空気がよどんでなかなか入れ替わらない(つまりなかなか冷えない)部分があることが判ると思う。

 また、それぞれのMPEG4形式の動画のファイルサイズを見れば、それぞれの場合の送風による空気流の速度分布の複雑さは一目瞭然である、と思う。真っ直ぐ送風している場合はとにかく単純な速度分布であって動画ファイルサイズも結果的に小さくなっているのに対して、山本式エアコン用流体素子を用いた送風の場合はかなり複雑な速度分布になっていて動画ファイルも結果的に大きくなっているのである。

 動画を見ることができない人のために、それぞれの場合の連続した3つの瞬間における部屋内の空気流の速度分布の静止画も示しておく。
 

連続した3つの瞬間における部屋内の空気流の速度分布
真っ直ぐ送風している場合

1

単純な首振り送風の場合

1

山本式エアコン用流体素子
を用いた送風の場合
1
2
2
2
3
3
3

 これを見ると、「真っ直ぐ送風している場合」にはエアコンの正面は強烈に風が当たっている(つまり冷えまくっている)ことがわかるが、タンスの陰になっている部屋の隅などはほとんど空気が動いていないことがわかる。また、「単純な首振り送風の場合」は送風方向を動かしているとはいえ、その送風方向の変化はかなりゆっくりであって部屋の中の空気流の速度分布はそれほど急激には変化していないことも判ると思う(そういう風に計算しただけではあるが...)。いずれにせよ、もしもこの部屋の中にあなたがいたとしたら、体の決まった部分にのみ冷た〜い風があたることになるわけだ。それは体にはちょっとよろしくなさそうである。

 一方、「山本式エアコン用流体素子を用いた送風の場合」は時々刻々と送風方向が変化しており、まるで部屋を舐め回すかのように、冷た〜い空気が送られていることがわかると思う。この部屋の中にもしあなたがいたとしても、体のごく一部分だけに冷たい風が当たるようなことはなく、それほど体に悪くないことが予想されるわけである。
 

 さて、このページもかなり重いページになってきた。本来はこのタンスの裏側の空気が澱みやすい場所の「空気の入れ替わり」を、送風の具合を変えた上で調べてみたいわけであるが、それは次回のお楽しみ、ということにしておきたい。とりあえず、「真夏の夜の夢 流体力学入門編」はここら辺で終わりにしたい。

 さて、夏休というわけでこんな景色のところで気持ちの良い風に吹かれてみたりするわけである。この写真の先の方の海の向こうに見えているのは左が伊豆半島で、右が三保の松原の辺である。

 暑い夏の夜はエアコンが欠かせない体ではあるけれど、気持ちの上で言えばエアコンよりはおんぼろの扇風機の方が好きだし、扇風機よりも山の上の風の方がずっと好きだ。いつか、山の上を吹き抜ける風の音を録音して、その1/f揺らぎでも調べてみようかなと思うのである...  それとも、そんなことをしてもツマラナイだけかな?

2001-08-02[n年前へ]

今更ながらのFun Loveウィルス 

 Fun LoveウィルスでNさんのPCがダウン。三ヶ月分のソースコードがパ〜。おそろしや〜。感染経路だけは知りたいところ。
 それにしても、NTサーバー版非対応のソフト・ドライバーが多いのが結構困る。Macサービスとか4CPU使いたいからサーバー版使ってるだけで、ほとんど使い方はワークステーションなのに…。いきなり、どこでも売ってるソフトウェア・パッケージじゃなくて、「ソリューション」になっちゃうんだもんなぁ。スキャナもろくに使えないし…。

2004-01-09[n年前へ]

ウィンドー枠だけにするソフト・パート2「WinRoll」 

WinRoll WinRollは「右クリックでタイトルバーだけにする他に、右下のアイコンのメニューで全ウィンドウをタイトルバーだけにできたりして便利」というタレコミ。

 なるほど、WillRollは、ソースコードもついているので、改造用にも便利かも。そういえば、「右下のアイコンのメニューで全ウィンドウをタイトルバーだけに」というのはMac OS X10.3のExpose機能と少し似ていて便利そうですね。そんな改造って難しいかなぁ…?できるかなぁ…?

2004-08-24[n年前へ]

OpenOffice.org ソースコード解析プロジェクト 

 OpenOffice.org ソースコード解析プロジェクト.

2004-09-04[n年前へ]

「男」と「女」の「性的型付け言語(例外処理編)」 

 静的と静的のタイプミスは結構あるし、そんなオヤジギャグもよく耳にする。例えばこんなメールがその一例だ。

> 画像処理部を作るのが面倒だったので、トリアエズ、> 性的に(いや違った)静的に配列を宣言しています。
これはオヤジギャグ以外の何ものでもない。

 そんな「静的(いや違った)性的」な男性達の行動を、プログラミングの例外処理を例に挙げながら男の視点から考察し、さらにそれを女性の視点から添削を加えた解説が素晴らしい。特に女性により、「デート時にキスを迫り、さらにもっとスゴイことを迫る男性」の行動に対して女性から「ダメよ=例外」が発生した場合の行動原理(ソースコード)が
try { if (we.passionatelykissed()) { we.sex() } } catch (Java.Sex.Exception jse) { woman.beatAsMuchAsPossible(man);; // ぐーで殴れるとなお良し System.exit(); }
と添削されているのを眺めれば、例外を発生させてしまった男性は思わず「ぐーで殴られた気分」を楽しめて良いかもしれない。ちなみに、男性側はこの例外処理部分は
// man.doNothing();; // 何をしたら良いかわからない
という感じらしい。これには、「runtime errorをcatchするかもしれないけどとりあえず動かしとこーって設計はもーほんっとに迷惑なので止めてもらいたいもんです」、もう一回繰り返すと「ほんっとに迷惑」とキツイ添削が入っている。

 そして、
if (we.passionatelykissed()) { if (we.granted(Java.Sex.Sex)) { we.sex() } }
というコードには、「grantの中身は結構大変で、踏んじゃいけない地雷を全部クリアしなきゃダメ」というツッコミも入っている。というわけで、これは今日の必見(特に男性は)情報化も。そして、例えばテレビドラマや俳優達を、こんなソースコードで例えて考えてみるのも面白いかも。



■Powered by yagm.net