goo blog サービス終了のお知らせ 

計算気象予報士の「知のテーパ」

旧名の「こんなの解けるかーっ!?」から改名しました。

久々にニューロ・モデルの実験に取り組む

2015年06月18日 | 計算・局地気象分野
【※】gooブログのサービス終了に伴い、アメーバブログに移転しています。
https://ameblo.jp/qq-otenki-s/entry-12897844703.html


 今日は久々にニューラルネットワークの実験に明け暮れました。


 現在考えているのは、入力層・中間層・出力層の3層からなるフィードフォワード型のニューラルネットワーク構造を持つ「ニューロ・モデル」を構築し、その入力層と出力層にレベル変換モジュールを設けています。この変換モジュールの機能を表す数式を(1)式と(2)式として表記しています。


 一気に実験を進めて、早くもその結果の取りまとめに掛かっています。課題は多いですが、ようやくニューロ・モデルとの付き合い方が、少しずつ判ってきました。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

V字谷から流れ出る粘性流体の解析

2015年05月09日 | 計算・局地気象分野
【※】gooブログのサービス終了に伴い、アメーバブログに移転しています。
https://ameblo.jp/qq-otenki-s/entry-12897844688.html



 以前の「2015年03月23日」では、隣り合う2つの山に挟まれたV字谷に堆積していた土砂が、崖の前方に崩れ落ちる様子を解析しました。この時はExcel-VBAでプログラミングと計算を行いました。

 今回はこの計算プログラムをC#に書き直して計算を行いました。シミュレーションで再現される現象は同じですが、計算がとにかく速い!
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

流れ出る粘性流体の解析

2015年03月23日 | 計算・局地気象分野
【※】gooブログのサービス終了に伴い、アメーバブログに移転しています。
https://ameblo.jp/qq-otenki-s/entry-12897844665.html



 今、このような形状の容器を用意して、中央部の凹んだ空間に(仮想的な)粘性流体を補った状態を考えてみます。


 そうすると、このような形になります。

 この状態で、補った粘性流体が手前側の容器の割れ目から流れ出ていく様子を解析すると・・・・

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ニューラルネットワークに再挑戦

2015年03月10日 | 計算・局地気象分野
【※】gooブログのサービス終了に伴い、アメーバブログに移転しています。
https://ameblo.jp/qq-otenki-s/entry-12897844658.html


 基本的なニューラルネットワークでもある「階層型パーセプトロン」(第1図)を用いて、「3ビット信号を入力し、その反転信号を出力する」プログラムを作成し、実験を試みました。

 階層型パーセプトロンは、入力層:3ユニット、中間層:9ユニット、出力層:3ユニットの構造とし、各ユニットには各々異なる閾値を設定しました。

 学習方式は「バックプロパゲーション方式」を採用し、全てのパターンを繰り返し学習しながら、自動的にモデルの最適化を図っていくものです。

第1図・階層型パーセプトロンの構造

 1回の学習が終わる毎に、全パターンの入力に対して、各々正しく反転できるかどうか、その誤差の変化を見てみました。学習回数と誤差の合計の推移を第2図に示します。

第2図・反復学習回数と誤差の関係(縦軸:誤差,横軸:反復学習回数)

 学習を重ねるにつれて誤差は減少していきますが、300~400回の辺りと600~800回の辺りで誤差が急降下しているようです。それまでゆっくりと誤差が減少していたのに、ある時ふと一気に誤差が減る・・・という状態があるようです。

 それまでずっと勉強し続けて、少しずつ少しずつ理解を深めていって・・・ある時、ふと「わかったぞ!」という悟りの瞬間が訪れる・・・そんな状態に似ているのかもしれません。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

V字谷を滑降する物体の流動

2015年03月05日 | 計算・局地気象分野
【※】gooブログのサービス終了に伴い、アメーバブログに移転しています。
https://ameblo.jp/qq-otenki-s/entry-12897844645.html


徐々にV字谷が現れてきます。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

斜面上に置かれた物体が崩れながら滑降する様子

2015年03月03日 | 計算・局地気象分野
【※】gooブログのサービス終了に伴い、アメーバブログに移転しています。
https://ameblo.jp/qq-otenki-s/entry-12897844639.html


コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

直方体状の立体が崩れていく様子

2015年02月27日 | 計算・局地気象分野
2015年02月20日の発展形です。


前回は2次元の流動でしたが、今回は3次元の流動です。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

四角形状の砂の山が崩れていく様子

