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

Усреднение значений энкодера

Обрабатывая сигналы от ветряка, аналогичные экондерным, усредняли синус уголка, и вычисляли арксинус.

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


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

В промышленных CNC Для определения положения по датчику применяются коррекции записанные в файлы (таблицы). Для движения вперёд, назад, температурная и прочие. Шаг таблицы и значения определяются при калибровке станка. (например лазерным имерителем). Используется кусочно линейная апроксимация.

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


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

Весь диапазон значений энкодера 0...16384 разбиваем на 2 участка, на одном считаем, что число беззнаковое, на другом переводим в число со знаком, усредняем, и затем преобразуем обратно. Участки - поделим диапазон пополам:

0...4096 - со знаком

4096...12288 - без знака

12288...16384 - со знаком (-4096...0)

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

Например, значение приближается к 12288 - переключаемся на расчет со знаком, превращаем значение в -4096. Вряд ли погрешность энкодера составит 1/4 оборота, так, что текущее значение выскочит за пределы -8192.

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


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

#define N 5
uint16_t x[N]; // их будем усренять

int16_t s;
int16_t i;
s=0;
for(i=1;i<N;i++)
{
  s+=(int16_t)((x[i]-x[0]+0x2000)&0x3fff)-0x2000;
}
if(s>0) s=(s+N/2)/N; // деление с округлением к ближайшему
else s=(s-N/2)/N;
r=x[0]+s; // результат

Для правильной работы при очень быстром вращении лучше сделать int32_t s;

 

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


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

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

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

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

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

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

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

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

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

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