|
Тахометр на AVR, тонкости алгоритма |
|
|
|
 |
Ответов
|
Sep 5 2005, 11:21
|
Участник

Группа: Свой
Сообщений: 56
Регистрация: 25-06-05
Пользователь №: 6 300

|
Для того, чтобы получить фиксированную величину неравномерность получаемых значений, необходимо иметь фиксированную длину буфера. Ждать когда заполнится буфер - несерьезно. Буфер надо организовать кольцевой и усреднять его в необходимые моменты времени для индикации. Правда такой подход будет работать с инерционностью равной времени заполнения буфера.
|
|
|
|
|
Sep 5 2005, 19:07
|

Профессионал
    
Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807

|
После серии экспериментов удалось прийти к следующим выводам: 1. Применение только программных ФНЧ с дополнительным последующим усреднением последних 16 отсчетов буфера недостаточно для нормального отображения данных пользователю. Как не подстраивай постоянную времени фильтра, результат будет или сильно запаздывать, или цифры "бегать". Можно было бы попытаться сделать постоянную времени адаптивной на основе выходных данных ФНЧ, но мне не показалось, что это перспективный путь... 2. Наверное единственное решение - "загрублять" показания перед выводом на LCD. Вычислять среднее значение последних n отсчетов и определять текущие допуски вверх и вниз для этих отсчетов. Допустим, после такой обработки получены данные: 1000 об/мин +10 об/мин -20 об/мин. На дисплей выводим 1000 об/мин. Каждый новый отсчет записывается в буфер и проверяется на значение в допуске 980...1020 об/мин. Если значение в допуске, на индикаторе сохраняется показание 1000 об/мин., иначе содержимое буфера с записанным новым отсчетом перерассчитывается и получаются новые среднее значение и новые допуски. Таким образом, если приходит новый "похожий" на предыдущие отсчет, это не требует изменения показаний LCD. 3. Сами допуски я рассчитывал как среднеквадратическое отклонение от среднего для всех отсчетов больших среднего и соотв. меньших. Можно было бы вообще за допуск "вверх" и "вниз" от среднего брать величину самого большого по величине отсчета, но это ведь не учитывает статистику других отсчетов буфера... 4. Хотя во внутреннем представлении микроконтроллера результат тахометра все равно изменяется часто, на LCD выводим три раза в секунду.
В принципе после всего этого, удалось получить приемлемую работу прибора. Но достичь иллюзии поведения стрелочного тахометра в части отображения при максимальной достоверности показаний полностью не удалось...
|
|
|
|
|
Sep 7 2005, 15:00
|

Профессионал
    
Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264

|
Цитата(ivainc1789 @ Sep 5 2005, 23:07) 4. Хотя во внутреннем представлении микроконтроллера результат тахометра все равно изменяется часто, на LCD выводим три раза в секунду. В принципе после всего этого, удалось получить приемлемую работу прибора. Но достичь иллюзии поведения стрелочного тахометра в части отображения при максимальной достоверности показаний полностью не удалось... Частоты вывода 3-раза в секунду - недостаточно!!! Вы 'проглатываете' много промежуточных значений (которые также создают эффект линиаризации). Вывод должен быть в три раза чаще (8 - 12 раз в секунду). А при усреднении равномерность у Вас такая же, как и у стрелочника (однозначно). Просто работает психо-визуальный эффект восприятия нестандартной информации.
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|
|
|
|
Сообщений в этой теме
ivainc1789 Тахометр на AVR Sep 1 2005, 18:22 _sR_ Цитата(ivainc1789 @ Sep 1 2005, 21:22)Хотелос... Sep 1 2005, 20:16 yung Стрелочный амперметр представляет собой интегратор... Sep 1 2005, 20:52 CDT В программе Sonic Foundry Sound Forge есть линейны... Sep 2 2005, 03:58 BVU Да просто вычисляйте среднее значение своих измере... Sep 2 2005, 05:16 bzx BVU сделал вполне уместное замечание. Надо увеличи... Sep 2 2005, 07:33 ivainc1789 Цитата(BVU @ Sep 2 2005, 08:16)Да просто вычи... Sep 2 2005, 15:30  yung Медианный фильтр. Смысл - все элементы массива упо... Sep 2 2005, 20:51   ivainc1789
Индикация - абсолютно отдельный постпроцесс. Вед... Sep 7 2005, 17:33 lolikandr Странно, что вообще есть большие отклонения. С как... Sep 7 2005, 14:48 ivainc1789 Цитата(lolikandr @ Sep 7 2005, 17:48)Странно,... Sep 7 2005, 17:14 Айский Все-таки читаемость аналоговых индикаторов гораздо... Jun 24 2006, 18:22 white.wind А может быть использовать пишалку или светодид миг... Jun 27 2006, 09:20 vooon Кстати зря отметаете стрелочный индикатор
только с... Jun 28 2006, 21:05
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|