2025年12月17日水曜日

ESP32灯油残量センサー 実験

まだ、測定値が安定しないので、新たに容量カウント補正用のセンサ(タンク入口までの短い線)を追加して、しばらくデータをとってみることにした。追加PINはGPIO15。esp32から外に出ている線がぬれるだけで、測定値に影響するので、補正できないか試す予定。 
※その後、測定用のCPSをc1、補正用のCPSをc2とすると、容量がカウントの逆数なので、(1/c1-2.05/c2)*10^5*係数a+切片bで近似すると、比較的うまくいくようだった。残量との差をエクセルで計算して、分散が最小になるように、aとbを調整してみた。この値をグラフにしてみると、ほぼ湿度と逆相関のようだったので、最終的に(上記の値)+51-0.6*湿度とするとさらに近似できそうだった。(このときも分散を見ながら手作業で調整。2次の項も入れてみたがかえってよくなかった。)
 これでも、変動が多いけれど、おそらく空気中の湿度というより、表面の水滴などが影響しているのでないかとも予想?されます。(湿度と相関あっても、完全な相関でないので)そこで、平均すればあるていど変動を抑えられるかと思い、移動平均的な計算を入れることにした。ChatGPTによると、 Value=RawValue*0.07+PrevValue*0.93のように前回データとその時の測定値に重みを付けながら足していくといいらしい。これで、しばらく様子をみることにした。
 今のところ、この移動平均を取り入れたら、以下のグラフ(赤い線)のようになり、わりと実測値に近くなった気がした。
 ChatGPTによると指数移動平均というらしい。低い周波数(残量の変化はかなりゆっくり進むので、あうらしい)を通すフィルターと同じ効果あるのだそう。ある意味LPFのようなものだとか。
※ただ、その後、最初のほうのデータにより、前半の状況が変わってくることもあるようなので、まだ十分とはいえないよう。
※変換式のパラメータをWebで変更できるようにして、実測値と計算値の分散が最小なるようにときどき調整している。残量が少なくなってきたときのほうが、データが多く蓄積してくるので、平均化されて誤差は減っている気もする。大事なのは、灯油がなくなりつつある頃の状況を知ることなので、そういう意味では、なんとか使える?かも。


0 件のコメント:

コメントを投稿