Обновить

Тип данных Real и его расхождение с реальностью при определении расстояния с помощью инкрементального энкодера

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели5.6K
Всего голосов 5: ↑5 и ↓0+5
Комментарии8

Комментарии 8

Эм...
Т.е. вы вместо того чтобы считать текущее положение в тиках энкодера, храня его целым числом (скажем 64 битным, и не забывая обнулять по датчику начального положения), и по мере надобности переводя его в координаты в метрах, интегрируете приращения координаты уже в метрах, на каждом шагу добавляя неизбежную вычислительную погрешность...

Но зачем?

Финал конечно немного шокировал. Вместо логичного вывода, что нужно хранить отсчеты в целочисленном типе, замена float на double выглядит как заметание проблемы под ковер.

Поменять тип одной переменной быстрее, чем переписывать несколько блоков, меняя алгоритм вычисления, учитывая, что оборудование в эксплуатации, а главный принцип местных экспуатационщиков - работает, и не лезь) Но, если будет время на тестирование, может, и в самом деле лучше переделать на хранение в DInt, с преобразованием в Real в каждом цикле общего количества, а не приращений. Кстати, на предыдущем поколении подъемных машин этого же производителя сделано именно так

А зачем знать мгновенное положение каждые 50мс? Вообще лучше брать не приращения импульсов, а суммарное количество, единственно что в момент перехода на другой слой навивки менять диаметр d. Но этот момент можно отловить по количеству импульсов - если Nимп >N1 то d=d1 итд.

.

Геофизики используют магнитные метки на броне кабеля в каротаже для коррекции погрешностей глубины (растяжения).

Я бы применил линейный абсолютный энкодер с кодами на основе битовых последовательнотей полученых алгоритмом вacktracking.
Такие применяются в лифтах с высокой надежностью позиционирования.

Как я понял, вы считаете обороты вала. И как-то компенсируете увеличивающийся радиус намотки. Не проще ли привязать энкодер к самому тросу? Я понимаю, что с точки зрения механики проще считать обороты вала, но все же.

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации