Алгоритм подсчета оборотов из периода

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
vlad145
Встал на лапы
Сообщения: 130
Зарегистрирован: Пт мар 06, 2009 22:54:37
Откуда: Курган
Контактная информация:

Re: Алгоритм подсчета оборотов из периода

Сообщение vlad145 »

Ещё вопрос, а как сделать подсчет не раз в секунду а допустим раз в две или пять секунд?
Владимир
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Алгоритм подсчета оборотов из периода

Сообщение Аlex »

Не понятен вопрос. Вы хотите мерить частоту, или всё-таки период ?
vlad145
Встал на лапы
Сообщения: 130
Зарегистрирован: Пт мар 06, 2009 22:54:37
Откуда: Курган
Контактная информация:

Re: Алгоритм подсчета оборотов из периода

Сообщение vlad145 »

Изначально задача стояла в подсчете оборотов кулера.



На данный момент добился показаний, но не стабильных. Прыгают раз в секунду от 1700 до 2600.
Последний раз редактировалось vlad145 Чт сен 01, 2011 12:37:18, всего редактировалось 1 раз.
Владимир
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Алгоритм подсчета оборотов из периода

Сообщение Аlex »

Я понял что обороты. Но можно мерить частоту (кол-во колебаний за еденицу времени), а можно период (время между фронтами).
Я думал что дал довольно исчерпывающий ответ. Оказывается Вы ничего из этого ответа не поняли...
vlad145
Встал на лапы
Сообщения: 130
Зарегистрирован: Пт мар 06, 2009 22:54:37
Откуда: Курган
Контактная информация:

Re: Алгоритм подсчета оборотов из периода

Сообщение vlad145 »

Я думаю что всё таки период.
Владимир
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Алгоритм подсчета оборотов из периода

Сообщение Аlex »

vlad145 писал(а):Я думаю что всё таки период.
Тогда к чему такой вопрос
как сделать подсчет не раз в секунду а допустим раз в две или пять секунд
?
Не понятно... :dont_know:
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

Re: Алгоритм подсчета оборотов из периода

Сообщение clawham »

очень просто - создаёш массив например на 50 значений....в основном цикле каждые пол секунды суммируеш все элементы массива и делиш их на кол-во массива
а в прерывании внешнем - расчитываеш скорость вращения по периоду и записываеш в следующий элемент массива....вот и всё...будет тебе усреднение
хотя....скорее всего проблема в дребезге....нужно собрать на любом таймере простейший одновибратор который будет выдавать четкий прямоугольный импульс каждый раз когда приходит непонятно что с вентилятора
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Алгоритм подсчета оборотов из периода

Сообщение Аlex »

clawham писал(а):а в прерывании внешнем - расчитываеш скорость вращения по периоду
Бешанные умножения и деления ? Ню-ню... в перёд... Отличный совет :)))
Единственное, что можно в ОП позволить себе, это сдвинуть массив и записать текущий период в конец массива. И то, если массив будет небольшого размера и время его обработки будет не критичным.
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

Re: Алгоритм подсчета оборотов из периода

Сообщение clawham »

я имел ввиду считать длительность периода и занести в массив
а все расчеты в основном цикле при выводе собственно показания
деление вообще будет одно на 50 например а можно и на 32 тогда можно и сдвигом делить....это мелочи....впрочем...я с пиками не знаком....они кардинально отличаются от авров судя по внутреннему устрою
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Алгоритм подсчета оборотов из периода

Сообщение Аlex »

я имел ввиду считать длительность периода и занести в массив
и
расчитываеш скорость вращения по периоду и записываеш в следующий элемент массива
совсем разные вещи :)
Ну или, видимо, я Вас не так понял.

деление вообще будет одно на 50 например а можно и на 32 тогда можно и сдвигом делить....
Это понятно, но я , когда говорил про деления и умножения, имел ввиду вычисление скорости из периода, а не усреднение.
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

Re: Алгоритм подсчета оборотов из периода

Сообщение clawham »

а что есть скорость ?
засуммировали через стек из 32 значений а в осн цикле - засумировали, поделили на 32 - получили усредненный период
дальше
у нас надо мерить в 60-ns[ кратах
думается мне что для частот до 10000 об/мин мы получим частоту импульсов = 10000/60=166 герц....
в итоге числа можно на порядок уменьшить если взять затактовать таймер на 32 килогерца...делитемями выставить
так будет проще или..например умножение на 60 заложить в частоту таймера...заранее подразумевая что там частота в 60 раз меньше - тогда не надо умножать на 60 а нужно просто правильно рассчитать константу времени
ну и не забыть что константа времени должна быть в 32 раза больше реального клока таймера в секунду

при 32-х килогерцах мы получим погрешность поразрядную = +- 30 микросекунд - это крайне малый процент от 166 герц предельных(для 10000 оборотов).....6024 микросекунды между импульсами тоесть на экране при отображении мы получим +- 1/200 % погрешности.....теоретической расчетной...сюда конечно же сключим рассинхронизацию, задержку на прерывание, неправильное определение фронта и так далее....но триггером шмидта и одновибратором это решается....а ещё тактовая должна быть стабильной....для себя обнаружил что кварц 16.000 мегагерц это полный отстой...вот 16.00000 это гораздо веселее...ну а задержку на прерывание можно компенсировать использованием режима захвата по управляющему входу таймера если конечно такой режим предусмотрен

в общем полно места для творчества
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Алгоритм подсчета оборотов из периода

Сообщение Аlex »

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

Дальше, по Вашему тексту, ничего не понятно. Все слито в кучу, ни одного знака препинания. Очень тяжело читать и разбираться. :roll:
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

Re: Алгоритм подсчета оборотов из периода

Сообщение clawham »

короче....вам нужен частотомер - берите прошивку из темы чифровой ваттметр.....заодно и почитаете - -там расписан весь процесс создания
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25154
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Алгоритм подсчета оборотов из периода

Сообщение КРАМ »

Аlex писал(а):Единственное, что можно в ОП позволить себе, это сдвинуть массив и записать текущий период в конец массива.....

Зачем сдвигать, Алекс? И что такое конец массива, когда следующим шагом будет сделано НЕВЗВЕШЕННОЕ УСРЕДНЕНИЕ?
Нужно просто тупо писать в массив по кругу. И находить среднее после каждой записи в массив. Это называется ФНЧ с КИХ и прямоугольным окном. Полоса пропускания такого фильтра будет обратна длительности накопления, а порядок фильтра - длине массива.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Алгоритм подсчета оборотов из периода

Сообщение Аlex »

"конец массива" - это я не правильно выразился, ссори. Имеется ввиду крайний элемент массива. Он может быть и концом и началом.
Сдвинули весь массив, в край вдвинули новое и т.д... Тем самым, в массиве, мы имеем n-ное кол-во последних выборок.
Хотя, запись по кругу даст такой-же результат, согласен. Обработка будет выполняться на много быстрее. Не приходил ещё на ум такой метод, спасибо :wink:
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25154
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Алгоритм подсчета оборотов из периода

Сообщение КРАМ »

Этот метод годится только для прямоугольного окна. Но и для взвешенного окна (например "косинус на пъедестале") не требуется ничего сдвигать. Достаточно ПЕРЕСЧИТАТЬ АДРЕС (указатель массива) - сделать начальное смещение на текущий адрес записи с контролем переполнения на краю массива (физического адреса края массива) для обработки. А писать продолжать по кругу.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»