Перейти к содержанию
    

Быстрое деление в AVR - Как?

45 минут назад, artemkad сказал:

из всех 12 тысяч отображений информативным будет только одно - измеренное и усредненное за 10 минут. А все остальное будет бессмысленное мельтешение цифр.

Какие "12 тыс. отображений"? Какие "10 минут"? Вы о чём??? Нужно отображать обороты. С указанной дискретностью и указанной реалтаймовостью. Хоть 12 тыс., хоть 12 миллионов раз.

Попробуйте ещё раз перечитать и попытаться понять написанное. А потом: всё-таки - ответить на поставленный вопрос.

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


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

5 минут назад, jcxz сказал:

Какие "12 тыс. отображений"?

Для измерения с точностью в 0.1 rpm необходимо измерение в течение 10 минут. А это значит, что все отображаемые измерения за этот период (20*60*10=12000) не удовлетворяют требованию по точности.

9 минут назад, jcxz сказал:

С указанной дискретностью и указанной реалтаймовостью.

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

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


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

33 минуты назад, artemkad сказал:

Для измерения с точностью в 0.1 rpm необходимо измерение в течение 10 минут. А это значит, что все отображаемые измерения за этот период (20*60*10=12000) не удовлетворяют требованию по точности.

Это по вашему способу необходимо. А если измерять период импульсов - то никаких 10 минут не нужно. А нужна только необходимая дикретность/точность опорного таймера. И стабильность вращения. О чём и речь. Почему ваш способ и не подходит для такой задачи. 

33 минуты назад, artemkad сказал:

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

Не нужно ничего урезать. Измерение периода всё решает. И даже ещё и фильтровать позволяет, без потери реалтаймовости.

Ещё раз подумайте.

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


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

On 7/24/2024 at 1:14 PM, jcxz said:

Не нужно ничего урезать. Измерение периода всё решает. И даже ещё и фильтровать позволяет, без потери реалтаймовости.

Преобразование периода в частоту - нелинейное преобразование.
Погрешность измерения на краях диапазона будет разная.

 

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


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

Я когда то делал так:

За секунду подсчитывал количество импульсов.

Измерял время прихода каждого последнего импульса.

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

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


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

7 минут назад, dOb сказал:

Измерял время прихода каждого последнего импульса.

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

Это и есть - измерение частоты вращения путём измерения периода следования импульсов.

А измеряя за несколько периодов, вы просто смешали измерение с фильтрацией. Но лучше/гибче фильтрацию делать математикой в CPU. Подавая на вход усреднителю измерения отдельных периодов.

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


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

42 минуты назад, jcxz сказал:

А если измерять период импульсов - то никаких 10 минут не нужно.

Нужно. Потому как точность такого одного измерения будет примерно равна значению измеренного(точнее при усреднении как 1/Тизм). Иначе говоря даже измеряя период каждого  такта и усредняя их, до точности в 0.1 rpm можно добраться только за 10 минут.

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


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

On 7/24/2024 at 1:57 PM, jcxz said:

А измеряя за несколько периодов, вы просто смешали измерение с фильтрацией. Но лучше/гибче фильтрацию делать математикой в CPU. Подавая на вход усреднителю измерения отдельных периодов.

При измерении периода существенное влияние на погрешность оказывает неучтенное время между фронтом измеряемого сигнала и фронтом измерительного сигнала в начале и в конце измерения.
Если производить измерение за несколько периодов, то вклад этой погрешности будет существенно меньше, чем если измерять за один период.
Чем большее количество периодов производится измерение, тем меньше вклад этой погрешности.

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


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

4 hours ago, jcxz said:

ТС вроде даже не рассказывал: какой датчик оборотов он использует и какие скорости вращения с какой точностью нужно измерять

Вы угадали про датчик: 

 

4 hours ago, jcxz said:

используются датчики Холла (дискретные)

Обороты от 3...5 до 200 об/сек, точность больше важна для управления, а не для индикации. В целом, точность до 1об/сек, т.е. плюс/минус пол оборота.

 

4 hours ago, jcxz said:

Может его датчик даёт один импульс на оборот?

4 импульса/оборот

 

4 hours ago, jcxz said:

Может есть неравномерности вращения, вибрации, которые нужно сгладить

