2017年3月1日水曜日

超音波風速計 小ネタ

上が気温、下が風速。途中でピークが有るのは息を吹いて気温を上げたところ。
 よく見ると風速に温度ドリフトが見られる。以前に取ったログも含めた傾向として、0.1m/s/1℃くらいありそう。
 分解能は0.02m/sくらいありそうだが、ノイズが0.1m/s以上ありそう。全季節ずーっと使うなら温度ドリフトで5m/sくらいは動きそうだし、精度5m/sとか風速計としてはひどいもんだ。
 アメダスは0.1m/sの分解能で出しており、精度もそれに近い値が有ると考えると、それに比べて10分の1から50分の1くらいの性能、という感じだろうか。市販の超音波風速計とくらべて値段が50分の1くらいなので、コスト比で言えば納得できなくもない性能なんだが、ちょっと物足りない。

 今のところ、ADCを0.64285714Msps(72MHz/112)で走らせているが、STM32F4ならMax2.4MHzとのことで、単純計算で分解能がおよそ3.7倍になる。等価時間サンプリング(ETS)に合わせてサンプリングレートを調整する必要はあるだろうが、それでも2.5倍くらいの分解能になるはず。あるいは、分解能を維持したままETSのサンプル数を減らすか。
 欲を言えば100Mspsくらいの実時間サンプリング(RTS)で取り込みたいけど、100Mspsってエントリークラスのオシロスコープくらいのサンプリングレートなので、マイコン1個でフィルタリングとか解析とかやるのはちょっとつらそう。
 このあたりの性能を目指すとなると、自前で全部作るより、DSO Quadのようなオープンソース・ハードオシロスコープのファームウェアを改造したほうが楽かもしれない。DSO Quadならファンクションジェネレータも入っているようだから、デマルチプレクサとマルチプレクサを外付けし、それを制御する簡単な回路をどっかから引き出すなり、外側にチープなマイコンを1個載せてファンクションジェネレータの配線経由で制御するなり、そういう感じになるのかな。


 とりあえず、まずは温度ドリフトの原因探しが先かなぁ。送信パルスも受信タイミングも同じクロックソースだから、クロックの温度ドリフトではないだろうし、それ以外で温度による周波数変調がかかるようなモノは積んでないはずだし、データ処理の問題だと思うんだけど。イザとなれば温度から補正することもできるだろうけど、それは最後の手段ということで。

0 件のコメント:

コメントを投稿