Reports

XBee 突発的に生じる温度上昇誤差の解消

Tweet

XBee のエンドデバイスに温度センサを取り付け温度を測定しているが,たまに 1.5度以上高く spontaneous 瞬間的に測定される。最初,AC/DC 電源からノイズが回り込んでいると思い,バッテリ駆動に 変えたら起きなくなるだろうと思っていた。


電源回路をかなり強化しても同じように観測される。パケットを1にしても同様だ。検索したら,「CMOSデバイスのアナログ入力 ピンは,非常に高い入力抵抗をもっていますが,サンプル&ホールド回路が動作すると瞬間的にインピーダンスが低下します」と ある。XBee のマニュアルではインピーダンスは 1MΩ とされるが,サンプル&ホールド時はやはり2008年でのマニュアルにある ように10kΩではないかと思う。一瞬,電源電圧もしくは ADC の参照電圧まで昇圧するのではないか。温度センサのノイズを 低減するため高抵抗のローパスフィルタを構成したが良くなかったのかもしれない。電源を改善したのでローパスフィルタの抵抗を 下げても問題は生じないと判断し,抵抗値を下げて実験してみた。

下図はエンドデバイス電源を変更後の温度センサ出力変化である。Rec 番号 1000 と 1500 の間にあるステップ状の温度変化以降は 電源を自製 AC/DC スイッチ電源からバッテリ駆動に変えた。図では連続しているが時刻は不連続である。Rec 番号 1000 と 1500 にある段差はエンドデバイスの電源回路を見直したためである。不定期に生じる瞬間的な温度上昇はあり得ない誤差というか 外れ値である。
XBee1TP4.png
Fig.1
App: Slip21
FileName: 1B1TApr16.dat
Sampling period: 1 min

たまに起きる異常値の出現がアプリのバグの可能性も考慮して,平均化処理を行うパケット数4から処理なしのパケット数1に 変更して同様に測定してみた。下図に示すように,400回を超えるサンプリングに対してやはり突発的にパケット数が4のとき よりも大きい6℃に近い外れ値が2回測定された。どうもアプリの問題ではなさそうだ。抵抗値を 1/9.1 にしてみて,同様の条件で 測定を行うとxx間の間,異常値は測定されなかった。Rec000445 1305021335 022.1℃ が変更後の測定開始である。 急峻な 温度上昇は半田付け直後のサーマルストレスによるものである。その後の減衰波形が一次遅れと同じ形状をしており伝熱現象で あると推測される。最終Rec 000917 までの 473 サンプル数の間(472分),突発的温度上昇の外れ値は測定されなかった。ADC の インピーダンスは 10kΩ かどうかは不明だが,やはりサンプル&ホールド時には同程度にまで低下していそうだ。

XBee1T1P.png
Fig.2
App: Slip21
FileName: 1B1T1P.dat
Sampling period: 1 min

大きな外れ値は生じなくなったが,インピーダンスを下げたせいかフィルタリング効果が少なくなり,ノイズが増えたような気が する。先の 1B1TApr16.dat に低インピーダンス回路ではどのように変化するのか追加して測定してみた。Rec 2000-3000 の間に ある15℃程度から急激に増加しているところから低インピーダンス回路である。時間的な継続はない。チャートをみると 高インピーダンス回路ではサグが頻繁に観測されやはり,低インピーダンス回路の方が安定してよさそうだ。
XBee1TP4Kaizen.png
Fig.3
App: Slip21
FileName: 1B1TApr16.dat
Sampling period: 1 min



Biwa Lake JAPAN   aboutMe
© 2013 Enoki