@Ledington

Как посчитать количество пиков со смещением?

Имеются сигналы с энкодера подвижки вращения, смещенные на некоторую величину друг относительно друга (сигналы А и Б).
Для определения величины и направления перемещения требуется посчитать количество прямоугольников (направление вращения определяется какой из прямоугольников сначала - синий или красный).
По приложенным картинкам видно, что при перемещении, например по часовой стрелке, вал двигателя может кратковременно вращаться в обратную сторону.
Однако за счет неидеального равномерного движения подвижки наблюдается "дребезг" сигнала.
Как реализовать алгоритм, который определит величину и направление перемещения подвижки перемещения, полностью исключая ложные срабатывания за счет "дребезга" сигнала?
При этом, опять же скорость неравномерна и за счет этого прямоугольники могут быть разных размеров, как приведено на приложенных изображениях.

П.С.: изначально все сделано в матлабе, но пойдут решения и в С++ и в C#.

Изображения
62581479724bf399281964.jpeg
625814850df26466242430.jpeg
6258148a66877290201039.jpeg
6258149004fd4594948698.jpeg
62581495d5a55577268524.jpeg
  • Вопрос задан
  • 142 просмотра
Пригласить эксперта
Ответы на вопрос 1
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Посмотрите эту статью, все намного проще

В частности, чтобы определить скорость, достаточно поксорить A и B, - получите меандр с удвоенной частотой тиков энкодера.

Ну и вторая часть статьи - про способ определения направления.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы