Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Тахометр с усреднением

Вт сен 01, 2020 00:55:28

Разыскиваю варианты программной реализации тахометра с диапазоном измерений от 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

Как вариант на m8515 c LCD
TAHOM_60000.zip
схема, исходник, hex
(27.86 KiB) Скачиваний: 310

Re: Тахометр с усреднением

Вт сен 01, 2020 07:33:21

Спасибо большое - буду вникать.

Re: Тахометр с усреднением

Вт сен 01, 2020 08:05:31

можешь от этого оттолкнуться:
код С
принцип работы - замер времени между импульсами (количество импульсов подбирается автоматически чтобы обеспечить наилучшую точность при допустимом быстродействии)
(в протеусовском файле от прошлого проекта клавиатура осталась - тут она не используется)
кнопкой диапазон переключается скорость хода Т1 - и смещается диапазон измерения (прямо во время работы устройства).
диапазон, правда меньше твоего, но это поправимо.
Вложения
taho2313.zip
(135.12 KiB) Скачиваний: 284

Re: Тахометр с усреднением

Вт сен 01, 2020 10:10:06

Wladimir_TS писал(а):На AVR желательно
Не лучший выбор с его примитивными таймерами.
Лучше STM32 с работой таймера с режиме ШИМ захвата с одним из каналов сравнения для таймаута.
Если высокая точность не нужна достаточно 16-ти битного таймера (будет грубо измерять на высоких оборотах). Если важна точность, берите МК с 32-ух битным таймером.

Re: Тахометр с усреднением

Вт сен 01, 2020 16:01:45

Просто фронты сигнала с датчика дрожат. На малух скоростях не видно, а на больших актуально. Нужно обновление показаний не менее 3х в секунду.
Так пропустите их через элементарный фильтр:
Код:
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 писал(а):На AVR желательно
Не лучший выбор с его примитивными таймерами.
Лучше STM32 с работой таймера с режиме ШИМ захвата с одним из каналов сравнения для таймаута.
Если высокая точность не нужна достаточно 16-ти битного таймера (будет грубо измерять на высоких оборотах). Если важна точность, берите МК с 32-ух битным таймером.


STM зело сложный для меня процессор - слишком много слишком сложной и навёрнутой перефирии, так что AVR на крайняк PIC или 8051

И увы СИ лишком пока сложен и слабо воспринимаем для меня - на AVR еще как-то понятно -но перефрия других требует зело вдумчивого осмысления.

Задача - стабильные показания при дрожании фазы и периодическом пропуске импульсов на больших скоростях - датчик сильно колбасит.


При счете за 1 сек - показания относительно стабильные - но реакция медленноватая.

Добавлено after 11 minutes 33 seconds:
можешь от этого оттолкнуться:
код С


Очень много буков - понятно немногое - при беглом просмотре не нашел даже 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

Мурик есть люди которым тяжело изучать Си и новые МК, либо просто не хотят. Если они изучили AVR и ассемблер на нем и программируют.

Re: Тахометр с усреднением

Ср сен 02, 2020 10:11:04

Wladimir_TS, попробую объяснить принцип на картинках
СпойлерИзображение
Замер производится обратным методом (считается не количество импульсов на ед. времени, а наоборот - период следования импульсов)
недостатки метода:
1) требование к стабильности следования импульсов
2) с повышением частоты снижается точность измерения (увеличивается дискретность, т.к. шаг таймера растёт по отношению к измеряемому периоду)
3) невозможность определения останова
решения, помогающие избавится от этих недостатков:
1, 2) если считать период не одного импульса а нескольких, то эти 2 проблемы нивелируются
3) решается добавлением принудительного прерывания ожидания импульса (по таймеру).
реализация:
1, 2) удобнее всего применить кольцевой буфер, заполнять который по событию прихода импульса, а читать и высчитывать скорость - по требованию (складывать периоды нужно от последнего записанного к предпоследнему и дальше, до тех пор, пока не наберётся период, обеспечивающий требуемую точность или пока не кончится буфер)
3) обеспечивает тот-же таймер, что считает периоды следования импульсов (либо переполнением либо по регистру совпадения, в зависимости от того, как реализован его ход - со сбросом накопления после каждого импульса или по кольцу без сброса).
______________
на последнем рисунке показано, что набрать требуемое число периодов можно в любой момент (не обязательно ждать заполнения буфера по новой)
Вложения
P_20200902_083827.jpg
(28.46 KiB) Скачиваний: 295

Re: Тахометр с усреднением

Ср сен 02, 2020 18:18:27

Wladimir_TS писал(а):на малых частотах (1-60 имп/мин)
если 1 импульс в минуту, это минимум 1 минуту ждать, когда скорость измерится.
что тут можно выводить не менее 3х в секунду?
Wladimir_TS писал(а):С исходниками, на ассемблере желательно.
вообще-то, за полноценным проектом следует обращаться в раздел "Работа". там за свои деньги получишь всё, что пожелаешь.
Wladimir_TS писал(а):стабильность высокая нужна - видимо будет термокомпенсированный или термостатированный опорник.
ну, и зачем нужна такая офигенная точность? и сколько десятичных знаков тебе нужно в результате?

Re: Тахометр с усреднением

Чт сен 03, 2020 00:21:07

Wladimir_TS, попробую объяснить принцип на картинках


Вы правы - именно так - надо при низких частотах измерять период, но приросте автоматически переходить на измерение - количества импульсов за период или как вы предложили период нескольких импульсов. Желательно как-то это автопереключать, но по скудоумию сам я не сдюжу программу таковую, потому-б на чужие деяния посмотреть, авось что и соберется в кучку.

Грубо говоря есть тахометр исходный - там используется некая схема умножения частоты при низких частотах и прямое измерение за 1 сек при высоких - корпусов 60 где-то без схем. Но основная претензия это смена показаний 1 раз в секунду, а надо быстрее. 3 раза где-то в секунду или 4.

Соответственно вместо всего этого поставить один ОМК AVR (какой знаю) и с него на индикацию в формате 1-2-4-8-10-20-40-80-....

Диапазон да - широкий - но в 4х поддиапазонах

Ясно дело готового не будет - потому варианты смотрю как да куда да откуда.

Добавлено after 16 minutes 22 seconds:
Wladimir_TS писал(а):на малых частотах (1-60 имп/мин)
если 1 импульс в минуту, это минимум 1 минуту ждать, когда скорость измерится.


Да - необходимо обеспечить такой диапазон измерений. 1-60000 об/мин Потому время измерения естественно не менее периода следования импульсов, но не менее при то 0,3 сек.

Wladimir_TS писал(а):С исходниками, на ассемблере желательно.
вообще-то, за полноценным проектом следует обращаться в раздел "Работа". там за свои деньги получишь всё, что пожелаешь.


Если-бы мне нужно было именно так - поверьте, именно ТАК я-бы и сделал !!! Слов "прошу сделать для меня" не было - а коли заметили - Укажите - поправлю ! Я-ж прошу лишь ссылки на проекты в открытом доступе для набора информации.

Wladimir_TS писал(а):стабильность высокая нужна - видимо будет термокомпенсированный или термостатированный опорник.
ну, и зачем нужна такая офигенная точность? и сколько десятичных знаков тебе нужно в результате?


Но именно так и нужно - стабильности простого кварцевого генератора недостаточно . Но это второй вопрос скорее относящейся к возможности в алгоритме корректировать его в зависимости от частоты такового.


Уход обычного генератора по сравнению с термостатированным я вижу при всего 5 разрядах индикации (из 6 доступных). Грубо говоря имеющимся тахометром измеряю частоту (деленную) от термостатированного опорника.

Re: Тахометр с усреднением

Чт сен 03, 2020 01:00:24

Но основная претензия это смена показаний 1 раз в секунду, а надо быстрее. 3 раза где-то в секунду или 4.

А вы не боитесь что с такой частотой смены показаний цифры будут нечитаемые/невоспринимаемые или просто будут "смазываться" в кашу(в зависимости от дисплея)?

