地震計を作る - 超音波距離計の応用 - プロトタイプ
まず支柱を作りそこからビニール線でライターのガスボンベをつるします。
なぜビニール線とかへんなものを使うかというと両側にミノムシクリップがついていてガスボンベをつるしたり支柱に固定するのに便利だったからです。
前回の記事ではタイトルはただ“超音波風速計”と書いたのですが、今回は“超音波風速風向計”としました。風速計というのは(方向は考えず)風速の絶対値を測るものですが、今回作ろうとしているものだと、二組使って始めて風速計を作ることができますし、二組使えばおのずと風向計もできてしまいます。だから風速風向計ということにします。
なお三組使えば三次元風速風向計のできあがりです。ビル風の測定なんかにはいいんじゃないでしょうか。
---------
「超音波風速計の製作 - 気温・湿度に依存しない測定方法」をもとに回路構成を考えてみました。
それなりのボリュームになります。これでも一組分ですし、LPF、BPFそれにマルチプレクサの詳細は省略してあります。
「風速計・風向計を作る - 1」 を書いてから1年半経ちました。そろそろ実際に作ってみようと思います。どれを作るか悩むのですが、理屈の上では風速自体の校正が必要ない超音波風速計にしようと思います。私は風速を測る手段を他にもっていないからです。
------
次のように超音波送受信ユニットを対向しておいた場合を考えます。
送信ユニットから出た音が受信ユニットに到達するのに要する時間は
t0 = L / vs
となります。ここで送信ユニットから受信ユニットの方向に風速 v の風が吹いているとします。媒質が動いているわけですから実質的な音速は v + vs となります。到達時間は
t1 = L / ( vs + v )
ということになります。したがって超音波の到達時間を調べれば
vs = L / t0
vs + v = L / t1
v = L / t1 - L / t0 = L * ( 1 / t1 - 1 / t0 )
で送信ユニットから受信ユニット方向に吹く(あるいは受信ユニットから送信ユニット方向に吹く)風の風速を求めることができるはずです。
ただこの方法には大きな問題が三つあります。
具体的な数値を代入して計算してみます。
送受信ユニット間の距離を0.3m、気温 20℃、相対湿度 0%、風速1m/sとします。
t0 = 873.7μs
t1 = 871.2μs
となります。t0とt1の差が2.5μsしかありません。周波数40kHz、周期25μsの超音波を使って到達時間を測ったとき必要な時間分解能が出せるのかちょっと疑問です。これが一つ目の問題です。
二つ目の問題は温度(と湿度)の影響です。上の例で気温が21℃になったとします。
t0 = 872.2μs
t1 = 869.7μs
もちろんこれからも風速は1.0m/sが得られるのですが、もし20℃のときのt0を使って風速を求めてしまうと風速は1.6m/sとなってしまいます。これは気温が20℃から21度に変化すると音速が0.6m/s大きくなることが原因です。
つまりこの方法で風速を求めるためには無風のときの到達時間を調べておくか適切な方法で測定時点の音速を知ることが必要です。
そして三つ目の問題は横風の影響を強く受けることです。これについては省略しますが、解決案に詳細を示してあります。
---------
なお気温T℃、相対湿度0%のときの音速は「国立天文台編 理科年表 丸善出版2013年」 による
vs = 331.45 * sqrt( T / 273.25 + 1 )
で求めていますが
vs = 331.5 + T * 0.6
でも気温の範囲であれば問題ありません。この式に出てくる 0.6 というのは上の式の一次の微係数 331.45 / 2 / 273.25 のことです。
通風乾湿計がまがりなりにもできましたので今度は一晩中湿度の測定を続けまたAM2321の湿度とくらべてみました。
-------
余談ですがAM2321は温度の測定に関しては(室温付近に限れば)なかなか正確です。
「温度センサー3種の精度比較(摂氏0度~40度編)」に書いたように実用的には申し分ない精度を持っています。今回も比較してみました。氷点で校正した1/3 DIN(1/3 B)の(はずの)測温抵抗体との比較です。
全体的に測温抵抗体の測定値とよく一致しています(この場合“一致している”というのは“とても正確である”という意味になります)
最初と最後多少乖離しているところも見られますが窓を開けていて風が吹き込んでいたためでしょう。二つの温度計は5cmくらいしか離れていないのですが、風が吹いていたりするとこんなことになります。これだけ温度が上下すると温度分布のムラ以外にレスポンスの違いも測定値の違いとなって現れます。
こういうのを見ると日常的な意味では温度計の1℃以下の違いをどうこう言ってもあんまり意味がないことを感じます。いつも書いている“1秒まであっていたら正確な時計”と同じです。
と書きつつ温度も時刻もあくまで分解能・不確かさの追求を続けるわけですが.... (^^;;
手近にある材料で通風乾湿計を作ってみました。
タイトルはわかりやすいように“乾湿球湿度計”と書きましたが“乾湿計”というのがふつうのようです。“通風乾湿計”とか“通風型乾湿計”とか。
「気象庁 - 気象観測の手引」だと“乾湿計(乾湿球湿度計)”という表現になっています。“通風乾湿計”という言葉は出てこなくて“通風装置を備えた型の乾湿計”となっていました。
上記資料には通風について“通風速度は3~5m/sが適当である。”とあるのですが以下で作ったものの風速は不明です。そのうち“超音波風速計”を作る予定なのでできあがったら測って記事にします。
風速の設定は“徐々に風速を上げていって乾湿球温度差が飽和したところ”でいいと思います。
材料
塩ビパイプ(以前作った鏡筒のあまり)
焼き鳥の串
プラ板
ファン(CPUクーラ)
ヒートシンク(〃、空気の通り道・台座(重し)というだけ、ヒートシンクとしては使わず)
水壺(正露丸糖衣の瓶)
ティッシュペーパー少々
シュアテープ
両面テープ
Type K 熱電対
(秋月で買ったもの、冷接点は作りなおしてあります。熱起電力がちょっとあやしい)
測温抵抗体
(気温(=乾球温度)測定用、1/3 Bのはずの白金薄膜抵抗)
AM2321/LPS331AP
(LPS331は気圧測定用、AM2321は比較(?)用)
測定装置
(詳細は「I2C温湿度センサーAM2321の湿度をPIC/熱電対乾湿球湿度計とくらべてみた」)
熱電対で乾湿計を作ろうとしているわけですが、なんとか測定できそうですし湿度計算の方法も見えてきました。
さっそくI2C温湿度センサーAM2321の湿度測定値と比較してみました。今回はどちらが正しいという話じゃありませんが....
前記事で熱電対と(白金)測温抵抗体を使って湿度が測れそうな目処がついたわけですが、一点問題があります。
(相対)湿度を求めるためには乾球温度と湿球温度での飽和水蒸気圧が必要です。前記事では「気象庁 - 気象観測の手引」にある表から飽和水蒸気圧を求めたのですがPICで作ろうとすると表をプログラムの中に持つというのは手間ですしメモリももったいなくてやりたくありません。
計算式があればいいのに、と思ってググったら簡単に見つかりました。
秋葉原で売っている大気圧センサの示す現地気圧から海面気圧を計算し気象庁の発表値と比較してみようという企画です。
これは一度やりました。
「海面更正気圧を気象庁とくらべてみた - I2C大気圧温度センサーLPS331」
今回はLPS331APの他にLPS25Hも参加しています。
続きを読む "海面更正気圧の計算結果を気象庁とくらべてみた - I2C大気圧センサーLPS25H+LPS331AP" »
気象庁のハンドブックに基づく海面更正気圧の計算法について書きます。計算用のExcelファイルも用意しました。LibreOfficeなどでも動くと思います。
以前
「海面更正気圧を気象庁とくらべてみた - I2C大気圧温度センサーLPS331」
を書いたときExcelファイルもダウンロードできるようにしたつもりだったのですがそうなってなかったのであらためてこういう記事を書く次第です。
気象庁は「海面更正気圧」ではなく「海面気圧」という言葉を使っているようですが....
この記事はサーミスタでより正しい温度を求めるにはどうしたらいいかを書いたつもりだったのですが、この記事を読んだ方が同じことをするのはすごくたいへんだと思います。
精度を追求される方には
「サーミスタで正確な温度を求める方法 - 抵抗値-温度変換計算の精度と誤差」
をおすすめします。具体的な計算式や実際に測定した(算出した)結果を測温抵抗体と比較した精度・誤差のグラフがあります。
この記事を書いてからずいぶん経ち、ある程度まとまったものも書いてきましたので最新の記事を紹介させていただきます。
------
サーミスタの基本特性である基準抵抗とB定数から温度を求めるという基本的なところは
「サーミスタで温度を測る - 温度と抵抗値の相互変換 - B定数について」
にあります。サーミスタの抵抗値から温度を求める方法と温度=抵抗値の対照表があります。1℃の単位で温度がわかればいいということであればこの記事で十分です。
B定数の温度による変化を考慮してより高い精度で温度を測りたい場合は
「サーミスタによる温度測定の精度 - 2 - B定数の温度特性」
があり、また具体的な計算式や実際に5℃~65℃から測定した精度(誤差)を調べたものは
「サーミスタで正確な温度を求める方法 - 抵抗値-温度変換計算の精度と誤差」
にあります。R0とB定数だけではあんまり正確な温度が求まらないことがわかります。
自己加熱については
「サーミスタ温度測定の精度と誤差 - 熱放散定数と自己加熱」
製品特性のばらつきによる誤差については
「サーミスタ温度測定の精度と誤差 - 製品のばらつきによる不確かさ」
にあります。
PICで温度を測るときのプログラム例は
「PICで作るお手軽サーミスタ温度計 (2) - ソース付き」
にありますが、これはもっとも基本的な計算法を使っていますので精度が物足りないかもしれません。「サーミスタで正確な温度を求める方法 - 抵抗値-温度変換計算の精度と誤差」にある式を利用していただければ精度は向上します。
サーミスタによる温度測定で問題になる自己発熱については
「サーミスタの自己発熱・熱放散係数を測ってみた」
「(アルミ管入り)サーミスタの自己発熱・熱放散係数を測ってみた」
「(水中の)サーミスタの自己発熱・熱放散係数を測ってみた」
や
「サーミスタ/測温抵抗体の自己発熱(熱放散係数)の測り方」
に測定例があります。
-----
温度測定がしたいのであって特にサーミスタにこだわらないと言う方は
「PICで作る温度計のセンサー比較(サーミスタ、熱電対、白金測温抵抗体、...)」
「温度センサ(サーミスタ・熱電対・(白金)測温抵抗体)の誤差」
が参考になると思います。
精度にこだわるのであれば測温抵抗体(白金薄膜抵抗)がおすすめです。
「(白金)測温抵抗体(白金薄膜抵抗)の使い方 - 基礎編というか入門編というか....」
最初はちょっとめんどうかもしれませんが、一度作ってしまえば“この温度は正しいんだろうか?”なんて悩まなくてすみます。
(2015.06.23)
------
最近のコメント