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

 
 
> Как считать показания датчиков.
Jenya7
сообщение Apr 5 2016, 07:51
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



У меня на плате есть два магнитных аналоговых датчика (MS1, MS2). Honeywell SM351LT. Они расположены 90 градусов один от другого. По кругу ходит магнит.
Это все видно на диаграмме. Я так понимаю что сумма выходных сигналов (OUT1+OUT2) будет уникальна для каждого положения магнита. Если бы у меня был шаговый двигатель я бы запустил его с резолюцией в 1 градус и через 360 шагов считал бы весь круг. А есть ли другие способы считать весь круг?

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 14)
Сергей Борщ
сообщение Apr 5 2016, 08:41
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Jenya7 @ Apr 5 2016, 09:51) *
Я так понимаю что сумма выходных сигналов (OUT1+OUT2) будет уникальна для каждого положения магнита.
Кроме пары точек , где эта сумма равна нулю. В остальных точках она будет зависеть от характеристик конкретного магнита и расстояния от магнита до датчика. Поэтому, чтобы не калибровать каждый датчик под конкретный магнит, в промышленных датчиках угла считыват синусный и косинусный выход отдельно, а дальше считают арктангенс.

P.S. "резолюции" - это в совбезе ООН. В контексте вашего сообщения правильно было бы написать "с разрешением в 1 градус".


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
ZVA
сообщение Apr 5 2016, 08:51
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 284
Регистрация: 10-10-05
Из: Киев
Пользователь №: 9 440



датчики SM351LT хоть и резистивные, но с дискретным выходом.
ими положение вала не зафиксировать.
в вашем случае только направление и скорость вращения.
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Apr 5 2016, 08:53
Сообщение #4


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Цитата(Jenya7 @ Apr 5 2016, 10:51) *
Я так понимаю что сумма выходных сигналов (OUT1+OUT2) будет уникальна для каждого положения магнита. Если бы у меня был шаговый двигатель я бы запустил его с резолюцией в 1 градус и через 360 шагов считал бы весь круг.

А Вы ничего не путаете? SM351LT имеют цифровой выход, т.е эта плата надо понимать аналог энкодера - определяет число оборотов и направление вращения.
Упс, уже ответили sm.gif
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Apr 5 2016, 09:11
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Извиняюсь ошибся – датчики SS49ET. прикладывая магнит в нескольких местах я вижу изменение показаний на выходе. я думаю можно вычислить позицию магнита - именно это мне надо.

Цитата(Сергей Борщ @ Apr 5 2016, 13:41) *
Кроме пары точек , где эта сумма равна нулю. В остальных точках она будет зависеть от характеристик конкретного магнита и расстояния от магнита до датчика. Поэтому, чтобы не калибровать каждый датчик под конкретный магнит, в промышленных датчиках угла считыват синусный и косинусный выход отдельно, а дальше считают арктангенс.

P.S. "резолюции" - это в совбезе ООН. В контексте вашего сообщения правильно было бы написать "с разрешением в 1 градус".

а как результат преобразовать в синус/косинус?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 5 2016, 10:43
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Jenya7 @ Apr 5 2016, 11:11) *
а как результат преобразовать в синус/косинус?
Если ваши датчики имеют достаточно линейную характеристику - их выходной сигнал будет пропорционален синусу и косинусу угла поворота вала с магнитом просто потому, что датчики расположены "90 градусов один от другого". Так работают синусно-косинусные трансформаторы.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Apr 5 2016, 10:45
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Предлагаю прорывную нано-технологию.
Цепляем к выходам датчика осциллограф (как выяснилось, они аналоговые. и то хорошо).
Пальцем крутим вал. Глазами смотрим на осциллограф.

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


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Apr 5 2016, 11:11
Сообщение #8


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(esaulenka @ Apr 5 2016, 15:45) *
Предлагаю прорывную нано-технологию.
Цепляем к выходам датчика осциллограф (как выяснилось, они аналоговые. и то хорошо).
Пальцем крутим вал. Глазами смотрим на осциллограф.

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

мы увидем там что то похожее на синус. рабочая точка датчика (при 0 гаус) Vcc/2.
вопрос как мне пальцем отсчитать энное количество градусов.
Go to the top of the page
 
+Quote Post
Baser
сообщение Apr 5 2016, 11:25
Сообщение #9


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



У вас получается в каждый момент времени известны два числа, которые пропорциональны расстоянию от магнита до датчиков.
Такую задачу не решал, но вероятно нужно почитать про триангуляцию. Хотя для неё нужно три точки.
Но у вас есть дополнительное условие, что все точки находятся на окружности, так что наверное, данных должно хватить для расчетов.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Apr 5 2016, 11:33
Сообщение #10


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(Baser @ Apr 5 2016, 16:25) *
У вас получается в каждый момент времени известны два числа, которые пропорциональны расстоянию от магнита до датчиков.
Такую задачу не решал, но вероятно нужно почитать про триангуляцию. Хотя для неё нужно три точки.
Но у вас есть дополнительное условие, что все точки находятся на окружности, так что наверное, данных должно хватить для расчетов.

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

все равно угол надо знать.
S = r * d@
может дельта между измерениями пропорциональна углу...

Сообщение отредактировал Jenya7 - Apr 5 2016, 11:49
Go to the top of the page
 
+Quote Post
_pv
сообщение Apr 5 2016, 14:53
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



дипольное поле падает как куб расстояния, так что там не совсем синус/косинус, но может быть очень похоже на синус/косинус, в зависимости от расстояния от датчиков до магнита по вертикали.
так что арктангенс отношения показаний датчиков в первом приближении пойдёт.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 6 2016, 05:00
Сообщение #12


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Не разбираюсь в диполях, может, там и как куб... Обычно, если поле распределяется по сфере, значит, как квадрат расстояния. В любом случае изменение сигнала будет сильно нелинейное, некая циклоида с неким смещением, в некой степени. Там будет и синус, конечно, первая гармоника этого страшенького сигнала, но вычислять расстояние, основывалась на этом синусе, мне кажется, ошибка.
Вижу такое решение. Вращать диск равномерно, снять синхронно показания датчиков, сохранить в таблицы с нужным разрешением. И в рабочем режиме определять положение по этим таблицам.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 6 2016, 05:38
Сообщение #13


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095





http://www.gmw.com/magnetic_sensors/sentro...a/2D-VH-11.html

MLX90360:


http://archives.sensorsmag.com/articles/0306/20/main.shtml:


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 6 2016, 05:56
Сообщение #14


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Вышеприведенная картина соответствует конструкции, когда датчик(и) расположен(ы) в центре вращения. У ТС не так.
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Apr 6 2016, 06:14
Сообщение #15


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Можно попробовать так. Крутим диск, снимаем минимальное Xmin и максимальное Xmax показание по каждому каналу.
Вычисляем амплитуду Xamp=(Xmax-Xmin)/2 и среднее Xcp=(Xmax+Xmin)/2. Сохраняем эти 2 константы во флешь для последующих расчетов.

Для текущего угла 'a' поворота диска зная текущие значения каналов X и Y находим значения cos(a)= (X-Xcp)/Xamp; и также sin(a) = (Y-Ycp)/Yamp;
затем получаем угол 'a' как а = arctg(sin(a)/cos(a)).
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 10:21
Рейтинг@Mail.ru


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