0 / 0 / 0
Регистрация: 07.04.2010
Сообщений: 91
1

Обработка аналогового сигнала

04.01.2014, 20:59. Показов 32507. Ответов 57
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
Решил сделать автомобильный тахометр, который не требует подключения ни к одной цепи автомобиля кроме питающей сети. Принцип работы заключается в простеньком анализе напряжения в бортовой сети автомобиля при работающем генераторе. В основном в автомобилях стоит трехфазный генератор синусоидального напряжения с выпрямительным диодным мостом. После выпрямления трехфазной синусоиды, напряжение в бортовой сети автомобиля принимает следующий вид:

<Изображение удалено>

Соответственно при изменении скорости вращения коленчатого вала двигателя меняется и частота колебаний напряжения в сети, которую и нужно измерять моей AVRке. На холостых оборотах двигателя частота этих колебаний будет составлять 150-200Гц, а на максимальных (5000 об/мин.) - 1000-1300Гц.
Итак, как себе представляю это я:
1) для начала нужно удалить постоянную составляющую сигнала (примерно 14 вольт), что бы остались только наши колебания с амплитудой 0,2-0,3В, причем чтобы они были не знакопеременные, а имели исключительно положительные значения. Затем надо усилить наш сигнал скажем в 10 раз, и подать его на вход аналогового компаратора МК.
2) в качестве источника опорного напряжения компаратора выбираем внутренний ИОН на 1,1В, и генерируем прерывания при изменении выхода компаратора скажем с 0 на 1 (которые будут происходить в одинаковой точке каждого колебания). Таймером засекаем период между прерываниями компаратора и переводим этот период в частоту вращения ротора генератора, а потом и в частоту вращения коленчатого вала.

Со вторым пунктом проблем я не вижу, а вот с первым в силу своих слабых знаний в области аналоговой электроники сам справиться не могу. По этому хочу проконсультироваться по следующим вопросам:
1) Как лучше убрать постоянную составляющую сигнала? Использовать разделительный конденсатор, или применить какой-нибудь фильтр?
2) Как усилить сигнал? Подойдет ли простой усилитель скажем на одном транзисторе, или лучше использовать ОУ?
3) Нужно ли применять дополнительный фильтр после усиления сигнала, что бы убрать всякие помехи и прочий мусор из сигнала. Если да, то какой (полосовой, ФНЧ, ФВЧ)?
4) Правильно ли я вообще построил алгоритм работы устройства, или это полный бред, который на практике не заработает?
Буду благодарен за любые подсказки.
И с прошедшими и наступающими праздниками всех Вас :)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.01.2014, 20:59
Ответы с готовыми решениями:

Реализация аналогового сигнала
Здравствуйте , нужно с помощью цап на микроконтроллере синтезировать периодический аналоговый...

Обработка сигнала
Всем привет! На ногу МК приходит ШИМ сигнал с устройства. В зависимости от условий на самом...

Обработка сигнала с датчика вибрации
Как принять обработать и отправить сигнал с датчика вибрации на ATmega8?

Обработка квадратурного сигнала на AVR
Подпрограмма обработки квадратурного сигнала по прерываниям.doc Подпрограмма обработки...

57
0 / 0 / 0
Регистрация: 07.04.2010
Сообщений: 91
08.01.2014, 23:57 41
Author24 — интернет-сервис помощи студентам
Автокорреляция? Пошел читать дальше...
0
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
09.01.2014, 01:20 42
еще есть очень простой, не требующий памяти, но не совсем честный метод определения частоты это посчитать что-нибудь вроде среднеквадратичного значения производной, его отношение к среднеквадратичному значению сигнала должно зависеть от частоты.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 2,309
09.01.2014, 17:49 43
Функция автокорреляции хорошо идндицирует период только в случае периодичного сигнала. Если в массив запишется кусок сигнала, где частота будет меняться - автокорреляция может дать серьезный сбой. А вот считать эту функцию на слабом МК может быть геморно.
0
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
09.01.2014, 18:00 44
Цитата Сообщение от VyvotzorD
Функция автокорреляции хорошо идндицирует период только в случае периодичного сигнала. Если в массив запишется кусок сигнала, где частота будет меняться - автокорреляция может дать серьезный сбой. А вот считать эту функцию на слабом МК может быть геморно.
уж не геморней чем фурье.
всё равно оба этих метода не для tiny13.
0
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 584
09.01.2014, 19:23 45
По моему надо этот сигнал сначала пропустить через конденсатор, пустить через диод, отфильтровать от вч помех. Пульсирующее напряжение усилить транзистором с обратной связью, чтоб на выходе был сигнал одного напряжения независимо от частоты пульсаций. А потом считать импульсы.
0
0 / 0 / 0
Регистрация: 07.04.2010
Сообщений: 91
10.01.2014, 02:10 46
Насчет пропустить через диод не уверен, там амплитуда после конденсатора будет около 0,1В, а у любого диода (даже Шоттки) падение в прямом направлении больше чем 0,1В. Диод разве что после усилителя поставить можно.
0
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 1,625
12.01.2014, 15:06 47
Фильтр понадобится качественный. НЧ броски в сети могут быть до 1-2 вольт, а компаратор должен ловить десятки мВ, поэтому по крайней мере снизу надо срезать на 40 дб. Сверху там тоже ничего приятного, помехи коммутации, зажигания и прочее.

