реклама на сайте
подробности

 
 
18 страниц V  « < 4 5 6 7 8 > »   
Reply to this topicStart new topic
> Какие алгоритмы измерения расстояния используются в лазерных рулетках
mcheb
сообщение Jun 20 2015, 02:29
Сообщение #76


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 30-05-06
Пользователь №: 17 602



Цитата(sergey sva @ Jun 19 2015, 21:22) *
Снял с шагом 100мм но точность скорее всего миллиметров 10-15 двигал рукой по рулетке.
[attachment=93354:10__.jpg]

Получается, что на 360 градусов идёт 128684 импульсов. Интересно,откуда это число берётся? Отношение коэффициентов 30 и 45 МГц 1,47 , что совсем неплохо для такого макета(должно быть 1,5).
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Jun 20 2015, 03:29
Сообщение #77


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



128684 не должно быть, около 65000. Наверно как то суммировалось два измерения. по картинке видно самое большое значение 61677 то есть в этот момент сдвиг фаз двух сигналов опорного относительно отраженного после смесителей 180гр. Исключающее или дает самый длинный импульс для включения счетчика. Counter_en= ref45mhz^reflection45mhz; Если мишень двигается в одну сторону с одной скоростью то будут пирамидки на графике вначале значение увеличивается от0 до 180гр(0-60000) потом уменьшается от 180 до 0 (60000-0) и все повторяется.
Между 45мгц и 30мгц есть разница которая будет тоже повторяться один раз через три цикла 45мгц думал как то это связать чтобы увеличить расстояние измеряемое. то есть мерить по 45 мгц там доли миллиметра измерить можно, а смещение выбирать в зависимости от разницы между 45 и 30. Но как это сделать, потом добавить еще частоту что бы увеличить до 50м измеряемое расстояние.

PS фильтров нет только усреднение 10раз, поэтому значения немного прыгают фильтрацию не добавил специально что бы не путаться.
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Jun 20 2015, 10:46
Сообщение #78


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



На графиках вы подсчитали методом наименьших квадратов? Для такого метода нужно по всей дистанции измерения измерить точки к примеру с шагом 100мм что бы потом рассчитать коэффициенты для каждой точки?
Go to the top of the page
 
+Quote Post
mcheb
сообщение Jun 20 2015, 11:25
Сообщение #79


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 30-05-06
Пользователь №: 17 602



Цитата(sergey sva @ Jun 20 2015, 13:46) *
На графиках вы подсчитали методом наименьших квадратов? Для такого метода нужно по всей дистанции измерения измерить точки к примеру с шагом 100мм что бы потом рассчитать коэффициенты для каждой точки?

В общем да. В Excel есть такая функция
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Jun 20 2015, 11:37
Сообщение #80


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Искать потом правильное значение расстоянии как правильно мыслю ? цифры возможно будут повторяться.
Например поступили данные в микроконтроллер f1 и f2 последовательно умножаю на все коэффициенты которые есть d0 = n1*p1 + f1 === n2*p2 + f2 Когда условие совпадает значит расстояние подсчитано правильно, если два или больше совпадений будет?
Go to the top of the page
 
+Quote Post
mcheb
сообщение Jun 20 2015, 12:03
Сообщение #81


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 30-05-06
Пользователь №: 17 602



Цитата(sergey sva @ Jun 20 2015, 15:37) *
Искать потом правильное значение расстоянии как правильно мыслю ? цифры возможно будут повторяться.
Например поступили данные в микроконтроллер f1 и f2 последовательно умножаю на все коэффициенты которые есть d0 = n1*p1 + f1 === n2*p2 + f2 Когда условие совпадает значит расстояние подсчитано правильно, если два или больше совпадений будет?

d0 = n1*p1 + f1 = n2*p2 + f2
n1 и n2 целые.
То есть ищете n1 и n2 целые , так чтобы n1*p1 + f1 = n2*p2 + f2 . Всё. Есть погрешность измерения, и n1 и n2 почти целые
Разберитесь с f1 и f2 ,как они измеряются?
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Jun 20 2015, 12:20
Сообщение #82


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