Нет, у ротора большая инерция. Это привод токарного станка, коллекторный движок 220 В, 1600 Вт.

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


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

On 7/24/2024 at 2:01 PM, artemkad said:

Нужно. Потому как точность такого одного измерения будет примерно равна значению измеренного(точнее при усреднении как 1/Тизм). Иначе говоря даже измеряя период каждого  такта и усредняя их, до точности в 0.1 rpm можно добраться только за 10 минут.

Для повышения точности можно измерительную частоту увеличить до небес.
Тут больше на точность измерения влияет соотношение измеряемой частоты и измерительной.
Если измерительная частота не высокая, то выгоднее измерение производить в течении нескольких периодов измеряемого сигнала.

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


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

16 минут назад, artemkad сказал:

Нужно. Потому как точность такого одного измерения будет примерно равна значению измеренного(точнее при усреднении как 1/Тизм). Иначе говоря даже измеряя период каждого  такта и усредняя их, до точности в 0.1 rpm можно добраться только за 10 минут.

Бред.

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

Если речь об МК, в котором таймер тактируется частотой 144MHz, то любые измерения выполняемые по этому таймеру, будут иметь дискретность = 1/144e+6 сек.

 

Если следовать вашей логике, то измеряя по секундомеру время прохождения бегуном дистанции марафона, точность такого измерения будет равна +- несколько часов (время прохождения дистанции). Что является явным бредом. Точность здесь будет определяться ценой деления шкалы секундомера.

Попробуйте наконец-то включить голову!

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


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

6 минут назад, dimka76 сказал:

Для повышения точности можно измерительную частоту увеличить до небес.

Не поможет. Измерение периода это точечная оценка, а измерение частоты это интегральная оценка. Они взаимны только для гарантированной  константы.

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


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

12 минут назад, dimka76 сказал:

При измерении периода существенное влияние на погрешность оказывает неучтенное время между фронтом измеряемого сигнала и фронтом измерительного сигнала в начале и в конце измерения.

ничего не понял..... разница между одним фронтом и другим? Так ведь именно она и измеряется - разница между очередным фронтом и следующим. И что за "неучтённое время"?

12 минут назад, dimka76 сказал:

Если производить измерение за несколько периодов, то вклад этой погрешности будет существенно меньше, чем если измерять за один период.
Чем большее количество периодов производится измерение, тем меньше вклад этой погрешности.

Я об этом и писал: это добавление этапа фильтрации к этапу самого измерения. И здесь есть существенный минус у такой практики - ухудшение реалтаймовости. То же самое можно делать, производя фильтрацию уже измеренных данных, в CPU. Тогда степень фильтрации будет примерно такая же, но реалтаймовость не уменьшится.

Измерять длительность нескольких импульсов оправдано только при их относительно высокой частоте и слабости измерительной системы (если ей не хватает быстродействия). Очевидно здесь не тот случай.

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


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

7 минут назад, jcxz сказал:

Если речь об МК, в котором таймер тактируется частотой 144MHz, то любые измерения выполняемые по этому таймеру, будут иметь дискретность = 1/144e+6

И что? Представь себе, что частота оборотов достигла минимального значения в 0.1 rpm - как тактирование с частотой 144МГц поможет измерить эту величину быстрее чем за 10 минут?

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


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

16 минут назад, MPetrovich сказал:

Нет, у ротора большая инерция. Это привод токарного станка, коллекторный движок 220 В, 1600 Вт.

А вес обрабатываемой болванки?

При такой мощности привода и неравномерности нагрузки (резец может вгрызаться в металл или лететь по воздуху) - инерция имхо совсем невелика. И неравномерность должна быть существенной. Если конечно обрабатываемая болванка у вас весит не несколько тонн.

5 минут назад, artemkad сказал:

И что? Представь себе, что частота оборотов достигла минимального значения в 0.1 rpm - как тактирование с частотой 144МГц поможет измерить эту величину быстрее чем за 10 минут?

Вы видимо из тех чукчей, которые "не читатели":

3 часа назад, jcxz сказал:

Обороты = не 1rpm, а пускай - около ~600 rpm. Нормально? Измерять нужно с точностью/дискретностью = ~0.1rpm.

Советую перечитывать выделенное до просветления.

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...