А насчет самой идеи - по-моему, проскочит только идея прямого счета, ну может быть, плюс некоторое усреднение, чтобы цифры не мельтешили. На большее Тинька не способна. Я как-то брался за светомузыку, хотел сделать полностью программно на Мега8 на 16 МГц, по мере наворотов пришлось понижать верхнюю частоту квантования, и когда дошел до 5 кГц, забросил затею. И это при том, что применял простейшие операции с фиксированной точкой (8+8). Возможно, и есть целочисленные упрощенные Фурье трансформы, но мне не встречались, но в любом случае, они потребуют пару сотен команд на выборку плюс память, камень бы помощнее не помешал.
0
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
12.01.2014, 15:34 48
раз картинка с сигналом уже есть из первого поста ТС бы еще и сырые данные в каком-нибудь читаемом формате приложил бы для нескольких разных скоростей
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 2,309
12.01.2014, 18:06 49
А FFT и прочие печки-лавочки надо делать под формат данных, выдаваемых АЦП. А у AVR-ок достоверно обычно 8 бит. Ну 10 бит - если что. Отсюда и плясать. И пофигу в каком месте будет мнимая фиксированная точка, математика другой не станет. А сделать 8-ми битный FFT не намного сложнее чем любую другую математику.
0
0 / 0 / 0
Регистрация: 07.04.2010
Сообщений: 91
12.01.2014, 23:39 50
_pv, о каких данных речь?
0
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
13.01.2014, 00:25 51
о тех что на картинке в первом посте, только для минимальных средних и максимальных оборотов, тогда будет понятно что с ними можно сделать
0
0 / 0 / 0
Регистрация: 07.04.2010
Сообщений: 91
13.01.2014, 10:02 52
А, ну это ждем мой осциллограф... надеюсь через недельку все это будет
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 2,309
13.01.2014, 11:41 53
Кстати еще предполагаемая фишка: при разной нагрузке генератора амплитуда пульсаций будет разной. И так же на амплитуду повлияет частота оборотов. На высоких оборотах амплитуда пульсаций будет меньше. Это надо учитывать, и возможно придется ставить перед АЦП какой нибудь АРУ, который нормализует сигнал.
0
0 / 0 / 0
Регистрация: 01.03.2012
Сообщений: 87
25.01.2014, 17:19 54
То что называют медианным фильтром в болле общем представлении цифровой обработки сигналов - фильтр с конечной импульсной характеристикой низких частот. Если окно усреднения фильтра N, то он состоит N коэффициэнтов кааждый из каторых равен 1/N. Это плохой фильтр (достаточно посмотреть его АЧХ в логарифмическом маштабе). Если хочеш, могу посчитать тебе коэффициэнты твоего фильтра, результат фильтрации будет НАМНОГО лучше, а алгоритм фильтрации тот же (почти) что и для скользящего среднего (медианного).
Или же раскажу как это делать. Очень просто.
От тебя требуеться частота АЦП и размер окна.
0
0 / 0 / 0
Регистрация: 01.03.2012
Сообщений: 87
25.01.2014, 17:25 55
Я уже писал. Если правильно посчитать коэф. фильтра + внешний ФНЧ - вполне можно обойтись мегой8.
Если нужно обращайся, раскажу покажу. Все очень просто.
0
0 / 0 / 0
Регистрация: 20.07.2012
Сообщений: 620
25.01.2014, 17:58 56
Цитата Сообщение от Kooddjomp
То что называют медианным фильтром в болле общем представлении цифровой обработки сигналов - фильтр с конечной импульсной характеристикой низких частот. Если окно усреднения фильтра N, то он состоит N коэффициэнтов кааждый из каторых равен 1/N. Это плохой фильтр (достаточно посмотреть его АЧХ в логарифмическом маштабе). Если хочеш, могу посчитать тебе коэффициэнты твоего фильтра, результат фильтрации будет НАМНОГО лучше, а алгоритм фильтрации тот же (почти) что и для скользящего среднего (медианного).
Или же раскажу как это делать. Очень просто.
От тебя требуеться частота АЦП и размер окна.
Медианная фильтрация и скользящее среднее - это ,как бы, не одно и тоже... Медианный фильтр нелинеен (в отличии от скользящего среднего), частотными характеристиками сложно описывается.... (медианный фильтр подбривает верхушку у синусоидального сигнала.
0
0 / 0 / 0
Регистрация: 07.04.2010
Сообщений: 91
25.01.2014, 18:47 57
Посмотрел осциллографом напряжение в сети автомобиля и пришел к выводу что есть более простой способ расчета скорости вращения. Заранее извиняюсь за отсутствие осциллограмм, но я постараюсь детально описать то что видел.
Итак, подключил я к сети авто RC цепочку для отделения постоянной составляющей, и заодно отделил ею низкочастотные колебания от работы генератора. При номиналах резистора 10К и конденсатора 220нФ, на холостых оборотах на экране осциллографа наблюдал не полезный сигнал (шум) с амплитудой 50-100мВ и частотой примерно 1-2кГц, и импульсные помехи в виде иголок положительной полярности с амплитудой около 1В. Частота следования иголок на холостых оборотах была 30-32Гц из чего делаю вывод что их создает система зажигания при выдаче искры на свечи. При увеличении оборотов частота иголок пропорционально увеличивается, а шум остается практически неизменным.
Вот от этих иголок я и решил плясать. Только теперь осталась мелочь, решить как именно их фиксировать микроконтроллером? Длительность иголок очень маленькая (их видно только при частоте выборки осциллографа 1М и выше), так что АЦП отпадает.
Думаю лучше всего задействовать встроенный компаратор с прерываниями, ИОН использовать внутренний на 1,1В, так что амплитуду иголок надо увеличить хотя бы в 2 раза. Вот теперь думаю усилить их с помощью ОУ или не париться и использовать транзистор. Кстати вопрос, подойдет ли для этой цели транзистор типа ВС847 или ВС817? И еще - хватит ли длительности такой иголки чтобы вызвать прерывание компаратора при тактовой частоте камня 9,6 МГц, или надо длительность импульса как-то увеличивать, хотя бы до десятков микросекунд?
0
0 / 0 / 0
Регистрация: 07.04.2010
Сообщений: 91
25.01.2014, 19:01 58
О, или лучше сделать так, как яверт в начале показывал.


<Изображение удалено>

Но использовать встроенный в МК компаратор. Второй вывод R4 подключить к общему, а не к делителю, а делитель взять такой, чтоб в средней точке было 0,5В. Будет работать?
0
25.01.2014, 19:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2014, 19:01
Помогаю со студенческими работами здесь

Atmega8A: обработка сигнала с автомобильного ДПКВ
Здравствуйте! Появилась необходимость работать с датчиком положения коленвала, используя МК...

Обработка PPM сигнала из RC приемника в Attiny45
Я новичок в программировании, потому прошу простить за нубство. Короче нужно научить Attiny45...

Измеритель периода аналогового сигнала
Здравствуйте!Необходимо разработать программу,считающую период аналогового сигнала на...

Измерение аналогового сигнала
Здравствуйте Уважаемые знатоки!!! Обращаюсь к вам за помощью. Аналоговый сигнал поступает на АЦП...

Преобразование аналогового сигнала
Добрый день. Хочу заменить штатный датчик уровня топлива на ёмкостной. Схема подключения штатного...

Растяжка аналогового сигнала.
Что-то я откровенно туплю по жаре. Есть у меня очееень медленно изменяющийся (можно считать...

преобразование аналогового сигнала на матлаб
Помогите написать программу, которая дискретезирует аналоговый сигнал, потом проводит квантование...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
58
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru