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

Какие алгоритмы измерения расстояния используются в лазерных рулетках

>> solve(n1*p1 + f1 == n2*p2 + f2) ?

n2= (n1*p1 + f1 - f2)/p2

Затем простой перебор n1=0,1,2, и тд пока n2 не станет целым с заданной точностью. Шум есть всегда, поэтому применяют 3 частоты. так надёжней

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


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

Схемотехника большинства дальномеров оставляет желать лучшего. И там, где используются заказные микросхемы - худшие варианты исполнений. Громкость имен ни о чем не говорит, одинаково плохо делают и Leica, и Bosch, и ... Классика жанра, синтезатор + два смесителя + компаратор или АЦП, - схема простая, но недостатков столько, что замучаешься математикой исправлять (если вообще исправимо). Достаточно вместо смесителя поставить 2-х канальный широкополосный АЦП с оцифровкой на ПЧ, и сразу все проблемы решаются. Причем АЦП не обязательно должен много стоить и потреблять, достаточно 8-10 бит с частотой дискретизации 10-20 МГц (сколько контроллер позволяет).

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


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

Что то до меня не доходит f1 f2 это измеренные значения? По графику на картинке выше, у меня сейчас есть два значения фазы измеренные от 0 до 60000 = от 0 до 180 градусов. Зеленая линия это разница фаз между опорным и отраженным 45Мгц а красная линия разница между опорным и отраженным 30Мгц. Эти значения поступают в микроконтроллер с периодом 100гц.

Для примера(значения измеренные с устройства):

Беру точку расстояние фактическое 1метр значение F_dleta_45mhz = f1_45mhz_reference - f1_45Mhz_reflection = 36352; и F_dleta_30mhz = f1_30mhz_reference - f1_30Mhz_reflection = 24792; fatan = atan2(36352,24792)= 0.9723; контроллер получает эти данные 100 раз в секунду.

Небольшое расстояние без проблем можно подсчитать измерить две точки с разницей 1м и разделить K_MUL = 1000мм/ F_dleta_45mhz_2м-F_dleta_45mhz_1м потом просто умножать F_dleta_45mhz * K_MUL. А как ваш способ применить?

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


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

от 0 до 180 градусов быть не может. Либо 0 - 360 либо -180 - +180. Сдвиг по фазе надо правильно мерять :)

 

Достаточно вместо смесителя поставить 2-х канальный широкополосный АЦП с оцифровкой на ПЧ, и сразу все проблемы решаются. .

Сигнал слабый,чего цифровать? поэтому и стоит гетеродин + НЧ усилитель

 

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


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

Сигнал слабый,чего цифровать? поэтому и стоит гетеродин + НЧ усилитель

Сигнал усиливается на высокой частоте до динамики АЦП.

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


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

Детектор фазы сделан xor. counter_enable = In1reference_IF ^ in2reflection_IF; получается счетчик вначале увеличивается до максимума потом уменьшается. Этот цикл 360 градусов. а если брать значение от 0 до максимума получается когда максимум == 180 градусов. То есть если мишень двигается от датчика то значение вначале растет потом уменьшается потом заново начинает расти и все повторяется до тех пор пока отраженный не будет очень слабым.

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


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

Беру точку расстояние фактическое 1метр значение F_dleta_45mhz = f1_45mhz_reference - f1_45Mhz_reflection = 36352; и F_dleta_30mhz = f1_30mhz_reference - f1_30Mhz_reflection = 24792; fatan = atan2(36352,24792)= 0.9723;

На расстоянии 1 метр фаза и есть расстояние

Для 45 МГц фаза = 60000 *1/6.6666 =9000. а не 36352

Для 30 МГц фаза = 60000 *1/10 =6000. а не 24792

Допустим ошибка в 4 раза Тогда получается

{-0.007225, 1.49278, 2.99278, 4.49278, 5.99278, 7.49278, 8.99278, \

10.4928, 11.9928, 13.4928, 14.9928, 16.4928, 17.9928}

Первое значение 0 и расстояние 1.033 или 1.00978, точности не хватает. Частота очень большая, фазовые шумы велики.

30 и 45 МГц плохой набор частот. 11 и 13 и 17 лучше(для 50*2 метров).

 

Детектор фазы сделан xor. counter_enable = In1reference_IF ^ in2reflection_IF; получается счетчик вначале увеличивается до максимума потом уменьшается. Этот цикл 360 градусов. а если брать значение от 0 до максимума получается когда максимум == 180 градусов. То есть если мишень двигается от датчика то значение вначале растет потом уменьшается потом заново начинает расти и все повторяется до тех пор пока отраженный не будет очень слабым.

У Вас не фаза измеряется, а абсолютное значение. И двух частот явно мало. 3-4 частоты надо. n1,n2,+f1,-f1,+f2,-f2

 

Сигнал усиливается на высокой частоте до динамики АЦП.

ВЧ усилитель внесёт задержку несколько наносекунд. а это 30см на наносекунду.

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


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

Фаза измеряется с небольшим начальным смещением. Сразу расстояние привязать не получиться, хотелось бы получить линейную функцию а потом умножать на коэффициент.

Один сигнал опорный другой отраженый измеряется разница фаз между ними. Эта разница зависит от расстояния.

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


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

Фаза измеряется с небольшим начальным смещением. Сразу расстояние привязать не получиться, хотелось бы получить линейную функцию а потом умножать на коэффициент.

Один сигнал опорный другой отраженый измеряется разница фаз между ними. Эта разница зависит от расстояния.

Снимите зависимость фаз от расстояния через 50см или 10 см метров до 3х. Тогда ясней будет. По одной точке сложно судить о точности

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


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

ВЧ усилитель внесёт задержку несколько наносекунд. а это 30см на наносекунду.

Пикосекунд, впрочем даже эта задержка - систематическая погрешность, легко вычитается и не плавает от температуры. Никто не мешает по опорному каналу поставить такой же усилитель и вычесть задержку.

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


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

Причем АЦП не обязательно должен много стоить и потреблять, достаточно 8-10 бит с частотой дискретизации 10-20 МГц (сколько контроллер позволяет).

То есть встроенные у STM32F303CC совсем немного недотягивают (5 MSPS - 4 независимых ADC(!!!) - LQFP48) ?

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


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

Снимите зависимость фаз от расстояния через 50см или 10 см метров до 3х. Тогда ясней будет. По одной точке сложно судить о точности

Снял с шагом 100мм но точность скорее всего миллиметров 10-15 двигал рукой по рулетке.

post-27923-1434734525_thumb.jpg

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


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

То есть встроенные у STM32F303CC совсем немного недотягивают (5 MSPS - 4 независимых ADC(!!!) - LQFP48) ?

Встроенные АЦП не обладают широкой полосой и хар-ки посредственные, от близкого соседства с цифрой идут помехи, деление земель мало что дает. Желательно, чтобы УВХ позволяло защелкивать сигнал превышающий тактовую частоту, без потерь в динамике.

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


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

Уже давно вожусь с этой задачей, что то в голову не приходят новые мысли

http://www.rfe.by/media/kafedry/kaf2/publi...DS-glava-03.pdf

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


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

Благодарю, интересная книга да еще и на русском языке.

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


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

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

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

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

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

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

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

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

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

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