C f1 f2 все понятно в этом вопросов нет . Частота 45мгц расстояние 7,5м пополам (луч туда обратно идет) 3,75 еще раз пополам 1,875 м = 180 градусов. один дискрет = 180/61677 (1875/61677). Счетчик считает зависимости сохраняются на всей дистанции единственное есть смещение, но оно не меняется все время одинаковое. может будет отличаться в разных устройствах если много собирать но это можно при калибровке учесть.
А что вы думаете неправильно работает?
Go to the top of the page
 
+Quote Post
mcheb
сообщение Jun 20 2015, 13:54
Сообщение #83


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 30-05-06
Пользователь №: 17 602



Цитата(sergey sva @ Jun 20 2015, 16:20) *
А что вы думаете неправильно работает?

Я думаю,XOR в 0 и 180 градусах неправильно работает(шум,фазу болтает). Загоняйте его в 90 градусов. PLL нужен или что-то типа того
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Jun 20 2015, 16:39
Сообщение #84


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Вроде теперь все понял спасибо, долго до меня доходит )). Да можно одновременно измерять параллельно с смещением 90гр. а потом тем способом как вы предложили. как раз эти места где 0 и 180 выровняться.
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Jun 22 2015, 15:10
Сообщение #85


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Схему немного переделал, вернулся к первому варианту когда измерение фазы происходит от 0 до 360. Пробовал разные способы аппроксимация с квадратичной зависимостью и линейной, линия выравнивается, но не намного (они и так ровные). А потом вычисления Y по экспериментальным значениям получается не всегда корректно этими методами. Сделал новые измерения Прикрепленный файл  __________.zip ( 10.66 килобайт ) Кол-во скачиваний: 33
. Может не заморачиваться?, добавил еще один сигнал(на графике F3) который изменяется на 5000 примерно за 3м. Его просто проверять в условии если он больше определенного значения то брать значение смещения и прибавлять его к f1 f2 от 45 и 30Мгц?
Go to the top of the page
 
+Quote Post
mcheb
сообщение Jun 23 2015, 00:54
Сообщение #86


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 30-05-06
Пользователь №: 17 602



