Копаюсь в FFT
Oct. 4th, 2021 09:00 amРазбираюсь с быстрым преобразованием Фурье. Получается что-то, вроде бы. Я выделил доминирующие частоты для экскаватора и для грейдера. Они, естественно, разные. Вот на основе этого и будем распознавать. Есть еще небольшая, но важная практическая задача - подсчитать число циклов экскаватора. Это нужно для того, чтобы знать, сколько самосвалов загружено за смену или за час. С помощью БПФ я хочу отфильтровать шум и по основным гармоникам уже считать циклы.

Геометрия движений ковша экскаватора (слева) и лезвия грейдера (справа). Единица измерения длины по осям: 1 м.

Эволюция относительного easting датчиков экскаватора (слева вверху) и грейдера (справа вверху), время измеряется в миллисекундах. Оценка спектральной плотности движения датчиков экскаватора (слева внизу) и грейдера (справа внизу).
На всех графиках точка соответствует среднему арифметическому между положениями двух датчиков, прикрепленных к левому и правому краям рабочих поверхностей машины.
Правда, мало данных пока обработано: на тех графиках, где по оси абсцисс отложено время, видно что для грейдера данных всего примерно на 5 минут, а для экскаватора и того меньше. Но это поправимо.
Данные снимаются с датчиков и группируются в бинарные файлы (формат TAG) с содержимым по несколько минут, когда машина работает. Когда машина простаивает, то данных нет. Вот я взял один такой коротенький файл для экскаватора и ещё один для грейдера, конвертировал их в csv и проанализировал.
Для того, чтобы проанализировать данные за больший промежуток времени, скажем, за смену, надо брать группу бинарных файлов (у нас они хранятся в AWS S3) и преобразовывать их в один большой csv.

Геометрия движений ковша экскаватора (слева) и лезвия грейдера (справа). Единица измерения длины по осям: 1 м.

Эволюция относительного easting датчиков экскаватора (слева вверху) и грейдера (справа вверху), время измеряется в миллисекундах. Оценка спектральной плотности движения датчиков экскаватора (слева внизу) и грейдера (справа внизу).
На всех графиках точка соответствует среднему арифметическому между положениями двух датчиков, прикрепленных к левому и правому краям рабочих поверхностей машины.
Правда, мало данных пока обработано: на тех графиках, где по оси абсцисс отложено время, видно что для грейдера данных всего примерно на 5 минут, а для экскаватора и того меньше. Но это поправимо.
Данные снимаются с датчиков и группируются в бинарные файлы (формат TAG) с содержимым по несколько минут, когда машина работает. Когда машина простаивает, то данных нет. Вот я взял один такой коротенький файл для экскаватора и ещё один для грейдера, конвертировал их в csv и проанализировал.
Для того, чтобы проанализировать данные за больший промежуток времени, скажем, за смену, надо брать группу бинарных файлов (у нас они хранятся в AWS S3) и преобразовывать их в один большой csv.