Hadson

Обработка сигнала пьезодатчика

6 сообщений в этой теме

Hadson    1

Всем привет!

Задача: измерять обороты ДВС по частоте его колебаний (вибрации). В качестве датчика применяется пьезокерамическая пластина (по сути обыкновенный пьезо-бузер (пищалка)). После датчика будет установлен зарядовый усилитель с интеграцией тока, вот по такой схеме. 

amp.jpg

После усилителя будет ФНЧ с частотой среза 100Гц и, возможно, еще один каскад усиления на ОУ. Затем сигнал попадает на АЦП МК (АТмега8). 

Проблема в том, что даже с ФНЧ в сигнале будет целая куча гармоник и измерять частоту будет затруднительно. Необходимо как то выделить основной тон (основную гармонику) и измерить ее частоту. Большой точности не требуется, ошибка в 500-800 об/мин вполне приемлема. По идеи нужно использовать БПФ, разбивать сигнал на спектр и потом уже измерять частоту основной гармоники. Но для меня это слишком сложно (в плане математики), да и аппаратная платформа слабовата для таких вычислений.

Подскажите метод реализации, как сделать по-проще? Куда копать, какие алгоритмы, фильтры использовать? Повторюсь что высокой точности не надо.

Прикрепляю видео с осциллограммой сигнала с датчика (на видео сигнал без интеграции по току).

 

Изменено пользователем Hadson

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
oldmao    1 450

Компаратор с подстраиваемым порогом и ТТЛ выходом. Амплитуда главного импульса больше, чем помех.
И АЦП тут совсем не нужен. Прерывание по фронту и считаем период между прерываниями.

Изменено пользователем oldmao
  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Hadson    1
1 час назад, oldmao сказал:

Компаратор с подстраиваемым порогом и ТТЛ выходом

Идея хорошая, я по началу тоже думал сделать что-то подобное. Я так понимаю мне нужен операционник с положительной обратной связью для введения порога (гистерезиса)?

1 час назад, oldmao сказал:

Прерывание по фронту и считаем период между прерываниями.

  Я бы запустил таймер на единицу времени (1сек например) и пока таймер не переполнится считал бы прерывания. Затем обнуление счетчика и обратно таймер. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
oldmao    1 450

Зачем вам гистерезис? :wall:

Компаратор напряжения нужен! Для селекции по амплитуде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Hadson    1
3 часа назад, oldmao сказал:

Компаратор напряжения нужен! Для селекции по амплитуде.

Я это и мел в виду. Возможно мы с Вами понятие "гистерезис" несколько разно трактуем. Когда я говорил "гистерезис" я имел в виду некую зону "нечувствительности" в которой переключение компаратором уровней ТТЛ не происходит.

Capture.JPG

Верно? Или я все-таки ошибаюсь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
oldmao    1 450

Ну здесь он как бы и не нужен,  достаточно засечь самый большой импульс положительной полярности. Хотя, исходя из реального сигнала, возможно и гистерезис лишним не будет. Это всё экспериментальным путём путём выясняется...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас