Страница 1 из 2
Тахометр с усреднением
Добавлено: Вт сен 01, 2020 00:55:28
Wladimir_TS
Разыскиваю варианты программной реализации тахометра с диапазоном измерений от 1 до 60000 об/мин из рассчета 1 импульс на оборот, но с минимальным временем реагирования на изменение частоты но при этом с усреднением частоты при некотором плавании фазы прихода иппульса. Желательно с переключением времени усреднения от частоты автоматически - тоесть на малых частотах (1-60 имп/мин) измерение от импульса к импульсу , при 60-600 уже с усреднением. Выбор предела речной в виде 0-100 100-1000 1000-60000 или автомат.
Просто фронты сигнала с датчика дрожат. На малух скоростях не видно, а на больших актуально. Нужно обновление показаний не менее 3х в секунду.
На AVR желательно, вывод любой. (Теоретически 1-2-4-8-10-20-40-80.....)
С исходниками, на ассемблере желательно.
Желательно с возхможностью коррекции тактового сигнала - стабильность высокая нужна - видимо будет термокомпенсированный или термостатированный опорник. Ну естественно доступный в хламовнике и с неровной, увы частотой.
Хочется многого - но интересны серьезные решения, просто "я таймером пользоваться в режиме захвата научился и скетч на ардуине набросал" - не очень интересны.
Re: Тахометр с усреднением
Добавлено: Вт сен 01, 2020 06:53:59
akl
Как вариант на m8515 c LCD
Re: Тахометр с усреднением
Добавлено: Вт сен 01, 2020 07:33:21
Wladimir_TS
Спасибо большое - буду вникать.
Re: Тахометр с усреднением
Добавлено: Вт сен 01, 2020 08:05:31
Ivanoff-iv
можешь от этого оттолкнуться:
код С
принцип работы - замер времени между импульсами (количество импульсов подбирается автоматически чтобы обеспечить наилучшую точность при допустимом быстродействии)
(в протеусовском файле от прошлого проекта клавиатура осталась - тут она не используется)
кнопкой диапазон переключается скорость хода Т1 - и смещается диапазон измерения (прямо во время работы устройства).
диапазон, правда меньше твоего, но это поправимо.
Re: Тахометр с усреднением
Добавлено: Вт сен 01, 2020 10:10:06
Мурик
Wladimir_TS писал(а):На AVR желательно
Не лучший выбор с его примитивными таймерами.
Лучше STM32 с работой таймера с режиме ШИМ захвата с одним из каналов сравнения для таймаута.
Если высокая точность не нужна достаточно 16-ти битного таймера (будет грубо измерять на высоких оборотах). Если важна точность, берите МК с 32-ух битным таймером.
Re: Тахометр с усреднением
Добавлено: Вт сен 01, 2020 16:01:45
jcxz
[uquote="Wladimir_TS",url="/forum/viewtopic.php?p=3886343#p3886343"]Просто фронты сигнала с датчика дрожат. На малух скоростях не видно, а на больших актуально. Нужно обновление показаний не менее 3х в секунду.[/uquote]Так пропустите их через элементарный фильтр:
Код: Выделить всё
int speed = 0;
int f(int newSpeed)
{
enum {SPEED_FILTER = 8}; //подобрать оптимальное значение порядка фильтра
int i = speed;
speed = i += newSpeed - (i >> SPEED_FILTER);
return i >> SPEED_FILTER;
}
Re: Тахометр с усреднением
Добавлено: Вт сен 01, 2020 22:20:00
Wladimir_TS
[uquote="Мурик",url="/forum/viewtopic.php?p=3886421#p3886421"]
Wladimir_TS писал(а):На AVR желательно
Не лучший выбор с его примитивными таймерами.
Лучше STM32 с работой таймера с режиме ШИМ захвата с одним из каналов сравнения для таймаута.
Если высокая точность не нужна достаточно 16-ти битного таймера (будет грубо измерять на высоких оборотах). Если важна точность, берите МК с 32-ух битным таймером.[/uquote]
STM зело сложный для меня процессор - слишком много слишком сложной и навёрнутой перефирии, так что AVR на крайняк PIC или 8051
И увы СИ лишком пока сложен и слабо воспринимаем для меня - на AVR еще как-то понятно -но перефрия других требует зело вдумчивого осмысления.
Задача - стабильные показания при дрожании фазы и периодическом пропуске импульсов на больших скоростях - датчик сильно колбасит.
При счете за 1 сек - показания относительно стабильные - но реакция медленноватая.
Добавлено after 11 minutes 33 seconds:
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3886390#p3886390"]можешь от этого оттолкнуться:
код С[/uquote]
Очень много буков - понятно немногое - при беглом просмотре не нашел даже main.c , но нашел какие-то макроопрделения для ассемблера. Буду разбираться - в любом случае спасибо.
Re: Тахометр с усреднением
Добавлено: Вт сен 01, 2020 23:41:47
Мурик
Wladimir_TS писал(а):но перефрия других
SPL в помощь. Немного о ШИМ захвате.
http://we.easyelectronics.ru/STM32/ir-u ... ast-1.html
Сравните с тем что аппаратно могут таймеры PIC и AVR. Кажущаяся простота 8-ми битников, из-за из примитивности создает сложности при разработке программ и приходится думать как сделать программно то что в современных МК можно сделать полностью аппаратно, а это не только уменьшит нагрузку на ядро МК, но и повысит точность измерения тахометра, особенно на высоких оборотах.
Re: Тахометр с усреднением
Добавлено: Ср сен 02, 2020 01:33:20
Oxford
Мурик есть люди которым тяжело изучать Си и новые МК, либо просто не хотят. Если они изучили AVR и ассемблер на нем и программируют.
Re: Тахометр с усреднением
Добавлено: Ср сен 02, 2020 10:11:04
Ivanoff-iv
Wladimir_TS, попробую объяснить принцип на картинках
Спойлер

Замер производится обратным методом (считается не количество импульсов на ед. времени, а наоборот - период следования импульсов)
недостатки метода:
1) требование к стабильности следования импульсов
2) с повышением частоты снижается точность измерения (увеличивается дискретность, т.к. шаг таймера растёт по отношению к измеряемому периоду)
3) невозможность определения останова
решения, помогающие избавится от этих недостатков:
1, 2) если считать период не одного импульса а нескольких, то эти 2 проблемы нивелируются
3) решается добавлением принудительного прерывания ожидания импульса (по таймеру).
реализация:
1, 2) удобнее всего применить кольцевой буфер, заполнять который по событию прихода импульса, а читать и высчитывать скорость - по требованию (складывать периоды нужно от последнего записанного к предпоследнему и дальше, до тех пор, пока не наберётся период, обеспечивающий требуемую точность или пока не кончится буфер)
3) обеспечивает тот-же таймер, что считает периоды следования импульсов (либо переполнением либо по регистру совпадения, в зависимости от того, как реализован его ход - со сбросом накопления после каждого импульса или по кольцу без сброса).
______________
на последнем рисунке показано, что набрать требуемое число периодов можно в любой момент (не обязательно ждать заполнения буфера по новой)
Re: Тахометр с усреднением
Добавлено: Ср сен 02, 2020 18:18:27
Starichok51
Wladimir_TS писал(а):на малых частотах (1-60 имп/мин)
если 1 импульс в минуту, это минимум 1 минуту ждать, когда скорость измерится.
что тут можно выводить не менее 3х в секунду?
Wladimir_TS писал(а):С исходниками, на ассемблере желательно.
вообще-то, за полноценным проектом следует обращаться в раздел "Работа". там за свои деньги получишь всё, что пожелаешь.
Wladimir_TS писал(а):стабильность высокая нужна - видимо будет термокомпенсированный или термостатированный опорник.
ну, и зачем нужна такая офигенная точность? и сколько десятичных знаков тебе нужно в результате?
Re: Тахометр с усреднением
Добавлено: Чт сен 03, 2020 00:21:07
Wladimir_TS
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3886857#p3886857"]
Wladimir_TS, попробую объяснить принцип на картинках[/uquote]
Вы правы - именно так - надо при низких частотах измерять период, но приросте автоматически переходить на измерение - количества импульсов за период или как вы предложили период нескольких импульсов. Желательно как-то это автопереключать, но по скудоумию сам я не сдюжу программу таковую, потому-б на чужие деяния посмотреть, авось что и соберется в кучку.
Грубо говоря есть тахометр исходный - там используется некая схема умножения частоты при низких частотах и прямое измерение за 1 сек при высоких - корпусов 60 где-то без схем. Но основная претензия это смена показаний 1 раз в секунду, а надо быстрее. 3 раза где-то в секунду или 4.
Соответственно вместо всего этого поставить один ОМК AVR (какой знаю) и с него на индикацию в формате 1-2-4-8-10-20-40-80-....
Диапазон да - широкий - но в 4х поддиапазонах
Ясно дело готового не будет - потому варианты смотрю как да куда да откуда.
Добавлено after 16 minutes 22 seconds:
[uquote="Starichok51",url="/forum/viewtopic.php?p=3887081#p3887081"]
Wladimir_TS писал(а):на малых частотах (1-60 имп/мин)
если 1 импульс в минуту, это минимум 1 минуту ждать, когда скорость измерится.[/uquote]
Да - необходимо обеспечить такой диапазон измерений. 1-60000 об/мин Потому время измерения естественно не менее периода следования импульсов, но не менее при то 0,3 сек.
[uquote="Starichok51",url="/forum/viewtopic.php?p=3887081#p3887081"]
Wladimir_TS писал(а):С исходниками, на ассемблере желательно.
вообще-то, за полноценным проектом следует обращаться в раздел "Работа". там за свои деньги получишь всё, что пожелаешь.[/uquote]
Если-бы мне нужно было именно так - поверьте, именно ТАК я-бы и сделал !!! Слов "прошу сделать для меня" не было - а коли заметили - Укажите - поправлю ! Я-ж прошу лишь ссылки на проекты в открытом доступе для набора информации.
[uquote="Starichok51",url="/forum/viewtopic.php?p=3887081#p3887081"]
Wladimir_TS писал(а):стабильность высокая нужна - видимо будет термокомпенсированный или термостатированный опорник.
ну, и зачем нужна такая офигенная точность? и сколько десятичных знаков тебе нужно в результате?[/uquote]
Но именно так и нужно - стабильности простого кварцевого генератора недостаточно . Но это второй вопрос скорее относящейся к возможности в алгоритме корректировать его в зависимости от частоты такового.
Уход обычного генератора по сравнению с термостатированным я вижу при всего 5 разрядах индикации (из 6 доступных). Грубо говоря имеющимся тахометром измеряю частоту (деленную) от термостатированного опорника.
Re: Тахометр с усреднением
Добавлено: Чт сен 03, 2020 01:00:24
AndTer
[uquote="Wladimir_TS",url="/forum/viewtopic.php?p=3887256#p3887256"]Но основная претензия это смена показаний 1 раз в секунду, а надо быстрее. 3 раза где-то в секунду или 4.[/uquote]
А вы не боитесь что с такой частотой смены показаний цифры будут нечитаемые/невоспринимаемые или просто будут "смазываться" в кашу(в зависимости от дисплея)?
Re: Тахометр с усреднением
Добавлено: Чт сен 03, 2020 01:19:35
Wladimir_TS
Потому ограничиваю смену в 3 раза в секунду. Не быстрее. Подсмотрено на суровых тахометрах. У совсем суровых есть выбор 1-0,5-0,3-0,25 сек Но в данной реализации не актуально. Естественно при периоде более 0,3 сек - время измерение желательно что-б автоматически увеличивалось. Нет лишних органов управления на панели.
Re: Тахометр с усреднением
Добавлено: Чт сен 03, 2020 06:10:35
akl
Метод обратного счета для тахометров, которые, по сути, являются низкочастотными частотомерами хорошо работает. Для Вашего случая при тактовой порядка 5МГц обеспечивает разрешение 0,05об/мин при 60'000об/мин. Поэтому ничего не нужно переключать, разве, что показывать на табло запятую в нужном месте. Схема и программа, выложенная мною выше применяется в тахометре ниже
Спойлер

