-
1:tomi_delta
:
2023/05/14 (Sun) 09:51:48
-
震度計ですが、ほぼ完成形になったと思います。
(手持ちのマイコンでやるには、ほぼこれが限界?)
本来は1分の長さ & 正確なフィルタで、震度計測しないといけないのですが、
正確に、これ以上の動作をさせるには、さらに正確なフィルタによる変換をし、さらに良いセンサを使い、
別の性能の良いマイコン か FPGA などを使う必要があると思います。
VHDLで、10ms未満でのセンサ読込、RCフィルタ、リングバッファによる移動平均、ソート(数が多いのでステートで数サイクル必要?)が
作れると思うので、FPGAで試しにどうなるか作ってみたいですね。
(ただ、誤差の範囲で劇的には変化しないと思います)
結果的にはラズパイ震度計のサイトとほぼ同じ測定方法になりました。
(一部フィルタ部分のやり方を拝借しました)
こちらはHPFの入力もLPFの出力結果を使っているので、少しだけ異なります。
(ラズパイサイトはHPFの入力はLPFの入力を使用、出力時の減算はLPFの出力結果を使用)
計測震度の細かい小数点の計算も異なります。(こちらは気象庁の方法にしています)
サイトに載せてあるソースを見ると、もともと作っていた0.3秒の加速度抽出方法、リングバッファ部分は同じでした。
(ベクトル合成とgal変換の順番が逆ですが、結果に影響しません)
ラズパイ震度計のサイトと一番大きく違う部分は加速度センサの性能の部分で、
こちらでは、実測で計測震度-1.0程度まで測れています。
(実際はセンサのノイズ分が計測震度-1.0程度ある)
震度が大きい場合は、細かい揺れの誤差はほぼ無視できるので、
震度1以上で測るだけならば、ラズパイ震度計のサイトのものがコストパフォーマンスでは良いですね。
(こちらは ADXL355のセンサだけで、約10倍の ¥7000 かかります)
生活振動があるので、これ以上性能を求めても意味がないのかもしれませんが…
(フィルタなどで補正gal(震度)は反応しませんが、クシャミをするだけでも計測galは反応するので…)
-
2:tomi_delta
:
2023/05/15 (Mon) 21:44:17
-
https://bbs3.fc2.com//bbs/img/_887100/887096/full/887096_1684154657.png
HPFとLPFの個々のフィルタ特性を簡単に調べてみました。
まずは、HPFのフィルタ特性です。
・参考値
0.01Hzで0.03倍
0.63Hzで1.26倍
1Hzで1.00倍
1Hz以降は波打って小さくなっていきます。
-
3:tomi_delta
:
2023/05/15 (Mon) 21:47:41
-
https://bbs3.fc2.com//bbs/img/_887100/887096/full/887096_1684154861.png
LPFのフィルタ特性です。
HPF、LPF の両方とも10msサンプリングに変更した計算式に当てはめて調べました。
2Hz付近から落ち込んで行き、サンプリング周波数の100Hzに近づくと1倍に向かいます。
-
4:tomi_delta
:
2023/05/16 (Tue) 15:18:49
-
https://bbs3.fc2.com//bbs/img/_887100/887096/full/887096_1684217929.png
画像データのように、主な地震における10秒以上の周期のgalが極端に小さくり、HPFでほぼ0になるため、震度計算に使うgalは10秒の長さで測っています。
(5秒の長さだと長周期の地震の場合、誤差が少し出てくる)
これを見ると、能登半島の地震は長周期成分が非常に多いですね。
-
5:tomi_delta
:
2023/05/17 (Wed) 02:49:24
-
2次フィルタLPFのパラメータを色々変更し、移動平均のHPFと組み合わせていたところ、
良さげなフィルタができ上がったような気がします。
http://tomixdelta.starfree.jp/images/etc/filter_fs_10ms.png
これを採用するかは、現在思案中。
2次フィルタLPFの場合もサンプリング周波数の100Hzに近づくと1倍に向かいます。
ナイキスト周波数(サンプリング周波数の1/2)周辺では、その周波数近辺の波は失われます。
上記のラズパイサイトの特性の1次LPFも、こちらの計算式で細かくとると50Hzあたりで急に0になることを確認。
(ラズパイサイトでのサンプリングは5ms[200MHz]なので、ナイキスト周波数は100MHz[この周波数で急に0になる])
各周波数特性まとめ。
・2次フィルタLPF(パラメータ変更) + HPF (5ms サンプリング)
http://tomixdelta.starfree.jp/images/etc/filter_fs_5ms.png
・2次フィルタLPF(パラメータ変更) + HPF (10ms サンプリング)
http://tomixdelta.starfree.jp/images/etc/filter_fs_10ms.png
・1次フィルタLPF(RC Filter) + HPF (5ms サンプリング)
http://tomixdelta.starfree.jp/images/etc/filter_rp_5ms.png
・1次フィルタLPF(RC Filter) + HPF (10ms サンプリング)
http://tomixdelta.starfree.jp/images/etc/filter_rp_10ms.png
-
6:tomi_delta
:
2023/05/17 (Wed) 18:57:18
-
因みにですが、62.5 Hz の 3次LPF が、ADXL355 のチップ側ですでにかかっています。
100Hz 以上のノイズは急激になくなります。(チップは 4000Hz で動作)
Output data rate (出力レート) は、250 Hzです。
参考まで。
-
7:tomi_delta
:
2023/05/17 (Wed) 19:14:55
-
倍率の大きい部分はカバーできているので、
2次フィルタLPF(パラメータ変更) + HPF (10ms サンプリング) の組み合わせに変更しようと思います。
50Hzは0.001倍以下であり、一般的な地震は数10Hz以下が主成分であるので、10Hz以上は単なるノイズ取りに・・・
-
8:tomi_delta
:
2023/05/19 (Fri) 12:56:47
-
チップの Output data rate (出力レート) を 125 Hz、
3次Sincフィルタ(移動平均が3段連なったものと同じ特性)を 31.25 Hz にするか思案中。 (31.25Hz で 0.707倍)
アンチエイリアシング・フィルタ 用(帯域外ノイズを削減)みたいなので、この設定が正しい?
震度設定用のフィルタに影響を及ぼしそうなので、問題ないことがわかるまで当分は保留します。
-
9:tomi_delta
:
2023/05/30 (Tue) 17:45:38
-
自作震度計のゼロ基準点は、常に補正をかけるようにしています。
きっちり壁につけていますが、ごくごくごく僅かですが値が変わってくるためです。
(温度による基板のたわみや、壁のゆがみ等で微妙に変わる?と推測)
超長周期波形を排除するHPFの形になっており、震度のフィルタとも干渉しないため、この形で運用しています。
5/26の微修正は、補正をするタイミングをリアルタイム(10ms)に変更し、HPF のカットオフ周波数をさらに長周期側にした変更です。
どのようにセンサが傾いたとしても、いずれは補正され正しい値になります。
-
10:tomi_delta
:
2023/07/25 (Tue) 20:27:52
-
色々計算した結果、震度設定用のフィルタへの影響は軽微であると思われるため、チップの ODR (出力レート) を 125 Hzにしました。
この影響で、非常に周期の短い地震(40Hz以上)では、震度が低く出るかもしれません。
50Hz以降が ほぼ0になる(チップ側で除去される)ため、ノイズの影響は若干減ったかと思われます。
おそらく、これが最終形態になると思います。
静穏時の計測震度は、約 -1.2 (約 0.08 gal = 0.08 cm/s^2 = 0.0008 m/s^2) なので、今までと殆ど変わりません。
(今迄より 0.1 減ったぐらい?)