2024年7月27日土曜日

MEMS Rain Gauge

IOTデバイスを用いて、振動から雨量を推定するプログラムを公開しました。https://github.com/T40O0/ADXL355_SPI_M5_SD_RainGauge/tree/main

約1年間観測して、改良を施し、安定して測定できるようになりました。

ポイントはデジタルフィルターを利用しないことでした。雨滴による衝撃を観測しているので、高周波まで扱えるほうが精度よく雨量を推定できることがわかりました。周波数領域は扱えませんが、ただただ時間軸で衝撃をカウントするという単純な方法が推定には良いようです。

転倒マスとは異なり、構造的に火山灰等で詰まることがなく、メンテナンスの楽な点が長所でしょう。火山灰を被っても、雨で洗い流されます。
安価な点も魅力です。個人で作るなら材料費2万円弱、従来の1/5~1/10の価格ですので、多点に設置できます。近い場所でも雨量は異なりますので、各地すべりブロックに1台、などという計画も可能です。
さらに、1滴の振動から観測できますから、時間方向の解像度が転倒マス型に比べ格段に向上します。

欠点は消費電力。電池のみで数か月持てば理想的なのですが、ソーラー+バッテリーか商用電源が必要です。モバイルバッテリーでも1週間しか持ちません。
また、振動のノイズに弱いことも短所でしょう。雨が降っていなくても、加速度を観測すると微小な雨量としてカウントします。設置場所毎にノイズを除去するための閾値の設定が必要です。

まだまだ改良の余地がありますが、ひとまずここで公開。良いアイデアが浮かべば追加していきましょう。

SPHの水圧計算

前回から約1か月かかりましたが、2相2層での水圧計算に目途が立ちました。

https://www.sciencedirect.com/science/article/pii/S002076831730286X

上記の78-82式を実装することで解けるようにはなったのですが、まだ土層を出た後の水の密度変化までは安定して解けません。最初の含水率のまま解くことはできるのですが、空中でそれは誤りですし、勝手に密度を上昇させることもできません。圧力が下がって自然に密度が上昇する、というように計算させるとすぐに発散します。そのあたり、この論文では明記されていません。土層の計算だけ追うのであれば、1層での計算が良いと思いますが、まだ何か見落としているようです。

ひとまず、次の drag force を安定して解けるか見てみましょう。

2024年7月3日水曜日

double-layer two-phase formulation

SPHにおいて、two-phase を single-layer で実装するか、double-layerにするか?

前者は計算が速い!
でも、水の流れは表現できません。(工夫すればできるのかもしれませんが、single ではなくなります。)

後者は計算が遅い!しかも圧倒的に。
でも、水の流れは表現できます。

考えた結果、もともと計算してみたかった「崩土から水の抜ける表現」が可能な後者を選択しました。既存のプログラムを容易に変更できそうな点も good です。

2相 を double-layer で解く文献はたくさんあります。が、なぜか式が統一されていません。以下が最も詳しく書かれていましたので、これを参考に実装します。
A coupled fluid-solid SPH approach to modelling flow through deformable porous media - ScienceDirect

式を整理しながら不飽和の表現を single-layer の文献からいただきました。これで、飽和・不飽和浸透と力の関係を解けるはずです。

コツコツ、組んでみましょう。

**********************************
20240707追記
地下水の上下で飽和度(水の単体)を変更すると、境界で爆発してしまいます。計算過程を追えば当然なのですが、土層境界よりも挙動が激しいようでした。飽和度を低くするには文献のように水粒子をまばらに配置するしかなさそうです。
似た現象ですが、地表流がある直下で飽和度が過剰に高くなります。透水係数が実際よりも高く計算され、水が入りやすくなります。なかなか難しい。
SPHでは密度変化がないか小さい現象(弱圧縮)を扱うのが前提なので、単体の異なる土層とか飽和‐不飽和‐地表流などを扱うのが難しいのでしょうね。