Вот по теме
https://radiokot.ru/forum/viewtopic.php ... 1%82%D0%B0
Re: Тахометр с усреднением
Добавлено: Чт сен 03, 2020 08:21:24
musor
повысить точность замероф на низких скоростях можно увелияиф число импулсоф датчика на 1 оборот это делается применение оптодатчика и диска обтюратора на валу с болшим цисом шелей или магнитного датчика с болшим чисом полюсоф (гибкий магнит на ободе диска намагниченый соответствено+ХООЛЛ)
при частоте импулсоф от 100гц уже можно применять и усреднение или напротиф экстраполяцию если ресурсоф железа хватит на то...
Re: Тахометр с усреднением
Добавлено: Чт сен 03, 2020 08:38:58
akl
Скорость измерения при увеличении числа импульсов/оборот действительно растет, чего нельзя сказать о точности.
Re: Тахометр с усреднением
Добавлено: Чт сен 03, 2020 11:54:00
jcxz
[uquote="Wladimir_TS",url="/forum/viewtopic.php?p=3887256#p3887256"]Да - необходимо обеспечить такой диапазон измерений. 1-60000 об/мин Потому время измерения естественно не менее периода следования импульсов, но не менее при то 0,3 сек.[/uquote]Единственный способ получать замеры с периодом ==0.3сек при частоте вращения 1 об/мин - это поставить датчик оборотов дающий как минимум 60/0.3 = 200 импульсов/оборот.
Всё остальное это -
мошенничество магия рук или интерполяция (что то же самое).
Добавлено after 2 minutes 20 seconds:
[uquote="musor",url="/forum/viewtopic.php?p=3887322#p3887322"]повысить точность замероф на низких скоростях можно увелияиф число импулсоф датчика на 1 оборот[/uquote]О! Уже написали... только дочитал до сюда...
Добавлено after 1 minute 27 seconds:
[uquote="akl",url="/forum/viewtopic.php?p=3887327#p3887327"]Скорость измерения при увеличении числа импульсов/оборот действительно растет, чего нельзя сказать о точности.[/uquote]Для увеличения точности - усреднять множество отсчётов. Простейший фильтр для этого я уже приводил выше.
Re: Тахометр с усреднением
Добавлено: Чт сен 03, 2020 12:11:49
Wladimir_TS
[uquote="jcxz",url="/forum/viewtopic.php?p=3887419#p3887419"]Единственный способ получать замеры с периодом ==0.3сек при частоте вращения 1 об/мин - это поставить датчик оборотов дающий как минимум 60/0.3 = 200 импульсов/оборот.
Всё остальное это - мошенничество магия рук или интерполяция (что то же самое).[/uquote]
На самом деле всё намного проще - достаточно ВНИМАТЕЛЬНО прочитать всего лишь одну страницу форума с этой темой. Главное ВНИМАТЕЛЬНО...
Re: Тахометр с усреднением
Добавлено: Чт сен 03, 2020 12:19:01
jcxz
[uquote="Wladimir_TS",url="/forum/viewtopic.php?p=3887427#p3887427"]На самом деле всё намного проще - достаточно ВНИМАТЕЛЬНО прочитать всего лишь одну страницу форума с этой темой. Главное ВНИМАТЕЛЬНО...[/uquote]да прочитали уж:
[uquote="Wladimir_TS",url="/forum/viewtopic.php?p=3886343#p3886343"]Разыскиваю варианты программной реализации тахометра с диапазоном измерений от 1 до 60000 об/мин из рассчета 1 импульс на оборот[/uquote][uquote="Wladimir_TS",url="/forum/viewtopic.php?p=3886343#p3886343"]Нужно обновление показаний не менее 3х в секунду.[/uquote]
1 об/мин + 1 импульс/оборот + обновление не реже 3Гц -
ФИЗИЧЕСКИ НЕРЕАЛИЗУЕМЫЕ ТРЕБОВАНИЯ. Каким бы крупным шрифтом вы их не писали - они реализуемей не станут.
В школу что-ль сходите для начала.