Re: Тахометр с усреднением

Чт сен 03, 2020 01:19:35

Потому ограничиваю смену в 3 раза в секунду. Не быстрее. Подсмотрено на суровых тахометрах. У совсем суровых есть выбор 1-0,5-0,3-0,25 сек Но в данной реализации не актуально. Естественно при периоде более 0,3 сек - время измерение желательно что-б автоматически увеличивалось. Нет лишних органов управления на панели.

Re: Тахометр с усреднением

Чт сен 03, 2020 06:10:35

Метод обратного счета для тахометров, которые, по сути, являются низкочастотными частотомерами хорошо работает. Для Вашего случая при тактовой порядка 5МГц обеспечивает разрешение 0,05об/мин при 60'000об/мин. Поэтому ничего не нужно переключать, разве, что показывать на табло запятую в нужном месте. Схема и программа, выложенная мною выше применяется в тахометре ниже
СпойлерИзображение

Вот по теме
https://radiokot.ru/forum/viewtopic.php ... 1%82%D0%B0

Re: Тахометр с усреднением

Чт сен 03, 2020 08:21:24

повысить точность замероф на низких скоростях можно увелияиф число импулсоф датчика на 1 оборот это делается применение оптодатчика и диска обтюратора на валу с болшим цисом шелей или магнитного датчика с болшим чисом полюсоф (гибкий магнит на ободе диска намагниченый соответствено+ХООЛЛ)
при частоте импулсоф от 100гц уже можно применять и усреднение или напротиф экстраполяцию если ресурсоф железа хватит на то...

Re: Тахометр с усреднением

Чт сен 03, 2020 08:38:58

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

Re: Тахометр с усреднением

Чт сен 03, 2020 11:54:00

Да - необходимо обеспечить такой диапазон измерений. 1-60000 об/мин Потому время измерения естественно не менее периода следования импульсов, но не менее при то 0,3 сек.
Единственный способ получать замеры с периодом ==0.3сек при частоте вращения 1 об/мин - это поставить датчик оборотов дающий как минимум 60/0.3 = 200 импульсов/оборот.
Всё остальное это - мошенничество магия рук или интерполяция (что то же самое).

Добавлено after 2 minutes 20 seconds:
повысить точность замероф на низких скоростях можно увелияиф число импулсоф датчика на 1 оборот
О! Уже написали... только дочитал до сюда... :)

Добавлено after 1 minute 27 seconds:
Скорость измерения при увеличении числа импульсов/оборот действительно растет, чего нельзя сказать о точности.
Для увеличения точности - усреднять множество отсчётов. Простейший фильтр для этого я уже приводил выше.

Re: Тахометр с усреднением

Чт сен 03, 2020 12:11:49

Единственный способ получать замеры с периодом ==0.3сек при частоте вращения 1 об/мин - это поставить датчик оборотов дающий как минимум 60/0.3 = 200 импульсов/оборот.
Всё остальное это - мошенничество магия рук или интерполяция (что то же самое).


На самом деле всё намного проще - достаточно ВНИМАТЕЛЬНО прочитать всего лишь одну страницу форума с этой темой. Главное ВНИМАТЕЛЬНО...

Re: Тахометр с усреднением

Чт сен 03, 2020 12:19:01

На самом деле всё намного проще - достаточно ВНИМАТЕЛЬНО прочитать всего лишь одну страницу форума с этой темой. Главное ВНИМАТЕЛЬНО...
да прочитали уж:
Разыскиваю варианты программной реализации тахометра с диапазоном измерений от 1 до 60000 об/мин из рассчета 1 импульс на оборот
Нужно обновление показаний не менее 3х в секунду.

1 об/мин + 1 импульс/оборот + обновление не реже 3Гц - ФИЗИЧЕСКИ НЕРЕАЛИЗУЕМЫЕ ТРЕБОВАНИЯ. Каким бы крупным шрифтом вы их не писали - они реализуемей не станут.
В школу что-ль сходите для начала. :dont_know:
Ответить