2015年02月20日 | 計算・局地気象分野
【※】gooブログのサービス終了に伴い、アメーバブログに移転しています。
https://ameblo.jp/qq-otenki-s/entry-12897844629.html


 四角形状の砂の山を作った後で、その山が自然に崩れ落ちていく様子をコンピューターシミュレーションで再現してみました。とは言え、物性値は適当に与えているので、大まかなイメージの再現、と言った所でしょうか。



 次は斜面上に置かれた砂の塊が崩れ落ちていく様子のシミュレーションを試みました。


 物性値や粘性の条件などは今後の検討課題ですが、色々と応用できそうな解析モデルです。ちなみに、この解析モデルは、流体の運動方程式と対流拡散方程式で構成されています。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

障害物回りの流れと速度分布

2014年09月06日 | 計算・局地気象分野
【※】gooブログのサービス終了に伴い、アメーバブログに移転しています。
https://ameblo.jp/qq-otenki-s/entry-12897844457.html


 流路の途中に物体を置いた場合の流れの様子を数値シミュレーションで実験したものです。物体の配置とレイノルズ数の条件を変えてみました。青い所では流速は小さく(流れは遅く)、赤い所では流速は大きく(流れは速く)なります。

流路の真ん中に物体を置いた場合

流路の両側に物体を置いて幅を狭めた場合


 逆にレイノルズ数が小さい場合は、より早い段階で物体の影響を受ける前の流れの状態に戻ろうとする傾向が見られました。これに対して、レイノルズ数が大きい場合は、物体によって作り変えられた流れの状態がより遅い段階まで維持されようとする傾向が見られました。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

C#で数値シミュレーションの計算結果を可視化する

2014年01月31日 | 計算・局地気象分野
【※】gooブログのサービス終了に伴い、アメーバブログに移転しています。
https://ameblo.jp/qq-otenki-s/entry-12897844284.html


 冬の季節風が吹きつけるときの降水域の分布を、非常に単純化された数値モデルを用いて実験(このモデルはFORTRANで作成)。出力された結果を可視化するプログラムはC#で作成。


コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

三次元熱流体数値モデルの基本原理

2013年12月08日 | 計算・局地気象分野
[1] 層流と乱流


 水道の蛇口を少しだけひねると、水は静かに真っ直ぐに流れて出てきます(層流)。そこからさらにひねっていくと、水の流れは勢いを増し、ぐじゃぐじゃに乱れ始めます(乱流)。

 ゆっくりと真っ直ぐ進む流れを「層流」と言うのに対して、さらに速度を増して、ついには勢い余ってぐちゃぐちゃな流れ方をするものを「乱流」と言います。

 層流は「秩序」を持った動き方をするのに対して、乱流は「ある程度の秩序」を持ちつつも、「挙動不審」な一面も持ち合わせているので(これが「カオス」と言われる所以)、その動きを予測するのは容易なことではありません。

 身の回りの大気の流れは「乱流」になります。


[2] 山越え気流のモデル

 山岳地形に向かって空気が流れ込む場合、その流れが地形の周りでどのように動くのかは、流れの強さ(速さ)に依存します。基本的な形は「ベル型の山に向かって一様な風が流れ込む場合」です。


 流れが強い(速い)場合、流れはその勢いに乗ったまま山を乗り越えてしまいます。しかし、流れが弱い(遅い)場合、流れは地形に合わせて変形し、山の周囲を迂回するように流れて行きます。

 実際にはベル型の山と言うよりも、幾つもの山が連なって壁のようにそびえ立っている場合が多いので、三角柱状の地形の場合を考えてみましょう。


 流れが強い場合、流れは山を乗り越えてしまいます(一見、勢い余って・・・のようにも見えますが、実際には大気の安定度による影響です)。しかし、流れが弱い場合、流れは迂回して山の風下側へ行くことが出来ません。そうかと言って乗り越える事もできません。仕方ないので、逆流することになります。

 このような「山越え気流」の理論解析に用いられる古典的な解析モデルを示します。


 ある高さH0[m]における等圧面を点線で表し、これを自由表面と呼びましょう。地表面付近の大気(山岳標高の2倍程度を目安)を、自由表面を境に上下2つの層に分ける二層構造で考えます。

 そして、下側の層の温位(ポテンシャル温度)をθ0[K]、上側の層の温位を少し高めのθ0+Δθ[K]であるとしましょう。この温位(ポテンシャル温度)とは温度に替わるパラメータです。左側から速度u0[m/s]の風が流入するものと考えましょう。

 そうすると、u0が大きいほど(Frが大きいほど)流れは山を乗り越えやすく、風下では「おろし」と呼ばれる強風が発生しやすいことが理論的に明らかにされております。ここでFrとはフルード数の事で「Fr = u0 / { g (Δθ / θ0 ) H0 } 0.5」で定義されます。