Вы измеряете Тл+2*Тр+Тфд . Тл задержка в лазере, Тр то что нужно(расстояние), Тфд задержка в фотодиоде(+ОУ+компаратор+триггер и тд). Самое проблемное место Тфд, сигнал очень слабый и очень сильно меняется. И сам XOR Вы проверяли его линейность? Возьмите проверьте.Это просто.
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Jun 23 2015, 08:01
Сообщение #87


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Проверял все работает отлично, задержки не влияют, схема сделана так что все задержки друг друга компенсируют. И даже температура на схему измерения мало влияет 20-40гр. температура влияет на скорость распространения волн через атмосферу, но это на небольшом расстоянии мало повлияет на измерение. Если потребуется можно сделать корректировку в stm32f407 есть термосопротивление, конечно встроенное термосопротивление измеряет температуру кристалла, попробовать можно, потом... Проблем с схемами измерителями нет, немножко что то понимаю sm.gif sm.gif Результаты измерений неплохие, зависимость от расстояния почти линейная, при этом нет фильтрации сигнала как поступил в функцию так и ушел в пк. Основная задача сейчас сделать расчет расстояния в микроконтроллере stm32f407 на си. В нем по таймеру 10 раз в секунду выполняется функция в аргументах которой f1 f2 f3 в которых разница фаз , нужно рассчитать Y мм. Точки с шагом 100мм снятые экспериментально первая точка 500мм дальше 600мм 700мм... poi_f1_ poi_f2_ poi_f3_...
Код
uint32_t poi_f1_0deg[] = {6044,8287,10407,12369,15222,17353,19678,21529,23426,25241,27077,28810,31252,338
28,36392,38931,40906,42706,44302,46121,49712,51453,53525,55919,58317,60404,62388
,
64106,17576,2160,3856,5911,8024};
uint32_t poi_f1_45deg[]={21147,22974,25000,26779,28845,30870,33224,35423,37496,39647,41668,43455,45
763,48321,50319,52822,55240,57070,58671,60329,64223,12666,2209,5553,7530,9252,11
5
89,13653,15131,16773,18766,20900,23018};
uint32_t poi_f2_0deg[]={4690,6428,8024,9290,10704,11728,12948,14317,15784,16993,18491,19417,20858,
22331,24095,25768,27515,28386,29403,30672,34042,35199,36077,37031,38774,40257,42
0
84,43506,44638,45837,47074,49039,50345};
uint32_t poi_f2_45deg[]={18801,19787,20892,22206,23884,25155,26715,27582,28452,29748,31293,32728,34
426,35532,36787,38428,40459,42353,43553,44331,46903,48571,50461,51594,52506,5348
8
,54941,56702,58335,59625,60399,61340,62830
};
uint32_t poi_f3[]={4896,5454,5830,6089,6379,6635,6942,7228,7336,7481,7691,7904,7758,7577,7247
,7081,6903,6896,7164,6603,7303,7482,7757,8157,8479,8678,8998,9344,9626,9912,1016
2
,10623,11090
};
uint32_t ClculateDistance(uint32_t F45Mhz_ph0deg,uint32_t F45Mhz_ph45deg,uint32_t F30Mhz_ph0deg,uint32_t F30Mhz_ph45deg, F3Mhz)
{
uint32_t Y_mm = 0;

send_pc_excel(F45Mhz_ph0deg,F45Mhz_ph45deg, F30Mhz_ph0deg, F30Mhz_ph45deg, F3Mhz);// передача на компьютер для построения графика

return Y_mm;
}

Помогите сделать функцию которая будет рассчитывать расстояние, проверю результат напишу? Спасибо.
Go to the top of the page
 
+Quote Post
mcheb
сообщение Jun 24 2015, 01:39
Сообщение #88


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 30-05-06
Пользователь №: 17 602



Цитата(sergey sva @ Jun 23 2015, 11:01) *
Результаты измерений неплохие, зависимость от расстояния почти линейная.

Если я правильно понял, то фаза 3МГц должна показывать грубое расстояние 0-50 метров. Линейности нет как нет и однозначности. Проверьте работу фазового детектора. Для этого нужно 2 ШИМа , один со сдвигом.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Jun 24 2015, 03:35
Сообщение #89


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Да все верно по 3Мгц определять порядок, а по 45 и 30 определять расстояние в мм. 45 и 30 практически линейные, а на 3Мгц большой линейности не получиться получить. По ним можно определять только номер перехода 45 и 30 и давать смещение. Как то так думается. Если бы 3мгц имели линейную зависимость от мм можно было измерять по 3Мгц.
Go to the top of the page
 
+Quote Post
mcheb
сообщение Jun 24 2015, 03:47
Сообщение #90


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 30-05-06
Пользователь №: 17 602



Цитата(sergey sva @ Jun 24 2015, 07:35) *
Да все верно по 3Мгц определять порядок, а по 45 и 30 определять расстояние в мм. 45 и 30 практически линейные, а на 3Мгц большой линейности не получиться получить. По ним можно определять только номер перехода 45 и 30 и давать смещение. Как то так думается.

Фазе 7000 соответствуют 3 расстояния. Какое брать? Что-то не то в схеме или алгоритме вычисления фазы. 3МГц - грубая шкала, она должна быть линейной с точностью лучше чем четверть минимального периода(45 МГц)
Go to the top of the page
 
+Quote Post

18 страниц V  « < 4 5 6 7 8 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 11th August 2025 - 07:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01499 секунд с 7
ELECTRONIX ©2004-2016