2018年12月8日土曜日

超音波風向風速計


 順次6chを計測してFFT解析、40kHzの位相を計測、というのが動くようになりました。
 山が6個ありますが、前2個は軽く息を吹き、後ろ4個は2個ずつ、上と横から吹いています。
 ch1/ch5が暴れているのはサイクルスリップの問題で、位相を追跡して整数波数を追うようにすれば問題ありません。

 前半で軽く息を吹くと、伝搬物質の温度が室温から体温に変化するため、音速が上がり、位相が進みます。
 息を吐くのをやめると少し遅れながら温度が下がりますが、これは息を吹くときは息の勢いで一気に換気され、吹くのをやめると慣性や対流によって比較的ゆっくりと換気されるためと思われます。

 息を強く吹いたときの山はいまいち実際の状況と相関が取れません。
 そもそも強く息を吹いたところでその息がどの方向に向かっているかなんて、意外とわからないもので、ちゃんと超音波風向風速計の焦点で風速が変わっているかは確認していません。

 一番確実に風速を作るのは、まぁ風洞に入れれば確実なんですが、それ以外では、超音波風向風速計自体を手で持って動かすのが、今まで試した中では確実だと思います。
 ただ、周辺回路をぶら下げたまま動かすのは精神衛生上よろしくないですし、USBケーブルとかがあるので、無闇矢鱈と動かすわけにも行きません。
 やっぱり風洞ほしいなぁ、って話になります。

 あと、超音波素子の距離を正確に測るには、おそらく温度を変えた際の位相変化を見るのが確実です。
 温度から素子間の距離を推定し、既知の風速からの割合で素子の姿勢を推定する、という流れになるはずです。もっとも、姿勢は垂直から45度寝せて120度間隔、という設計を行い、その形を作るために3Dプリンタでジョイントを作りましたから、設計から大きな誤差はないはずです。
 素子の間隔は設計でキッチリ作ってはいません。これは、素子の表面がメッシュで保護され、圧電素子はその奥にあるため、解体しない限り正確な距離がわからないためで、またフレームを少し押せば1mm程度は動いてしまうことが予想されるため、あとから距離を推定する、という前提にしたためです。


 とりあえず、この時期の北海道の古い家なら夜寝ている間に大きなΔtempが得られますから、寝ている間の位相をログって、明日解析してみることにします。
 ADT7420も実装済みなので、温度変化と位相変化を比べてみるのもアリですね。


追記:2018/12/09
 一晩ログってみた。

 開始から10000秒あたりで一回ストーブをつけてる。超音波は時定数がほぼゼロなので、すぐに変動しているが、温度センサは時定数が大きいためなかなか温度が上がりきらない。でも下がるのは結構追従性がいい気がする。

 そのあとはゆっくり室温が下がっているが、35000秒以降は上昇傾向。太陽が出て部屋が暖められてるのかな?

 その後、43000秒あたりでストーブをつけて、46000秒あたりで設定温度を上げている。

 5000秒あたりの温度センサのヒゲは、人間が近づいたことによる黒体放射の影響だと思う。温度センサすっげーずれてんぞ!と思ってアルミテープを上に載せたので、遠赤が遮断されてその後は安定している感じ。

 ストーブで温度をコントロールしているあたりは温度変化が大きいので、あまり参考にならない。
 また、温度センサは降下は早いが上昇は遅い傾向がある気がする。机の熱容量とかの関係かも。窓際に机があるので、机自体は寒気で冷やされるので、温めづらく冷やしやすい。

 温度センサは時定数が長いので安定している、というのを差し引いても、位相のノイズが大きい気がする。10度くらいの範囲だろうか?
 超音波は41.015625kHzで出しているので、約24.4usecの長さ。10度だと0.67usecくらいの誤差。±0.35usecくらいの範囲か。素子間隔15cmだとおよそ±0.25m/sの誤差になるかな。10Hzでサンプリングできるなら、5サンプルの平均移動とかで平滑すれば十分問題のない範囲になりそうな気もする。

 しかし、Δtemp7ケルビンくらいじゃ位相90度も動かないんだなぁ。360度以上動かすとなると、Δtempは40ケルビンくらい必要かも。
 -15℃から+30℃くらいを作れる恒温槽が必要、ってことか。冬の北海道なら窓開けて-5℃、暖房ガン焚きして+25℃、くらいは作れそうだが、低温側は人間が耐えられない。部屋においてあるケミカル類も気温一桁になると廃棄しなきゃだし。
 ペルチェ素子買い込んで恒温槽作るしかないかなぁ。消費電力すさまじいだろうなぁ。

 とりあえず、素子間隔は15cm+1cm程度、と仮定した上で風速に変換できるような処理を作ってみて、校正はそれが動くようになってから、だな。


追記

 ADCとFFTの波形。ADCは横軸がマイクロ秒、FFTは横軸がkHz。
 ADCは、素子から14bitのADCに直結して2048のオフセット後の値。振幅はかなり小さい。0.2Vppくらいかな?
 FFTは、FFT分解能の整数倍の周波数なので、きれいなピークが出ている。微妙に2倍高調波が出てる感じがあるが、まぁ無視できるレベル。

0 件のコメント:

コメントを投稿