[3] 凝結・降水過程モデル


 ある空間に含み得る水蒸気の量(比湿q)には限界値(飽和比湿)qsが存在し、q≧qsであれば自動的に凝結量(q’≡q-qs)を生じるものと考えます。


 さらにこの内の一部(q’αΔt)に相当する分が凝結後、瞬時に直下の地上に落下するものとし、この落下分を地上降水量として順次積算していくものとしました。その一方で、落下せずに残った分( q’(1-αΔt))に相当する分は大気中に残り、引き続き大気中を輸送されるものと考えます。


[4] 数値モデル地形

 実際の地形はこのような山々が連なっています。


 地形はこんなイメージです。




[5] 数値シミュレーションの結果例

 左下の図は場合の数値シミュレーションの結果の例です。カラーは積算降水量のレベルを表しています。朝日連峰周辺とその南東側(置賜地域)と北東側(最上地域)にそれぞれ降水域が広がっている特性が再現されています。

 右下の図は 1989年12月~2013年3月までの各12月~翌03月末までの4か月間のシーズン降雪量の平均値の分布です。等値線を手描きで引いたのですが、全体的な特徴については、シミュレーションの結果と概ね一致しているようです。


コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

有限要素法にヒントを得て・・・

2013年11月06日 | 計算・局地気象分野
【※】gooブログのサービス終了に伴い、アメーバブログに移転しています。
https://ameblo.jp/qq-otenki-s/entry-12897844124.html


 アメダス観測値を基に、新潟県内の昨シーズンの積算降雪量の分布を解析してみます。

 さて、アメダスは不規則に点在しています。点在している数値データを基に面的な分布をどのようにして求めれば良いでしょうか。ここで、有限要素法のアイデアが浮かびました。有限要素法では領域を三角形要素に分割していました。そこで、今回は近隣の3つの観測点を頂点とする三角形要素を作ってみます。



 続いて、その三角形要素の中で線形補間する事を思いつきました。3つの頂点をO、A、Bとし、OAOBのベクトルからなる△OAB上の任意の点はベクトル方程式OP=sOA+tOB(sとtは媒介変数)で表される事を利用します。



 この状態では線形補間なので、さらにこれを曲面的に滑らか分布に補正する処理を施して、次のような分布を得ました。尚、一部地域は解析の対象外としてグレー表示しております。


(昨シーズンの新潟県内の積算降雪量 ※グレー域は解析対象外とした)


(さらに、詳細な観測データを加えると、より細かい特性が見えてくる・・・)
コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

有限要素法を用いた二次元弾性変形の解析

2013年11月04日 | 計算・局地気象分野
【※】gooブログのサービス終了に伴い、アメーバブログに移転しています。
https://ameblo.jp/qq-otenki-s/entry-12897844117.html

 CAEに代表される計算力学の数値シミュレーション技術の多くに有限要素法が応用されています。有限要素法では領域を三角形要素に分割し、やや複雑な過程を経て近似的な連立一次方程式の形に変換して、計算していきます。

 例として、中央に円孔が空いている正方形の平板を両側から同じ大きさの引張荷重を加えた場合の平板の変形を取り上げてみます。この場合、対称性を考慮して平板の1/4の部分に着目すれば良い事が分かります。



 続いて、平板の解析対象部分を三角形要素に分割し、要素番号(青)と節点番号(赤)を割り振って行きます。要素は三角形状のパーツで、接点とは三角形上の各頂点に当たります。



 荷重条件、変位に関する境界条件を与えて、数値計算を実行すると、次の変形後の形状に関する情報を得る事ができます。青は変形前、赤が変形後の形状になります。


コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

流れの数値シミュレーションの応用 (通風・換気シミュレーション)

2013年11月02日 | 計算・局地気象分野
 私の専門分野は「工学的手法局地気象にアプローチする」と一応、掲げておりますが、それなら「工学的手法工学問題にアプローチする」なら、例えばどんなものがあるか?というお話を書いてみます。

 建造物の外から風が入って内部を通り、再び外へと抜けて行くような流れ(通風)を生じることで、建造物内の換気が行われ、室内気温の低下を図る事ができます。人工的に機械を使って換気する場合もあれば、自然の風を上手く取り入れて通風を実現し、冷房の電気代を節約するという考え方もあるようです。

 そのような場合、建造物の間取りを基に数値モデル(コンピューター内に作る仮想的な模型)を構築し、数値シミュレーション(数値計算のよる仮想実験)を行って、建造物内外の風の流れやそれに伴う気温の変化(熱流動)を予測する事が出来ます。

 建物の平面図を基にモデルを構築して、左側から風が当たる場合を想定して数値実験してみました。窓からの流れの出入りはもちろん、どのような経路を通って空気が流れて行くのか、その様子がとてもよくわかります。


 流れの強さ(流速)をカラーで表示してみました。流れの強い所ほとんど流れのない所が一目で把握できます。窓から取り入れた流れを室内で効率良く引き回すには、どのようなレイアウトにしたら良いか?を検討するヒントになりそうですね。


 続いては温度の変化です。初期状態としては、建造物内部は周囲の外気温より若干高い状態であると想定し、左側からバーッと風を当てています。風の流れによって建造物内の熱が掻き乱され、窓の外から熱が押し出されている様子が描かれています。


 今度は風の向きをちょっと変えてみましょう。

 こちらは上側から風が当たる場合を想定して数値実験してみました。窓からの流れの出入りはもちろん、どのような経路を通って空気が流れて行くのか、先の左側からの場合とは大きく異なっているようですね。

 流れの強さを表示してみました。流れの強い所があまり見られません。取り入れる窓が少ないため、外部からの空気が建物に上手く流れ込めていないようです。


 温度の変化は、風が流れ込む部分とほとんど流れ込まない部分との間で大きく違っているようですね。


 ハウスメーカーさんのお話によると、建造物を設置する地点ではどの風向が出現しやすいか、という事情も把握してそれに合わせた間取りを考えると良いそうです。通風の特性も考慮してレイアウトを検討したり、プランを修正したりもするので、その上でこのような情報は参考になるとか・・・。

 ちなみに、私の大学工学部での専攻は土木・建設・建築工学ではなく、機械工学および生命・生体力学です。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

たまには専門分野の話題も書いてみる

2013年10月30日 | 計算・局地気象分野
【※】gooブログのサービス終了に伴い、アメーバブログに移転しています。
https://ameblo.jp/qq-otenki-s/entry-12897844104.html


 私の専門分野は「工学的手法で局地気象にアプローチする」こと。要は数学や物理学をベースとした「数値シミュレーション」です。

 簡単に言うと、コンピューター上に地形などの”模型”をつくって、バーチャルな”実験”を行います。この「模型」の実体は、膨大な数の「計算式」で、これを「コンピューターの言葉」で書き上げます。そして、これらの計算を行うことで「実験」が進むわけです。


 コンピューターの筐体は、こんな(↑)感じです。この中に地形や大気の模型を作り上げていきます。


 地形はこんなイメージです。このような地形に、大気の温度分布と風の条件を加えます。このようなバーチャル模型のことを「数値モデル」と言います。この図はあくまでイメージで、その実態は3次元の数値データと莫大な数の計算式です。これをコンピューターの言葉である「プログラミング言語」で記述していきます。


 さて、計算が始まりました・・・。3次元空間を膨大な数のマス目に分割して、その一つ一つについて、そこでの大気の速度や温度などを計算していきます。これには時間がかかるので、その間は別の仕事に専念する。

 計算が終わると、流れ場のイメージが3次元の数値データ(数値の集合体)の形で出力されます。これを人間が見てもわかるように「可視化」します。

 例えばこんな感じ・・・

 (1)冬の季節風が比較的弱い場合のイメージ(クリックすると図が拡大します)


 (2)冬の季節風がやや強めの場合のイメージ(クリックすると図が拡大します)


 (3)冬の季節風が非常に強い場合のイメージ(クリックすると図が拡大します)


 この後は計算結果が正しいのかどうか検証・・・という流れ。


 さて、この分野では、数学や物理学の理論、そしてプログラミングに関する高度な専門知識が要求されます。しかし、それだけでは不十分。さらに次の「二つの力」が必要になると、私は思います。

 一つは「現象や理論をきちんと理解し、認識する力」。これは当たり前と言われるかもしれませんね。数学や物理学の理論の専門知識を正しく運用する力と言っても良いでしょう。

 そしてもう一つ、「自分が理解した内容を、わかりやすく表現する力」。簡単に言えば「自分の頭の中に描いたイメージを、頭の外に絵として描く力」と言っても良いでしょう。

 なぜなら「シミュレーション」とは、コンピューターの中に「模型」をつくってバーチャルな「実験」をすることであり、その「模型」は、自分の理解したイメージを頭の外に取り出した「表現」だからなのです。「自分の頭の中だけの理解」だけではなく、「外に取り出して理解できる」ものでなければ、そもそもコンピューターにはわかりませんよね。つまり、模型をつくる人は、単なる「技術者」ではなく「表現者」でもあると思うのです。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする